{"version":3,"file":"bundle-chameleon_legacy_src_s.xxxxxxxxxxxxxxxxxxxx.js","mappings":";;;;;;;;;;;;;;;;;;;;AAA6B;AACuB;AACA;AACC;AACa;AAE3D,SAAUM,iBAAiBA,CAChCC,MAAM;EAAA,IACNC,iBAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGL,8DAAe;EAAA,oBACnC;IACA,MAAM;MAAEQ,QAAQ;MAAEC,MAAM;MAAEC;IAAO,CAAC,GAAGP,MAAM;IAC3C,MAAMQ,YAAY,GAAGP,iBAAiB,CAACI,QAAQ,CAAC;IAChD,IAAII,KAAK,GAAG,IAAI;IAChB,IAAIJ,QAAQ,CAACK,OAAO,IAAIL,QAAQ,CAACM,aAAa,EAAE;MAC9CF,KAAK,GAAG,iBAAiB;IAC3B;IACA,MAAMG,UAAU,GAAGnB,2CAAG,CAACe,YAAY,EAAGK,IAAI,IAAKA,IAAI,CAACJ,KAAK,CAAC,CAACK,QAAQ,CAAC,CAAC,CAAC;IAEtE,IACE,CAACN,YAAY,IAAI,EAAE,EAAEL,MAAM,IAC3B,CAACY,MAAM,CAACC,KAAK,CAACC,QAAQ,CAACV,MAAM,CAACW,OAAO,EAAE,EAAE,CAAC,CAAC,IAC3C,CAACN,UAAU,CAACO,QAAQ,CAACZ,MAAM,CAACW,OAAO,CAAC,EACpC;MACA,IAAIN,UAAU,CAACO,QAAQ,CAAC,IAAI,CAAC,IAAIZ,MAAM,CAACW,OAAO,KAAK,IAAI,EAAE;QACxD,MAAMZ,MAAM,CAACc,OAAO,CAAC,UAAU,CAAC;MAClC,CAAC,MAAM,IAAI,CAACtB,4EAAc,CAACqB,QAAQ,CAACF,QAAQ,CAACV,MAAM,CAACW,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE;QACjE,MAAMZ,MAAM,CAACc,OAAO,CAAC,UAAU,CAAC;MAClC;IACF;EACF,CAAC;AAAA;AAEc,UAAUC,cAAcA,CAAA,EAAG;EACxC,MAAM3B,uDAAG,CAAC,CAACC,6DAAS,CAACC,6DAAe,EAAEG,iBAAiB,CAAC,CAAC,CAAC;AAC5D;;;;;;;;;;;;;;;ACjCkE;AAEnD,SAASwB,gBAAgBA,CAACC,KAAK,EAAEnB,QAAQ,EAAE;EACxD,MAAMoB,OAAO,GACXC,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAAC,uCAAuC,CAAC,IAChEF,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAAC,qCAAqC,CAAC,IAC9DF,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAAC,yCAAyC,CAAC,IAClEF,QAAQ,CAACC,QAAQ,CAACC,KAAK,CAAC,wBAAwB,CAAC,IACjD,EAAE;EAEJ,IAAIC,KAAK,GAAG,CAAC,CAAC;EACd;;EAEA,IAAI,CAACxB,QAAQ,CAACyB,EAAE,EAAE;IAChB,OAAOD,KAAK;EACd;EAEA,IAAIE,aAAa,GAAG,KAAK;EACzB,IAAIC,MAAM,CAACC,EAAE,IAAID,MAAM,CAACC,EAAE,CAACC,IAAI,EAAE;IAC/BH,aAAa,GAAGC,MAAM,CAACC,EAAE,CAACC,IAAI,CAACC,GAAG,CAACC,cAAc,CAAC,CAAC,CAACC,YAAY;EAClE;;EAEA;AACF;AACA;AACA;EACE,MAAMC,SAAS,GACbjC,QAAQ,CAACyB,EAAE,CAACQ,SAAS,IACrBjC,QAAQ,CAACyB,EAAE,CAACS,QAAQ,CAACpB,QAAQ,CAACG,4EAAS,CAACkB,OAAO,CAAC,IAC/CT,aAAa,IAAIA,aAAa,CAACO,SAAU;EAC5C,MAAMG,SAAS,GACbpC,QAAQ,CAACyB,EAAE,CAACW,SAAS,IACrBpC,QAAQ,CAACyB,EAAE,CAACS,QAAQ,CAACpB,QAAQ,CAACG,4EAAS,CAACoB,OAAO,CAAC,IAC/CX,aAAa,IAAIA,aAAa,CAACY,cAAe,CAAC,CAAC;EACnD,MAAMC,oBAAoB,GACxBvC,QAAQ,CAACK,OAAO,IAChBL,QAAQ,CAACM,aAAa,IACtBN,QAAQ,CAACyB,EAAE,CAACS,QAAQ,CAACpB,QAAQ,CAACG,4EAAS,CAACuB,KAAK,CAAC,IAC9CxC,QAAQ,CAACyB,EAAE,CAACS,QAAQ,CAACpB,QAAQ,CAACG,4EAAS,CAACwB,WAAW,CAAC;EACpD;EACCf,aAAa,IAAIA,aAAa,CAACgB,SAAS,KAAK,IAAK;EAErD,MAAMvC,YAAY,GAAG8B,SAAS,GAC1BjC,QAAQ,CAAC2C,eAAe,GACxB3C,QAAQ,CAAC4C,eAAe,IAAI,EAAE;EAElC,QAAQzB,KAAK;IACX,KAAK0B,YAAkB;MACrB,QAAQ7C,QAAQ,CAACyB,EAAE,CAACN,KAAK;QACvB,KAAKA,KAAK;UACR,IAAIc,SAAS,EAAE;YACb,IAAIN,MAAM,CAACmB,QAAQ,CAACC,QAAQ,KAAK,UAAU,EAAE;cAC3C;cACAvB,KAAK,GAAG,CAAC;YACX,CAAC,MAAM,IAAI,CAAC,CAACrB,YAAY,IAAI,EAAE,EAAEL,MAAM,EAAE;cACvC;cACA0B,KAAK,GAAG,CAAC;YACX,CAAC,MAAM,IAAI,CAAC,CAACxB,QAAQ,CAACyB,EAAE,CAACuB,SAAS,IAAI,EAAE,EAAElD,MAAM,EAAE;cAChD;cACA0B,KAAK,GAAG,CAAC;YACX;UACF,CAAC,MAAM,IAAIe,oBAAoB,EAAE;YAC/B;UAAA,CACD,MAAM,IAAIH,SAAS,EAAE;YACpB;YACA,IAAI,CAACjC,YAAY,CAACL,MAAM,IAAI,CAAC,CAACE,QAAQ,CAACyB,EAAE,CAACuB,SAAS,IAAI,EAAE,EAAElD,MAAM,EAAE;cACjE0B,KAAK,GAAG,CAAC;YACX;UACF,CAAC,MAAM,IAAI,CAAC,CAACxB,QAAQ,CAACyB,EAAE,CAACS,QAAQ,IAAI,EAAE,EAAEpC,MAAM,EAAE;YAC/C;YACA0B,KAAK,GAAG,CAAC;UACX;UACA;QACF;UACE;AACV;AACA;UACU,IAAIS,SAAS,EAAE;YACbT,KAAK,GAAG,CAAC;UACX;UACA,IAAIS,SAAS,IAAIb,OAAO,CAACtB,MAAM,EAAE;YAC/B0B,KAAK,GAAG,CAAC;UACX;UACA;AACV;AACA;AACA;UACU,IAAIY,SAAS,EAAE;YACbZ,KAAK,GAAG,CAAC;UACX;UACA;AACV;AACA;AACA;UACU,IAAI,CAACe,oBAAoB,IAAIH,SAAS,KAAKhB,OAAO,CAACtB,MAAM,EAAE;YACzD;YACAmD,OAAO,CAACC,GAAG,CAAC,2BAA2B,EAAE;cACvCX,oBAAoB;cACpBH,SAAS;cACT,gBAAgB,EAAEhB,OAAO,CAACtB,MAAM;cAChC4B;YACF,CAAC,CAAC;YACF;YACA;YACA;YACAC,MAAM,CAACmB,QAAQ,CAACK,IAAI,GAAG,GAAGC,8CAAgB,EAAE;UAC9C;UACA;AACV;AACA;UACU,IAAI,CAAC,CAACpD,QAAQ,CAACyB,EAAE,CAACS,QAAQ,IAAI,EAAE,EAAEpC,MAAM,EAAE;YACxC;AACZ;AACA;AACA;YACY,IAAIsC,SAAS,IAAIG,oBAAoB,EAAE;cACrC;cACA;cACA;cACA;cACAU,OAAO,CAACC,GAAG,CAAC,+BAA+B,EAAE;gBAC3CX,oBAAoB;gBACpBH,SAAS;gBACTpC,QAAQ;gBACR0B;cACF,CAAC,CAAC;cACF;cACAC,MAAM,CAACmB,QAAQ,CAACK,IAAI,GAAG,GAAGC,8CAAgB,EAAE;YAC9C,CAAC,MAAM;cACL;cACA5B,KAAK,GAAG,CAAC;YACX;UACF;UACA;MACJ;MACA;IACF;MACE,OAAOA,KAAK;EAChB;EACA,OAAOA,KAAK;AACd;;;;;;;;;;;;;;;;;AC5I0B;AACyB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM8B,YAAY,GAAG,SAAAA,CAAA,EAAuD;EAAA,IAAtDC,MAAM,GAAA1D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IAAE2D,GAAG,GAAA3D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAE4D,IAAI,GAAA5D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAE6D,OAAO,GAAA7D,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACrE,MAAMK,MAAM,GAAGqD,MAAM,KAAK,KAAK,GAAGE,IAAI,GAAG,CAAC,CAAC;EAE3C,MAAME,OAAO,GAAG;IACdF,IAAI;IACJvD,MAAM;IACNqD,MAAM;IACNG,OAAO;IACPF,GAAG,EAAEA,GAAG,CAAC1C,QAAQ,CAAC,UAAU,CAAC,GAAG0C,GAAG,GAAG,GAAGI,8CAAe,IAAIJ,GAAG;EACjE,CAAC;EAED,OAAOH,iDAAK,CAACM,OAAO,CAAC,CAACE,IAAI,CAAEC,QAAQ,IAAK;IACvC,IAAIC,IAAI,GAAG;MAAEC,gBAAgB,EAAEF,QAAQ,EAAEG,MAAM,IAAI;IAAI,CAAC;IACxD,MAAMC,YAAY,GAAGJ,QAAQ,EAAEJ,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE;IAC9D,IAAIQ,YAAY,CAACC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAOL,QAAQ,CAACL,IAAI,KAAK,QAAQ,EAAE;MACvE,IAAIW,KAAK,CAACC,OAAO,CAACP,QAAQ,CAACL,IAAI,CAAC,EAAE;QAChCM,IAAI,GAAGD,QAAQ,CAACL,IAAI;MACtB,CAAC,MAAM;QACLM,IAAI,GAAG;UAAE,GAAGA,IAAI;UAAE,GAAGD,QAAQ,CAACL;QAAK,CAAC;MACtC;IACF,CAAC,MAAM;MACLM,IAAI,GAAG;QAAE,GAAGA,IAAI;QAAEO,GAAG,EAAER,QAAQ,CAACL;MAAK,CAAC;IACxC;IACA,OAAOM,IAAI;EACb,CAAC,CAAC;AACJ,CAAC;AAED,iEAAe;EACbQ,GAAG,EAAE,SAAAA,CAAA;IAAA,SAAAC,IAAA,GAAA3E,SAAA,CAAAC,MAAA,EAAI2E,IAAI,OAAAL,KAAA,CAAAI,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;MAAJD,IAAI,CAAAC,IAAA,IAAA7E,SAAA,CAAA6E,IAAA;IAAA;IAAA,OAAKpB,YAAY,CAAC,KAAK,EAAE,GAAGmB,IAAI,CAAC;EAAA;EAC9CE,IAAI,EAAE,SAAAA,CAAA;IAAA,SAAAC,KAAA,GAAA/E,SAAA,CAAAC,MAAA,EAAI2E,IAAI,OAAAL,KAAA,CAAAQ,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJJ,IAAI,CAAAI,KAAA,IAAAhF,SAAA,CAAAgF,KAAA;IAAA;IAAA,OAAKvB,YAAY,CAAC,MAAM,EAAE,GAAGmB,IAAI,CAAC;EAAA;EAChDK,GAAG,EAAE,SAAAA,CAAA;IAAA,SAAAC,KAAA,GAAAlF,SAAA,CAAAC,MAAA,EAAI2E,IAAI,OAAAL,KAAA,CAAAW,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJP,IAAI,CAAAO,KAAA,IAAAnF,SAAA,CAAAmF,KAAA;IAAA;IAAA,OAAK1B,YAAY,CAAC,KAAK,EAAE,GAAGmB,IAAI,CAAC;EAAA;EAC9CQ,MAAM,EAAE,SAAAA,CAAA;IAAA,SAAAC,KAAA,GAAArF,SAAA,CAAAC,MAAA,EAAI2E,IAAI,OAAAL,KAAA,CAAAc,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJV,IAAI,CAAAU,KAAA,IAAAtF,SAAA,CAAAsF,KAAA;IAAA;IAAA,OAAK7B,YAAY,CAAC,QAAQ,EAAE,GAAGmB,IAAI,CAAC;EAAA;EACpDpF,GAAG,EAAG+F,KAAK,IACT/B,6CAAK,CACFhE,GAAG,CACF+F,KAAK,CAAChG,GAAG,CAACiG,IAAA;IAAA,IAAC;MAAE9B,MAAM;MAAEC,GAAG;MAAEC,IAAI;MAAEC;IAAQ,CAAC,GAAA2B,IAAA;IAAA,OACvC/B,YAAY,CAACC,MAAM,EAAEC,GAAG,EAAEC,IAAI,EAAEC,OAAO,CAAC;EAAA,CAC1C,CACF,CAAC,CACA4B,KAAK,CAAE9D,KAAK,IAAK0B,4EAAG,CAAC,OAAO,EAAE1B,KAAK,CAAC;AAC3C,CAAC,EAAC;AAEF,IAAI+D,cAAc,GAAG,CAAC,CAAC;;AAEvB;AACO,MAAMC,YAAY,GAAG,SAAAA,CAC1B/B,IAAI,EAGD;EAAA,IAFHgC,kBAAkB,GAAA5F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IAC1B6F,WAAW,GAAA7F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAEnB,MAAM8F,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAACpC,IAAI,CAAC;EACrC,IAAI,CAACiC,WAAW,IAAIH,cAAc,CAACI,QAAQ,CAAC,EAAE;IAC5C;IACA,OAAOG,OAAO,CAACC,OAAO,CAACR,cAAc,CAACI,QAAQ,CAAC,CAAC;EAClD;EACA,MAAMK,QAAQ,GAAG,OAAOvC,IAAI,KAAK,QAAQ;EACzC,IAAIuC,QAAQ,EAAE;IACZ,MAAMxC,GAAG,GAAGC,IAAI;IAChB,IACE,mEAAmE,CAACwC,IAAI,CACtEzC,GACF,CAAC,EACD;MACA,OAAOF,YAAY,CAAC,MAAM,EAAE,sBAAsB,EAAE;QAClDE,GAAG;QACH0C,sBAAsB,EAAET;MAC1B,CAAC,CAAC,CAAC5B,IAAI,CAAEsC,MAAM,IAAK;QAClB,IAAIC,SAAS,GAAGD,MAAM,CAACE,SAAS;QAChC,IAAI,CAACX,WAAW,EAAE;UAChBH,cAAc,CAACI,QAAQ,CAAC,GAAGS,SAAS;QACtC;QACA,OAAOA,SAAS;MAClB,CAAC,CAAC;IACJ;IACA,OAAON,OAAO,CAACC,OAAO,CAACvC,GAAG,CAAC;EAC7B;EACA,OAAOF,YAAY,CAAC,MAAM,EAAE,sBAAsB,EAAE;IAClD,GAAGG,IAAI;IACPyC,sBAAsB,EAAET;EAC1B,CAAC,CAAC,CAAC5B,IAAI,CAAEsC,MAAM,IAAK;IAClB,IAAIC,SAAS,GAAGD,MAAM,CAACE,SAAS;IAChC,IAAI,CAACX,WAAW,EAAE;MAChBH,cAAc,CAACI,QAAQ,CAAC,GAAGS,SAAS;IACtC;IACA,OAAOA,SAAS;EAClB,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;;;ACpG8C;AACF;AAEA;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAUK,OAAOA,CAC9BC,OAAO,EAAArB,IAAA;EAAA,IAAAsB,UAAA,GAAA9G,SAAA;EAAA,IACP;IACE0D,MAAM,GAAG,KAAK;IACdC,GAAG,GAAG,EAAE;IACRC,IAAI,GAAG,CAAC,CAAC;IACTC,OAAO,GAAG,CAAC,CAAC;IACZkD,MAAM,GAAG,KAAK;IACdC,QAAQ,GAAGA,CAAA,KAAM,CAAC,CAAC;IACnBC,aAAa,GAAG,IAAI;IACpBC,OAAO,GAAGA,CAAA,KAAM,CAAC,CAAC,CAAE;EACtB,CAAC,GAAA1B,IAAA;EAAA,IACD2B,SAAS,GAAAnH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAIoH,CAAC,IAAKA,CAAC;EAAA,IACpBC,YAAY,GAAArH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACpBsH,UAAU,GAAAtH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,oBACjB;IACA,IAAI;MACF,IAAIiE,QAAQ,GAAG,IAAI;MAEnB,IAAI,CAAC8C,MAAM,EAAE;QACX,MAAM9B,uDAAG,CAAC4B,OAAO,CAACU,OAAO,CAAC,CAAC,CAAC;MAC9B;MAEA,MAAMC,IAAI,GAAGxH,UAAS,CAAC,CAAC,CAAC;MACzB,MAAMyH,YAAY,GAAGlD,KAAK,CAACC,OAAO,CAACgD,IAAI,CAAC;MACxC,IAAIC,YAAY,EAAE;QAChB,IAAIH,UAAU,EAAE;UACdrD,QAAQ,GAAG,MAAMwC,wDAAI,CAACE,0DAAS,CAACnH,GAAG,EAAEgI,IAAI,CAAC;QAC5C,CAAC,MAAM;UACLvD,QAAQ,GAAG,EAAE;UACb,KAAK,IAAIyD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACvH,MAAM,EAAEyH,CAAC,EAAE,EAAE;YACpC,MAAM;cAAEhE,MAAM,EAAEiE,OAAO;cAAEhE,GAAG,EAAEiE,IAAI;cAAEhE,IAAI,EAAEiE,KAAK;cAAEhE;YAAQ,CAAC,GAAG2D,IAAI,CAACE,CAAC,CAAC;YACpE,MAAMI,WAAW,GAAG,MAAMrB,wDAAI,CAC5BE,0DAAS,CAACgB,OAAO,CAAC,EAClBC,IAAI,EACJC,KAAK,EACLhE,OACF,CAAC;YACDI,QAAQ,CAAC8D,IAAI,CAACD,WAAW,CAAC;UAC5B;QACF;MACF,CAAC,MAAM;QACL7D,QAAQ,GAAG,MAAMwC,wDAAI,CAACE,0DAAS,CAACjD,MAAM,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAEC,OAAO,CAAC;MAC9D;MACA,IAAIwD,YAAY,IAAIpD,QAAQ,CAAC+D,MAAM,EAAE;QACnC,MAAM,IAAItB,kDAAe,CAACzC,QAAQ,CAAC+D,MAAM,CAAC;MAC5C,CAAC,MAAM,IAAIX,YAAY,IAAIpD,QAAQ,EAAEhE,MAAM,EAAE;QAC3CgE,QAAQ,EAAEgE,OAAO,CAAEC,GAAG,IAAK;UACzB,IAAIA,GAAG,EAAEF,MAAM,EAAE;YACf,MAAM,IAAItB,kDAAe,CAACwB,GAAG,CAACF,MAAM,CAAC;UACvC;QACF,CAAC,CAAC;MACJ;MACA,MAAM/C,uDAAG,CAAC4B,OAAO,CAACsB,OAAO,CAAChB,SAAS,CAAClD,QAAQ,CAAC,CAAC,CAAC;MAC/CiD,OAAO,CAACC,SAAS,CAAClD,QAAQ,CAAC,CAAC;MAE5B,OAAOA,QAAQ;IACjB,CAAC,CAAC,OAAOtC,KAAK,EAAE;MACd,MAAMsD,uDAAG,CAAC4B,OAAO,CAACuB,OAAO,CAACzG,KAAK,CAAC,CAAC;MACjC,OAAOA,KAAK;IACd,CAAC,SAAS;MACR,OAAOqF,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAACC,aAAa,CAAC;IAC3D;EACF,CAAC;AAAA;;;;;;;;;;;;;;ACpFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,CAACoB,YAAY,EAAEC,QAAQ,KACpC,YAAkC;EAAA,IAAjCC,KAAK,GAAAvI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGqI,YAAY;EAAA,IAAEvI,MAAM,GAAAE,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAC3B,IAAIoI,QAAQ,CAACE,cAAc,CAAC1I,MAAM,CAAC2I,IAAI,CAAC,EAAE;IACxC,OAAOH,QAAQ,CAACxI,MAAM,CAAC2I,IAAI,CAAC,CAACF,KAAK,EAAEzI,MAAM,CAAC;EAC7C;EAEA,OAAOyI,KAAK;AACd,CAAC;;;;;;;;;;;;;;;;;;;ACduD;AACN;AAI7B;AACkD;AAEzE,MAAMQ,eAAe,GAAG,IAAIF,uEAA4B,CAAC;EACvDC,4BAA4BA,4DAAAA;AAC9B,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,MAAME,gBAAgB,GAAGJ,qEAAsB,CAAC;EAC9CK,GAAG,EAAE,GAAGlF,8CAAe;AACzB,CAAC,CAAC;AACF,MAAMmF,MAAM,GAAGR,uEAAe,CAACM,gBAAgB,EAAED,eAAe,CAAC;;AAEjE;AACA;AACA;AACA;AACA;;AAEA,MAAMI,KAAK,GAAGR,+DAAiB,CAACO,MAAM,CAAC;AACvCpH,MAAM,CAACqH,KAAK,GAAGA,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7B6B;AACX;AACQ;AACT;AACF;AACE;AACA;AACR;AACH;AAI8B;AACQ;AAKzB;AACwC;AACmB;AACJ;AAC5B;AAElE,MAAMqB,yBAAyB,GAAGA,CAACC,IAAI,EAAEC,KAAK,KAAK;EACjD,IAAID,IAAI,CAACxK,MAAM,EAAE;IACf,KAAK,IAAIyH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG+C,IAAI,CAACxK,MAAM,EAAEyH,CAAC,EAAE,EAAE;MACpC,IAAI+C,IAAI,CAAC/C,CAAC,CAAC,CAACgD,KAAK,KAAKA,KAAK,EAAE;QAC3B,OAAOD,IAAI,CAAC/C,CAAC,CAAC;MAChB;MAEA,MAAMiD,WAAW,GAAGH,yBAAyB,CAACC,IAAI,CAAC/C,CAAC,CAAC,CAAC+C,IAAI,EAAEC,KAAK,CAAC;MAElE,IAAIC,WAAW,EAAE;QACf,OAAOA,WAAW;MACpB;IACF;EACF;AACF,CAAC;AAED,MAAMC,eAAe,GAAGA,CAACC,OAAO,EAAEC,eAAe,EAAEC,YAAY,KAAK;EAClE,MAAM;IAAEC,EAAE;IAAEC,SAAS,EAAEC,QAAQ;IAAET;EAAK,CAAC,GAAGI,OAAO;EACjD,IAAIE,YAAY,CAACC,EAAE,CAAC,IAAID,YAAY,CAACC,EAAE,CAAC,CAACG,UAAU,EAAE;IACnD,IAAI,CAACD,QAAQ,EAAE;MACbjD,qDAAO,CAAC8C,YAAY,CAACC,EAAE,CAAC,CAACI,QAAQ,EAAGC,KAAK,IAAK;QAC5CP,eAAe,CAAC/C,IAAI,CAACsD,KAAK,CAACL,EAAE,CAAC;MAChC,CAAC,CAAC;MACF,IAAIrB,qDAAO,CAACoB,YAAY,CAACC,EAAE,CAAC,CAACI,QAAQ,CAAC,EAAE;QACtCN,eAAe,CAAC/C,IAAI,CAACiD,EAAE,CAAC;MAC1B;IACF,CAAC,MAAM;MACLF,eAAe,CAAC/C,IAAI,CAACiD,EAAE,CAAC;IAC1B;EACF,CAAC,MAAM,IACLD,YAAY,CAACG,QAAQ,CAAC,IACtBH,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAACJ,EAAE,CAAC,CAACG,UAAU,EAC9C;IACAL,eAAe,CAAC/C,IAAI,CAACiD,EAAE,CAAC;EAC1B,CAAC,MAAM;IACL,CAACP,IAAI,IAAI,EAAE,EAAExC,OAAO,CAAEqD,GAAG,IAAK;MAC5BV,eAAe,CAACU,GAAG,EAAER,eAAe,EAAEC,YAAY,CAAC;IACrD,CAAC,CAAC;EACJ;AACF,CAAC;AAEM,MAAMQ,WAAW,GAAGA,CAACd,IAAI,EAAEe,SAAS,KAAK;EAC9C,IAAI,CAAC7B,qDAAO,CAACc,IAAI,CAAC,EAAE;IAClB,OAAOT,+EAAW,CAACS,IAAI,CAAC;EAC1B;EACA,IAAIgB,YAAY,GAAG,CAAC,CAAC;EAErBxD,qDAAO,CAACuD,SAAS,CAACE,OAAO,CAACC,IAAI,EAAE,CAACL,GAAG,EAAEM,aAAa,KAAK;IACtDH,YAAY,CAACG,aAAa,CAAC,GAAG,EAAE;IAChChB,eAAe,CAACU,GAAG,EAAEG,YAAY,CAACG,aAAa,CAAC,EAAEJ,SAAS,CAACE,OAAO,CAAC;EACtE,CAAC,CAAC;EAEFD,YAAY,GAAG/B,oDAAM,CAAC+B,YAAY,EAAE9B,uDAAO,CAAC;EAE5C,OAAOK,+EAAW,CAACH,0DAAmB,CAAC4B,YAAY,CAAC,CAAC;AACvD,CAAC;AAEM,MAAMK,2BAA2B,GAAIC,QAAQ,IAAK;EACvD,IAAIzF,MAAM,GAAG,EAAE;EACfyF,QAAQ,CAACX,QAAQ,CAACnD,OAAO,CAAEoD,KAAK,IAAK;IACnC/E,MAAM,CAACyB,IAAI,CAACsD,KAAK,CAACX,KAAK,CAAC;IACxBpE,MAAM,CAACyB,IAAI,CAAC,GAAG+D,2BAA2B,CAACT,KAAK,CAAC,CAAC;EACpD,CAAC,CAAC;EACF,OAAO/E,MAAM;AACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAM0F,oBAAoB,GAAGA,CAACC,OAAO,EAAEC,UAAU,KAAK;EAC3D,IAAI,CAACA,UAAU,CAACC,UAAU,EAAE;IAC1B,OAAO,EAAE;EACX;EAEA,IAAIC,SAAS,GAAG,CAAC,CAAC;EAElBH,OAAO,CAAChE,OAAO,CAAEoE,MAAM,IAAK;IAC1B,MAAMC,aAAa,GAAGJ,UAAU,CAACC,UAAU,CAACI,MAAM,CAACL,UAAU,CAACM,UAAU,CAAC;IACzE,IAAIC,eAAe,GAAGH,aAAa,CAACD,MAAM,CACvCK,QAAQ,IAAKA,QAAQ,CAACC,WAAW,KAAKN,MAAM,CAACO,IAChD,CAAC;;IAED;IACA,IAAIP,MAAM,CAACK,QAAQ,EAAE;MACnBD,eAAe,GAAGA,eAAe,CAACF,MAAM,CACtCD,aAAa,CAACD,MAAM,CAAEK,QAAQ,IAAKA,QAAQ,CAAChC,KAAK,KAAK2B,MAAM,CAACK,QAAQ,CACvE,CAAC;IACH;IACA,IAAID,eAAe,CAACxM,MAAM,EAAE;MAC1B,MAAM4M,QAAQ,GAAGJ,eAAe,CAAC,CAAC,CAAC,CAACzB,EAAE;MACtC,IAAIP,IAAI,GAAGP,2EAAW,CAACuC,eAAe,CAAC,CAAC,CAAC,CAAC;MAC1C,IAAIK,OAAO,GAAG,EAAE;MAChB,IAAIT,MAAM,CAAC5D,IAAI,KAAK,MAAM,EAAE;QAC1BqE,OAAO,GAAGrC,IAAI,CAAC4B,MAAM,CAAEf,GAAG,IACxBe,MAAM,CAACU,MAAM,CAACxN,GAAG,CAAEyN,KAAK,IAAKA,KAAK,CAACJ,IAAI,CAAC,CAAC3L,QAAQ,CAACqK,GAAG,CAACqB,WAAW,CACnE,CAAC;MACH;MACA,IAAIN,MAAM,CAAC5D,IAAI,KAAK,WAAW,IAAI4D,MAAM,CAACjB,QAAQ,CAACnL,MAAM,EAAE;QACzD,MAAMgN,aAAa,GAAGnB,2BAA2B,CAACO,MAAM,CAAC;QACzDS,OAAO,GAAGrC,IAAI,CAAC4B,MAAM,CAAEf,GAAG,IAAK2B,aAAa,CAAChM,QAAQ,CAACqK,GAAG,CAACZ,KAAK,CAAC,CAAC;QACjE,IAAIoC,OAAO,CAAC7M,MAAM,GAAG,CAAC,IAAI6M,OAAO,CAAC,CAAC,CAAC,CAACrC,IAAI,EAAE;UACzC,MAAMyC,WAAW,GAAGJ,OAAO,CAACvN,GAAG,CAAEmC,KAAK,IACpCA,KAAK,CAAC+I,IAAI,CAAC4B,MAAM,CAAEf,GAAG,IAAK2B,aAAa,CAAChM,QAAQ,CAACqK,GAAG,CAACZ,KAAK,CAAC,CAC9D,CAAC;UACD,MAAMyC,QAAQ,GAAGD,WAAW,CAAC,CAAC,CAAC;UAC/B,IAAIC,QAAQ,IAAIA,QAAQ,CAAClN,MAAM,GAAG,CAAC,EAAE;YACnC6M,OAAO,GAAGlD,qDAAO,CAACsD,WAAW,CAAC;UAChC;QACF;MACF;MAEA,MAAME,GAAG,GAAGN,OAAO,CAACvN,GAAG,CAAEmC,KAAK,IAAKA,KAAK,CAACsJ,EAAE,CAAC;MAC5C,IAAIoC,GAAG,CAACnN,MAAM,GAAG,CAAC,EAAE;QAClBmM,SAAS,CAACS,QAAQ,CAAC,GAAGO,GAAG;QAEzB,MAAMC,MAAM,GAAGf,aAAa,CAACD,MAAM,CAChCK,QAAQ,IAAKA,QAAQ,CAACC,WAAW,KAAK,QACzC,CAAC;QACD,IAAIU,MAAM,IAAIA,MAAM,CAACpN,MAAM,GAAG,CAAC,EAAE;UAC/B,MAAMqN,aAAa,GAAGD,MAAM,CAAC,CAAC,CAAC,CAAC5C,IAAI,CAAC4B,MAAM,CACxCkB,iBAAiB,IAChBA,iBAAiB,CAACZ,WAAW,KAAK,gBACtC,CAAC,CAAC,CAAC,CAAC;UACJ,IAAIW,aAAa,EAAE;YACjBlB,SAAS,CAACkB,aAAa,CAACE,WAAW,CAAC,GAAG,CAACF,aAAa,CAACtC,EAAE,CAAC;UAC3D;QACF;MACF;IACF;EACF,CAAC,CAAC;EAEF,OAAOnB,0DAAmB,CAACuC,SAAS,CAAC;AACvC,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMqB,wBAAwB,GAAGA,CAAC3J,OAAO,EAAE4J,gBAAgB,KAAK;EAC9D,MAAMC,cAAc,GAAIC,KAAK,IAAK;IAChC,MAAM;MACJvN,MAAM;MACN4C,QAAQ;MACR7C,MAAM;MACNyN,KAAK;MACL3B,UAAU;MACV4B,mBAAmB,GAAG,CAAC,CAAC;MACxBC,yBAAyB;MACzBzN,YAAY;MACZH,QAAQ,EAAE;QAAEyB,EAAE;QAAEoM,aAAa;QAAExN,OAAO;QAAEC;MAAc;IACxD,CAAC,GAAGmN,KAAK;IACT,MAAM;MAAEK,KAAK;MAAE1F,KAAK,EAAE2F,aAAa,GAAG,CAAC;IAAE,CAAC,GAAGjL,QAAQ;IACrD,MAAM;MAAEjC,OAAO;MAAEmN,UAAU;MAAEC;IAAY,CAAC,GAAG/N,MAAM;IAEnD,MAAMgO,MAAM,GAAG3J,iDAAG,CAAC9C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC;MAAE0M,yBAAyB;MAAEC;IAAoB,CAAC,CAAC,GACxDjE,0GAAiB,CAAC;MAChBtJ,OAAO;MACPqN,MAAM;MACNjO;IACF,CAAC,CAAC;;IAEJ;IACA,MAAMoO,OAAO,GAAGnO,MAAM,CAACmO,OAAO,IAAIN,aAAa,CAACM,OAAO;IACvD,MAAMC,gBAAgB,GAAGnF,6CAAM,CAAC;MAC9BqC,IAAI,EAAE,CAAC,CAAC;MACR+C,aAAa,EAAE,CAAC,CAAC;MACjB1N;IACF,CAAC,CAAC;IAEF,MAAM2N,iBAAiB,GACrBnO,OAAO,IAAIC,aAAa,GAAGuN,aAAa,GAAG1N,YAAY;IACzD,MAAMsO,WAAW,GAAGxE,8FAAa,CAACuE,iBAAiB,EAAEtO,MAAM,CAACW,OAAO,CAAC;IACpE,MAAM6N,OAAO,GAAGtE,iFAAc,CAAClK,MAAM,CAACW,OAAO,CAAC;IAC9C,MAAM8N,MAAM,GAAG,CAAC,CAACF,WAAW,IAAIA,WAAW,CAACE,MAAM;IAClD,MAAMC,YAAY,GAChB,OAAOjL,OAAO,KAAK,UAAU,GAAGA,OAAO,CAAC8J,KAAK,CAAC,GAAG9J,OAAO;IAC1D,MAAMkL,eAAe,GAAGtK,iDAAG,CACzBqK,YAAY,EACZ,2BAA2B,EAC3BhB,yBACF,CAAC;IAED1E,gDAAS,CACP,MAAM,MAAM;MACVuE,KAAK,CAAC7D,oBAAoB,CAAC,CAAC;IAC9B,CAAC,EACD,EACF,CAAC;IAEDV,gDAAS,CAAC,MAAM;MACd,IAAIiF,yBAAyB,IAAI,CAACjO,MAAM,CAACoK,IAAI,EAAE;QAC7C8D,mBAAmB,CAAC,CAAC;MACvB;IACF,CAAC,EAAE,CAACD,yBAAyB,EAAEjO,MAAM,CAACoK,IAAI,CAAC,CAAC;IAE5CpB,gDAAS,CAAC,MAAM;MACd,IAAIyF,MAAM,EAAE;QACVlB,KAAK,CAAC9D,eAAe,CAAC;UACpBgF,MAAM;UACNG,mBAAmB,EAAE,IAAI;UACzBC,YAAY,EACTpB,mBAAmB,IAAIA,mBAAmB,CAACoB,YAAY,IAAK,EAAE;UACjEF;QACF,CAAC,CAAC;MACJ;IACF,CAAC,EAAE,CAACF,MAAM,EAAEE,eAAe,CAAC,CAAC;IAE7B3F,gDAAS,CAAC,MAAM;MACd;MACA;MACA;MACA,IAAI,CAACM,qDAAO,CAACuC,UAAU,CAAC,EAAE;QACxB;QACA,MAAMiD,YAAY,GAAGlB,KAAK,CAACxD,IAAI;QAC/B,IAAI0E,YAAY,EAAE;UAChBlF,0FAA0B,CACxBiC,UAAU,EACVuC,gBAAgB,CAAC/C,OAAO,EACxByD,YACF,CAAC;QACH;MACF;IACF,CAAC,EAAE,EAAE,CAAC;IAEN,MAAMC,sBAAsB,GAAIC,eAAe,IAAK;MAClD,IAAI,CAAC1F,qDAAO,CAACuC,UAAU,CAAC,EAAE;QACxB,MAAMC,UAAU,GAAGD,UAAU,CAACC,UAAU,IAAI,EAAE;QAC9C,MAAMmD,oBAAoB,GAAG,CAC3B,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,iCAAiC,EACjC,gBAAgB,EAChB,oBAAoB,CACrB;QACD,MAAMC,UAAU,GAAGpD,UAAU,CAACqD,IAAI,CAAChK,IAAA;UAAA,IAAC;YAAEkF;UAAM,CAAC,GAAAlF,IAAA;UAAA,OAC3C8J,oBAAoB,CAACrO,QAAQ,CAACyJ,KAAK,CAAC;QAAA,CACtC,CAAC;QAED,MAAM+E,oBAAoB,GACvBF,UAAU,IAAIA,UAAU,CAAC9E,IAAI,IAAI8E,UAAU,CAAC9E,IAAI,CAAC,CAAC,CAAC,IAAK,IAAI;QAC/D,IAAIiF,OAAO;QACX,IACED,oBAAoB,IACpBH,oBAAoB,CAACrO,QAAQ,CAACwO,oBAAoB,CAAC/E,KAAK,CAAC,EACzD;UACAgF,OAAO,GAAGD,oBAAoB,CAAChF,IAAI,CAAC+E,IAAI,CACtCG,KAAA;YAAA,IAAC;cAAEjF;YAAM,CAAC,GAAAiF,KAAA;YAAA,OAAKjF,KAAK,KAAK2E,eAAe;UAAA,CAC1C,CAAC;QACH,CAAC,MAAM;UACLK,OAAO,GAAGH,UAAU,CAAC9E,IAAI,CAAC+E,IAAI,CAC5BI,KAAA;YAAA,IAAC;cAAElF;YAAM,CAAC,GAAAkF,KAAA;YAAA,OACRlF,KAAK,KAAK2E,eAAe,IACzB3E,KAAK,CAACzJ,QAAQ,CAAC,QAAQoO,eAAe,EAAE,CAAC;UAAA,CAC7C,CAAC;UACD;UACA;UACA,IAAIR,OAAO,IAAI,CAACa,OAAO,EAAE;YACvBA,OAAO,GAAGH,UAAU,CAAC9E,IAAI,CAAC4E,eAAe,GAAG,CAAC,CAAC;UAChD;QACF;QACA,IAAIK,OAAO,EAAE;UACX,OAAO,IAAIH,UAAU,CAACvE,EAAE,OAAO0E,OAAO,CAAC1E,EAAE,GAAG;QAC9C;MACF;MACA,OAAO,EAAE;IACX,CAAC;IAED,IAAI,CAAC4D,WAAW,IAAIjF,qDAAO,CAACuC,UAAU,CAAC,EAAE;MACvC,OAAO,IAAI;IACb;IAEA,IAAIiC,UAAU,EAAE;MACd,MAAM0B,UAAU,GAAGT,sBAAsB,CAACjB,UAAU,CAAC;MACrD,IAAI0B,UAAU,EAAE;QACd,MAAMC,iBAAiB,GAAG,SAASD,UAAU,EAAE;QAC/CzP,MAAM,CAACc,OAAO,CACZ,IAAIF,OAAO,2BAA2B8O,iBAAiB,EACzD,CAAC;MACH;MACA,OAAO,IAAI;IACb,CAAC,MAAM,IAAItB,OAAO,EAAE;MAClB,MAAMrC,UAAU,GAAGD,UAAU,CAACC,UAAU,IAAI,EAAE;MAC9C,MAAM4D,uBAAuB,GAAG,CAC9B,UAAU,EACV,iCAAiC,CAClC;MACD,MAAMC,aAAa,GAAG7D,UAAU,CAACqD,IAAI,CAACS,KAAA;QAAA,IAAC;UAAEvF;QAAM,CAAC,GAAAuF,KAAA;QAAA,OAC9CF,uBAAuB,CAAC9O,QAAQ,CAACyJ,KAAK,CAAC;MAAA,CACzC,CAAC;MAED,MAAM+E,oBAAoB,GACvBO,aAAa,IAAIA,aAAa,CAACvF,IAAI,IAAIuF,aAAa,CAACvF,IAAI,CAAC,CAAC,CAAC,IAAK,IAAI;MACxE,IAAIyF,UAAU;MACd,IACET,oBAAoB,IACpBM,uBAAuB,CAAC9O,QAAQ,CAACwO,oBAAoB,CAAC/E,KAAK,CAAC,EAC5D;QACAwF,UAAU,GAAGT,oBAAoB,CAAChF,IAAI,CAAC+D,OAAO,GAAG,CAAC,CAAC;MACrD,CAAC,MAAM;QACL0B,UAAU,GAAGF,aAAa,IAAIA,aAAa,CAACvF,IAAI,CAAC+D,OAAO,GAAG,CAAC,CAAC;MAC/D;MAEA,IAAI0B,UAAU,EAAE;QACd,IAAIL,UAAU,GAAG,IAAIG,aAAa,CAAChF,EAAE,OAAOkF,UAAU,CAAClF,EAAE,GAAG;QAE5D,MAAMmF,oCAAoC,GAAG,CAC3C,+BAA+B,CAChC;QACD,MAAMC,gCAAgC,GAAGjE,UAAU,CAACqD,IAAI,CAACa,KAAA;UAAA,IAAC;YAAE3F;UAAM,CAAC,GAAA2F,KAAA;UAAA,OACjEF,oCAAoC,CAAClP,QAAQ,CAACyJ,KAAK,CAAC;QAAA,CACtD,CAAC;;QAED;AACR;AACA;AACA;AACA;QACQ,MAAM4F,yBAAyB,GAAG,CAAClC,WAAW;QAC9C,IAAIkC,yBAAyB,EAAE;UAC7B,MAAMC,qBAAqB,GAAG/F,yBAAyB,CACrD4F,gCAAgC,CAAC3F,IAAI,EACrC,kBACF,CAAC;UAED,MAAM+F,gBAAgB,GAAGhG,yBAAyB,CAChD4F,gCAAgC,CAAC3F,IAAI,EACrC,mBACF,CAAC;UACD,IAAI8F,qBAAqB,IAAIC,gBAAgB,EAAE;YAC7C,IAAIC,aAAa,GAAG,EAAE;YACtB,IAAID,gBAAgB,CAACxF,EAAE,EAAE;cACvByF,aAAa,GAAG,IAAID,gBAAgB,CAACxF,EAAE,EAAE;YAC3C;YACA6E,UAAU,IAAI,KAAKO,gCAAgC,CAACpF,EAAE,OAAOuF,qBAAqB,CAACvF,EAAE,GAAGyF,aAAa,GAAG;UAC1G;QACF;QAEA,MAAMX,iBAAiB,GAAG,SAASD,UAAU,EAAE;QAC/CzP,MAAM,CAACc,OAAO,CACZ,IAAIF,OAAO,2BAA2B8O,iBAAiB,EACzD,CAAC;MACH;IACF,CAAC,MAAM,IAAI7M,QAAQ,CAACC,QAAQ,CAACjC,QAAQ,CAAC,UAAU,CAAC,EAAE;MACjD,IAAIkO,YAAY,GAAG,EAAE;MACrB,MAAM;QACJ5G,KAAK,EAAE;UACLmI,KAAK;UACLC,oBAAoB;UACpBxC,UAAU,EAAEyC,mBAAmB;UAC/BC,gBAAgB;UAChB,GAAGC;QACL;MACF,CAAC,GAAG7N,QAAQ;MACZ,IAAIyN,KAAK,EAAE;QACTvB,YAAY,GAAGhF,2EAAW,CAAC+B,UAAU,EAAEwE,KAAK,CAAC;MAC/C;MACA,IAAIC,oBAAoB,EAAE;QACxBxB,YAAY,GAAGnD,oBAAoB,CAAC2E,oBAAoB,EAAEzE,UAAU,CAAC;MACvE;MAEAjC,0FAA0B,CACxBiC,UAAU,EACVuC,gBAAgB,CAAC/C,OAAO,EACxByD,YACF,CAAC;MACD,MAAM4B,SAAS,GACblD,KAAK,CAACjB,IAAI,KAAK,4BAA4B,GAAG,aAAa,GAAG,EAAE;MAClE,MAAM;QAAEoE,UAAU;QAAEC;MAAW,CAAC,GAAGhD,KAAK;MACxC,IAAI2C,mBAAmB,EAAE;QACvB,MAAMf,UAAU,GAAGT,sBAAsB,CAACwB,mBAAmB,CAAC;QAC9DzB,YAAY,GAAGA,YAAY,GACvB,GAAGA,YAAY,IAAIU,UAAU,EAAE,GAC/BA,UAAU;MAChB;MACA,MAAMqB,SAAS,GAAGL,gBAAgB,IAAI,SAAS;MAC/CzQ,MAAM,CAACc,OAAO,CAAC;QACbgC,QAAQ,EAAE,IAAIlC,OAAO,iBAAiBkQ,SAAS,GAAGH,SAAS,EAAE;QAC7D9C,KAAK,EAAE;UACLxD,IAAI,EAAE0E,YAAY;UAClB6B,UAAU;UACVC;QACF,CAAC;QACD1I,KAAK,EAAEuI;MACT,CAAC,CAAC;IACJ;IAEA,oBACE1H,gDAAA,CAACsE,gBAAgB,EAAA0D,QAAA;MACfC,GAAG,EAAErQ;IAAQ,GACT4M,KAAK;MACTa,gBAAgB,EAAEA,gBAAiB;MACnClD,WAAW,EAAEA,WAAY;MACzBqD,WAAW,EAAEA;IAAY,EAC1B,CAAC;EAEN,CAAC;EAEDjB,cAAc,CAAC2D,WAAW,GAAG,gBAAgB;EAE7C,OAAO7H,iDAAO,CACZF,oDAAO,CACJhB,KAAK,KAAM;IACV2D,UAAU,EAAE3D,KAAK,CAACgJ,UAAU,CAACrF;EAC/B,CAAC,CAAC,EACF;IACEpC,eAAe;IACfC,oBAAoBA,kGAAAA;EACtB,CACF,CAAC,EACDM,wGAAuB,CAAC,CAC1B,CAAC,CAACsD,cAAc,CAAC;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAM6D,YAAY,GAAGA,CAACvF,OAAO,EAAEiD,YAAY,KAAK;EAC9C,MAAMuC,WAAW,GAAGvC,YAAY,IAAI,SAAS;EAC7C,IAAIwC,UAAU,GAAG,KAAK;EAEtBzF,OAAO,CAAC1M,GAAG,CAAE8M,MAAM,IAAK;IACtB,IAAIA,MAAM,CAACsF,KAAK,KAAK,SAAS,EAAE;MAC9BD,UAAU,GAAG,IAAI;MACjBrF,MAAM,CAACsF,KAAK,GAAGF,WAAW;MAC1BpF,MAAM,CAACM,WAAW,GAAG8E,WAAW;IAClC;IAEA,OAAOpF,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IACLuF,IAAI,EAAE3F,OAAO;IACbyF;EACF,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,sBAAsB,GAAGA,CAAC3F,UAAU,EAAEgD,YAAY,KAAK;EAC3D,IAAIwC,UAAU,GAAG,KAAK;EACtB,IAAIxF,UAAU,IAAIA,UAAU,CAACC,UAAU,IAAID,UAAU,CAACC,UAAU,CAAClM,MAAM,EAAE;IACvE,MAAMgM,OAAO,GAAGuF,YAAY,CAACtF,UAAU,CAACC,UAAU,EAAE+C,YAAY,CAAC;IACjEhD,UAAU,CAACC,UAAU,GAAGF,OAAO,CAAC2F,IAAI;IACpCF,UAAU,GAAGzF,OAAO,CAACyF,UAAU;EACjC;EAEA,IACE,CAACA,UAAU,IACXxF,UAAU,IACVA,UAAU,CAACM,UAAU,IACrBN,UAAU,CAACM,UAAU,CAACvM,MAAM,EAC5B;IACA,MAAMgM,OAAO,GAAGuF,YAAY,CAACtF,UAAU,CAACM,UAAU,EAAE0C,YAAY,CAAC;IACjEhD,UAAU,CAACM,UAAU,GAAGP,OAAO,CAAC2F,IAAI;EACtC;EAEA,OAAO1F,UAAU;AACnB,CAAC;AAED,iEAAeuB,wBAAwB,EAAC;;;;;;;;;;;;;;;;;AC/ed;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASsE,cAAcA,CAACC,SAAS,EAAEC,MAAM,EAAoB;EAAA,IAAlBC,QAAQ,GAAAlS,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EACxE,MAAMmS,OAAO,GAAG;IACdC,IAAI,EAAE,UAAU;IAChBC,WAAW,EAAE,iBAAiB;IAC9BC,gBAAgB,EAAE,mBAAmB;IACrCC,wBAAwB,EAAE,sBAAsB;IAChDC,IAAI,EAAE,UAAU;IAChBC,eAAe,EAAE,QAAQ;IACzBC,oBAAoB,EAAE,iBAAiB;IACvCC,gBAAgB,EAAE,kBAAkB;IACpCC,mBAAmB,EAAE,aAAa;IAClCC,QAAQ,EAAE,cAAc;IACxBC,YAAY,EAAE,iBAAiB;IAC/BC,SAAS,EAAE,SAAS;IACpBC,YAAY,EAAE,YAAY;IAC1BC,cAAc,EAAE,aAAa;IAC7BC,YAAY,EAAE,kBAAkB;IAChCC,sBAAsB,EAAE,UAAU;IAClCC,mBAAmB,EAAE;EACvB,CAAC;EACD,IAAIpB,SAAS,KAAK,IAAI,EAAE;IACtB,OAAO,EAAE;EACX;EACA,IAAIqB,EAAE,GAAGvB,4CAAK,CAACE,SAAS,CAAC;EACzB,IAAIE,QAAQ,EAAE;IACZmB,EAAE,GAAGA,EAAE,CAACC,EAAE,CAACpB,QAAQ,CAAC;EACtB,CAAC,MAAM;IACLmB,EAAE,GAAGA,EAAE,CAACE,GAAG,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACvB;EAEA,OAAOH,EAAE,CAACI,MAAM,CAACtB,OAAO,CAACF,MAAM,CAAC,CAAC;AACnC;;;;;;;;;;;;;;;;;;;ACxC0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMyB,uBAAuB,GAAGA,CAACC,mBAAmB,EAAEC,gBAAgB,KAAK;EACzE,IAAI,CAACA,gBAAgB,EAAE;IACrB,OAAO,IAAI;EACb;EAEA,IAAIrP,KAAK,CAACC,OAAO,CAACoP,gBAAgB,CAAC,EAAE;IACnC,OAAOA,gBAAgB,CAACvH,MAAM,CAAEwH,CAAC,IAAKA,CAAC,CAAC7I,EAAE,KAAK2I,mBAAmB,CAAC,CAAC,CAAC,CAAC;EACxE;EACA,OAAOC,gBAAgB,CAACD,mBAAmB,CAAC;AAC9C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,wBAAwB,GAAG,SAAAA,CAC/B9E,eAAe,EACf+E,sBAAsB,EAEnB;EAAA,IADHC,WAAW,GAAAhU,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG8R,4CAAK,CAAC,CAAC;EAErB,MAAMmC,qBAAqB,GAAGP,uBAAuB,CACnD1E,eAAe,EACf+E,sBACF,CAAC;EAED,IAAI,CAACE,qBAAqB,EAAE;IAC1B,OAAO,KAAK;EACd;EAEA,MAAMC,iBAAiB,GAAGpC,4CAAK,CAACmC,qBAAqB,CAACE,kBAAkB,CAAC;EACzE,MAAMC,eAAe,GAAGtC,4CAAK,CAACmC,qBAAqB,CAACI,OAAO,CAAC;EAC5D,MAAMC,kBAAkB,GAAGxC,4CAAK,CAACkC,WAAW,CAAC;EAE7C,OAAOM,kBAAkB,CAACC,SAAS,CAACL,iBAAiB,EAAEE,eAAe,CAAC;AACzE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,6BAA6B,GAAG,SAAAA,CACpCxF,eAAe,EACf+E,sBAAsB,EAEnB;EAAA,IADHC,WAAW,GAAAhU,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG8R,4CAAK,CAAC,CAAC;EAErB,MAAM2C,gBAAgB,GAAGf,uBAAuB,CAC9C1E,eAAe,EACf+E,sBACF,CAAC;EAED,IAAI,CAACU,gBAAgB,EAAE;IACrB,OAAO,KAAK;EACd;EAEA,MAAML,eAAe,GAAGtC,4CAAK,CAAC2C,gBAAgB,CAACJ,OAAO,CAAC;EACvD,MAAMC,kBAAkB,GAAGxC,4CAAK,CAACkC,WAAW,CAAC;EAC7C,OAAOM,kBAAkB,CAACI,OAAO,CAACN,eAAe,CAAC;AACpD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMO,uBAAuB,GAAG,SAAAA,CAC9B3F,eAAe,EACf+E,sBAAsB,EAEnB;EAAA,IADHC,WAAW,GAAAhU,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG8R,4CAAK,CAAC,CAAC;EAErB,MAAM2C,gBAAgB,GAAGf,uBAAuB,CAC9C1E,eAAe,EACf+E,sBACF,CAAC;EAED,IAAI,CAACU,gBAAgB,EAAE;IACrB,OAAO,KAAK;EACd;EAEA,MAAMG,qBAAqB,GAAG9C,4CAAK,CAAC2C,gBAAgB,CAACN,kBAAkB,CAAC;EACxE,MAAMG,kBAAkB,GAAGxC,4CAAK,CAACkC,WAAW,CAAC;EAC7C,OAAOM,kBAAkB,CAACO,QAAQ,CAACD,qBAAqB,CAAC;AAC3D,CAAC;;;;;;;;;;;;;;;;ACvGmD;AAE7C,MAAMG,wBAAwB,GAAGD,kEAAa,CACnD,6CACF,CAAC;;;;;;;;;;;;;;;;;;;ACJgC;AACgC;AACZ;AACrB;AAEhC,MAAMI,4BAA4B,GAAGnP,IAAI,CAACoP,KAAK,CAC7CrT,MAAM,CAACsT,YAAY,CAACC,OAAO,CAACJ,yCAAK,CAACK,0BAA0B,CAC9D,CAAC;AAED,MAAMjN,YAAY,GAAG;EACnBkN,qBAAqB,EAAE,CAAC5L,+CAAO,CAACuL,4BAA4B,CAAC,GACzDA,4BAA4B,CAAClG,eAAe,GAC5C,IAAI,CAAE;AACZ,CAAC;AAED,MAAMwG,OAAO,GAAGR,gFAAa,CAAC3M,YAAY,EAAE;EAC1C,CAAC0M,8DAAwB,GAAG,CAACxM,KAAK,EAAA/C,IAAA;IAAA,IAAE;MAAEiQ;IAAQ,CAAC,GAAAjQ,IAAA;IAAA,OAAM;MACnD,GAAG+C,KAAK;MACRgN,qBAAqB,EAAEE;IACzB,CAAC;EAAA;AACH,CAAC,CAAC;AAEF,iEAAeD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBmC;AACF;AAEhD,MAAMM,OAAO,GAAG;EACrBC,oBAAoB,EAAE,wBAAwB;EAC9CC,kBAAkB,EAAE,sBAAsB;EAC1CC,mBAAmB,EAAE,uBAAuB;EAC5CC,mBAAmB,EAAE,uBAAuB;EAC5CC,2BAA2B,EAAE,gCAAgC;EAC7DC,sBAAsB,EAAE,2BAA2B;EACnDC,YAAY,EAAE,eAAe;EAC7BC,YAAY,EAAE,eAAe;EAC7BC,UAAU,EAAE,aAAa;EACzBC,WAAW,EAAE,cAAc;EAC3BC,WAAW,EAAE,cAAc;EAC3BC,uBAAuB,EAAE,6BAA6B;EACtDC,uBAAuB,EAAE,4BAA4B;EACrDC,uBAAuB,EAAE,4BAA4B;EACrDC,oBAAoB,EAAE;AACxB,CAAC;AAEM,MAAM5B,KAAK,GAAG;EACnB6B,QAAQ,EAAE,eAAe;EACzBC,MAAM,EAAE,aAAa;EACrBC,OAAO,EAAE,cAAc;EACvBC,OAAO,EAAE,cAAc;EACvBjI,eAAe,EAAE,uBAAuB;EACxCkI,aAAa,EAAE,qBAAqB;EACpCC,kBAAkB,EAAE,sBAAsB;EAC1CC,IAAI,EAAE,WAAW;EACjBC,GAAG,EAAE,KAAK;EACVC,GAAG,EAAE,KAAK;EACVC,GAAG,EAAE,KAAK;EACVC,GAAG,EAAE,KAAK;EACVlC,0BAA0B,EAAE;AAC9B,CAAC;;AAED;AACO,MAAMmC,WAAW,GAAG;EACzB/M,KAAK,EAAE,aAAa;EACpBsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAAC8B;AACd,CAAC;;AAED;AACO,MAAMW,YAAY,GAAG;EAC1BhN,KAAK,EAAE,cAAc;EACrBsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAAC+B;AACd,CAAC;;AAED;AACO,MAAMW,YAAY,GAAG;EAC1BjN,KAAK,EAAE,cAAc;EACrBsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAACgC;AACd,CAAC;;AAED;AACO,MAAMW,aAAa,GAAG;EAC3BlN,KAAK,EAAE,eAAe;EACtBsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAAC6B;AACd,CAAC;;AAED;AACO,MAAMe,gBAAgB,GAAG;EAC9BnN,KAAK,EAAE,EAAE;EACTsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAAC6B;AACd,CAAC;;AAED;AACO,MAAMgB,cAAc,GAAG;EAC5BpN,KAAK,EAAE,EAAE;EACTsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAAC8B;AACd,CAAC;;AAED;AACO,MAAMgB,eAAe,GAAG;EAC7BrN,KAAK,EAAE,EAAE;EACTsC,KAAK,EAAE,CAAC,CAAC;EACTvE,IAAI,EAAEwM,KAAK,CAACgC;AACd,CAAC;;AAED;AACO,MAAMe,YAAY,GAAG;EAC1BtN,KAAK,EAAE,WAAW;EAClBsC,KAAK,EAAE,CAAC;AACV,CAAC;;AAED;AACO,MAAMiL,iBAAiB,GAAG;EAC/BC,YAAY,EAAEN,aAAa;EAC3B7K,MAAM,EAAE,CAAC6K,aAAa;AACxB,CAAC;;AAED;AACO,MAAMO,eAAe,GAAG;EAC7BD,YAAY,EAAET,WAAW;EACzB1K,MAAM,EAAE,CAAC0K,WAAW;AACtB,CAAC;;AAED;AACO,MAAMW,gBAAgB,GAAG;EAC9BF,YAAY,EAAER,YAAY;EAC1B3K,MAAM,EAAE,CAAC2K,YAAY,EAAEC,YAAY;AACrC,CAAC;;AAED;AACO,MAAMU,gBAAgB,GAAG;EAC9BH,YAAY,EAAEH,eAAe;EAC7BhL,MAAM,EAAE;AACV,CAAC;AAEM,MAAMuL,aAAa,GAAG;EAC3BC,SAAS,EAAEN,iBAAiB,CAAClL,MAAM;EACnCyL,OAAO,EAAEL,eAAe,CAACpL,MAAM;EAC/B0L,QAAQ,EAAEL,gBAAgB,CAACrL,MAAM;EACjC2L,QAAQ,EAAEL,gBAAgB,CAACtL,MAAM;EACjC4L,UAAU,EAAElB,WAAW;EACvBmB,WAAW,EAAElB,YAAY;EACzBmB,WAAW,EAAElB,YAAY;EACzBb,QAAQ,EAAEmB,iBAAiB,CAACC,YAAY;EACxCnB,MAAM,EAAEoB,eAAe,CAACD,YAAY;EACpClB,OAAO,EAAEoB,gBAAgB,CAACF,YAAY;EACtCjB,OAAO,EAAEoB,gBAAgB,CAACH;AAC5B,CAAC;AAEM,MAAMY,OAAO,GAAGtT,IAAA,IAAgD;EAAA,IAA/C;IAAE5B,IAAI,GAAG,CAAC,CAAC;IAAEyE,YAAY;IAAEI,IAAI;IAAEuO;EAAQ,CAAC,GAAAxR,IAAA;EAChE,MAAMpD,SAAS,GAAGqG,IAAI,KAAKwM,KAAK,CAACgC,OAAO;EACxC,MAAM8B,UAAU,GAAG3W,SAAS,GACxB4W,MAAM,CAACC,IAAI,CAACrV,IAAI,CAAC,CACdsV,IAAI,CAAC,CAACC,KAAK,EAAEC,MAAM,KAAK;IACvB,MAAMC,gBAAgB,GAAG,GAAGzV,IAAI,CAC9BuV,KAAK,CACN,CAACG,SAAS,CAACC,WAAW,CAAC,CAAC,GAAG3V,IAAI,CAACuV,KAAK,CAAC,CAACK,UAAU,CAACD,WAAW,CAAC,CAAC,EAAE;IAClE,MAAME,iBAAiB,GAAG,GAAG7V,IAAI,CAC/BwV,MAAM,CACP,CAACE,SAAS,CAACC,WAAW,CAAC,CAAC,GAAG3V,IAAI,CAACwV,MAAM,CAAC,CAACI,UAAU,CAACD,WAAW,CAAC,CAAC,EAAE;IACnE,IAAIF,gBAAgB,GAAGI,iBAAiB,EAAE;MACxC,OAAO,CAAC;IACV;IACA,IAAIJ,gBAAgB,GAAGI,iBAAiB,EAAE;MACxC,OAAO,CAAC,CAAC;IACX;IACA,OAAO,CAAC;EACV,CAAC,CAAC,CACDla,GAAG,CAAEma,KAAK,KAAM;IACfhP,KAAK,EAAE,GAAG9G,IAAI,CAAC8V,KAAK,CAAC,CAACF,UAAU,IAAI5V,IAAI,CAAC8V,KAAK,CAAC,CAACJ,SAAS,EAAE;IAC3DtM,KAAK,EAAEgK,OAAO,GAAG,GAAGA,OAAO,CAAChM,EAAE,IAAIpH,IAAI,CAAC8V,KAAK,CAAC,CAAC1O,EAAE,EAAE,GAAGpH,IAAI,CAAC8V,KAAK,CAAC,CAAC1O,EAAE;IACnEvC,IAAI;IACJkR,SAAS,EAAE/V,IAAI,CAAC8V,KAAK,CAAC,CAACF,UAAU;IACjCI,QAAQ,EAAEhW,IAAI,CAAC8V,KAAK,CAAC,CAACJ,SAAS;IAC/BtO,EAAE,EAAEgM,OAAO,GAAG,GAAGA,OAAO,CAAChM,EAAE,IAAIpH,IAAI,CAAC8V,KAAK,CAAC,CAAC1O,EAAE,EAAE,GAAGpH,IAAI,CAAC8V,KAAK,CAAC,CAAC1O;EAChE,CAAC,CAAC,CAAC;EACL;EACAgO,MAAM,CAACC,IAAI,CAACrV,IAAI,CAAC,CACdsV,IAAI,CAAC,CAACC,KAAK,EAAEC,MAAM,KAAK;IACvB,IACExV,IAAI,CAACuV,KAAK,CAAC,CAACvM,IAAI,CAAC2M,WAAW,CAAC,CAAC,GAAG3V,IAAI,CAACwV,MAAM,CAAC,CAACxM,IAAI,CAAC2M,WAAW,CAAC,CAAC,EAChE;MACA,OAAO,CAAC;IACV;IACA,IACE3V,IAAI,CAACuV,KAAK,CAAC,CAACvM,IAAI,CAAC2M,WAAW,CAAC,CAAC,GAAG3V,IAAI,CAACwV,MAAM,CAAC,CAACxM,IAAI,CAAC2M,WAAW,CAAC,CAAC,EAChE;MACA,OAAO,CAAC,CAAC;IACX;IACA,OAAO,CAAC;EACV,CAAC,CAAC,CACDha,GAAG,CAAEma,KAAK,KAAM;IACfhP,KAAK,EAAE9G,IAAI,CAAC8V,KAAK,CAAC,CAAC9M,IAAI;IACvBI,KAAK,EAAEpJ,IAAI,CAAC8V,KAAK,CAAC,CAAC1O,EAAE;IACrBA,EAAE,EAAEpH,IAAI,CAAC8V,KAAK,CAAC,CAAC1O,EAAE;IAClBvC;EACF,CAAC,CAAC,CAAC;;EAET;EACA,OAAO;IACLsQ,UAAU;IACVc,cAAc,EACZd,UAAU,CAAC9Y,MAAM,GAAG,CAAC,GAAG,CAAC,GAAGoI,YAAY,EAAE,GAAG0Q,UAAU,CAAC,GAAGA;EAC/D,CAAC;AACH,CAAC;AAEM,MAAMe,mBAAmB,GAAIlW,IAAI,IACtCgS,8CAAM,CACJhS,IAAI,EACJ,CAACmW,aAAa,EAAEjD,QAAQ,KAAK;EAC3B,MAAMkD,eAAe,GAAGpE,8CAAM,CAC5BkB,QAAQ,CAAC0B,OAAO,EAChB,CAACyB,WAAW,EAAElD,MAAM,MAAM;IACxB,GAAGkD,WAAW;IACd,IAAI,CAACtQ,+CAAO,CAACoN,MAAM,CAAC0B,QAAQ,CAAC,GAAG;MAAE,CAAC1B,MAAM,CAAC/L,EAAE,GAAG+L;IAAO,CAAC,GAAG,IAAI;EAChE,CAAC,CAAC,EACF,CAAC,CACH,CAAC;EACD,OAAO;IACL,GAAGgD,aAAa;IAChB,IAAI,CAACpQ,+CAAO,CAACqQ,eAAe,CAAC,GACzB;MACE,CAAClD,QAAQ,CAAC9L,EAAE,GAAG;QACb,GAAG8L,QAAQ;QACX0B,OAAO,EAAEwB;MACX;IACF,CAAC,GACD,IAAI;EACV,CAAC;AACH,CAAC,EACD,CAAC,CACH,CAAC;AAEI,MAAME,0BAA0B,GAAGA,CACxCtG,gBAAgB,EAChBuG,mBAAmB,KAEnBvG,gBAAgB,CACbvH,MAAM,CAAE+N,MAAM,IAAKA,MAAM,CAACpP,EAAE,IAAImP,mBAAmB,CAAC,CACpD5a,GAAG,CAAE6a,MAAM,KAAM;EAChB1P,KAAK,EAAE0P,MAAM,CAACC,YAAY;EAC1BrN,KAAK,EAAEoN,MAAM,CAACpP,EAAE;EAChBvC,IAAI,EAAEwM,KAAK,CAACjG;AACd,CAAC,CAAC,CAAC;AAEA,MAAMsL,4BAA4B,GAAIC,sBAAsB,KAAM;EACvErC,YAAY,EAAE;IACZxN,KAAK,EAAE6P,sBAAsB,CAACF,YAAY;IAC1CrN,KAAK,EAAEuN,sBAAsB,CAACvP,EAAE;IAChCvC,IAAI,EAAEwM,KAAK,CAACjG;EACd,CAAC;EACDjC,MAAM,EAAE;AACV,CAAC,CAAC;AAEF,MAAMyN,cAAc,GAAG7K,KAAA;EAAA,IAAC;IAAE8K,QAAQ;IAAEC,SAAS;IAAEjS;EAAK,CAAC,GAAAkH,KAAA;EAAA,OACnDhG,+CAAO,CAAC+Q,SAAS,CAAC,IAAIjS,IAAI,KAAKwM,KAAK,CAACgC,OAAO,GACxC,IAAI,GACJ,CAACtN,+CAAO,CAAC+Q,SAAS,CAAC,GACjBA,SAAS,GACT/E,4CAAI,CAAC8E,QAAQ,CAAC1B,UAAU,CAAC,KAAK,CAAC,GAC7BrU,2CAAG,CAAC+V,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GACtC/V,2CAAG,CAAC+V,QAAQ,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;AAAA;;AAEpD;AACO,MAAME,0BAA0B,GAAG/K,KAAA,IAapC;EAAA,IAbqC;IACzCgL,QAAQ;IACRC,gBAAgB;IAChBC,cAAc;IACdC,eAAe;IACfC,eAAe;IACfC,0BAA0B;IAC1BC,oBAAoB;IACpBC,YAAY;IACZ9S,YAAY;IACZ+S,iCAAiC;IACjCC,kBAAkB,GAAG,KAAK;IAC1BC,gBAAgB,GAAG;EACrB,CAAC,GAAA1L,KAAA;EACC;EACA,MAAM2I,SAAS,GAAGO,OAAO,CAAC;IACxBlV,IAAI,EAAEuX,YAAY;IAClB;IACA9S,YAAY,EAAEA,YAAY,CAACkQ,SAAS,CAAClM,MAAM,CACxCyK,QAAQ,IACNkC,MAAM,CAACC,IAAI,CAACkC,YAAY,CAAC,CAAClb,MAAM,IAAI,CAAC,IACpC6W,QAAQ,CAAC9J,KAAK,KAAK4K,aAAa,CAAC5K,KAAK,IACvCgM,MAAM,CAACC,IAAI,CAACkC,YAAY,CAAC,CAAClb,MAAM,GAAG,CAAC,IACnCqb,gBAAgB,IAChBxE,QAAQ,CAAC9J,KAAK,KAAK4K,aAAa,CAAC5K,KAAM,IACxCgM,MAAM,CAACC,IAAI,CAACkC,YAAY,CAAC,CAAClb,MAAM,GAAG,CAAC,IAAI,CAACqb,gBAC9C,CAAC;IACD7S,IAAI,EAAEwM,KAAK,CAAC6B;EACd,CAAC,CAAC;;EAEF;EACA,MAAMyE,gBAAgB;EACpB;EACA;EACA;EACAhD,SAAS,CAACsB,cAAc,CAAC2B,IAAI,CAC1B1E,QAAQ,IAAKA,QAAQ,CAAC9J,KAAK,KAAK4K,aAAa,CAAC5K,KACjD,CAAC,IACD,CAACoO,iCAAiC,IAClCC,kBAAkB,GACdxD,gBAAgB;EAChB;EACAU,SAAS,CAACsB,cAAc,CAAC2B,IAAI,CACxB1E,QAAQ,IAAKA,QAAQ,CAAC9J,KAAK,KAAK4K,aAAa,CAAC5K,KACjD,CAAC,KACA6N,gBAAgB,KAAKhD,gBAAgB,CAAC7K,KAAK,IAC1C6N,gBAAgB,KAAKjD,aAAa,CAAC5K,KAAK,CAAC;EAC3C;EACAuL,SAAS,CAACQ,UAAU,CAAC,CAAC,CAAC;EACvB;EACAyB,cAAc,CAAC;IACbC,QAAQ,EAAElC,SAAS;IACnBmC,SAAS,EAAEhW,2CAAG,CAAC6T,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC/I,IAAI,CACjDsH,QAAQ,IACP/V,QAAQ,CAAC8Z,gBAAgB,EAAE,EAAE,CAAC,KAAK9Z,QAAQ,CAAC+V,QAAQ,CAAC9J,KAAK,EAAE,EAAE,CAClE,CAAC;IACDvE,IAAI,EAAEwM,KAAK,CAAC6B;EACd,CAAC,CAAC;;EAEV;EACA,MAAM2E,qBAAqB,GACzB/W,2CAAG,CAAC6W,gBAAgB,EAAE,OAAO,CAAC,IAAI7W,2CAAG,CAAC6W,gBAAgB,EAAE,IAAI,CAAC;;EAE/D;EACA,MAAM/C,OAAO,GACXiD,qBAAqB,KAAK7D,aAAa,CAAC5K,KAAK,IAC7CyO,qBAAqB,KAAK5D,gBAAgB,CAAC7K,KAAK,GAC5C8L,OAAO,CAAC;IACNlV,IAAI,EAAEoV,MAAM,CAACjM,MAAM,CAACoO,YAAY,CAAC,CAACvF,MAAM,CACtC,CAAC8F,KAAK,EAAE5E,QAAQ,KACdpB,2CAAG,CAACoB,QAAQ,EAAE,SAAS,CAAC,GACpB;MAAE,GAAG4E,KAAK;MAAE,GAAG5E,QAAQ,CAAC0B;IAAQ,CAAC,GACjCkD,KAAK,EACX,CAAC,CACH,CAAC;IACDrT,YAAY,EAAEA,YAAY,CAACmQ,OAAO;IAClC/P,IAAI,EAAEwM,KAAK,CAAC8B;EACd,CAAC,CAAC,GACFwE,gBAAgB,GACdzC,OAAO,CAAC;IACNlV,IAAI,EAAEc,2CAAG,CAACyW,YAAY,EAAE,CAACM,qBAAqB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/DpT,YAAY,EAAEA,YAAY,CAACmQ,OAAO;IAClC/P,IAAI,EAAEwM,KAAK,CAAC8B;EACd,CAAC,CAAC,GACF1O,YAAY,CAACmQ,OAAO;;EAE5B;EACA,MAAMmD,cAAc,GAClBF,qBAAqB,KAAK5D,gBAAgB,CAAC7K,KAAK,GAC5C8K,cAAc,GACd0C,cAAc,CAAC;IACbC,QAAQ,EAAEjC,OAAO;IACjBkC,SAAS,EAAEhW,2CAAG,CAAC8T,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAChJ,IAAI,CAC/CuH,MAAM,IACLhW,QAAQ,CAAC+Z,cAAc,EAAE,EAAE,CAAC,KAAK/Z,QAAQ,CAACgW,MAAM,CAAC/J,KAAK,EAAE,EAAE,CAC9D,CAAC;IACDvE,IAAI,EAAEwM,KAAK,CAAC8B;EACd,CAAC,CAAC;;EAER;EACA,MAAM6E,mBAAmB,GACvBlX,2CAAG,CAACiX,cAAc,EAAE,OAAO,CAAC,IAAIjX,2CAAG,CAACiX,cAAc,EAAE,IAAI,CAAC;;EAE3D;EACA,MAAME,WAAW,GAAG7C,MAAM,CAACjM,MAAM,CAC/BrI,2CAAG,CAACyW,YAAY,EAAE,CAACM,qBAAqB,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAC1D,CAAC,CAAC7F,MAAM,CAAC,CAACkG,GAAG,EAAE/E,MAAM,MAAM;IAAE,GAAG+E,GAAG;IAAE,GAAG/E,MAAM,CAAC0B;EAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC/D,MAAMA,QAAQ,GAAGK,OAAO,CAAC;IACvBlV,IAAI,EAAEoV,MAAM,CAACjM,MAAM,CAAC8O,WAAW,CAAC;IAChCxT,YAAY,EAAEA,YAAY,CAACoQ,QAAQ;IACnChQ,IAAI,EAAEwM,KAAK,CAAC+B;EACd,CAAC,CAAC;;EAEF;EACA,MAAM+E,eAAe,GAAGvB,cAAc,CAAC;IACrCC,QAAQ,EAAEhC,QAAQ;IAClBiC,SAAS,EAAEhW,2CAAG,CAAC+T,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAACjJ,IAAI,CAChDwH,OAAO,IACNjW,QAAQ,CAACga,eAAe,EAAE,EAAE,CAAC,KAAKha,QAAQ,CAACiW,OAAO,CAAChK,KAAK,EAAE,EAAE,CAChE,CAAC;IACDvE,IAAI,EAAEwM,KAAK,CAAC+B;EACd,CAAC,CAAC;;EAEF;EACA,MAAMgF,oBAAoB,GACxBtX,2CAAG,CAACqX,eAAe,EAAE,OAAO,CAAC,IAAIrX,2CAAG,CAACqX,eAAe,EAAE,IAAI,CAAC;;EAE7D;EACA,MAAME,iBAAiB,GACrBR,qBAAqB,IACrBG,mBAAmB,KAClB7a,QAAQ,CAACga,eAAe,EAAE,EAAE,CAAC,KAAKpD,YAAY,CAAC3K,KAAK,IACnDjM,QAAQ,CAACga,eAAe,EAAE,EAAE,CAAC,KAAKrD,YAAY,CAAC1K,KAAK,CAAC;;EAEzD;EACA,MAAM0L,QAAQ,GAAGuD,iBAAiB,GAC9BnD,OAAO,CAAC;IACN;IACAlV,IAAI,EAAEoV,MAAM,CAACjM,MAAM,CACjBrI,2CAAG,CACDyW,YAAY,EACZ,CAACM,qBAAqB,EAAE,SAAS,EAAEG,mBAAmB,EAAE,UAAU,CAAC,EACnE,CAAC,CACH,CACF,CAAC,CAAChG,MAAM,CAAC,CAAC8F,KAAK,EAAE1E,OAAO,KAAK;MAC3B;MACA,MAAMkF,qBAAqB,GACzBxG,2CAAG,CAACsB,OAAO,EAAE,UAAU,CAAC,IACxBgC,MAAM,CAACjM,MAAM,CAACiK,OAAO,CAAC0B,QAAQ,CAAC,CAAC9C,MAAM,CACpC,CAACuG,aAAa,EAAElF,OAAO,MAAM;QAC3B,GAAGkF,aAAa;QAChB,CAAClF,OAAO,CAACjM,EAAE,GAAG;UACZ,GAAGiM,OAAO;UACVjM,EAAE,EAAE,GAAGgM,OAAO,CAAChM,EAAE,IAAIiM,OAAO,CAACjM,EAAE;QACjC;MACF,CAAC,CAAC,EACF,CAAC,CACH,CAAC;MACH,OAAO0K,2CAAG,CAACsB,OAAO,EAAE,UAAU,CAAC,IAAI,CAACrN,+CAAO,CAACqN,OAAO,CAAC0B,QAAQ,CAAC,GACzD;QAAE,GAAGgD,KAAK;QAAE,GAAGQ;MAAsB,CAAC,GACtCR,KAAK;IACX,CAAC,EAAE,CAAC,CAAC,CAAC;IACNrT,YAAY,EAAEA,YAAY,CAACqQ,QAAQ;IACnCjQ,IAAI,EAAEwM,KAAK,CAACgC;EACd,CAAC,CAAC;EACF;EACA8E,eAAe,GACbjD,OAAO,CAAC;IACNlV,IAAI,EAAEc,2CAAG,CACPyW,YAAY,EACZ,CACEM,qBAAqB,EACrB,SAAS,EACTG,mBAAmB,EACnB,UAAU,EACVI,oBAAoB,EACpB,UAAU,CACX,EACD,CAAC,CACH,CAAC;IACD3T,YAAY,EAAEA,YAAY,CAACqQ,QAAQ;IACnCjQ,IAAI,EAAEwM,KAAK,CAACgC,OAAO;IACnBD,OAAO,EAAE+E;EACX,CAAC,CAAC,GACF1T,YAAY,CAACqQ,QAAQ;;EAE3B;EACA,MAAM0D,SAAS,GACbpB,eAAe,IAAItW,2CAAG,CAAC,GAAGsW,eAAe,EAAE,CAACqB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAErB,eAAe,CAAC;EAC7E;EACA,MAAMsB,eAAe,GAAG9B,cAAc,CAAC;IACrCC,QAAQ,EAAE/B,QAAQ;IAClBgC,SAAS,EAAEhW,2CAAG,CAACgU,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAClJ,IAAI,CAChDyH,OAAO,IACNlW,QAAQ,CAACqb,SAAS,EAAE,EAAE,CAAC,KACvBrb,QAAQ,CAACkW,OAAO,CAACjK,KAAK,IAAItI,2CAAG,CAAC,GAAGuS,OAAO,CAACjK,KAAK,EAAE,CAACqP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACvE,CAAC;IACD5T,IAAI,EAAEwM,KAAK,CAACgC;EACd,CAAC,CAAC;EAEF,MAAMsF,uBAAuB,GAAGrB,oBAAoB,GAChDA,oBAAoB,CAAC1L,IAAI,CACtBxC,KAAK,IACJjM,QAAQ,CAACiM,KAAK,CAAChC,EAAE,EAAE,EAAE,CAAC,KAAKjK,QAAQ,CAACka,0BAA0B,EAAE,EAAE,CACtE,CAAC,GACD,EAAE;;EAEN;EACAL,QAAQ,CAAC;IACPnS,IAAI,EAAEqN,OAAO,CAACY,uBAAuB;IACrCjB,OAAO,EAAE;MACPjK,SAAS,EAAE2P,YAAY;MACvB,IAAII,gBAAgB,IAAI;QACtBiB,cAAc,EAAE;UACd9R,KAAK,EAAE6Q,gBAAgB,CAAC3O,IAAI;UAC5BI,KAAK,EAAEuO,gBAAgB,CAACvQ,EAAE;UAC1B,GAAGuQ;QACL;MACF,CAAC,CAAC;MACFhD,SAAS,EAAEA,SAAS,CAACsB,cAAc;MACnC,IAAI8B,cAAc,IAAI;QACpBc,YAAY,EAAE;UACZ/R,KAAK,EAAEiR,cAAc,CAAC/O,IAAI;UAC1BI,KAAK,EAAE2O,cAAc,CAAC3Q,EAAE;UACxB,GAAG2Q;QACL;MACF,CAAC,CAAC;MACFnD,OAAO,EAAEA,OAAO,CAACqB,cAAc;MAC/B,IAAIkC,eAAe,IAAI;QACrBW,aAAa,EAAE;UACbhS,KAAK,EAAEqR,eAAe,CAACnP,IAAI;UAC3BI,KAAK,EAAE+O,eAAe,CAAC/Q,EAAE;UACzB,GAAG+Q;QACL;MACF,CAAC,CAAC;MACFtD,QAAQ,EAAEA,QAAQ,CAACoB,cAAc;MACjC,IAAIyC,eAAe,IAAI;QACrBK,aAAa,EAAE;UACbjS,KAAK,EACH4R,eAAe,CAAC1P,IAAI,IACpB,GAAG0P,eAAe,CAAC9C,UAAU,IAAI8C,eAAe,CAAChD,SAAS,EAAE;UAC9DtM,KAAK,EAAEsP,eAAe,CAACtR,EAAE;UACzBA,EAAE,EAAEsR,eAAe,CAACtP,KAAK;UACzB,GAAGsP;QACL;MACF,CAAC,CAAC;MACF5D,QAAQ,EAAEA,QAAQ,CAACmB,cAAc;MACjC,IAAI0C,uBAAuB,IAAI;QAC7BhH,qBAAqB,EAAE;UACrB7K,KAAK,EAAE6R,uBAAuB,CAAClC,YAAY;UAC3CrN,KAAK,EAAEuP,uBAAuB,CAACvR,EAAE;UACjC,GAAGuR;QACL;MACF,CAAC;IACH;EACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAMK,aAAa,GAAG3M,KAAA,IAAsC;EAAA,IAArC;IAAEoB,GAAG;IAAErE,KAAK;IAAE/J,QAAQ;IAAE7C;EAAO,CAAC,GAAA6P,KAAA;EACrD,MAAM4M,YAAY,GAAG;IACnB,GAAG9W,IAAI,CAACoP,KAAK,CACXrT,MAAM,CAACsT,YAAY,CAACC,OAAO,CAACJ,KAAK,CAACK,0BAA0B,CAAC,IAAI,IACnE,CAAC;IACD,CAACjE,GAAG,GAAGrE;EACT,CAAC;EACDlL,MAAM,CAACsT,YAAY,CAAC0H,OAAO,CACzB7H,KAAK,CAACK,0BAA0B,EAChCvP,IAAI,CAACC,SAAS,CAAC6W,YAAY,CAC7B,CAAC;EACDzc,MAAM,CAAC2H,IAAI,CAAC;IACV7E,QAAQ,EAAED,QAAQ,CAACC,QAAQ;IAC3B+K,KAAK,EAAE4H,qEAAQ,CAAC5S,QAAQ,CAACgL,KAAK,EAAE4O,YAAY;EAC9C,CAAC,CAAC;AACJ,CAAC;AAEM,MAAME,eAAe,GAC1B1M,KAAA;EAAA,IAAC;IAAEuK,QAAQ;IAAErS,KAAK;IAAEtF,QAAQ;IAAE7C;EAAO,CAAC,GAAAiQ,KAAA;EAAA,OACrCvQ,MAAM,IACL,CACG;IACC,CAACgW,OAAO,CAACY,uBAAuB,GAAG,MAAM;MACvC,MAAM;QACJ8F,cAAc;QACdC,YAAY;QACZC,aAAa;QACbC,aAAa;QACbpH;MACF,CAAC,GAAGzV,MAAM,CAAC2V,OAAO;MAClB,MAAMoH,YAAY,GAAG;QACnBG,UAAU,EAAER,cAAc,GACtBA,cAAc,CAACxP,KAAK,GACpBsL,aAAa,CAACxB,QAAQ,CAAC9J,KAAK;QAChCiQ,QAAQ,EAAER,YAAY,GAClBA,YAAY,CAACzP,KAAK,GAClBsL,aAAa,CAACvB,MAAM,CAAC/J,KAAK;QAC9BkQ,SAAS,EAAER,aAAa,GACpBA,aAAa,CAAC1P,KAAK,GACnBsL,aAAa,CAACtB,OAAO,CAAChK,KAAK;QAC/BoP,SAAS,EAAEO,aAAa,GACpBA,aAAa,CAAC3P,KAAK,GACnBsL,aAAa,CAACrB,OAAO,CAACjK,KAAK;QAC/BgC,eAAe,EAAEuG,qBAAqB,GAClCA,qBAAqB,CAACvI,KAAK,GAC3BzE,KAAK,CAACgN,qBAAqB,CAACvI;MAClC,CAAC;MACDlL,MAAM,CAACsT,YAAY,CAAC0H,OAAO,CACzB7H,KAAK,CAACK,0BAA0B,EAChCvP,IAAI,CAACC,SAAS,CAAC6W,YAAY,CAC7B,CAAC;MACDzc,MAAM,CAAC2H,IAAI,CAAC;QACV7E,QAAQ,EAAED,QAAQ,CAACC,QAAQ;QAC3B+K,KAAK,EAAE4H,qEAAQ,CAAC5S,QAAQ,CAACgL,KAAK,EAAE4O,YAAY;MAC9C,CAAC,CAAC;MACFjC,QAAQ,CAAC9a,MAAM,CAAC;IAClB,CAAC;IACD,CAACgW,OAAO,CAACC,oBAAoB,GAAG,MAAM;MACpC,MAAMoH,SAAS,GAAG;QAAE,GAAG5U;MAAM,CAAC;MAC9B,IACEzI,MAAM,CAAC2V,OAAO,CAACzI,KAAK,KAAK4K,aAAa,CAAC5K,KAAK,IAC5C,CAACmQ,SAAS,CAACC,qBAAqB,EAChC;QACAxC,QAAQ,CAAC;UACPnS,IAAI,EAAEqN,OAAO,CAACa,uBAAuB;UACrClB,OAAO,EAAE0H;QACX,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIrd,MAAM,CAAC2V,OAAO,CAACzI,KAAK,KAAK4K,aAAa,CAAC5K,KAAK,EAAE;QACvD;QACA4P,aAAa,CAAC;UACZvL,GAAG,EAAE,YAAY;UACjBrE,KAAK,EAAElN,MAAM,CAAC2V,OAAO,CAACzI,KAAK;UAC3B/J,QAAQ;UACRsF,KAAK;UACLnI;QACF,CAAC,CAAC;MACJ;MACAwa,QAAQ,CAAC;QACPnS,IAAI,EAAEqN,OAAO,CAACc,uBAAuB;QACrCnB,OAAO,EAAE3V,MAAM,CAAC2V,OAAO,CAACzI,KAAK,KAAK4K,aAAa,CAAC5K;MAClD,CAAC,CAAC;MACF4N,QAAQ,CAAC9a,MAAM,CAAC;IAClB,CAAC;IACD,CAACgW,OAAO,CAACE,kBAAkB,GAAG,MAAM;MAClC4G,aAAa,CAAC;QACZvL,GAAG,EAAE,UAAU;QACfrE,KAAK,EAAElN,MAAM,CAAC2V,OAAO,CAACzI,KAAK;QAC3B/J,QAAQ;QACRsF,KAAK;QACLnI;MACF,CAAC,CAAC;MACF;MACA;MACA,IACE,CAACmI,KAAK,CAACiU,cAAc,CAACxP,KAAK,KAAK4K,aAAa,CAAC5K,KAAK,IACjDzE,KAAK,CAACiU,cAAc,CAACxP,KAAK,KAAK6K,gBAAgB,CAAC7K,KAAK,KACvDlN,MAAM,CAAC2V,OAAO,CAACzI,KAAK,GAAG,CAAC,EACxB;QACA,MAAMqQ,iBAAiB,GAAG9U,KAAK,CAACgQ,SAAS,CAAC/I,IAAI,CAC3CsH,QAAQ,IACPA,QAAQ,CAAC9L,EAAE,KACXtG,2CAAG,CACD6D,KAAK,EACL,CAAC,iBAAiB,EAAEzI,MAAM,CAAC2V,OAAO,CAACzI,KAAK,EAAE,UAAU,CAAC,EACrD,CACF,CACJ,CAAC;QACD4N,QAAQ,CAAC;UACPnS,IAAI,EAAEqN,OAAO,CAACC,oBAAoB;UAClCN,OAAO,EAAE4H;QACX,CAAC,CAAC;QACF;QACAzC,QAAQ,CAAC;UACPnS,IAAI,EAAEqN,OAAO,CAACa,uBAAuB;UACrClB,OAAO,EAAE;YACP,GAAGlN,KAAK;YACRiU,cAAc,EAAEa,iBAAiB;YACjCZ,YAAY,EAAE3c,MAAM,CAAC2V;UACvB;QACF,CAAC,CAAC;QACFmF,QAAQ,CAAC;UACPnS,IAAI,EAAEqN,OAAO,CAACc,uBAAuB;UACrCnB,OAAO,EAAE4H,iBAAiB,CAACrQ,KAAK,KAAK4K,aAAa,CAAC5K;QACrD,CAAC,CAAC;QACF4P,aAAa,CAAC;UACZvL,GAAG,EAAE,YAAY;UACjBrE,KAAK,EAAEqQ,iBAAiB,CAACrQ,KAAK;UAC9B/J,QAAQ;UACRsF,KAAK;UACLnI;QACF,CAAC,CAAC;MACJ;MACAwa,QAAQ,CAAC9a,MAAM,CAAC;IAClB,CAAC;IACD,CAACgW,OAAO,CAACG,mBAAmB,GAAG,MAAM;MACnC2G,aAAa,CAAC;QACZvL,GAAG,EAAE,WAAW;QAChBrE,KAAK,EAAElN,MAAM,CAAC2V,OAAO,CAACzI,KAAK;QAC3B/J,QAAQ;QACRsF,KAAK;QACLnI;MACF,CAAC,CAAC;MACFwa,QAAQ,CAAC9a,MAAM,CAAC;IAClB,CAAC;IACD,CAACgW,OAAO,CAACI,mBAAmB,GAAG,MAAM;MACnC0G,aAAa,CAAC;QACZvL,GAAG,EAAE,WAAW;QAChBrE,KAAK,EAAElN,MAAM,CAAC2V,OAAO,CAACzI,KAAK;QAC3B/J,QAAQ;QACRsF,KAAK;QACLnI;MACF,CAAC,CAAC;MACFwa,QAAQ,CAAC9a,MAAM,CAAC;IAClB,CAAC;IACD,CAACgW,OAAO,CAACK,2BAA2B,GAAG,MAAM;MAC3CyG,aAAa,CAAC;QACZvL,GAAG,EAAE,iBAAiB;QACtBrE,KAAK,EAAElN,MAAM,CAAC2V,OAAO,CAACzI,KAAK;QAC3B/J,QAAQ;QACRsF,KAAK;QACLnI;MACF,CAAC,CAAC;MACFwa,QAAQ,CAAC9a,MAAM,CAAC;IAClB;EACF,CAAC,CAAEA,MAAM,CAAC2I,IAAI,CAAC,IAAImS,QAAQ,EAC3B9a,MAAM,CAAC;AAAA;AAEN,MAAMwd,aAAa,GAAGA,CAACC,MAAM,EAAEC,OAAO,KAC3CxE,MAAM,CAACC,IAAI,CAACuE,OAAO,CAAC,CAAC5H,MAAM,CAAC,CAAC6H,GAAG,EAAEpM,GAAG,KAAK;EACxCoM,GAAG,CAACF,MAAM,GAAGlM,GAAG,CAAC,GAAGmM,OAAO,CAACnM,GAAG,CAAC;EAChC,OAAOoM,GAAG;AACZ,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClqBqD;AACnC;AACsB;AACV;AACN;AACK;AAEc;AACmB;AACJ;AACI;AACV;AACY;AAC1C;AAIL;AACuC;AAEhE,MAAM;EAAEe;AAA8B,CAAC,GAAGH,qEAAwB;AAClE,MAAMI,oCAAoC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AACpD,MAAMC,kBAAkB,GAAG,uBAAuB;AAEzD,MAAMC,mBAAmB,GAAGnZ,IAAA,IAMtB;EAAA,IANuB;IAC3BrF,QAAQ;IACRC,MAAM;IACNwe,cAAc;IACdC,cAAc;IACdC,cAAc,GAAGL;EACnB,CAAC,GAAAjZ,IAAA;EACC,MAAM,CAACuZ,SAAS,EAAEC,YAAY,CAAC,GAAGrB,+CAAQ,CAAC,KAAK,CAAC;EACjD,MAAMsB,mBAAmB,GAAG;IAAEC,WAAW,EAAE,EAAE;IAAEC,YAAY,EAAE;EAAG,CAAC;EACjE,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG1B,+CAAQ,CAACsB,mBAAmB,CAAC;EAE3D,MAAMK,cAAc,GAAGA,CAAA,KACrBnf,QAAQ,CAACoC,SAAS,IAClBpC,QAAQ,CAACiC,SAAS,IAClBjC,QAAQ,CAACM,aAAa,IACtBN,QAAQ,CAACK,OAAO;EAElB,MAAM+e,aAAa,GAAIC,iBAAiB,IAAK;IAC3CR,YAAY,CAAC,KAAK,CAAC;IACnBS,yBAAyB,CAAC,CAAC;IAC3B,IAAID,iBAAiB,EAAE;MACrB1d,MAAM,CAACmB,QAAQ,CAACK,IAAI,GAAGC,8CAAgB;IACzC;EACF,CAAC;EAED,MAAMmc,YAAY,GAAGA,CAACC,eAAe,EAAEC,IAAI,EAAEC,KAAK,KAAK;IACrD,MAAMxR,MAAM,GAAGsR,eAAe,CAAC/d,EAAE,CAACkN,MAAM;IACxC,MAAMgR,SAAS,GAAGH,eAAe,CAAC/d,EAAE,CAACS,QAAQ;IAC7C,MAAM0d,QAAQ,GAAGJ,eAAe,CAAC/d,EAAE,CAACuB,SAAS,CAAC5D,GAAG,CAC9CwX,MAAM,IAAKA,MAAM,CAACjI,MACrB,CAAC;IACD,IAAIlL,IAAI,GAAG;MAAEyK,MAAM;MAAEyR,SAAS;MAAEC,QAAQ;MAAEH,IAAI;MAAEC;IAAM,CAAC;IAEvD7B,wFAAU,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,GAAG,EAAEpa,IAAI,CAAC;EACvE,CAAC;EAED,MAAMoc,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAIC,aAAa,CAAC,CAAC,EAAE;MACnB,OAAOC,kBAAkB,CAAC/f,QAAQ,CAAC,CAAC6D,IAAI,CAAC2L,KAAA,IAAqB;QAAA,IAApB;UAAEiQ,IAAI;UAAEC;QAAM,CAAC,GAAAlQ,KAAA;QACvD,IAAIwQ,eAAe,CAACP,IAAI,EAAEC,KAAK,EAAEO,mBAAmB,CAAC,EAAE;UACrDpB,YAAY,CAAC,IAAI,CAAC;UAClBK,UAAU,CAAC;YAAEH,WAAW,EAAEU,IAAI;YAAET,YAAY,EAAEU;UAAM,CAAC,CAAC;UACtDH,YAAY,CAACvf,QAAQ,EAAEyf,IAAI,EAAEC,KAAK,CAAC;QACrC;QACAQ,eAAe,CACbR,KAAK,CAAC5f,MAAM,GAAG,CAAC,EAChB2f,IAAI,CAAC3f,MAAM,GAAG,CAAC,EACf,KAAK,EACL6R,4CAAK,CAAC,CAAC,EACP+M,cACF,CAAC;QACD,OAAO5Y,OAAO,CAACC,OAAO,CAAC,iCAAiC,CAAC;MAC3D,CAAC,CAAC;IACJ;IACA,OAAOD,OAAO,CAACC,OAAO,CAAC,kCAAkC,CAAC;EAC5D,CAAC;EAEDmD,gDAAS,CAAC,MAAM;IACd,IAAI,CAACiW,cAAc,CAAC,CAAC,IAAIf,0EAAiB,CAAC,CAAC,EAAE;IAC9C,IAAIne,MAAM,CAAC6C,QAAQ,CAACC,QAAQ,KAAK,SAAS,EAAE;MAC1CG,4EAAG,CACD,gDAAgDqb,kBAAkB,GACpE,CAAC;MACDT,wEAAyB,CAACS,kBAAkB,CAAC;MAC7CJ,gFAA+B,CAAC,CAAC;MACjC;IACF;IACA0B,aAAa,CAAC,CAAC,CAAChc,IAAI,CAAEsc,CAAC,IAAKjd,4EAAG,CAACid,CAAC,CAAC,CAAC;IACnC,MAAMC,UAAU,GAAGC,WAAW,CAACR,aAAa,EAAElB,cAAc,CAAC;IAC7D,OAAO,MAAM;MACX2B,aAAa,CAACF,UAAU,CAAC;MACzBvB,YAAY,CAAC,KAAK,CAAC;MACnBK,UAAU,CAACJ,mBAAmB,CAAC;IACjC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN5V,gDAAS,CAAC,MAAM;IACd,IAAI,CAACuV,cAAc,EAAE;MACnBvb,4EAAG,CAAC,sCAAsC,CAAC;IAC7C;EACF,CAAC,EAAE,CAACub,cAAc,CAAC,CAAC;EAEpB,IAAIG,SAAS,EAAE;IACb,IAAIS,iBAAiB,GAAGJ,OAAO,CAACD,YAAY,CAAClf,MAAM,GAAG,CAAC;IACvD,MAAMygB,YAAY,GAAGlB,iBAAiB,GAClC,gBAAgBrf,QAAQ,CAACiC,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,GAC7D,0BAA0B;IAE9B,oBACEgH,gDAAA,CAAC2U,kFAAY;MACXpM,KAAK,EAAC,SAAS;MACfgP,SAAS,EAAEA,CAAA,KAAMpB,aAAa,CAACC,iBAAiB,CAAE;MAClDoB,OAAO,EAAE;QACPC,UAAU,EAAEH;MACd;IAAE,gBAEFtX,gDAAA,CAAC0X,cAAc;MACb5B,WAAW,EAAEE,OAAO,CAACF,WAAY;MACjCC,YAAY,EAAEC,OAAO,CAACD;IAAa,CACpC,CACW,CAAC;EAEnB;;EAEA;EACA,oBAAO/V,gDAAA,YAAM,CAAC;AAChB,CAAC;AAED,MAAM0X,cAAc,GAAGlR,KAAA;EAAA,IAAC;IAAEsP,WAAW;IAAEC;EAAa,CAAC,GAAAvP,KAAA;EAAA,oBACnDxG,gDAAA,CAACsU,2CAAQ,qBACPtU,gDAAA,YAAG,4RAKA,CAAC,eACJA,gDAAA;IAAK2X,SAAS,EAAC;EAAkC,GAC9C7B,WAAW,CAAC3f,GAAG,CAAEyhB,CAAC,iBACjB5X,gDAAA;IAAGiI,GAAG,EAAE2P;EAAE,GACP5C,yDAAe,CAACF,6CAAO,CAAC+C,IAAI,CAAC,EAAC,GAAC,EAACD,CAChC,CACJ,CAAC,EACD7B,YAAY,CAAC5f,GAAG,CAAEyhB,CAAC,iBAClB5X,gDAAA;IAAGiI,GAAG,EAAE2P;EAAE,GACP5C,yDAAe,CAACF,6CAAO,CAACgD,KAAK,CAAC,EAAC,GAAC,EAACF,CACjC,CACJ,CACE,CAAC,eACN5X,gDAAA,2BACEA,gDAAA;IAAG2X,SAAS,EAAE;EAAqC,GAAC,oBAAqB,CAAC,EACzE7B,WAAW,CAACjf,MAAM,GAAG,CAAC,IAAIkf,YAAY,CAAClf,MAAM,GAAG,CAAC,iBAChDmJ,gDAAA,CAAC+X,wBAAwB,MAAE,CAC5B,EACAjC,WAAW,CAACjf,MAAM,GAAG,CAAC,IAAIkf,YAAY,CAAClf,MAAM,KAAK,CAAC,iBAClDmJ,gDAAA,CAACgY,kBAAkB,MAAE,CACtB,EACAlC,WAAW,CAACjf,MAAM,KAAK,CAAC,IAAIkf,YAAY,CAAClf,MAAM,GAAG,CAAC,iBAClDmJ,gDAAA,CAACiY,kBAAkB,MAAE,CAEpB,CACG,CAAC;AAAA,CACZ;AAED,MAAMD,kBAAkB,GAAGA,CAAA,kBACzBhY,gDAAA,yBACEA,gDAAA,YAAG,gGAEoB,EAAC,GACrB,CAAC,0FAEM,eAAAA,gDAAA,CAACwU,8CAAI;EAAC0D,EAAE,EAAC;AAAiB,GAAC,8BAAkC,CAAC,KACvE,CACJ;AAED,MAAMD,kBAAkB,GAAGA,CAAA,kBACzBjY,gDAAA,yBACEA,gDAAA,YAAG,+FAEkB,EAAC,GACnB,CAAC,0FAEM,eAAAA,gDAAA,CAACwU,8CAAI;EAAC0D,EAAE,EAAC;AAAiB,GAAC,8BAAkC,CAAC,KACvE,CACJ;AAED,MAAMH,wBAAwB,GAAGA,CAAA,kBAC/B/X,gDAAA,CAACA,2CAAc,qBACbA,gDAAA,CAAC0U,sDAAI;EAACyD,SAAS;AAAA,gBACbnY,gDAAA,CAAC0U,sDAAI;EAACnd,IAAI;EAAC6gB,EAAE,EAAE;AAAE,GACdpD,yDAAe,CAACF,6CAAO,CAAC+C,IAAI,CACzB,CAAC,eACP7X,gDAAA,CAAC0U,sDAAI;EAACnd,IAAI;EAAC6gB,EAAE,EAAE;AAAG,gBAChBpY,gDAAA,YAAG,uIAGA,CACC,CACF,CAAC,eAEPA,gDAAA,CAAC0U,sDAAI;EAACyD,SAAS;AAAA,gBACbnY,gDAAA,CAAC0U,sDAAI;EAACnd,IAAI;EAAC6gB,EAAE,EAAE;AAAE,GACdpD,yDAAe,CAACF,6CAAO,CAACgD,KAAK,CAC1B,CAAC,eACP9X,gDAAA,CAAC0U,sDAAI;EAACnd,IAAI;EAAC6gB,EAAE,EAAE;AAAG,gBAChBpY,gDAAA,YAAG,2FAGA,CACC,CACF,CAAC,eACPA,gDAAA,WAAK,CAAC,eACNA,gDAAA,YAAG,uFAEe,EAAC,GAAG,eACpBA,gDAAA,CAACwU,8CAAI;EAAC0D,EAAE,EAAC;AAAiB,GAAC,8BAAkC,CAAC,KAC7D,CACW,CACjB;AAEM,MAAMG,kBAAkB,GAAI7d,IAAI,IAAK;EAC1C,IAAIA,IAAI,CAACxB,SAAS,EAAE;IAClB,OAAO;MACLsf,IAAI,EAAEtgB,4EAAS,CAACkB,OAAO;MACvBqf,QAAQ,EAAE,IAAIC,GAAG,CAAChe,IAAI,CAACd,eAAe,CAACvD,GAAG,CAAEsiB,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;IACrE,CAAC;EACH,CAAC,MAAM,IAAIle,IAAI,CAACrB,SAAS,EAAE;IACzB,OAAO;MACLmf,IAAI,EAAEtgB,4EAAS,CAACoB,OAAO;MACvBmf,QAAQ,EAAE,IAAIC,GAAG,CAAChe,IAAI,CAACb,eAAe,CAACxD,GAAG,CAAEsiB,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;IACrE,CAAC;EACH,CAAC,MAAM,IAAIle,IAAI,CAACpD,OAAO,EAAE;IACvB,OAAO;MACLkhB,IAAI,EAAEtgB,4EAAS,CAACuB,KAAK;MACrBgf,QAAQ,EAAE,IAAIC,GAAG,CAAChe,IAAI,CAACoK,aAAa,CAACzO,GAAG,CAAEsiB,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;IACnE,CAAC;EACH,CAAC,MAAM,IAAIle,IAAI,CAACnD,aAAa,EAAE;IAC7B;IACA,OAAO;MACLihB,IAAI,EAAEtgB,4EAAS,CAACwB,WAAW;MAC3B+e,QAAQ,EAAE,IAAIC,GAAG,CAAChe,IAAI,CAACoK,aAAa,CAACzO,GAAG,CAAEsiB,CAAC,IAAKA,CAAC,CAACC,cAAc,CAAC;IACnE,CAAC;EACH;EAEAze,4EAAG,CAAC,oCAAoC0C,IAAI,CAACC,SAAS,CAACpC,IAAI,CAAC,EAAE,CAAC;EAC/D,OAAO;IAAE8d,IAAI,EAAE,EAAE;IAAEC,QAAQ,EAAE,IAAIC,GAAG,CAAC;EAAE,CAAC;AAC1C,CAAC;AAED,MAAMG,WAAW,GAAGhc,IAAI,CAACoP,KAAK,CAAC6M,cAAc,CAAC3M,OAAO,CAAC,UAAU,CAAC,CAAC;AAElE,MAAM+K,mBAAmB,GACvB2B,WAAW,KACVA,WAAW,CAACE,YAAY,KAAK,GAAGC,8CAAgB,mBAAmB,IAClEH,WAAW,CAACE,YAAY,KAAKC,8CAAgB,CAAC;AAE3C,MAAM/B,eAAe,GAAGA,CAACjB,WAAW,EAAEC,YAAY,KAAK;EAC5D,IAAIgB,eAAe,GAAG,KAAK;EAC3B,IAAIjB,WAAW,CAACjf,MAAM,GAAG,CAAC,IAAIkf,YAAY,CAAClf,MAAM,GAAG,CAAC,EAAE;IACrDkgB,eAAe,GAAG,IAAI;EACxB;EACA,OAAOA,eAAe;AACxB,CAAC;AAEM,MAAMF,aAAa,GAAG,SAAAA,CAAA,EAAoB;EAAA,IAAnBkC,IAAI,GAAAniB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG8R,4CAAK,CAAC,CAAC;EAC1C,IAAI0M,6BAA6B,CAAC,CAAC,EAAE,OAAO,IAAI;EAEhD,IAAI4D,MAAM,GAAGrc,IAAI,CAACoP,KAAK,CAACC,YAAY,CAACC,OAAO,CAACqJ,kBAAkB,CAAC,CAAC;EACjE,IAAI0D,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,OACEA,MAAM,CAACC,kBAAkB,IACxBD,MAAM,CAACE,iBAAiB,IAAI,CAACF,MAAM,CAACG,2BAA4B,IACjEJ,IAAI,CAACzN,OAAO,CAAC5C,4CAAK,CAACsQ,MAAM,CAACI,cAAc,CAAC,CAAC;AAE9C,CAAC;AAEM,MAAMnC,eAAe,GAAG,SAAAA,CAC7BgC,kBAAkB,EAClBC,iBAAiB,EAId;EAAA,IAHHC,2BAA2B,GAAAviB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACnCmiB,IAAI,GAAAniB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG8R,4CAAK,CAAC,CAAC;EAAA,IACd2Q,QAAQ,GAAAziB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEb,MAAMwiB,cAAc,GAAGL,IAAI,CAACO,GAAG,CAACD,QAAQ,EAAE,GAAG,CAAC;EAC9C,MAAME,UAAU,GAAG;IACjBN,kBAAkB;IAClBC,iBAAiB;IACjBC,2BAA2B;IAC3BC,cAAc,EAAEA,cAAc,CAAC5hB,QAAQ,CAAC;EAC1C,CAAC;EACDyC,4EAAG,CAAC,0BAA0B0C,IAAI,CAACC,SAAS,CAAC2c,UAAU,CAAC,EAAE,CAAC;EAC3DvN,YAAY,CAAC0H,OAAO,CAAC4B,kBAAkB,EAAE3Y,IAAI,CAACC,SAAS,CAAC2c,UAAU,CAAC,CAAC;EACpE,OAAOH,cAAc;AACvB,CAAC;AAED,MAAM/C,yBAAyB,GAAGA,CAAA,KAAM;EACtC,IAAI2C,MAAM,GAAGrc,IAAI,CAACoP,KAAK,CAACC,YAAY,CAACC,OAAO,CAACqJ,kBAAkB,CAAC,CAAC;EACjE,IAAI0D,MAAM,CAACE,iBAAiB,EAAE;IAC5B,IAAIM,OAAO,GAAG5J,MAAM,CAAC6J,MAAM,CAAC,CAAC,CAAC,EAAET,MAAM,EAAE;MACtCG,2BAA2B,EAAE;IAC/B,CAAC,CAAC;IACFnN,YAAY,CAAC0H,OAAO,CAAC4B,kBAAkB,EAAE3Y,IAAI,CAACC,SAAS,CAAC4c,OAAO,CAAC,CAAC;EACnE;AACF,CAAC;AAEM,MAAM1C,kBAAkB,GAAI/f,QAAQ,IAAK;EAC9C,MAAM;IAAEuhB,IAAI;IAAEC;EAAS,CAAC,GAAGF,kBAAkB,CAACthB,QAAQ,CAAC;EACvD,OAAOge,2DAAiB,CAACuD,IAAI,EAAEC,QAAQ,CAAC;AAC1C,CAAC;AAED,iEAAelY,+CAAO,CACpBoU,oDAAU,EACVtU,oDAAO,CAAEhB,KAAK,KAAM;EAClBqW,cAAc,EAAErW,KAAK,CAACua,WAAW,CAACC,4BAA4B;EAC9DlE,cAAc,EACZtW,KAAK,CAACua,WAAW,CAACE;AACtB,CAAC,CAAC,CACJ,CAAC,CAACrE,mBAAmB,CAAC;;;;;;;;;;;;;;;AChUtB,MAAMsE,gCAAgC,GACpC,wCAAwC;AAEnC,MAAM5E,wBAAwB,GAAG;EACtC4E,gCAAgC;EAChCC,oCAAoC,EAAEA,CAAA,KAAM;IAC1C,MAAMC,eAAe,GAAGrhB,MAAM,CAACsT,YAAY,CAACC,OAAO,CACjD4N,gCACF,CAAC;IACD,IAAIE,eAAe,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,OAAOpd,IAAI,CAACoP,KAAK,CAACgO,eAAe,CAAC;EACpC,CAAC;EACD3E,6BAA6B,EAAEA,CAAA,KAAM;IACnC;IACA,IAAI4E,KAA0B,EAAE,EAAa;IAE7C,OAAO,CAAC,CAAChO,YAAY,CAACC,OAAO,CAAC4N,gCAAgC,CAAC;EACjE;AACF,CAAC;AAEM,MAAM3E,+BAA+B,GAAGA,CAAA,KAAM;EACnDxc,MAAM,CAACsT,YAAY,CAACmO,UAAU,CAACN,gCAAgC,CAAC;AAClE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACtBiD;AACxB;AACiC;AACR;AACe;AAElE,MAAM;EAAEC;AAAqC,CAAC,GAAG7E,oEAAwB;AAClE,MAAMqF,UAAU,GAAGA,CAACrhB,QAAQ,EAAEsf,QAAQ,KAC3CvC,OAAO,CAAC/S,MAAM,CAAEsX,MAAM,IAAK;EACzB,MAAMC,kBAAkB,GAAGD,MAAM,CAAC7D,SAAS,CAACpK,GAAG,CAACrT,QAAQ,CAAC;EACzD,MAAMwhB,oBAAoB,GAAGlC,QAAQ,CAClCpiB,GAAG,CAAEukB,OAAO,IAAKH,MAAM,CAAChC,QAAQ,CAACjM,GAAG,CAACoO,OAAO,CAAC,CAAC,CAC9C7iB,QAAQ,CAAC,IAAI,CAAC;EACjB,OAAO2iB,kBAAkB,IAAIC,oBAAoB;AACnD,CAAC,CAAC;AAEJ,MAAME,oBAAoB,GAAGb,oCAAoC,CAAC,CAAC;AAC5D,MAAMc,mBAAmB,GAAGA,CAAC3hB,QAAQ,EAAEsf,QAAQ,KACpD,IAAIsC,GAAG,CACLP,UAAU,CAACrhB,QAAQ,EAAEsf,QAAQ,CAAC,CAACpiB,GAAG,CAAE2kB,KAAK,IAAK;EAC5C,IAAIC,WAAW,GAAGJ,oBAAoB,CAACG,KAAK,CAACvgB,GAAG,CAAC;EACjD,MAAM7D,MAAM,GACVqkB,WAAW,KAAKjkB,SAAS,GAAGikB,WAAW,GAAGD,KAAK,CAACE,aAAa;EAC/D,IAAID,WAAW,EACb9gB,4EAAG,CAAC,UAAU6gB,KAAK,CAACvgB,GAAG,gBAAgBwgB,WAAW,cAAc,CAAC;EACnE,OAAO,CAACD,KAAK,CAACvgB,GAAG,EAAE7D,MAAM,CAAC;AAC5B,CAAC,CACH,CAAC;AAEH,MAAM,CAACukB,aAAa,EAAEC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AACjD,MAAMC,YAAY,GAAG,SAAAA,CAAA,EAAkB;EAAA,IAAjBnF,OAAO,GAAApf,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACvC,MAAMwkB,MAAM,GAAIb,MAAM,KAAM;IAAEA,MAAM;IAAEa,MAAM,EAAEH;EAAc,CAAC,CAAC;EAC9D,MAAMI,MAAM,GAAId,MAAM,KAAM;IAAEA,MAAM;IAAEa,MAAM,EAAEF;EAAkB,CAAC,CAAC;EAClE,MAAMI,cAAc,GAAGtF,OAAO,CAAC7f,GAAG,CAC/BokB,MAAM;EACL;EACA,IAAI1d,OAAO,CAAEiC,GAAG,IACdyc,KAAK,CAAC,KAAKhB,MAAM,EAAE,EAAE;IAAEjgB,MAAM,EAAE,MAAM;IAAEkhB,IAAI,EAAE;EAAU,CAAC,CAAC,CACtD5gB,IAAI,CAAC,MAAMkE,GAAG,CAACsc,MAAM,CAACb,MAAM,CAAC,CAAC,CAAC,CAC/Ble,KAAK,CAAC,MAAMyC,GAAG,CAACuc,MAAM,CAACd,MAAM,CAAC,CAAC,CACpC,CACJ,CAAC;EACD,OAAO1d,OAAO,CAACzG,GAAG,CAACklB,cAAc,CAAC;AACpC,CAAC;AAEM,MAAMvG,iBAAiB,GAAGA,CAAC9b,QAAQ,EAAEsf,QAAQ,KAAK;EACvD,MAAMkD,cAAc,GAAGb,mBAAmB,CAAC3hB,QAAQ,EAAE,CAAC,GAAGsf,QAAQ,CAAC,CAAC;EACnE,MAAMmD,sBAAsB,GAAGP,YAAY,CACzChgB,KAAK,CAAC4d,IAAI,CAAC0C,cAAc,CAAC5L,IAAI,CAAC,CAAC,CAClC,CAAC;EAED,OAAO6L,sBAAsB,CAAC9gB,IAAI,CAAE+gB,OAAO,IAAK;IAC9C,IAAIC,cAAc,GAAG,EAAE;IACvB,IAAIC,eAAe,GAAG,EAAE;IAExBF,OAAO,CAAC9c,OAAO,CAAEic,KAAK,IAAK;MACzB,IACEA,KAAK,CAACM,MAAM,KAAKF,iBAAiB,IAClCO,cAAc,CAACngB,GAAG,CAACwf,KAAK,CAACP,MAAM,CAAC,KAAKzF,OAAO,CAACgD,KAAK,EAClD;QACA+D,eAAe,GAAG,CAAC,GAAGA,eAAe,EAAEf,KAAK,CAACP,MAAM,CAAC;MACtD,CAAC,MAAM,IACLO,KAAK,CAACM,MAAM,KAAKF,iBAAiB,IAClCO,cAAc,CAACngB,GAAG,CAACwf,KAAK,CAACP,MAAM,CAAC,KAAKzF,OAAO,CAAC+C,IAAI,EACjD;QACA+D,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAEd,KAAK,CAACP,MAAM,CAAC;MACpD;IACF,CAAC,CAAC;IAEF,OAAO1d,OAAO,CAACC,OAAO,CAAC;MACrB,CAACgY,OAAO,CAAC+C,IAAI,GAAG+D,cAAc;MAC9B,CAAC9G,OAAO,CAACgD,KAAK,GAAG+D;IACnB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;AAEM,MAAM/G,OAAO,GAAG;EACrB+C,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE;AACT,CAAC;AAED,MAAM9B,OAAO,GAAG,CACd;EACEzb,GAAG,EAAE,0BAA0B;EAC/Bge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,WAAWuhB,IAAiB,iBAAiB;EAClDvD,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,SAASuhB,IAAiB,iBAAiB;EAChDvD,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC6B,mDAAK,EAAED,gDAAE,CAAC,CAAC;EAC9B1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,aAAauhB,IAAiB,iBAAiB;EACpDvD,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC6B,mDAAK,EAAED,gDAAE,CAAC,CAAC;EAC9B1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,UAAUuhB,IAAiB,iBAAiB;EACjDvD,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC6B,mDAAK,EAAED,gDAAE,CAAC,CAAC;EAC9B1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CAACxgB,4EAAS,CAACkB,OAAO,EAAElB,4EAAS,CAACoB,OAAO,CAAC,CAAC;EAC1D4hB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,UAAUuhB,IAAiB,iBAAiB;EACjDvD,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CAACxgB,4EAAS,CAACkB,OAAO,EAAElB,4EAAS,CAACoB,OAAO,CAAC,CAAC;EAC1D4hB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,cAAc;EACnBge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC6B,mDAAK,EAAED,gDAAE,CAAC,CAAC;EAC9B1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAACgD;AACzB,CAAC,EACD;EACEvd,GAAG,EAAE,cAAc;EACnBge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC6B,mDAAK,EAAED,gDAAE,CAAC,CAAC;EAC9B1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAACgD;AACzB,CAAC,EACD;EACEvd,GAAG,EAAE,YAAY;EACjBge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,iBAAiB;EACtBge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,0BAA0B;EAC/Bge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,sBAAsB;EAC3Bge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC6B,mDAAK,EAAED,gDAAE,CAAC,CAAC;EAC9B1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,EACD;EACEtd,GAAG,EAAE,4BAA4B;EACjCge,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAAC4B,gDAAE,CAAC,CAAC;EACvB1D,SAAS,EAAE,IAAI8B,GAAG,CAAC,CACjBxgB,4EAAS,CAACkB,OAAO,EACjBlB,4EAAS,CAACoB,OAAO,EACjBpB,4EAAS,CAACwB,WAAW,EACrBxB,4EAAS,CAACuB,KAAK,CAChB,CAAC;EACFyhB,aAAa,EAAElG,OAAO,CAAC+C;AACzB,CAAC,CACF;AAEM,MAAM7C,eAAe,GAAIte,MAAM,IAAK;EACzC,IAAIA,MAAM,KAAKoe,OAAO,CAAC+C,IAAI,EAAE;IAC3B,oBACE7X,gDAAA;MAAM2X,SAAS,EAAC;IAAkD,GAAC,GAE7D,CAAC;EAEX,CAAC,MAAM,IAAIjhB,MAAM,KAAKoe,OAAO,CAACgD,KAAK,EAAE;IACnC,oBACE9X,gDAAA;MAAM2X,SAAS,EAAC;IAAkD,GAAC,GAE7D,CAAC;EAEX;AACF,CAAC;AAED,iEAAe;EACb3f,SAAS;EACT+c,iBAAiB;EACjBC,eAAe;EACfF,OAAO;EACPiH,WAAW,EAAE;IACXzB,UAAU;IACVM,mBAAmB;IACnBO,YAAY;IACZnF;EACF;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;AC/OsB;AACmC;AAE2B;AACZ;AAEzE,MAAMgG,kBAAkB,GAAG,IAAIvc,uEAA4B,CAAC;EAC1DC,4BAA4BA,4DAAAA;AAC9B,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,MAAMuc,YAAY,GAAIzX,KAAK,IAAK;EAC9B,MAAM;IAAE0X,GAAG;IAAEvc,eAAe;IAAEwc,OAAO;IAAElU;EAAI,CAAC,GAAGzD,KAAK;EACpD,MAAM4X,QAAQ,GAAGD,OAAO,KAAK,cAAc,GAAG,WAAW,GAAG,UAAU;EAEtE,MAAMvc,gBAAgB,GAAGJ,qEAAsB,CAAC;IAC9CK,GAAG,EAAE,GAAGqc,GAAG,GAAGE,QAAQ;EACxB,CAAC,CAAC;EAEF,OAAO9c,uEAAe,CACpBM,gBAAgB,EAChBD,eAAe,EACfsI,GAAG,KAAK,kBACV,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACO,MAAMoU,WAAW,GAAGJ,YAAY,CAAC;EACtChU,GAAG,EAAE,OAAO;EACZkU,OAAO,EAAE,aAAa;EACtBD,GAAG,EAAEI,gDAAqB;EAC1B3c,eAAeA,gGAAAA;AACjB,CAAC,CAAC;AAEK,MAAM4c,SAAS,GAAGN,YAAY,CAAC;EACpChU,GAAG,EAAE,KAAK;EACVkU,OAAO,EAAE,WAAW;EACpBD,GAAG,EAAEvhB,8CAAe;EACpBgF,eAAe,EAAEqc;AACnB,CAAC,CAAC;AAEK,MAAMQ,qBAAqB,GAAGP,YAAY,CAAC;EAChDhU,GAAG,EAAE,kBAAkB;EACvBkU,OAAO,EAAE,uBAAuB;EAChCD,GAAG,EAAEvhB,8CAAe;EACpBgF,eAAe,EAAEqc;AACnB,CAAC,CAAC;AAEK,MAAMS,aAAa,GAAGR,YAAY,CAAC;EACxChU,GAAG,EAAE,SAAS;EACdkU,OAAO,EAAE,eAAe;EACxBD,GAAG,EAAEQ,oDAAyBA;AAChC,CAAC,CAAC;AAEK,MAAMC,aAAa,GAAGV,YAAY,CAAC;EACxChU,GAAG,EAAE,SAAS;EACdkU,OAAO,EAAE,cAAc;EACvBD,GAAG,EAAEU,kDAAuBA;AAC9B,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnEwB;AACU;AACb;AACG;AACF;AAEjB,MAAMG,UAAU,GAAI1b,IAAI,IAC7BA,IAAI,GAAGZ,0DAAmB,CAACY,IAAI,CAAC,GAAGvK,SAAS;AAEvC,MAAMmmB,WAAW,GAAIC,GAAG,IAAMA,GAAG,GAAGzc,yDAAkB,CAACyc,GAAG,CAAC,GAAGpmB,SAAU;AAExE,MAAM8J,WAAW,GAAIS,IAAI,IAC9Bwb,6CAAC,CAACE,UAAU,CAAC1b,IAAI,CAAC,CAAC,CAChBlL,GAAG,CAAEinB,CAAC,IAAMP,qDAAS,CAACO,CAAC,CAAC,GAAGP,oDAAQ,CAACO,CAAC,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC,GAAGF,CAAE,CAAC,CACtDtN,IAAI,CAAC,CAAC,CACNwN,IAAI,CAAC,GAAG,CAAC;AAEP,MAAMC,YAAY,GAAIL,GAAG,IAAK,CAACD,WAAW,CAACC,GAAG,CAAC,IAAI,EAAE,EAAEpN,IAAI,CAAC,CAAC,CAACwN,IAAI,CAAC,GAAG,CAAC;AAEvE,MAAME,QAAQ,GAAGA,CAACtF,EAAE,EAAEjhB,MAAM,EAAE4N,KAAK,KAAK;EAC7C,MAAM4Y,IAAI,GAAG9lB,QAAQ,CAACkN,KAAK,CAAC4Y,IAAI,EAAE,EAAE,CAAC;EACrC,MAAMC,OAAO,GAAG,CAACjmB,MAAM,CAACC,KAAK,CAAC+lB,IAAI,CAAC,GAAGA,IAAI,GAAG,CAAC;EAE9C,MAAME,IAAI,GAAG,IAAI1mB,MAAM,CAACW,OAAO,IAAIsgB,EAAE,EAAE;EACvC,MAAM0F,SAAS,GAAG;IAAE,GAAG/Y,KAAK;IAAE4Y,IAAI,EAAEC,OAAO,GAAG;EAAE,CAAC;EACjD,oBACE1d,gDAAA;IAAK2X,SAAS,EAAC;EAAkB,gBAC/B3X,gDAAA,CAACwU,8CAAI;IACH,kCAA0B;IAC1B0D,EAAE,EAAE;MAAEpe,QAAQ,EAAE6jB,IAAI;MAAE9Y,KAAK,EAAE+Y;IAAU,CAAE;IACzCjG,SAAS,EAAEmF,gDAAG,CAAC;MAAEe,KAAK,EAAE,OAAO;MAAEC,KAAK,EAAE,OAAO;MAAEvR,IAAI,EAAE;IAAQ,CAAC;EAAE,GACnE,MAEK,CACH,CAAC;AAEV,CAAC;AAEM,MAAMwR,QAAQ,GAAGA,CAAC7F,EAAE,EAAEjhB,MAAM,EAAE4N,KAAK,KAAK;EAC7C,MAAM4Y,IAAI,GAAG9lB,QAAQ,CAACkN,KAAK,CAAC4Y,IAAI,EAAE,EAAE,CAAC;EACrC,MAAMC,OAAO,GAAG,CAACjmB,MAAM,CAACC,KAAK,CAAC+lB,IAAI,CAAC,GAAGA,IAAI,GAAG,CAAC;EAE9C,MAAME,IAAI,GAAG,IAAI1mB,MAAM,CAACW,OAAO,IAAIsgB,EAAE,EAAE;EACvC,MAAM8F,SAAS,GAAG;IAAE,GAAGnZ,KAAK;IAAE4Y,IAAI,EAAEC,OAAO,GAAG;EAAE,CAAC;EACjD,oBACE1d,gDAAA;IAAK2X,SAAS,EAAC;EAAkB,gBAC/B3X,gDAAA,CAACwU,8CAAI;IACH,kCAA0B;IAC1B0D,EAAE,EAAE;MAAEpe,QAAQ,EAAE6jB,IAAI;MAAE9Y,KAAK,EAAEmZ;IAAU,CAAE;IACzCrG,SAAS,EAAEmF,gDAAG,CAAC;MAAEe,KAAK,EAAE,OAAO;MAAEC,KAAK,EAAE,MAAM;MAAEvR,IAAI,EAAE;IAAQ,CAAC;EAAE,GAClE,MAEK,CACH,CAAC;AAEV,CAAC;AAEM,MAAM0R,QAAQ,GAAGA,CAAC/F,EAAE,EAAEjhB,MAAM,EAAE4N,KAAK,EAAEqZ,UAAU,KAAK;EACzD,MAAMP,IAAI,GAAG,IAAI1mB,MAAM,CAACW,OAAO,IAAIsgB,EAAE,EAAE;EACvC,MAAMiG,SAAS,GAAG;IAAE,GAAGtZ,KAAK;IAAE4Y,IAAI,EAAES;EAAW,CAAC;EAChD,OAAO;IAAEpkB,QAAQ,EAAE6jB,IAAI;IAAE9Y,KAAK,EAAEsZ;EAAU,CAAC;AAC7C,CAAC;;AAED;AACO,MAAMC,aAAa,GAAGA,CAACC,SAAS,EAAEhd,IAAI,EAAEid,gBAAgB,KAAK;EAClE,MAAM;IAAE9Z;EAAM,CAAC,GAAG6Z,SAAS;EAC3B,MAAME,QAAQ,GAAG1B,oDAAQ,CAACxb,IAAI,EAAEwb,uDAAS,CAAC;EAC1C,MAAMhY,KAAK,GAAGgY,kDAAM,CAACrY,KAAK,CAAC3K,QAAQ,CAACgL,KAAK,EAAE,CACzC,MAAM,EACN,MAAM,EACN,eAAe,EACf,aAAa,CACd,CAAC;EACF,IAAI;IAAE/K;EAAS,CAAC,GAAGpB,MAAM,CAACmB,QAAQ;EAElC,IAAI,CAACgjB,qDAAS,CAAC0B,QAAQ,CAAC,EAAE;IACxB,IAAID,gBAAgB,EAAE;MACpB,MAAM;QAAEG,aAAa;QAAEC;MAAY,CAAC,GAAG7B,oDAAQ,CAC7CyB,gBAAgB,EAChBzB,uDACF,CAAC;MACD,IAAI4B,aAAa,EAAE;QACjB5Z,KAAK,CAAC4Z,aAAa,GAAGhe,yDAAkB,CAACge,aAAa,CAAC;MACzD;MACA,IAAIC,WAAW,EAAE;QACf7Z,KAAK,CAAC6Z,WAAW,GAAGje,yDAAkB,CAACie,WAAW,CAAC;MACrD;IACF;IAEA7Z,KAAK,CAACxD,IAAI,GAAGZ,0DAAmB,CAAC8d,QAAQ,CAAC;IAC1C,IACE1Z,KAAK,CAACxD,IAAI,KAAKmD,KAAK,CAACxN,MAAM,CAAC6C,QAAQ,CAACgL,KAAK,CAACxD,IAAI,IAC/CwD,KAAK,CAAC4Z,aAAa,KAAKja,KAAK,CAACxN,MAAM,CAAC6C,QAAQ,CAACgL,KAAK,CAAC4Z,aAAa,IACjE5Z,KAAK,CAAC6Z,WAAW,KAAKla,KAAK,CAACxN,MAAM,CAAC6C,QAAQ,CAACgL,KAAK,CAAC6Z,WAAW,EAC7D;MACAla,KAAK,CAACxN,MAAM,CAAC2H,IAAI,CAAC;QAChB7E,QAAQ;QACR+K;MACF,CAAC,CAAC;IACJ;EACF,CAAC,MAAM;IACL,MAAM+Z,QAAQ,GAAGhP,MAAM,CAAC6J,MAAM,CAAC,CAAC,CAAC,EAAE5U,KAAK,CAAC;IACzC,OAAO+Z,QAAQ,CAACvd,IAAI;IAEpBmD,KAAK,CAACxN,MAAM,CAAC2H,IAAI,CAAC;MAChB7E,QAAQ;MACR+K,KAAK,EAAE+Z;IACT,CAAC,CAAC;EACJ;AACF,CAAC;AAEM,MAAMC,oBAAoB,GAAGA,CAACR,SAAS,EAAAjiB,IAAA,KAAqB;EAAA,IAAnB;IAAEwL;EAAW,CAAC,GAAAxL,IAAA;EAC5D,MAAM;IAAEoI;EAAM,CAAC,GAAG6Z,SAAS;EAC3B,MAAM;IACJrnB,MAAM;IACN6C,QAAQ,EAAE;MAAEgL;IAAM;EACpB,CAAC,GAAGL,KAAK;EACT,MAAM;IAAE1K;EAAS,CAAC,GAAGpB,MAAM,CAACmB,QAAQ;EACpC,MAAM+kB,QAAQ,GAAG;IAAE,GAAG/B,kDAAM,CAAChY,KAAK,EAAE,MAAM;EAAE,CAAC;EAE7C,IAAI+C,UAAU,KAAK,IAAI,EAAE;IACvBgX,QAAQ,CAAChX,UAAU,GAAGA,UAAU;EAClC,CAAC,MAAM;IACL,OAAOgX,QAAQ,CAAChX,UAAU;EAC5B;EAEA5Q,MAAM,CAAC2H,IAAI,CAAC;IACV7E,QAAQ;IACR+K,KAAK,EAAE+Z;EACT,CAAC,CAAC;AACJ,CAAC;;;;;;;;;;;;;;;AClImD;AAE7C,MAAME,SAAS,GAAGpT,kEAAa,CAAC,uBAAuB,CAAC;;;;;;;;;;;;;;;;ACFE;AAC3B;AAEtC,MAAMzM,YAAY,GAAG;EACnBzE,IAAI,EAAE,EAAE;EACRukB,OAAO,EAAE;AACX,CAAC;AAED,MAAM3S,OAAO,GAAGR,gFAAa,CAAC3M,YAAY,EAAE;EAC1C,CAAC6f,+CAAS,CAAC3gB,OAAO,GAAIgB,KAAK,KAAM;IAC/B,GAAGA,KAAK;IACR4f,OAAO,EAAE;EACX,CAAC,CAAC;EACF,CAACD,+CAAS,CAAC/f,OAAO,GAAG,CAACI,KAAK,EAAA/C,IAAA;IAAA,IAAE;MAAEiQ;IAAQ,CAAC,GAAAjQ,IAAA;IAAA,OAAM;MAC5C,GAAG+C,KAAK;MACR4f,OAAO,EAAE,KAAK;MACdvkB,IAAI,EAAE6R;IACR,CAAC;EAAA,CAAC;EACF,CAACyS,+CAAS,CAAC9f,OAAO,GAAIG,KAAK,KAAM;IAC/B,GAAGA,KAAK;IACR4f,OAAO,EAAE;EACX,CAAC;AACH,CAAC,CAAC;AAEF,iEAAe3S,OAAO;;;;;;;;;;;;;;;;;;ACxB+B;AACS;AAExB;AAE/B,SAAU6S,aAAaA,CAAA7iB,IAAA;EAAA,IAAC;IAAEiQ;EAAQ,CAAC,GAAAjQ,IAAA;EAAA,oBAAE;IAC1C,MAAM;MAAE8iB,SAAS;MAAEC,MAAM;MAAEC,8BAA8B;MAAExZ;IAAgB,CAAC,GAC1EyG,OAAO;IACT,IAAI7Q,IAAI,GAAG,EAAE;IACbA,IAAI,IAAI,GAAG,CAAC,CAACA,IAAI,GAAG,GAAGA,IAAI,QAAQ,GAAG,GAAG,GACvC,CAAC,CAACoK,eAAe,GAAG,oBAAoBA,eAAe,EAAE,GAAG,EAAE,EAC9D;IACF,MAAMpI,mFAAO,CAACshB,+CAAS,EAAE;MACvBvkB,GAAG,EAAE,uBAAuB2kB,SAAS,UAAUC,MAAM,IAAI3jB,IAAI,EAAE;MAC/DoC,QAAQ,EAAEwhB,8BAA8B;MACxCvhB,aAAa,EAAE;IACjB,CAAC,CAAC;EACJ,CAAC;AAAA;AAEc,UAAUwhB,YAAYA,CAAA,EAAG;EACtC,MAAMjpB,uDAAG,CAAC,CAAC4oB,8DAAU,CAACF,+CAAS,CAACQ,OAAO,EAAEL,aAAa,CAAC,CAAC,CAAC;AAC3D;;;;;;;;;;;;;;;;ACrBO,MAAMM,kBAAkB,GAAGA,CAACtX,GAAG,EAAEzN,IAAI,KAC1C9B,MAAM,CAACsT,YAAY,CAAC0H,OAAO,CAACzL,GAAG,EAAEtL,IAAI,CAACC,SAAS,CAACpC,IAAI,CAAC,CAAC;AAEjD,MAAMglB,wBAAwB,GAAIvX,GAAG,IAC1CtL,IAAI,CAACoP,KAAK,CAACrT,MAAM,CAACsT,YAAY,CAACC,OAAO,CAAChE,GAAG,CAAC,CAAC;AAEvC,MAAM4M,yBAAyB,GAAI5M,GAAG,IAC3CvP,MAAM,CAACsT,YAAY,CAACmO,UAAU,CAAClS,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;ACPrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE0B;AACgB;AACkC;AACzC;AAEnC,MAAM;EAAE2X,MAAM;EAAEC,KAAK;EAAEC,SAAS;EAAEC,MAAM;EAAEC;AAAM,CAAC,GAAGL,iDAAS,CAC3DD,yFAAW,EACXjoB,MACF,CAAC;AACD,MAAMwoB,eAAe,GAAG,IAAI;AAC5B,MAAMC,iBAAiB,GAAGN,MAAM;;AAEhC;AACA;AACA;AACA;AACA,MAAMO,cAAc,gBAAGngB,6CAAgB,CAAC,CAACwE,KAAK,EAAE6b,GAAG,KAAK;EACtD,MAAM;IAAEC,OAAO;IAAEte,QAAQ;IAAE,GAAGue;EAAW,CAAC,GAAG/b,KAAK;EAElD,MAAMgc,WAAW,GAAG;IAClBZ,MAAM,EAAE;MACNa,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAEX,MAAM,GAAG;IACrB,CAAC;IACDY,OAAO,EAAE;MACPF,QAAQ,EAAEV,MAAM;MAChBW,QAAQ,EAAET;IACZ,CAAC;IACD,SAAS,EAAE;MACTQ,QAAQ,EAAE,CAAC;MACXC,QAAQ,EAAEb,KAAK,GAAG;IACpB,CAAC;IACDA,KAAK,EAAE;MACLY,QAAQ,EAAEZ,KAAK;MACfa,QAAQ,EAAEZ,SAAS,GAAG;IACxB,CAAC;IACDA,SAAS,EAAE;MACTW,QAAQ,EAAEX,SAAS;MACnBY,QAAQ,EAAEX,MAAM,GAAG;IACrB,CAAC;IACDA,MAAM,EAAE;MACNU,QAAQ,EAAEV,MAAM;MAChBW,QAAQ,EAAEV,KAAK,GAAG;IACpB,CAAC;IACDA,KAAK,EAAE;MACLS,QAAQ,EAAET,KAAK;MACfU,QAAQ,EAAET;IACZ;EACF,CAAC;EAED,MAAMW,QAAQ,GAAGhR,MAAM,CAACC,IAAI,CAAC2Q,WAAW,CAAC,CAAChU,MAAM,CAC9C,CAACqU,WAAW,EAAEC,oBAAoB,KAAK;IACrC,IAAIR,OAAO,CAACzoB,QAAQ,CAACipB,oBAAoB,CAAC,EAAE;MAC1C,MAAMC,iBAAiB,GAAGP,WAAW,CAACM,oBAAoB,CAAC;MAE3D,OAAO;QACLL,QAAQ,EAAEO,IAAI,CAACC,GAAG,CAACJ,WAAW,CAACJ,QAAQ,EAAEM,iBAAiB,CAACN,QAAQ,CAAC;QACpEC,QAAQ,EAAEM,IAAI,CAACE,GAAG,CAACL,WAAW,CAACH,QAAQ,EAAEK,iBAAiB,CAACL,QAAQ;MACrE,CAAC;IACH;IAEA,OAAOG,WAAW;EACpB,CAAC,EACD;IAAEJ,QAAQ,EAAER,eAAe;IAAES,QAAQ,EAAE;EAAE,CAC3C,CAAC;EAED,MAAM;IAAED,QAAQ;IAAEC;EAAS,CAAC,GAAGE,QAAQ;EACvC,MAAMO,OAAO,GAAGT,QAAQ,KAAKT,eAAe,GAAG,IAAI,GAAGS,QAAQ;EAE9D,IAAI7b,KAAK,GAAG,eAAe4b,QAAQ,KAAK;EACxC,IAAIU,OAAO,EAAE;IACXtc,KAAK,GAAG,eAAe4b,QAAQ,uBAAuBC,QAAQ,KAAK;EACrE;EAEA,oBACE1gB,gDAAA,CAACyf,yDAAU;IAAC5a,KAAK,EAAEA;EAAM,GACrBnB,OAAO,IAAK;IACZ,IAAIA,OAAO,EAAE;MACX,OAAO1D,2CAAc,CAACqhB,OAAO,CAACrf,QAAQ,CAAC,CAAC7L,GAAG,CAAC,CAAC8L,KAAK,EAAEqf,KAAK,kBACvDthB,+CAAkB,CAACiC,KAAK,EAAE;QACxB,GAAGse,UAAU;QACbtY,GAAG,EAAE,mBAAmBqZ,KAAK,EAAE;QAC/BjB;MACF,CAAC,CACH,CAAC;IACH;IAEA,OAAO,IAAI;EACb,CACU,CAAC;AAEjB,CAAC,CAAC;AACFF,cAAc,CAACjY,WAAW,GAAG,gBAAgB;AAE7C,MAAMsZ,WAAW,GAAG9oB,MAAM,CAAC+oB,UAAU,CAAC,eAAevB,iBAAiB,KAAK,CAAC;AAC5E,MAAMwB,WAAW,GAAGhpB,MAAM,CAAC+oB,UAAU,CAAC,eAAe1B,MAAM,KAAK,CAAC;AAC7B;AAEpC,iEAAeI,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;AC9GgC;AAClC;AACC;AACoB;AACH;AACkB;AAE/D,MAAM6B,OAAO,GAAGD,0EAMd;AACkC;AAgB7B,MAAMI,KAAK,GAAG/lB,IAAA,IAAqD;EAAA,IAApD;IAAEwH,KAAK;IAAEwe,WAAW;IAAEC,KAAK;IAAE9V;EAAiB,CAAC,GAAAnQ,IAAA;EACnE,IAAIwH,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI;EAC5B,IAAI0e,UAA2B,GAAG1e,KAAK;EACvC;AACF;AACA;AACA;AACA;EACE,IAAIA,KAAK,KAAK,CAAC,CAAC,EAAE;IAChB0e,UAAU,GAAG,CAAC;EAChB;EAEA,MAAMC,WAAW,GAAIhW,IAAwB,IAAK;IAChD,MAAMiW,UAAU,GACd,+DAA+D;IACjE,OAAOjW,IAAI,KAAK,OAAO,GACnB,GAAGiW,UAAU,0BAA0B,GACvC,GAAGA,UAAU,wBAAwB;EAC3C,CAAC;EAED,IAAIF,UAAU,KAAK,CAAC,EAAE;IACpB,oBAAOtiB,gDAAA;MAAM2X,SAAS,EAAE,GAAG4K,WAAW,CAAChW,IAAI,CAAC;IAAG,GAAE+V,UAAiB,CAAC;EACrE;EAEA,oBACEtiB,gDAAA;IAAK2X,SAAS,EAAEiK,iDAAE,CAAC,sBAAsB,EAAEQ,WAAW,CAAE;IAACC,KAAK,EAAEA;EAAM,gBACpEriB,gDAAA;IAAM2X,SAAS,EAAC,aAAa;IAAC,yBAAuByK;EAAY,GAC9DE,UACG,CACH,CAAC;AAEV,CAAC;AAYD,MAAMG,UAAU,SAASd,4CAAS,CAAkB;EAWlDe,MAAMA,CAAA,EAAG;IACP,MAAM;MACJC,UAAU;MACVC,MAAM,GAAG,EAAE;MACXC,OAAO;MACPC,SAAS;MACTC,yBAAyB;MACzBC,WAAW;MACXC;IACF,CAAC,GAAG,IAAI,CAACze,KAAK;IAEd,MAAM0e,eAAe,GAAGN,MAAM,CAAC3f,MAAM,CAClCkgB,KAAK,IAAKA,KAAK,CAACC,IAAI,IAAID,KAAK,CAACvf,KAAK,KAAK,CAC3C,CAAC;IAED,oBACE5D,gDAAA;MACE2X,SAAS,EAAEiK,iDAAE,CACX,aAAa,EACb;QAAE,WAAW,EAAEiB;MAAQ,CAAC,EACxB;QAAE,WAAW,EAAEC;MAAU,CAAC,EAC1B;QAAE,eAAe,EAAEG;MAAa,CAClC;IAAE,gBAEFjjB,gDAAA;MAAK2X,SAAS,EAAC;IAAK,GAEjBiL,MAAM,CAAC/rB,MAAM,KAAK,CAAC,IAAI+rB,MAAM,CAAC,CAAC,CAAC,CAAChf,KAAK,KAAK,CAAC,iBAC3C5D,gDAAA,CAACmiB,KAAK;MAACve,KAAK,EAAE,CAAC,CAAE;MAAC2I,IAAI,EAAEyW,WAAW,GAAG,OAAO,GAAG;IAAQ,CAAE,CAC3D,EAEAE,eAAe,CAAC/sB,GAAG,CAAC,CAACgtB,KAAK,EAAE7B,KAAK,KAAK;MACrC,MAAM+B,OAAO,GAAG/B,KAAK,KAAK,CAAC;MAC3B,MAAMgC,MAAM,GAAGhC,KAAK,KAAK4B,eAAe,CAACrsB,MAAM,GAAG,CAAC;MACnD;MACA;MACA;MACA,MAAM0sB,IAAI,GAAG,GAAGrB,gDAAM,CAAC,CAAC,IAAIiB,KAAK,CAACnoB,MAAM,EAAE;MAC1C,oBACEgF,gDAAA,CAACmiB,KAAK;QACJla,GAAG,EAAEsb,IAAK;QACVnB,WAAW,EAAEe,KAAK,CAACnoB,MAAO;QAC1B4I,KAAK,EAAEuf,KAAK,CAACC,IAAI,IAAID,KAAK,CAACvf,KAAM;QACjCye,KAAK,EAAE;UACLmB,QAAQ,EAAEL,KAAK,CAACvf,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,GAAGuf,KAAK,CAACvf,KAAK;UAC9C6f,mBAAmB,EAAEJ,OAAO,GAAG,MAAM,GAAG,MAAM;UAC9CK,sBAAsB,EAAEL,OAAO,GAAG,MAAM,GAAG,MAAM;UACjDM,oBAAoB,EAAEL,MAAM,GAAG,MAAM,GAAG,MAAM;UAC9CM,uBAAuB,EAAEN,MAAM,GAAG,MAAM,GAAG;QAC7C;MAAE,CACH,CAAC;IAEN,CAAC,CACE,CAAC,EAELX,UAAU,iBACT3iB,gDAAA;MAAK2X,SAAS,EAAC;IAAQ,GACpBiL,MAAM,CAACzsB,GAAG,CAAEgtB,KAAK,IAAK;MACrB,MAAMnoB,MAAM,GACV6mB,yDAAW,CAIXsB,KAAK,CAACnoB,MAAM,CAAC;MAEf,OACEmoB,KAAK,CAACvf,KAAK,KAAK,CAAC,iBACf5D,gDAAA;QAAM2X,SAAS,EAAC,OAAO;QAAC1P,GAAG,EAAEkb,KAAK,CAACnoB;MAAO,gBACxCgF,gDAAA,CAAC8hB,uDAAI;QACHte,IAAI,EAAExI,MAAM,CAAC6oB,IAAK;QAClBtX,IAAI,EAAC,OAAO;QACZoL,SAAS,EAAE3c,MAAM,CAAC2c;MAAU,CAC7B,CAAC,EACD3c,MAAM,CAACsG,KACJ,CACP;IAEL,CAAC,CAAC,EACDyhB,yBAAyB,iBACxB/iB,gDAAA;MAAM2X,SAAS,EAAC;IAAsC,gBACpD3X,gDAAA;MAAM2X,SAAS,EAAC;IAAmB,GAAC,wCAE9B,CAAC,eACP3X,gDAAA,CAACgiB,OAAO;MACNrK,SAAS,EAAC,kBAAkB;MAC5BpL,IAAI,EAAC,QAAQ;MACbuX,aAAa,EAAE;QACb,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE;MACtB,CAAE;MACFC,OAAO,eAAE/jB,gDAAA,CAAC8hB,uDAAI;QAACte,IAAI,EAAC;MAAM,CAAE;IAAE,gBAE9BxD,gDAAA;MAAG4B,EAAE,EAAC;IAAc,GACjB;AACrB;AACA;AACA;AACA;AACA,uDACqB,CACI,CACL,CAEL,CAEJ,CAAC;EAEV;AACF;AAACoiB,eAAA,CAtHKvB,UAAU,kBACyB;EACrCE,UAAU,EAAE,KAAK;EACjBE,OAAO,EAAE,KAAK;EACdG,WAAW,EAAE,KAAK;EAClBF,SAAS,EAAE,KAAK;EAChBF,MAAM,EAAE,EAAE;EACVG,yBAAyB,EAAE,KAAK;EAChCE,YAAY,EAAE;AAChB,CAAC;AA+GH,iEAAeR,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjMU;AACM;AACR;AACL;AAC6B;AACF;AAC6B;AACpB;AAEtB;AAE1C,MAAM6B,yBAAyB,SAAS3C,4CAAS,CAAC;EAKhD4C,qBAAqBA,CAAAnoB,IAAA,EAAW;IAAA,IAAV;MAAEiF;IAAK,CAAC,GAAAjF,IAAA;IAC5B,OAAO,CAAC8nB,+CAAO,CAAC,IAAI,CAAC1f,KAAK,CAACnD,IAAI,EAAEA,IAAI,CAAC;EACxC;EAEAmjB,UAAUA,CAACtiB,GAAG,EAAEof,KAAK,EAAE;IACrB,MAAM;MAAEmD,WAAW;MAAEC;IAAa,CAAC,GAAG,IAAI,CAAClgB,KAAK;;IAEhD;IACA;IACA;IACA,MAAMmgB,iBAAiB,GACrBziB,GAAG,CAACqB,WAAW,IAAIrB,GAAG,CAACqB,WAAW,CAAC1M,MAAM,KAAKqL,GAAG,CAACqG,KAAK,CAAC1R,MAAM;IAEhE,MAAM+tB,SAAS,GAAGD,iBAAiB,gBACjC3kB,gDAAA,CAACgiB,0EAAO;MACN6C,UAAU;MACVC,cAAc,EAAGC,iBAAiB,IAChCV,8EAAiB,CAACU,iBAAiB,CAACziB,OAAO,CAC5C;MACDyhB,OAAO,EAAEA,CAACiB,WAAW,EAAEC,MAAM,EAAEC,UAAU,KAAK;QAC5C,IAAIT,WAAW,EAAE;UACf,oBAAOzkB,gDAAA,CAACokB,4FAAgB;YAAC9iB,KAAK,EAAEY,GAAG,CAACZ,KAAK,CAACxJ,OAAO,CAAC,QAAQ,EAAE,EAAE;UAAE,CAAE,CAAC;QACrE;QACA,oBACEkI,gDAAA,CAACmkB,yEAAM,EAAAnc,QAAA,KACDgd,WAAW;UACfG,OAAO;UACPC,MAAM;UACNtB,aAAa,EAAE;YACbvb,KAAK,EAAErG,GAAG,CAACmjB;UACb,CAAE;UACF1N,SAAS,EAAEiK,iDAAE,CAAC8C,YAAY,CAAE;UAC5BrE,GAAG,EAAE6E;QAAW,IAEfhjB,GAAG,CAACZ,KACC,CAAC;MAEb,CAAE;MACF2G,GAAG,EAAEqZ;IAAM,gBAEXthB,gDAAA;MACE2X,SAAS,EAAC,2BAA2B;MACrC0K,KAAK,EAAE;QAAE5B,QAAQ,EAAE;MAAQ;IAAE,GAE5Bve,GAAG,CAACqB,WACF,CACE,CAAC,gBAEVvD,gDAAA;MACE2X,SAAS,EAAEiK,iDAAE,CACX,uDAAuD,EACvD8C,YACF,CAAE;MACFzc,GAAG,EAAEqZ;IAAM,GAEVpf,GAAG,CAACZ,KACD,CACP;IACD,OAAOsjB,SAAS;EAClB;EAEAlC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAErhB;IAAK,CAAC,GAAG,IAAI,CAACmD,KAAK;IAC3B,oBACExE,gDAAA;MAAK,gBAAa,aAAa;MAAC2X,SAAS,EAAC;IAA+B,GACtEtW,IAAI,IAAIA,IAAI,CAAClL,GAAG,CAAC,CAAC+L,GAAG,EAAEof,KAAK,KAAK,IAAI,CAACkD,UAAU,CAACtiB,GAAG,EAAEof,KAAK,CAAC,CAC1D,CAAC;EAEV;AACF;AAAC0C,eAAA,CA1EKM,yBAAyB,eACV;EACjBjjB,IAAI,EAAE4iB,yDAAeqB;AACvB,CAAC;AAyEH,iEAAehB,yBAAyB;;;;;;;;;;;;;;;;;ACvFxC;AACA;AACA;AACA;AACA,MAAMiB,SAAS,GAAIzrB,QAAQ,IAAKA,QAAQ,CAACjC,QAAQ,CAAC,OAAO,CAAC;;AAE1D;AACA;AACA;AACA;AACA,MAAM2tB,UAAU,GAAI1rB,QAAQ,IAAKA,QAAQ,CAACjC,QAAQ,CAAC,QAAQ,CAAC;;AAE5D;AACA;AACA;AACA;AACA,MAAM4tB,QAAQ,GAAI3rB,QAAQ,IAAKA,QAAQ,CAACjC,QAAQ,CAAC,MAAM,CAAC;;AAExD;AACA;AACA;AACA;AACA,MAAM6tB,QAAQ,GAAI5rB,QAAQ,IAAKA,QAAQ,KAAK,GAAG;;;;;;;;;;;;;;;;ACtBmB;;AAElE;AACA;AACA;AACO,MAAM4c,SAAS,GAAG;EACvBiP,MAAM,EAAE,EAAE;EAEV;AACF;AACA;AACA;EACEC,GAAGA,CAACC,KAAK,EAAE;IACT,IAAI,CAACF,MAAM,GAAGE,KAAK,IAAI,IAAI,CAACF,MAAM;IAElC,OAAO,IAAI;EACb,CAAC;EACD;AACF;AACA;AACA;EACEvuB,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACuuB,MAAM,CAAC9tB,QAAQ,CAACG,4EAAS,CAACuB,KAAK,CAAC;EAC9C,CAAC;EACD;AACF;AACA;AACA;EACElC,aAAaA,CAAA,EAAG;IACd,OAAO,IAAI,CAACsuB,MAAM,CAAC9tB,QAAQ,CAACG,4EAAS,CAACwB,WAAW,CAAC;EACpD,CAAC;EACD;AACF;AACA;AACA;EACEssB,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACH,MAAM,CAAC9tB,QAAQ,CAACG,4EAAS,CAAC+tB,KAAK,CAAC;EAC9C,CAAC;EACD;AACF;AACA;AACA;EACE/sB,SAASA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC2sB,MAAM,CAAC9tB,QAAQ,CAACG,4EAAS,CAACkB,OAAO,CAAC;EAChD,CAAC;EACD;AACF;AACA;AACA;EACEC,SAASA,CAAA,EAAG;IACV,OAAO,IAAI,CAACwsB,MAAM,CAAC9tB,QAAQ,CAACG,4EAAS,CAACoB,OAAO,CAAC;EAChD,CAAC;EACD;AACF;AACA;AACA;EACE4sB,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACL,MAAM,CAAC9tB,QAAQ,CAACG,4EAAS,CAACiuB,IAAI,CAAC;EAC7C;AACF,CAAC;;;;;;;;;;;;;;;;;;;;;;AC3DyB;AACc;AACwB;AAEhE,MAAME,QAAQ,GAAGD,0EAAW,CAACC,QAAQ;AACrC,MAAMlB,MAAM,GAAImB,CAAC,IAAKA,CAAC,CAACprB,MAAM,KAAK,QAAQ;AACpC,MAAMqrB,IAAI,GAAG,GAAG;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CACjCF,CAAC,EACDvd,MAAM,EAIN;EAAA,IAHA0d,QAAQ,GAAA3vB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGyvB,IAAI;EAAA,IACfrtB,SAAS,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACjB4vB,YAAY,GAAA5vB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGuvB,QAAQ;EAEvB,IAAI,CAACC,CAAC,EAAE,OAAOG,QAAQ;;EAEvB;EACA,MAAME,YAAY,GAAGL,CAAC,CAACM,SAAS,IAAIN,CAAC,CAACO,QAAQ;EAE9C,IAAI,CAACF,YAAY,IAAI,CAACL,CAAC,CAACQ,MAAM,EAAE;IAC9B,OAAOL,QAAQ;EACjB;EACA,MAAMM,kBAAkB,GAAGle,qDAAc,CAAC8d,YAAY,EAAE5d,MAAM,EAAEud,CAAC,CAACtd,QAAQ,CAAC;EAC3E,MAAMge,mBAAmB,GAAGV,CAAC,CAACQ,MAAM,GAChCje,qDAAc,CAACyd,CAAC,CAACQ,MAAM,EAAE/d,MAAM,EAAEud,CAAC,CAACtd,QAAQ,CAAC,GAC5Cyd,QAAQ;EACZ,MAAMvd,IAAI,GAAGyd,YAAY,GAAGI,kBAAkB,GAAGC,mBAAmB;EAEpE,OAAO9tB,SAAS,IAAIisB,MAAM,CAACmB,CAAC,CAAC,GAAGI,YAAY,GAAGxd,IAAI;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS+d,iBAAiBA,CAC/BX,CAAC,EAKD;EAAA,IAJAvd,MAAM,GAAAjS,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,MAAM;EAAA,IACf2vB,QAAQ,GAAA3vB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGyvB,IAAI;EAAA,IACfrtB,SAAS,GAAApC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACjB4vB,YAAY,GAAA5vB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGuvB,QAAQ;EAEvB,IAAI,CAACC,CAAC,EAAE,OAAOG,QAAQ;;EAEvB;EACA,MAAMS,SAAS,GAAGZ,CAAC,CAACa,MAAM,IAAIb,CAAC,CAACc,KAAK;EAErC,IAAI,CAACF,SAAS,IAAI,CAACZ,CAAC,CAACe,MAAM,EAAE;IAC3B,OAAOnuB,SAAS,IAAIisB,MAAM,CAACmB,CAAC,CAAC,GAAGI,YAAY,GAAGD,QAAQ;EACzD;EAEA,IAAI,CAACS,SAAS,IAAIZ,CAAC,CAACe,MAAM,EAAE,OAAOZ,QAAQ;EAE3C,MAAMa,gBAAgB,GAAGze,qDAAc,CAACqe,SAAS,EAAEne,MAAM,EAAEud,CAAC,CAACtd,QAAQ,CAAC;EACtE,MAAMue,mBAAmB,GACvBpC,MAAM,CAACmB,CAAC,CAAC,IAAIptB,SAAS,GAClBwtB,YAAY,GACZ7d,qDAAc,CAACyd,CAAC,CAACe,MAAM,EAAEte,MAAM,EAAEud,CAAC,CAACtd,QAAQ,CAAC;EAClD,MAAME,IAAI,GAAGod,CAAC,CAACe,MAAM,GAAGE,mBAAmB,GAAGd,QAAQ;EACtD,OAAOS,SAAS,GAAGI,gBAAgB,GAAGpe,IAAI;AAC5C;;AAEA;AACA;AACO,SAASse,6BAA6BA,CAACC,iBAAiB,EAAE;EAC/D,MAAMC,SAAS,GAAGD,iBAAiB,IAAIA,iBAAiB,CAACb,SAAS;EAClE,MAAMe,qBAAqB,GACzBD,SAAS,IACTD,iBAAiB,CAACG,KAAK,IACvB/vB,QAAQ,CAAC4vB,iBAAiB,CAACG,KAAK,EAAE,EAAE,CAAC;EACvC,OAAOF,SAAS,GACZ9e,4CAAK,CAAC8e,SAAS,CAAC,CAAClO,GAAG,CAACmO,qBAAqB,EAAE,QAAQ,CAAC,GACrD,IAAI;AACV;AAEO,SAASE,SAASA,CAACC,aAAa,EAAmB;EAAA,IAAjBrB,QAAQ,GAAA3vB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGyvB,IAAI;EACtD,OAAOuB,aAAa,KAAKrB,QAAQ;AACnC;;;;;;;;;;;;;;ACxFA,iEAAe,MAAM;EACnB7tB,MAAM,CAACmB,QAAQ,CAACK,IAAI,GAAG,GAAG2tB,8CAAa,SAASnvB,MAAM,CAACmB,QAAQ,CAACK,IAAI,EAAE;AACxE,CAAC;;;;;;;;;;;;;;;;ACFsB;AAEvB,MAAM4tB,QAAQ,GAAG;EACfjK,KAAK,EAAE,MAAM;EACbtR,IAAI,EAAE;AACR,CAAC;AAED,MAAMuQ,GAAG,GAAG,SAAAA,CAAA,EAAgB;EAAA,SAAAvhB,IAAA,GAAA3E,SAAA,CAAAC,MAAA,EAAZ6D,OAAO,OAAAS,KAAA,CAAAI,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;IAAPf,OAAO,CAAAe,IAAA,IAAA7E,SAAA,CAAA6E,IAAA;EAAA;EACrB,MAAMssB,KAAK,GAAGlL,sDAAU,CAACA,sDAAU,CAAC,CAAC,CAAC,EAAE,GAAGniB,OAAO,CAAC,EAAEotB,QAAQ,CAAC;EAE9D,OAAO,OAAOjL,iDAAK,CAACkL,KAAK,EAAE,CAACnkB,KAAK,EAAEqE,GAAG,KAAK,QAAQA,GAAG,IAAIrE,KAAK,EAAE,CAAC,CAAC0Z,IAAI,CACrE,GACF,CAAC,EAAE;AACL,CAAC;AAED,iEAAeR,GAAG;;;;;;;;;;;;;;;;ACflB;AACO,MAAMkL,QAAQ,GAAGA,CAACC,MAAM,EAAEC,QAAQ,EAAEjxB,MAAM,EAAEkxB,OAAO,KAAK;EAC7D,IAAIjrB,MAAM,GAAG,EAAE;EAEf+qB,MAAM,CAACppB,OAAO,CAAE4F,KAAK,IAAK;IACxB,IAAI2jB,IAAI,GAAG,KAAK;;IAEhB;IACA,IAAIA,IAAI,EAAE;MACR;IACF;IAEA,IAAI3jB,KAAK,CAACkZ,IAAI,EAAE;MACd,IAAIlZ,KAAK,CAACkZ,IAAI,KAAK,GAAG,EAAE;QACtB;MACF;MAEA,IAAIuK,QAAQ,IAAIzjB,KAAK,CAACkZ,IAAI,CAAC9lB,QAAQ,CAACqwB,QAAQ,CAAC,EAAE;QAC7CE,IAAI,GAAG,IAAI;MACb;MAEA,MAAMC,MAAM,GAAG5jB,KAAK,CAACkZ,IAAI,CAAC2K,OAAO,CAAC,GAAG,CAAC;MACtC,IAAID,MAAM,GAAG,CAAC,CAAC,EAAE;QACf,MAAME,UAAU,GAAG9jB,KAAK,CAACkZ,IAAI,CAACrlB,KAAK,CAAC,cAAc,CAAC;QACnD,MAAMkwB,QAAQ,GAAG/jB,KAAK,CAACkZ,IAAI,CAAC7lB,OAAO,CACjC,IAAIywB,UAAU,CAAC,CAAC,CAAC,EAAE,EACnBtxB,MAAM,CAACsxB,UAAU,CAAC,CAAC,CAAC,CACtB,CAAC;QAEDrrB,MAAM,IAAI,IAAIsrB,QAAQ,EAAE;MAC1B,CAAC,MAAM;QACLtrB,MAAM,IAAI,IAAIuH,KAAK,CAACkZ,IAAI,EAAE;MAC5B;IACF;EACF,CAAC,CAAC;EACF,IAAIwK,OAAO,IAAIvY,MAAM,CAACC,IAAI,CAACsY,OAAO,CAAC,CAACtxB,MAAM,GAAG,CAAC,EAAE;IAC9CqG,MAAM,IAAIurB,cAAc,CAACN,OAAO,CAAC;EACnC;EACA,OAAOjrB,MAAM;AACf,CAAC;AAEM,MAAMuP,QAAQ,GAAGA,CAAC5H,KAAK,EAAE+Z,QAAQ,MAAM;EAAE,GAAG/Z,KAAK;EAAE,GAAG+Z;AAAS,CAAC,CAAC;AAEjE,MAAM6J,cAAc,GAAIN,OAAO,IAAK;EACzC,IAAIO,QAAQ,GAAG,GAAG;EAClB9Y,MAAM,CAACC,IAAI,CAACsY,OAAO,CAAC,CAACtpB,OAAO,CAAC,CAACgG,KAAK,EAAEoD,GAAG,KAAK;IAC3C,IAAIA,GAAG,GAAG,CAAC,EAAE;MACXygB,QAAQ,IAAI,GAAG;IACjB;IACAA,QAAQ,IAAI,GAAG7jB,KAAK,IAAIsjB,OAAO,CAACtjB,KAAK,CAAC,EAAE;EAC1C,CAAC,CAAC;EAEF,OAAO6jB,QAAQ;AACjB,CAAC;;;;;;;;;;;;;;;ACrD0E;AAE5D,SAASE,UAAUA,CAChC/Y,IAAI,EACJgZ,GAAG,EAIH;EAAA,IAHAC,UAAU,GAAAlyB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IACfmyB,qBAAqB,GAAAnyB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAC1BoyB,cAAc,GAAApyB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAErB,OAAO,IAAIiG,OAAO,CAAC,CAACC,OAAO,EAAEmsB,MAAM,KAAK;IACtC,MAAMC,WAAW,GAAG,IAAIP,qFAAc,CAAC;MACrC1gB,GAAG,EAAE4gB,GAAG,IAAI,GAAG;MACfM,SAAS,EAAEtZ,IAAI;MACfiZ,UAAU;MACV,GAAGC,qBAAqB;MACxBnrB,QAAQ,EAAGwrB,SAAS,IAAK;QACvB,IAAIA,SAAS,EAAE;UACbtsB,OAAO,CAACssB,SAAS,CAAC;QACpB,CAAC,MAAM;UACLH,MAAM,CAAC,IAAII,KAAK,CAAC,eAAe,CAAC,CAAC;QACpC;MACF,CAAC;MACDL;IACF,CAAC,CAAC;IACFE,WAAW,CAACI,MAAM,CAAC,CAAC;EACtB,CAAC,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BmC;AACE;AACA;AACA;AACJ;AACA;AACwB;AAC/B;AACE;AACoC;;AAEhE;AACA;;AAEA,MAAM;EAAEzZ;AAAK,CAAC,GAAGD,MAAM;AAEhB,MAAMiS,WAAW,GAAG;EACzB,WAAW,EAAE;IACXgC,IAAI,EAAE,cAAc;IACpBviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACD,eAAe,EAAE;IACfkM,IAAI,EAAE,oBAAoB;IAC1BviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACD,aAAa,EAAE;IACbkM,IAAI,EAAE,eAAe;IACrBviB,KAAK,EAAE,WAAW;IAClBqW,SAAS,EAAE;EACb,CAAC;EACD,sBAAsB,EAAE;IACtBkM,IAAI,EAAE,eAAe;IACrBviB,KAAK,EAAE,oBAAoB;IAC3BqW,SAAS,EAAE;EACb,CAAC;EACD,YAAY,EAAE;IACZkM,IAAI,EAAE,qBAAqB;IAC3BviB,KAAK,EAAE,QAAQ;IACfqW,SAAS,EAAE;EACb,CAAC;EACDmS,WAAW,EAAE;IACXjG,IAAI,EAAE,cAAc;IACpBviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACDoS,OAAO,EAAE;IACPlG,IAAI,EAAE,oBAAoB;IAC1BviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACDqS,SAAS,EAAE;IACTnG,IAAI,EAAE,eAAe;IACrBviB,KAAK,EAAE,WAAW;IAClBqW,SAAS,EAAE;EACb,CAAC;EACDsS,WAAW,EAAE;IACXpG,IAAI,EAAE,eAAe;IACrBviB,KAAK,EAAE,WAAW;IAClBqW,SAAS,EAAE;EACb,CAAC;EACDuS,cAAc,EAAE;IACdrG,IAAI,EAAE,eAAe;IACrBviB,KAAK,EAAE,WAAW;IAClBqW,SAAS,EAAE;EACb,CAAC;EACDwS,OAAO,EAAE;IACPtG,IAAI,EAAE,eAAe;IACrBviB,KAAK,EAAE,eAAe;IACtBqW,SAAS,EAAE;EACb,CAAC;EACDyS,cAAc,EAAE;IACdvG,IAAI,EAAE,qBAAqB;IAC3BviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACD0S,0BAA0B,EAAE;IAC1BxG,IAAI,EAAE,qBAAqB;IAC3BviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACD2S,MAAM,EAAE;IACNzG,IAAI,EAAE,qBAAqB;IAC3BviB,KAAK,EAAE,QAAQ;IACfqW,SAAS,EAAE;EACb,CAAC;EACD4S,QAAQ,EAAE;IACR1G,IAAI,EAAE,qBAAqB;IAC3BviB,KAAK,EAAE,QAAQ;IACfqW,SAAS,EAAE;EACb,CAAC;EACD6S,eAAe,EAAE;IACf3G,IAAI,EAAE,iBAAiB;IACvBviB,KAAK,EAAE,iBAAiB;IACxBqW,SAAS,EAAE;EACb,CAAC;EACD8S,sBAAsB,EAAE;IACtB5G,IAAI,EAAE,cAAc;IACpBviB,KAAK,EAAE,wBAAwB;IAC/BqW,SAAS,EAAE;EACb,CAAC;EACD+S,mBAAmB,EAAE;IACnB7G,IAAI,EAAE,oBAAoB;IAC1BviB,KAAK,EAAE,oBAAoB;IAC3BqW,SAAS,EAAE;EACb;AACF,CAAC;AAEM,MAAMgT,eAAe,GAAG;EAC7Bb,WAAW,EAAE;IACXjG,IAAI,EAAE,cAAc;IACpBviB,KAAK,EAAE,aAAa;IACpBqW,SAAS,EAAE;EACb,CAAC;EACDoS,OAAO,EAAE;IACPlG,IAAI,EAAE,oBAAoB;IAC1BviB,KAAK,EAAE,eAAe;IACtBqW,SAAS,EAAE;EACb,CAAC;EACD2S,MAAM,EAAE;IACNzG,IAAI,EAAE,oBAAoB;IAC1BviB,KAAK,EAAE,eAAe;IACtBqW,SAAS,EAAE;EACb,CAAC;EACDqS,SAAS,EAAE;IACTnG,IAAI,EAAE,qBAAqB;IAC3BviB,KAAK,EAAE,WAAW;IAClBqW,SAAS,EAAE;EACb;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiT,oBAAoB,GAAG,SAAAA,CAClChI,MAAM,EACNiI,UAAU,EAGP;EAAA,IAFHC,OAAO,GAAAl0B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IACXm0B,YAAY,GAAAn0B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAEhB,MAAMo0B,oBAAoB,GAAGvB,mDAAK,CAAC7G,MAAM,EAAE,iBAAiB,CAAC;EAE7D,IAAIoI,oBAAoB,EAAE;IACxB,MAAMC,WAAW,GAAGD,oBAAoB,CAAC1b,QAAQ,CAACzY,MAAM;IAExD,OAAO+rB,MAAM,CAACzsB,GAAG,CAAEgtB,KAAK,IAAK;MAC3B,MAAM+H,kBAAkB,GACtBD,WAAW,GAAGH,OAAO,IAAI3H,KAAK,CAAC7T,QAAQ,CAACzY,MAAM,KAAKo0B,WAAW;MAEhE,MAAME,eAAe,GAAGC,OAAO,CAACP,UAAU,IAAIK,kBAAkB,CAAC;MAEjE,MAAMG,OAAO,GACXJ,WAAW,IAAIH,OAAO,GAAG,CAAC,GACtB9J,IAAI,CAACsK,KAAK,CAACL,WAAW,GAAGH,OAAO,CAAC,GACjCA,OAAO;MAEb,OAAO;QACL,GAAG3H,KAAK;QACRoI,aAAa,EAAEJ,eAAe,GAC1BzB,mDAAK,CAACvG,KAAK,CAAC7T,QAAQ,EAAE+b,OAAO,CAAC,GAC9B,CAAClI,KAAK,CAAC7T,QAAQ,CAAC;QACpBkc,IAAI,EAAEL,eAAe,GAAGJ,YAAY,GAAG,CAAC;QACxCI;MACF,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,OAAOvI,MAAM;AACf,CAAC;AAEM,MAAM6I,YAAY,GAAG,SAAAA,CAC1BvO,GAAG,EAGA;EAAA,IAFHwO,kBAAkB,GAAA90B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,6BAA6B;EAAA,IAClD+0B,cAAc,GAAA/0B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,UAAU,EAAE,WAAW,CAAC;EAE1C,MAAMg1B,OAAO,GAAGpC,qDAAO,CAACtM,GAAG,EAAEwO,kBAAkB,CAAC;EAChD,MAAMG,eAAe,GAAGhc,IAAI,CAAC+b,OAAO,CAAC,CAAC9b,IAAI,CACxC,CAACsW,CAAC,EAAE0F,CAAC,KAAKC,UAAU,CAACD,CAAC,CAAC,GAAGC,UAAU,CAAC3F,CAAC,CACxC,CAAC;EAED,MAAM4F,YAAY,GAAIhuB,CAAC,IAAKqf,oDAAM,CAACrf,CAAC,EAAE2tB,cAAc,CAAC;;EAErD;EACA,OAAOnrB,qDAAO,CAACqrB,eAAe,CAAC11B,GAAG,CAAE8R,GAAG,IAAK+jB,YAAY,CAACJ,OAAO,CAAC3jB,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAMgkB,YAAY,GAAIpe,OAAO,IAAK;EAChC,MAAMqe,MAAM,GAAGv0B,QAAQ,CACrBkW,OAAO,EAAEse,OAAO,IAAIte,OAAO,EAAEjM,EAAE,IAAIiM,OAAO,EAAE5I,MAAM,EAClD,EACF,CAAC;EAED,OAAOxN,MAAM,CAACC,KAAK,CAACw0B,MAAM,CAAC,GAAG,IAAI,GAAGA,MAAM;AAC7C,CAAC;AAEM,MAAME,kBAAkB,GAAG,SAAAA,CAAA,EAAmB;EAAA,IAAlB9c,QAAQ,GAAA1Y,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC9C,MAAMy1B,IAAI,GAAG,IAAI7T,GAAG,CAAC,CAAC;EAEtB,OAAOlJ,QAAQ,CAACrM,MAAM,CAAE4K,OAAO,IAAK;IAClC,MAAMmF,SAAS,GAAGiZ,YAAY,CAACpe,OAAO,CAAC;IAEvC,IAAI,CAACmF,SAAS,IAAIqZ,IAAI,CAAC/f,GAAG,CAAC0G,SAAS,CAAC,EAAE;MACrC,OAAO,KAAK;IACd;IAEAqZ,IAAI,CAAC/S,GAAG,CAACtG,SAAS,CAAC;IACnB,OAAO,IAAI;EACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAMsZ,qBAAqB,GAAGA,CAAChd,QAAQ,EAAEid,OAAO,KAC9CH,kBAAkB,CAAC9c,QAAQ,CAAC,CAACrM,MAAM,CAAE4K,OAAO,IAAK;EAC/C,MAAMmF,SAAS,GAAGiZ,YAAY,CAACpe,OAAO,CAAC;EACvC,OAAO,CAAC0e,OAAO,CAAC10B,QAAQ,CAACmb,SAAS,CAAC;AACrC,CAAC,CAAC;AAEG,MAAMwZ,sBAAsB,GAAGpwB,IAAA,IAShC;EAAA,IATiC;IACrCqwB,QAAQ,GAAG,GAAG;IACdC,WAAW,GAAG,CAAC;IACfpd,QAAQ,GAAG,EAAE;IACbqd,aAAa,GAAG,CAAC,CAAC;IAClBxN,MAAM;IACNyN,WAAW;IACXL,OAAO;IACPM,gBAAgB,GAAG;EACrB,CAAC,GAAAzwB,IAAA;EACC,MAAM0wB,cAAc,GAAGV,kBAAkB,CAAC9c,QAAQ,CAAC;;EAEnD;EACA,MAAMyd,kBAAkB,GAAG,CAACR,OAAO,IAAI1c,IAAI,CAAC8c,aAAa,CAAC,EAAEx2B,GAAG,CAAC41B,UAAU,CAAC;EAE3E,MAAMiB,iBAAiB,GAAGD,kBAAkB,CAACvgB,MAAM,CAAC,CAACtP,MAAM,EAAE+H,MAAM,KAAK;IACtE,MAAMgoB,aAAa,GAAGN,aAAa,CAAC1nB,MAAM,CAAC;IAE3C,IAAI,CAACgoB,aAAa,EAAE;MAClB,OAAO/vB,MAAM;IACf;IAEA,IAAIgwB,oBAAoB,GACtB/N,MAAM,IAAI8N,aAAa,CAACE,KAAK,GACzBF,aAAa,CAACE,KAAK,CAAChO,MAAM,CAAC,GAC3B8N,aAAa;IAEnB,IAAI,CAACC,oBAAoB,EAAE;MACzB;MACA;MACA;MACA;MACA;MACA;MACA;MACAA,oBAAoB,GAAG,CAAC,CAAC;IAC3B;IAEA,IAAI;MAAEE,SAAS,EAAEC,QAAQ;MAAEC;IAAM,CAAC,GAAGJ,oBAAoB;;IAEzD;IACA;IACA,MAAMK,WAAW,GACdD,KAAK,KAAK,IAAI,IAAID,QAAQ,KAAK,IAAI,IACnCC,KAAK,KAAK,MAAM,IAAID,QAAQ,KAAK,MAAO;IAC3C,MAAMG,eAAe,GAAGZ,WAAW,IAAIW,WAAW;IAElD,IAAID,KAAK,KAAK,IAAI,IAAI,CAACT,gBAAgB,EAAE;MACvCS,KAAK,GAAG,GAAG,CAAC,CAAC;IACf;;IAEA;IACA,MAAMG,OAAO,GAAI1B,UAAU,CAACuB,KAAK,CAAC,GAAGvB,UAAU,CAACsB,QAAQ,CAAC,GAAI,GAAG;IAChE,MAAMK,uBAAuB,GAC3BhB,WAAW,IAAIe,OAAO,IAAIhB,QAAQ,GAAG,CAAC,GAAGgB,OAAO;IAElD,IAAIC,uBAAuB,IAAIF,eAAe,EAAE;MAC9C,MAAM3f,OAAO,GAAGif,cAAc,CAAC1mB,IAAI,CAChCqS,CAAC,IAAKA,CAAC,IAAIwT,YAAY,CAACxT,CAAC,CAAC,KAAK9gB,QAAQ,CAACsN,MAAM,EAAE,EAAE,CACrD,CAAC;MACD,IAAI0oB,IAAI,GAAG,CAAC,CAAC;MAEb,IAAI,CAACH,eAAe,EAAE;QACpBG,IAAI,GAAG;UACL1oB,MAAM;UACN2oB,gBAAgB,EAAEV,oBAAoB;UACtCW,2BAA2B,EAAE9B,UAAU,CAACuB,KAAK,CAAC;UAC9CQ,wBAAwB,EAAE/B,UAAU,CAACsB,QAAQ,CAAC;UAC9CU,cAAc,EAAEN;QAClB,CAAC;MACH;MAEAvwB,MAAM,CAACyB,IAAI,CAAC;QAAE,GAAGkP,OAAO;QAAE,GAAG8f;MAAK,CAAC,CAAC;IACtC;IAEA,OAAOzwB,MAAM;EACf,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA,MAAM8wB,cAAc,GAAGhB,iBAAiB,CAAC7pB,MAAM,CAC7CypB,WAAW,GACPN,qBAAqB,CAACQ,cAAc,EAAEC,kBAAkB,CAAC,GACzD,EACN,CAAC;EAED,OAAOX,kBAAkB,CAAC4B,cAAc,CAAC;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAIC,OAAO,IAAK;EAClD,IAAI,CAACA,OAAO,IAAI,CAACA,OAAO,CAACr3B,MAAM,EAAE;IAC/B,OAAO,CAAC,CAAC;EACX;EAEA,MAAMs3B,WAAW,GAAGD,OAAO,CAAC,CAAC,CAAC;EAC9B,IAAIC,WAAW,IAAI,WAAW,IAAIA,WAAW,IAAI,CAACA,WAAW,CAAC3zB,IAAI,EAAE;IAClE,OAAOqvB,8EAAiB,CAACqE,OAAO,CAAC;EACnC;EAEA,MAAME,UAAU,GAAGD,WAAW,EAAE3zB,IAAI,IAAIoV,MAAM,CAACC,IAAI,CAACse,WAAW,CAAC3zB,IAAI,CAAC,CAAC,CAAC,CAAC;EACxE,IAAI4zB,UAAU,IAAID,WAAW,CAAC3zB,IAAI,CAAC4zB,UAAU,CAAC,EAAEC,KAAK,EAAE;IACrD,OAAOF,WAAW,CAAC3zB,IAAI,CAAC4zB,UAAU,CAAC,CAACC,KAAK;EAC3C;EAEA,OAAO,CAAC,CAAC;AACX,CAAC;;AAED;AACA;AACA;AACO,MAAMC,KAAK,GAAI/2B,IAAI,IACxBA,IAAI,CAAC8H,IAAI,KACR9H,IAAI,CAAC8H,IAAI,KAAK,wBAAwB,IACrC9H,IAAI,CAAC8H,IAAI,KAAKsqB,iEAAc,CAAC4E,cAAc,CAAC;AACzC,MAAMC,KAAK,GAAIj3B,IAAI,IACxBA,IAAI,CAAC8H,IAAI,KACR9H,IAAI,CAAC8H,IAAI,KAAK,sBAAsB,IACnC9H,IAAI,CAAC8H,IAAI,KAAKsqB,iEAAc,CAAC8E,YAAY,CAAC;AACvC,MAAMC,QAAQ,GAAIn3B,IAAI,IAC3BA,IAAI,IAAIA,IAAI,CAAC8H,IAAI,IAAI9H,IAAI,CAAC8H,IAAI,KAAK,uBAAuB;AAErD,MAAMsvB,QAAQ,GAAIp3B,IAAI,IAAKA,IAAI,IAAIA,IAAI,CAACo3B,QAAQ;AAEvD,MAAMC,SAAS,GAAI1R,GAAG,IAAKA,GAAG,CAACpN,IAAI,CAAC,CAACsW,CAAC,EAAE0F,CAAC,KAAK1F,CAAC,CAACqG,QAAQ,GAAGX,CAAC,CAACW,QAAQ,CAAC;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMoC,qBAAqB,GAAG,SAAAA,CACnCC,aAAa,EACbZ,OAAO,EACPa,gBAAgB,EAMb;EAAA,IALHzf,QAAQ,GAAA1Y,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IACbuoB,MAAM,GAAAvoB,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IACNk4B,SAAS,GAAAp4B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,YAAY;EAAA,IACxBi2B,gBAAgB,GAAAj2B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACxBq4B,kBAAkB,GAAAr4B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,UAAU,EAAE,WAAW,CAAC;EAE9C,MAAM+1B,aAAa,GAAGsB,uBAAuB,CAACC,OAAO,CAAC;EAEtD,IAAIgB,qBAAqB,GAAGH,gBAAgB;EAC5C,IAAI,OAAOA,gBAAgB,KAAK,QAAQ,EAAE;IACxC;IACA;IACAG,qBAAqB,GAAGtf,MAAM,CAACjM,MAAM,CAACorB,gBAAgB,CAAC;EACzD;EAEA,MAAMI,6BAA6B,GAAG,CACpC;IACE9vB,IAAI,EAAE,SAAS;IACfiC,KAAK,EAAE0tB,SAAS;IAChBpC,WAAW,EAAE,IAAI;IACjBH,QAAQ,EAAE2C,GAAG;IACb1C,WAAW,EAAE0C;EACf,CAAC,EACD,GAAGF,qBAAqB,CACzB;EAED,MAAMG,SAAS,GAAGT,SAAS,CAACO,6BAA6B,CAAC;;EAE1D;EACA,MAAMG,gBAAgB,GAAG9C,sBAAsB,CAAC;IAAEG,aAAa;IAAExN;EAAO,CAAC,CAAC;EAC1E,MAAMoQ,qBAAqB,GAAGnE,OAAO,CACnCkE,gBAAgB,CAAC,CAAC,CAAC,IAAIA,gBAAgB,CAAC,CAAC,CAAC,CAACxB,wBAAwB,GAAG,CACxE,CAAC;;EAED;EACA,MAAMlL,MAAM,GAAGyM,SAAS,CAAC7iB,MAAM,CAAC,CAACtP,MAAM,EAAEsyB,IAAI,KAAK;IAChD,MAAM;MAAEnwB,IAAI;MAAEwe,KAAK;MAAE4R;IAAkB,CAAC,GAAGD,IAAI;;IAE/C;IACA,MAAME,gBAAgB,GAAGjE,YAAY,CACnCe,sBAAsB,CAAC;MACrB,GAAGgD,IAAI;MACPlgB,QAAQ;MACRqd,aAAa;MACbxN,MAAM;MACN0N;IACF,CAAC,CAAC,EACF,6BAA6B,EAC7BoC,kBACF,CAAC;IAED,MAAMU,cAAc,GAClB,CAACF,iBAAiB,IAAKA,iBAAiB,IAAIF,qBAAsB;IAEpE,IAAII,cAAc,EAAE;MAClBzyB,MAAM,CAACyB,IAAI,CAAC;QACV,GAAG6wB,IAAI;QACP5rB,KAAK,EAAE8rB,gBAAgB,CAAC74B,MAAM;QAC9ByY,QAAQ,EAAEia,qDAAO,CACfmG,gBAAgB,EAChB,CAAC,6BAA6B,EAAE,GAAGT,kBAAkB,CAAC,EACtD,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CACvB,CAAC;QACDj0B,MAAM,EAAE6iB,KAAK,IAAI,KAAKxe,IAAI;MAC5B,CAAC,CAAC;IACJ;IAEA,OAAOnC,MAAM;EACf,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,MAAM0yB,0BAA0B,GAAGhN,MAAM,CAAC,CAAC,CAAC,CAAChf,KAAK,KAAK,CAAC;EAExD,IAAIgsB,0BAA0B,EAAE;IAC9BhN,MAAM,CAACiN,KAAK,CAAC,CAAC;EAChB;EAEA,OAAOjN,MAAM;AACf,CAAC;AAEM,MAAMkN,gCAAgC,GAAG,SAAAA,CAACvnB,KAAK;EAAA,IAAEqa,MAAM,GAAAhsB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,OACjE,qCAAqCgsB,MAAM,CAACpW,MAAM,CAChD,CAAC4Z,CAAC,EAAE0F,CAAC,KAAK,GAAG1F,CAAC,KAAK0F,CAAC,CAACxqB,KAAK,KAAKwqB,CAAC,CAACloB,KAAK,EAAE,EACxC2E,KAAK,IAAI,EACX,CAAC,EAAE;AAAA;;AAEL;AACO,MAAMwnB,aAAa,GAAG,SAAAA,CAACC,OAAO,EAA6B;EAAA,IAA3BC,cAAc,GAAAr5B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAC3D,IACEa,MAAM,CAACC,KAAK,CAACs4B,OAAO,CAAC,IACrBA,OAAO,KAAK,CAAC,IACbA,OAAO,KAAKl5B,SAAS,IACrBk5B,OAAO,KAAK,IAAI,EAChB;IACA,OAAO,EAAE;EACX;EACA,IAAIA,OAAO,GAAG,IAAI,IAAI,CAACC,cAAc,EAAE;IACrC,OAAOvnB,4CAAK,CAAC,CAAC,CAACwnB,OAAO,CAAC,KAAK,CAAC,CAAC5W,GAAG,CAAC0W,OAAO,EAAE,SAAS,CAAC,CAAC3lB,MAAM,CAAC,OAAO,CAAC;EACvE;EACA,OAAO3B,4CAAK,CAAC,CAAC,CAACwnB,OAAO,CAAC,KAAK,CAAC,CAAC5W,GAAG,CAAC0W,OAAO,EAAE,SAAS,CAAC,CAAC3lB,MAAM,CAAC,UAAU,CAAC;AAC1E,CAAC;AAEM,MAAM8lB,yBAAyB,GAAIC,iBAAiB,IACzDxG,qDAAc,CAACwG,iBAAiB,CAAC,GAC7B,CAAC,GACDA,iBAAiB,CAAC5jB,MAAM,CAAC,CAAC4Z,CAAC,EAAE0F,CAAC,KAAK1F,CAAC,GAAG0F,CAAC,EAAE,CAAC,CAAC,GAAGsE,iBAAiB,CAACv5B,MAAM;AAEtE,MAAMw5B,kBAAkB,GAAIC,2BAA2B,IAAK;EACjE,IAAIF,iBAAiB,GAAG,CAAC,CAAC;EAC1B,IAAIG,cAAc,GAAG,CAAC,CAAC;EACvB,IAAIC,wBAAwB,GAAG,CAAC,CAAC;EACjC,MAAMtC,OAAO,GAAG/yB,KAAK,CAACC,OAAO,CAACk1B,2BAA2B,CAAC,GACtDA,2BAA2B,GAC3B,EAAE;EAEN,KACE,IAAIG,eAAe,GAAG,CAAC,EACvBA,eAAe,GAAGvC,OAAO,CAACr3B,MAAM,EAChC45B,eAAe,EAAE,EACjB;IACA,MAAMtoB,UAAU,GAAG+lB,OAAO,CAACuC,eAAe,CAAC;IAC3C,MAAMC,cAAc,GAAGvoB,UAAU,EAAE3N,IAAI,GAAGoV,MAAM,CAACC,IAAI,CAAC1H,UAAU,CAAC3N,IAAI,CAAC,GAAG,EAAE;IAC3E,KACE,IAAIm2B,eAAe,GAAG,CAAC,EACvBA,eAAe,GAAGD,cAAc,CAAC75B,MAAM,EACvC85B,eAAe,EAAE,EACjB;MACA,MAAMC,UAAU,GAAGzoB,UAAU,CAAC3N,IAAI,CAACk2B,cAAc,CAACC,eAAe,CAAC,CAAC;MACnE,MAAME,QAAQ,GAAGjhB,MAAM,CAACC,IAAI,CAAC+gB,UAAU,CAACvC,KAAK,CAAC;MAC9C,KAAK,IAAIyC,SAAS,GAAG,CAAC,EAAEA,SAAS,GAAGD,QAAQ,CAACh6B,MAAM,EAAEi6B,SAAS,EAAE,EAAE;QAChE,MAAMC,IAAI,GAAGH,UAAU,CAACvC,KAAK,CAACwC,QAAQ,CAACC,SAAS,CAAC,CAAC;QAClD,MAAME,YAAY,GAAGphB,MAAM,CAACC,IAAI,CAACkhB,IAAI,CAAC5D,KAAK,CAAC;QAC5C,KACE,IAAI8D,aAAa,GAAG,CAAC,EACrBA,aAAa,GAAGD,YAAY,CAACn6B,MAAM,EACnCo6B,aAAa,EAAE,EACf;UACA,MAAMC,QAAQ,GAAGH,IAAI,CAAC5D,KAAK,CAAC6D,YAAY,CAACC,aAAa,CAAC,CAAC;UACxD,IAAIC,QAAQ,CAACC,UAAU,EAAE;YACvB,IAAI,CAACf,iBAAiB,CAACY,YAAY,CAACC,aAAa,CAAC,CAAC,EAAE;cACnDb,iBAAiB,CAACY,YAAY,CAACC,aAAa,CAAC,CAAC,GAAG,EAAE;YACrD;YACA,IAAI,CAACV,cAAc,CAACM,QAAQ,CAACC,SAAS,CAAC,CAAC,EAAE;cACxCP,cAAc,CAACM,QAAQ,CAACC,SAAS,CAAC,CAAC,GAAG,CAAC;cACvCN,wBAAwB,CAACK,QAAQ,CAACC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD;YACAV,iBAAiB,CAACY,YAAY,CAACC,aAAa,CAAC,CAAC,CAACtyB,IAAI,CACjDuyB,QAAQ,CAACC,UACX,CAAC;YACDZ,cAAc,CAACM,QAAQ,CAACC,SAAS,CAAC,CAAC,IAAII,QAAQ,CAACC,UAAU;YAC1DX,wBAAwB,CAACK,QAAQ,CAACC,SAAS,CAAC,CAAC,CAC3CE,YAAY,CAACC,aAAa,CAAC,CAC5B,GAAGC,QAAQ,CAACC,UAAU;UACzB;QACF;MACF;IACF;EACF;EACA,OAAO;IAAEf,iBAAiB;IAAEG,cAAc;IAAEC;EAAyB,CAAC;AACxE,CAAC;AAEM,MAAMY,eAAe,GAAGA,CAAC7E,OAAO,EAAEpN,MAAM,EAAEkS,MAAM,KAAK;EAC1D,MAAM1E,aAAa,GAAGsB,uBAAuB,CAACoD,MAAM,CAAC;EAErD,MAAM,CAACn0B,MAAM,GAAG,CAAC,CAAC,CAAC,GAAGsvB,sBAAsB,CAAC;IAC3CD,OAAO;IACPI,aAAa;IACbxN;EACF,CAAC,CAAC;EAEF,OAAOjiB,MAAM;AACf,CAAC;AAEM,MAAMo0B,iCAAiC,GAAGA,CAC/CpD,OAAO,EACPqD,YAAY,EACZzd,SAAS,KACN;EACH,MAAM0d,WAAW,GAAGtD,OAAO,CAAC9nB,IAAI,CAACG,KAAA,IAAsB;IAAA,IAArB;MAAE3E,EAAE,EAAE6vB;IAAS,CAAC,GAAAlrB,KAAA;IAChD;IACA,MAAM,CAACmrB,kBAAkB,EAAEC,eAAe,CAAC,GAAGF,QAAQ,CAACxe,KAAK,CAAC,GAAG,CAAC,CAAC2e,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OACEj6B,QAAQ,CAAC+5B,kBAAkB,EAAE,EAAE,CAAC,KAAK/5B,QAAQ,CAAC45B,YAAY,EAAE,EAAE,CAAC,IAC/D55B,QAAQ,CAACg6B,eAAe,EAAE,EAAE,CAAC,KAAKh6B,QAAQ,CAACmc,SAAS,EAAE,EAAE,CAAC;EAE7D,CAAC,CAAC;EACF,OAAO0d,WAAW,IAAI,CAAC,CAAC;AAC1B,CAAC;AAEM,MAAMK,eAAe,GAAGA,CAACjP,MAAM,EAAEkP,QAAQ,KAC9C,GAAGA,QAAQ,IAAI,QAAQ,KAAKlP,MAAM,CAACpW,MAAM,CACvC,CAAC4Z,CAAC,EAAE0F,CAAC,KAAK,GAAG1F,CAAC,GAAG0F,CAAC,CAACxqB,KAAK,KAAKwqB,CAAC,CAACloB,KAAK,IAAI,EACxC,EACF,CAAC,EAAE;;AAEL;AACA;AACA;AACA;AACA;AACO,MAAMmuB,eAAe,GAAGA,CAC7BnE,gBAAgB,EAChBoE,qBAAqB,EACrBtsB,MAAM,KACH;EACH,IAAIkK,MAAM,CAACC,IAAI,CAAC+d,gBAAgB,CAAC,CAAC/2B,MAAM,EAAE;IACxC,MAAMu3B,UAAU,GAAGxe,MAAM,CAACC,IAAI,CAAC+d,gBAAgB,CAAC;IAEhD,IAAIQ,UAAU,EAAE;MACd,OAAO6D,oBAAoB,CACzBrE,gBAAgB,EAChBoE,qBAAqB,EACrBtsB,MACF,CAAC;IACH;EACF;EAEA,OAAO,IAAI;AACb,CAAC;AAEM,MAAMusB,oBAAoB,GAAGA,CAClCC,UAAU,EACVF,qBAAqB,EACrBtsB,MAAM,KACH;EACH,IAAIssB,qBAAqB,IAAIA,qBAAqB,CAACn7B,MAAM,EAAE;IACzD,IAAIs7B,gBAAgB,GAAG,CAAC,CAAC;IACzB,MAAM/D,UAAU,GAAG8D,UAAU,IAAItiB,MAAM,CAACC,IAAI,CAACqiB,UAAU,CAAC,CAAC,CAAC,CAAC;IAE3D,IAAI9D,UAAU,EAAE;MACd+D,gBAAgB,GAAGD,UAAU,CAAC9D,UAAU,CAAC,CAACC,KAAK;IACjD;IAEA,MAAM,CAACnxB,MAAM,CAAC,GAAGsvB,sBAAsB,CAAC;MACtCD,OAAO,EAAE,CAAC7mB,MAAM,CAAC;MACjBinB,aAAa,EAAEwF;IACjB,CAAC,CAAC;IAEF,OAAOj1B,MAAM;EACf;EACA,OAAOpG,SAAS;AAClB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtnBoC;AACA;AACA;AACA;AACF;AACT;;AAE1B;AACA;AACA;AACO,SAASs7B,qBAAqBA,CAAClwB,GAAG,EAAE;EACzC,IAAIA,GAAG,CAACb,IAAI,IAAIa,GAAG,CAACb,IAAI,CAACxK,MAAM,EAAE;IAC/B,MAAMw7B,OAAO,GAAGnwB,GAAG,CAACb,IAAI,CAAClL,GAAG,CAACi8B,qBAAqB,CAAC;IACnD,IAAIh3B,qDAAO,CAACi3B,OAAO,CAAC,IAAIA,OAAO,CAAC/J,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;MAClD,OAAO,IAAI;IACb;EACF;EACA,IAAIpmB,GAAG,CAACqB,WAAW,IAAIrB,GAAG,CAACqG,KAAK,KAAKrG,GAAG,CAACqB,WAAW,EAAE;IACpD,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd;AAEO,MAAM+uB,mBAAmB,GAAIC,WAAW,IAAK;EAClD,IAAIA,WAAW,CAAClxB,IAAI,KAAKvK,SAAS,IAAIy7B,WAAW,CAAClxB,IAAI,CAACxK,MAAM,KAAK,CAAC,EAAE;IACnE,IAAI07B,WAAW,CAAClxB,IAAI,CAAC,CAAC,CAAC,CAACA,IAAI,IAAIkxB,WAAW,CAAClxB,IAAI,CAAC,CAAC,CAAC,CAACA,IAAI,CAACxK,MAAM,GAAG,CAAC,EAAE;MACnE,OAAO07B,WAAW,CAAClxB,IAAI,CAAC,CAAC,CAAC;IAC5B;IACA,OAAOkxB,WAAW;EACpB,CAAC,MAAM,IAAIA,WAAW,CAAClxB,IAAI,KAAKvK,SAAS,EAAE;IACzC,OAAOy7B,WAAW;EACpB;EACA,OAAO,IAAI;AACb,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAAItwB,GAAG,IAAK,CACxCA,GAAG,CAACN,EAAE,EACN,GAAGpB,qDAAO,CAAC,CAAC0B,GAAG,CAACb,IAAI,IAAI,EAAE,EAAElL,GAAG,CAACq8B,iBAAiB,CAAC,CAAC,CACpD;AAEM,MAAMC,aAAa,GAAG,SAAAA,CAAA,EAIxB;EAAA,IAHHC,aAAa,GAAA97B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAClB+K,YAAY,GAAA/K,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IACZ0L,aAAa,GAAA5L,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAEb47B,aAAa,CAAC7zB,OAAO,CAAE8zB,YAAY,IAAK;IACtC,MAAM;MAAE/wB,EAAE;MAAEC,SAAS,EAAEC,QAAQ;MAAET;IAAK,CAAC,GAAGsxB,YAAY;IACtD,MAAMC,WAAW,GAAGvxB,IAAI,IAAIA,IAAI,CAACxK,MAAM;IACvC,IAAIiL,QAAQ,EAAE;MACZH,YAAY,CAAC2D,aAAa,CAAC1D,EAAE,CAAC,GAAGE,QAAQ;MAEzC,IAAIvB,qDAAO,CAACoB,YAAY,CAACG,QAAQ,CAAC,CAAC,EAAE;QACnCH,YAAY,CAACG,QAAQ,CAAC,GAAG;UACvBF,EAAE,EAAEE,QAAQ;UACZU,aAAa;UACbT,UAAU,EAAE,KAAK;UACjB8wB,WAAW,EAAE,CAAC/wB,QAAQ;QACxB,CAAC;MACH;;MAEA;MACAH,YAAY,CAACG,QAAQ,CAAC,CAAC+wB,WAAW,CAACl0B,IAAI,CACrC,GAAG6zB,iBAAiB,CAACG,YAAY,CACnC,CAAC;MAEDhxB,YAAY,CAACG,QAAQ,CAAC,CAACA,QAAQ,GAAGH,YAAY,CAAC2D,aAAa,CAACxD,QAAQ,CAAC;MACtE,IAAI,CAACH,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,EAAE;QACpCL,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,GAAG,CAAC,CAAC;MACtC;MACAL,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAACJ,EAAE,CAAC,GAAG;QACpCA,EAAE;QACFE,QAAQ;QACRC,UAAU,EAAE;MACd,CAAC;IACH,CAAC,MAAM;MACLJ,YAAY,CAACC,EAAE,CAAC,GAAG;QACjBA,EAAE;QACFE,QAAQ,EAAE,IAAI;QACdC,UAAU,EAAE,KAAK;QACjB8wB,WAAW,EAAEL,iBAAiB,CAACG,YAAY;MAC7C,CAAC;IACH;IAEA,IAAIC,WAAW,EAAE;MACfH,aAAa,CAACpxB,IAAI,EAAEM,YAAY,EAAEa,aAAa,CAAC;IAClD;EACF,CAAC,CAAC;EAEF,OAAOb,YAAY;AACrB,CAAC;AAED,MAAMmxB,qBAAqB,GAAIzxB,IAAI,IAAK;EACtC,IAAIU,UAAU,GAAG,IAAI;EACrB,IAAIxB,qDAAO,CAACc,IAAI,CAAC,EAAE;IACjB,OAAO,KAAK;EACd;EACAxC,qDAAO,CAACwC,IAAI,EAAGY,KAAK,IAAK;IACvB,IAAI,CAACA,KAAK,CAACF,UAAU,EAAE;MACrBA,UAAU,GAAG,KAAK;MAClB,OAAO,KAAK;IACd;EACF,CAAC,CAAC;EAEF,OAAOA,UAAU;AACnB,CAAC;AAED,MAAMgxB,mBAAmB,GAAGA,CAC1Br8B,MAAM,EACN4Q,KAAK,EACLxF,QAAQ,EACRH,YAAY,EACZqxB,QAAQ,KACL;EACH,IAAIrxB,YAAY,CAACG,QAAQ,CAAC,EAAE;IAC1BH,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAACsF,KAAK,CAAC,CAACvF,UAAU,GAC/CrL,MAAM,KAAK,QAAQ,IACnBo8B,qBAAqB,CAACnxB,YAAY,CAAC2F,KAAK,CAAC,CAACtF,QAAQ,CAAC;IAErD,MAAMD,UAAU,GAAG+wB,qBAAqB,CAACnxB,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAAC;IACzEL,YAAY,CAACG,QAAQ,CAAC,CAACC,UAAU,GAC/BA,UAAU,IAAIJ,YAAY,CAACG,QAAQ,CAAC,CAACmxB,SAAS;IAEhD,MAAMC,WAAW,GAAGF,QAAQ,CAAClxB,QAAQ,CAAC;IACtC,IAAIoxB,WAAW,EAAE;MACfH,mBAAmB,CACjBG,WAAW,CAACtxB,EAAE,EACdsxB,WAAW,CAACrxB,SAAS,EACrBF,YAAY,EACZqxB,QACF,CAAC;IACH;EACF;AACF,CAAC;AAEM,MAAMG,SAAS,GAAGA,CAAC7rB,KAAK,EAAExF,QAAQ,EAAEH,YAAY,EAAEqxB,QAAQ,KAAK;EACpE,IAAIrxB,YAAY,CAAC2F,KAAK,CAAC,EAAE;IACvB3F,YAAY,CAAC2F,KAAK,CAAC,CAAC2rB,SAAS,GAAG,IAAI;IACpCtxB,YAAY,CAAC2F,KAAK,CAAC,CAACvF,UAAU,GAAG,IAAI;EACvC;EACA,IAAIJ,YAAY,CAACG,QAAQ,CAAC,EAAE;IAC1BH,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAACsF,KAAK,CAAC,CAACvF,UAAU,GAAG,IAAI;IAExD,MAAMA,UAAU,GAAG+wB,qBAAqB,CAACnxB,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAAC;IACzEL,YAAY,CAACG,QAAQ,CAAC,CAACC,UAAU,GAAGA,UAAU;IAE9C,MAAMmxB,WAAW,GAAGF,QAAQ,CAAClxB,QAAQ,CAAC;IACtC,IAAIoxB,WAAW,EAAE;MACfH,mBAAmB,CACjB,QAAQ,EACRG,WAAW,CAACtxB,EAAE,EACdsxB,WAAW,CAACrxB,SAAS,EACrBF,YAAY,EACZqxB,QACF,CAAC;IACH;EACF;AACF,CAAC;AAEM,MAAMI,WAAW,GAAGA,CAAC9rB,KAAK,EAAExF,QAAQ,EAAEH,YAAY,EAAEqxB,QAAQ,KAAK;EACtE,IAAIrxB,YAAY,CAAC2F,KAAK,CAAC,EAAE;IACvB3F,YAAY,CAAC2F,KAAK,CAAC,CAAC2rB,SAAS,GAAG,KAAK;IACrC,MAAMI,mBAAmB,GAAGP,qBAAqB,CAC/CnxB,YAAY,CAAC2F,KAAK,CAAC,CAACtF,QACtB,CAAC;IACDL,YAAY,CAAC2F,KAAK,CAAC,CAACvF,UAAU,GAAGsxB,mBAAmB;EACtD;EAEA,IAAI1xB,YAAY,CAACG,QAAQ,CAAC,EAAE;IAC1BH,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAACsF,KAAK,CAAC,CAACvF,UAAU,GAAG,KAAK;IACzD,MAAMsxB,mBAAmB,GAAGP,qBAAqB,CAC/CnxB,YAAY,CAACG,QAAQ,CAAC,CAACE,QACzB,CAAC;IACDL,YAAY,CAACG,QAAQ,CAAC,CAACC,UAAU,GAC/BJ,YAAY,CAACG,QAAQ,CAAC,CAACmxB,SAAS,IAAII,mBAAmB;EAC3D;EAEA,MAAMH,WAAW,GAAGF,QAAQ,CAAClxB,QAAQ,CAAC;EACtC,IAAIoxB,WAAW,EAAE;IACfH,mBAAmB,CACjB,UAAU,EACVG,WAAW,CAACtxB,EAAE,EACdsxB,WAAW,CAACrxB,SAAS,EACrBF,YAAY,EACZqxB,QACF,CAAC;EACH;AACF,CAAC;AAEM,MAAMM,gBAAgB,GAAGA,CAACj0B,IAAI,EAAEgC,IAAI,EAAEM,YAAY,EAAEqxB,QAAQ,KAAK;EACtE,MAAMjxB,UAAU,GAAG1C,IAAI,KAAK,QAAQ;EACpCgC,IAAI,CAACxC,OAAO,CAACzC,IAAA,IAA4D;IAAA,IAA3D;MAAEiF,IAAI,EAAEkyB,YAAY;MAAE3xB,EAAE,EAAE0F,KAAK;MAAEzF,SAAS,EAAEC;IAAS,CAAC,GAAA1F,IAAA;IAClE,IAAIuF,YAAY,CAACG,QAAQ,CAAC,EAAE;MAC1BH,YAAY,CAACG,QAAQ,CAAC,CAACC,UAAU,GAAGA,UAAU;MAC9C,IAAIJ,YAAY,CAACG,QAAQ,CAAC,CAACE,QAAQ,CAACsF,KAAK,CAAC,CAACvF,UAAU,EAAE;QACrD,IAAI1C,IAAI,KAAK,QAAQ,EAAE;UACrB8zB,SAAS,CAAC7rB,KAAK,EAAExF,QAAQ,EAAEH,YAAY,EAAEqxB,QAAQ,CAAC;QACpD,CAAC,MAAM;UACLI,WAAW,CAAC9rB,KAAK,EAAExF,QAAQ,EAAEH,YAAY,EAAEqxB,QAAQ,CAAC;QACtD;MACF;IACF,CAAC,MAAM,IAAI,CAAClxB,QAAQ,EAAE;MACpBH,YAAY,CAAC2F,KAAK,CAAC,CAACvF,UAAU,GAAGA,UAAU;IAC7C;IAEA,MAAMyxB,OAAO,GAAGD,YAAY,IAAIA,YAAY,CAAC18B,MAAM,GAAG,CAAC;IACvD,IAAI28B,OAAO,EAAE;MACXF,gBAAgB,CAACj0B,IAAI,EAAEk0B,YAAY,EAAE5xB,YAAY,EAAEqxB,QAAQ,CAAC;IAC9D;EACF,CAAC,CAAC;AACJ,CAAC;AAEM,MAAMS,iBAAiB,GAAIvxB,GAAG,IAAK;EACxC,IAAIA,GAAG,EAAE;IACP,IAAIA,GAAG,CAACb,IAAI,EAAE;MACZ,OAAOoY,oDAAM,CAAC;QAAE,CAACvX,GAAG,CAACN,EAAE,GAAGM;MAAI,CAAC,EAAE,GAAGA,GAAG,CAACb,IAAI,CAAClL,GAAG,CAACs9B,iBAAiB,CAAC,CAAC;IACtE;IACA,OAAO;MAAE,CAACvxB,GAAG,CAACN,EAAE,GAAGM;IAAI,CAAC;EAC1B;AACF,CAAC;AAEM,MAAMwxB,gBAAgB,GAAGA,CAACC,eAAe,EAAEhyB,YAAY,EAAEqxB,QAAQ,KAAK;EAC3EW,eAAe,CAAC90B,OAAO,CAAE+C,EAAE,IAAK;IAC9B,MAAM;MAAEA,EAAE,EAAE0F,KAAK;MAAEzF,SAAS,EAAEC;IAAS,CAAC,GAAGkxB,QAAQ,CAACpxB,EAAE,CAAC,IAAI,CAAC,CAAC;IAE7DuxB,SAAS,CAAC7rB,KAAK,EAAExF,QAAQ,EAAEH,YAAY,EAAEqxB,QAAQ,CAAC;EACpD,CAAC,CAAC;AACJ,CAAC;AAEM,MAAMnyB,0BAA0B,GAAGA,CACxCiC,UAAU,EACVnB,YAAY,EACZkB,OAAO,KACJ;EACHlB,YAAY,CAAC2D,aAAa,GAAG,CAAC,CAAC;EAC/B3D,YAAY,CAACY,IAAI,GAAG,CAAC,CAAC;EAEtB,MAAMqxB,iBAAiB,GAAGnzB,0DAAmB,CAACoC,OAAO,CAAC;EAEtD,MAAM;IAAEE,UAAU,EAAE8wB,SAAS;IAAEzwB,UAAU,EAAE0wB;EAAU,CAAC,GAAGhxB,UAAU;EACnE,IAAIkwB,QAAQ,GAAG,CAAC,CAAC;EACjBa,SAAS,CAAC1wB,MAAM,CAAC2wB,SAAS,CAAC,CAACj1B,OAAO,CAAE0zB,WAAW,IAAK;IACnD,MAAM;MAAE3wB,EAAE,EAAEY;IAAc,CAAC,GAAG+vB,WAAW;IACzC,MAAMwB,UAAU,GAAGzB,mBAAmB,CAACC,WAAW,CAAC;IACnD5wB,YAAY,CAACY,IAAI,CAACC,aAAa,CAAC,GAAGuxB,UAAU;IAC7CtB,aAAa,CAACsB,UAAU,CAAC1yB,IAAI,EAAEM,YAAY,EAAEa,aAAa,CAAC;IAE3DwwB,QAAQ,GAAG;MACT,GAAGA,QAAQ;MACX,GAAGS,iBAAiB,CAAClB,WAAW;IAClC,CAAC;EACH,CAAC,CAAC;;EAEF;AACF;AACA;EACE5wB,YAAY,CAACiyB,iBAAiB,GAAGA,iBAAiB;EAClD/0B,qDAAO,CAAC+0B,iBAAiB,EAAGD,eAAe,IAAK;IAC9CD,gBAAgB,CAACC,eAAe,EAAEhyB,YAAY,EAAEqxB,QAAQ,CAAC;EAC3D,CAAC,CAAC;AACJ,CAAC;AAEM,MAAMlyB,WAAW,GAAIqsB,KAAK,IAAK;EACpC,IAAIA,KAAK,CAAC9rB,IAAI,IAAI8rB,KAAK,CAAC9rB,IAAI,CAACxK,MAAM,KAAK,CAAC,EAAE;IACzC,OAAOiK,WAAW,CAACqsB,KAAK,CAAC9rB,IAAI,CAAC,CAAC,CAAC,CAAC;EACnC;EACA,OAAO8rB,KAAK,CAAC9rB,IAAI;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMN,WAAW,GAAGA,CAAC+B,UAAU,EAAEwE,KAAK,KAAK;EAChD,MAAMpE,aAAa,GAAGJ,UAAU,CAACC,UAAU,CAACI,MAAM,CAACL,UAAU,CAACM,UAAU,CAAC;EAEzE,MAAM4wB,WAAW,GAAI1wB,QAAQ,IAAK;IAChC,IAAI2wB,KAAK,GAAG,IAAI;IAChB,MAAM;MAAE5yB,IAAI;MAAE,GAAG6yB;IAAK,CAAC,GAAG5wB,QAAQ;IAClC,MAAM6f,KAAK,GAAG,CAAC+Q,IAAI,EAAE,GAAG7yB,IAAI,CAAC;IAE7B,OAAO8hB,KAAK,CAACtsB,MAAM,EAAE;MACnB,MAAMs9B,IAAI,GAAGhR,KAAK,CAACiR,GAAG,CAAC,CAAC;MACxB,MAAM;QAAE/yB,IAAI,EAAEgzB,SAAS;QAAE,GAAGC;MAAW,CAAC,GAAGH,IAAI;MAC/C,IAAIh5B,KAAK,CAACC,OAAO,CAACi5B,SAAS,CAAC,IAAIA,SAAS,CAACx9B,MAAM,GAAG,CAAC,EAAE;QACpDssB,KAAK,CAACxkB,IAAI,CAAC,GAAG01B,SAAS,CAAC;QACxB,IAAIC,UAAU,CAAC1yB,EAAE,KAAKnK,MAAM,CAACE,QAAQ,CAAC2P,KAAK,EAAE,EAAE,CAAC,EAAE;UAChD2sB,KAAK,GAAGK,UAAU;UAClB;QACF;MACF,CAAC,MAAM,IAAIH,IAAI,CAACvyB,EAAE,KAAKnK,MAAM,CAACE,QAAQ,CAAC2P,KAAK,EAAE,EAAE,CAAC,EAAE;QACjD2sB,KAAK,GAAGE,IAAI;QACZ;MACF;IACF;IACA,OAAOF,KAAK;EACd,CAAC;EAED,MAAM3wB,QAAQ,GAAGJ,aAAa,CAACkD,IAAI,CAAEmuB,GAAG,IAAK;IAC3C,MAAMryB,GAAG,GAAG8xB,WAAW,CAACO,GAAG,EAAEjtB,KAAK,CAAC;IACnC,OAAOpF,GAAG,KAAK,IAAI;EACrB,CAAC,CAAC;EAEF,IAAIoB,QAAQ,EAAE;IACZ,OAAO,IAAIA,QAAQ,CAAC1B,EAAE,OAAO0F,KAAK,GAAG;EACvC;EACA,OAAO,EAAE;AACX,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3TyB;AACI;AACK;AACgB;AACyB;AAClD;;AAE1B;AACA;AACA;AACA;AACA;AACA,MAAMqtB,UAAU,GAAG;EACjBC,GAAG,EAAE,aAAa;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,WAAW,EAAE,aAAa;EAC1BC,SAAS,EAAE,SAAS;EACpBC,IAAI,EAAE,aAAa;EACnBC,IAAI,EAAE,YAAY;EAClBC,GAAG,EAAE;AACP,CAAC;AAEM,MAAMC,gBAAgB,GAAGA,CAAC56B,IAAI,EAAE66B,kBAAkB,KAAK;EAC5D;AACF;AACA;AACA;EACE,IAAIA,kBAAkB,EAAE;IACtB,OAAOx4B,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAC9B;EACA;EACA,MAAMw4B,SAAS,GAAGd,gDAAK,CAACh6B,IAAI,EAAE;IAC5BvD,MAAM,EAAE;MACNs+B,MAAM,EAAE/6B,IAAI,CAACgJ,IAAI,IAAI9K,MAAM,CAACmB,QAAQ,CAACC;IACvC;EACF,CAAC,CAAC;EACF;AACF;AACA;AACA;EACE,OAAOM,iDAAK,CAAC;IACXG,GAAG,EAAE,GAAGi7B,wCAAyB,EAAE;IACnCl7B,MAAM,EAAE,MAAM;IACdG,OAAO,EAAE;MACP,cAAc,EAAE;IAClB,CAAC;IACDD,IAAI,EAAEmC,IAAI,CAACC,SAAS,CAAC04B,SAAS;EAChC,CAAC,CAAC,CAACj5B,KAAK,CAAE9D,KAAK,IAAK;IAClB0B,4EAAG,CAAC,OAAO,EAAE1B,KAAK,CAAC;IAEnB,OAAOsE,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAC9B,CAAC,CAAC;AACJ,CAAC;AAEM,MAAM24B,mCAAmC,GAAIj7B,IAAI,IAAK;EAC3D46B,gBAAgB,CAAC56B,IAAI,EAAE,KAAK,CAAC;AAC/B,CAAC;AACD;AACA;AACA;AACO,MAAMk7B,eAAe,GAAIl7B,IAAI,IAClC46B,gBAAgB,CAAC56B,IAAI,EAAEk6B,0FAAe,CAAC,CAAC,CAAC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiB,cAAc,GAAG;AAC5B;AACA;EACE1b,GAAG,EAAE0a,UAAU,CAAC3a,SAAe,CAAC,IAAI,aAAa;EACjD4b,CAAC,EAAE;AACL,CAAC;AACD;AACA;EACEpkB,QAAQ,EAAE4jB;AACZ,CAAC,CACF;AAEM,MAAMS,gBAAgB,GAAG;EAC9BC,aAAa,EAAE,sBAAsB;EACrCC,aAAa,EAAE,qBAAqB;EACpCC,mBAAmB,EAAE,2BAA2B;EAChDC,aAAa,EAAE,oBAAoB;EACnCC,iBAAiB,EAAE,gCAAgC;EACnDC,cAAc,EAAE,4BAA4B;EAC5CC,gBAAgB,EAAE,oBAAoB;EACtCC,gBAAgB,EAAE,oBAAoB;EACtCC,oBAAoB,EAAE,yBAAyB;EAC/CC,uBAAuB,EAAE,4BAA4B;EACrDC,iBAAiB,EAAE,sBAAsB;EACzCC,YAAY,EAAE,eAAe;EAC7BC,sBAAsB,EAAE,2BAA2B;EACnDC,eAAe,EAAE,mBAAmB;EACpCC,eAAe,EAAE,kBAAkB;EACnCC,8BAA8B,EAAE,4BAA4B;EAC5DC,gCAAgC,EAAE,8BAA8B;EAChEC,yBAAyB,EAAE,+BAA+B;EAC1DC,+BAA+B,EAAE,sCAAsC;EACvEC,uBAAuB,EAAE,4BAA4B;EACrDC,kBAAkB,EAAE,sBAAsB;EAC1CC,iBAAiB,EAAE,qBAAqB;EACxCC,iBAAiB,EAAE,qBAAqB;EACxCC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,SAASA,CAAA,EAAU;EAAA,SAAA/7B,IAAA,GAAA3E,SAAA,CAAAC,MAAA,EAAN2E,IAAI,OAAAL,KAAA,CAAAI,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;IAAJD,IAAI,CAAAC,IAAA,IAAA7E,SAAA,CAAA6E,IAAA;EAAA;EACvC,MAAM87B,IAAI,GAAG/C,gDAAK,CAACmB,cAAc,CAAC,CAAC,CAAC,EAAEn6B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EACpD,IAAIhB,IAAI,GAAGg6B,gDAAK,CAACmB,cAAc,CAAC,CAAC,CAAC,EAAEn6B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;EAElD,IAAI,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;IACjChB,IAAI,GAAG,SAAAA,CAAA,EAAU;MACf;MACA,IAAIsE,GAAG,GAAGtD,IAAI,CAAC,CAAC,CAAC,CAAC,GAAA5E,SAAI,CAAC,IAAI,CAAC,CAAC;MAE7B,OAAO49B,gDAAK,CAACmB,cAAc,CAAC,CAAC,CAAC,EAAE72B,GAAG,CAAC;IACtC,CAAC;EACH;EAEA,OAAO;IAAA,OAAmB21B,0DAAK,CAACj6B,IAAI,EAAE+8B,IAAI,CAAC,CAAC,GAAA3gC,SAAa,CAAC;EAAA;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM4gC,eAAe,GAAGA,CAACC,GAAG,EAAEC,SAAS,EAAEvb,OAAO,KAAK;EAC1D,MAAM;IAAEwb,QAAQ,EAAEC,QAAQ;IAAElyB,MAAM,EAAEmyB;EAAS,CAAC,GAAGn/B,MAAM,CAACo/B,YAAY,IAAI,CAAC,CAAC;EAC1E,MAAMC,aAAa,GAAG;IACpBN,GAAG,EAAEA,GAAG;IACRO,UAAU,EAAEN,SAAS;IACrBO,YAAY,EAAEvvB,gDAAS,CAAC,CAAC,CAAC2B,MAAM,CAAC,CAAC;IAClC8R,OAAO,EAAE;MACP,GAAGA;IACL,CAAC;IACD4U,IAAI,EAAE;MACJmH,UAAU,EAAEL,QAAQ;MACpBM,UAAU,EAAEP;IACd,CAAC;IACD,GAAGjC,cAAc,CAAC,CAAC;EACrB,CAAC;EACDD,eAAe,CAACqC,aAAa,CAAC;AAChC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3JyB;AACW;AACI;AAC0B;AACiB;AACK;AAEtB;AACD;;AAElE;AACA;AACA;AACA;AACA;AACO,MAAMzM,KAAK,GAAG,SAAAA,CAACmN,GAAG,EAAwB;EAAA,IAAtBC,aAAa,GAAA9hC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAC1C,MAAM6T,CAAC,GAAG,EAAE,IAAIiuB,aAAa;EAC7B,MAAMC,CAAC,GAAGF,GAAG,GAAGhuB,CAAC,IAAI,CAAC,GAAGhT,MAAM,CAACmhC,OAAO,CAAC;EACxC,OAAO5X,IAAI,CAACsK,KAAK,CAACqN,CAAC,CAAC,GAAGluB,CAAC;AAC1B,CAAC;;AAED;AACA;AACA;AACA;AACO,SAASouB,aAAaA,CAACC,OAAO,EAAE;EACrC;EACA,MAAMC,MAAM,GACV,wJAAwJ;EAE1J,IAAI,CAACD,OAAO,EAAE;IACZ,OAAO,KAAK;EACd;EAEA,OAAOC,MAAM,CAAC/7B,IAAI,CAAC87B,OAAO,CAAC;AAC7B;AAEO,SAASE,kBAAkBA,CAACx1B,IAAI,EAAEy1B,UAAU,EAAE;EACnD,IAAI1+B,GAAG,GAAG0+B,UAAU;EACpB,IAAI,CAAC1+B,GAAG,EAAEA,GAAG,GAAG7B,MAAM,CAACmB,QAAQ,CAACK,IAAI;EACpC,MAAMg/B,SAAS,GAAG11B,IAAI,CAAC1L,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;EACjD,MAAMqhC,KAAK,GAAG,IAAIC,MAAM,CAAC,OAAOF,SAAS,mBAAmB,CAAC;EAC7D,MAAMG,OAAO,GAAGF,KAAK,CAACG,IAAI,CAAC/+B,GAAG,CAAC;EAC/B,IAAI,CAAC8+B,OAAO,EAAE,OAAO,IAAI;EACzB,IAAI,CAACA,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE;EAC1B,OAAOE,kBAAkB,CAACF,OAAO,CAAC,CAAC,CAAC,CAACvhC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3D;;AAEA;AACA;AACA;AACA;AACO,SAAS0hC,qBAAqBA,CAACC,WAAW,EAAE;EACjD,MAAMC,WAAW,GAAIn/B,GAAG,IAAK;IAC3B,IAAIo/B,CAAC,GAAGvhC,QAAQ,CAAC2P,aAAa,CAAC,GAAG,CAAC;IAEnC4xB,CAAC,CAACz/B,IAAI,GAAGK,GAAG;IAEZ,OAAOo/B,CAAC;EACV,CAAC;EAED,OAAOjhC,MAAM,CAACmB,QAAQ,CAAC+/B,QAAQ,KAAKF,WAAW,CAACD,WAAW,CAAC,CAACG,QAAQ;AACvE;;AAEA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAG;EACjCC,YAAY,EAAE,KAAK;EACnBC,WAAW,EAAE,KAAK;EAClBC,UAAU,EAAE;AACd,CAAC;AAEM,MAAMC,QAAQ,GAAG,4BAA4B;AAE7C,MAAMC,qBAAqB,GAAIv2B,MAAM,IAAK;EAC/C,MAAMw2B,YAAY,GAAG,CAAC,CAAC;EACvBx2B,MAAM,CAAC9E,OAAO,CACZ,CAAC+E,KAAK,EAAE0d,KAAK,KAAM6Y,YAAY,CAACv2B,KAAK,CAAC,GAAGq2B,QAAQ,CAACG,MAAM,CAAC9Y,KAAK,CAChE,CAAC;EACD,OAAO6Y,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAME,aAAa,GAAI7hC,EAAE,IAAK;EACnC,IAAI8hC,QAAQ;EACZ;AACF;AACA;EACE,IAAI9hC,EAAE,CAACstB,OAAO,CAAC,CAAC,EAAE;IAChBwU,QAAQ,GAAGtiC,4EAAS,CAAC+tB,KAAK;EAC5B,CAAC,MAAM,IAAIvtB,EAAE,CAACnB,aAAa,CAAC,CAAC,EAAE;IAC7BijC,QAAQ,GAAGtiC,4EAAS,CAACwB,WAAW;EAClC,CAAC,MAAM,IAAIhB,EAAE,CAACpB,OAAO,CAAC,CAAC,EAAE;IACvBkjC,QAAQ,GAAGtiC,4EAAS,CAACuB,KAAK;EAC5B,CAAC,MAAM,IAAIf,EAAE,CAACQ,SAAS,CAAC,CAAC,EAAE;IACzBshC,QAAQ,GAAGtiC,4EAAS,CAACkB,OAAO;EAC9B,CAAC,MAAM,IAAIV,EAAE,CAACW,SAAS,CAAC,CAAC,EAAE;IACzBmhC,QAAQ,GAAGtiC,4EAAS,CAACoB,OAAO;EAC9B;EAEA,IAAI,CAACkhC,QAAQ,EAAE;IACb9B,iFAAe,CAAC,CAAC;EACnB;EAEA9/B,MAAM,CAACsT,YAAY,CAAC0H,OAAO,CAAC,UAAU,EAAE4mB,QAAQ,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,IAAI,GAAIC,GAAG,IAAK;EAC3B;AACF;AACA;EACE,IAAIA,GAAG,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAClC,OAAOA,GAAG,CAACD,IAAI,CAAC,CAAC;EACnB;EAEA,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACO,MAAME,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,cAAc,GAAGhiC,MAAM,CAACsT,YAAY,CAACC,OAAO,CAAC,mBAAmB,CAAC;EAEvE,IAAIyuB,cAAc,KAAK,IAAI,EAAE;IAC3B,OAAO/9B,IAAI,CAACoP,KAAK,CAAC2uB,cAAc,CAAC;EACnC;EAEA,OAAO;IAAE/sB,MAAM,EAAE,EAAE;IAAEgtB,KAAK,EAAE;EAAG,CAAC;AAClC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,mBAAmB,GAAGA,CAAChjC,OAAO,EAAEZ,MAAM,KAAK;EACtD,IAAI6jC,IAAkC,EAAE;IACtCniC,MAAM,CAACmB,QAAQ,CAACK,IAAI,GAAG,GAAGC,8CAAgB,mBAAmBvC,OAAO,EAAE;EACxE,CAAC,MAAM,EAEN;AACH,CAAC;AAEM,SAASojC,4BAA4BA,CAACC,OAAO,EAAE;EACpD,MAAMC,QAAQ,GAAGC,kBAAkB,CAACF,OAAO,CAAC;EAC5C,MAAMG,kBAAkB,GAAG1iC,MAAM,CAACsT,YAAY,CAACC,OAAO,CACpD,sBACF,CAAC;EACD,MAAMovB,mBAAmB,GAAG3iC,MAAM,CAACsT,YAAY,CAACC,OAAO,CACrD,uBACF,CAAC;EACD,MAAMqvB,OAAO,GAAG5iC,MAAM,CAACsT,YAAY,CAACC,OAAO,CAAC,SAAS,CAAC;EACtD,MAAMsvB,QAAQ,GAAG,GAAGC,sCAAa,0BAA0BN,QAAQ,QAAQE,kBAAkB,YAAYC,mBAAmB,YAAYC,OAAO,EAAE;EACjJ5iC,MAAM,CAACmB,QAAQ,CAACK,IAAI,GAAGqhC,QAAQ;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAeE,iBAAiBA,CAAClhC,GAAG,EAAEmhC,MAAM,EAAEl/B,kBAAkB,EAAE;EAChE,MAAMm/B,KAAK,GAAG,GAAGD,MAAM,mBAAmB;EAC1C,MAAMzzB,GAAG,GAAG1N,GAAG,CAAC1C,QAAQ,CAAC8jC,KAAK,CAAC,GAAGphC,GAAG,CAAC0Y,KAAK,CAAC0oB,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGphC,GAAG,CAAC0Y,KAAK,CAACyoB,MAAM,CAAC,CAAC,CAAC,CAAC;EAC5E,IAAIv+B,SAAS,GAAG,MAAMZ,iFAAY,CAAC;IAAE0L,GAAG;IAAEyzB;EAAO,CAAC,EAAEl/B,kBAAkB,CAAC;EACvE,MAAMo/B,SAAS,GAAGz+B,SAAS,CAAC8V,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;EAC5C,OAAO2oB,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAAIthC,GAAG,IAAK;EACxC,MAAMuhC,SAAS,GAAGvhC,GAAG,CAAC0Y,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;EACrC,IAAI6oB,SAAS,EAAE;IACb;IACA,OAAOA,SAAS,CAAC7oB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;EAClC;AACF,CAAC;AAEM,eAAe8oB,qBAAqBA,CAACxhC,GAAG,EAAEiC,kBAAkB,EAAE;EACnE,IAAIw/B,WAAW,GAAGzC,kBAAkB,CAACh/B,GAAG,CAACzC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;EAC7D,MAAMmkC,SAAS,GAAGJ,iBAAiB,CAACG,WAAW,CAAC;EAChD,IAAIC,SAAS,EAAE;IACb,MAAML,SAAS,GAAG,MAAMH,iBAAiB,CACvCO,WAAW,EACXC,SAAS,EACTz/B,kBACF,CAAC;IACD,MAAM0/B,OAAO,GAAG,WAAWD,SAAS,mBAAmB;IACvD,OAAO,GAAGC,OAAO,GAAGN,SAAS,EAAE;EACjC;EACA,MAAM,IAAIvS,KAAK,CAAC,qBAAqB,CAAC;AACxC;AAEO,MAAM8S,8BAA8B,GAAI5hC,GAAG,IAAK;EACrD,IAAI6hC,MAAM,GAAG7hC,GAAG;EAChB,IAAI6hC,MAAM,CAACC,UAAU,CAACC,qDAAmB,CAAC,EAAE;IAC1C,MAAMC,QAAQ,GAAGH,MAAM,CAACnpB,KAAK,CAAC,GAAGqpB,qDAAmB,GAAG,CAAC;IACxD,GAAGF,MAAM,CAAC,GAAGG,QAAQ;EACvB;EACA,OAAOH,MAAM;AACf,CAAC;AAEM,MAAMI,YAAY,GAAIjiC,GAAG,IAC7BA,GAAG,CAAC8hC,UAAU,CAACC,qDAAmB,CAAC,IAClCA,qDAAmB,CAACzkC,QAAQ,CAAC,kBAAkB,CAAC,IACjD,CAAC0C,GAAG,CAAC1C,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC0C,GAAG,CAAC1C,QAAQ,CAAC,UAAU,CAAE;AAElD,MAAM4kC,kBAAkB,GAAGA,CAACliC,GAAG,EAAE3C,OAAO,KAC7C,GAAGkhB,8CAAgB,IAAIlhB,OAAO,cAAcukC,8BAA8B,CACxE5hC,GACF,CAAC,EAAE;AAEE,MAAMmiC,kBAAkB,GAAGA,CAACC,IAAI,EAAEC,KAAK,KAAK;EACjD,IAAIC,IAAI,GAAGzkC,QAAQ,CAAC2P,aAAa,CAAC,MAAM,CAAC;EACzC80B,IAAI,CAACC,SAAS,GAAGH,IAAI;EACrB,IAAIC,KAAK,EAAE;IACT,IAAI56B,QAAQ,GAAG66B,IAAI,CAACE,gBAAgB,CAAC,GAAG,CAAC;IACzC,KAAK,IAAIz+B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0D,QAAQ,CAACnL,MAAM,EAAEyH,CAAC,EAAE,EAAE;MACxC,IAAI0D,QAAQ,CAAC1D,CAAC,CAAC,CAAC0+B,WAAW,EAAE;QAC3Bh7B,QAAQ,CAAC1D,CAAC,CAAC,CAAC0+B,WAAW,IAAI,GAAG;MAChC,CAAC,MAAM;QACLh7B,QAAQ,CAAC1D,CAAC,CAAC,CAAC2+B,SAAS,IAAI,GAAG;MAC9B;IACF;EACF;EACA,OAAO,CAACJ,IAAI,CAACG,WAAW,IAAIH,IAAI,CAACI,SAAS,CAAC,CAACzlC,QAAQ,CAAC,CAAC,CAACM,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AAC5E,CAAC;AAEM,MAAMolC,YAAY,GAAIC,YAAY,IACvCA,YAAY,CAAClqB,KAAK,CAAC,MAAM,CAAC,CAACzG,MAAM,CAAC,CAAC4wB,UAAU,EAAEC,MAAM,KAAK;EACxD,MAAM5iC,OAAO,GAAG;IAAE,GAAG2iC;EAAW,CAAC;EACjC,IAAIC,MAAM,EAAE;IACV,MAAMpqB,KAAK,GAAGoqB,MAAM,CAACpqB,KAAK,CAAC,GAAG,CAAC;IAC/B;IACAxY,OAAO,CAACwY,KAAK,CAAC,CAAC,CAAC,CAACsnB,IAAI,CAAC,CAAC,CAAC+C,WAAW,CAAC,CAAC,CAAC,GAAGrqB,KAAK,CAAC,CAAC,CAAC,CAACsnB,IAAI,CAAC,CAAC,CAACgD,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACvE;EACA,OAAO9iC,OAAO;AAChB,CAAC,EAAE,CAAC,CAAC,CAAC;AAER,MAAM+iC,gBAAgB,GAAG,GAAG7iC,8CAAe,uBAAuB;AAElE,MAAM8iC,IAAI,GAAG,SAAAA,CAAA;EAAA,IAACC,MAAM,GAAA9mC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,OACzB,IAAIiG,OAAO,CAAEC,OAAO,IAAK6gC,UAAU,CAAC7gC,OAAO,EAAE4gC,MAAM,CAAC,CAAC;AAAA;AAEvD,MAAME,OAAO,GAAIpjC,IAAI,IACnBJ,iDAAK,CAAC;EACJG,GAAG,EAAEijC,gBAAgB;EACrBljC,MAAM,EAAE,MAAM;EACdE,IAAI,EAAEmC,IAAI,CAACC,SAAS,CAAC,OAAOpC,IAAI,KAAK,QAAQ,GAAG;IAAED,GAAG,EAAEC;EAAK,CAAC,GAAGA,IAAI,CAAC;EACrEC,OAAO,EAAE;IACP,cAAc,EAAE;EAClB;AACF,CAAC,CAAC,CAACG,IAAI,CAACijC,UAAU,CAAC;AAErB,MAAMA,UAAU,GAAIhjC,QAAQ,IAAK;EAC/B,IAAIA,QAAQ,CAACG,MAAM,KAAK,GAAG,IAAIH,QAAQ,CAACG,MAAM,KAAK,GAAG,EAAE;IACtD,MAAMquB,KAAK,CAAC,wBAAwB,CAAC;EACvC;EACA,OAAOxuB,QAAQ,CAACL,IAAI;AACtB,CAAC;;AAED;AACO,MAAMsjC,YAAY,GAAG,SAAAA,CAC1BC,IAAI,EAED;EAAA,IADH;IAAEC,OAAO,GAAG,EAAE,GAAG,IAAI;IAAEC,QAAQ,GAAG;EAAK,CAAC,GAAArnC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE7C,IAAIsnC,cAAc,GAAGF,OAAO;EAC5B,SAASG,WAAWA,CAAA,EAAG;IACrB,OAAOJ,IAAI,CAAC,CAAC,CAAC1hC,KAAK,CAAC,MAAM;MACxB,IAAI6hC,cAAc,IAAI,CAAC,EAAE;QACvB,MAAM7U,KAAK,CAAC,kBAAkB,CAAC;MACjC;MACA,OAAOoU,IAAI,CAACQ,QAAQ,CAAC,CAACrjC,IAAI,CAAC,MAAM;QAC/BsjC,cAAc,IAAID,QAAQ;QAC1B,OAAOE,WAAW,CAAC,CAAC;MACtB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EACA,OAAOA,WAAW,CAAC,CAAC;AACtB,CAAC;AAEM,MAAMC,UAAU,GAAGA,CAAC7jC,GAAG,EAAEG,OAAO,KACrCojC,YAAY,CACV,MACEF,OAAO,CAACrjC,GAAG,CAAC,CACTK,IAAI,CAACwB,IAAA;EAAA,IAAC;IAAEgB;EAAU,CAAC,GAAAhB,IAAA;EAAA,OAAKmf,KAAK,CAACne,SAAS,EAAE;IAAE9C,MAAM,EAAE;EAAO,CAAC,CAAC;AAAA,EAAC,CAC7DM,IAAI,CAACijC,UAAU,CAAC,EACrBnjC,OACF,CAAC;AAEI,MAAM2jC,qBAAqB,GAAGA,CAACpW,MAAM,EAAEhxB,MAAM,KAAK;EACvD;EACA;EACA,IAAI0mB,IAAI,GAAG,EAAE;EACb,IAAIlZ,KAAK;EACT,KAAKA,KAAK,IAAIwjB,MAAM,EAAE;IACpB,IAAI,OAAOxjB,KAAK,CAACkZ,IAAI,KAAK,QAAQ,EAAE;MAClCA,IAAI,IAAI,IAAIlZ,KAAK,CAACkZ,IAAI,EAAE;IAC1B;EACF;;EAEA;EACA;EACAA,IAAI,GAAGA,IAAI,CAAC7lB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;;EAEnC;EACA,IAAImQ,GAAG;EACP,KAAKA,GAAG,IAAIhR,MAAM,EAAE;IAClB,IAAI2Y,MAAM,CAACxQ,cAAc,CAAC/B,IAAI,CAACpG,MAAM,EAAEgR,GAAG,CAAC,EAAE;MAC3C0V,IAAI,GAAGA,IAAI,CAAC7lB,OAAO,CAAC,IAAIshC,MAAM,CAAC,IAAInxB,GAAG,EAAE,EAAE,GAAG,CAAC,EAAEhR,MAAM,CAACgR,GAAG,CAAC,CAAC;IAC9D;EACF;EACA,OAAO0V,IAAI;EACX;AACF,CAAC;AAEM,MAAM2gB,eAAe,GAAI18B,EAAE,IAAK,kBAAkBA,EAAE,IAAI;AAExD,MAAM28B,kBAAkB,GAAIC,MAAM,IACvC,CAACA,MAAM,GAAG,EAAE,GAAGA,MAAM,CAAC1mC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;AAE/C,MAAM2mC,iBAAiB,GAAID,MAAM,IAAK;EAC3C,IAAI;IACF,OAAO,CAAC,CAACA,MAAM,IAAI7hC,IAAI,CAACoP,KAAK,CAACyyB,MAAM,CAAC;EACvC,CAAC,CAAC,OAAOE,CAAC,EAAE;IACV,OAAO,KAAK;EACd;AACF,CAAC;AAEM,MAAMC,uBAAuB,GAAIH,MAAM,IAAK;EACjD,IAAIA,MAAM,KAAK,IAAI,IAAIC,iBAAiB,CAACD,MAAM,CAAC,EAAE;IAChD,OAAO7hC,IAAI,CAACoP,KAAK,CAACyyB,MAAM,CAAC;EAC3B;AACF,CAAC;AAEM,MAAMI,wBAAwB,GAAIC,gBAAgB,IAAK;EAC5D,MAAM;IAAEhoC,MAAM,EAAEioC;EAAuB,CAAC,GAAGD,gBAAgB,IAAI,EAAE;EAEjE,IAAIC,sBAAsB,KAAK,CAAC,EAAE;IAChC,OAAO,EAAE;EACX;EAEA,IAAIA,sBAAsB,KAAK,CAAC,EAAE;IAChC,MAAM;MAAEvuB,SAAS;MAAEC;IAAS,CAAC,GAAG4nB,qDAAO,CAACyG,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAChiB,CAAC,EAAE5U,GAAG,KAClEowB,uDAAS,CAACpwB,GAAG,CACf,CAAC;IACD,OAAOsI,SAAS,IAAIC,QAAQ,GACxB,KAAKD,SAAS,IAAIC,QAAQ,GAAG,GAC7B,KAAKquB,gBAAgB,CAAC,CAAC,CAAC,GAAG;EACjC;EAEA,OAAO,KAAKA,gBAAgB,CAAChoC,MAAM,YAAY;AACjD,CAAC;AAEM,MAAMkoC,cAAc,CAAC;EAC1BC,WAAWA,CAAA,EAAwC;IAAA,IAAvCC,WAAW,GAAAroC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAAA,IAAEsoC,YAAY,GAAAtoC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAAotB,eAAA,yBAchC,MAAM,IAAI,CAACmb,WAAW;IAAAnb,eAAA,yBAEtB,MAAM,IAAI,CAAC7b,UAAU,IAAI,IAAI,CAACA,UAAU,CAACi3B,aAAa;IAAApb,eAAA,6BAElD,MACnB,IAAI,CAACmb,WAAW,CAACl8B,MAAM,CAAEo8B,QAAQ,IAAK;MACpC,IAAIC,oBAAoB,GAAG,KAAK;MAChC,MAAM;QAAEC;MAAS,CAAC,GAAGF,QAAQ;MAC7B,IAAIE,QAAQ,EAAE;QACZ,MAAMC,kBAAkB,GAAGlH,kGAAkB,CAACiH,QAAQ,CAAC;QACvDD,oBAAoB,GAAGE,kBAAkB,KAAK,GAAG;MACnD;MACA,OAAOH,QAAQ,CAACrkC,MAAM,KAAK,QAAQ,IAAI,CAACskC,oBAAoB;IAC9D,CAAC,CAAC;IAAAtb,eAAA,oCAEwB,MAC1B,IAAI,CAACmb,WAAW,CAACl8B,MAAM,CAAEo8B,QAAQ,IAAK;MACpC,MAAM;QAAEE;MAAS,CAAC,GAAGF,QAAQ;MAC7B,IAAIE,QAAQ,EAAE;QACZ,OAAOhH,uGAAoB,CAACgH,QAAQ,CAAC;MACvC;MACA,OAAO,KAAK;IACd,CAAC,CAAC;IAnCF,MAAME,kBAAkB,GAAGR,WAAW,CAAC74B,IAAI,CACxC+B,UAAU,IAAK,CAACA,UAAU,CAACvG,EAAE,KAAK,CAACs9B,YACtC,CAAC;IAED,IAAIO,kBAAkB,EAAE;MACtB,MAAM;QAAEN;MAAY,CAAC,GAAGM,kBAAkB;MAC1C,IAAI,CAACN,WAAW,GAAGA,WAAW;MAC9B,IAAI,CAACh3B,UAAU,GAAGs3B,kBAAkB;IACtC,CAAC,MAAM;MACL,IAAI,CAACN,WAAW,GAAG,EAAE;IACvB;EACF;AAyBF;AAEO,MAAMO,SAAS,GAAG;EACvBC,SAAS,EAAE,CAAC;EACZC,GAAG,EAAE,CAAC;EACNC,MAAM,EAAE,EAAE;EACVC,GAAG,EAAE,EAAE;EACPC,GAAG,EAAE,EAAE;EACPnD,KAAK,EAAE,EAAE;EACToD,SAAS,EAAE,EAAE;EACbC,OAAO,EAAE,EAAE;EACXC,UAAU,EAAE,EAAE;EACdC,SAAS,EAAE;AACb,CAAC;AAEM,MAAMC,iBAAiB,GAAI57B,KAAK,IAAK;EAC1C,MAAM;IAAE67B,aAAa;IAAEC,cAAc;IAAEC;EAAgB,CAAC,GAAG/7B,KAAK;EAEhE,IAAI67B,aAAa,IAAI,CAACC,cAAc,EAAE;IACpC,OAAO,iCAAiC;EAC1C,CAAC,MAAM,IAAID,aAAa,IAAIC,cAAc,IAAI,CAACC,eAAe,EAAE;IAC9D,OAAO,4BAA4B;EACrC,CAAC,MAAM,IAAIA,eAAe,IAAID,cAAc,EAAE;IAC5C,OAAO,kCAAkC;EAC3C,CAAC,MAAM,IAAIA,cAAc,EAAE;IACzB,OAAO,8BAA8B;EACvC,CAAC,MAAM;IACL,OAAO,mCAAmC;EAC5C;AACF,CAAC;;;;;;;;;;;;;;;ACpbmD;AAE7C,MAAME,mBAAmB,GAAG90B,kEAAa,CAC9C,kCACF,CAAC;;;;;;;;;;;;;;;;ACJgE;AACjB;AAEhD,MAAMzM,YAAY,GAAG;EACnBzE,IAAI,EAAE,EAAE;EACRukB,OAAO,EAAE;AACX,CAAC;AAED,MAAM3S,OAAO,GAAGR,gFAAa,CAAC3M,YAAY,EAAE;EAC1C,CAACuhC,yDAAmB,CAACriC,OAAO,GAAIgB,KAAK,KAAM;IACzC,GAAGA,KAAK;IACR4f,OAAO,EAAE;EACX,CAAC,CAAC;EACF,CAACyhB,yDAAmB,CAACzhC,OAAO,GAAG,CAACI,KAAK,EAAA/C,IAAA;IAAA,IAAE;MAAEiQ;IAAQ,CAAC,GAAAjQ,IAAA;IAAA,OAAM;MACtD,GAAG+C,KAAK;MACR4f,OAAO,EAAE,KAAK;MACdvkB,IAAI,EAAE6R,OAAO,CAACo0B;IAChB,CAAC;EAAA,CAAC;EACF,CAACD,yDAAmB,CAACxhC,OAAO,GAAIG,KAAK,KAAM;IACzC,GAAGA,KAAK;IACR4f,OAAO,EAAE;EACX,CAAC;AACH,CAAC,CAAC;AAEF,iEAAe3S,OAAO;;;;;;;;;;;;;;;;;;ACxB+B;AACS;AAEd;AAEzC,SAAUs0B,uBAAuBA,CAAAtkC,IAAA;EAAA,IAAC;IAAEiQ,OAAO,EAAEklB;EAAa,CAAC,GAAAn1B,IAAA;EAAA,oBAAE;IAClE,MAAMoB,mFAAO,CAACgjC,yDAAmB,EAAE;MACjCjmC,GAAG,EAAE,+BAA+Bg3B,YAAY;IAClD,CAAC,CAAC;EACJ,CAAC;AAAA;AAEc,UAAUoP,kBAAkBA,CAAA,EAAG;EAC5C,MAAMvqC,uDAAG,CAAC,CAAC4oB,8DAAU,CAACwhB,yDAAmB,CAAClhB,OAAO,EAAEohB,uBAAuB,CAAC,CAAC,CAAC;AAC/E;;;;;;;;;;;;;;;;;;ACbA;AACsH;AACjB;AACrG,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA,iDAAiD,kEAAkE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;ACdvC;AACsH;AACjB;AACrG,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA,iDAAiD,kEAAkE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe,uBAAuB,EAAC;;;;;;;;;;;;;;;;;;;ACjCvC;AACmH;AACjB;AAClG,8BAA8B,mFAA2B,CAAC,4FAAqC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,OAAO,s6EAAs6E,MAAM,UAAU,WAAW,UAAU,KAAK,KAAK,UAAU,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,UAAU,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,KAAK,WAAW,KAAK,KAAK,KAAK,WAAW,KAAK,KAAK,MAAM,UAAU,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,UAAU,WAAW,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,KAAK,KAAK,KAAK,UAAU,WAAW,WAAW,UAAU,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,UAAU,MAAM,OAAO,UAAU,WAAW,MAAM,SAAS,WAAW,MAAM,OAAO,UAAU,MAAM,OAAO,UAAU,MAAM,OAAO,UAAU,MAAM,MAAM,UAAU,UAAU,MAAM,iBAAiB,UAAU,UAAU,MAAM,aAAa,WAAW,WAAW,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,WAAW,WAAW,MAAM,MAAM,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM,MAAM,WAAW,UAAU,WAAW,MAAM,MAAM,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,WAAW,MAAM,MAAM,WAAW,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,WAAW,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,UAAU,WAAW,MAAM,MAAM,UAAU,WAAW,MAAM,MAAM,WAAW,WAAW,UAAU,WAAW,MAAM,MAAM,WAAW,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM,MAAM,WAAW,KAAK,KAAK,KAAK,UAAU,UAAU,MAAM,MAAM,UAAU,WAAW,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,WAAW,UAAU,MAAM,MAAM,WAAW,KAAK,KAAK,KAAK,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,UAAU,WAAW,WAAW,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM,MAAM,WAAW,UAAU,MAAM,OAAO,UAAU,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,MAAM,OAAO,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,OAAO,UAAU,UAAU,WAAW,WAAW,MAAM,OAAO,WAAW,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,WAAW,UAAU,UAAU,WAAW,MAAM,MAAM,WAAW,UAAU,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,UAAU,MAAM,MAAM,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,MAAM,MAAM,WAAW,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,MAAM,MAAM,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,WAAW,UAAU,UAAU,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,UAAU,MAAM,MAAM,UAAU,UAAU,WAAW,MAAM,MAAM,UAAU,MAAM,MAAM,UAAU,WAAW,UAAU,UAAU,MAAM,OAAO,WAAW,UAAU,UAAU,UAAU,MAAM,OAAO,UAAU,WAAW,UAAU,MAAM,OAAO,WAAW,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,MAAM,OAAO,WAAW,WAAW,MAAM,OAAO,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,UAAU,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,MAAM,MAAM,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,MAAM,MAAM,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,KAAK,KAAK,OAAO,UAAU,OAAO,OAAO,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,WAAW,WAAW,UAAU,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,UAAU,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,OAAO,OAAO,WAAW,KAAK,KAAK,KAAK,UAAU,OAAO,OAAO,UAAU,UAAU,OAAO,OAAO,WAAW,WAAW,OAAO,OAAO,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,OAAO,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,OAAO,OAAO,WAAW,OAAO,OAAO,UAAU,WAAW,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,UAAU,OAAO,OAAO,UAAU,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,UAAU,UAAU,WAAW,UAAU,WAAW,OAAO,OAAO,WAAW,UAAU,UAAU,UAAU,OAAO,OAAO,UAAU,UAAU,UAAU,WAAW,UAAU,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,WAAW,WAAW,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,UAAU,WAAW,WAAW,UAAU,OAAO,OAAO,WAAW,WAAW,UAAU,OAAO,OAAO,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,WAAW,WAAW,WAAW,OAAO,OAAO,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,OAAO,OAAO,WAAW,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,UAAU,WAAW,WAAW,OAAO,OAAO,WAAW,UAAU,OAAO,OAAO,UAAU,WAAW,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,UAAU,WAAW,OAAO,OAAO,WAAW,UAAU,OAAO,OAAO,UAAU,WAAW,OAAO,OAAO,UAAU,UAAU,OAAO,OAAO,WAAW,OAAO,OAAO,WAAW,OAAO,OAAO,WAAW,WAAW,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,OAAO,QAAQ,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,UAAU,UAAU,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,YAAY,YAAY,WAAW,QAAQ,QAAQ,WAAW,YAAY,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,YAAY,YAAY,WAAW,QAAQ,QAAQ,WAAW,YAAY,WAAW,QAAQ,QAAQ,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,UAAU,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,UAAU,UAAU,QAAQ,QAAQ,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,KAAK,KAAK,KAAK,UAAU,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,UAAU,WAAW,UAAU,WAAW,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,UAAU,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,UAAU,WAAW,QAAQ,QAAQ,UAAU,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,UAAU,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,UAAU,UAAU,WAAW,QAAQ,QAAQ,UAAU,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,UAAU,KAAK,MAAM,UAAU,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,WAAW,KAAK,KAAK,MAAM,UAAU,QAAQ,SAAS,UAAU,UAAU,WAAW,QAAQ,QAAQ,YAAY,cAAc,cAAc,cAAc,cAAc,SAAS,QAAQ,WAAW,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,UAAU,UAAU,UAAU,UAAU,QAAQ,QAAQ,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,MAAM,WAAW,QAAQ,KAAK,QAAQ,YAAY,cAAc,cAAc,cAAc,cAAc,cAAc,aAAa,YAAY,aAAa,YAAY,YAAY,YAAY,YAAY,YAAY,cAAc,eAAe,aAAa,YAAY,WAAW,aAAa,YAAY,YAAY,aAAa,aAAa,aAAa,WAAW,aAAa,eAAe,eAAe,aAAa,QAAQ,QAAQ,WAAW,YAAY,SAAS,QAAQ,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,UAAU,QAAQ,QAAQ,WAAW,WAAW,WAAW,UAAU,WAAW,WAAW,UAAU,WAAW,WAAW,YAAY,YAAY,WAAW,WAAW,WAAW,QAAQ,QAAQ,aAAa,aAAa,WAAW,WAAW,WAAW,YAAY,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,WAAW,KAAK,KAAK,KAAK,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,KAAK,KAAK,KAAK,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,KAAK,KAAK,KAAK,YAAY,YAAY,WAAW,QAAQ,QAAQ,YAAY,YAAY,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,YAAY,WAAW,WAAW,WAAW,WAAW,YAAY,QAAQ,QAAQ,YAAY,WAAW,WAAW,YAAY,YAAY,YAAY,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,UAAU,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,YAAY,cAAc,cAAc,cAAc,cAAc,SAAS,QAAQ,UAAU,UAAU,UAAU,QAAQ,QAAQ,YAAY,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,MAAM,UAAU,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,KAAK,QAAQ,WAAW,QAAQ,SAAS,UAAU,WAAW,WAAW,QAAQ,QAAQ,OAAO,UAAU,QAAQ,KAAK,QAAQ,YAAY,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,QAAQ,UAAU,WAAW,OAAO,QAAQ,WAAW,QAAQ,SAAS,UAAU,QAAQ,QAAQ,WAAW,QAAQ,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,OAAO,QAAQ,UAAU,UAAU,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,UAAU,UAAU,UAAU,QAAQ,QAAQ,YAAY,YAAY,UAAU,WAAW,WAAW,QAAQ,QAAQ,YAAY,WAAW,WAAW,QAAQ,QAAQ,YAAY,WAAW,WAAW,QAAQ,QAAQ,WAAW,UAAU,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,UAAU,QAAQ,QAAQ,WAAW,UAAU,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,WAAW,WAAW,KAAK,KAAK,KAAK,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,QAAQ,QAAQ,aAAa,YAAY,WAAW,WAAW,UAAU,QAAQ,QAAQ,UAAU,WAAW,WAAW,QAAQ,QAAQ,aAAa,YAAY,WAAW,WAAW,UAAU,QAAQ,QAAQ,UAAU,WAAW,WAAW,QAAQ,QAAQ,aAAa,YAAY,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,aAAa,YAAY,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,UAAU,WAAW,QAAQ,QAAQ,UAAU,WAAW,UAAU,UAAU,WAAW,QAAQ,QAAQ,UAAU,UAAU,QAAQ,QAAQ,UAAU,WAAW,WAAW,QAAQ,QAAQ,UAAU,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,UAAU,UAAU,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,UAAU,WAAW,UAAU,QAAQ,QAAQ,UAAU,WAAW,WAAW,UAAU,QAAQ,QAAQ,aAAa,aAAa,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,UAAU,WAAW,WAAW,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,UAAU,UAAU,QAAQ,QAAQ,WAAW,UAAU,UAAU,QAAQ,QAAQ,WAAW,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,WAAW,QAAQ,QAAQ,UAAU,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW,UAAU,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,QAAQ,SAAS,WAAW,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,UAAU,WAAW,QAAQ,SAAS,WAAW,UAAU,WAAW,QAAQ,SAAS,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,WAAW,WAAW,UAAU,QAAQ,SAAS,UAAU,QAAQ,SAAS,WAAW,QAAQ,SAAS,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,QAAQ,QAAQ,WAAW,UAAU,UAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,WAAW,QAAQ,QAAQ,UAAU,QAAQ,SAAS,UAAU,QAAQ,QAAQ,UAAU,UAAU,QAAQ,UAAU,WAAW,QAAQ,QAAQ,UAAU,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,WAAW,QAAQ,QAAQ,WAAW,UAAU,UAAU,QAAQ,QAAQ,UAAU,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,UAAU,WAAW,UAAU,WAAW,UAAU,QAAQ,QAAQ,UAAU,WAAW,WAAW,WAAW,UAAU,WAAW,UAAU,WAAW,WAAW,QAAQ,QAAQ,WAAW,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW,WAAW,KAAK,KAAK,MAAM,WAA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;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,OAAO,wKAAwK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,UAAU,WAAW,OAAO,MAAM,KAAK,MAAM,KAAK,UAAU,WAAW,UAAU,WAAW,UAAU,KAAK,MAAM,KAAK,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,UAAU,WAAW,KAAK,MAAM,KAAK,UAAU,WAAW,WAAW,KAAK,MAAM,KAAK,WAAW,OAAO,MAAM,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,MAAM,WAAW,KAAK,MAAM,MAAM,WAAW,WAAW,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,KAAK,W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","sources":["webpack:///./chameleon/legacy/src/sagas.js","webpack:///./chameleon/legacy/src/services/error.js","webpack:///./chameleon/legacy/src/shared/clients/apiClient.js","webpack:///./chameleon/legacy/src/shared/util/apiSagaGenerator.js","webpack:///./chameleon/legacy/src/shared/util/createReducer.js","webpack:///./chameleon/legacy/src/store/index.js","webpack:///./chameleon/legacy/src/utility/AssessmentFilterProvider.js","webpack:///./chameleon/legacy/src/utility/DateTime.js","webpack:///./chameleon/legacy/src/utility/EducationPeriodCalculations.js","webpack:///./chameleon/legacy/src/utility/Filters/actions.js","webpack:///./chameleon/legacy/src/utility/Filters/reducers.js","webpack:///./chameleon/legacy/src/utility/Filters/utils.js","webpack:///./chameleon/legacy/src/utility/FirewallCheck/SecureFirewallCheck.js","webpack:///./chameleon/legacy/src/utility/FirewallCheck/browser-debug.js","webpack:///./chameleon/legacy/src/utility/FirewallCheck/domains.js","webpack:///./chameleon/legacy/src/utility/GraphqlClients.js","webpack:///./chameleon/legacy/src/utility/ItemListShared.js","webpack:///./chameleon/legacy/src/utility/ItemTags/state/actions.js","webpack:///./chameleon/legacy/src/utility/ItemTags/state/reducer.js","webpack:///./chameleon/legacy/src/utility/ItemTags/state/sagas.js","webpack:///./chameleon/legacy/src/utility/LocalStorage.js","webpack:///./chameleon/legacy/src/utility/ResponsiveView.js","webpack:///./chameleon/legacy/src/utility/StackedBar.tsx","webpack:///./chameleon/legacy/src/utility/TagWithDescriptionPopover.js","webpack:///./chameleon/legacy/src/utility/UrlPaths.js","webpack:///./chameleon/legacy/src/utility/User.js","webpack:///./chameleon/legacy/src/utility/assignmentDates.js","webpack:///./chameleon/legacy/src/utility/authenticate.js","webpack:///./chameleon/legacy/src/utility/btn.js","webpack:///./chameleon/legacy/src/utility/buildUrl.js","webpack:///./chameleon/legacy/src/utility/featureFlag/fetchFlags.js","webpack:///./chameleon/legacy/src/utility/progressHelpers.js","webpack:///./chameleon/legacy/src/utility/tagHelpers.js","webpack:///./chameleon/legacy/src/utility/telemetry/index.js","webpack:///./chameleon/legacy/src/utility/utils.js","webpack:///./chameleon/legacy/src/utility/withSubmissionData/actions.js","webpack:///./chameleon/legacy/src/utility/withSubmissionData/reducer.js","webpack:///./chameleon/legacy/src/utility/withSubmissionData/sagas.js","webpack:///./chameleon/legacy/src/styles/utility/Breakpoints.module.scss","webpack:///./chameleon/legacy/src/styles/utility/OpTabs.module.scss","webpack:///./chameleon/legacy/src/styles/Main.scss","webpack:///./chameleon/legacy/src/utility/FirewallCheck/FirewallCheck.scss","webpack:///./chameleon/legacy/src/utility/StackedBar.scss","webpack:///./chameleon/legacy/src/utility/TagWithDescriptionPopover.scss","webpack:///./chameleon/legacy/src/styles/utility/Breakpoints.module.scss?3140","webpack:///./chameleon/legacy/src/styles/utility/OpTabs.module.scss?63d5","webpack:///./chameleon/legacy/src/styles/Main.scss?60b3","webpack:///./chameleon/legacy/src/utility/FirewallCheck/FirewallCheck.scss?988a","webpack:///./chameleon/legacy/src/utility/StackedBar.scss?9e0f","webpack:///./chameleon/legacy/src/utility/TagWithDescriptionPopover.scss?349e"],"sourcesContent":["import { map } from 'lodash';\nimport { all, takeEvery } from 'redux-saga/effects';\nimport { SUBJECT_MAPPING } from './constants/types';\nimport { getUserSubjects } from './reducers/subject';\nimport { PREAP_SUBJECTS } from 'chameleon/src/constants/subjects';\n\nexport function* remapSubjectsSaga(\n  action,\n  getUserSubjectsFn = getUserSubjects,\n) {\n  const { userData, router, params } = action;\n  const userSubjects = getUserSubjectsFn(userData);\n  let mapId = 'id';\n  if (userData.isAdmin || userData.isCoordinator) {\n    mapId = 'masterSubjectId';\n  }\n  const subjectIds = map(userSubjects, (item) => item[mapId].toString());\n\n  if (\n    (userSubjects || []).length &&\n    !Number.isNaN(parseInt(params.subject, 10)) &&\n    !subjectIds.includes(params.subject)\n  ) {\n    if (subjectIds.includes('77') && params.subject === '24') {\n      yield router.replace('/77/home');\n    } else if (!PREAP_SUBJECTS.includes(parseInt(params.subject, 10))) {\n      yield router.replace('/error/1');\n    }\n  }\n}\n\nexport default function* entrypointSaga() {\n  yield all([takeEvery(SUBJECT_MAPPING, remapSubjectsSaga)]);\n}\n","import { UserRoles } from 'chameleon/legacy/src/constants/common';\n\nexport default function renderValidation(pilot, userData) {\n  const fromROS =\n    document.referrer.match(/amdev.apfym-nonprod.collegeboard.org/g) ||\n    document.referrer.match(/uat.apfym-nonprod.collegeboard.org/g) ||\n    document.referrer.match(/pentest.apfym-nonprod.collegeboard.org/g) ||\n    document.referrer.match(/myap.collegeboard.org/g) ||\n    [];\n\n  let error = -1;\n  // number correlates to error id in ERRORS object within the copy/index.js file\n\n  if (!userData.me) {\n    return error;\n  }\n\n  let levityProfile = false;\n  if (window.cb && window.cb.core) {\n    levityProfile = window.cb.core.iam.getAuthSession().basicProfile;\n  }\n\n  /*\n   * Create additional fallback for user type detection based\n   * on a data from levity.\n   **/\n  const isStudent =\n    userData.me.isStudent ||\n    userData.me.userRole.includes(UserRoles.STUDENT) ||\n    (levityProfile && levityProfile.isStudent);\n  const isTeacher =\n    userData.me.isTeacher ||\n    userData.me.userRole.includes(UserRoles.TEACHER) ||\n    (levityProfile && levityProfile.isProfessional); // FIXME: not only teachers\n  const isAdminOrCoordinator =\n    userData.isAdmin ||\n    userData.isCoordinator ||\n    userData.me.userRole.includes(UserRoles.ADMIN) ||\n    userData.me.userRole.includes(UserRoles.COORDINATOR) ||\n    // levity tells you from the namespace whether it is an educator/professional (pf) or student account (st)\n    (levityProfile && levityProfile.namespace === 'pf');\n\n  const userSubjects = isStudent\n    ? userData.studentSubjects\n    : userData.teacherSubjects || [];\n\n  switch (pilot) {\n    case CURRENT_PILOT_NAME:\n      switch (userData.me.pilot) {\n        case pilot:\n          if (isStudent) {\n            if (window.location.pathname === '/error/1') {\n              // enrollment mismatch\n              error = 1;\n            } else if (!(userSubjects || []).length) {\n              // empty enrollment\n              error = 2;\n            } else if (!(userData.me.schoolSet || []).length) {\n              // unknown school\n              error = 3;\n            }\n          } else if (isAdminOrCoordinator) {\n            // no special validation, and NOT A TEACHER\n          } else if (isTeacher) {\n            // teacher with unknown school or empty subjects\n            if (!userSubjects.length || !(userData.me.schoolSet || []).length) {\n              error = 4;\n            }\n          } else if (!(userData.me.userRole || []).length) {\n            // unknown user roles\n            error = 4;\n          }\n          break;\n        default:\n          /*\n           * student is on p2 but not part of the pilot or has no subjects and came not from ROS\n           **/\n          if (isStudent) {\n            error = 0;\n          }\n          if (isStudent && fromROS.length) {\n            error = 2;\n          }\n          /*\n           * error for teacher not participating p2\n           * different messages if from ros/not from ros.\n           **/\n          if (isTeacher) {\n            error = 7;\n          }\n          /*\n           * teacher clicked AP CLASSROOM link from any of the\n           * document.referrer CB applications\n           **/\n          if ((isAdminOrCoordinator || isTeacher) && fromROS.length) {\n            /* eslint-disable */\n            console.log('renderValidation redirect', {\n              isAdminOrCoordinator,\n              isTeacher,\n              'fromROS.length': fromROS.length,\n              levityProfile,\n            });\n            /*eslint-enable */\n            // redirect to collegeboard app for proper message\n            // see https://academicmerit.atlassian.net/browse/FY-8630\n            window.location.href = `${ROS_FRONTEND_URL}`;\n          }\n          /*\n           * a fallback for the cases where user role can't be detected and pilot is not infra\n           **/\n          if (!(userData.me.userRole || []).length) {\n            /*\n             * for teacher or coordinator that we cannot determine their\n             * roles we get their information from levityProfile\n             **/\n            if (isTeacher || isAdminOrCoordinator) {\n              // redirect to collegeboard app for proper message\n              // see https://academicmerit.atlassian.net/browse/FY-8630\n              // error = 5;\n              /* eslint-disable */\n              console.log('renderValidation redirect pt2', {\n                isAdminOrCoordinator,\n                isTeacher,\n                userData,\n                levityProfile,\n              });\n              /*eslint-enable */\n              window.location.href = `${ROS_FRONTEND_URL}`;\n            } else {\n              // for student just fallback to the default 5 error page\n              error = 5;\n            }\n          }\n          break;\n      }\n      break;\n    default:\n      return error;\n  }\n  return error;\n}\n","import axios from 'axios';\nimport log from 'chameleon/ui-stack/utilities/log';\n\n/**\n * Fire Request\n * Make an axios call with the correct headers.\n *\n * @param  method {String}  Restful method.\n * @param  url    {String}  API URL endpoint.\n * @param  data   {Object}  Any data to send along.\n *                          Either axios.options.data or axios.options.params.\n * @param  headers {Object}  Any headers to send along.\n * @return        {Promise} The data that the server has returned.\n */\nconst _fireRequest = (method = 'get', url = '', data = {}, headers = {}) => {\n  const params = method === 'get' ? data : {};\n\n  const options = {\n    data,\n    params,\n    method,\n    headers,\n    url: url.includes('https://') ? url : `${FYM_BACKEND_URL}/${url}`,\n  };\n\n  return axios(options).then((response) => {\n    let resp = { http_status_code: response?.status || 599 };\n    const content_type = response?.headers?.['content-type'] || '';\n    if (content_type.endsWith('/json') || typeof response.data === 'object') {\n      if (Array.isArray(response.data)) {\n        resp = response.data;\n      } else {\n        resp = { ...resp, ...response.data };\n      }\n    } else {\n      resp = { ...resp, msg: response.data };\n    }\n    return resp;\n  });\n};\n\nexport default {\n  get: (...args) => _fireRequest('get', ...args),\n  post: (...args) => _fireRequest('post', ...args),\n  put: (...args) => _fireRequest('put', ...args),\n  delete: (...args) => _fireRequest('delete', ...args),\n  all: (calls) =>\n    axios\n      .all(\n        calls.map(({ method, url, data, headers }) =>\n          _fireRequest(method, url, data, headers),\n        ),\n      )\n      .catch((error) => log('error', error)),\n};\n\nlet signedURLCache = {};\n\n/* Sign the url only if it points to the media distribution  */\nexport const getSignedUrl = (\n  data,\n  failIfKeyIsMissing = false,\n  bypassCache = false,\n) => {\n  const cacheKey = JSON.stringify(data);\n  if (!bypassCache && signedURLCache[cacheKey]) {\n    // possible an issue if a user stays on the page longer than ExpiresIn\n    return Promise.resolve(signedURLCache[cacheKey]);\n  }\n  const isString = typeof data === 'string';\n  if (isString) {\n    const url = data;\n    if (\n      /^(https:)?\\/\\/media(\\.(dev|testing|staging))?\\.academicmerit\\.com/.test(\n        url,\n      )\n    ) {\n      return _fireRequest('post', 'media/api/signed_url', {\n        url,\n        fail_if_key_is_missing: failIfKeyIsMissing,\n      }).then((result) => {\n        let signedURL = result.signedUrl;\n        if (!bypassCache) {\n          signedURLCache[cacheKey] = signedURL;\n        }\n        return signedURL;\n      });\n    }\n    return Promise.resolve(url);\n  }\n  return _fireRequest('post', 'media/api/signed_url', {\n    ...data,\n    fail_if_key_is_missing: failIfKeyIsMissing,\n  }).then((result) => {\n    let signedURL = result.signedUrl;\n    if (!bypassCache) {\n      signedURLCache[cacheKey] = signedURL;\n    }\n    return signedURL;\n  });\n};\n","import { call, put } from 'redux-saga/effects';\nimport { SubmissionError } from 'redux-form';\n\nimport apiClient from '../clients/apiClient';\n\n/**\n * API Saga Generator\n * Use this to yield API responses from the apiClient.\n * The second argument may be an array of options objects, resulting in a call to apiClient.all.\n *\n * @param {Object}   routine         Set of actions packed up by redux-saga-routines.\n * @param {String}   options.method  HTTP method.\n * @param {String}   options.url     URL to hit.\n * @param {Object}   options.data    Data to send along as params/body data.\n * @param {Object}   options.headers Data to send along as headers data.\n * @param {Boolean}  options.silent  If silent, don't run the “request” action.\n * @param {Function} transform       Should transform the response before commiting the \"success\" action.\n * @param {boolean} isSubmission     If the apiSaga is form submission. If yes - it will handle errors as SubmissionErrors,\n *                                   and pass the error text from backend to fields.\n * @yield {Object}                   The API call response.\n */\nexport default function* apiSaga(\n  routine,\n  {\n    method = 'get',\n    url = '',\n    data = {},\n    headers = {},\n    silent = false,\n    callback = () => {},\n    callbackValue = true,\n    onReady = () => {}, //@todo - to be refactor with callback and callbackValue\n  },\n  transform = (x) => x,\n  isSubmission = false,\n  isParallel = true,\n) {\n  try {\n    let response = null;\n\n    if (!silent) {\n      yield put(routine.request());\n    }\n\n    const arg2 = arguments[1];\n    const shouldUseAll = Array.isArray(arg2);\n    if (shouldUseAll) {\n      if (isParallel) {\n        response = yield call(apiClient.all, arg2);\n      } else {\n        response = [];\n        for (let i = 0; i < arg2.length; i++) {\n          const { method: cMethod, url: cUrl, data: cData, headers } = arg2[i];\n          const reqResponse = yield call(\n            apiClient[cMethod],\n            cUrl,\n            cData,\n            headers,\n          );\n          response.push(reqResponse);\n        }\n      }\n    } else {\n      response = yield call(apiClient[method], url, data, headers);\n    }\n    if (isSubmission && response.errors) {\n      throw new SubmissionError(response.errors);\n    } else if (isSubmission && response?.length) {\n      response?.forEach((res) => {\n        if (res?.errors) {\n          throw new SubmissionError(res.errors);\n        }\n      });\n    }\n    yield put(routine.success(transform(response)));\n    onReady(transform(response));\n\n    return response;\n  } catch (error) {\n    yield put(routine.failure(error));\n    return error;\n  } finally {\n    typeof callback === 'function' && callback(callbackValue);\n  }\n}\n","/**\n * Generate a reducer based on the provided handlers object.\n *\n * @param  initialState {mixed}    The previous state.\n * @param  handlers     {Object}   Available reducer functions – keyed by action type.\n * @return              {Function} Generic reducer which attaches arguments to specific new reducer.\n */\nexport default (initialState, handlers) =>\n  (state = initialState, action) => {\n    if (handlers.hasOwnProperty(action.type)) {\n      return handlers[action.type](state, action);\n    }\n\n    return state;\n  };\n","import bootstrapApollo from 'legacy/src/bootstrap/apollo';\nimport createRootReducer from 'legacy/src/reducers';\nimport {\n  createNetworkInterface,\n  IntrospectionFragmentMatcher,\n} from 'apollo-client';\nimport introspectionQueryResultData from 'legacy/src/fragmentTypes.json';\n\nconst fragmentMatcher = new IntrospectionFragmentMatcher({\n  introspectionQueryResultData,\n});\n\n/**\n * Bootstrap Apollo.\n *\n * @type {ApolloClient}\n */\nconst networkInterface = createNetworkInterface({\n  uri: `${FYM_BACKEND_URL}/graphql`,\n});\nconst client = bootstrapApollo(networkInterface, fragmentMatcher);\n\n/**\n * Create our redux store.\n *\n * @type {Function}\n */\n\nconst store = createRootReducer(client);\nwindow.store = store;\n\nexport { store, client };\n","import React, { useEffect, useRef } from 'react';\nimport { connect } from 'react-redux';\nimport { flowRight as compose } from 'lodash';\nimport forEach from 'lodash/forEach';\nimport omitBy from 'lodash/omitBy';\nimport isEmpty from 'lodash/isEmpty';\nimport flatten from 'lodash/flatten';\nimport get from 'lodash/get';\nimport rison from 'rison';\nimport {\n  fetchCategories,\n  resetAssessmentState,\n} from 'legacy/src/components/assessment/state/actions';\nimport { flattenTags } from 'legacy/src/utility/ItemListShared';\nimport {\n  createFlattenHierarchyData,\n  extractTags,\n  findTagById,\n} from 'legacy/src/utility/tagHelpers';\nimport { findQBSubject } from 'legacy/src/components/learnosity/utils/helpers';\nimport withCourseOutlineConfig from 'chameleon/packages/units/composable/withCourseOutlineConfig';\nimport usePersistFilters from 'chameleon/src/components/questionBank/hooks/usePersistFilters';\nimport { isPreApSubject } from 'chameleon/src/constants/subjects';\n\nconst getRecursiveFilterByLabel = (tags, label) => {\n  if (tags.length) {\n    for (let i = 0; i < tags.length; i++) {\n      if (tags[i].label === label) {\n        return tags[i];\n      }\n\n      const searchedTag = getRecursiveFilterByLabel(tags[i].tags, label);\n\n      if (searchedTag) {\n        return searchedTag;\n      }\n    }\n  }\n};\n\nconst getSelectedTags = (tagTree, selectedTagsRef, hierarchyRef) => {\n  const { id, parent_id: parentId, tags } = tagTree;\n  if (hierarchyRef[id] && hierarchyRef[id].isSelected) {\n    if (!parentId) {\n      forEach(hierarchyRef[id].children, (child) => {\n        selectedTagsRef.push(child.id);\n      });\n      if (isEmpty(hierarchyRef[id].children)) {\n        selectedTagsRef.push(id);\n      }\n    } else {\n      selectedTagsRef.push(id);\n    }\n  } else if (\n    hierarchyRef[parentId] &&\n    hierarchyRef[parentId].children[id].isSelected\n  ) {\n    selectedTagsRef.push(id);\n  } else {\n    (tags || []).forEach((tag) => {\n      getSelectedTags(tag, selectedTagsRef, hierarchyRef);\n    });\n  }\n};\n\nexport const tagsCleanUp = (tags, hierarchy) => {\n  if (!isEmpty(tags)) {\n    return flattenTags(tags);\n  }\n  let selectedTags = {};\n\n  forEach(hierarchy.current.tree, (tag, tagCategoryId) => {\n    selectedTags[tagCategoryId] = [];\n    getSelectedTags(tag, selectedTags[tagCategoryId], hierarchy.current);\n  });\n\n  selectedTags = omitBy(selectedTags, isEmpty);\n\n  return flattenTags(rison.encode_object(selectedTags));\n};\n\nexport const extractChildrenFromMetadata = (metadata) => {\n  let result = [];\n  metadata.children.forEach((child) => {\n    result.push(child.label);\n    result.push(...extractChildrenFromMetadata(child));\n  });\n  return result;\n};\n\n/**\n * Applies filters , based on the metadata being returned bu the *courseOutline* GraphQl query\n * Filter metadata can be either 'flat' or 'hierarchy' type.\n * @returns {string} a query string\n * @memberof CreateQuiz\n */\nexport const applyMetadataFilters = (filters, categories) => {\n  if (!categories.above_fold) {\n    return '';\n  }\n\n  let tagsQuery = {};\n\n  filters.forEach((filter) => {\n    const allCategories = categories.above_fold.concat(categories.below_fold);\n    let categoryMatches = allCategories.filter(\n      (category) => category.description === filter.name,\n    );\n\n    // support checking for root tag using filter.category eg CSP subject\n    if (filter.category) {\n      categoryMatches = categoryMatches.concat(\n        allCategories.filter((category) => category.label === filter.category),\n      );\n    }\n    if (categoryMatches.length) {\n      const filterId = categoryMatches[0].id;\n      let tags = extractTags(categoryMatches[0]);\n      let matches = [];\n      if (filter.type === 'flat') {\n        matches = tags.filter((tag) =>\n          filter.values.map((value) => value.name).includes(tag.description),\n        );\n      }\n      if (filter.type === 'hierarchy' && filter.children.length) {\n        const metadataItems = extractChildrenFromMetadata(filter);\n        matches = tags.filter((tag) => metadataItems.includes(tag.label));\n        if (matches.length > 0 && matches[0].tags) {\n          const moreMatches = matches.map((match) =>\n            match.tags.filter((tag) => metadataItems.includes(tag.label)),\n          );\n          const firstTag = moreMatches[0];\n          if (firstTag && firstTag.length > 0) {\n            matches = flatten(moreMatches);\n          }\n        }\n      }\n\n      const ids = matches.map((match) => match.id);\n      if (ids.length > 0) {\n        tagsQuery[filterId] = ids;\n\n        const source = allCategories.filter(\n          (category) => category.description === 'Source',\n        );\n        if (source && source.length > 0) {\n          const unitQuestions = source[0].tags.filter(\n            (questionFilterTag) =>\n              questionFilterTag.description === 'Unit Questions',\n          )[0];\n          if (unitQuestions) {\n            tagsQuery[unitQuestions.category_id] = [unitQuestions.id];\n          }\n        }\n      }\n    }\n  });\n\n  return rison.encode_object(tagsQuery);\n};\n\n/**\n * Provides filter categories\n * @param {object|func} options\n * */\nconst AssessmentFilterProvider = (options, WrappedComponent) => {\n  const FilterProvider = (props) => {\n    const {\n      params,\n      location,\n      router,\n      route,\n      categories,\n      courseOutlineConfig = {},\n      chosenEducationPeriodCode,\n      userSubjects,\n      userData: { me, adminSubjects, isAdmin, isCoordinator },\n    } = props;\n    const { query, state: locationState = {} } = location;\n    const { subject, unitNumber, bigIdeaType } = params;\n\n    const userId = get(me, 'initId', 0);\n    const [{ arePersistedFiltersLoaded, redirectWithFilters }] =\n      usePersistFilters({\n        subject,\n        userId,\n        router,\n      });\n\n    // bigIdeaType\n    const bigIdea = params.bigIdea || locationState.bigIdea;\n    const flattenHierarchy = useRef({\n      tree: {},\n      parentByChild: {},\n      subject,\n    });\n\n    const userSubjectsToUse =\n      isAdmin || isCoordinator ? adminSubjects : userSubjects;\n    const subjectInfo = findQBSubject(userSubjectsToUse, params.subject);\n    const isPreAP = isPreApSubject(params.subject);\n    const initId = !!subjectInfo && subjectInfo.initId;\n    const optionParams =\n      typeof options === 'function' ? options(props) : options;\n    const educationPeriod = get(\n      optionParams,\n      'chosenEducationPeriodCode',\n      chosenEducationPeriodCode,\n    );\n\n    useEffect(\n      () => () => {\n        props.resetAssessmentState();\n      },\n      [],\n    );\n\n    useEffect(() => {\n      if (arePersistedFiltersLoaded && !params.tags) {\n        redirectWithFilters();\n      }\n    }, [arePersistedFiltersLoaded, params.tags]);\n\n    useEffect(() => {\n      if (initId) {\n        props.fetchCategories({\n          initId,\n          minimal_fields_only: true,\n          subunitLabel:\n            (courseOutlineConfig && courseOutlineConfig.subunitLabel) || '',\n          educationPeriod,\n        });\n      }\n    }, [initId, educationPeriod]);\n\n    useEffect(() => {\n      //@todo - check bug: on each visit of QB/All Questions page: the\n      //https://apc-api.test:9091/fym/tagging/api/subject/10133/categories/?minimal_fields_only=true&educationPeriod=23\n      //is called - the results should be cached\n      if (!isEmpty(categories)) {\n        //Backwards compatibility for refresh page\n        const filterParams = query.tags;\n        if (filterParams) {\n          createFlattenHierarchyData(\n            categories,\n            flattenHierarchy.current,\n            filterParams,\n          );\n        }\n      }\n    }, []);\n\n    const generateUnitTagsString = (unitNumberValue) => {\n      if (!isEmpty(categories)) {\n        const above_fold = categories.above_fold || [];\n        const unitFilterCategories = [\n          'Unit',\n          'Unit and Topic',\n          'Big Idea',\n          'Big Idea and Learning Objective',\n          'Course Content',\n          'Pathway and Period',\n        ];\n        const unitFilter = above_fold.find(({ label }) =>\n          unitFilterCategories.includes(label),\n        );\n\n        const firstSubCategoryTags =\n          (unitFilter && unitFilter.tags && unitFilter.tags[0]) || null;\n        let unitTag;\n        if (\n          firstSubCategoryTags &&\n          unitFilterCategories.includes(firstSubCategoryTags.label)\n        ) {\n          unitTag = firstSubCategoryTags.tags.find(\n            ({ label }) => label === unitNumberValue,\n          );\n        } else {\n          unitTag = unitFilter.tags.find(\n            ({ label }) =>\n              label === unitNumberValue ||\n              label.includes(`Unit ${unitNumberValue}`),\n          );\n          // preap has non-numeric units that crash the QB\n          // but the array is sorted correctly so we can use the index\n          if (isPreAP && !unitTag) {\n            unitTag = unitFilter.tags[unitNumberValue - 1];\n          }\n        }\n        if (unitTag) {\n          return `'${unitFilter.id}':!(${unitTag.id})`;\n        }\n      }\n      return '';\n    };\n\n    if (!subjectInfo || isEmpty(categories)) {\n      return null;\n    }\n\n    if (unitNumber) {\n      const tagsString = generateUnitTagsString(unitNumber);\n      if (tagsString) {\n        const filterQueryString = `?tags=${tagsString}`;\n        router.replace(\n          `/${subject}/question_bank/questions${filterQueryString}`,\n        );\n      }\n      return null;\n    } else if (bigIdea) {\n      const above_fold = categories.above_fold || [];\n      const bigIdeaFilterCategories = [\n        'Big Idea',\n        'Big Idea and Learning Objective',\n      ];\n      const bigIdeaFilter = above_fold.find(({ label }) =>\n        bigIdeaFilterCategories.includes(label),\n      );\n\n      const firstSubCategoryTags =\n        (bigIdeaFilter && bigIdeaFilter.tags && bigIdeaFilter.tags[0]) || null;\n      let bigIdeaTag;\n      if (\n        firstSubCategoryTags &&\n        bigIdeaFilterCategories.includes(firstSubCategoryTags.label)\n      ) {\n        bigIdeaTag = firstSubCategoryTags.tags[bigIdea - 1];\n      } else {\n        bigIdeaTag = bigIdeaFilter && bigIdeaFilter.tags[bigIdea - 1];\n      }\n\n      if (bigIdeaTag) {\n        let tagsString = `'${bigIdeaFilter.id}':!(${bigIdeaTag.id})`;\n\n        const assessmentPurposeAndSourceCategories = [\n          'Assessment Purpose and Source',\n        ];\n        const assessmentPurposeAndSourceFilter = above_fold.find(({ label }) =>\n          assessmentPurposeAndSourceCategories.includes(label),\n        );\n\n        /*\n         * Since the PERFORMANCE TASK FILTER was implemented before BIG IDEA ONLY\n         * we've kept the url as /:bigIdea/big_idea for BIG IDEA + PERFORMANCE TASK.\n         * Therefore the bigIdeaType will be undefined when we have to also set the PERFORMANCE TASK filter.\n         * */\n        const withPerformanceTaskFilter = !bigIdeaType;\n        if (withPerformanceTaskFilter) {\n          const performanceTaskFilter = getRecursiveFilterByLabel(\n            assessmentPurposeAndSourceFilter.tags,\n            'Performance Task',\n          );\n\n          const apQuestionFilter = getRecursiveFilterByLabel(\n            assessmentPurposeAndSourceFilter.tags,\n            'AP Topic Question',\n          );\n          if (performanceTaskFilter || apQuestionFilter) {\n            let siblingFilter = '';\n            if (apQuestionFilter.id) {\n              siblingFilter = `,${apQuestionFilter.id}`;\n            }\n            tagsString += `,'${assessmentPurposeAndSourceFilter.id}':!(${performanceTaskFilter.id}${siblingFilter})`;\n          }\n        }\n\n        const filterQueryString = `?tags=${tagsString}`;\n        router.replace(\n          `/${subject}/question_bank/questions${filterQueryString}`,\n        );\n      }\n    } else if (location.pathname.includes('/filters')) {\n      let filterParams = '';\n      const {\n        state: {\n          tagId,\n          topicQuestionsFilter,\n          unitNumber: unitNumberFromState,\n          questionBankPath,\n          ...otherLocationState\n        },\n      } = location;\n      if (tagId) {\n        filterParams = findTagById(categories, tagId);\n      }\n      if (topicQuestionsFilter) {\n        filterParams = applyMetadataFilters(topicQuestionsFilter, categories);\n      }\n\n      createFlattenHierarchyData(\n        categories,\n        flattenHierarchy.current,\n        filterParams,\n      );\n      const innerPath =\n        route.name === 'createQuizAutoBuildWrapper' ? '/auto-build' : '';\n      const { searchTerm, sortTagsBy } = query;\n      if (unitNumberFromState) {\n        const tagsString = generateUnitTagsString(unitNumberFromState);\n        filterParams = filterParams\n          ? `${filterParams},${tagsString}`\n          : tagsString;\n      }\n      const urlToPath = questionBankPath || '/create';\n      router.replace({\n        pathname: `/${subject}/question_bank${urlToPath}${innerPath}`,\n        query: {\n          tags: filterParams,\n          searchTerm,\n          sortTagsBy,\n        },\n        state: otherLocationState,\n      });\n    }\n\n    return (\n      <WrappedComponent\n        key={subject}\n        {...props}\n        flattenHierarchy={flattenHierarchy}\n        tagsCleanUp={tagsCleanUp}\n        subjectInfo={subjectInfo}\n      />\n    );\n  };\n\n  FilterProvider.displayName = 'FilterProvider';\n\n  return compose(\n    connect(\n      (state) => ({\n        categories: state.assessment.categories,\n      }),\n      {\n        fetchCategories,\n        resetAssessmentState,\n      },\n    ),\n    withCourseOutlineConfig(),\n  )(FilterProvider);\n};\n\n/**\n * Find and apply custom label\n * @param {object} filters List of filters\n * @param {string} subunitLabel The subunit configured label\n * @return {object} List of filters and if label has been found\n * */\nconst findAndApply = (filters, subunitLabel) => {\n  const filterLabel = subunitLabel || 'Subunit';\n  let labelFound = false;\n\n  filters.map((filter) => {\n    if (filter.title === 'Subunit') {\n      labelFound = true;\n      filter.title = filterLabel;\n      filter.description = filterLabel;\n    }\n\n    return filter;\n  });\n\n  return {\n    list: filters,\n    labelFound,\n  };\n};\n\n/**\n * Apply course outline configuration label\n * @param {object} categories List of filters\n * @param {string} subunitLabel The subunit configured label\n * @return {object} categories List of filters with custom labels applied\n * */\nconst applyFilterCustomLabel = (categories, subunitLabel) => {\n  let labelFound = false;\n  if (categories && categories.above_fold && categories.above_fold.length) {\n    const filters = findAndApply(categories.above_fold, subunitLabel);\n    categories.above_fold = filters.list;\n    labelFound = filters.labelFound;\n  }\n\n  if (\n    !labelFound &&\n    categories &&\n    categories.below_fold &&\n    categories.below_fold.length\n  ) {\n    const filters = findAndApply(categories.below_fold, subunitLabel);\n    categories.below_fold = filters.list;\n  }\n\n  return categories;\n};\n\nexport default AssessmentFilterProvider;\nexport { applyFilterCustomLabel };\n","import dayjs from 'dayjs';\n\n/**\n * Print date/time.\n * @param inputDate The datetime as a string in UTC.\n * @param {string} preset - output format\n * @param {string} timezone - use timezone like 'US/Eastern' to display date.\n * @return the formatted date (and time) as a string.\n */\nexport default function dateTimeFormat(inputDate, preset, timezone = false) {\n  const presets = {\n    date: 'M/D/YYYY',\n    dateAndTime: 'M/D/YYYY h:mm A',\n    dateAndTimeZoned: 'M/D/YYYY h:mm A z',\n    dateAndTimeZonedTwoLines: 'M/D/YYYY[\\n]h:mm A z',\n    time: 'h:mm A z',\n    timeHourSeconds: 'h:mm A',\n    dateAndTimeShortYear: 'MM/DD/YY h:mm A',\n    dateAndTimeShort: 'MM/DD[\\n]hh:mm A',\n    dateAndTimeShortest: 'M/D hh:mm A',\n    dateLong: 'MMMM D, YYYY',\n    dateTimeFile: 'YYYYMMDD-hhmmss',\n    dateShort: 'M/DD/YY',\n    dateStandard: 'MM/DD/YYYY',\n    dateShortMonth: 'MMM D, YYYY',\n    dayMonthTime: 'ddd, MMM D h:mmA',\n    dateShortTwoDigitMonth: 'MM/DD/YY',\n    dateMonthTextAndDay: 'MMMM D',\n  };\n  if (inputDate === null) {\n    return '';\n  }\n  let dt = dayjs(inputDate);\n  if (timezone) {\n    dt = dt.tz(timezone);\n  } else {\n    dt = dt.utc().local();\n  }\n\n  return dt.format(presets[preset]);\n}\n","import dayjs from 'dayjs';\n\n/**\n * Attempts to retrieve a given education period from either an array of options or an object mapping educationPeriod ID value\n * to the education period object.\n * @param educationPeriodCode {int} - The integer education period code that represents the chosen education period\n * @param educationPeriods {object | list} - All known education periods in the format id -> education period map or an array\n * @returns {object | null} The chosen education period\n */\nconst retrieveEducationPeriod = (educationPeriodCode, educationPeriods) => {\n  if (!educationPeriods) {\n    return null;\n  }\n\n  if (Array.isArray(educationPeriods)) {\n    return educationPeriods.filter((p) => p.id === educationPeriodCode)[0];\n  }\n  return educationPeriods[educationPeriodCode];\n};\n\n/**\n * Determines whether the provided `dateToCheck` is within the window of availability for the\n * provided education period. Returns true if the date is a valid date for the provided education period,\n * false if it is too early or too late.\n * @param educationPeriod {int} - The numeric index that represents the education period (i.e. 22 for 2020-2021)\n * @param educationPeriodOptions {object | list} - All known education periods in the format id -> education period map or an array\n * @param dateToCheck {string | number} - Either string or dayjs.js int timestamp representation of the date to check\n * @returns {boolean} - Whether or not the date is inside the designated AY window.\n */\nconst isCurrentEducationPeriod = (\n  educationPeriod,\n  educationPeriodOptions,\n  dateToCheck = dayjs(),\n) => {\n  const chosenEducationPeriod = retrieveEducationPeriod(\n    educationPeriod,\n    educationPeriodOptions,\n  );\n\n  if (!chosenEducationPeriod) {\n    return false;\n  }\n\n  const chosenPeriodStart = dayjs(chosenEducationPeriod.contentAvailableAt);\n  const chosenPeriodEnd = dayjs(chosenEducationPeriod.endDate);\n  const dateRepresentation = dayjs(dateToCheck);\n\n  return dateRepresentation.isBetween(chosenPeriodStart, chosenPeriodEnd);\n};\n\n/**\n * Determines whether the provided `dateToCheck` is after the content expiration for the chosen\n * education period. Note that this isn't the end date, but the content expiration date. Returns true\n * if the provided date is after the expiration date for the EP, false otherwise.\n * @param educationPeriod {int} - The numeric index that represents the academic year (i.e. 22 for 2020-2021)\n * @param educationPeriodOptions {object | list} - All known education periods in the format id -> education period map or an array\n * @param dateToCheck {string | number} - Either string or dayjs.js int timestamp representation of the date to check\n * @returns {boolean} - Whether or not the date is after the content for the AY expires\n */\nconst isAfterEducationPeriodExpires = (\n  educationPeriod,\n  educationPeriodOptions,\n  dateToCheck = dayjs(),\n) => {\n  const chosenPeriodData = retrieveEducationPeriod(\n    educationPeriod,\n    educationPeriodOptions,\n  );\n\n  if (!chosenPeriodData) {\n    return false;\n  }\n\n  const chosenPeriodEnd = dayjs(chosenPeriodData.endDate);\n  const dateRepresentation = dayjs(dateToCheck);\n  return dateRepresentation.isAfter(chosenPeriodEnd);\n};\n\n/**\n * Determines whether the provided `dateToCheck` is before the content for an education period is available.\n * Returns true if so, false otherwise.\n * @param educationPeriod {int} - The numeric index that represents the education period (i.e. 22 for 2020-2021)\n * @param educationPeriodOptions {object | list} - All known education periods in the format id -> education period map or an array\n * @param dateToCheck {string | number} - Either string or dayjs.js int timestamp representation of the date to check\n * @returns {boolean} - Whether or not the provided date is before the content is available.\n */\nconst isBeforeEducationPeriod = (\n  educationPeriod,\n  educationPeriodOptions,\n  dateToCheck = dayjs(),\n) => {\n  const chosenPeriodData = retrieveEducationPeriod(\n    educationPeriod,\n    educationPeriodOptions,\n  );\n\n  if (!chosenPeriodData) {\n    return false;\n  }\n\n  const chosenPeriodAvailable = dayjs(chosenPeriodData.contentAvailableAt);\n  const dateRepresentation = dayjs(dateToCheck);\n  return dateRepresentation.isBefore(chosenPeriodAvailable);\n};\n\nexport {\n  isCurrentEducationPeriod,\n  isAfterEducationPeriodExpires,\n  isBeforeEducationPeriod,\n  retrieveEducationPeriod,\n};\n","import { createRoutine } from 'redux-saga-routines';\n\nexport const setActiveEducationPeriod = createRoutine(\n  'GROUP_FILTERS/STORE_ACTIVE_EDUCATION_PERIOD',\n);\n","import { isEmpty } from 'lodash';\nimport createReducer from 'legacy/src/shared/util/createReducer';\nimport { setActiveEducationPeriod } from './actions';\nimport { TYPES } from './utils';\n\nconst groupFiltersFromLocalStorage = JSON.parse(\n  window.localStorage.getItem(TYPES.localStorageGroupFilterKey),\n);\n\nconst initialState = {\n  activeEducationPeriod: !isEmpty(groupFiltersFromLocalStorage)\n    ? groupFiltersFromLocalStorage.educationPeriod\n    : '27', // TODO: find a better way to handle this, this is a temporary fix for the ongoing education period\n};\n\nconst reducer = createReducer(initialState, {\n  [setActiveEducationPeriod]: (state, { payload }) => ({\n    ...state,\n    activeEducationPeriod: payload,\n  }),\n});\n\nexport default reducer;\n","import { has, get, size, reduce, isEmpty } from 'lodash';\nimport { addQuery } from 'legacy/src/utility/buildUrl';\n\nexport const ACTIONS = {\n  handleActiveDistrict: 'HANDLE_ACTIVE_DISTRICT',\n  handleActiveSchool: 'HANDLE_ACTIVE_SCHOOL',\n  handleActiveSection: 'HANDLE_ACTIVE_SECTION',\n  handleActiveStudent: 'HANDLE_ACTIVE_STUDENT',\n  handleActiveEducationPeriod: 'HANDLE_ACTIVE_EDUCATION_PERIOD',\n  setAllEducationPeriods: 'SET_ALL_EDUCATION_PERIODS',\n  setHierarchy: 'SET_HIERARCHY',\n  setDistricts: 'SET_DISTRICTS',\n  setSchools: 'SET_SCHOOLS',\n  setSections: 'SET_SECTIONS',\n  setStudents: 'SET_STUDENTS',\n  handleSetupInitialState: 'HANDLE_SET_UP_INITIAL_STATE',\n  updateCachedFilterProps: 'UPDATE_CACHED_FILTER_PROPS',\n  toggleCachedFilterProps: 'TOGGLE_CACHED_FILTER_PROPS',\n  storeFlattenedGroups: 'STORE_FLATTENED_GROUPS',\n};\n\nexport const TYPES = {\n  district: 'DISTRICT_TYPE',\n  school: 'SCHOOL_TYPE',\n  section: 'SECTION_TYPE',\n  student: 'STUDENT_TYPE',\n  educationPeriod: 'EDUCATION_PERIOD_TYPE',\n  skillCategory: 'SKILL_CATEGORY_TYPE',\n  allSkillCategories: 'ALL_SKILL_CATEGORIES',\n  none: 'NONE_TYPE',\n  mcq: 'mcq',\n  frq: 'frq',\n  asc: 'asc',\n  des: 'des',\n  localStorageGroupFilterKey: 'activeGroupFilters',\n};\n\n// constant value for all schools selection\nexport const ALL_SCHOOLS = {\n  label: 'All Schools',\n  value: -1,\n  type: TYPES.school,\n};\n\n// constant value for all classes selection\nexport const ALL_SECTIONS = {\n  label: 'All Sections',\n  value: -2,\n  type: TYPES.section,\n};\n\n// constant value for all students  selection\nexport const ALL_STUDENTS = {\n  label: 'All Students',\n  value: -3,\n  type: TYPES.student,\n};\n\n// constant value for all districts selection\nexport const ALL_DISTRICTS = {\n  label: 'All Districts',\n  value: -6,\n  type: TYPES.district,\n};\n\n// constant value for default district value\nexport const DEFAULT_DISTRICT = {\n  label: '',\n  value: -4,\n  type: TYPES.district,\n};\n\n// constant value for default district value\nexport const DEFAULT_SCHOOL = {\n  label: '',\n  value: -7,\n  type: TYPES.school,\n};\n\n// constant value for default student value\nexport const DEFAULT_STUDENT = {\n  label: '',\n  value: -5,\n  type: TYPES.student,\n};\n\n// default unit selection for the student dashboard units filter\nexport const DEFAULT_UNIT = {\n  label: 'All Units',\n  value: -1,\n};\n\n// constant values that handle the \"none selected\" state and the \"all selected\" state\nexport const INITIAL_DISTRICTS = {\n  defaultValue: ALL_DISTRICTS,\n  values: [ALL_DISTRICTS],\n};\n\n// constant values that handle the \"none selected\" state and the \"all selected\" state\nexport const INITIAL_SCHOOLS = {\n  defaultValue: ALL_SCHOOLS,\n  values: [ALL_SCHOOLS],\n};\n\n// constant values that handle the \"none selected\" state and the \"all selected\" state\nexport const INITIAL_SECTIONS = {\n  defaultValue: ALL_SECTIONS,\n  values: [ALL_SECTIONS, ALL_STUDENTS],\n};\n\n// constant values that handle the \"none selected\" state and the \"all selected\" state\nexport const INITIAL_STUDENTS = {\n  defaultValue: DEFAULT_STUDENT,\n  values: [],\n};\n\nexport const defaultValues = {\n  districts: INITIAL_DISTRICTS.values,\n  schools: INITIAL_SCHOOLS.values,\n  sections: INITIAL_SECTIONS.values,\n  students: INITIAL_STUDENTS.values,\n  allSchools: ALL_SCHOOLS,\n  allSections: ALL_SECTIONS,\n  allStudents: ALL_STUDENTS,\n  district: INITIAL_DISTRICTS.defaultValue,\n  school: INITIAL_SCHOOLS.defaultValue,\n  section: INITIAL_SECTIONS.defaultValue,\n  student: INITIAL_STUDENTS.defaultValue,\n};\n\nexport const setData = ({ data = {}, initialState, type, section }) => {\n  const isStudent = type === TYPES.student;\n  const sortedData = isStudent\n    ? Object.keys(data)\n        .sort((first, second) => {\n          const firstStudentName = `${data[\n            first\n          ].last_name.toUpperCase()}${data[first].first_name.toUpperCase()}`;\n          const secondStudentName = `${data[\n            second\n          ].last_name.toUpperCase()}${data[second].first_name.toUpperCase()}`;\n          if (firstStudentName > secondStudentName) {\n            return 1;\n          }\n          if (firstStudentName < secondStudentName) {\n            return -1;\n          }\n          return 0;\n        })\n        .map((datum) => ({\n          label: `${data[datum].first_name} ${data[datum].last_name}`,\n          value: section ? `${section.id}-${data[datum].id}` : data[datum].id,\n          type,\n          firstName: data[datum].first_name,\n          lastName: data[datum].last_name,\n          id: section ? `${section.id}-${data[datum].id}` : data[datum].id,\n        }))\n    : // sort by name alphabetically\n      Object.keys(data)\n        .sort((first, second) => {\n          if (\n            data[first].name.toUpperCase() > data[second].name.toUpperCase()\n          ) {\n            return 1;\n          }\n          if (\n            data[first].name.toUpperCase() < data[second].name.toUpperCase()\n          ) {\n            return -1;\n          }\n          return 0;\n        })\n        .map((datum) => ({\n          label: data[datum].name,\n          value: data[datum].id,\n          id: data[datum].id,\n          type,\n        }));\n\n  // data set includes initial state properties (default values) and sorted data coming from api call\n  return {\n    sortedData,\n    aggregatedList:\n      sortedData.length > 1 ? [...initialState, ...sortedData] : sortedData,\n  };\n};\n\nexport const filterHierarchyData = (data) =>\n  reduce(\n    data,\n    (districtAccum, district) => {\n      const filteredSchools = reduce(\n        district.schools,\n        (schoolAccum, school) => ({\n          ...schoolAccum,\n          ...(!isEmpty(school.sections) ? { [school.id]: school } : null),\n        }),\n        {},\n      );\n      return {\n        ...districtAccum,\n        ...(!isEmpty(filteredSchools)\n          ? {\n              [district.id]: {\n                ...district,\n                schools: filteredSchools,\n              },\n            }\n          : null),\n      };\n    },\n    {},\n  );\n\nexport const formatUserEducationPeriods = (\n  educationPeriods,\n  earliestReportingEP,\n) =>\n  educationPeriods\n    .filter((period) => period.id >= earliestReportingEP)\n    .map((period) => ({\n      label: period.displayValue,\n      value: period.id,\n      type: TYPES.educationPeriod,\n    }));\n\nexport const formatCurrentEducationPeriod = (currentEducationPeriod) => ({\n  defaultValue: {\n    label: currentEducationPeriod.displayValue,\n    value: currentEducationPeriod.id,\n    type: TYPES.educationPeriod,\n  },\n  values: [],\n});\n\nconst handleDataList = ({ dataList, selection, type }) =>\n  isEmpty(selection) && type === TYPES.student\n    ? null\n    : !isEmpty(selection)\n      ? selection\n      : size(dataList.sortedData) === 1\n        ? get(dataList, ['sortedData', 0], null)\n        : get(dataList, ['aggregatedList', 0], null);\n\n// Function to set initial state.\nexport const setInitialGroupFilterState = ({\n  dispatch,\n  activeDistrictId,\n  activeSchoolId,\n  activeSectionId,\n  activeStudentId,\n  activeEducationPeriodValue,\n  userEducationPeriods,\n  filteredData,\n  initialState,\n  hasInitialStateFromStorageOrQuery,\n  showEmptySelection = false,\n  hideAllDistricts = false,\n}) => {\n  // create list of districts\n  const districts = setData({\n    data: filteredData,\n    // remove ALL Districts if there is only one district. otherwise, just leave all initial options be\n    initialState: initialState.districts.filter(\n      (district) =>\n        (Object.keys(filteredData).length <= 1 &&\n          district.value !== ALL_DISTRICTS.value) ||\n        (Object.keys(filteredData).length > 1 &&\n          hideAllDistricts &&\n          district.value !== ALL_DISTRICTS.value) ||\n        (Object.keys(filteredData).length > 1 && !hideAllDistricts),\n    ),\n    type: TYPES.district,\n  });\n\n  // grab active district based off initial state (or default to a fallback in handleDataList)\n  const matchingDistrict =\n    // if ALL DISTRICTS is an option\n    // and no initial state from storage,\n    // we will provide a blank selection on initial state setup\n    districts.aggregatedList.some(\n      (district) => district.value === ALL_DISTRICTS.value,\n    ) &&\n    !hasInitialStateFromStorageOrQuery &&\n    showEmptySelection\n      ? DEFAULT_DISTRICT\n      : // if we have ALL DISTRICTS option and the district value is DEFAULT_DISTRICT or ALL_DISTRICTS value,\n        districts.aggregatedList.some(\n            (district) => district.value === ALL_DISTRICTS.value,\n          ) &&\n          (activeDistrictId === DEFAULT_DISTRICT.value ||\n            activeDistrictId === ALL_DISTRICTS.value)\n        ? // we want to just auto select the first district\n          districts.sortedData[0]\n        : // otherwise just do the normal parsing\n          handleDataList({\n            dataList: districts,\n            selection: get(districts, 'aggregatedList', []).find(\n              (district) =>\n                parseInt(activeDistrictId, 10) === parseInt(district.value, 10),\n            ),\n            type: TYPES.district,\n          });\n\n  // grab active district value\n  const matchingDistrictValue =\n    get(matchingDistrict, 'value') || get(matchingDistrict, 'id');\n\n  // create list of schools\n  const schools =\n    matchingDistrictValue === ALL_DISTRICTS.value ||\n    matchingDistrictValue === DEFAULT_DISTRICT.value\n      ? setData({\n          data: Object.values(filteredData).reduce(\n            (accum, district) =>\n              has(district, 'schools')\n                ? { ...accum, ...district.schools }\n                : accum,\n            {},\n          ),\n          initialState: initialState.schools,\n          type: TYPES.school,\n        })\n      : matchingDistrict\n        ? setData({\n            data: get(filteredData, [matchingDistrictValue, 'schools'], {}),\n            initialState: initialState.schools,\n            type: TYPES.school,\n          })\n        : initialState.schools;\n\n  // grab active school based off initial state (or default to a fallback in handleDataList)\n  const matchingSchool =\n    matchingDistrictValue === DEFAULT_DISTRICT.value\n      ? DEFAULT_SCHOOL\n      : handleDataList({\n          dataList: schools,\n          selection: get(schools, 'aggregatedList', []).find(\n            (school) =>\n              parseInt(activeSchoolId, 10) === parseInt(school.value, 10),\n          ),\n          type: TYPES.school,\n        });\n\n  // grab active school value\n  const matchingSchoolValue =\n    get(matchingSchool, 'value') || get(matchingSchool, 'id');\n\n  // create list of sections\n  const getSections = Object.values(\n    get(filteredData, [matchingDistrictValue, 'schools'], {}),\n  ).reduce((acc, school) => ({ ...acc, ...school.sections }), {});\n  const sections = setData({\n    data: Object.values(getSections),\n    initialState: initialState.sections,\n    type: TYPES.section,\n  });\n\n  // grab active section based off initial state (or default to a fallback in handleDataList)\n  const matchingSection = handleDataList({\n    dataList: sections,\n    selection: get(sections, 'aggregatedList', []).find(\n      (section) =>\n        parseInt(activeSectionId, 10) === parseInt(section.value, 10),\n    ),\n    type: TYPES.section,\n  });\n\n  // grab active section value\n  const matchingSectionValue =\n    get(matchingSection, 'value') || get(matchingSection, 'id');\n\n  // search through all sections if ALL STUDENTS or ALL SECTIONS is selected\n  const searchAllSections =\n    matchingDistrictValue &&\n    matchingSchoolValue &&\n    (parseInt(activeSectionId, 10) === ALL_STUDENTS.value ||\n      parseInt(activeSectionId, 10) === ALL_SECTIONS.value);\n\n  // create list of students\n  const students = searchAllSections\n    ? setData({\n        // aggregate all the students into a single list if ALL STUDENTS or ALL SECTIONS is selected\n        data: Object.values(\n          get(\n            filteredData,\n            [matchingDistrictValue, 'schools', matchingSchoolValue, 'sections'],\n            {},\n          ),\n        ).reduce((accum, section) => {\n          // append the section_id to the student_id\n          const studentsWithSectionId =\n            has(section, 'students') &&\n            Object.values(section.students).reduce(\n              (studentsAccum, student) => ({\n                ...studentsAccum,\n                [student.id]: {\n                  ...student,\n                  id: `${section.id}-${student.id}`,\n                },\n              }),\n              {},\n            );\n          return has(section, 'students') && !isEmpty(section.students)\n            ? { ...accum, ...studentsWithSectionId }\n            : accum;\n        }, {}),\n        initialState: initialState.students,\n        type: TYPES.student,\n      })\n    : // if not searching through all sections, create list of students based off hierarchy\n      matchingSection\n      ? setData({\n          data: get(\n            filteredData,\n            [\n              matchingDistrictValue,\n              'schools',\n              matchingSchoolValue,\n              'sections',\n              matchingSectionValue,\n              'students',\n            ],\n            {},\n          ),\n          initialState: initialState.students,\n          type: TYPES.student,\n          section: matchingSection,\n        })\n      : initialState.students;\n\n  // studentId can be in the form of `${sectionId}-${studentId}` or `${studentId}`. this should handle both those cases\n  const studentId =\n    activeStudentId && get(`${activeStudentId}`.split('-'), 1, activeStudentId);\n  // grab active student based off initial state (or default to a fallback in handleDataList)\n  const matchingStudent = handleDataList({\n    dataList: students,\n    selection: get(students, 'aggregatedList', []).find(\n      (student) =>\n        parseInt(studentId, 10) ===\n        parseInt(student.value && get(`${student.value}`.split('-'), 1), 10),\n    ),\n    type: TYPES.student,\n  });\n\n  const matchingEducationPeriod = userEducationPeriods\n    ? userEducationPeriods.find(\n        (value) =>\n          parseInt(value.id, 10) === parseInt(activeEducationPeriodValue, 10),\n      )\n    : [];\n\n  // set the initial hierarchy state\n  dispatch({\n    type: ACTIONS.handleSetupInitialState,\n    payload: {\n      hierarchy: filteredData,\n      ...(matchingDistrict && {\n        activeDistrict: {\n          label: matchingDistrict.name,\n          value: matchingDistrict.id,\n          ...matchingDistrict,\n        },\n      }),\n      districts: districts.aggregatedList,\n      ...(matchingSchool && {\n        activeSchool: {\n          label: matchingSchool.name,\n          value: matchingSchool.id,\n          ...matchingSchool,\n        },\n      }),\n      schools: schools.aggregatedList,\n      ...(matchingSection && {\n        activeSection: {\n          label: matchingSection.name,\n          value: matchingSection.id,\n          ...matchingSection,\n        },\n      }),\n      sections: sections.aggregatedList,\n      ...(matchingStudent && {\n        activeStudent: {\n          label:\n            matchingStudent.name ||\n            `${matchingStudent.first_name} ${matchingStudent.last_name}`,\n          value: matchingStudent.id,\n          id: matchingStudent.value,\n          ...matchingStudent,\n        },\n      }),\n      students: students.aggregatedList,\n      ...(matchingEducationPeriod && {\n        activeEducationPeriod: {\n          label: matchingEducationPeriod.displayValue,\n          value: matchingEducationPeriod.id,\n          ...matchingEducationPeriod,\n        },\n      }),\n    },\n  });\n};\n\nconst storeActiveId = ({ key, value, location, router }) => {\n  const groupFilters = {\n    ...JSON.parse(\n      window.localStorage.getItem(TYPES.localStorageGroupFilterKey) || '{}',\n    ),\n    [key]: value,\n  };\n  window.localStorage.setItem(\n    TYPES.localStorageGroupFilterKey,\n    JSON.stringify(groupFilters),\n  );\n  router.push({\n    pathname: location.pathname,\n    query: addQuery(location.query, groupFilters),\n  });\n};\n\nexport const applyMiddleware =\n  ({ dispatch, state, location, router }) =>\n  (action) =>\n    (\n      ({\n        [ACTIONS.handleSetupInitialState]: () => {\n          const {\n            activeDistrict,\n            activeSchool,\n            activeSection,\n            activeStudent,\n            activeEducationPeriod,\n          } = action.payload;\n          const groupFilters = {\n            districtId: activeDistrict\n              ? activeDistrict.value\n              : defaultValues.district.value,\n            schoolId: activeSchool\n              ? activeSchool.value\n              : defaultValues.school.value,\n            sectionId: activeSection\n              ? activeSection.value\n              : defaultValues.section.value,\n            studentId: activeStudent\n              ? activeStudent.value\n              : defaultValues.student.value,\n            educationPeriod: activeEducationPeriod\n              ? activeEducationPeriod.value\n              : state.activeEducationPeriod.value,\n          };\n          window.localStorage.setItem(\n            TYPES.localStorageGroupFilterKey,\n            JSON.stringify(groupFilters),\n          );\n          router.push({\n            pathname: location.pathname,\n            query: addQuery(location.query, groupFilters),\n          });\n          dispatch(action);\n        },\n        [ACTIONS.handleActiveDistrict]: () => {\n          const prevState = { ...state };\n          if (\n            action.payload.value === ALL_DISTRICTS.value &&\n            !prevState.showCachedFilterProps\n          ) {\n            dispatch({\n              type: ACTIONS.updateCachedFilterProps,\n              payload: prevState,\n            });\n          } else if (action.payload.value !== ALL_DISTRICTS.value) {\n            // do not store the \"ALL DISTRICTS\" selection, can be moved outside of if condition when we have proper handling from backend\n            storeActiveId({\n              key: 'districtId',\n              value: action.payload.value,\n              location,\n              state,\n              router,\n            });\n          }\n          dispatch({\n            type: ACTIONS.toggleCachedFilterProps,\n            payload: action.payload.value === ALL_DISTRICTS.value,\n          });\n          dispatch(action);\n        },\n        [ACTIONS.handleActiveSchool]: () => {\n          storeActiveId({\n            key: 'schoolId',\n            value: action.payload.value,\n            location,\n            state,\n            router,\n          });\n          // if the active district selection is ALL DISTRICTS or the DEFAULT DISTRICT (blank)\n          // AND the school selection is an actual school, we fill in the active district selection\n          if (\n            (state.activeDistrict.value === ALL_DISTRICTS.value ||\n              state.activeDistrict.value === DEFAULT_DISTRICT.value) &&\n            action.payload.value > 0\n          ) {\n            const districtSelection = state.districts.find(\n              (district) =>\n                district.id ===\n                get(\n                  state,\n                  ['flattenedGroups', action.payload.value, 'parentId'],\n                  0,\n                ),\n            );\n            dispatch({\n              type: ACTIONS.handleActiveDistrict,\n              payload: districtSelection,\n            });\n            // update cache to reflect this selection and the 'backfill' of district selection\n            dispatch({\n              type: ACTIONS.updateCachedFilterProps,\n              payload: {\n                ...state,\n                activeDistrict: districtSelection,\n                activeSchool: action.payload,\n              },\n            });\n            dispatch({\n              type: ACTIONS.toggleCachedFilterProps,\n              payload: districtSelection.value === ALL_DISTRICTS.value,\n            });\n            storeActiveId({\n              key: 'districtId',\n              value: districtSelection.value,\n              location,\n              state,\n              router,\n            });\n          }\n          dispatch(action);\n        },\n        [ACTIONS.handleActiveSection]: () => {\n          storeActiveId({\n            key: 'sectionId',\n            value: action.payload.value,\n            location,\n            state,\n            router,\n          });\n          dispatch(action);\n        },\n        [ACTIONS.handleActiveStudent]: () => {\n          storeActiveId({\n            key: 'studentId',\n            value: action.payload.value,\n            location,\n            state,\n            router,\n          });\n          dispatch(action);\n        },\n        [ACTIONS.handleActiveEducationPeriod]: () => {\n          storeActiveId({\n            key: 'educationPeriod',\n            value: action.payload.value,\n            location,\n            state,\n            router,\n          });\n          dispatch(action);\n        },\n      })[action.type] || dispatch\n    )(action);\n\nexport const prefix_object = (prefix, old_obj) =>\n  Object.keys(old_obj).reduce((obj, key) => {\n    obj[prefix + key] = old_obj[key];\n    return obj;\n  }, {});\n","import React, { Fragment, useEffect, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { Link, withRouter } from 'react-router';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { Grid } from '@mui/material';\n\nimport log from 'chameleon/ui-stack/utilities/log';\nimport WarningModal from 'chameleon/ui-stack/ui/modals/warning-modal';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\nimport trackerLog from 'legacy/packages/wizards/src/utils/trackerLog';\nimport { clearDataFromLocalStorage } from '../LocalStorage';\nimport { Actions, getBlockedDomains, getIconByAction } from './domains';\nimport './FirewallCheck.scss';\nimport {\n  DebugSecureFirewallCheck,\n  removeDebugKeysFromLocalStorage,\n} from './browser-debug';\nimport { isLockdownBrowser } from '../../components/auth/utils';\n\nconst { areDebugKeysSetInLocalStorage } = DebugSecureFirewallCheck;\nconst INTERVAL_CHECK_TEN_MINUTES_AS_MILLIS = 10 * 60 * 1000;\nexport const FIREWALL_CHECK_KEY = 'secure-firewall-check';\n\nconst SecureFirewallCheck = ({\n  userData,\n  router,\n  featureEnabled,\n  nextCheckHours,\n  intervalMillis = INTERVAL_CHECK_TEN_MINUTES_AS_MILLIS,\n}) => {\n  const [showModal, setShowModal] = useState(false);\n  const initialDomainsState = { warnDomains: [], blockDomains: [] };\n  const [domains, setDomains] = useState(initialDomainsState);\n\n  const isUserLoggedIn = () =>\n    userData.isTeacher ||\n    userData.isStudent ||\n    userData.isCoordinator ||\n    userData.isAdmin;\n\n  const handleConfirm = (hasBlockedDomains) => {\n    setShowModal(false);\n    updateUserAcknowledgement();\n    if (hasBlockedDomains) {\n      window.location.href = ROS_FRONTEND_URL;\n    }\n  };\n\n  const trackDomains = (userInformation, warn, block) => {\n    const userId = userInformation.me.initId;\n    const userRoles = userInformation.me.userRole;\n    const groupIds = userInformation.me.schoolSet.map(\n      (school) => school.initId,\n    );\n    let data = { userId, userRoles, groupIds, warn, block };\n\n    trackerLog('secure_firewallcheck', 'secure_firewallcheck', '/', data);\n  };\n\n  const intervalCheck = () => {\n    if (isCheckNeeded()) {\n      return findBlockedDomains(userData).then(({ warn, block }) => {\n        if (shouldShowModal(warn, block, userHasJustLoggedIn)) {\n          setShowModal(true);\n          setDomains({ warnDomains: warn, blockDomains: block });\n          trackDomains(userData, warn, block);\n        }\n        updateNextCheck(\n          block.length > 0,\n          warn.length > 0,\n          false,\n          dayjs(),\n          nextCheckHours,\n        );\n        return Promise.resolve('performed secure firewall check');\n      });\n    }\n    return Promise.resolve('secure firewall check not needed');\n  };\n\n  useEffect(() => {\n    if (!isUserLoggedIn() || isLockdownBrowser()) return;\n    if (router.location.pathname === '/logout') {\n      log(\n        `user logged out, removing localStorage item \"${FIREWALL_CHECK_KEY}\"`,\n      );\n      clearDataFromLocalStorage(FIREWALL_CHECK_KEY);\n      removeDebugKeysFromLocalStorage();\n      return;\n    }\n    intervalCheck().then((r) => log(r));\n    const intervalId = setInterval(intervalCheck, intervalMillis);\n    return () => {\n      clearInterval(intervalId);\n      setShowModal(false);\n      setDomains(initialDomainsState);\n    };\n  }, []);\n\n  useEffect(() => {\n    if (!featureEnabled) {\n      log(`Secure Firewall Check is not enabled`);\n    }\n  }, [featureEnabled]);\n\n  if (showModal) {\n    let hasBlockedDomains = domains.blockDomains.length > 0;\n    const confirmLabel = hasBlockedDomains\n      ? `RETURN TO AP ${userData.isStudent ? 'STUDENTS' : 'CENTRAL'}`\n      : `CONTINUE TO AP CLASSROOM`;\n\n    return (\n      <WarningModal\n        title=\"Warning\"\n        onSuccess={() => handleConfirm(hasBlockedDomains)}\n        content={{\n          btnPrimary: confirmLabel,\n        }}\n      >\n        <WarningContent\n          warnDomains={domains.warnDomains}\n          blockDomains={domains.blockDomains}\n        />\n      </WarningModal>\n    );\n  }\n\n  // https://reactjs.org/docs/jsx-in-depth.html#booleans-null-and-undefined-are-ignored\n  return <div />;\n};\n\nconst WarningContent = ({ warnDomains, blockDomains }) => (\n  <Fragment>\n    <p>\n      AP Classroom leverages services that your web browser is currently\n      blocking. By safe-listing the following site domain(s), you’ll be able to\n      access all AP resources. If you are using a school device or network, you\n      may have to contact your network administrator for assistance.\n    </p>\n    <div className=\"SecureFirewallCheck__listDomains\">\n      {warnDomains.map((d) => (\n        <p key={d}>\n          {getIconByAction(Actions.WARN)} {d}\n        </p>\n      ))}\n      {blockDomains.map((d) => (\n        <p key={d}>\n          {getIconByAction(Actions.BLOCK)} {d}\n        </p>\n      ))}\n    </div>\n    <div>\n      <p className={'SecureFirewallCheck__about-results'}>About your results</p>\n      {warnDomains.length > 0 && blockDomains.length > 0 && (\n        <WarningAndBlockedMessage />\n      )}\n      {warnDomains.length > 0 && blockDomains.length === 0 && (\n        <WarningOnlyMessage />\n      )}\n      {warnDomains.length === 0 && blockDomains.length > 0 && (\n        <BlockedOnlyMessage />\n      )}\n    </div>\n  </Fragment>\n);\n\nconst WarningOnlyMessage = () => (\n  <p>\n    <b>\n      If you do not safe-list or unblock these site(s), some features will not\n      work or be available.{' '}\n    </b>\n    To get additional information on the functionality provided by these sites,\n    visit the <Link to=\"/readinesscheck\">AP Classroom readiness check</Link>.\n  </p>\n);\n\nconst BlockedOnlyMessage = () => (\n  <p>\n    <b>\n      If you do not safe-list or unblock these site(s), you will not be able to\n      enter AP Classroom.{' '}\n    </b>\n    To get additional information on the functionality provided by these sites,\n    visit the <Link to=\"/readinesscheck\">AP Classroom readiness check</Link>.\n  </p>\n);\n\nconst WarningAndBlockedMessage = () => (\n  <React.Fragment>\n    <Grid container>\n      <Grid item xs={1}>\n        {getIconByAction(Actions.WARN)}\n      </Grid>\n      <Grid item xs={11}>\n        <p>\n          If you do not safe-list or unblock this site, use AP Classroom with\n          caution: some features will not work as intended or be available.\n        </p>\n      </Grid>\n    </Grid>\n\n    <Grid container>\n      <Grid item xs={1}>\n        {getIconByAction(Actions.BLOCK)}\n      </Grid>\n      <Grid item xs={11}>\n        <p>\n          If you do not safe-list or unblock this site, you will not be able to\n          enter AP Classroom.\n        </p>\n      </Grid>\n    </Grid>\n    <br />\n    <p>\n      To get additional information on the functionality provided by these\n      sites, visit the{' '}\n      <Link to=\"/readinesscheck\">AP Classroom readiness check</Link>.\n    </p>\n  </React.Fragment>\n);\n\nexport const getRoleAndPrograms = (data) => {\n  if (data.isStudent) {\n    return {\n      role: UserRoles.STUDENT,\n      programs: new Set(data.studentSubjects.map((s) => s.subjectProgram)),\n    };\n  } else if (data.isTeacher) {\n    return {\n      role: UserRoles.TEACHER,\n      programs: new Set(data.teacherSubjects.map((s) => s.subjectProgram)),\n    };\n  } else if (data.isAdmin) {\n    return {\n      role: UserRoles.ADMIN,\n      programs: new Set(data.adminSubjects.map((s) => s.subjectProgram)),\n    };\n  } else if (data.isCoordinator) {\n    // coordinator shares the same subjects as admin\n    return {\n      role: UserRoles.COORDINATOR,\n      programs: new Set(data.adminSubjects.map((s) => s.subjectProgram)),\n    };\n  }\n\n  log(`user has no role and programs in ${JSON.stringify(data)}`);\n  return { role: '', programs: new Set() };\n};\n\nconst sessionData = JSON.parse(sessionStorage.getItem('apc_user'));\n\nconst userHasJustLoggedIn =\n  sessionData &&\n  (sessionData._lastPageUrl === `${FYM_FRONTEND_URL}/subjects/preview` ||\n    sessionData._lastPageUrl === FYM_FRONTEND_URL);\n\nexport const shouldShowModal = (warnDomains, blockDomains) => {\n  let shouldShowModal = false;\n  if (warnDomains.length > 0 || blockDomains.length > 0) {\n    shouldShowModal = true;\n  }\n  return shouldShowModal;\n};\n\nexport const isCheckNeeded = (from = dayjs()) => {\n  if (areDebugKeysSetInLocalStorage()) return true;\n\n  let stored = JSON.parse(localStorage.getItem(FIREWALL_CHECK_KEY));\n  if (stored === null) return true;\n\n  return (\n    stored.hasBlockingDomains ||\n    (stored.hasWarningDomains && !stored.userConfirmedBlockedDomains) ||\n    from.isAfter(dayjs(stored.nextCheckAfter))\n  );\n};\n\nexport const updateNextCheck = (\n  hasBlockingDomains,\n  hasWarningDomains,\n  userConfirmedBlockedDomains = false,\n  from = dayjs(),\n  numHours = 24,\n) => {\n  const nextCheckAfter = from.add(numHours, 'h');\n  const localStore = {\n    hasBlockingDomains,\n    hasWarningDomains,\n    userConfirmedBlockedDomains,\n    nextCheckAfter: nextCheckAfter.toString(),\n  };\n  log(`secure firewall status ${JSON.stringify(localStore)}`);\n  localStorage.setItem(FIREWALL_CHECK_KEY, JSON.stringify(localStore));\n  return nextCheckAfter;\n};\n\nconst updateUserAcknowledgement = () => {\n  let stored = JSON.parse(localStorage.getItem(FIREWALL_CHECK_KEY));\n  if (stored.hasWarningDomains) {\n    let updated = Object.assign({}, stored, {\n      userConfirmedBlockedDomains: true,\n    });\n    localStorage.setItem(FIREWALL_CHECK_KEY, JSON.stringify(updated));\n  }\n};\n\nexport const findBlockedDomains = (userData) => {\n  const { role, programs } = getRoleAndPrograms(userData);\n  return getBlockedDomains(role, programs);\n};\n\nexport default compose(\n  withRouter,\n  connect((state) => ({\n    featureEnabled: state.featureFlag.secure_firewall_check_enable,\n    nextCheckHours:\n      state.featureFlag.secure_firewall_check_interval_duration_hours,\n  })),\n)(SecureFirewallCheck);\n","const SECURE_FIREWALL_DOMAINS_BEHAVIOR =\n  'debug.secure-firewall-domains-behavior';\n\nexport const DebugSecureFirewallCheck = {\n  SECURE_FIREWALL_DOMAINS_BEHAVIOR,\n  getDebugFirewallCheckDomainsBehavior: () => {\n    const domainBehaviors = window.localStorage.getItem(\n      SECURE_FIREWALL_DOMAINS_BEHAVIOR,\n    );\n    if (domainBehaviors === null) return {};\n    return JSON.parse(domainBehaviors);\n  },\n  areDebugKeysSetInLocalStorage: () => {\n    // debugging is disabled in production\n    if (process.env.ENV === 'prod') return false;\n\n    return !!localStorage.getItem(SECURE_FIREWALL_DOMAINS_BEHAVIOR);\n  },\n};\n\nexport const removeDebugKeysFromLocalStorage = () => {\n  window.localStorage.removeItem(SECURE_FIREWALL_DOMAINS_BEHAVIOR);\n};\n","import { AP, PreAP } from '../../constants/types';\nimport React from 'react';\nimport { DebugSecureFirewallCheck } from './browser-debug';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\n\nconst { getDebugFirewallCheckDomainsBehavior } = DebugSecureFirewallCheck;\nexport const getDomains = (userRole, programs) =>\n  domains.filter((domain) => {\n    const isValidForUserRole = domain.userRoles.has(userRole);\n    const isValidForAnyProgram = programs\n      .map((program) => domain.programs.has(program))\n      .includes(true);\n    return isValidForUserRole && isValidForAnyProgram;\n  });\n\nconst debugDomainBehaviors = getDebugFirewallCheckDomainsBehavior();\nexport const getDomainsToActions = (userRole, programs) =>\n  new Map(\n    getDomains(userRole, programs).map((entry) => {\n      let debugDomain = debugDomainBehaviors[entry.url];\n      const action =\n        debugDomain !== undefined ? debugDomain : entry.actionOnBlock;\n      if (debugDomain)\n        log(`debug: ${entry.url} has rule to ${debugDomain}, if blocked`);\n      return [entry.url, action];\n    }),\n  );\n\nconst [DOMAIN_LOADED, DOMAIN_NOT_LOADED] = [true, false];\nexport const fetchDomains = (domains = []) => {\n  const loaded = (domain) => ({ domain, loaded: DOMAIN_LOADED });\n  const failed = (domain) => ({ domain, loaded: DOMAIN_NOT_LOADED });\n  const domainPromises = domains.map(\n    (domain) =>\n      // the axios library does not produces expected behavior with no-cors, falling back to fetch\n      new Promise((res) =>\n        fetch(`//${domain}`, { method: 'HEAD', mode: 'no-cors' })\n          .then(() => res(loaded(domain)))\n          .catch(() => res(failed(domain))),\n      ),\n  );\n  return Promise.all(domainPromises);\n};\n\nexport const getBlockedDomains = (userRole, programs) => {\n  const domainsToCheck = getDomainsToActions(userRole, [...programs]);\n  const domainsToLoadingStatus = fetchDomains(\n    Array.from(domainsToCheck.keys()),\n  );\n\n  return domainsToLoadingStatus.then((entries) => {\n    let warningDomains = [];\n    let blockingDomains = [];\n\n    entries.forEach((entry) => {\n      if (\n        entry.loaded === DOMAIN_NOT_LOADED &&\n        domainsToCheck.get(entry.domain) === Actions.BLOCK\n      ) {\n        blockingDomains = [...blockingDomains, entry.domain];\n      } else if (\n        entry.loaded === DOMAIN_NOT_LOADED &&\n        domainsToCheck.get(entry.domain) === Actions.WARN\n      ) {\n        warningDomains = [...warningDomains, entry.domain];\n      }\n    });\n\n    return Promise.resolve({\n      [Actions.WARN]: warningDomains,\n      [Actions.BLOCK]: blockingDomains,\n    });\n  });\n};\n\nexport const Actions = {\n  WARN: 'warn',\n  BLOCK: 'block',\n};\n\nconst domains = [\n  {\n    url: 'authorapi.learnosity.com',\n    programs: new Set([AP]),\n    userRoles: new Set([\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: `reports-${LEARNOSITY_REGION}.learnosity.com`,\n    programs: new Set([AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: `items-${LEARNOSITY_REGION}.learnosity.com`,\n    programs: new Set([PreAP, AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: `questions-${LEARNOSITY_REGION}.learnosity.com`,\n    programs: new Set([PreAP, AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: `assess-${LEARNOSITY_REGION}.learnosity.com`,\n    programs: new Set([PreAP, AP]),\n    userRoles: new Set([UserRoles.STUDENT, UserRoles.TEACHER]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: `events-${LEARNOSITY_REGION}.learnosity.com`,\n    programs: new Set([AP]),\n    userRoles: new Set([UserRoles.STUDENT, UserRoles.TEACHER]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: 'sdk.split.io',\n    programs: new Set([PreAP, AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.BLOCK,\n  },\n  {\n    url: 'cdn.split.io',\n    programs: new Set([PreAP, AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.BLOCK,\n  },\n  {\n    url: 'wistia.com',\n    programs: new Set([AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: 'fast.wistia.net',\n    programs: new Set([AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: 'status.us10.clickhelp.co',\n    programs: new Set([AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: 'cb.academicmerit.com',\n    programs: new Set([PreAP, AP]),\n    userRoles: new Set([\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n  {\n    url: 'apsources.collegeboard.org',\n    programs: new Set([AP]),\n    userRoles: new Set([\n      UserRoles.STUDENT,\n      UserRoles.TEACHER,\n      UserRoles.COORDINATOR,\n      UserRoles.ADMIN,\n    ]),\n    actionOnBlock: Actions.WARN,\n  },\n];\n\nexport const getIconByAction = (action) => {\n  if (action === Actions.WARN) {\n    return (\n      <span className=\"FirewallCheck__icon FirewallCheck__icon--warning\">\n        !\n      </span>\n    );\n  } else if (action === Actions.BLOCK) {\n    return (\n      <span className=\"FirewallCheck__icon FirewallCheck__icon--blocked\">\n        X\n      </span>\n    );\n  }\n};\n\nexport default {\n  UserRoles,\n  getBlockedDomains,\n  getIconByAction,\n  Actions,\n  __testing__: {\n    getDomains,\n    getDomainsToActions,\n    fetchDomains,\n    domains,\n  },\n};\n","import {\n  createNetworkInterface,\n  IntrospectionFragmentMatcher,\n} from 'apollo-client';\nimport bootstrapApollo from 'legacy/src/bootstrap/apollo';\n\nimport fragmentMatcher from 'legacy/packages/unit-outline/src/utils/fragmentMatcher';\nimport introspectionQueryResultData from 'legacy/src/fragmentTypes.json';\n\nconst fymFragmentMatcher = new IntrospectionFragmentMatcher({\n  introspectionQueryResultData,\n});\n\n/**\n * Create client\n * @param {object} props Client properties\n * @return Bootstraped apollo client\n * */\nconst createClient = (props) => {\n  const { URI, fragmentMatcher, context, key } = props;\n  const endpoint = context === 'wizardClient' ? '/graphql/' : '/graphql';\n\n  const networkInterface = createNetworkInterface({\n    uri: `${URI}${endpoint}`,\n  });\n\n  return bootstrapApollo(\n    networkInterface,\n    fragmentMatcher,\n    key === 'impersonator-fym',\n  );\n};\n\n/**\n * Client URI's object list\n * */\nexport const unitsClient = createClient({\n  key: 'units',\n  context: 'unitsClient',\n  URI: FYM_UNITS_BACKEND_URL,\n  fragmentMatcher,\n});\n\nexport const fymClient = createClient({\n  key: 'fym',\n  context: 'fymClient',\n  URI: FYM_BACKEND_URL,\n  fragmentMatcher: fymFragmentMatcher,\n});\n\nexport const impersonatorFymClient = createClient({\n  key: 'impersonator-fym',\n  context: 'impersonatorFymClient',\n  URI: FYM_BACKEND_URL,\n  fragmentMatcher: fymFragmentMatcher,\n});\n\nexport const reportsClient = createClient({\n  key: 'reports',\n  context: 'reportsClient',\n  URI: FYM_BACKEND_REPORTING_URL,\n});\n\nexport const wizardsClient = createClient({\n  key: 'wizards',\n  context: 'wizardClient',\n  URI: FYM_WIZARDS_BACKEND_URL,\n});\n","import React from 'react';\nimport { Link } from 'react-router';\nimport _ from 'lodash';\nimport rison from 'rison';\nimport btn from './btn';\n\nexport const decodeTags = (tags) =>\n  tags ? rison.decode_object(tags) : undefined;\n\nexport const decodeArray = (arr) => (arr ? rison.decode_array(arr) : undefined);\n\nexport const flattenTags = (tags) =>\n  _(decodeTags(tags))\n    .map((t) => (_.isArray(t) ? _.sortBy(t).join(',') : t))\n    .sort()\n    .join('|');\n\nexport const flattenArray = (arr) => (decodeArray(arr) || []).sort().join('|');\n\nexport const nextLink = (to, params, query) => {\n  const page = parseInt(query.page, 10);\n  const curPage = !Number.isNaN(page) ? page : 0;\n\n  const path = `/${params.subject}/${to}`;\n  const nextQuery = { ...query, page: curPage + 1 };\n  return (\n    <div className=\"next-page-button\">\n      <Link\n        data-test-next-page-button\n        to={{ pathname: path, query: nextQuery }}\n        className={btn({ color: 'green', arrow: 'right', size: 'small' })}\n      >\n        Next\n      </Link>\n    </div>\n  );\n};\n\nexport const prevLink = (to, params, query) => {\n  const page = parseInt(query.page, 10);\n  const curPage = !Number.isNaN(page) ? page : 0;\n\n  const path = `/${params.subject}/${to}`;\n  const prevQuery = { ...query, page: curPage - 1 };\n  return (\n    <div className=\"prev-page-button\">\n      <Link\n        data-test-prev-page-button\n        to={{ pathname: path, query: prevQuery }}\n        className={btn({ color: 'green', arrow: 'left', size: 'small' })}\n      >\n        Prev\n      </Link>\n    </div>\n  );\n};\n\nexport const pageLink = (to, params, query, pageNumber) => {\n  const path = `/${params.subject}/${to}`;\n  const pageQuery = { ...query, page: pageNumber };\n  return { pathname: path, query: pageQuery };\n};\n\n// TODO: rewrite this component to take only necessary params, not entire component\nexport const changeFilters = (component, tags, inclusionFilters) => {\n  const { props } = component;\n  const tagQuery = _.omitBy(tags, _.isEmpty);\n  const query = _.omit(props.location.query, [\n    'tags',\n    'page',\n    'excludeHigher',\n    'includeOnly',\n  ]);\n  let { pathname } = window.location;\n\n  if (!_.isEmpty(tagQuery)) {\n    if (inclusionFilters) {\n      const { excludeHigher, includeOnly } = _.omitBy(\n        inclusionFilters,\n        _.isEmpty,\n      );\n      if (excludeHigher) {\n        query.excludeHigher = rison.encode_array(excludeHigher);\n      }\n      if (includeOnly) {\n        query.includeOnly = rison.encode_array(includeOnly);\n      }\n    }\n\n    query.tags = rison.encode_object(tagQuery);\n    if (\n      query.tags !== props.router.location.query.tags ||\n      query.excludeHigher !== props.router.location.query.excludeHigher ||\n      query.includeOnly !== props.router.location.query.includeOnly\n    ) {\n      props.router.push({\n        pathname,\n        query,\n      });\n    }\n  } else {\n    const newQuery = Object.assign({}, query);\n    delete newQuery.tags;\n\n    props.router.push({\n      pathname,\n      query: newQuery,\n    });\n  }\n};\n\nexport const changeFullTextSearch = (component, { searchTerm }) => {\n  const { props } = component;\n  const {\n    router,\n    location: { query },\n  } = props;\n  const { pathname } = window.location;\n  const newQuery = { ..._.omit(query, 'page') };\n\n  if (searchTerm !== null) {\n    newQuery.searchTerm = searchTerm;\n  } else {\n    delete newQuery.searchTerm;\n  }\n\n  router.push({\n    pathname,\n    query: newQuery,\n  });\n};\n","import { createRoutine } from 'redux-saga-routines';\n\nexport const fetchTags = createRoutine('assessment/FETCH_TAGS');\n","import createReducer from 'legacy/src/shared/util/createReducer';\nimport { fetchTags } from './actions';\n\nconst initialState = {\n  data: [],\n  loading: false,\n};\n\nconst reducer = createReducer(initialState, {\n  [fetchTags.request]: (state) => ({\n    ...state,\n    loading: true,\n  }),\n  [fetchTags.success]: (state, { payload }) => ({\n    ...state,\n    loading: false,\n    data: payload,\n  }),\n  [fetchTags.failure]: (state) => ({\n    ...state,\n    loading: false,\n  }),\n});\n\nexport default reducer;\n","import { takeLatest, all } from 'redux-saga/effects';\nimport apiSaga from 'legacy/src/shared/util/apiSagaGenerator';\n\nimport { fetchTags } from './actions';\n\nexport function* fetchTagsSaga({ payload }) {\n  const { subjectId, itemId, questionDetailsToogleRationale, educationPeriod } =\n    payload;\n  let args = '';\n  args += `${!!args ? `${args} + '&'` : '?'}${\n    !!educationPeriod ? `education_period=${educationPeriod}` : ''\n  }`;\n  yield apiSaga(fetchTags, {\n    url: `tagging/api/subject/${subjectId}/items/${itemId}/${args}`,\n    callback: questionDetailsToogleRationale,\n    callbackValue: true,\n  });\n}\n\nexport default function* itemTagsSaga() {\n  yield all([takeLatest(fetchTags.TRIGGER, fetchTagsSaga)]);\n}\n","export const saveToLocalStorage = (key, data) =>\n  window.localStorage.setItem(key, JSON.stringify(data));\n\nexport const retrieveFromLocalStorage = (key) =>\n  JSON.parse(window.localStorage.getItem(key));\n\nexport const clearDataFromLocalStorage = (key) =>\n  window.localStorage.removeItem(key);\n","/**\n * TODO: Fix MobileMedia call on every file import.\n *\n * const MobileMedia = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT}px)`);\n * export { MobileMedia };\n *\n * This is executed on every import of the file. While the app works, this makes\n * testing a pain in the ass.\n *\n * Update utility/windowMatchMedia.js if possible after this is done.\n * */\n\nimport React from 'react';\nimport Responsive from 'react-responsive';\nimport breakpoints from 'legacy/src/styles/utility/Breakpoints.module.scss';\nimport { mapValues } from 'lodash';\n\nconst { mobile, small, smallplus, medium, large } = mapValues(\n  breakpoints,\n  Number,\n);\nconst DUMMY_MAX_WIDTH = 9999;\nconst MOBILE_BREAKPOINT = mobile;\n\n/**\n * Draws responsive view based on the screens\n * @param {array} screens List of condition strings\n * */\nconst ResponsiveView = React.forwardRef((props, ref) => {\n  const { screens, children, ...otherProps } = props;\n\n  const resolutions = {\n    mobile: {\n      minWidth: 0,\n      maxWidth: medium - 1,\n    },\n    desktop: {\n      minWidth: medium,\n      maxWidth: DUMMY_MAX_WIDTH,\n    },\n    'x-small': {\n      minWidth: 0,\n      maxWidth: small - 1,\n    },\n    small: {\n      minWidth: small,\n      maxWidth: smallplus - 1,\n    },\n    smallplus: {\n      minWidth: smallplus,\n      maxWidth: medium - 1,\n    },\n    medium: {\n      minWidth: medium,\n      maxWidth: large - 1,\n    },\n    large: {\n      minWidth: large,\n      maxWidth: DUMMY_MAX_WIDTH,\n    },\n  };\n\n  const queryRes = Object.keys(resolutions).reduce(\n    (screenSizes, currentResolutionKey) => {\n      if (screens.includes(currentResolutionKey)) {\n        const currentResolution = resolutions[currentResolutionKey];\n\n        return {\n          minWidth: Math.min(screenSizes.minWidth, currentResolution.minWidth),\n          maxWidth: Math.max(screenSizes.maxWidth, currentResolution.maxWidth),\n        };\n      }\n\n      return screenSizes;\n    },\n    { minWidth: DUMMY_MAX_WIDTH, maxWidth: 0 },\n  );\n\n  const { minWidth, maxWidth } = queryRes;\n  const maxSize = maxWidth === DUMMY_MAX_WIDTH ? null : maxWidth;\n\n  let query = `(min-width: ${minWidth}px)`;\n  if (maxSize) {\n    query = `(min-width: ${minWidth}px) and (max-width: ${maxWidth}px)`;\n  }\n\n  return (\n    <Responsive query={query}>\n      {(matches) => {\n        if (matches) {\n          return React.Children.toArray(children).map((child, index) =>\n            React.cloneElement(child, {\n              ...otherProps,\n              key: `responsive-view-${index}`,\n              ref,\n            }),\n          );\n        }\n\n        return null;\n      }}\n    </Responsive>\n  );\n});\nResponsiveView.displayName = 'ResponsiveView';\n\nconst MobileMedia = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT}px)`);\nconst TabletMedia = window.matchMedia(`(max-width: ${medium}px)`);\nexport { MobileMedia, TabletMedia };\n\nexport default ResponsiveView;\n","import React, { Component, type CSSProperties } from 'react';\nimport './StackedBar.scss';\nimport cn from 'classnames';\nimport { STATUS_ICON } from './progressHelpers';\nimport { Icon } from 'legacy/packages/ft-cb';\nimport PopOverImport from 'chameleon/ui-stack/ui/base/popover';\n\nconst PopOver = PopOverImport as React.ComponentType<{\n  className?: string;\n  size?: string;\n  accessibility?: Record<string, string>;\n  trigger?: React.ReactNode;\n  children?: React.ReactNode;\n}>;\nimport { v4 as uuidv4 } from 'uuid';\n\nexport interface StackData {\n  status: string;\n  label?: string;\n  value: number;\n  text?: string | number;\n}\n\ninterface StackProps {\n  value: number | string;\n  classStatus?: string;\n  style?: CSSProperties;\n  size?: 'large' | 'small';\n}\n\nexport const Stack = ({ value, classStatus, style, size }: StackProps) => {\n  if (value === 0) return null;\n  let stackValue: number | string = value;\n  /**\n   * FY-8265: sends progress.not_started = -1 as a case\n   * when a class has no students for an assigned assessment.\n   * Therefore show the Stack with a stack value of 0 as default\n   */\n  if (value === -1) {\n    stackValue = 0;\n  }\n\n  const getBarStyle = (size?: 'large' | 'small') => {\n    const classNames =\n      'flex text-white rounded-full justify-center items-center px-6';\n    return size === 'large'\n      ? `${classNames} h-14 bg-gray-600 w-full`\n      : `${classNames} h-10 bg-gray-600 w-80`;\n  };\n\n  if (stackValue === 0) {\n    return <span className={`${getBarStyle(size)}`}>{stackValue}</span>;\n  }\n\n  return (\n    <div className={cn('cursor-pointer stack', classStatus)} style={style}>\n      <span className=\"stack-value\" data-test-stack-value={classStatus}>\n        {stackValue}\n      </span>\n    </div>\n  );\n};\n\ninterface StackedBarProps {\n  stacks?: StackData[];\n  showLabels?: boolean;\n  isSmall?: boolean;\n  alwaysSmall?: boolean;\n  showMovedStudentIndicator?: boolean;\n  isAutoHeight?: boolean;\n  isLoading?: boolean;\n}\n\nclass StackedBar extends Component<StackedBarProps> {\n  static defaultProps: StackedBarProps = {\n    showLabels: false,\n    isSmall: false,\n    alwaysSmall: false,\n    isLoading: false,\n    stacks: [],\n    showMovedStudentIndicator: false,\n    isAutoHeight: false,\n  };\n\n  render() {\n    const {\n      showLabels,\n      stacks = [],\n      isSmall,\n      isLoading,\n      showMovedStudentIndicator,\n      alwaysSmall,\n      isAutoHeight,\n    } = this.props;\n\n    const availableStacks = stacks.filter(\n      (stack) => stack.text || stack.value !== 0,\n    );\n\n    return (\n      <div\n        className={cn(\n          'stacked-bar',\n          { '--smaller': isSmall },\n          { '--loading': isLoading },\n          { '--auto-height': isAutoHeight },\n        )}\n      >\n        <div className=\"bar\">\n          {/* single stack of size 0 when class is empty */}\n          {stacks.length === 1 && stacks[0].value === 0 && (\n            <Stack value={-1} size={alwaysSmall ? 'small' : 'large'} />\n          )}\n\n          {availableStacks.map((stack, index) => {\n            const isFirst = index === 0;\n            const isLast = index === availableStacks.length - 1;\n            // because key of 'incorrect' doesn't change when you change questions, react thinks the element hasn't\n            // changed even though the props have changed, so it never updates the styles.\n            // This ends up leaving rounded borders in the inside stacks\n            const uuid = `${uuidv4()}_${stack.status}`;\n            return (\n              <Stack\n                key={uuid}\n                classStatus={stack.status}\n                value={stack.text ?? stack.value}\n                style={{\n                  flexGrow: stack.value === -1 ? 1 : stack.value,\n                  borderTopLeftRadius: isFirst ? '20px' : 'none',\n                  borderBottomLeftRadius: isFirst ? '20px' : 'none',\n                  borderTopRightRadius: isLast ? '20px' : 'none',\n                  borderBottomRightRadius: isLast ? '20px' : 'none',\n                }}\n              />\n            );\n          })}\n        </div>\n\n        {showLabels && (\n          <div className=\"labels\">\n            {stacks.map((stack) => {\n              const status = (\n                STATUS_ICON as Record<\n                  string,\n                  { icon: string; label: string; className: string }\n                >\n              )[stack.status];\n\n              return (\n                stack.value !== 0 && (\n                  <span className=\"label\" key={stack.status}>\n                    <Icon\n                      name={status.icon}\n                      size=\"1.2em\"\n                      className={status.className}\n                    />\n                    {status.label}\n                  </span>\n                )\n              );\n            })}\n            {showMovedStudentIndicator && (\n              <span className=\"label label--moved-student-indicator\">\n                <span className=\"label-text italic\">\n                  *From student&apos;s previous class section\n                </span>\n                <PopOver\n                  className=\"popoverIndicator\"\n                  size=\"medium\"\n                  accessibility={{\n                    'aria-label': 'info',\n                    'aria-describedby': 'info-tooltip',\n                  }}\n                  trigger={<Icon name=\"info\" />}\n                >\n                  <p id=\"info-tooltip\">\n                    {`When students transfer class sections, their results on common\n                    assessments (all Personal Progress Checks and any Question Bank\n                    quizzes assigned to both sections), transfer with them. An\n                    asterisk identifies any students who have completed your\n                    assignment in a prior class section, with the date it was\n                    submitted or scored for reference.`}\n                  </p>\n                </PopOver>\n              </span>\n            )}\n          </div>\n        )}\n      </div>\n    );\n  }\n}\n\nexport default StackedBar;\n","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isEqual } from 'lodash';\nimport cn from 'classnames';\nimport PopOver from 'chameleon/ui-stack/ui/base/popover';\nimport Button from 'chameleon/ui-stack/ui/base/button';\nimport PracticeSkillBox from 'chameleon/packages/units/components/PracticeSkillBox';\nimport { setMathJaxTypeset } from 'chameleon/src/utility/utils';\n\nimport './TagWithDescriptionPopover.scss';\n\nclass TagWithDescriptionPopover extends Component {\n  static propTypes = {\n    tags: PropTypes.array,\n  };\n\n  shouldComponentUpdate({ tags }) {\n    return !isEqual(this.props.tags, tags);\n  }\n\n  renderTags(tag, index) {\n    const { isSkillChip, tagClassName } = this.props;\n\n    // In general, tags with descriptions have different values for each field, where tags\n    // without descriptions have the same value for all fields. AP Insight CA Assessment/BB Quiz tags\n    // are the exception in that the title and description are the same, but the label is shorter.\n    const tagHasDescription =\n      tag.description && tag.description.length !== tag.title.length;\n\n    const renderTag = tagHasDescription ? (\n      <PopOver\n        withPortal\n        onContentMount={(contentElementRef) =>\n          setMathJaxTypeset(contentElementRef.current)\n        }\n        trigger={(buttonProps, isOpen, triggerRef) => {\n          if (isSkillChip) {\n            return <PracticeSkillBox label={tag.label.replace('Skill ', '')} />;\n          }\n          return (\n            <Button\n              {...buttonProps}\n              isNaked\n              isLink\n              accessibility={{\n                title: tag.accessibilityTitle,\n              }}\n              className={cn(tagClassName)}\n              ref={triggerRef}\n            >\n              {tag.label}\n            </Button>\n          );\n        }}\n        key={index}\n      >\n        <div\n          className=\"tag_description text-base\"\n          style={{ minWidth: '15rem' }}\n        >\n          {tag.description}\n        </div>\n      </PopOver>\n    ) : (\n      <span\n        className={cn(\n          'label_custom_cell font-normal text-base text-gray-800',\n          tagClassName,\n        )}\n        key={index}\n      >\n        {tag.label}\n      </span>\n    );\n    return renderTag;\n  }\n\n  render() {\n    const { tags } = this.props;\n    return (\n      <div data-test-id=\"tag-wrapper\" className=\"flex flex-row flex-wrap gap-2\">\n        {tags && tags.map((tag, index) => this.renderTags(tag, index))}\n      </div>\n    );\n  }\n}\n\nexport default TagWithDescriptionPopover;\n","/**\n * Return, whether the user is on the login page.\n * @param pathname The pathname to check.\n */\nconst isOnLogin = (pathname) => pathname.includes('login');\n\n/**\n * Return, whether the user is on the logout page.\n * @param pathname The pathname to check.\n */\nconst isOnLogout = (pathname) => pathname.includes('logout');\n\n/**\n * Return, whether the user is on the join page.\n * @param pathname The pathname to check.\n */\nconst isOnJoin = (pathname) => pathname.includes('join');\n\n/**\n * Return, whether the user is on the root page.\n * @param pathname The pathname to check.\n */\nconst isOnRoot = (pathname) => pathname === '/';\n\nexport { isOnLogin, isOnLogout, isOnJoin, isOnRoot };\n","import { UserRoles } from 'chameleon/legacy/src/constants/common';\n\n/**\n * Class for user roles\n * */\nexport const userRoles = {\n  _roles: [],\n\n  /*\n   * Stores the roles as private\n   * @param {array} roles\n   * */\n  set(roles) {\n    this._roles = roles || this._roles;\n\n    return this;\n  },\n  /**\n   * Checks if user has admin role\n   * @return {boolean} true/false\n   * */\n  isAdmin() {\n    return this._roles.includes(UserRoles.ADMIN);\n  },\n  /**\n   * Checks if user has coordinator role\n   * @return {boolean} true/false\n   **/\n  isCoordinator() {\n    return this._roles.includes(UserRoles.COORDINATOR);\n  },\n  /**\n   * Checks if user has staff role\n   * @return {boolean} true/false\n   * */\n  isStaff() {\n    return this._roles.includes(UserRoles.STAFF);\n  },\n  /**\n   * Checks if user has student role\n   * @return {boolean} true/false\n   * */\n  isStudent() {\n    return this._roles.includes(UserRoles.STUDENT);\n  },\n  /**\n   * Checks if user has teacher role\n   * @return {boolean} true/false\n   * */\n  isTeacher() {\n    return this._roles.includes(UserRoles.TEACHER);\n  },\n  /**\n   * Checks if user has demo role\n   * @return {boolean} true/false\n   * */\n  isDemo() {\n    return this._roles.includes(UserRoles.DEMO);\n  },\n};\n","import dayjs from 'dayjs';\nimport dateTimeFormat from './DateTime';\nimport { ASSESSMENTS } from 'chameleon/ui-stack/utilities/copy';\n\nconst NOW_OPEN = ASSESSMENTS.NOW_OPEN;\nconst isOpen = (a) => a.status === 'opened';\nexport const DASH = '—';\n\n/**\n * Outputs formatted Date with a fallback\n * @param {object} a - Assignment object\n * @param {string} preset - formatting preset\n * @param {string} fallback - fallback text, when date is not present.\n * @param {boolean} isStudent - if start date is present and passed the current date - change it to be 'Now Open'\n */\nexport function assignmentStartDate(\n  a,\n  preset,\n  fallback = DASH,\n  isStudent = false,\n  nowOpenLabel = NOW_OPEN,\n) {\n  if (!a) return fallback;\n\n  /* in some cases we have old results which don't have a starts_at date. Ideally starts_at is always present */\n  const startsAtDate = a.starts_at || a.startsAt;\n\n  if (!startsAtDate && !a.opened) {\n    return fallback;\n  }\n  const formattedStartDate = dateTimeFormat(startsAtDate, preset, a.timezone);\n  const formattedOpenedDate = a.opened\n    ? dateTimeFormat(a.opened, preset, a.timezone)\n    : fallback;\n  const date = startsAtDate ? formattedStartDate : formattedOpenedDate;\n\n  return isStudent && isOpen(a) ? nowOpenLabel : date;\n}\n\n/**\n * Outputs formatted Date with a fallback\n * @param {object} a - Assignment object\n * @param {string} preset - formatting preset\n * @param {string} fallback - fallback text, when date is not present.\n * @param {boolean} isStudent - if start date is present and passed the current date - change it to be 'Now Open'\n */\nexport function assignmentDueDate(\n  a,\n  preset = 'date',\n  fallback = DASH,\n  isStudent = false,\n  nowOpenLabel = NOW_OPEN,\n) {\n  if (!a) return fallback;\n\n  /* in some cases we have old results which don't have a due_at date. Ideally it is always present */\n  const dueAtDate = a.due_at || a.dueAt;\n\n  if (!dueAtDate && !a.closed) {\n    return isStudent && isOpen(a) ? nowOpenLabel : fallback;\n  }\n\n  if (!dueAtDate && a.closed) return fallback;\n\n  const formattedDueDate = dateTimeFormat(dueAtDate, preset, a.timezone);\n  const formattedClosedDate =\n    isOpen(a) && isStudent\n      ? nowOpenLabel\n      : dateTimeFormat(a.closed, preset, a.timezone);\n  const date = a.closed ? formattedClosedDate : fallback;\n  return dueAtDate ? formattedDueDate : date;\n}\n\n// For preap final exams, the due_at date is acually displayed on the first row (the part 1 row)\n// the due_at date is the start_date from part 2, plus the alotted time for the exam.\nexport function getRelatedAssignmentDueAtDate(relatedAssignment) {\n  const startDate = relatedAssignment && relatedAssignment.starts_at;\n  const relatedAssignmentTime =\n    startDate &&\n    relatedAssignment.timer &&\n    parseInt(relatedAssignment.timer, 10);\n  return startDate\n    ? dayjs(startDate).add(relatedAssignmentTime, 'minute')\n    : null;\n}\n\nexport function dateIsSet(formattedDate, fallback = DASH) {\n  return formattedDate !== fallback;\n}\n","export default () => {\n  window.location.href = `${SSO_LOGIN_URL}?DURL=${window.location.href}`;\n};\n","import _ from 'lodash';\n\nconst defaults = {\n  color: 'blue',\n  size: 'medium',\n};\n\nconst btn = (...options) => {\n  const final = _.defaults(_.defaults({}, ...options), defaults);\n\n  return `btn ${_.map(final, (value, key) => `btn--${key}_${value}`).join(\n    ' ',\n  )}`;\n};\n\nexport default btn;\n","// N.B. endRoute does not work, the code can be buggy\nexport const buildUrl = (routes, endRoute, params, queries) => {\n  let result = '';\n\n  routes.forEach((route) => {\n    let stop = false;\n\n    // if you want to short circuit the build\n    if (stop) {\n      return;\n    }\n\n    if (route.path) {\n      if (route.path === '/') {\n        return;\n      }\n\n      if (endRoute && route.path.includes(endRoute)) {\n        stop = true;\n      }\n\n      const _index = route.path.indexOf(':');\n      if (_index > -1) {\n        const paramIndex = route.path.match(/:(\\w+)($|\\/)/);\n        const newRoute = route.path.replace(\n          `:${paramIndex[1]}`,\n          params[paramIndex[1]],\n        );\n\n        result += `/${newRoute}`;\n      } else {\n        result += `/${route.path}`;\n      }\n    }\n  });\n  if (queries && Object.keys(queries).length > 0) {\n    result += stringifyQuery(queries);\n  }\n  return result;\n};\n\nexport const addQuery = (query, newQuery) => ({ ...query, ...newQuery });\n\nexport const stringifyQuery = (queries) => {\n  let queryStr = '?';\n  Object.keys(queries).forEach((query, key) => {\n    if (key > 0) {\n      queryStr += '&';\n    }\n    queryStr += `${query}=${queries[query]}`;\n  });\n\n  return queryStr;\n};\n","import SplitIOHandler from 'chameleon/ui-stack/utilities/split-io-handler';\n\nexport default function fetchFlags(\n  keys,\n  uid,\n  attributes = {},\n  flagWithConfigOptions = {},\n  listenCallback = null,\n) {\n  return new Promise((resolve, reject) => {\n    const flagHandler = new SplitIOHandler({\n      key: uid || '1',\n      splitName: keys,\n      attributes,\n      ...flagWithConfigOptions,\n      callback: (treatment) => {\n        if (treatment) {\n          resolve(treatment);\n        } else {\n          reject(new Error('P2 Flag error'));\n        }\n      },\n      listenCallback,\n    });\n    flagHandler.invoke();\n  });\n}\n","import sortBy from 'lodash/sortBy';\nimport orderBy from 'lodash/orderBy';\nimport groupBy from 'lodash/groupBy';\nimport flatten from 'lodash/flatten';\nimport maxBy from 'lodash/maxBy';\nimport chunk from 'lodash/chunk';\nimport { QUESTION_TYPES } from '../constants/assignment';\nimport dayjs from 'dayjs';\nimport lodash from 'lodash';\nimport { scoresByStudentId } from 'chameleon/src/utility/utils';\n\n// 2020-01-23: Oliver disabled logs because of OOM errors on clients\n// import log from 'legacy/src/utility/log';\n\nconst { keys } = Object;\n\nexport const STATUS_ICON = {\n  '--default': {\n    icon: 'empty_circle',\n    label: 'Not started',\n    className: 'not-started',\n  },\n  '--in-progress': {\n    icon: 'half_filled_circle',\n    label: 'In progress',\n    className: 'started',\n  },\n  '--submitted': {\n    icon: 'filled_circle',\n    label: 'Submitted',\n    className: 'submitted',\n  },\n  '--available-to-score': {\n    icon: 'filled_circle',\n    label: 'Available to score',\n    className: 'submitted',\n  },\n  '--complete': {\n    icon: 'circle_check_filled',\n    label: 'Scored',\n    className: 'complete circle_check_filled',\n  },\n  not_started: {\n    icon: 'empty_circle',\n    label: 'Not started',\n    className: 'not-started',\n  },\n  started: {\n    icon: 'half_filled_circle',\n    label: 'In progress',\n    className: 'started',\n  },\n  submitted: {\n    icon: 'filled_circle',\n    label: 'Submitted',\n    className: 'submitted',\n  },\n  mcq_scoring: {\n    icon: 'filled_circle',\n    label: 'Submitted',\n    className: 'submitted',\n  },\n  ready_to_score: {\n    icon: 'filled_circle',\n    label: 'Submitted',\n    className: 'submitted',\n  },\n  scoring: {\n    icon: 'filled_circle',\n    label: 'Score started',\n    className: 'scoring',\n  },\n  student_scored: {\n    icon: 'circle_check_filled',\n    label: 'Self-Scored',\n    className: 'complete circle_check_filled',\n  },\n  teacher_and_student_scored: {\n    icon: 'circle_check_filled',\n    label: 'Self-Scored',\n    className: 'complete circle_check_filled',\n  },\n  scored: {\n    icon: 'circle_check_filled',\n    label: 'Scored',\n    className: 'student-scored circle_check_filled',\n  },\n  complete: {\n    icon: 'circle_check_filled',\n    label: 'Scored',\n    className: 'complete circle_check_filled',\n  },\n  no_answer_sheet: {\n    icon: 'minus_in_circle',\n    label: 'No answer sheet',\n    className: 'no-answer-sheet',\n  },\n  answer_sheet_generated: {\n    icon: 'empty_circle',\n    label: 'Answer sheet generated',\n    className: 'answer-sheet-generated',\n  },\n  answer_sheet_issues: {\n    icon: 'half_filled_circle',\n    label: 'Answer sheet issue',\n    className: 'answer-sheet-issues',\n  },\n};\n\nexport const SPP_STATUS_ICON = {\n  not_started: {\n    icon: 'empty_circle',\n    label: 'Not started',\n    className: ' fill-current text-gray-600',\n  },\n  started: {\n    icon: 'half_filled_circle',\n    label: 'Not Submitted',\n    className: ' fill-current text-pink-200',\n  },\n  scored: {\n    icon: 'half_filled_circle',\n    label: 'Not Submitted',\n    className: ' fill-current text-pink-200',\n  },\n  submitted: {\n    icon: 'circle_check_filled',\n    label: 'Submitted',\n    className: ' fill-current text-purple-700',\n  },\n};\n\n/**\n * Get performance level by category.\n *\n * @param  {String} category Name of the category to look for.\n * @return {Object}          PERFORMANCE_LEVELS entry to be used.\n */\n\n/**\n * Take an object of students answers, calculate their mastery\n * and then return sorted list by mastery.\n * @param {Object} list of answers, which has student object in it.\n * @param {Boolean} fallback sorting (sort by name), when categories are same\n * @return {Array}\n **/\n\n/**\n * Created weighed stacks by student quantity,\n * stack with most students has 3 columns and increased flex property\n * @param stacks {Array}\n * @param isWeighted {Boolean}\n * @param columns {Number}\n * @param expandedFlex {Number}\n * @returns {Array}\n */\nexport const createWeightedStacks = (\n  stacks,\n  isWeighted,\n  columns = 3,\n  expandedFlex = 3,\n) => {\n  const stackWithMaxStudents = maxBy(stacks, 'students.length');\n\n  if (stackWithMaxStudents) {\n    const maxStudents = stackWithMaxStudents.students.length;\n\n    return stacks.map((stack) => {\n      const hasAbilityToExpand =\n        maxStudents > columns && stack.students.length === maxStudents;\n\n      const hasExpandedView = Boolean(isWeighted && hasAbilityToExpand);\n\n      const chunkBy =\n        maxStudents >= columns * 2\n          ? Math.round(maxStudents / columns)\n          : columns;\n\n      return {\n        ...stack,\n        studentGroups: hasExpandedView\n          ? chunk(stack.students, chunkBy)\n          : [stack.students],\n        flex: hasExpandedView ? expandedFlex : 1,\n        hasExpandedView,\n      };\n    });\n  }\n\n  return stacks;\n};\n\nexport const studentsSort = (\n  arr,\n  primarySortingAttr = 'learnosityReportScoreParsed',\n  secondarySorts = ['lastName', 'firstName'],\n) => {\n  const grouped = groupBy(arr, primarySortingAttr);\n  const sortedGroupKeys = keys(grouped).sort(\n    (a, b) => parseFloat(b) - parseFloat(a),\n  );\n\n  const sortFallBack = (x) => sortBy(x, secondarySorts);\n\n  // each group which have same score sort by firstName then by lastName\n  return flatten(sortedGroupKeys.map((key) => sortFallBack(grouped[key])));\n};\n\nconst getStudentId = (student) => {\n  const parsed = parseInt(\n    student?.user_id ?? student?.id ?? student?.userId,\n    10,\n  );\n\n  return Number.isNaN(parsed) ? null : parsed;\n};\n\nexport const dedupeStudentsById = (students = []) => {\n  const seen = new Set();\n\n  return students.filter((student) => {\n    const studentId = getStudentId(student);\n\n    if (!studentId || seen.has(studentId)) {\n      return false;\n    }\n\n    seen.add(studentId);\n    return true;\n  });\n};\n\nconst studentsWithoutReport = (students, userIds) =>\n  dedupeStudentsById(students).filter((student) => {\n    const studentId = getStudentId(student);\n    return !userIds.includes(studentId);\n  });\n\nexport const studentsByScoreBracket = ({\n  topLimit = 100,\n  bottomLimit = 0,\n  students = [],\n  reportByUsers = {},\n  itemId,\n  isNoResults,\n  userIds,\n  ignoreUnanswered = false,\n}) => {\n  const uniqueStudents = dedupeStudentsById(students);\n\n  // we can specify exactly what users ids to get from the report or use all from reportByUsers.\n  const userIdsFromReports = (userIds || keys(reportByUsers)).map(parseFloat);\n\n  const studentsSubmitted = userIdsFromReports.reduce((result, userId) => {\n    const reportForUser = reportByUsers[userId];\n\n    if (!reportForUser) {\n      return result;\n    }\n\n    let reportForUserPerItem =\n      itemId && reportForUser.items\n        ? reportForUser.items[itemId]\n        : reportForUser;\n\n    if (!reportForUserPerItem) {\n      // 2020-01-23: Oliver disabled the below logging because it was causing OOM errors on UAT. This situation might\n      // be created by legitimate versions of reporting created by the World History & Geography exams that are created\n      // as a composite, thus creating a false positive. More investigation is necessary, but for today's release, we're\n      // removing this call.\n      // log.error(`Possible Learnosity data inconsistency,\n      // not found report in: ${JSON.stringify(reportByUsers)}\n      // for itemId ${itemId} and student ${userId}`);\n      reportForUserPerItem = {};\n    }\n\n    let { max_score: maxScore, score } = reportForUserPerItem;\n\n    // different reports has different \"not scored\" data, but in sense when no or sero max score\n    // it means we did not set it on scoring interface and learnosity does not know how to score it.\n    const isNotScored =\n      (score === null && maxScore === null) ||\n      (score === '0.00' && maxScore === '0.00');\n    const isAwaitingScore = isNoResults && isNotScored;\n\n    if (score === null && !ignoreUnanswered) {\n      score = '0'; // for MCQ treat un-answered as incorrect\n    }\n\n    // maxScore and score are strings \"5.20\"\n    const percent = (parseFloat(score) / parseFloat(maxScore)) * 100;\n    const isScoreInsideTierValues =\n      bottomLimit <= percent && topLimit + 1 > percent;\n\n    if (isScoreInsideTierValues || isAwaitingScore) {\n      const student = uniqueStudents.find(\n        (s) => s && getStudentId(s) === parseInt(userId, 10),\n      );\n      let meta = {};\n\n      if (!isAwaitingScore) {\n        meta = {\n          userId,\n          learnosityReport: reportForUserPerItem,\n          learnosityReportScoreParsed: parseFloat(score),\n          learnosityReportMaxScore: parseFloat(maxScore),\n          percentCorrect: percent,\n        };\n      }\n\n      result.push({ ...student, ...meta });\n    }\n\n    return result;\n  }, []);\n\n  // for MCQ if no report from learnosity means \"no results\"\n  // for FRQ if no report or \"report with score: null, max_score: null\" considered as \"no results\"\n  // But in general if some report is missing on Learnosity it means student did not submit an assignment.\n  const studentsInTier = studentsSubmitted.concat(\n    isNoResults\n      ? studentsWithoutReport(uniqueStudents, userIdsFromReports)\n      : [],\n  );\n\n  return dedupeStudentsById(studentsInTier);\n};\n\n/**\n *  returns Object of Learnosity Reports By Users\n *  {\n *    \"user-id\": {\n *      ...report\n *    }\n *  }\n * @param reports {Object}\n */\nexport const learnosityReportByUsers = (reports) => {\n  if (!reports || !reports.length) {\n    return {};\n  }\n\n  const firstReport = reports[0];\n  if (firstReport && 'studentId' in firstReport && !firstReport.data) {\n    return scoresByStudentId(reports);\n  }\n\n  const activityId = firstReport?.data && Object.keys(firstReport.data)[0];\n  if (activityId && firstReport.data[activityId]?.users) {\n    return firstReport.data[activityId].users;\n  }\n\n  return {};\n};\n\n/**\n * check if item types\n */\nexport const isMCQ = (item) =>\n  item.type &&\n  (item.type === 'MultipleChoiceQuestion' ||\n    item.type === QUESTION_TYPES.multipleChoice);\nexport const isFRQ = (item) =>\n  item.type &&\n  (item.type === 'FreeResponseQuestion' ||\n    item.type === QUESTION_TYPES.freeResponse);\nexport const isRubric = (item) =>\n  item && item.type && item.type === 'ScoringRubricCategory';\n\nexport const isSecure = (item) => item && item.isSecure;\n\nconst sortTiers = (arr) => arr.sort((a, b) => a.topLimit - b.topLimit);\n\n/**\n * Generate stacks out from LearnosityReport and PerformanceTiers\n * see client/src/components/assessment/Results/ResultsTable/__tests__/ResultsTable.test.js\n *\n * @param totalStudents {Number}\n * @param reports {Array}\n * @param performanceTiers {Array}\n * @param students {Array}\n * @param itemId {String}\n * @param lastLabel {String}\n * @returns {Array}\n */\nexport const performanceTierStacks = (\n  totalStudents,\n  reports,\n  performanceTiers,\n  students = [],\n  itemId,\n  lastLabel = 'No Results',\n  ignoreUnanswered = false,\n  secondaryNameSorts = ['lastName', 'firstName'],\n) => {\n  const reportByUsers = learnosityReportByUsers(reports);\n\n  let performanceTiersArray = performanceTiers;\n  if (typeof performanceTiers === 'object') {\n    // In the case of Pre-AP Final Exam results this was being stored in the redux state as an object. We just want\n    // the values of that object.\n    performanceTiersArray = Object.values(performanceTiers);\n  }\n\n  const performanceTiersWithNoResults = [\n    {\n      type: 'default',\n      label: lastLabel,\n      isNoResults: true,\n      topLimit: NaN,\n      bottomLimit: NaN,\n    },\n    ...performanceTiersArray,\n  ];\n\n  const stackData = sortTiers(performanceTiersWithNoResults);\n\n  // grab any report to check learnosityReportMaxScore value, useful to show/hide partial credit column\n  const anyReportForItem = studentsByScoreBracket({ reportByUsers, itemId });\n  const isMaxScoreMoreThanOne = Boolean(\n    anyReportForItem[0] && anyReportForItem[0].learnosityReportMaxScore > 1,\n  );\n\n  // create array with \"stacks\" to feed into bars and performance details\n  const stacks = stackData.reduce((result, tier) => {\n    const { type, color, isHiddenByDefault } = tier;\n\n    // how many students per trier ? e.g. fall between scores, or no results.\n    const studentsForStack = studentsSort(\n      studentsByScoreBracket({\n        ...tier,\n        students,\n        reportByUsers,\n        itemId,\n        ignoreUnanswered,\n      }),\n      'learnosityReportScoreParsed',\n      secondaryNameSorts,\n    );\n\n    const shouldPushTier =\n      !isHiddenByDefault || (isHiddenByDefault && isMaxScoreMoreThanOne);\n\n    if (shouldPushTier) {\n      result.push({\n        ...tier,\n        value: studentsForStack.length,\n        students: orderBy(\n          studentsForStack,\n          ['learnosityReportScoreParsed', ...secondaryNameSorts],\n          ['desc', 'asc', 'asc'],\n        ),\n        status: color || `--${type}`,\n      });\n    }\n\n    return result;\n  }, []);\n\n  // We remove no results column/stack when all students have some result, e.g. 0 students with no results\n  const shouldRemoveNoResultsStack = stacks[0].value === 0;\n\n  if (shouldRemoveNoResultsStack) {\n    stacks.shift();\n  }\n\n  return stacks;\n};\n\nexport const buildPerformanceResultsAriaLabel = (title, stacks = []) =>\n  `Open student performance results: ${stacks.reduce(\n    (a, b) => `${a}, ${b.label}: ${b.value}`,\n    title || '',\n  )}`;\n\n// convert seconds to time mm:ss\nexport const secondsToTime = (seconds, forceShowHours = false) => {\n  if (\n    Number.isNaN(seconds) ||\n    seconds === 0 ||\n    seconds === undefined ||\n    seconds === null\n  ) {\n    return '';\n  }\n  if (seconds < 3600 && !forceShowHours) {\n    return dayjs().startOf('day').add(seconds, 'seconds').format('mm:ss');\n  }\n  return dayjs().startOf('day').add(seconds, 'seconds').format('HH:mm:ss');\n};\n\nexport const averageTimeSpentInSeconds = (averageTimeSpents) =>\n  lodash.isEmpty(averageTimeSpents)\n    ? 0\n    : averageTimeSpents.reduce((a, b) => a + b, 0) / averageTimeSpents.length;\n\nexport const getScoreTimeSpents = (learnosityReportsByItemData) => {\n  let averageTimeSpents = {};\n  let userTimeSpents = {};\n  let userTimeSpentPerQuestion = {};\n  const reports = Array.isArray(learnosityReportsByItemData)\n    ? learnosityReportsByItemData\n    : [];\n\n  for (\n    let assessmentIndex = 0;\n    assessmentIndex < reports.length;\n    assessmentIndex++\n  ) {\n    const assessment = reports[assessmentIndex];\n    const assignmentKeys = assessment?.data ? Object.keys(assessment.data) : [];\n    for (\n      let assignmentIndex = 0;\n      assignmentIndex < assignmentKeys.length;\n      assignmentIndex++\n    ) {\n      const assignment = assessment.data[assignmentKeys[assignmentIndex]];\n      const userKeys = Object.keys(assignment.users);\n      for (let userIndex = 0; userIndex < userKeys.length; userIndex++) {\n        const user = assignment.users[userKeys[userIndex]];\n        const questionKeys = Object.keys(user.items);\n        for (\n          let questionIndex = 0;\n          questionIndex < questionKeys.length;\n          questionIndex++\n        ) {\n          const question = user.items[questionKeys[questionIndex]];\n          if (question.time_spent) {\n            if (!averageTimeSpents[questionKeys[questionIndex]]) {\n              averageTimeSpents[questionKeys[questionIndex]] = [];\n            }\n            if (!userTimeSpents[userKeys[userIndex]]) {\n              userTimeSpents[userKeys[userIndex]] = 0;\n              userTimeSpentPerQuestion[userKeys[userIndex]] = {};\n            }\n            averageTimeSpents[questionKeys[questionIndex]].push(\n              question.time_spent,\n            );\n            userTimeSpents[userKeys[userIndex]] += question.time_spent;\n            userTimeSpentPerQuestion[userKeys[userIndex]][\n              questionKeys[questionIndex]\n            ] = question.time_spent;\n          }\n        }\n      }\n    }\n  }\n  return { averageTimeSpents, userTimeSpents, userTimeSpentPerQuestion };\n};\n\nexport const getSingleResult = (userIds, itemId, report) => {\n  const reportByUsers = learnosityReportByUsers(report);\n\n  const [result = {}] = studentsByScoreBracket({\n    userIds,\n    reportByUsers,\n    itemId,\n  });\n\n  return result;\n};\n\nexport const findReportByAssignmentIdSectionId = (\n  reports,\n  assignmentId,\n  sectionId,\n) => {\n  const foundReport = reports.find(({ id: reportId }) => {\n    // this is the learnosity report id, we set it in `resolve_assignments_results` in `service-learnosity`\n    const [reportAssignmentId, reportSectionId] = reportId.split('_').splice(1); // no-unused-vars\n    return (\n      parseInt(reportAssignmentId, 10) === parseInt(assignmentId, 10) &&\n      parseInt(reportSectionId, 10) === parseInt(sectionId, 10)\n    );\n  });\n  return foundReport || {};\n};\n\nexport const stacksToMessage = (stacks, isLocked) =>\n  `${isLocked && 'Locked'}. ${stacks.reduce(\n    (a, b) => `${a}${b.label}: ${b.value}, `,\n    '',\n  )}`;\n\n/**\n * Gets the student result from a Learnosity report.\n * @param {object} learnosityReport - The Learnosity report.\n * @returns {object} Student score object with two keys: student actual points and maximum points available.\n * */\nexport const getStudentScore = (\n  learnosityReport,\n  learnosityReportsData,\n  initId,\n) => {\n  if (Object.keys(learnosityReport).length) {\n    const activityId = Object.keys(learnosityReport);\n\n    if (activityId) {\n      return getPerformanceStacks(\n        learnosityReport,\n        learnosityReportsData,\n        initId,\n      );\n    }\n  }\n\n  return null;\n};\n\nexport const getPerformanceStacks = (\n  reportData,\n  learnosityReportsData,\n  initId,\n) => {\n  if (learnosityReportsData && learnosityReportsData.length) {\n    let reportByStudents = {};\n    const activityId = reportData && Object.keys(reportData)[0];\n\n    if (activityId) {\n      reportByStudents = reportData[activityId].users;\n    }\n\n    const [result] = studentsByScoreBracket({\n      userIds: [initId],\n      reportByUsers: reportByStudents,\n    });\n\n    return result;\n  }\n  return undefined;\n};\n","import forEach from 'lodash/forEach';\nimport isArray from 'lodash/isArray';\nimport isEmpty from 'lodash/isEmpty';\nimport flatten from 'lodash/flatten';\nimport assign from 'lodash/assign';\nimport rison from 'rison';\n\n// This function checks for a difference between the title and the description\n// for all sub-tags within the supplied tag category. Often used to determine\n// if the Show Full Text button should be shown.\nexport function recursiveTagDescDelta(tag) {\n  if (tag.tags && tag.tags.length) {\n    const deepTag = tag.tags.map(recursiveTagDescDelta);\n    if (isArray(deepTag) && deepTag.indexOf(true) > -1) {\n      return true;\n    }\n  }\n  if (tag.description && tag.title !== tag.description) {\n    return true;\n  }\n  return false;\n}\n\nexport const determineFirstLevel = (tagCategory) => {\n  if (tagCategory.tags !== undefined && tagCategory.tags.length === 1) {\n    if (tagCategory.tags[0].tags && tagCategory.tags[0].tags.length > 0) {\n      return tagCategory.tags[0];\n    }\n    return tagCategory;\n  } else if (tagCategory.tags !== undefined) {\n    return tagCategory;\n  }\n  return null;\n};\n\n/*\n * An array with all ids of all sub-children and children of current node.\n * It includes the id of current node too\n */\nexport const getTagChildrenIds = (tag) => [\n  tag.id,\n  ...flatten((tag.tags || []).map(getTagChildrenIds)),\n];\n\nexport const flatHierarchy = (\n  tagsHierarchy = [],\n  hierarchyRef,\n  tagCategoryId,\n) => {\n  tagsHierarchy.forEach((tagHierarchy) => {\n    const { id, parent_id: parentId, tags } = tagHierarchy;\n    const hasChildren = tags && tags.length;\n    if (parentId) {\n      hierarchyRef.parentByChild[id] = parentId;\n\n      if (isEmpty(hierarchyRef[parentId])) {\n        hierarchyRef[parentId] = {\n          id: parentId,\n          tagCategoryId,\n          isSelected: false,\n          childrenIds: [parentId],\n        };\n      }\n\n      // Push each sub-children of each child of the current `parentId` inspected\n      hierarchyRef[parentId].childrenIds.push(\n        ...getTagChildrenIds(tagHierarchy),\n      );\n\n      hierarchyRef[parentId].parentId = hierarchyRef.parentByChild[parentId];\n      if (!hierarchyRef[parentId].children) {\n        hierarchyRef[parentId].children = {};\n      }\n      hierarchyRef[parentId].children[id] = {\n        id,\n        parentId,\n        isSelected: false,\n      };\n    } else {\n      hierarchyRef[id] = {\n        id,\n        parentId: null,\n        isSelected: false,\n        childrenIds: getTagChildrenIds(tagHierarchy),\n      };\n    }\n\n    if (hasChildren) {\n      flatHierarchy(tags, hierarchyRef, tagCategoryId);\n    }\n  });\n\n  return hierarchyRef;\n};\n\nconst getTagsSelectedStatus = (tags) => {\n  let isSelected = true;\n  if (isEmpty(tags)) {\n    return false;\n  }\n  forEach(tags, (child) => {\n    if (!child.isSelected) {\n      isSelected = false;\n      return false;\n    }\n  });\n\n  return isSelected;\n};\n\nconst setParentSelections = (\n  action,\n  tagId,\n  parentId,\n  hierarchyRef,\n  tagsById,\n) => {\n  if (hierarchyRef[parentId]) {\n    hierarchyRef[parentId].children[tagId].isSelected =\n      action === 'select' &&\n      getTagsSelectedStatus(hierarchyRef[tagId].children);\n\n    const isSelected = getTagsSelectedStatus(hierarchyRef[parentId].children);\n    hierarchyRef[parentId].isSelected =\n      isSelected || hierarchyRef[parentId].isClicked;\n\n    const grandParent = tagsById[parentId];\n    if (grandParent) {\n      setParentSelections(\n        grandParent.id,\n        grandParent.parent_id,\n        hierarchyRef,\n        tagsById,\n      );\n    }\n  }\n};\n\nexport const selectTag = (tagId, parentId, hierarchyRef, tagsById) => {\n  if (hierarchyRef[tagId]) {\n    hierarchyRef[tagId].isClicked = true;\n    hierarchyRef[tagId].isSelected = true;\n  }\n  if (hierarchyRef[parentId]) {\n    hierarchyRef[parentId].children[tagId].isSelected = true;\n\n    const isSelected = getTagsSelectedStatus(hierarchyRef[parentId].children);\n    hierarchyRef[parentId].isSelected = isSelected;\n\n    const grandParent = tagsById[parentId];\n    if (grandParent) {\n      setParentSelections(\n        'select',\n        grandParent.id,\n        grandParent.parent_id,\n        hierarchyRef,\n        tagsById,\n      );\n    }\n  }\n};\n\nexport const deselectTag = (tagId, parentId, hierarchyRef, tagsById) => {\n  if (hierarchyRef[tagId]) {\n    hierarchyRef[tagId].isClicked = false;\n    const areChildrenSelected = getTagsSelectedStatus(\n      hierarchyRef[tagId].children,\n    );\n    hierarchyRef[tagId].isSelected = areChildrenSelected;\n  }\n\n  if (hierarchyRef[parentId]) {\n    hierarchyRef[parentId].children[tagId].isSelected = false;\n    const areChildrenSelected = getTagsSelectedStatus(\n      hierarchyRef[parentId].children,\n    );\n    hierarchyRef[parentId].isSelected =\n      hierarchyRef[parentId].isClicked || areChildrenSelected;\n  }\n\n  const grandParent = tagsById[parentId];\n  if (grandParent) {\n    setParentSelections(\n      'deselect',\n      grandParent.id,\n      grandParent.parent_id,\n      hierarchyRef,\n      tagsById,\n    );\n  }\n};\n\nexport const setTagSelections = (type, tags, hierarchyRef, tagsById) => {\n  const isSelected = type === 'select';\n  tags.forEach(({ tags: childrenTags, id: tagId, parent_id: parentId }) => {\n    if (hierarchyRef[parentId]) {\n      hierarchyRef[parentId].isSelected = isSelected;\n      if (hierarchyRef[parentId].children[tagId].isSelected) {\n        if (type === 'select') {\n          selectTag(tagId, parentId, hierarchyRef, tagsById);\n        } else {\n          deselectTag(tagId, parentId, hierarchyRef, tagsById);\n        }\n      }\n    } else if (!parentId) {\n      hierarchyRef[tagId].isSelected = isSelected;\n    }\n\n    const hasTags = childrenTags && childrenTags.length > 0;\n    if (hasTags) {\n      setTagSelections(type, childrenTags, hierarchyRef, tagsById);\n    }\n  });\n};\n\nexport const recursiveTagIndex = (tag) => {\n  if (tag) {\n    if (tag.tags) {\n      return assign({ [tag.id]: tag }, ...tag.tags.map(recursiveTagIndex));\n    }\n    return { [tag.id]: tag };\n  }\n};\n\nexport const preToggleFilters = (selectedFilters, hierarchyRef, tagsById) => {\n  selectedFilters.forEach((id) => {\n    const { id: tagId, parent_id: parentId } = tagsById[id] || {};\n\n    selectTag(tagId, parentId, hierarchyRef, tagsById);\n  });\n};\n\nexport const createFlattenHierarchyData = (\n  categories,\n  hierarchyRef,\n  filters,\n) => {\n  hierarchyRef.parentByChild = {};\n  hierarchyRef.tree = {};\n\n  const filtersByCategory = rison.decode_object(filters);\n\n  const { above_fold: aboveFold, below_fold: belowFold } = categories;\n  let tagsById = {};\n  aboveFold.concat(belowFold).forEach((tagCategory) => {\n    const { id: tagCategoryId } = tagCategory;\n    const firstLevel = determineFirstLevel(tagCategory);\n    hierarchyRef.tree[tagCategoryId] = firstLevel;\n    flatHierarchy(firstLevel.tags, hierarchyRef, tagCategoryId);\n\n    tagsById = {\n      ...tagsById,\n      ...recursiveTagIndex(tagCategory),\n    };\n  });\n\n  /**\n   * Backwards compatible\n   * */\n  hierarchyRef.filtersByCategory = filtersByCategory;\n  forEach(filtersByCategory, (selectedFilters) => {\n    preToggleFilters(selectedFilters, hierarchyRef, tagsById);\n  });\n};\n\nexport const extractTags = (items) => {\n  if (items.tags && items.tags.length === 1) {\n    return extractTags(items.tags[0]);\n  }\n  return items.tags;\n};\n\n/**\n * Gets tags from the PPC results related questions\n *\n * @param {*} categories\n * @param {*} tagId\n * @returns\n * @memberof CreateQuiz\n */\n\nexport const findTagById = (categories, tagId) => {\n  const allCategories = categories.above_fold.concat(categories.below_fold);\n\n  const processTags = (category) => {\n    let found = null;\n    const { tags, ...rest } = category;\n    const stack = [rest, ...tags];\n\n    while (stack.length) {\n      const next = stack.pop();\n      const { tags: innerTags, ...parentInfo } = next;\n      if (Array.isArray(innerTags) && innerTags.length > 0) {\n        stack.push(...innerTags);\n        if (parentInfo.id === Number.parseInt(tagId, 10)) {\n          found = parentInfo;\n          break;\n        }\n      } else if (next.id === Number.parseInt(tagId, 10)) {\n        found = next;\n        break;\n      }\n    }\n    return found;\n  };\n\n  const category = allCategories.find((cat) => {\n    const tag = processTags(cat, tagId);\n    return tag !== null;\n  });\n\n  if (category) {\n    return `'${category.id}':!(${tagId})`;\n  }\n  return '';\n};\n","import axios from 'axios';\nimport merge from 'deepmerge';\nimport track from 'react-tracking';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport { isImpersonating } from 'legacy/src/components/impersonating/utils';\nimport dayjs from 'dayjs';\n\n/**\n * @constant\n * @type {object}\n * @default\n */\nconst envMapping = {\n  dev: 'development',\n  testing: 'testing',\n  staging: 'staging',\n  integration: 'integration',\n  p2testing: 'testing',\n  perf: 'performance',\n  prod: 'production',\n  uat: 'uat',\n};\n\nexport const _sendToTelemetry = (data, blockImpersonating) => {\n  /**\n   * If we're in impersonation mode, don't send\n   * telemetry data\n   */\n  if (blockImpersonating) {\n    return Promise.resolve(true);\n  }\n  // Mapping to conform API schema\n  const post_data = merge(data, {\n    params: {\n      object: data.name || window.location.pathname,\n    },\n  });\n  /**\n   * If the request fails and catch() is invoked, capture the exception and return\n   * a resolved promise to continue the promise chain (if applicable).\n   */\n  return axios({\n    url: `${FYM_TELEMETRY_BACKEND_URL}`,\n    method: 'post',\n    headers: {\n      'Content-Type': 'application/json',\n    },\n    data: JSON.stringify(post_data),\n  }).catch((error) => {\n    log('error', error);\n\n    return Promise.resolve(true);\n  });\n};\n\nexport const sendImpersonatingDetailsToTelemetry = (data) => {\n  _sendToTelemetry(data, false);\n};\n/**\n * @default\n */\nexport const sendToTelemetry = (data) =>\n  _sendToTelemetry(data, isImpersonating());\n\n/**\n * Default values that will be send to the Telemetry API\n * @constant\n * @type {array}\n * @default\n */\nexport const TLTRY_DEFAULTS = [\n  // Default tracking data\n  {\n    env: envMapping[process.env.ENV] || 'development',\n    v: 1,\n  },\n  // Default options\n  {\n    dispatch: _sendToTelemetry,\n  },\n];\n\nexport const TELEMETRY_EVENTS = {\n  teacherAssign: 'spp_teacher_assigned',\n  teacherUpdate: 'spp_teacher_updated',\n  teacherMarkComplete: 'spp_teacher_mark_complete',\n  teacherReopen: 'spp_teacher_reopen',\n  sppTeacherDeleted: 'spp_teacher_assignment_deleted',\n  teacherDeleted: 'teacher_assignment_deleted',\n  sppPartAttempted: 'spp_part_attempted',\n  sppHintAttempted: 'spp_hint_attempted',\n  sppStartSelfAssigned: 'spp_start_self_assigned',\n  sppStartTeacherAssigned: 'spp_start_teacher_assigned',\n  sppSavedAndExited: 'spp_saved_and_exited',\n  sppSubmitted: 'spp_submitted',\n  sppUnansweredPartClick: 'spp_unanswered_part_click',\n  sppReviewOpened: 'spp_review_opened',\n  labsSubmitClick: 'spp_submit_click',\n  teacherSubmitStudentAssignment: 'teacher_submits_assignment',\n  teacherUnSubmitStudentAssignment: 'teacher_unsubmits_assignment',\n  sppDisabledRevealTipClick: 'spp_disabled_reveal_tip_click',\n  sppDisabledRevealAnswerTipClick: 'spp_disabled_reveal_answer_tip_click',\n  teacherUpdateShowLabels: 'teacher_update_show_labels',\n  openSourceResource: 'open_source_resource',\n  openJsTorResource: 'open_jstor_resource',\n  casImplicitDelete: 'cas_implicit_delete',\n  ackJsTorTerms: 'acknowledge_jstor_terms',\n};\n\n/**\n * Telemetry function decorates track function providing\n * default values, without compromising functionality.\n *\n * @param {*} args Arguments for the track function\n * @returns {function} Wrapped track function with defaults\n */\nexport default function telemetry(...args) {\n  const opts = merge(TLTRY_DEFAULTS[1], args[1] || {});\n  let data = merge(TLTRY_DEFAULTS[0], args[0] || {});\n\n  if (typeof args[0] === 'function') {\n    data = (...a) => {\n      // When fn returns a falsy value return an empty object\n      let res = args[0](...a) || {};\n\n      return merge(TLTRY_DEFAULTS[0], res);\n    };\n  }\n\n  return (...toDecorate) => track(data, opts)(...toDecorate);\n}\n\n/**\n * Send telemetry event with metadata\n *\n * @param {*} app\n * @param {*} eventType\n * @param {*} context additional telemetry data\n */\nexport const handleTelemetry = (app, eventType, context) => {\n  const { importId: cbUserId, initId: amUserId } = window.current_user || {};\n  const telemetryData = {\n    app: app,\n    event_type: eventType,\n    date_clicked: dayjs.utc().format(),\n    context: {\n      ...context,\n    },\n    user: {\n      am_user_id: amUserId,\n      cb_user_id: cbUserId,\n    },\n    ...TLTRY_DEFAULTS[0],\n  };\n  sendToTelemetry(telemetryData);\n};\n","import axios from 'axios';\nimport mapKeys from 'lodash/mapKeys';\nimport camelCase from 'lodash/camelCase';\nimport { getSignedUrl } from 'legacy/src/shared/clients/apiClient';\nimport { getFinishedPercent } from 'legacy/src/components/learnosity/utils/helpers';\nimport { getScoredSubmissions } from 'chameleon/src/components/learnosity/utils/helpers';\n\nimport { redirectToLogin } from 'legacy/src/components/auth/utils';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\n\n/**\n * From https://stackoverflow.com/a/41716722 and https://stackoverflow.com/a/48764436\n * @param {*} num\n * @param {*} decimalPlaces\n */\nexport const round = (num, decimalPlaces = 0) => {\n  const p = 10 ** decimalPlaces;\n  const m = num * p * (1 + Number.EPSILON);\n  return Math.round(m) / p;\n};\n\n/*\n * Checks a string for a valid email syntax.\n * @return {boolean}\n */\nexport function validateEmail(address) {\n  // eslint-disable-next-line max-len\n  const regexp =\n    /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n  if (!address) {\n    return false;\n  }\n\n  return regexp.test(address);\n}\n\nexport function getParameterByName(name, urlToParse) {\n  let url = urlToParse;\n  if (!url) url = window.location.href;\n  const regexName = name.replace(/[\\[\\]]/g, '\\\\$&');\n  const regex = new RegExp(`[?&]${regexName}(=([^&#]*)|&|#|$)`);\n  const results = regex.exec(url);\n  if (!results) return null;\n  if (!results[2]) return '';\n  return decodeURIComponent(results[2].replace(/\\+/g, ' '));\n}\n\n/**\n * Determines whether the user needs to be redirected to a different portal (if not a pilot account).\n * @todo Refactor this to use a regexp test.\n */\nexport function redirectRequiredCheck(redirectUrl) {\n  const getLocation = (url) => {\n    let l = document.createElement('a');\n\n    l.href = url;\n\n    return l;\n  };\n\n  return window.location.hostname !== getLocation(redirectUrl).hostname;\n}\n\n/**\n * Common autocomplete/fill props for input elements.\n */\nexport const sensitiveFieldProps = {\n  autoComplete: 'off',\n  autoCorrect: 'off',\n  spellCheck: 'off',\n};\n\nexport const ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVYXYZ';\n\nexport const createMCQAnswersTable = (values) => {\n  const answerLabels = {};\n  values.forEach(\n    (value, index) => (answerLabels[value] = ALPHABET.charAt(index)),\n  );\n  return answerLabels;\n};\n\n/*\n * Stores in localstorage the userType\n * @param {object} roles utility/User.js/userRoles object\n * */\nexport const storeUserType = (me) => {\n  let userType;\n  /**\n   * Roles resolution order staff -> coordinator -> admin -> teacher -> student\n   */\n  if (me.isStaff()) {\n    userType = UserRoles.STAFF;\n  } else if (me.isCoordinator()) {\n    userType = UserRoles.COORDINATOR;\n  } else if (me.isAdmin()) {\n    userType = UserRoles.ADMIN;\n  } else if (me.isStudent()) {\n    userType = UserRoles.STUDENT;\n  } else if (me.isTeacher()) {\n    userType = UserRoles.TEACHER;\n  }\n\n  if (!userType) {\n    redirectToLogin();\n  }\n\n  window.localStorage.setItem('userType', userType);\n};\n\n/**\n * Simple string trim utility. Uses String.prototype.trim, with type checking.\n * @param {string} str String to trim.\n * @return {string}\n */\nexport const trim = (str) => {\n  /**\n   * String.prototype.trim throws an error when argument is not a string.\n   */\n  if (str && typeof str === 'string') {\n    return str.trim();\n  }\n\n  return '';\n};\n\n/**\n * Gets the filter object from localStorage\n * */\nexport const getSavedGroupsFilter = () => {\n  const selectedGroups = window.localStorage.getItem('groupsFilterQuery');\n\n  if (selectedGroups !== null) {\n    return JSON.parse(selectedGroups);\n  }\n\n  return { school: [], class: [] };\n};\n\n/**\n * Create classes handler\n * @param {string} subject The subject id\n * @param {object} router The react-router handler object\n * */\nexport const createClassRedirect = (subject, router) => {\n  if (FEATUREFLAGS.myClasses.redirectRos) {\n    window.location.href = `${ROS_FRONTEND_URL}/courses?create=${subject}`;\n  } else {\n    router.push(`/${subject}/classes`);\n  }\n};\n\nexport function redirectToCBLegacyWithTokens(nextURL) {\n  const _nextURL = encodeURIComponent(nextURL);\n  const accountAccessToken = window.localStorage.getItem(\n    'account_access_token',\n  );\n  const accountRefreshToken = window.localStorage.getItem(\n    'account_refresh_token',\n  );\n  const expires = window.localStorage.getItem('expires');\n  const finalURL = `${CB_LEGACY_URL}/n/auth/redirect/?next=${_nextURL}&jwt=${accountAccessToken}&refresh=${accountRefreshToken}&expires=${expires}`;\n  window.location.href = finalURL;\n}\n\n/**\n * Convert bucket URL to signed URL\n * @param {string} url The original URL to be signed.\n * @param {string} bucket The S3 bucket corresponding to the URL.\n * @returns {url}\n */\nasync function getSignedResource(url, bucket, failIfKeyIsMissing) {\n  const vhost = `${bucket}.s3.amazonaws.com`;\n  const key = url.includes(vhost) ? url.split(vhost)[1] : url.split(bucket)[1];\n  let signedURL = await getSignedUrl({ key, bucket }, failIfKeyIsMissing);\n  const signature = signedURL.split(/:443/)[1];\n  return signature;\n}\n\n/**\n * Get bucket from url within the list of unit buckets\n * @param {string} url\n * @returns {bucket|false}\n * */\nexport const getValidBucketUrl = (url) => {\n  const baseS3Url = url.split('.s3')[0];\n  if (baseS3Url) {\n    // eg [\"https\", \"unit-resources-apc-nonprod\"]\n    return baseS3Url.split('://')[1];\n  }\n};\n\nexport async function getSignedUnitResource(url, failIfKeyIsMissing) {\n  let resourceUrl = decodeURIComponent(url.replace(/\\+/g, ' '));\n  const urlBucket = getValidBucketUrl(resourceUrl);\n  if (urlBucket) {\n    const signature = await getSignedResource(\n      resourceUrl,\n      urlBucket,\n      failIfKeyIsMissing,\n    );\n    const baseURL = `https://${urlBucket}.s3.amazonaws.com`;\n    return `${baseURL}${signature}`;\n  }\n  throw new Error('Not a Unit Resource');\n}\n\nexport const extractS3ResourceDomainFromUrl = (url) => {\n  let newUrl = url;\n  if (newUrl.startsWith(S3_RESOURCES_BUCKET)) {\n    const urlParts = newUrl.split(`${S3_RESOURCES_BUCKET}/`);\n    [, newUrl] = urlParts;\n  }\n  return newUrl;\n};\n\nexport const isS3Resource = (url) =>\n  (url.startsWith(S3_RESOURCES_BUCKET) &&\n    S3_RESOURCES_BUCKET.includes('s3.amazonaws.com')) ||\n  (!url.includes('http://') && !url.includes('https://'));\n\nexport const getResourceAddress = (url, subject) =>\n  `${FYM_FRONTEND_URL}/${subject}/resources/${extractS3ResourceDomainFromUrl(\n    url,\n  )}`;\n\nexport const extractHtmlContent = (html, space) => {\n  let span = document.createElement('span');\n  span.innerHTML = html;\n  if (space) {\n    let children = span.querySelectorAll('*');\n    for (let i = 0; i < children.length; i++) {\n      if (children[i].textContent) {\n        children[i].textContent += ' ';\n      } else {\n        children[i].innerText += ' ';\n      }\n    }\n  }\n  return [span.textContent || span.innerText].toString().replace(/ +/g, ' ');\n};\n\nexport const parseHeaders = (headerString) =>\n  headerString.split('\\r\\n').reduce((oldHeaders, header) => {\n    const headers = { ...oldHeaders };\n    if (header) {\n      const split = header.split(':');\n      // Headers come back with double quotes wrapping- the slice removes those.\n      headers[split[0].trim().toLowerCase()] = split[1].trim().slice(1, -1);\n    }\n    return headers;\n  }, {});\n\nconst SIGNING_ENDPOINT = `${FYM_BACKEND_URL}/media/api/signed_url`;\n\nconst wait = (millis = 1000) =>\n  new Promise((resolve) => setTimeout(resolve, millis));\n\nconst signUrl = (data) =>\n  axios({\n    url: SIGNING_ENDPOINT,\n    method: 'POST',\n    data: JSON.stringify(typeof data === 'string' ? { url: data } : data),\n    headers: {\n      'Content-Type': 'application/json',\n    },\n  }).then(getPayload);\n\nconst getPayload = (response) => {\n  if (response.status !== 200 && response.status !== 304) {\n    throw Error('Unexpected status code');\n  }\n  return response.data;\n};\n\n/* call a function that returns a promise and retry if it throws an exception */\nexport const retryPromise = (\n  func,\n  { timeout = 25 * 1000, interval = 1000 } = {},\n) => {\n  let closureTimeout = timeout;\n  function requestLoop() {\n    return func().catch(() => {\n      if (closureTimeout <= 0) {\n        throw Error('Timeout exceeded');\n      }\n      return wait(interval).then(() => {\n        closureTimeout -= interval;\n        return requestLoop();\n      });\n    });\n  }\n  return requestLoop();\n};\n\nexport const waitForUrl = (url, options) =>\n  retryPromise(\n    () =>\n      signUrl(url)\n        .then(({ signedUrl }) => fetch(signedUrl, { method: 'HEAD' }))\n        .then(getPayload),\n    options,\n  );\n\nexport const rebuildPathFromRoutes = (routes, params) => {\n  /* eslint-disable no-restricted-syntax */\n  // rebuild the path from new routes array\n  let path = '';\n  let route;\n  for (route of routes) {\n    if (typeof route.path === 'string') {\n      path += `/${route.path}`;\n    }\n  }\n\n  // first route is typically '/', which leades to //mypath/...\n  // replace multiple slashs (/// => /)\n  path = path.replace(/\\/{2,}/g, '/');\n\n  // fill out params from existing values\n  let key;\n  for (key in params) {\n    if (Object.hasOwnProperty.call(params, key)) {\n      path = path.replace(new RegExp(`:${key}`, 'g'), params[key]);\n    }\n  }\n  return path;\n  /* eslint-enable no-restricted-syntax */\n};\n\nexport const getTestSelector = (id) => `[data-test-id=\"${id}\"]`;\n\nexport const removeHtmlFromText = (string) =>\n  !string ? '' : string.replace(/<\\/?[^>]+(>|$)/g, '');\n\nexport const isValidJSONString = (string) => {\n  try {\n    return !!string && JSON.parse(string);\n  } catch (e) {\n    return false;\n  }\n};\n\nexport const parseNonEmptyJSONObject = (string) => {\n  if (string !== '{}' && isValidJSONString(string)) {\n    return JSON.parse(string);\n  }\n};\n\nexport const getSubGroupStudentsLabel = (subGroupStudents) => {\n  const { length: subGroupStudentsLength } = subGroupStudents || [];\n\n  if (subGroupStudentsLength === 0) {\n    return '';\n  }\n\n  if (subGroupStudentsLength === 1) {\n    const { firstName, lastName } = mapKeys(subGroupStudents[0], (_, key) =>\n      camelCase(key),\n    );\n    return firstName && lastName\n      ? ` (${firstName} ${lastName})`\n      : ` (${subGroupStudents[0]})`;\n  }\n\n  return ` (${subGroupStudents.length} students)`;\n};\n\nexport class AllAssignments {\n  constructor(assessments = [], assessmentId = null) {\n    const matchingAssessment = assessments.find(\n      (assessment) => +assessment.id === +assessmentId,\n    );\n\n    if (matchingAssessment) {\n      const { assignments } = matchingAssessment;\n      this.assignments = assignments;\n      this.assessment = matchingAssessment;\n    } else {\n      this.assignments = [];\n    }\n  }\n\n  getAssignments = () => this.assignments;\n\n  getIsFinalExam = () => this.assessment && this.assessment.is_final_exam;\n\n  getOpenAssignments = () =>\n    this.assignments.filter((assignee) => {\n      let isAssignmentComplete = false;\n      const { progress } = assignee;\n      if (progress) {\n        const finishedPercentage = getFinishedPercent(progress);\n        isAssignmentComplete = finishedPercentage === 100;\n      }\n      return assignee.status !== 'closed' && !isAssignmentComplete;\n    });\n\n  getAssignmentsWithResults = () =>\n    this.assignments.filter((assignee) => {\n      const { progress } = assignee;\n      if (progress) {\n        return getScoredSubmissions(progress);\n      }\n      return false;\n    });\n}\n\nexport const KEY_CODES = {\n  backspace: 8,\n  tab: 9,\n  return: 13,\n  alt: 18,\n  esc: 27,\n  space: 32,\n  leftArrow: 37,\n  upArrow: 38,\n  rightArrow: 39,\n  downArrow: 40,\n};\n\nexport const getSelectedPlayer = (props) => {\n  const { isQBCreateTab, blueBookUiFlag, isTopicQuestion } = props;\n\n  if (isQBCreateTab && !blueBookUiFlag) {\n    return 'Classic_Question_Preview_Player';\n  } else if (isQBCreateTab && blueBookUiFlag && !isTopicQuestion) {\n    return 'BB_Question_Preview_Player';\n  } else if (isTopicQuestion && blueBookUiFlag) {\n    return 'BB_Topic_Question_Preview_Player';\n  } else if (blueBookUiFlag) {\n    return 'BB_Assessment_Preview_Player';\n  } else {\n    return 'Classic_Assessment_Preview_Player';\n  }\n};\n","import { createRoutine } from 'redux-saga-routines';\n\nexport const fetchSubmissionData = createRoutine(\n  'assessment/FETCH_SUBMISSION_DATA',\n);\n","import createReducer from 'legacy/src/shared/util/createReducer';\nimport { fetchSubmissionData } from './actions';\n\nconst initialState = {\n  data: [],\n  loading: false,\n};\n\nconst reducer = createReducer(initialState, {\n  [fetchSubmissionData.request]: (state) => ({\n    ...state,\n    loading: true,\n  }),\n  [fetchSubmissionData.success]: (state, { payload }) => ({\n    ...state,\n    loading: false,\n    data: payload.submissions,\n  }),\n  [fetchSubmissionData.failure]: (state) => ({\n    ...state,\n    loading: false,\n  }),\n});\n\nexport default reducer;\n","import { takeLatest, all } from 'redux-saga/effects';\nimport apiSaga from 'legacy/src/shared/util/apiSagaGenerator';\n\nimport { fetchSubmissionData } from './actions';\n\nexport function* fetchSubmissionDataSaga({ payload: assignmentId }) {\n  yield apiSaga(fetchSubmissionData, {\n    url: `assessments/api/assignments/${assignmentId}/submissions/`,\n  });\n}\n\nexport default function* submissionDataSaga() {\n  yield all([takeLatest(fetchSubmissionData.TRIGGER, fetchSubmissionDataSaga)]);\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"small\": `471`,\n\t\"smallplus\": `568`,\n\t\"medium\": `768`,\n\t\"large\": `1024`,\n\t\"mobile\": `767`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, ``, \"\",{\"version\":3,\"sources\":[],\"names\":[],\"mappings\":\"\",\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"primary\": `#0076c4`,\n\t\"secondary\": `#1e1e1e`,\n\t\"error\": `#e75b6b`,\n\t\"tabsEdge\": `#ececec`,\n\t\"dark\": `#1e1e1e`,\n\t\"border\": `1px solid #ececec`,\n\t\"blue\": `#0076c4`,\n\t\"white\": `#fff`,\n\t\"gray\": `#999896`,\n\t\"focusColor\": `rgba(0, 156, 222, 0.8)`,\n\t\"focusRadius\": `3px`,\n\t\"padding\": `8px 16px`,\n\t\"fontWeight\": `500`,\n\t\"fontWeightSelected\": `400`,\n\t\"boxShadowSelected\": `inset 0 0 0 1px #ececec`,\n\t\"minHeight\": `49px`,\n\t\"scrollButtonsWidth\": `32px`,\n\t\"marginBottom\": `20px`,\n\t\"tabsBorderBottom\": `3px solid transparent`,\n\t\"tabSelectedBorderBottom\": `1px solid #ffffff`,\n\t\"tabWidthLg\": `200px`,\n\t\"tabWidthMd\": `150px`,\n\t\"lineHeight\": `1.44`,\n\t\"colorFade\": `rgba(255, 255, 255, 0.8)`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n.chameleon a {\n  outline: 0;\n  text-decoration: none;\n  cursor: pointer;\n}\n.chameleon a:focus {\n  outline: 0;\n}\n.chameleon a[disabled] {\n  pointer-events: none;\n}\n.chameleon .larger {\n  font-family: sans-serif;\n  font-size: 175%;\n  vertical-align: sub;\n}\n.chameleon .all-caps {\n  text-transform: uppercase;\n}\n.chameleon .init_caps {\n  text-transform: capitalize;\n}\n.chameleon .right_text {\n  text-align: right;\n}\n.chameleon .center_text {\n  text-align: center;\n}\n.chameleon .nowrap {\n  white-space: nowrap;\n}\n.chameleon .pre-wrap {\n  white-space: pre-wrap;\n}\n.chameleon .lettered {\n  list-style-type: upper-alpha;\n}\n.chameleon .text_green{\n  --tw-text-opacity: 1;\n  color: rgb(33 126 38 / var(--tw-text-opacity));\n}\n.chameleon .text_red{\n  --tw-text-opacity: 1;\n  color: rgb(208 80 95 / var(--tw-text-opacity));\n}\n.chameleon .text_blue{\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n}\n.chameleon .input--type_check {\n  margin: 0;\n}\n.chameleon .input--type_check [type=checkbox] {\n  margin-right: 0.5rem;\n}\n.chameleon .input--type_check span {\n  display: inline-block !important;\n}\n.chameleon .error_validation {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n}\n.chameleon .ev__item {\n  margin-top: 0.25rem;\n  padding-left: 1em;\n  --tw-text-opacity: 1;\n  color: rgb(208 80 95 / var(--tw-text-opacity));\n  line-height: 1;\n  text-indent: -1em;\n}\n.chameleon .ev__item[data-icon-before]::before {\n  margin-right: 0.25rem;\n}\n.chameleon .error{\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n.chameleon .error.svg-icon{\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n.chameleon .error-wrap {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 100%;\n}\n.chameleon .error-wrap .error-msg {\n  line-height: 2em;\n}\n.chameleon .toolbar {\n  padding: 1.25rem;\n}\n.chameleon .filter_toolbar .actions_wrapper {\n  margin-bottom: 1.25rem;\n}\n.chameleon .filter_toolbar [data-icon-before=\"+\"] {\n  float: right;\n  clear: right;\n}\n.chameleon .filter_toolbar .user_search_form .input--type_text__wrapper,\n.chameleon .filter_toolbar .group_search_form .input--type_text__wrapper {\n  width: 100%;\n  margin-bottom: 0.5rem;\n}\n.chameleon .filter_toolbar .user_search_form label,\n.chameleon .filter_toolbar .user_search_form .btn,\n.chameleon .filter_toolbar .group_search_form label,\n.chameleon .filter_toolbar .group_search_form .btn {\n  align-self: flex-end;\n}\n.chameleon .filter_toolbar .user_search_form label,\n.chameleon .filter_toolbar .group_search_form label {\n  height: 5rem;\n}\n.chameleon .filter_toolbar .user_search_form label .input--type_select,\n.chameleon .filter_toolbar .group_search_form label .input--type_select {\n  width: 100%;\n}\n.chameleon .filter_toolbar .user_search_form label,\n.chameleon .filter_toolbar .group_search_form label {\n  flex: 2;\n}\n.chameleon .filter_toolbar .user_search_form.user_search_form--large, .chameleon .filter_toolbar .user_search_form.group_search_form--large, .chameleon .filter_toolbar .group_search_form.user_search_form--large, .chameleon .filter_toolbar .group_search_form.group_search_form--large {\n  display: flex;\n  width: 100%;\n}\n.chameleon .filter_toolbar .user_search_form.user_search_form--large .input--type_text__wrapper,\n.chameleon .filter_toolbar .user_search_form.user_search_form--large .user_search_toolbar,\n.chameleon .filter_toolbar .user_search_form.user_search_form--large .group_search_toolbar,\n.chameleon .filter_toolbar .user_search_form.group_search_form--large .input--type_text__wrapper,\n.chameleon .filter_toolbar .user_search_form.group_search_form--large .user_search_toolbar,\n.chameleon .filter_toolbar .user_search_form.group_search_form--large .group_search_toolbar,\n.chameleon .filter_toolbar .group_search_form.user_search_form--large .input--type_text__wrapper,\n.chameleon .filter_toolbar .group_search_form.user_search_form--large .user_search_toolbar,\n.chameleon .filter_toolbar .group_search_form.user_search_form--large .group_search_toolbar,\n.chameleon .filter_toolbar .group_search_form.group_search_form--large .input--type_text__wrapper,\n.chameleon .filter_toolbar .group_search_form.group_search_form--large .user_search_toolbar,\n.chameleon .filter_toolbar .group_search_form.group_search_form--large .group_search_toolbar {\n  width: 50%;\n  display: flex;\n}\n.chameleon .filter_toolbar .user_search_form.user_search_form--large .user_search_input,\n.chameleon .filter_toolbar .user_search_form.user_search_form--large .group_search_input,\n.chameleon .filter_toolbar .user_search_form.group_search_form--large .user_search_input,\n.chameleon .filter_toolbar .user_search_form.group_search_form--large .group_search_input,\n.chameleon .filter_toolbar .group_search_form.user_search_form--large .user_search_input,\n.chameleon .filter_toolbar .group_search_form.user_search_form--large .group_search_input,\n.chameleon .filter_toolbar .group_search_form.group_search_form--large .user_search_input,\n.chameleon .filter_toolbar .group_search_form.group_search_form--large .group_search_input {\n  align-self: flex-end;\n  margin-bottom: 0 !important;\n  margin-right: 1.5rem;\n}\n.chameleon .filter_toolbar .user_search_form.user_search_form--large .input--type_text__wrapper, .chameleon .filter_toolbar .user_search_form.group_search_form--large .input--type_text__wrapper, .chameleon .filter_toolbar .group_search_form.user_search_form--large .input--type_text__wrapper, .chameleon .filter_toolbar .group_search_form.group_search_form--large .input--type_text__wrapper {\n  margin-bottom: 0;\n}\n.chameleon .form label {\n  display: inline-block;\n  text-transform: capitalize;\n  vertical-align: bottom;\n}\n.chameleon .form label span {\n  display: block;\n  --tw-text-opacity: 1;\n  color: rgb(113 113 122 / var(--tw-text-opacity));\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-weight: 300;\n  font-size: 1.4rem;\n  letter-spacing: 0.025rem;\n}\n.chameleon .form_account_container {\n  margin-top: 2rem;\n  display: flex;\n  justify-content: center;\n}\n.chameleon .form_account_container a{\n  --tw-text-opacity: 1;\n  color: rgb(0 119 200 / var(--tw-text-opacity));\n}\n.chameleon .form_account_container .contents{\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  width: 45rem;\n  max-width: 45rem;\n  border: 1px solid #cccccc;\n  box-shadow: none;\n  overflow-x: visible;\n  overflow-y: visible;\n}\n.chameleon .form_account_container .login_links_container {\n  margin-bottom: 1rem;\n}\n.chameleon .form_account_container .login_links_container a {\n  display: inline-block;\n}\n.chameleon .form_account_container .login_links_container a + a::before {\n  content: \"|\";\n  color: #cccccc;\n  margin-right: 1rem;\n}\n.chameleon .form_account_container .login_links_container a + a {\n  margin-left: 1rem;\n}\n.chameleon .form_login_wrapper {\n  padding: 2.5rem 2rem;\n}\n.chameleon .form_login_wrapper p {\n  margin-bottom: 1.5rem;\n}\n.chameleon .join_form_name_row fieldset {\n  flex: 1 !important;\n  -ms-flex: 1 !important;\n}\n.chameleon .form_login_header h2 {\n  font-size: 2.6rem;\n  margin-top: 0;\n  font-weight: 400;\n}\n.chameleon .form_login_panel {\n  margin-bottom: 2.5rem;\n}\n.chameleon .form_login_panel .join_radio_toggle {\n  display: flex;\n  justify-content: space-around;\n  margin-top: 1.5rem;\n}\n.chameleon .form_login_panel .join_radio_toggle label {\n  font-weight: 400;\n}\n.chameleon .form_login_panel .join_radio_toggle input[type=radio] {\n  width: 1.6rem;\n  height: 1.6rem;\n  margin-right: 1rem;\n}\n.chameleon .form_login_panel fieldset {\n  padding: 0;\n  margin: 1rem 0 0.5rem 0;\n}\n.chameleon .form_login_panel label {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n  color: #4d4c4a;\n  font-weight: 700;\n}\n.chameleon .form_login_panel .join_form_btn_row {\n  text-align: center;\n  margin-top: 3rem;\n}\n.chameleon .form_login_panel .join-toggle-pass {\n  float: right;\n}\n.chameleon .form_login_panel button {\n  width: 13rem;\n}\n.chameleon .form_login_panel button.join_form_cancel {\n  margin-right: 2rem;\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(61 156 214 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(0 119 200 / var(--tw-text-opacity));\n}\n.chameleon .form_login_panel button.join_form_cancel:hover, .chameleon .form_login_panel button.join_form_cancel:active{\n  --tw-border-opacity: 1;\n  border-color: rgb(0 119 200 / var(--tw-border-opacity));\n}\n.chameleon .form_login_panel button.login_form {\n  display: block;\n  margin: 0 auto;\n}\n.chameleon .form_login_panel span.form-error {\n  display: block;\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n.chameleon .form_login label {\n  margin-bottom: 0.25rem;\n}\n.chameleon .form_login fieldset {\n  margin: 0 0 1.25rem;\n}\n.chameleon .form_login [type=submit] {\n  margin-top: 0.5rem;\n}\n.chameleon .form_login .form_login_panel {\n  width: 100%;\n}\n.chameleon .form_login .form_login_panel > a {\n  margin-bottom: 1.5rem;\n  display: block;\n}\n.chameleon .form_login .failed-login{\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n.chameleon .form_login .form_login_panel_actions {\n  margin: 0.75rem 0;\n}\n.chameleon .form_login .form_login_panel_actions a {\n  float: left;\n}\n.chameleon .form_login .form_login_panel_actions a + a {\n  float: right;\n}\n.chameleon .form_login .form_login_sso_button {\n  display: block;\n  margin-top: 2rem;\n}\n.chameleon .form_login .form_login_sso_button .btn {\n  margin: 0 auto 0.75rem;\n}\n.chameleon .form_login .form_login_sso_button h5 {\n  font-size: 1.8rem;\n}\n.chameleon .form_login--has_options {\n  display: table-row;\n}\n.chameleon .form_login--has_options .form_login_panel--standard {\n  display: table-cell;\n  width: 60%;\n  padding: 0 1.25rem 0 0;\n  vertical-align: top;\n}\n.chameleon .form_login--has_options .form_login_panel--standard + .form_login_panel--sso a {\n  padding-left: 1.25rem;\n  border-left-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n}\n.chameleon .form_login--has_options .form_login_panel--sso {\n  display: table-cell;\n  width: auto;\n}\n.chameleon .form_login--has_options .form_login_panel_actions a,\n.chameleon .form_login--has_options .form_login_panel_actions a + a {\n  float: left;\n}\n.chameleon .formal {\n  padding: 1.5rem 2.5rem 2.5rem;\n}\n.chameleon .formal label {\n  margin: 1.5rem 0 0;\n  --tw-text-opacity: 1;\n  color: rgb(82 82 91 / var(--tw-text-opacity));\n  font-size: 1.5rem;\n}\n.chameleon .formal input,\n.chameleon .formal textarea {\n  margin-bottom: 0.5rem;\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n}\n.chameleon .formal input[type=checkbox], .chameleon .formal input[type=radio], .chameleon .formal textarea[type=checkbox], .chameleon .formal textarea[type=radio] {\n  box-shadow: none;\n}\n.chameleon label.right {\n  width: auto;\n}\n.chameleon label.right + label {\n  width: auto;\n}\n.chameleon .response {\n  margin-top: 0.5rem;\n  margin-left: 1rem;\n  --tw-text-opacity: 1;\n  color: rgb(113 113 122 / var(--tw-text-opacity));\n  font-size: 90%;\n  text-align: right;\n}\n.chameleon .join_code_desc {\n  margin-top: -0.5rem;\n}\n.chameleon .field_errors,\n.chameleon [field-errors] {\n  margin: 0;\n  padding: 0;\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n.chameleon .field_errors li,\n.chameleon [field-errors] li {\n  margin: 0 0 0 2.5rem;\n  list-style-type: disc;\n}\n.chameleon .show_password {\n  margin-top: 0.5rem;\n}\n.chameleon .show_password .option_check {\n  margin-right: 0.5rem;\n}\n.chameleon .form_controls {\n  margin: 2.5rem 0 2rem;\n}\n.chameleon .form_controls button {\n  margin-left: 1.5rem;\n}\n.chameleon .form_controls a + a {\n  margin-left: 1.5rem;\n}\n.chameleon .form_controls--short {\n  margin: 0;\n}\n.chameleon [confirm-action] {\n  display: inline-block;\n  width: 100px;\n  height: 25px;\n  overflow: hidden;\n}\n.chameleon [confirm-action] .conf_wrapper {\n  display: inline-block;\n  width: 140px;\n  height: 27px;\n  overflow: hidden;\n}\n.chameleon [confirm-action] .conf_btn {\n  transition: all 0.5s ease;\n}\n.chameleon [confirm-action].conf_active .conf_btn {\n  margin-left: -120px;\n  opacity: 0;\n}\n.chameleon .select_wrap {\n  display: inline-block;\n  position: relative;\n  width: auto;\n  height: 3.6rem;\n  border-radius: 0.3rem;\n  background: rgba(0, 0, 0, 0.1);\n  overflow: hidden;\n}\n.chameleon .select_wrap::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 3.6rem;\n  height: 3.6rem;\n  background: rgba(0, 0, 0, 0.1);\n  line-height: 35px;\n  text-align: center;\n  content: \"▼\";\n  vertical-align: bottom;\n  z-index: 1;\n}\n.chameleon .select_wrap select {\n  position: relative;\n  width: calc(100% + 1.5rem);\n  height: 3.6rem;\n  padding: 0 4.5rem 0 1rem;\n  border: 0;\n  background: transparent;\n  color: #555;\n  font-size: 1.2rem;\n  line-height: 1;\n  z-index: 10;\n  -webkit-appearance: none;\n}\n.chameleon .select_wrap select:hover {\n  cursor: pointer;\n}\n.chameleon .select_wrap.select_block {\n  width: 100%;\n}\n.chameleon .select_wrap.btn--size_small {\n  height: 2.6rem;\n  padding: 0;\n}\n.chameleon .select_wrap.btn--size_small::after {\n  width: 2.6rem;\n  height: 2.6rem;\n  line-height: 30px;\n}\n.chameleon .select_wrap.btn--size_small select {\n  height: 2.6rem;\n}\n.chameleon .input_wrap.checkbox_checked .option_check::before, .chameleon .input_wrap.radio_checked .option_check::before {\n  display: block;\n  position: absolute;\n  width: 1.5rem;\n  height: 1.5rem;\n}\n.chameleon .input_wrap [type=radio]:not(old),\n.chameleon .input_wrap [type=checkbox]:not(old) {\n  position: absolute;\n  width: 0;\n  height: 0;\n  opacity: 0;\n}\n.chameleon .input_wrap [type=radio]:not(old) + .option,\n.chameleon .input_wrap [type=checkbox]:not(old) + .option {\n  display: block;\n  margin-left: 2.5rem;\n  cursor: pointer;\n}\n.chameleon .input_wrap [type=radio]:not(old) + .option .option_check,\n.chameleon .input_wrap [type=checkbox]:not(old) + .option .option_check {\n  position: relative;\n  width: 2.5rem;\n  height: 2.5rem;\n  margin-top: 0;\n  margin-left: -2.5rem;\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(113 113 122 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.chameleon .input_wrap [type=radio]:not(old) + .option .option_text,\n.chameleon .input_wrap [type=checkbox]:not(old) + .option .option_text {\n  margin-left: 0.75rem;\n  line-height: 2.6rem;\n}\n.chameleon .input_wrap [type=radio]:not(old):disabled + .option .option_check,\n.chameleon .input_wrap [type=checkbox]:not(old):disabled + .option .option_check{\n  --tw-border-opacity: 1;\n  border-color: rgb(113 113 122 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(228 228 231 / var(--tw-bg-opacity));\n}\n.chameleon .input_wrap [type=radio]:not(old) + .option .option_check {\n  border-radius: 50%;\n}\n.chameleon .input_wrap.radio_checked .option_check::before {\n  margin: 0.4rem 0 0 0.4rem;\n  border-radius: 50%;\n  --tw-bg-opacity: 1;\n  background-color: rgb(33 126 38 / var(--tw-bg-opacity));\n  content: \"\";\n}\n.chameleon .input_wrap [type=checkbox]::not(old) + .option .option_check {\n  border-radius: 0.3rem;\n}\n.chameleon .input_wrap.checkbox_checked .option_check::before {\n  margin: 0.4rem 0 0 0.5rem;\n  --tw-text-opacity: 1;\n  color: rgb(33 126 38 / var(--tw-text-opacity));\n  font-family: \"am-icon-font\";\n  line-height: 1;\n  content: \"1\";\n}\n.chameleon .wysi_editor .editor-body {\n  width: 100%;\n  min-height: 3.5rem;\n  padding: 0.5rem;\n  border-radius: 0.3rem;\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  cursor: text;\n  box-shadow: 0 0 0.4rem #999 inset;\n}\n.chameleon .wysi_editor .btn {\n  vertical-align: top;\n}\n.chameleon .wysi--large .editor-body {\n  min-height: 20rem;\n}\n.chameleon .have_account {\n  margin-top: 2rem;\n}\n.chameleon .fail-login-show{\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n.chameleon .fail-login-hide{\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n  display: none;\n}\n.chameleon .group_memberships .th_active,\n.chameleon .group_memberships .th_role {\n  width: 16.666%;\n}\n.chameleon #ft-levity-login {\n  padding: 2.5rem 2rem;\n}\n.chameleon #ft-levity-login form {\n  margin-bottom: 1.5rem;\n}\n.chameleon #ft-levity-login form label {\n  display: inline-block;\n  margin-bottom: 0.5rem;\n  color: #4d4c4a;\n  font-weight: 700;\n}\n.chameleon #ft-levity-login form input {\n  margin-bottom: 1rem;\n}\n.chameleon #ft-levity-login form button {\n  display: block;\n  margin: 1.5rem auto 2.25rem;\n  height: 3.6rem;\n  padding: 0 1.2rem;\n  line-height: 3.5rem;\n  --tw-bg-opacity: 1;\n  background-color: rgb(1 92 176 / var(--tw-bg-opacity));\n}\n.chameleon #ft-levity-login form button:hover{\n  --tw-bg-opacity: 1;\n  background-color: rgb(3 64 136 / var(--tw-bg-opacity));\n}\n.chameleon #ft-levity-login form button {\n  width: 13rem;\n}\n.chameleon #ft-levity-login form button.login_form {\n  display: block;\n  margin: 0 auto;\n}\n.chameleon #ft-levity-login p {\n  line-height: 2.75rem;\n  margin-bottom: 0;\n}\n.chameleon .powered_by {\n  position: fixed;\n  bottom: 0;\n  left: 0;\n  width: 11rem;\n  height: 3rem;\n  padding: 0.5rem;\n  border-radius: 0 0.3rem 0 0;\n  border-top-right-radius: 0.375rem;\n  border-bottom-right-radius: 0.375rem;\n  border-top-width: 1px;\n  border-right-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  z-index: 110;\n}\n.chameleon .tooltip,\n.chameleon .modal.overlay > .contents {\n  margin: 0;\n  padding: 1rem 1rem 1.25rem;\n  transition: opacity 1s ease;\n  border-radius: 0.3rem;\n  background: rgb(255, 255, 255);\n  color: #666;\n  text-align: left;\n  box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.4);\n  z-index: 1000;\n}\n.chameleon .tooltip {\n  pointer-events: none;\n}\n.chameleon .tooltip > ul {\n  margin: 0;\n  padding-left: 1em;\n}\n.chameleon .overlay.hidden {\n  opacity: 0;\n}\n.chameleon .modal.overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  min-height: 100vh;\n  background: rgba(255, 255, 255, 0.9);\n  z-index: 100;\n}\n.chameleon .modal.overlay > .contents {\n  position: fixed;\n  top: 7.5rem;\n  left: 50%;\n  width: 96%;\n  max-width: 40rem;\n  max-height: 96%;\n  max-height: 96vh;\n  transform: translateX(-50%);\n  padding: 0;\n  box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.3);\n  box-sizing: border-box;\n  overflow-y: auto;\n}\n.chameleon .modal.overlay > .contents p {\n  margin-bottom: 2.5rem;\n}\n.chameleon .modal.overlay > .contents.contents_large {\n  top: 7.5rem;\n  bottom: 2.5rem;\n  max-width: 65rem;\n  margin-left: 0;\n  transform: translateX(-50%);\n}\n.chameleon .modal_close {\n  position: absolute !important;\n  top: 7.5rem;\n  right: 2.5rem;\n  z-index: 10000;\n}\n.chameleon .modal.modal_video.overlay > .contents {\n  top: 7.5rem;\n  width: 90vm;\n  width: 90vmin;\n  max-width: 1200px;\n  margin-left: 0;\n  transform: translateX(-50%);\n}\n.chameleon .modal_video .modal_video_content {\n  padding: 1.25rem;\n}\n.chameleon .modal_video .modal_close {\n  top: 1.25rem;\n  right: 1.25rem;\n}\n.chameleon .no-flexbox .ViewMembers__table-header::before, .chameleon .no-flexbox .launchpad__columns::before, .chameleon .launchpad__title.launchpad--has_svg_logo::before, .chameleon .form_controls::before, .chameleon .no-flexbox .ViewMembers__table-header::after, .chameleon .no-flexbox .launchpad__columns::after, .chameleon .launchpad__title.launchpad--has_svg_logo::after, .chameleon .form_controls::after {\n  display: table;\n  content: \" \";\n}\n.chameleon .no-flexbox .ViewMembers__table-header::after, .chameleon .no-flexbox .launchpad__columns::after, .chameleon .launchpad__title.launchpad--has_svg_logo::after, .chameleon .form_controls::after {\n  clear: both;\n}\n.chameleon .launchpad__columns {\n  align-items: flex-start;\n  justify-content: center;\n}\n.chameleon .launchpad__columns > div {\n  flex-basis: 50%;\n}\n.chameleon .ap_apps {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-start;\n  justify-content: center;\n  margin-left: 0;\n}\n.chameleon .launchpad {\n  max-width: 700px;\n  margin: 0 0.75rem 2.5rem !important;\n  flex-grow: 1;\n}\n.chameleon .launchpad__title {\n  padding: 0.01rem 1.25rem 2.304em;\n  border-bottom-width: 4px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(1 92 176 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(212 212 216 / var(--tw-bg-opacity));\n}\n.chameleon .launchpad__title .logo_wrap {\n  float: left;\n}\n.chameleon .launchpad__title svg {\n  max-width: 100%;\n}\n.chameleon .launchpad__title.launchpad--has_group_mgmt {\n  padding-top: 3.45rem;\n  padding-bottom: 4.75rem;\n  text-align: right;\n}\n.chameleon .launchpoint {\n  display: flex;\n  padding: 0 1.25rem 1.25em;\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n  justify-content: space-between;\n  align-items: stretch;\n}\n.chameleon .launchpoint .launchpoint__title {\n  padding-right: 1.25rem;\n}\n.chameleon .launchpoint .launchpoint__action {\n  min-width: 12rem;\n}\n.chameleon .launchpoint .launchpoint__action .btn {\n  display: block;\n  width: 100%;\n  max-width: 16rem;\n  margin-top: 1.25em;\n  text-align: center;\n  white-space: nowrap;\n}\n.chameleon .launchpoint.draft{\n  border-width: 2px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(1 92 176 / var(--tw-bg-opacity));\n}\n.chameleon .join_group {\n  text-align: left;\n}\n.chameleon .join_group h3 {\n  margin-top: 0.3125em;\n}\n.chameleon .join_group .join_group__input_wrap {\n  display: flex;\n  min-width: 24rem;\n  margin: 1.5rem 0;\n}\n.chameleon .join_group .join_group__input_wrap .input--type_text {\n  max-width: 14rem;\n  flex-grow: 1;\n}\n.chameleon .join_group .join_group__input_wrap .btn {\n  min-width: 8rem;\n  margin-left: 1rem;\n  flex: 1;\n}\n.chameleon .no-flexbox .launchpad__columns {\n  display: block;\n}\n.chameleon .no-flexbox .ap_apps > .launchpad {\n  width: 100%;\n}\n.chameleon .no-flexbox .launchpad {\n  width: 47.5%;\n  display: block;\n}\n.chameleon .no-flexbox .launchpad:nth-child(odd) {\n  float: left;\n}\n.chameleon .no-flexbox .launchpad:nth-child(even) {\n  float: right;\n}\n.chameleon .no-flexbox .launchpad__title {\n  overflow: auto;\n}\n.chameleon .no-flexbox .launchpad__title .apinsight-logo {\n  width: 156px;\n  float: left;\n}\n.chameleon .no-flexbox .launchpoint {\n  display: block;\n  flex: none;\n  overflow: hidden;\n}\n.chameleon .no-flexbox .launchpoint .launchpoint__title {\n  width: calc(100% - 12rem);\n  float: left;\n}\n.chameleon .no-flexbox .launchpoint .launchpoint__action {\n  width: 12rem;\n  overflow: hidden;\n}\n.chameleon .input--type_radio {\n  margin: 0;\n  cursor: pointer;\n}\n.chameleon .input--type_radio [type=radio] {\n  margin-right: 0.5rem;\n}\n.chameleon .input--type_radio span {\n  display: inline-block !important;\n}\n.chameleon .rich_title_wrapper ul {\n  padding: 0 0 0 2.5rem !important;\n  list-style-type: disc;\n}\n.chameleon .rich_title_wrapper.default {\n  max-width: 45em;\n}\n.chameleon .rich_title_wrapper li > p {\n  margin: 0;\n}\n.chameleon .rich_title_wrapper p {\n  margin: 0;\n}\n.chameleon .role-select {\n  position: relative;\n}\n.chameleon .role-select .popover {\n  width: 100%;\n}\n.chameleon .role-select .pop_over_toggle {\n  display: block;\n  text-align: center;\n  width: 100%;\n}\n.chameleon .role-select .btn {\n  text-transform: capitalize;\n  margin-bottom: 0;\n}\n.chameleon .role-select .svg-icon {\n  margin-right: 0;\n  margin-left: 1rem;\n  vertical-align: text-top;\n}\n.chameleon .role-select > select {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  cursor: pointer;\n}\n.chameleon .role-select > select:not(:active) {\n  opacity: 0;\n}\n.chameleon .role-select__selector h3 {\n  margin-top: 0;\n}\n.chameleon .role-select__buttons .btn + .btn {\n  margin-left: 1rem;\n}\n.chameleon .input--type_select {\n  display: inline-block;\n  position: relative;\n  width: auto;\n  border-radius: 0.3rem;\n  background: rgba(0, 0, 0, 0.1);\n  overflow: hidden;\n}\n.chameleon .input--type_select::after {\n  position: absolute;\n  top: 0;\n  right: 0;\n  background: rgba(0, 0, 0, 0.1);\n  text-align: center;\n  content: \"▼\";\n  vertical-align: bottom;\n  z-index: 1;\n  --tw-text-opacity: 1;\n  color: rgb(30 30 30 / var(--tw-text-opacity));\n}\n.chameleon .input--type_select select {\n  position: relative;\n  width: calc(100% + 5.5rem);\n  padding-left: 1rem;\n  border: 0;\n  background: transparent;\n  color: #555;\n  font-size: 1.4rem;\n  text-transform: capitalize;\n  z-index: 10;\n  -webkit-appearance: none;\n}\n.chameleon .input--type_select select:hover {\n  cursor: pointer;\n}\n.chameleon .input--type_select.input--size_small {\n  height: 2.6rem;\n}\n.chameleon .input--type_select.input--size_small::after {\n  width: 2.6rem;\n  height: 2.6rem;\n  font-size: 1.04rem;\n  line-height: 26px;\n}\n.chameleon .input--type_select.input--size_small select {\n  height: 2.6rem;\n  padding-right: 3.6rem;\n}\n.chameleon .input--type_select.input--size_medium {\n  height: 3.6rem;\n}\n.chameleon .input--type_select.input--size_medium::after {\n  width: 3.6rem;\n  height: 3.6rem;\n  font-size: 1.44rem;\n  line-height: 36px;\n}\n.chameleon .input--type_select.input--size_medium select {\n  height: 3.6rem;\n  padding-right: 4.6rem;\n  font-size: 1.6rem;\n}\n.chameleon .slide_switch {\n  display: inline-block;\n  height: 3.6rem;\n  padding-top: 0.4rem;\n  font-size: 1.2rem;\n  text-align: left;\n  text-transform: uppercase;\n}\n.chameleon .slide_switch > div {\n  display: table-row;\n  cursor: pointer;\n  -webkit-user-select: none;\n     -moz-user-select: none;\n          user-select: none;\n}\n.chameleon .slide_switch span {\n  display: table-cell;\n  padding: 0 0.5rem;\n  line-height: 2.5;\n  vertical-align: middle;\n}\n.chameleon .slide_switch [type=checkbox] {\n  display: none;\n  margin: 0;\n  padding: 0;\n}\n.chameleon .slide_switch .switch_outter {\n  display: inline-block;\n  position: relative;\n  width: 5rem;\n  height: 2.6rem;\n  padding: 0;\n  transition: background 0.25s ease;\n  border-radius: 1.3rem;\n  --tw-bg-opacity: 1;\n  background-color: rgb(113 113 122 / var(--tw-bg-opacity));\n}\n.chameleon .slide_switch .switch_outter.disabled{\n  --tw-bg-opacity: 1;\n  background-color: rgb(212 212 216 / var(--tw-bg-opacity));\n}\n.chameleon .slide_switch .switch_toggle {\n  display: inline-block;\n  position: absolute;\n  width: 2rem;\n  height: 2rem;\n  margin-top: 0.3rem;\n  margin-left: 0.3rem;\n  padding: 0;\n  float: left;\n  transition: margin 0.25s ease;\n  border-radius: 50%;\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.chameleon .slide_switch.switch_on .switch_toggle {\n  margin-left: 2.7rem;\n}\n.chameleon .slide_switch.switch_on .switch_outter{\n  --tw-bg-opacity: 1;\n  background-color: rgb(33 126 38 / var(--tw-bg-opacity));\n}\n.chameleon .slide_switch.switch_on .switch_outter.disabled {\n  opacity: 0.5;\n}\n.chameleon .subjects-preview {\n  display: flex;\n  min-height: 100vh;\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.chameleon .subjects-preview .container {\n  margin: 15px auto;\n  min-width: 450px;\n  width: auto;\n}\n.chameleon .subjects-preview .header {\n  display: flex;\n  align-items: center;\n}\n.chameleon .subjects-preview .header .title {\n  flex: 1;\n  margin: 0 !important;\n  font-size: 24px;\n  font-weight: 400;\n}\n.chameleon .subjects-preview .subject_selector {\n  margin-left: 1rem;\n  margin-top: 0.5rem;\n}\n.chameleon .subjects-preview .subsel__label {\n  display: inline-block;\n  font-family: Roboto;\n  align-items: center;\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1.4;\n  text-align: left;\n  color: #0075c8;\n  padding-top: 25px;\n  padding-bottom: 15px;\n  display: flex;\n  height: 100%;\n}\n.chameleon .subjects-preview .subsel__label .svg-icon {\n  width: 13.5px !important;\n  height: 13.5px !important;\n}\n.chameleon .subjects-preview label {\n  padding: 0 14px;\n  margin-bottom: 0%;\n}\n.chameleon .bottom-line {\n  height: 15px;\n  border-bottom-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(212 212 216 / var(--tw-border-opacity));\n}\n.chameleon .no_btn {\n  border: 0;\n  padding: 0;\n  background: initial;\n}\n.chameleon .units_title {\n  margin: 0 auto;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n}\n.chameleon .units_title .left {\n  margin-right: auto;\n  width: 100%;\n}\n.chameleon .right {\n  float: right;\n}\n.chameleon .subjects ul {\n  list-style: none;\n  padding: 0;\n}\n.chameleon .subjects ul li {\n  margin-bottom: 9px;\n}\n.chameleon .subjects ul li a {\n  padding: 18px 22px;\n  display: block;\n  --tw-bg-opacity: 1;\n  background-color: rgb(244 244 245 / var(--tw-bg-opacity));\n  border-top: solid 1px #d9d9d9;\n}\n.chameleon .subjects ul li a label {\n  cursor: pointer;\n  color: #0075c8;\n  font-size: 18px;\n  font-weight: 500;\n}\n.chameleon .subjects ul li a svg {\n  float: right;\n  margin-top: 7px;\n}\n.chameleon .tabs {\n  display: flex;\n  flex-direction: row;\n}\n.chameleon .tabs a {\n  cursor: pointer;\n  transition: all 0.125s ease;\n  border-style: solid;\n  text-align: center;\n  align-self: stretch;\n}\n.chameleon .tabs a.active {\n  outline: none;\n}\n.chameleon .tabs.tabs--direction_vert {\n  flex-direction: column;\n}\n.chameleon .tabs--style_tabs a {\n  margin-right: 0.2rem;\n  margin-bottom: -0.1rem;\n  border-width: 0.1rem 0.1rem 0;\n  border-radius: 0.3rem 0.3rem 0 0;\n  border-color: transparent;\n}\n.chameleon .tabs--style_tabs a.active, .chameleon .tabs--style_tabs a:hover {\n  border-width: 0.1rem 0.1rem 0;\n  border-style: solid;\n}\n.chameleon .tabs--style_tabs a[disabled] {\n  border-width: 0.1rem;\n  border-style: solid;\n}\n.chameleon .tabs--style_tabs.tabs--direction_vert a {\n  margin: 0 0 0.2rem -0.1rem;\n  border-width: 0.1rem;\n  border-style: solid;\n  align-self: stretch;\n}\n.chameleon .tabs--style_bar a {\n  margin: 0 0.2rem 0 0;\n  border-width: 0 0 0.3rem;\n  border-color: transparent;\n}\n.chameleon .tabs--style_bar.tabs--direction_vert a {\n  margin: 0 0 0.2rem;\n  border-width: 0 0 0 0.3rem;\n}\n.chameleon .tabs--size_default {\n  min-height: 3.6rem;\n}\n.chameleon .tabs--size_default.tabs--direction_vert {\n  height: auto;\n}\n.chameleon .tabs--size_default.tabs--direction_vert a {\n  min-height: 3.6rem;\n}\n.chameleon .tabs--size_large {\n  min-height: 5rem;\n}\n.chameleon .tabs--size_large.tabs--direction_vert {\n  height: auto;\n}\n.chameleon .tabs--size_large.tabs--direction_vert a {\n  min-height: 5rem;\n}\n.chameleon .no-flexbox .tabs a {\n  display: inline-block;\n}\n.chameleon .no-flexbox .tabs.tabs--direction_vert a {\n  display: block;\n}\n.chameleon [role=tabpanel]:focus {\n  outline: none;\n}\n/*\n  Please note the support of sticky positioning:\n  Not supported by IE, Opera Mini and Edge lower than v16.\n*/\n.chameleon .cell-with-popover {\n  display: flex;\n  justify-content: space-between;\n}\n.chameleon .cell-with-popover > .popover {\n  margin: 0 10px;\n}\n.chameleon .table--grouped .gray{\n  --tw-bg-opacity: 1;\n  background-color: rgb(244 244 245 / var(--tw-bg-opacity));\n}\n.chameleon .table--grouped .MuiTableHead-root {\n  border-bottom: none;\n}\n.chameleon .table--grouped .MuiTableCell-head{\n  --tw-text-opacity: 1;\n  color: rgb(21 21 21 / var(--tw-text-opacity));\n}\n.chameleon .table--grouped .MuiTableCell-root,\n.chameleon .table--grouped th[class^=MuiTableCell-root-] {\n  font-size: 14px;\n}\n.chameleon .table--grouped th,\n.chameleon .table--grouped td {\n  font-size: 14px;\n  border: none;\n  word-break: break-word;\n}\n.chameleon :export {\n  small: 471;\n  smallplus: 568;\n  medium: 768;\n  large: 1024;\n  mobile: 767;\n}\n.chameleon .MuiTabs-root .MuiTabs-scrollable {\n  margin-bottom: 0 !important;\n  overflow-x: hidden;\n}\n.chameleon .MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar {\n  display: none;\n}\n.chameleon .MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar-track {\n  all: unset;\n}\n.chameleon .MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar-thumb {\n  all: unset;\n}\n.chameleon .MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar-thumb:window-inactive {\n  all: unset;\n}\n.chameleon .MuiTabs-root .MuiButtonBase-root:not(.Mui-selected){\n  border-bottom-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-bottom-color: rgb(244 244 245 / var(--tw-border-opacity));\n}\n.chameleon .mobile-tabs.is-sticky {\n  position: fixed;\n  top: 0;\n  z-index: 12;\n  width: 100%;\n}\n.chameleon .mobile-tabs .mobile-tabs-root{\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  padding-bottom: 2px;\n}\n.chameleon .mobile-tabs .mobile-tabs-root .MuiButtonBase-root:not(.Mui-selected) {\n  border-bottom: none;\n}\n.chameleon .mobile-tabs .mobile-tabs-item {\n  outline: 0;\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n  font-size: 16px;\n  font-weight: 500;\n  letter-spacing: -0.2px;\n  opacity: 1;\n}\n.chameleon .mobile-tabs .mobile-tabs-item-is-selected {\n  color: #1e1e1e;\n}\n.chameleon .mobile-tabs .mobile-tabs-selected-indicator {\n  display: block;\n  background-color: #1e1e1e;\n}\n@media only screen and (max-width: 767px) {\n  .chameleon .MuiTabs-root .MuiTabs-scrollable {\n    overflow-x: scroll;\n  }\n}\n.chameleon :export {\n  small: 471;\n  smallplus: 568;\n  medium: 768;\n  large: 1024;\n  mobile: 767;\n  primary: #0076c4;\n  secondary: #1e1e1e;\n  error: #e75b6b;\n  tabsEdge: #ececec;\n  dark: #1e1e1e;\n  border: #d9d9d9;\n  blue: #0076c4;\n  white: #fff;\n  gray: #999896;\n  focusColor: rgba(0, 156, 222, 0.8);\n  focusRadius: 3px;\n  border: 1px solid #ececec;\n  padding: 8px 16px;\n  fontWeight: 500;\n  fontWeightSelected: 400;\n  boxShadowSelected: inset 0 0 0 1px #ececec;\n  minHeight: 49px;\n  scrollButtonsWidth: 32px;\n  marginBottom: 20px;\n  tabsBorderBottom: 3px solid transparent;\n  tabSelectedBorderBottom: 1px solid #ffffff;\n  tabWidthLg: 200px;\n  tabWidthMd: 150px;\n  lineHeight: 1.44;\n  colorFade: rgba(255, 255, 255, 0.8);\n}\n.chameleon .react-tabs {\n  -webkit-tap-highlight-color: transparent;\n  min-height: 49px;\n}\n.chameleon .react-tabs__tab-list{\n  border-bottom-width: 1px;\n  --tw-border-opacity: 1;\n  border-bottom-color: rgb(244 244 245 / var(--tw-border-opacity));\n  margin: 0 0 20px;\n  padding: 0;\n}\n.chameleon .react-tabs__tab-list::after {\n  content: \"\";\n}\n.chameleon .react-tabs__tab {\n  display: inline-block;\n  border: 1px solid transparent;\n  border-bottom: none;\n  bottom: -1px;\n  position: relative;\n  list-style: none;\n  cursor: pointer;\n  align-items: center;\n  flex-basis: 100%;\n  padding: 8px 16px;\n  text-align: center;\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n  font-weight: 500;\n}\n.chameleon .react-tabs__tab--selected {\n  font-weight: 400;\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  border-color: #ececec;\n  color: #1e1e1e;\n  position: relative;\n  z-index: -1;\n}\n.chameleon .react-tabs__tab--selected:focus {\n  box-shadow: none;\n}\n.chameleon .react-tabs__tab--disabled{\n  --tw-text-opacity: 1;\n  color: rgb(113 113 122 / var(--tw-text-opacity));\n  cursor: default;\n}\n.chameleon .react-tabs__tab-panel {\n  display: none;\n}\n.chameleon .react-tabs__tab-panel--selected {\n  display: block;\n}\n.chameleon .tabs{\n  border-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(212 212 216 / var(--tw-border-opacity));\n}\n.chameleon .tabs.tabs--direction_vert{\n  border-left-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(212 212 216 / var(--tw-border-opacity));\n}\n.chameleon .tabs--style_tabs {\n  padding-top: 0.5rem;\n}\n.chameleon .tabs--style_tabs a:hover {\n  border-bottom-width: 0.1rem;\n  --tw-border-opacity: 1;\n  border-color: rgb(212 212 216 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(1 92 176 / var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(0 119 200 / var(--tw-text-opacity));\n}\n.chameleon .tabs--style_tabs a.active{\n  border-top-width: 1px;\n  border-right-width: 1px;\n  border-left-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(212 212 216 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(30 30 30 / var(--tw-text-opacity));\n  box-shadow: 0 -0.33rem 1rem -0.5rem rgba(0, 0, 0, 0.33);\n}\n.chameleon .tabs--style_tabs a[disabled]{\n  --tw-text-opacity: 1;\n  color: rgb(161 161 170 / var(--tw-text-opacity));\n}\n.chameleon .tabs--style_tabs a[disabled]:hover{\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(161 161 170 / var(--tw-text-opacity));\n  cursor: not-allowed;\n}\n.chameleon .tabs--style_tabs.tabs--direction_vert a {\n  border-radius: 0 0.3rem 0.3rem 0;\n}\n.chameleon .tabs--style_tabs.tabs--direction_vert a:hover{\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n}\n.chameleon .tabs--style_tabs.tabs--direction_vert a.active{\n  border-top-width: 1px;\n  border-right-width: 1px;\n  border-bottom-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.chameleon .tabs--style_bar{\n  border-bottom-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n}\n.chameleon .tabs--style_bar a:hover{\n  --tw-border-opacity: 1;\n  border-color: rgb(0 119 200 / var(--tw-border-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(0 119 200 / var(--tw-text-opacity));\n}\n.chameleon .tabs--style_bar a.active{\n  border-bottom-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(1 92 176 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.chameleon .tabs--style_bar a.active:hover{\n  --tw-border-opacity: 1;\n  border-color: rgb(1 92 176 / var(--tw-border-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n}\n.chameleon .tabs--style_bar a[disabled]{\n  --tw-text-opacity: 1;\n  color: rgb(161 161 170 / var(--tw-text-opacity));\n}\n.chameleon .tabs--style_bar a[disabled]:hover {\n  cursor: default;\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n  --tw-text-opacity: 1;\n  color: rgb(161 161 170 / var(--tw-text-opacity));\n}\n.chameleon .tabs--style_bar.tabs--direction_vert a.active{\n  border-left-width: 2px;\n  --tw-border-opacity: 1;\n  border-color: rgb(1 92 176 / var(--tw-border-opacity));\n}\n.chameleon .tabs--size_default a {\n  min-height: 3.6rem;\n  padding: 0.3225em 1.5em;\n  text-transform: capitalize;\n}\n.chameleon .tabs--size_large a {\n  min-height: 5rem;\n  padding: 0.645em 1.5em;\n  text-transform: capitalize;\n}\n.chameleon .input--type_text {\n  width: 100%;\n  padding: 0 0 0 0.33em;\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n  border-radius: 0.3rem;\n  box-sizing: border-box !important;\n}\n.chameleon .input--type_text.input--size_small {\n  height: 2.6rem;\n  line-height: 2.6rem;\n}\n.chameleon .input--type_text.input--size_medium {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-weight: 500;\n  -webkit-font-smoothing: antialiased;\n  height: 3.6rem;\n  font-size: 2.1rem;\n  line-height: 3.6rem;\n}\n.chameleon .input--type_text.input--size_large {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-weight: 500;\n  -webkit-font-smoothing: antialiased;\n  height: 5rem;\n  font-size: 3.2rem;\n  line-height: 5rem;\n}\n.chameleon .input--type_text--has_icon {\n  position: relative;\n}\n.chameleon .input--type_text--has_icon .svg-icon {\n  position: absolute;\n  left: 0;\n  bottom: 10%;\n}\n.chameleon .input--type_text--has_icon .input--size_small {\n  padding-left: 2.8rem;\n}\n.chameleon .input--type_text--has_icon .input--size_medium {\n  padding-left: 3.675rem;\n}\n.chameleon .input--type_text--has_icon .input--size_large {\n  padding-left: 4.675rem;\n}\n.chameleon .input--type_textarea {\n  width: 100%;\n  padding: 0 0 0 0.33em;\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n  border-radius: 0.3rem;\n  box-sizing: border-box !important;\n}\n.chameleon .input--type_textarea.input--size_small {\n  height: 5rem;\n}\n.chameleon .input--type_textarea.input--size_medium {\n  height: 15rem;\n}\n.chameleon .input--type_textarea.input--size_large {\n  height: 35rem;\n}\n.chameleon .student-todo-carousel {\n  height: 240px;\n}\n.chameleon :export {\n  small: 471;\n  smallplus: 568;\n  medium: 768;\n  large: 1024;\n  mobile: 767;\n}\n.chameleon .section_banner {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0 1rem;\n}\n.chameleon .user_details {\n  margin-bottom: 2.6rem;\n}\n.chameleon .user_details .section_banner {\n  border-top: 0;\n}\n.chameleon .staff_toolbar {\n  padding: 1.25rem 1.25rem 1.25rem 1.22rem;\n  border-width: 0.1rem 0 0.1rem 0.3rem;\n  border-style: solid;\n  border-left-width: 1px;\n  border-color: rgb(228 228 231 / var(--tw-border-opacity));\n  --tw-border-opacity: 1;\n  border-color: rgb(1 92 176 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(228 228 231 / var(--tw-bg-opacity));\n}\n.chameleon .staff_toolbar .btn {\n  margin-top: 1.25rem;\n}\n.chameleon .staff_toolbar h5 {\n  display: inline;\n  margin-right: 0.5rem;\n  --tw-text-opacity: 1;\n  color: rgb(113 113 122 / var(--tw-text-opacity));\n  text-transform: uppercase;\n}\n@media only screen and (min-width: 768px) {\n  .chameleon .staff_toolbar div {\n    width: 60%;\n    float: left;\n  }\n  .chameleon .staff_toolbar .btn {\n    margin-top: -4.4rem;\n  }\n  .chameleon .staff_toolbar div {\n    width: 37.5%;\n  }\n  .chameleon .staff_toolbar h5 {\n    display: inline;\n  }\n  .chameleon .staff_toolbar .btn {\n    margin-top: 0;\n  }\n}\n.chameleon .edit_user_form {\n  padding: 1.25rem 1.25rem 1.25rem 0;\n}\n.chameleon .edit_user_form label,\n.chameleon .edit_user_form .form_controls {\n  width: 100%;\n  margin-bottom: 1.25rem;\n  padding: 0 0 0 1.25rem;\n}\n@media only screen and (min-width: 768px) {\n  .chameleon .edit_user_form label,\n  .chameleon .edit_user_form .form_controls {\n    width: 50%;\n  }\n}\n.chameleon .edit_user_form .form_controls {\n  line-height: 3.6rem;\n}\n.chameleon .edit_user_form .input--type_text {\n  width: 100%;\n}\n.chameleon .reset_password {\n  width: 20rem;\n  white-space: nowrap;\n}\n.chameleon .reset_password span {\n  margin-right: 0.5rem;\n  --tw-text-opacity: 1;\n  color: rgb(113 113 122 / var(--tw-text-opacity));\n}\n.chameleon .user_memberships_table .th_type,\n.chameleon .user_memberships_table .th_active,\n.chameleon .user_memberships_table .th_role {\n  width: 16.666%;\n}\n.chameleon .user_search_form .user_search_toolbar {\n  align-items: flex-end;\n}\n.chameleon .user_search_form .user_search_opt__role,\n.chameleon .user_search_form .user_search_opt__active {\n  height: 5rem;\n}\n.chameleon .user_search_form--lite .input--type_text__wrapper {\n  margin-bottom: 1.25rem;\n}\n.chameleon .no-flexbox .ViewMembers__table-header::before, .chameleon .form_controls::before, .chameleon .launchpad__title.launchpad--has_svg_logo::before, .chameleon .no-flexbox .launchpad__columns::before, .chameleon .no-flexbox .ViewMembers__table-header::after, .chameleon .form_controls::after, .chameleon .launchpad__title.launchpad--has_svg_logo::after, .chameleon .no-flexbox .launchpad__columns::after {\n  display: table;\n  content: \" \";\n}\n.chameleon .no-flexbox .ViewMembers__table-header::after, .chameleon .form_controls::after, .chameleon .launchpad__title.launchpad--has_svg_logo::after, .chameleon .no-flexbox .launchpad__columns::after {\n  clear: both;\n}\n.chameleon .ViewMembers .ViewMembers__table-header {\n  padding: 1rem;\n  display: flex;\n  flex-wrap: wrap;\n}\n.chameleon .ViewMembers .ViewMembers__table-heading {\n  margin-top: 0;\n  margin-bottom: 0;\n}\n.chameleon .ViewMembers .ViewMembers__member_actions {\n  margin-left: auto;\n}\n.chameleon .ViewMembers .ViewMembers__member_actions .svg-icon {\n  vertical-align: text-top;\n  margin-left: 0;\n}\n.chameleon .ViewMembers .ViewMembers__member_actions .btn + .btn {\n  margin-left: 1rem;\n}\n.chameleon .no-flexbox .ViewMembers__table-heading {\n  float: left;\n}\n.chameleon .no-flexbox .ViewMembers__member_actions {\n  float: right;\n}\n.chameleon .wizard_frame {\n  width: 100%;\n  height: 500px;\n  border: hidden;\n  margin: 0 auto;\n}\n.chameleon .decision_course {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-weight: 700;\n  font-size: 20px;\n  text-align: left;\n  padding-top: 12px;\n}\n.chameleon .decision_footer {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  padding: 12px 0 12px 0;\n}\n.chameleon .decision_response {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 16px;\n  margin: 6px 0 6px 0;\n}\n.chameleon .wizard_buttons {\n  padding-top: 20px;\n  display: flex;\n  flex-direction: row;\n  line-height: 20px;\n}\n.chameleon .wizard_buttons .continue_button {\n  display: flex;\n  align-items: center;\n  padding: 6px 12px;\n}\n.chameleon .wizard_buttons .continue_icon {\n  margin: 0 0 2px 2px;\n}\n.chameleon .wizard_buttons.video_response .watch_again {\n  display: flex;\n  align-items: center;\n  padding: 6px 12px;\n  background: rgba(21, 21, 21, 0.05);\n  border: 1px solid rgba(21, 21, 21, 0.05);\n  box-sizing: border-box;\n  border-radius: 50px;\n}\n.chameleon .wizard_buttons.video_response .watch_again_icon {\n  margin: 0 2px 2px 0;\n}\n.chameleon .wizard_buttons.video_response .respond_later_button{\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  border: 1px solid #52525b;\n  box-sizing: border-box;\n  border-radius: 50px;\n}\n.chameleon .wizard_buttons.video_response .submit_and_finish_button {\n  margin-left: 3%;\n}\n.chameleon .wizard_mobile_buttons {\n  padding-top: 20px;\n  display: flex;\n  flex-direction: column;\n  line-height: 20px;\n}\n.chameleon .wizard_mobile_buttons .watch_again {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  padding: 12px 30%;\n  background: rgba(21, 21, 21, 0.05);\n  border: 1px solid rgba(21, 21, 21, 0.05);\n  box-sizing: border-box;\n  border-radius: 50px;\n}\n.chameleon .wizard_mobile_buttons .watch_again_icon {\n  margin: 0 2px 2px 0;\n}\n.chameleon .wizard_mobile_buttons .respond_later_button{\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n  border: 1px solid #52525b;\n  box-sizing: border-box;\n  border-radius: 50px;\n  margin: 3% 0 3% 0;\n}\n.chameleon .wizard_icons {\n  padding-top: 3vh;\n}\n.chameleon .wizard_container {\n  height: 100vh;\n  padding: 0 0 10% 0;\n  --tw-bg-opacity: 1;\n  background-color: rgb(250 250 250 / var(--tw-bg-opacity));\n}\n.chameleon .wizard_header {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 28px;\n  padding-right: 10%;\n  padding-bottom: 25px;\n  width: 50%;\n}\n.chameleon .wizard_header .wizard_tag {\n  font-size: 16px;\n  line-height: 26px;\n  font-weight: 400;\n}\n.chameleon .wizard_mobile_header {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 28px;\n  padding-right: 10%;\n  padding-bottom: 25px;\n  width: 100%;\n}\n.chameleon .wizard_mobile_header .wizard_tag {\n  font-size: 14px;\n  line-height: 22px;\n  font-weight: 400;\n}\n.chameleon .wizard_response_header {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 36px;\n  font-weight: 700;\n  padding-right: 10%;\n  padding-bottom: 25px;\n  line-height: 48px;\n}\n.chameleon .wizard_response_mobile_header {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 24px;\n  font-weight: 700;\n  padding-right: 10%;\n  padding-bottom: 25px;\n  line-height: 32px;\n}\n.chameleon .wizard_title {\n  font-size: 48px;\n  font-weight: 700;\n  margin-top: 25px;\n  margin-bottom: 17px;\n  line-height: 64px;\n}\n.chameleon .wizard_mobile_title {\n  font-size: 36px;\n  font-weight: 700;\n  margin-top: 25px;\n  margin-bottom: 17px;\n  line-height: 48px;\n}\n.chameleon .wizard_watch_later {\n  color: #0054b6;\n  font-weight: 500;\n  font-size: 14px;\n  line-height: 170%;\n}\n.chameleon .video_container {\n  width: 80%;\n  padding-top: 14vh;\n  margin: 0 auto;\n  display: flex;\n  flex-direction: row;\n}\n.chameleon .video_mobile_container {\n  width: 95%;\n  margin: 0 auto;\n}\n.chameleon .video_wrapper {\n  width: 50%;\n  display: inline-block;\n  position: relative;\n}\n.chameleon .video_mobile_wrapper {\n  width: 100%;\n  height: 240px;\n  display: inline-block;\n  position: relative;\n}\n.chameleon .video_wrapper::after {\n  padding-top: 56.25vh;\n  /* 16:9 ratio */\n  display: block;\n  content: \"\";\n}\n.chameleon .wizard_response_container {\n  width: 80%;\n  padding: 10% 0 0 20%;\n}\n.chameleon .wizard_response_mobile_container {\n  width: 95%;\n  padding-top: 5vh;\n  margin: 0 auto;\n}\n.chameleon .wizard_mobile_tag {\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 21px;\n  color: #303030;\n}\n.chameleon .wizard_question {\n  font-family: Roboto, HelveticaNeue, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  margin-bottom: 20px;\n}\n.chameleon .wizard_question > .wizard_question_header {\n  font-size: 20px;\n  text-align: left;\n}\n.chameleon .wizard_question > .wizard_tag {\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  color: #303030;\n}\n.chameleon .wizard_question > .wizard_bold {\n  font-weight: 700;\n}\n.chameleon .wizard_question > .wizard_response {\n  margin-top: 15px;\n  width: 100%;\n  height: 150px;\n}\n.chameleon .wizard_question > .wizard_mobile_response {\n  margin-top: 15px;\n  width: 100%;\n  height: 200px;\n}\n.chameleon .wizard_question > textarea.wizard_response {\n  border: 1px solid #151515;\n  box-sizing: border-box;\n  border-radius: 6px;\n}\n.chameleon .wizard_question > textarea.wizard_mobile_response {\n  border: 1px solid #151515;\n  box-sizing: border-box;\n  border-radius: 6px;\n}\n.chameleon .wizard_response_ending_text {\n  font-size: 14px;\n  line-height: 16px;\n  color: #52525b;\n}\n.chameleon .wizard_steps {\n  margin-top: 10vh;\n  margin-left: 48%;\n  width: 6%;\n  min-width: 72px;\n}\n.chameleon .wizard_steps_icons {\n  display: flex;\n  flex-direction: row;\n}\n.chameleon .active_step_icon {\n  margin-right: 2%;\n  color: #0054b6;\n}\n.chameleon .inactive_step_icon {\n  margin-right: 2%;\n  color: #d4d4d8;\n}\n.chameleon .wizard_wizard_steps_text {\n  margin-left: -20%;\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 16px;\n}\n.chameleon .lrn-response-validate-wrapper.lrn_mcqgroup.lrn_mcqgroup-vertical, .chameleon .lrn-response-validate-wrapper.lrn_mcqgroup.lrn_mcqgroup-horizontal {\n  border: none !important;\n}\n.chameleon .Player-preview .lrn-response-validate-wrapper::after,\n.chameleon .TabsLayout .lrn-response-validate-wrapper::after {\n  content: none !important;\n}\n.chameleon .teacher-item-preview .lrn_mcqgroup {\n  display: none;\n}\n.chameleon .teacher-item-preview .learnosity-item .formatted_line_break {\n  display: block;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs {\n  flex-direction: column;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs {\n  padding: 0;\n  margin: 0;\n  list-style-type: none;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li,\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab {\n  display: inline-block;\n  float: none;\n  min-width: 110px;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li:after,\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab:after {\n  background: #1877b1;\n  border: none;\n  content: \"\";\n  display: block;\n  height: 2px;\n  outline: none;\n  transform: scaleX(0);\n  transition: all 0.2s ease-in-out;\n  width: 100%;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a,\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a {\n  color: #333;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active:after,\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active:after {\n  transform: scaleX(1);\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a,\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a {\n  color: #767676;\n  margin-right: 2px;\n  line-height: 1.42857;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  font-size: 85%;\n}\n.chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a:hover, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a:focus, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a:hover, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a:focus, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a:hover, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a:focus, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a:hover, .chameleon .teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a:focus {\n  background: none;\n  border: none;\n  outline: none;\n}\n.chameleon .teacher-item-preview .learnosity-item .row > .col-xs-12 > div {\n  height: auto !important;\n}\n.chameleon .learnosity-control-item .lrn_stimulus {\n  margin-bottom: 1em;\n}\n.chameleon .learnosity-control-item.--hide-response .lrn_response_wrapper {\n  display: none;\n}\n.chameleon .learnosity-control-item.--hide-question .lrn_sharedpassage,\n.chameleon .learnosity-control-item.--hide-question .lrn_question {\n  display: none;\n}\n.chameleon .learnosity-control-item.--hide-question .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper {\n  border: none;\n  padding: 0;\n}\n.chameleon .learnosity-control-item.--visible-all .lrn_response_wrapper,\n.chameleon .learnosity-control-item.--visible-all .lrn_sharedpassage,\n.chameleon .learnosity-control-item.--visible-all .lrn_question {\n  display: initial;\n}\n.chameleon .learnosity-control-item .lrn_box_skin_wrapper {\n  width: 100%;\n  max-width: 50em;\n}\n.chameleon .learnosity-control-item .lrn-toolbar {\n  display: none;\n}\n.chameleon .learnosity-control-item .lrn-toolbar-footer {\n  display: none;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper {\n  height: auto;\n  max-height: none;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper:empty::after {\n  content: \"No response entered\";\n  display: block;\n  padding: 10px;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-file-type-icon {\n  width: 30px;\n  display: block;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn_response_input_wrapper {\n  border: none;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-file-numerator {\n  display: none;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-list-container {\n  padding: 0;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-list-container ul {\n  padding: 0;\n  list-style: none;\n  display: block;\n  border-collapse: collapse;\n  width: 100%;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-list-container li {\n  border: none;\n  --tw-bg-opacity: 1;\n  background-color: rgb(244 244 245 / var(--tw-bg-opacity));\n  padding: 11px 23px;\n  display: flex;\n  align-items: center;\n  height: auto;\n  line-height: 1.4;\n  margin-bottom: 16px;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-filename {\n  overflow: hidden;\n  padding: 0 0 0 16px;\n  max-width: none;\n}\n.chameleon .learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-filename a{\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n  text-decoration: none;\n  font-weight: 500;\n}\n.chameleon .learnosity-control-item .row > .col-xs-12 > div,\n.chameleon .learnosity-control-item .row > .col-xs-6 > div {\n  height: auto !important;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-response .lrn_response_wrapper {\n  display: none;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item .lrn_widget.lrn_feature.lrn_scrollablepassage {\n  height: auto;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response .tei-distractor {\n  display: none;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_correctAnswers {\n  display: none;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response span.lrn_responseIndex {\n  background-color: #666;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response.lrn_item_teacher .lrn-hotspot-wrapper .lrn-polygons li {\n  background: transparent;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response.lrn_item_teacher .lrn-hotspot-wrapper .lrn-polygons .lrn_valid polygon {\n  fill: transparent;\n  stroke: transparent;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget .lrn_valid {\n  display: none;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget.lrn_clozetext .lrn_textinput.lrn_not_attempted .lrn_responseIndex {\n  background: #666;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text .lrn_token.lrn_valid {\n  background: transparent;\n  border-left-color: transparent !important;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text .lrn_token.lrn_valid:after {\n  display: none;\n}\n.chameleon .PlayerModeContainer--content .learnosity-item .row > .col-xs-12 > div {\n  height: auto !important;\n}\n.chameleon .show-correct-answers {\n  display: flex;\n  align-items: center;\n  font-family: \"Roboto\";\n  font-weight: 500;\n  justify-content: flex-end;\n  margin: 12px 0;\n}\n.chameleon .show-correct-answers .slide_switch {\n  margin-left: 16px;\n}\n.chameleon .lrn_widget span.lrn_responseIndex{\n  --tw-bg-opacity: 1;\n  background-color: rgb(20 98 43 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_widget.lrn_hotspot .lrn_correctAnswers {\n  display: none;\n}\n.chameleon .lrn_widget.lrn_clozetext .lrn_textinput.lrn_not_attempted .lrn_responseIndex{\n  --tw-bg-opacity: 1;\n  background-color: rgb(20 98 43 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_widget.lrn_clozetext .lrn_textinput.lrn_incorrect .lrn_responseIndex{\n  --tw-bg-opacity: 1;\n  background-color: rgb(193 49 69 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_display_correct_answer_enabled .lrn_widget.lrn_clozetext .lrn_textinput .lrn_responseIndex{\n  --tw-bg-opacity: 1;\n  background-color: rgb(20 98 43 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_widget .lrn_correctAnswers{\n  --tw-bg-opacity: 1 !important;\n  background-color: rgb(228 228 231 / var(--tw-bg-opacity)) !important;\n  border-left-width: 4px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(20 98 43 / var(--tw-border-opacity));\n}\n.chameleon .lrn_widget .lrn_correctAnswers .lrn_correctAnswerList li{\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_widget .lrn_correctAnswers .lrn_correctAnswerList li .lrn_responseIndex{\n  --tw-bg-opacity: 1;\n  background-color: rgb(20 98 43 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_widget .lrn-hotspot-wrapper .lrn-polygons li{\n  --tw-bg-opacity: 1;\n  background-color: rgb(20 98 43 / var(--tw-bg-opacity));\n}\n.chameleon .lrn_widget .lrn-hotspot-wrapper .lrn-polygons .lrn_valid polygon{\n  fill: currentColor !important;\n  stroke: currentColor !important;\n  color: rgb(20 98 43 / var(--tw-text-opacity)) !important;\n  --tw-text-opacity: 0.2 !important;\n}\n.chameleon .lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_correct .lrn_responseIndex{\n  --tw-bg-opacity: 1 !important;\n  background-color: rgb(20 98 43 / var(--tw-bg-opacity)) !important;\n}\n.chameleon .lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_correct .lrn_clozedropdown_answer:after{\n  --tw-text-opacity: 1 !important;\n  color: rgb(20 98 43 / var(--tw-text-opacity)) !important;\n}\n.chameleon .lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_incorrect .lrn_responseIndex{\n  --tw-bg-opacity: 1 !important;\n  background-color: rgb(193 49 69 / var(--tw-bg-opacity)) !important;\n}\n.chameleon .lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_incorrect .lrn_clozedropdown_answer:after{\n  --tw-text-opacity: 1 !important;\n  color: rgb(193 49 69 / var(--tw-text-opacity)) !important;\n}\n.chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_custom .lrn_token.lrn_valid, .chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_paragraph .lrn_token.lrn_valid{\n  --tw-bg-opacity: 1;\n  background-color: rgb(228 255 212 / var(--tw-bg-opacity));\n  border-left-width: 1px !important;\n  --tw-border-opacity: 1 !important;\n  border-color: rgb(20 98 43 / var(--tw-border-opacity)) !important;\n}\n.chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_custom .lrn_token.lrn_valid:after, .chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_paragraph .lrn_token.lrn_valid:after{\n  --tw-text-opacity: 1;\n  color: rgb(20 98 43 / var(--tw-text-opacity));\n}\n.chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_token.lrn_tokenhighlight_hover {\n  background: #ff9 !important;\n  border: 1px solid transparent;\n}\n.chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_token.lrn_tokenhighlight_hover:hover {\n  border-color: transparent !important;\n}\n.chameleon .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_token.lrn_valid{\n  border-left-width: 1px;\n  --tw-border-opacity: 1;\n  border-color: rgb(20 98 43 / var(--tw-border-opacity));\n}\n.chameleon .tei-distractor{\n  border-left-width: 4px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(20 98 43 / var(--tw-border-opacity));\n  --tw-bg-opacity: 1;\n  background-color: rgb(228 228 231 / var(--tw-bg-opacity));\n  padding: 24px 42px;\n}\n.chameleon .tei-distractor.unattempted {\n  font-weight: 500;\n  border-left: 4px solid #989795;\n  color: #989795;\n}\n.chameleon .tei-distractor:not(:last-child) {\n  margin-bottom: 16px;\n}\n.chameleon .tei-distractor p {\n  margin: 0;\n}\n.chameleon .lrn_response .lrn_display_correct_answer_enabled {\n  padding: 1em;\n}\n.chameleon .learnosity-item--hide-response .lrn_response_wrapper .lrn_player {\n  display: none;\n}\n.chameleon :export {\n  small: 471;\n  smallplus: 568;\n  medium: 768;\n  large: 1024;\n  mobile: 767;\n}\n@media only screen and (max-width: 767px) {\n  .chameleon .notification-wrapper,\n  .chameleon .toast-wrapper {\n    width: 100vw;\n  }\n  .chameleon .page_wrapper {\n    padding: 0;\n  }\n  .chameleon .page_wrapper > .welcome {\n    margin-left: 0;\n    margin-right: 0;\n  }\n  .chameleon .PageIndex {\n    padding: 0;\n  }\n  .chameleon .widget-wrapper {\n    margin: 24px 0;\n  }\n  .chameleon .Widget--label {\n    margin: 0;\n    font-weight: 400;\n    margin-left: 15px;\n    line-height: 1;\n  }\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/styles/Main.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Typography.scss\",\"webpack://./chameleon/legacy/src/styles/CheckBox.scss\",\"webpack://./chameleon/legacy/src/styles/Errors.scss\",\"webpack://./chameleon/legacy/src/styles/FilterToolbar.scss\",\"webpack://./chameleon/legacy/src/styles/Form.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Fonts.scss\",\"webpack://./chameleon/legacy/src/styles/Forms.scss\",\"webpack://./chameleon/legacy/src/styles/GroupMembershipsTable.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Grid.scss\",\"webpack://./chameleon/legacy/src/styles/LevityLogin.scss\",\"webpack://./chameleon/legacy/src/styles/Overlay.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Helpers.scss\",\"webpack://./chameleon/legacy/src/styles/Portal.scss\",\"webpack://./chameleon/legacy/src/styles/Radio.scss\",\"webpack://./chameleon/legacy/src/styles/RichTitle.scss\",\"webpack://./chameleon/legacy/src/styles/RoleSelect.scss\",\"webpack://./chameleon/legacy/src/styles/Select.scss\",\"webpack://./chameleon/legacy/src/styles/utility/InputSizes.scss\",\"webpack://./chameleon/legacy/src/styles/SlideSwitch.scss\",\"webpack://./chameleon/legacy/src/styles/SubjectsPreview.scss\",\"webpack://./chameleon/legacy/src/styles/SubjectsList.scss\",\"webpack://./chameleon/legacy/src/styles/Tabs.scss\",\"webpack://./chameleon/legacy/src/styles/Tables.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Breakpoints.scss\",\"webpack://./chameleon/legacy/src/styles/MuiTabs.scss\",\"webpack://./chameleon/legacy/src/styles/utility/Colors.scss\",\"webpack://./chameleon/legacy/src/styles/utility/OpTabs.scss\",\"webpack://./chameleon/legacy/src/styles/ReactTabs.scss\",\"webpack://./chameleon/legacy/src/styles/TabsTheme.scss\",\"webpack://./chameleon/legacy/src/styles/Text.scss\",\"webpack://./chameleon/legacy/src/styles/TextArea.scss\",\"webpack://./chameleon/legacy/src/styles/TodoCarousel.scss\",\"webpack://./chameleon/legacy/src/styles/User.scss\",\"webpack://./chameleon/legacy/src/styles/UserMembershipsTable.scss\",\"webpack://./chameleon/legacy/src/styles/UserSearchForm.scss\",\"webpack://./chameleon/legacy/src/styles/ViewMembers.scss\",\"webpack://./chameleon/legacy/src/styles/WizardModal.scss\",\"webpack://./chameleon/legacy/src/styles/Wizard.scss\",\"webpack://./chameleon/legacy/src/styles/learnosity/learnosityItemPreview.scss\",\"webpack://./chameleon/legacy/src/styles/responsive.scss\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\na {\\n  outline: 0;\\n  text-decoration: none;\\n  cursor: pointer;\\n}\\na:focus {\\n  outline: 0;\\n}\\na[disabled] {\\n  pointer-events: none;\\n}\\n\\n.larger {\\n  font-family: sans-serif;\\n  font-size: 175%;\\n  vertical-align: sub;\\n}\\n\\n.all-caps {\\n  text-transform: uppercase;\\n}\\n\\n.init_caps {\\n  text-transform: capitalize;\\n}\\n\\n.right_text {\\n  text-align: right;\\n}\\n\\n.center_text {\\n  text-align: center;\\n}\\n\\n.nowrap {\\n  white-space: nowrap;\\n}\\n\\n.pre-wrap {\\n  white-space: pre-wrap;\\n}\\n\\n.lettered {\\n  list-style-type: upper-alpha;\\n}\\n\\n.text_green {\\n  @apply text-green-600;\\n}\\n\\n.text_red {\\n  @apply text-red-500;\\n}\\n\\n.text_blue {\\n  @apply text-blue-700;\\n}\\n\\n.input--type_check {\\n  margin: 0;\\n}\\n.input--type_check [type=checkbox] {\\n  margin-right: 0.5rem;\\n}\\n.input--type_check span {\\n  display: inline-block !important;\\n}\\n\\n.error_validation {\\n  margin: 0;\\n  padding: 0;\\n  list-style: none;\\n}\\n\\n.ev__item {\\n  margin-top: 0.25rem;\\n  padding-left: 1em;\\n  @apply text-red-500;\\n  line-height: 1;\\n  text-indent: -1em;\\n}\\n.ev__item[data-icon-before]::before {\\n  margin-right: 0.25rem;\\n}\\n\\n.error {\\n  @apply text-red-600;\\n}\\n.error.svg-icon {\\n  @apply fill-current text-red-600;\\n}\\n\\n.error-wrap {\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n  width: 100%;\\n}\\n.error-wrap .error-msg {\\n  line-height: 2em;\\n}\\n\\n.toolbar {\\n  padding: 1.25rem;\\n}\\n\\n.filter_toolbar .actions_wrapper {\\n  margin-bottom: 1.25rem;\\n}\\n.filter_toolbar [data-icon-before=\\\"+\\\"] {\\n  float: right;\\n  clear: right;\\n}\\n.filter_toolbar .user_search_form .input--type_text__wrapper,\\n.filter_toolbar .group_search_form .input--type_text__wrapper {\\n  width: 100%;\\n  margin-bottom: 0.5rem;\\n}\\n.filter_toolbar .user_search_form label,\\n.filter_toolbar .user_search_form .btn,\\n.filter_toolbar .group_search_form label,\\n.filter_toolbar .group_search_form .btn {\\n  align-self: flex-end;\\n}\\n.filter_toolbar .user_search_form label,\\n.filter_toolbar .group_search_form label {\\n  height: 5rem;\\n}\\n.filter_toolbar .user_search_form label .input--type_select,\\n.filter_toolbar .group_search_form label .input--type_select {\\n  width: 100%;\\n}\\n.filter_toolbar .user_search_form label,\\n.filter_toolbar .group_search_form label {\\n  flex: 2;\\n}\\n.filter_toolbar .user_search_form.user_search_form--large, .filter_toolbar .user_search_form.group_search_form--large,\\n.filter_toolbar .group_search_form.user_search_form--large,\\n.filter_toolbar .group_search_form.group_search_form--large {\\n  display: flex;\\n  width: 100%;\\n}\\n.filter_toolbar .user_search_form.user_search_form--large .input--type_text__wrapper,\\n.filter_toolbar .user_search_form.user_search_form--large .user_search_toolbar,\\n.filter_toolbar .user_search_form.user_search_form--large .group_search_toolbar, .filter_toolbar .user_search_form.group_search_form--large .input--type_text__wrapper,\\n.filter_toolbar .user_search_form.group_search_form--large .user_search_toolbar,\\n.filter_toolbar .user_search_form.group_search_form--large .group_search_toolbar,\\n.filter_toolbar .group_search_form.user_search_form--large .input--type_text__wrapper,\\n.filter_toolbar .group_search_form.user_search_form--large .user_search_toolbar,\\n.filter_toolbar .group_search_form.user_search_form--large .group_search_toolbar,\\n.filter_toolbar .group_search_form.group_search_form--large .input--type_text__wrapper,\\n.filter_toolbar .group_search_form.group_search_form--large .user_search_toolbar,\\n.filter_toolbar .group_search_form.group_search_form--large .group_search_toolbar {\\n  width: 50%;\\n  display: flex;\\n}\\n.filter_toolbar .user_search_form.user_search_form--large .user_search_input,\\n.filter_toolbar .user_search_form.user_search_form--large .group_search_input, .filter_toolbar .user_search_form.group_search_form--large .user_search_input,\\n.filter_toolbar .user_search_form.group_search_form--large .group_search_input,\\n.filter_toolbar .group_search_form.user_search_form--large .user_search_input,\\n.filter_toolbar .group_search_form.user_search_form--large .group_search_input,\\n.filter_toolbar .group_search_form.group_search_form--large .user_search_input,\\n.filter_toolbar .group_search_form.group_search_form--large .group_search_input {\\n  align-self: flex-end;\\n  margin-bottom: 0 !important;\\n  margin-right: 1.5rem;\\n}\\n.filter_toolbar .user_search_form.user_search_form--large .input--type_text__wrapper, .filter_toolbar .user_search_form.group_search_form--large .input--type_text__wrapper,\\n.filter_toolbar .group_search_form.user_search_form--large .input--type_text__wrapper,\\n.filter_toolbar .group_search_form.group_search_form--large .input--type_text__wrapper {\\n  margin-bottom: 0;\\n}\\n\\n.form label {\\n  display: inline-block;\\n  text-transform: capitalize;\\n  vertical-align: bottom;\\n}\\n.form label span {\\n  display: block;\\n  @apply text-gray-600;\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-weight: 300;\\n  font-size: 1.4rem;\\n  letter-spacing: 0.025rem;\\n}\\n\\n.form_account_container {\\n  margin-top: 2rem;\\n  display: flex;\\n  justify-content: center;\\n}\\n.form_account_container a {\\n  @apply text-blue-600;\\n}\\n.form_account_container .contents {\\n  @apply bg-white;\\n  width: 45rem;\\n  max-width: 45rem;\\n  border: 1px solid #cccccc;\\n  box-shadow: none;\\n  overflow-x: visible;\\n  overflow-y: visible;\\n}\\n.form_account_container .login_links_container {\\n  margin-bottom: 1rem;\\n}\\n.form_account_container .login_links_container a {\\n  display: inline-block;\\n}\\n.form_account_container .login_links_container a + a::before {\\n  content: \\\"|\\\";\\n  color: #cccccc;\\n  margin-right: 1rem;\\n}\\n.form_account_container .login_links_container a + a {\\n  margin-left: 1rem;\\n}\\n\\n.form_login_wrapper {\\n  padding: 2.5rem 2rem;\\n}\\n.form_login_wrapper p {\\n  margin-bottom: 1.5rem;\\n}\\n\\n.join_form_name_row fieldset {\\n  flex: 1 !important;\\n  -ms-flex: 1 !important;\\n}\\n\\n.form_login_header h2 {\\n  font-size: 2.6rem;\\n  margin-top: 0;\\n  font-weight: 400;\\n}\\n\\n.form_login_panel {\\n  margin-bottom: 2.5rem;\\n}\\n.form_login_panel .join_radio_toggle {\\n  display: flex;\\n  justify-content: space-around;\\n  margin-top: 1.5rem;\\n}\\n.form_login_panel .join_radio_toggle label {\\n  font-weight: 400;\\n}\\n.form_login_panel .join_radio_toggle input[type=radio] {\\n  width: 1.6rem;\\n  height: 1.6rem;\\n  margin-right: 1rem;\\n}\\n.form_login_panel fieldset {\\n  padding: 0;\\n  margin: 1rem 0 0.5rem 0;\\n}\\n.form_login_panel label {\\n  display: inline-block;\\n  margin-bottom: 0.5rem;\\n  color: #4d4c4a;\\n  font-weight: 700;\\n}\\n.form_login_panel .join_form_btn_row {\\n  text-align: center;\\n  margin-top: 3rem;\\n}\\n.form_login_panel .join-toggle-pass {\\n  float: right;\\n}\\n.form_login_panel button {\\n  width: 13rem;\\n}\\n.form_login_panel button.join_form_cancel {\\n  margin-right: 2rem;\\n  @apply bg-white border border-solid border-blue-500 text-blue-600;\\n}\\n.form_login_panel button.join_form_cancel:hover, .form_login_panel button.join_form_cancel:active {\\n  @apply border-blue-600;\\n}\\n.form_login_panel button.login_form {\\n  display: block;\\n  margin: 0 auto;\\n}\\n.form_login_panel span.form-error {\\n  display: block;\\n  @apply text-red-600;\\n}\\n\\n.form_login label {\\n  margin-bottom: 0.25rem;\\n}\\n.form_login fieldset {\\n  margin: 0 0 1.25rem;\\n}\\n.form_login [type=submit] {\\n  margin-top: 0.5rem;\\n}\\n.form_login .form_login_panel {\\n  width: 100%;\\n}\\n.form_login .form_login_panel > a {\\n  margin-bottom: 1.5rem;\\n  display: block;\\n}\\n.form_login .failed-login {\\n  @apply text-red-600;\\n}\\n.form_login .form_login_panel_actions {\\n  margin: 0.75rem 0;\\n}\\n.form_login .form_login_panel_actions a {\\n  float: left;\\n}\\n.form_login .form_login_panel_actions a + a {\\n  float: right;\\n}\\n.form_login .form_login_sso_button {\\n  display: block;\\n  margin-top: 2rem;\\n}\\n.form_login .form_login_sso_button .btn {\\n  margin: 0 auto 0.75rem;\\n}\\n.form_login .form_login_sso_button h5 {\\n  font-size: 1.8rem;\\n}\\n\\n.form_login--has_options {\\n  display: table-row;\\n}\\n.form_login--has_options .form_login_panel--standard {\\n  display: table-cell;\\n  width: 60%;\\n  padding: 0 1.25rem 0 0;\\n  vertical-align: top;\\n}\\n.form_login--has_options .form_login_panel--standard + .form_login_panel--sso a {\\n  padding-left: 1.25rem;\\n  @apply border-l border-solid border-gray-300;\\n}\\n.form_login--has_options .form_login_panel--sso {\\n  display: table-cell;\\n  width: auto;\\n}\\n.form_login--has_options .form_login_panel_actions a,\\n.form_login--has_options .form_login_panel_actions a + a {\\n  float: left;\\n}\\n\\n.formal {\\n  padding: 1.5rem 2.5rem 2.5rem;\\n}\\n.formal label {\\n  margin: 1.5rem 0 0;\\n  @apply text-gray-700;\\n  font-size: 1.5rem;\\n}\\n.formal input,\\n.formal textarea {\\n  margin-bottom: 0.5rem;\\n  @apply border border-solid border-gray-500;\\n}\\n.formal input[type=checkbox], .formal input[type=radio],\\n.formal textarea[type=checkbox],\\n.formal textarea[type=radio] {\\n  box-shadow: none;\\n}\\n\\nlabel.right {\\n  width: auto;\\n}\\nlabel.right + label {\\n  width: auto;\\n}\\n\\n.response {\\n  margin-top: 0.5rem;\\n  margin-left: 1rem;\\n  @apply text-gray-600;\\n  font-size: 90%;\\n  text-align: right;\\n}\\n\\n.join_code_desc {\\n  margin-top: -0.5rem;\\n}\\n\\n.field_errors,\\n[field-errors] {\\n  margin: 0;\\n  padding: 0;\\n  @apply text-red-600;\\n}\\n.field_errors li,\\n[field-errors] li {\\n  margin: 0 0 0 2.5rem;\\n  list-style-type: disc;\\n}\\n\\n.show_password {\\n  margin-top: 0.5rem;\\n}\\n.show_password .option_check {\\n  margin-right: 0.5rem;\\n}\\n\\n.form_controls {\\n  margin: 2.5rem 0 2rem;\\n}\\n.form_controls button {\\n  margin-left: 1.5rem;\\n}\\n.form_controls a + a {\\n  margin-left: 1.5rem;\\n}\\n\\n.form_controls--short {\\n  margin: 0;\\n}\\n\\n[confirm-action] {\\n  display: inline-block;\\n  width: 100px;\\n  height: 25px;\\n  overflow: hidden;\\n}\\n[confirm-action] .conf_wrapper {\\n  display: inline-block;\\n  width: 140px;\\n  height: 27px;\\n  overflow: hidden;\\n}\\n[confirm-action] .conf_btn {\\n  transition: all 0.5s ease;\\n}\\n[confirm-action].conf_active .conf_btn {\\n  margin-left: -120px;\\n  opacity: 0;\\n}\\n\\n.select_wrap {\\n  display: inline-block;\\n  position: relative;\\n  width: auto;\\n  height: 3.6rem;\\n  border-radius: 0.3rem;\\n  background: rgba(0, 0, 0, 0.1);\\n  overflow: hidden;\\n}\\n.select_wrap::after {\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  width: 3.6rem;\\n  height: 3.6rem;\\n  background: rgba(0, 0, 0, 0.1);\\n  line-height: 35px;\\n  text-align: center;\\n  content: \\\"▼\\\";\\n  vertical-align: bottom;\\n  z-index: 1;\\n}\\n.select_wrap select {\\n  position: relative;\\n  width: calc(100% + 1.5rem);\\n  height: 3.6rem;\\n  padding: 0 4.5rem 0 1rem;\\n  border: 0;\\n  background: transparent;\\n  color: #555;\\n  font-size: 1.2rem;\\n  line-height: 1;\\n  z-index: 10;\\n  -webkit-appearance: none;\\n}\\n.select_wrap select:hover {\\n  cursor: pointer;\\n}\\n.select_wrap.select_block {\\n  width: 100%;\\n}\\n.select_wrap.btn--size_small {\\n  height: 2.6rem;\\n  padding: 0;\\n}\\n.select_wrap.btn--size_small::after {\\n  width: 2.6rem;\\n  height: 2.6rem;\\n  line-height: 30px;\\n}\\n.select_wrap.btn--size_small select {\\n  height: 2.6rem;\\n}\\n\\n.input_wrap.checkbox_checked .option_check::before, .input_wrap.radio_checked .option_check::before {\\n  display: block;\\n  position: absolute;\\n  width: 1.5rem;\\n  height: 1.5rem;\\n}\\n\\n.input_wrap [type=radio]:not(old),\\n.input_wrap [type=checkbox]:not(old) {\\n  position: absolute;\\n  width: 0;\\n  height: 0;\\n  opacity: 0;\\n}\\n.input_wrap [type=radio]:not(old) + .option,\\n.input_wrap [type=checkbox]:not(old) + .option {\\n  display: block;\\n  margin-left: 2.5rem;\\n  cursor: pointer;\\n}\\n.input_wrap [type=radio]:not(old) + .option .option_check,\\n.input_wrap [type=checkbox]:not(old) + .option .option_check {\\n  position: relative;\\n  width: 2.5rem;\\n  height: 2.5rem;\\n  margin-top: 0;\\n  margin-left: -2.5rem;\\n  border-width: 1px;\\n  border-style: solid;\\n  @apply bg-white border border-solid border-gray-600;\\n}\\n.input_wrap [type=radio]:not(old) + .option .option_text,\\n.input_wrap [type=checkbox]:not(old) + .option .option_text {\\n  margin-left: 0.75rem;\\n  line-height: 2.6rem;\\n}\\n.input_wrap [type=radio]:not(old):disabled + .option .option_check,\\n.input_wrap [type=checkbox]:not(old):disabled + .option .option_check {\\n  @apply bg-gray-300 border-gray-600;\\n}\\n.input_wrap [type=radio]:not(old) + .option .option_check {\\n  border-radius: 50%;\\n}\\n.input_wrap.radio_checked .option_check::before {\\n  margin: 0.4rem 0 0 0.4rem;\\n  border-radius: 50%;\\n  @apply bg-green-600;\\n  content: \\\"\\\";\\n}\\n.input_wrap [type=checkbox]::not(old) + .option .option_check {\\n  border-radius: 0.3rem;\\n}\\n.input_wrap.checkbox_checked .option_check::before {\\n  margin: 0.4rem 0 0 0.5rem;\\n  @apply text-green-600;\\n  font-family: \\\"am-icon-font\\\";\\n  line-height: 1;\\n  content: \\\"1\\\";\\n}\\n\\n.wysi_editor .editor-body {\\n  width: 100%;\\n  min-height: 3.5rem;\\n  padding: 0.5rem;\\n  border-radius: 0.3rem;\\n  @apply bg-white;\\n  cursor: text;\\n  box-shadow: 0 0 0.4rem #999 inset;\\n}\\n.wysi_editor .btn {\\n  vertical-align: top;\\n}\\n\\n.wysi--large .editor-body {\\n  min-height: 20rem;\\n}\\n\\n.have_account {\\n  margin-top: 2rem;\\n}\\n\\n.fail-login-show {\\n  @apply text-red-600;\\n}\\n\\n.fail-login-hide {\\n  @apply text-red-600;\\n  display: none;\\n}\\n\\n.group_memberships .th_active,\\n.group_memberships .th_role {\\n  width: 16.666%;\\n}\\n\\n#ft-levity-login {\\n  padding: 2.5rem 2rem;\\n}\\n#ft-levity-login form {\\n  margin-bottom: 1.5rem;\\n}\\n#ft-levity-login form label {\\n  display: inline-block;\\n  margin-bottom: 0.5rem;\\n  color: #4d4c4a;\\n  font-weight: 700;\\n}\\n#ft-levity-login form input {\\n  margin-bottom: 1rem;\\n}\\n#ft-levity-login form button {\\n  display: block;\\n  margin: 1.5rem auto 2.25rem;\\n  height: 3.6rem;\\n  padding: 0 1.2rem;\\n  line-height: 3.5rem;\\n  @apply bg-blue-700 hover:bg-blue-800;\\n  width: 13rem;\\n}\\n#ft-levity-login form button.login_form {\\n  display: block;\\n  margin: 0 auto;\\n}\\n#ft-levity-login p {\\n  line-height: 2.75rem;\\n  margin-bottom: 0;\\n}\\n\\n.powered_by {\\n  position: fixed;\\n  bottom: 0;\\n  left: 0;\\n  width: 11rem;\\n  height: 3rem;\\n  padding: 0.5rem;\\n  border-radius: 0 0.3rem 0 0;\\n  @apply bg-white border-t border-r border-solid border-gray-300 rounded-r-md;\\n  z-index: 110;\\n}\\n\\n.tooltip,\\n.modal.overlay > .contents {\\n  margin: 0;\\n  padding: 1rem 1rem 1.25rem;\\n  transition: opacity 1s ease;\\n  border-radius: 0.3rem;\\n  background: rgb(255, 255, 255);\\n  color: #666;\\n  text-align: left;\\n  box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.4);\\n  z-index: 1000;\\n}\\n\\n.tooltip {\\n  pointer-events: none;\\n}\\n.tooltip > ul {\\n  margin: 0;\\n  padding-left: 1em;\\n}\\n\\n.overlay.hidden {\\n  opacity: 0;\\n}\\n\\n.modal.overlay {\\n  position: fixed;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n  min-height: 100vh;\\n  background: rgba(255, 255, 255, 0.9);\\n  z-index: 100;\\n}\\n\\n.modal.overlay > .contents {\\n  position: fixed;\\n  top: 7.5rem;\\n  left: 50%;\\n  width: 96%;\\n  max-width: 40rem;\\n  max-height: 96%;\\n  max-height: 96vh;\\n  -webkit-transform: translateX(-50%);\\n  -moz-transform: translateX(-50%);\\n  -o-transform: translateX(-50%);\\n  transform: translateX(-50%);\\n  padding: 0;\\n  box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.3);\\n  box-sizing: border-box;\\n  overflow-y: auto;\\n}\\n.modal.overlay > .contents p {\\n  margin-bottom: 2.5rem;\\n}\\n.modal.overlay > .contents.contents_large {\\n  top: 7.5rem;\\n  bottom: 2.5rem;\\n  max-width: 65rem;\\n  margin-left: 0;\\n  transform: translateX(-50%);\\n}\\n\\n.modal_close {\\n  position: absolute !important;\\n  top: 7.5rem;\\n  right: 2.5rem;\\n  z-index: 10000;\\n}\\n\\n.modal.modal_video.overlay > .contents {\\n  top: 7.5rem;\\n  width: 90vm;\\n  width: 90vmin;\\n  max-width: 1200px;\\n  margin-left: 0;\\n  transform: translateX(-50%);\\n}\\n\\n.modal_video .modal_video_content {\\n  padding: 1.25rem;\\n}\\n\\n.modal_video .modal_close {\\n  top: 1.25rem;\\n  right: 1.25rem;\\n}\\n\\n.no-flexbox .ViewMembers__table-header::before, .no-flexbox .launchpad__columns::before, .launchpad__title.launchpad--has_svg_logo::before, .form_controls::before, .no-flexbox .ViewMembers__table-header::after, .no-flexbox .launchpad__columns::after, .launchpad__title.launchpad--has_svg_logo::after, .form_controls::after {\\n  display: table;\\n  content: \\\" \\\";\\n}\\n.no-flexbox .ViewMembers__table-header::after, .no-flexbox .launchpad__columns::after, .launchpad__title.launchpad--has_svg_logo::after, .form_controls::after {\\n  clear: both;\\n}\\n\\n.launchpad__columns {\\n  align-items: flex-start;\\n  justify-content: center;\\n}\\n.launchpad__columns > div {\\n  flex-basis: 50%;\\n}\\n\\n.ap_apps {\\n  display: flex;\\n  flex-wrap: wrap;\\n  align-items: flex-start;\\n  justify-content: center;\\n  margin-left: 0;\\n}\\n\\n.launchpad {\\n  max-width: 700px;\\n  margin: 0 0.75rem 2.5rem !important;\\n  flex-grow: 1;\\n}\\n\\n.launchpad__title {\\n  padding: 0.01rem 1.25rem 2.304em;\\n  @apply border-b-4 border-solid border-blue-700 bg-gray-400;\\n}\\n.launchpad__title .logo_wrap {\\n  float: left;\\n}\\n.launchpad__title svg {\\n  max-width: 100%;\\n}\\n.launchpad__title.launchpad--has_group_mgmt {\\n  padding-top: 3.45rem;\\n  padding-bottom: 4.75rem;\\n  text-align: right;\\n}\\n\\n.launchpoint {\\n  display: flex;\\n  padding: 0 1.25rem 1.25em;\\n  @apply border border-solid border-gray-500;\\n  justify-content: space-between;\\n  align-items: stretch;\\n}\\n.launchpoint .launchpoint__title {\\n  padding-right: 1.25rem;\\n}\\n.launchpoint .launchpoint__action {\\n  min-width: 12rem;\\n}\\n.launchpoint .launchpoint__action .btn {\\n  display: block;\\n  width: 100%;\\n  max-width: 16rem;\\n  margin-top: 1.25em;\\n  text-align: center;\\n  white-space: nowrap;\\n}\\n.launchpoint.draft {\\n  @apply border-2 border-solid border-gray-500 bg-blue-700;\\n}\\n\\n.join_group {\\n  text-align: left;\\n}\\n.join_group h3 {\\n  margin-top: 0.3125em;\\n}\\n.join_group .join_group__input_wrap {\\n  display: flex;\\n  min-width: 24rem;\\n  margin: 1.5rem 0;\\n}\\n.join_group .join_group__input_wrap .input--type_text {\\n  max-width: 14rem;\\n  flex-grow: 1;\\n}\\n.join_group .join_group__input_wrap .btn {\\n  min-width: 8rem;\\n  margin-left: 1rem;\\n  flex: 1;\\n}\\n\\n.no-flexbox .launchpad__columns {\\n  display: block;\\n}\\n.no-flexbox .ap_apps > .launchpad {\\n  width: 100%;\\n}\\n.no-flexbox .launchpad {\\n  width: 47.5%;\\n  display: block;\\n}\\n.no-flexbox .launchpad:nth-child(odd) {\\n  float: left;\\n}\\n.no-flexbox .launchpad:nth-child(even) {\\n  float: right;\\n}\\n.no-flexbox .launchpad__title {\\n  overflow: auto;\\n}\\n.no-flexbox .launchpad__title .apinsight-logo {\\n  width: 156px;\\n  float: left;\\n}\\n.no-flexbox .launchpoint {\\n  display: block;\\n  flex: none;\\n  overflow: hidden;\\n}\\n.no-flexbox .launchpoint .launchpoint__title {\\n  width: calc(100% - 12rem);\\n  float: left;\\n}\\n.no-flexbox .launchpoint .launchpoint__action {\\n  width: 12rem;\\n  overflow: hidden;\\n}\\n\\n.input--type_radio {\\n  margin: 0;\\n  cursor: pointer;\\n}\\n.input--type_radio [type=radio] {\\n  margin-right: 0.5rem;\\n}\\n.input--type_radio span {\\n  display: inline-block !important;\\n}\\n\\n.rich_title_wrapper ul {\\n  padding: 0 0 0 2.5rem !important;\\n  list-style-type: disc;\\n}\\n.rich_title_wrapper.default {\\n  max-width: 45em;\\n}\\n.rich_title_wrapper li > p {\\n  margin: 0;\\n}\\n.rich_title_wrapper p {\\n  margin: 0;\\n}\\n\\n.role-select {\\n  position: relative;\\n}\\n.role-select .popover {\\n  width: 100%;\\n}\\n.role-select .pop_over_toggle {\\n  display: block;\\n  text-align: center;\\n  width: 100%;\\n}\\n.role-select .btn {\\n  text-transform: capitalize;\\n  margin-bottom: 0;\\n}\\n.role-select .svg-icon {\\n  margin-right: 0;\\n  margin-left: 1rem;\\n  vertical-align: text-top;\\n}\\n.role-select > select {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  width: 100%;\\n  height: 100%;\\n  cursor: pointer;\\n}\\n.role-select > select:not(:active) {\\n  opacity: 0;\\n}\\n\\n.role-select__selector h3 {\\n  margin-top: 0;\\n}\\n\\n.role-select__buttons .btn + .btn {\\n  margin-left: 1rem;\\n}\\n\\n.input--type_select {\\n  display: inline-block;\\n  position: relative;\\n  width: auto;\\n  border-radius: 0.3rem;\\n  background: rgba(0, 0, 0, 0.1);\\n  overflow: hidden;\\n}\\n.input--type_select::after {\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  background: rgba(0, 0, 0, 0.1);\\n  text-align: center;\\n  content: \\\"▼\\\";\\n  vertical-align: bottom;\\n  z-index: 1;\\n  @apply text-gray-900;\\n}\\n.input--type_select select {\\n  position: relative;\\n  width: calc(100% + 5.5rem);\\n  padding-left: 1rem;\\n  border: 0;\\n  background: transparent;\\n  color: #555;\\n  font-size: 1.4rem;\\n  text-transform: capitalize;\\n  z-index: 10;\\n  -webkit-appearance: none;\\n}\\n.input--type_select select:hover {\\n  cursor: pointer;\\n}\\n.input--type_select.input--size_small {\\n  height: 2.6rem;\\n}\\n.input--type_select.input--size_small::after {\\n  width: 2.6rem;\\n  height: 2.6rem;\\n  font-size: 1.04rem;\\n  line-height: 26px;\\n}\\n.input--type_select.input--size_small select {\\n  height: 2.6rem;\\n  padding-right: 3.6rem;\\n}\\n.input--type_select.input--size_medium {\\n  height: 3.6rem;\\n}\\n.input--type_select.input--size_medium::after {\\n  width: 3.6rem;\\n  height: 3.6rem;\\n  font-size: 1.44rem;\\n  line-height: 36px;\\n}\\n.input--type_select.input--size_medium select {\\n  height: 3.6rem;\\n  padding-right: 4.6rem;\\n  font-size: 1.6rem;\\n}\\n\\n.slide_switch {\\n  display: inline-block;\\n  height: 3.6rem;\\n  padding-top: 0.4rem;\\n  font-size: 1.2rem;\\n  text-align: left;\\n  text-transform: uppercase;\\n}\\n.slide_switch > div {\\n  display: table-row;\\n  cursor: pointer;\\n  user-select: none;\\n}\\n.slide_switch span {\\n  display: table-cell;\\n  padding: 0 0.5rem;\\n  line-height: 2.5;\\n  vertical-align: middle;\\n}\\n.slide_switch [type=checkbox] {\\n  display: none;\\n  margin: 0;\\n  padding: 0;\\n}\\n.slide_switch .switch_outter {\\n  display: inline-block;\\n  position: relative;\\n  width: 5rem;\\n  height: 2.6rem;\\n  padding: 0;\\n  transition: background 0.25s ease;\\n  border-radius: 1.3rem;\\n  @apply bg-gray-600;\\n}\\n.slide_switch .switch_outter.disabled {\\n  @apply bg-gray-400;\\n}\\n.slide_switch .switch_toggle {\\n  display: inline-block;\\n  position: absolute;\\n  width: 2rem;\\n  height: 2rem;\\n  margin-top: 0.3rem;\\n  margin-left: 0.3rem;\\n  padding: 0;\\n  float: left;\\n  transition: margin 0.25s ease;\\n  border-radius: 50%;\\n  @apply bg-white;\\n}\\n.slide_switch.switch_on .switch_toggle {\\n  margin-left: 2.7rem;\\n}\\n.slide_switch.switch_on .switch_outter {\\n  @apply bg-green-600;\\n}\\n.slide_switch.switch_on .switch_outter.disabled {\\n  opacity: 0.5;\\n}\\n\\n.subjects-preview {\\n  display: flex;\\n  min-height: 100vh;\\n  @apply bg-white;\\n}\\n.subjects-preview .container {\\n  margin: 15px auto;\\n  min-width: 450px;\\n  width: auto;\\n}\\n.subjects-preview .header {\\n  display: flex;\\n  align-items: center;\\n}\\n.subjects-preview .header .title {\\n  flex: 1;\\n  margin: 0 !important;\\n  font-size: 24px;\\n  font-weight: 400;\\n}\\n.subjects-preview .subject_selector {\\n  margin-left: 1rem;\\n  margin-top: 0.5rem;\\n}\\n.subjects-preview .subsel__label {\\n  display: inline-block;\\n  font-family: Roboto;\\n  align-items: center;\\n  font-size: 20px;\\n  font-weight: 500;\\n  line-height: 1.4;\\n  text-align: left;\\n  color: #0075c8;\\n  padding-top: 25px;\\n  padding-bottom: 15px;\\n  display: flex;\\n  height: 100%;\\n}\\n.subjects-preview .subsel__label .svg-icon {\\n  width: 13.5px !important;\\n  height: 13.5px !important;\\n}\\n.subjects-preview label {\\n  padding: 0 14px;\\n  margin-bottom: 0%;\\n}\\n\\n.bottom-line {\\n  height: 15px;\\n  @apply border-b;\\n  @apply border-gray-400;\\n}\\n\\n.no_btn {\\n  border: 0;\\n  padding: 0;\\n  background: initial;\\n}\\n\\n.units_title {\\n  margin: 0 auto;\\n  display: flex;\\n  align-items: center;\\n  justify-content: space-between;\\n}\\n.units_title .left {\\n  margin-right: auto;\\n  width: 100%;\\n}\\n\\n.right {\\n  float: right;\\n}\\n\\n.subjects ul {\\n  list-style: none;\\n  padding: 0;\\n}\\n.subjects ul li {\\n  margin-bottom: 9px;\\n}\\n.subjects ul li a {\\n  padding: 18px 22px;\\n  display: block;\\n  @apply bg-gray-200;\\n  border-top: solid 1px #d9d9d9;\\n}\\n.subjects ul li a label {\\n  cursor: pointer;\\n  font-size: 20px;\\n  color: #0075c8;\\n  font-size: 18px;\\n  font-weight: 500;\\n}\\n.subjects ul li a svg {\\n  float: right;\\n  margin-top: 7px;\\n}\\n\\n.tabs {\\n  display: flex;\\n  flex-direction: row;\\n}\\n.tabs a {\\n  cursor: pointer;\\n  transition: all 0.125s ease;\\n  border-style: solid;\\n  text-align: center;\\n  align-self: stretch;\\n}\\n.tabs a.active {\\n  outline: none;\\n}\\n.tabs.tabs--direction_vert {\\n  flex-direction: column;\\n}\\n\\n.tabs--style_tabs a {\\n  margin-right: 0.2rem;\\n  margin-bottom: -0.1rem;\\n  border-width: 0.1rem 0.1rem 0;\\n  border-radius: 0.3rem 0.3rem 0 0;\\n  border-color: transparent;\\n}\\n.tabs--style_tabs a.active, .tabs--style_tabs a:hover {\\n  border-width: 0.1rem 0.1rem 0;\\n  border-style: solid;\\n}\\n.tabs--style_tabs a[disabled] {\\n  border-width: 0.1rem;\\n  border-style: solid;\\n}\\n.tabs--style_tabs.tabs--direction_vert a {\\n  margin: 0 0 0.2rem -0.1rem;\\n  border-width: 0.1rem;\\n  border-style: solid;\\n  align-self: stretch;\\n}\\n\\n.tabs--style_bar a {\\n  margin: 0 0.2rem 0 0;\\n  border-width: 0 0 0.3rem;\\n  border-color: transparent;\\n}\\n.tabs--style_bar.tabs--direction_vert a {\\n  margin: 0 0 0.2rem;\\n  border-width: 0 0 0 0.3rem;\\n}\\n\\n.tabs--size_default {\\n  min-height: 3.6rem;\\n}\\n.tabs--size_default.tabs--direction_vert {\\n  height: auto;\\n}\\n.tabs--size_default.tabs--direction_vert a {\\n  min-height: 3.6rem;\\n}\\n\\n.tabs--size_large {\\n  min-height: 5rem;\\n}\\n.tabs--size_large.tabs--direction_vert {\\n  height: auto;\\n}\\n.tabs--size_large.tabs--direction_vert a {\\n  min-height: 5rem;\\n}\\n\\n.no-flexbox .tabs a {\\n  display: inline-block;\\n}\\n.no-flexbox .tabs.tabs--direction_vert a {\\n  display: block;\\n}\\n\\n[role=tabpanel]:focus {\\n  outline: none;\\n}\\n\\n/*\\n  Please note the support of sticky positioning:\\n  Not supported by IE, Opera Mini and Edge lower than v16.\\n*/\\n.cell-with-popover {\\n  display: flex;\\n  justify-content: space-between;\\n}\\n.cell-with-popover > .popover {\\n  margin: 0 10px;\\n}\\n\\n.table--grouped .gray {\\n  @apply bg-gray-200;\\n}\\n.table--grouped .MuiTableHead-root {\\n  border-bottom: none;\\n}\\n.table--grouped .MuiTableCell-head {\\n  @apply text-black;\\n}\\n.table--grouped .MuiTableCell-root,\\n.table--grouped th[class^=MuiTableCell-root-] {\\n  font-size: 14px;\\n}\\n.table--grouped th,\\n.table--grouped td {\\n  font-size: 14px;\\n  border: none;\\n  word-break: break-word;\\n}\\n\\n:export {\\n  small: 471;\\n  smallplus: 568;\\n  medium: 768;\\n  large: 1024;\\n  mobile: 767;\\n}\\n\\n.MuiTabs-root .MuiTabs-scrollable {\\n  margin-bottom: 0 !important;\\n  overflow-x: hidden;\\n}\\n.MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar {\\n  display: none;\\n}\\n.MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar-track {\\n  all: unset;\\n}\\n.MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar-thumb {\\n  all: unset;\\n}\\n.MuiTabs-root .MuiTabs-scrollable::-webkit-scrollbar-thumb:window-inactive {\\n  all: unset;\\n}\\n.MuiTabs-root .MuiButtonBase-root:not(.Mui-selected) {\\n  @apply border-b border-solid border-b-gray-200;\\n}\\n\\n.mobile-tabs.is-sticky {\\n  position: fixed;\\n  top: 0;\\n  z-index: 12;\\n  width: 100%;\\n}\\n.mobile-tabs .mobile-tabs-root {\\n  @apply bg-white;\\n  padding-bottom: 2px;\\n}\\n.mobile-tabs .mobile-tabs-root .MuiButtonBase-root:not(.Mui-selected) {\\n  border-bottom: none;\\n}\\n.mobile-tabs .mobile-tabs-item {\\n  outline: 0;\\n  @apply text-blue-700;\\n  font-size: 16px;\\n  font-weight: 500;\\n  letter-spacing: -0.2px;\\n  opacity: 1;\\n}\\n.mobile-tabs .mobile-tabs-item-is-selected {\\n  color: #1e1e1e;\\n}\\n.mobile-tabs .mobile-tabs-selected-indicator {\\n  display: block;\\n  background-color: #1e1e1e;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n  .MuiTabs-root .MuiTabs-scrollable {\\n    overflow-x: scroll;\\n  }\\n}\\n:export {\\n  small: 471;\\n  smallplus: 568;\\n  medium: 768;\\n  large: 1024;\\n  mobile: 767;\\n}\\n\\n:export {\\n  primary: #0076c4;\\n  secondary: #1e1e1e;\\n  error: #e75b6b;\\n  tabsEdge: #ececec;\\n  dark: #1e1e1e;\\n  border: #d9d9d9;\\n  blue: #0076c4;\\n  white: #fff;\\n  gray: #999896;\\n  focusColor: rgba(0, 156, 222, 0.8);\\n  focusRadius: 3px;\\n}\\n\\n:export {\\n  primary: #0076c4;\\n  secondary: #1e1e1e;\\n  error: #e75b6b;\\n  tabsEdge: #ececec;\\n  dark: #1e1e1e;\\n  border: #d9d9d9;\\n  blue: #0076c4;\\n  white: #fff;\\n  gray: #999896;\\n  focusColor: rgba(0, 156, 222, 0.8);\\n  focusRadius: 3px;\\n}\\n\\n:export {\\n  border: 1px solid #ececec;\\n  padding: 8px 16px;\\n  fontWeight: 500;\\n  fontWeightSelected: 400;\\n  boxShadowSelected: inset 0 0 0 1px #ececec;\\n  minHeight: 49px;\\n  scrollButtonsWidth: 32px;\\n  marginBottom: 20px;\\n  tabsBorderBottom: 3px solid transparent;\\n  tabSelectedBorderBottom: 1px solid #ffffff;\\n  tabWidthLg: 200px;\\n  tabWidthMd: 150px;\\n  lineHeight: 1.44;\\n  colorFade: rgba(255, 255, 255, 0.8);\\n}\\n\\n.react-tabs {\\n  -webkit-tap-highlight-color: transparent;\\n  min-height: 49px;\\n}\\n.react-tabs__tab-list {\\n  @apply border-b border-b-gray-200;\\n  margin: 0 0 20px;\\n  padding: 0;\\n}\\n.react-tabs__tab-list::after {\\n  content: \\\"\\\";\\n}\\n.react-tabs__tab {\\n  display: inline-block;\\n  border: 1px solid transparent;\\n  border-bottom: none;\\n  bottom: -1px;\\n  position: relative;\\n  list-style: none;\\n  cursor: pointer;\\n  align-items: center;\\n  flex-basis: 100%;\\n  padding: 8px 16px;\\n  text-align: center;\\n  @apply text-blue-700;\\n  font-weight: 500;\\n}\\n.react-tabs__tab--selected {\\n  font-weight: 400;\\n  @apply bg-white;\\n  border-color: #ececec;\\n  color: #1e1e1e;\\n  position: relative;\\n  z-index: -1;\\n}\\n.react-tabs__tab--selected:focus {\\n  box-shadow: none;\\n}\\n.react-tabs__tab--disabled {\\n  @apply text-gray-600;\\n  cursor: default;\\n}\\n.react-tabs__tab-panel {\\n  display: none;\\n}\\n.react-tabs__tab-panel--selected {\\n  display: block;\\n}\\n\\n.tabs {\\n  @apply border border-gray-400;\\n}\\n.tabs.tabs--direction_vert {\\n  @apply border-l border-solid border-gray-400;\\n}\\n\\n.tabs--style_tabs {\\n  padding-top: 0.5rem;\\n}\\n.tabs--style_tabs a:hover {\\n  border-bottom-width: 0.1rem;\\n  @apply border-gray-400 bg-blue-700 text-blue-600;\\n}\\n.tabs--style_tabs a.active {\\n  @apply bg-white text-gray-900 border-t border-r border-l border-gray-400;\\n  box-shadow: 0 -0.33rem 1rem -0.5rem rgba(0, 0, 0, 0.33);\\n}\\n.tabs--style_tabs a[disabled] {\\n  @apply text-gray-500;\\n}\\n.tabs--style_tabs a[disabled]:hover {\\n  @apply bg-white border-gray-300 text-gray-500;\\n  cursor: not-allowed;\\n}\\n.tabs--style_tabs.tabs--direction_vert a {\\n  border-radius: 0 0.3rem 0.3rem 0;\\n}\\n.tabs--style_tabs.tabs--direction_vert a:hover {\\n  @apply border-gray-300;\\n}\\n.tabs--style_tabs.tabs--direction_vert a.active {\\n  @apply bg-white border-t border-r border-b border-gray-300;\\n}\\n\\n.tabs--style_bar {\\n  @apply border-b border-gray-500;\\n}\\n.tabs--style_bar a:hover {\\n  @apply text-blue-600 border-blue-600;\\n}\\n.tabs--style_bar a.active {\\n  @apply bg-white border-b border-blue-700;\\n}\\n.tabs--style_bar a.active:hover {\\n  @apply text-blue-700 border-blue-700;\\n}\\n.tabs--style_bar a[disabled] {\\n  @apply text-gray-500;\\n}\\n.tabs--style_bar a[disabled]:hover {\\n  cursor: default;\\n  @apply text-gray-500 border-gray-500;\\n}\\n.tabs--style_bar.tabs--direction_vert a.active {\\n  @apply border-l-2 border-blue-700;\\n}\\n\\n.tabs--size_default a {\\n  min-height: 3.6rem;\\n  padding: 0.3225em 1.5em;\\n  text-transform: capitalize;\\n}\\n\\n.tabs--size_large a {\\n  min-height: 5rem;\\n  padding: 0.645em 1.5em;\\n  text-transform: capitalize;\\n}\\n\\n.input--type_text {\\n  width: 100%;\\n  padding: 0 0 0 0.33em;\\n  @apply border border-solid border-gray-300;\\n  border-radius: 0.3rem;\\n  box-sizing: border-box !important;\\n}\\n.input--type_text.input--size_small {\\n  height: 2.6rem;\\n  line-height: 2.6rem;\\n}\\n.input--type_text.input--size_medium {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-weight: 500;\\n  -webkit-font-smoothing: antialiased;\\n  height: 3.6rem;\\n  font-size: 2.1rem;\\n  line-height: 3.6rem;\\n}\\n.input--type_text.input--size_large {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-weight: 500;\\n  -webkit-font-smoothing: antialiased;\\n  height: 5rem;\\n  font-size: 3.2rem;\\n  line-height: 5rem;\\n}\\n\\n.input--type_text--has_icon {\\n  position: relative;\\n}\\n.input--type_text--has_icon .svg-icon {\\n  position: absolute;\\n  left: 0;\\n  bottom: 10%;\\n}\\n.input--type_text--has_icon .input--size_small {\\n  padding-left: 2.8rem;\\n}\\n.input--type_text--has_icon .input--size_medium {\\n  padding-left: 3.675rem;\\n}\\n.input--type_text--has_icon .input--size_large {\\n  padding-left: 4.675rem;\\n}\\n\\n.input--type_textarea {\\n  width: 100%;\\n  padding: 0 0 0 0.33em;\\n  @apply border border-solid border-gray-300;\\n  border-radius: 0.3rem;\\n  box-sizing: border-box !important;\\n}\\n.input--type_textarea.input--size_small {\\n  height: 5rem;\\n}\\n.input--type_textarea.input--size_medium {\\n  height: 15rem;\\n}\\n.input--type_textarea.input--size_large {\\n  height: 35rem;\\n}\\n\\n.student-todo-carousel {\\n  height: 240px;\\n}\\n\\n:export {\\n  small: 471;\\n  smallplus: 568;\\n  medium: 768;\\n  large: 1024;\\n  mobile: 767;\\n}\\n\\n.section_banner {\\n  display: flex;\\n  flex-wrap: wrap;\\n  padding: 0 1rem;\\n}\\n\\n.user_details {\\n  margin-bottom: 2.6rem;\\n}\\n.user_details .section_banner {\\n  border-top: 0;\\n}\\n\\n.staff_toolbar {\\n  padding: 1.25rem 1.25rem 1.25rem 1.22rem;\\n  border-width: 0.1rem 0 0.1rem 0.3rem;\\n  border-style: solid;\\n  @apply border-gray-300 border-l border-blue-700 bg-gray-300;\\n}\\n.staff_toolbar .btn {\\n  margin-top: 1.25rem;\\n}\\n.staff_toolbar h5 {\\n  display: inline;\\n  margin-right: 0.5rem;\\n  @apply text-gray-600;\\n  text-transform: uppercase;\\n}\\n@media only screen and (min-width: 768px) {\\n  .staff_toolbar div {\\n    width: 60%;\\n    float: left;\\n  }\\n  .staff_toolbar .btn {\\n    margin-top: -4.4rem;\\n  }\\n}\\n@media only screen and (min-width: 768px) {\\n  .staff_toolbar div {\\n    width: 37.5%;\\n  }\\n  .staff_toolbar h5 {\\n    display: inline;\\n  }\\n  .staff_toolbar .btn {\\n    margin-top: 0;\\n  }\\n}\\n\\n.edit_user_form {\\n  padding: 1.25rem 1.25rem 1.25rem 0;\\n}\\n.edit_user_form label,\\n.edit_user_form .form_controls {\\n  width: 100%;\\n  margin-bottom: 1.25rem;\\n  padding: 0 0 0 1.25rem;\\n}\\n@media only screen and (min-width: 768px) {\\n  .edit_user_form label,\\n  .edit_user_form .form_controls {\\n    width: 50%;\\n  }\\n}\\n.edit_user_form .form_controls {\\n  line-height: 3.6rem;\\n}\\n.edit_user_form .input--type_text {\\n  width: 100%;\\n}\\n\\n.reset_password {\\n  width: 20rem;\\n  white-space: nowrap;\\n}\\n.reset_password span {\\n  margin-right: 0.5rem;\\n  @apply text-gray-600;\\n}\\n\\n.user_memberships_table .th_type,\\n.user_memberships_table .th_active,\\n.user_memberships_table .th_role {\\n  width: 16.666%;\\n}\\n\\n.user_search_form .user_search_toolbar {\\n  align-items: flex-end;\\n}\\n.user_search_form .user_search_opt__role,\\n.user_search_form .user_search_opt__active {\\n  height: 5rem;\\n}\\n\\n.user_search_form--lite .input--type_text__wrapper {\\n  margin-bottom: 1.25rem;\\n}\\n\\n.no-flexbox .ViewMembers__table-header::before, .form_controls::before, .launchpad__title.launchpad--has_svg_logo::before, .no-flexbox .launchpad__columns::before, .no-flexbox .ViewMembers__table-header::after, .form_controls::after, .launchpad__title.launchpad--has_svg_logo::after, .no-flexbox .launchpad__columns::after {\\n  display: table;\\n  content: \\\" \\\";\\n}\\n.no-flexbox .ViewMembers__table-header::after, .form_controls::after, .launchpad__title.launchpad--has_svg_logo::after, .no-flexbox .launchpad__columns::after {\\n  clear: both;\\n}\\n\\n.ViewMembers .ViewMembers__table-header {\\n  padding: 1rem;\\n  display: flex;\\n  flex-wrap: wrap;\\n}\\n.ViewMembers .ViewMembers__table-heading {\\n  margin-top: 0;\\n  margin-bottom: 0;\\n}\\n.ViewMembers .ViewMembers__member_actions {\\n  margin-left: auto;\\n}\\n.ViewMembers .ViewMembers__member_actions .svg-icon {\\n  vertical-align: text-top;\\n  margin-left: 0;\\n}\\n.ViewMembers .ViewMembers__member_actions .btn + .btn {\\n  margin-left: 1rem;\\n}\\n\\n.no-flexbox .ViewMembers__table-heading {\\n  float: left;\\n}\\n.no-flexbox .ViewMembers__member_actions {\\n  float: right;\\n}\\n\\n.wizard_frame {\\n  width: 100%;\\n  height: 500px;\\n  border: hidden;\\n  margin: 0 auto;\\n}\\n\\n.decision_course {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-weight: 700;\\n  font-size: 20px;\\n  text-align: left;\\n  padding-top: 12px;\\n}\\n\\n.decision_footer {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-size: 14px;\\n  padding: 12px 0 12px 0;\\n}\\n\\n.decision_response {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-size: 16px;\\n  margin: 6px 0 6px 0;\\n}\\n\\n.wizard_buttons {\\n  padding-top: 20px;\\n  display: flex;\\n  flex-direction: row;\\n  line-height: 20px;\\n}\\n.wizard_buttons .continue_button {\\n  display: flex;\\n  align-items: center;\\n  padding: 6px 12px;\\n}\\n.wizard_buttons .continue_icon {\\n  margin: 0 0 2px 2px;\\n}\\n.wizard_buttons.video_response .watch_again {\\n  display: flex;\\n  align-items: center;\\n  padding: 6px 12px;\\n  background: rgba(21, 21, 21, 0.05);\\n  border: 1px solid rgba(21, 21, 21, 0.05);\\n  box-sizing: border-box;\\n  border-radius: 50px;\\n}\\n.wizard_buttons.video_response .watch_again_icon {\\n  margin: 0 2px 2px 0;\\n}\\n.wizard_buttons.video_response .respond_later_button {\\n  @apply bg-white;\\n  border: 1px solid #52525b;\\n  box-sizing: border-box;\\n  border-radius: 50px;\\n}\\n.wizard_buttons.video_response .submit_and_finish_button {\\n  margin-left: 3%;\\n}\\n\\n.wizard_mobile_buttons {\\n  padding-top: 20px;\\n  display: flex;\\n  flex-direction: column;\\n  line-height: 20px;\\n}\\n.wizard_mobile_buttons .watch_again {\\n  display: flex;\\n  flex-direction: row;\\n  align-items: center;\\n  padding: 12px 30%;\\n  background: rgba(21, 21, 21, 0.05);\\n  border: 1px solid rgba(21, 21, 21, 0.05);\\n  box-sizing: border-box;\\n  border-radius: 50px;\\n}\\n.wizard_mobile_buttons .watch_again_icon {\\n  margin: 0 2px 2px 0;\\n}\\n.wizard_mobile_buttons .respond_later_button {\\n  @apply bg-white;\\n  border: 1px solid #52525b;\\n  box-sizing: border-box;\\n  border-radius: 50px;\\n  margin: 3% 0 3% 0;\\n}\\n\\n.wizard_icons {\\n  padding-top: 3vh;\\n}\\n\\n.wizard_container {\\n  height: 100vh;\\n  padding: 0 0 10% 0;\\n  @apply bg-gray-100;\\n}\\n\\n.wizard_header {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-size: 28px;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  width: 50%;\\n}\\n.wizard_header .wizard_tag {\\n  font-size: 16px;\\n  line-height: 26px;\\n  font-weight: 400;\\n}\\n\\n.wizard_mobile_header {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-size: 28px;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  width: 100%;\\n}\\n.wizard_mobile_header .wizard_tag {\\n  font-size: 14px;\\n  line-height: 22px;\\n  font-weight: 400;\\n}\\n\\n.wizard_response_header {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-size: 36px;\\n  font-weight: 700;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  line-height: 48px;\\n}\\n\\n.wizard_response_mobile_header {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  font-size: 24px;\\n  font-weight: 700;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  line-height: 32px;\\n}\\n\\n.wizard_title {\\n  font-size: 48px;\\n  font-weight: 700;\\n  margin-top: 25px;\\n  margin-bottom: 17px;\\n  line-height: 64px;\\n}\\n\\n.wizard_mobile_title {\\n  font-size: 36px;\\n  font-weight: 700;\\n  margin-top: 25px;\\n  margin-bottom: 17px;\\n  line-height: 48px;\\n}\\n\\n.wizard_watch_later {\\n  color: #0054b6;\\n  font-weight: 500;\\n  font-size: 14px;\\n  line-height: 170%;\\n}\\n\\n.video_container {\\n  width: 80%;\\n  padding-top: 14vh;\\n  margin: 0 auto;\\n  display: flex;\\n  flex-direction: row;\\n}\\n\\n.video_mobile_container {\\n  width: 95%;\\n  margin: 0 auto;\\n}\\n\\n.video_wrapper {\\n  width: 50%;\\n  display: inline-block;\\n  position: relative;\\n}\\n\\n.video_mobile_wrapper {\\n  width: 100%;\\n  height: 240px;\\n  display: inline-block;\\n  position: relative;\\n}\\n\\n.video_wrapper::after {\\n  padding-top: 56.25vh;\\n  /* 16:9 ratio */\\n  display: block;\\n  content: \\\"\\\";\\n}\\n\\n.wizard_response_container {\\n  width: 80%;\\n  padding: 10% 0 0 20%;\\n}\\n\\n.wizard_response_mobile_container {\\n  width: 95%;\\n  padding-top: 5vh;\\n  margin: 0 auto;\\n}\\n\\n.wizard_mobile_tag {\\n  font-size: 14px;\\n  font-weight: 400;\\n  line-height: 21px;\\n  color: #303030;\\n}\\n\\n.wizard_question {\\n  font-family: Roboto, HelveticaNeue, \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n  margin-bottom: 20px;\\n}\\n.wizard_question > .wizard_question_header {\\n  font-size: 20px;\\n  text-align: left;\\n}\\n.wizard_question > .wizard_tag {\\n  font-size: 16px;\\n  font-weight: 400;\\n  line-height: 24px;\\n  color: #303030;\\n}\\n.wizard_question > .wizard_bold {\\n  font-weight: 700;\\n}\\n.wizard_question > .wizard_response {\\n  margin-top: 15px;\\n  width: 100%;\\n  height: 150px;\\n}\\n.wizard_question > .wizard_mobile_response {\\n  margin-top: 15px;\\n  width: 100%;\\n  height: 200px;\\n}\\n.wizard_question > textarea.wizard_response {\\n  border: 1px solid #151515;\\n  box-sizing: border-box;\\n  border-radius: 6px;\\n}\\n.wizard_question > textarea.wizard_mobile_response {\\n  border: 1px solid #151515;\\n  box-sizing: border-box;\\n  border-radius: 6px;\\n}\\n\\n.wizard_response_ending_text {\\n  font-size: 14px;\\n  line-height: 16px;\\n  color: #52525b;\\n}\\n\\n.wizard_steps {\\n  margin-top: 10vh;\\n  margin-left: 48%;\\n  width: 6%;\\n  min-width: 72px;\\n}\\n\\n.wizard_steps_icons {\\n  display: flex;\\n  flex-direction: row;\\n}\\n\\n.active_step_icon {\\n  margin-right: 2%;\\n  color: #0054b6;\\n}\\n\\n.inactive_step_icon {\\n  margin-right: 2%;\\n  color: #d4d4d8;\\n}\\n\\n.wizard_wizard_steps_text {\\n  margin-left: -20%;\\n  font-size: 14px;\\n  font-weight: 500;\\n  line-height: 16px;\\n}\\n\\n.lrn-response-validate-wrapper.lrn_mcqgroup.lrn_mcqgroup-vertical, .lrn-response-validate-wrapper.lrn_mcqgroup.lrn_mcqgroup-horizontal {\\n  border: none !important;\\n}\\n\\n.Player-preview .lrn-response-validate-wrapper::after,\\n.TabsLayout .lrn-response-validate-wrapper::after {\\n  content: none !important;\\n}\\n\\n.teacher-item-preview .lrn_mcqgroup {\\n  display: none;\\n}\\n.teacher-item-preview .learnosity-item .formatted_line_break {\\n  display: block;\\n}\\n.teacher-item-preview .learnosity-item .tabs {\\n  flex-direction: column;\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs {\\n  padding: 0;\\n  margin: 0;\\n  list-style-type: none;\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab {\\n  display: inline-block;\\n  float: none;\\n  min-width: 110px;\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li:after,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab:after {\\n  background: #1877b1;\\n  border: none;\\n  content: \\\"\\\";\\n  display: block;\\n  height: 2px;\\n  outline: none;\\n  transform: scaleX(0);\\n  transition: all 0.2s ease-in-out;\\n  width: 100%;\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a {\\n  color: #333;\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active:after,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active:after {\\n  transform: scaleX(1);\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a {\\n  color: #767676;\\n  margin-right: 2px;\\n  line-height: 1.42857;\\n  border: 1px solid transparent;\\n  border-radius: 4px 4px 0 0;\\n  position: relative;\\n  display: block;\\n  padding: 10px 15px;\\n  font-size: 85%;\\n}\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a, .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a:hover, .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li > a:focus, .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a, .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a:hover, .teacher-item-preview .learnosity-item .tabs ul.nav-tabs > li.active > a:focus,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a:hover,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab > a:focus,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a:hover,\\n.teacher-item-preview .learnosity-item .tabs ul.nav-tabs .nav-tab.active > a:focus {\\n  background: none;\\n  border: none;\\n  outline: none;\\n}\\n.teacher-item-preview .learnosity-item .row > .col-xs-12 > div {\\n  height: auto !important;\\n}\\n\\n.learnosity-control-item .lrn_stimulus {\\n  margin-bottom: 1em;\\n}\\n.learnosity-control-item.--hide-response .lrn_response_wrapper {\\n  display: none;\\n}\\n.learnosity-control-item.--hide-question .lrn_sharedpassage,\\n.learnosity-control-item.--hide-question .lrn_question {\\n  display: none;\\n}\\n.learnosity-control-item.--hide-question .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper {\\n  border: none;\\n  padding: 0;\\n}\\n.learnosity-control-item.--visible-all .lrn_response_wrapper,\\n.learnosity-control-item.--visible-all .lrn_sharedpassage,\\n.learnosity-control-item.--visible-all .lrn_question {\\n  display: initial;\\n}\\n.learnosity-control-item .lrn_box_skin_wrapper {\\n  width: 100%;\\n  max-width: 50em;\\n}\\n.learnosity-control-item .lrn-toolbar {\\n  display: none;\\n}\\n.learnosity-control-item .lrn-toolbar-footer {\\n  display: none;\\n}\\n.learnosity-control-item .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper {\\n  height: auto;\\n  max-height: none;\\n}\\n.learnosity-control-item .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper:empty::after {\\n  content: \\\"No response entered\\\";\\n  display: block;\\n  padding: 10px;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-file-type-icon {\\n  width: 30px;\\n  display: block;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn_response_input_wrapper {\\n  border: none;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-file-numerator {\\n  display: none;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-list-container {\\n  padding: 0;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-list-container ul {\\n  padding: 0;\\n  list-style: none;\\n  display: block;\\n  border-collapse: collapse;\\n  width: 100%;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-list-container li {\\n  border: none;\\n  @apply bg-gray-200;\\n  padding: 11px 23px;\\n  display: flex;\\n  align-items: center;\\n  height: auto;\\n  line-height: 1.4;\\n  margin-bottom: 16px;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-filename {\\n  overflow: hidden;\\n  padding: 0 0 0 16px;\\n  max-width: none;\\n}\\n.learnosity-control-item .lrn_widget.lrn_fileupload .lrn-fileupload-filename a {\\n  @apply text-blue-700;\\n  text-decoration: none;\\n  font-weight: 500;\\n}\\n.learnosity-control-item .row > .col-xs-12 > div,\\n.learnosity-control-item .row > .col-xs-6 > div {\\n  height: auto !important;\\n}\\n\\n.PlayerModeContainer--content .learnosity-item.--hide-response .lrn_response_wrapper {\\n  display: none;\\n}\\n.PlayerModeContainer--content .learnosity-item .lrn_widget.lrn_feature.lrn_scrollablepassage {\\n  height: auto;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response .tei-distractor {\\n  display: none;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_correctAnswers {\\n  display: none;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response span.lrn_responseIndex {\\n  background-color: #666;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response.lrn_item_teacher .lrn-hotspot-wrapper .lrn-polygons li {\\n  background: transparent;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response.lrn_item_teacher .lrn-hotspot-wrapper .lrn-polygons .lrn_valid polygon {\\n  fill: transparent;\\n  stroke: transparent;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget .lrn_valid {\\n  display: none;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget.lrn_clozetext .lrn_textinput.lrn_not_attempted .lrn_responseIndex {\\n  background: #666;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text .lrn_token.lrn_valid {\\n  background: transparent;\\n  border-left-color: transparent !important;\\n}\\n.PlayerModeContainer--content .learnosity-item.--hide-tei-response .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text .lrn_token.lrn_valid:after {\\n  display: none;\\n}\\n.PlayerModeContainer--content .learnosity-item .row > .col-xs-12 > div {\\n  height: auto !important;\\n}\\n\\n.show-correct-answers {\\n  display: flex;\\n  align-items: center;\\n  font-family: \\\"Roboto\\\";\\n  font-weight: 500;\\n  justify-content: flex-end;\\n  margin: 12px 0;\\n}\\n.show-correct-answers .slide_switch {\\n  margin-left: 16px;\\n}\\n\\n.lrn_widget span.lrn_responseIndex {\\n  @apply bg-green-700;\\n}\\n.lrn_widget.lrn_hotspot .lrn_correctAnswers {\\n  display: none;\\n}\\n.lrn_widget.lrn_clozetext .lrn_textinput.lrn_not_attempted .lrn_responseIndex {\\n  @apply bg-green-700;\\n}\\n.lrn_widget.lrn_clozetext .lrn_textinput.lrn_incorrect .lrn_responseIndex {\\n  @apply bg-red-600;\\n}\\n.lrn_display_correct_answer_enabled .lrn_widget.lrn_clozetext .lrn_textinput .lrn_responseIndex {\\n  @apply bg-green-700;\\n}\\n.lrn_widget .lrn_correctAnswers {\\n  @apply bg-gray-300 !important;\\n  @apply border-l-4 border-solid border-green-700;\\n}\\n.lrn_widget .lrn_correctAnswers .lrn_correctAnswerList li {\\n  @apply bg-white;\\n}\\n.lrn_widget .lrn_correctAnswers .lrn_correctAnswerList li .lrn_responseIndex {\\n  @apply bg-green-700;\\n}\\n.lrn_widget .lrn-hotspot-wrapper .lrn-polygons li {\\n  @apply bg-green-700;\\n}\\n.lrn_widget .lrn-hotspot-wrapper .lrn-polygons .lrn_valid polygon {\\n  @apply stroke-current fill-current text-green-700 text-opacity-20 !important;\\n}\\n.lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_correct .lrn_responseIndex {\\n  @apply bg-green-700 !important;\\n}\\n.lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_correct .lrn_clozedropdown_answer:after {\\n  @apply text-green-700 !important;\\n}\\n.lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_incorrect .lrn_responseIndex {\\n  @apply bg-red-600 !important;\\n}\\n.lrn_widget .lrn_clozedropdown .lrn_combobox.lrn_incorrect .lrn_clozedropdown_answer:after {\\n  @apply text-red-600 !important;\\n}\\n.lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_custom .lrn_token.lrn_valid, .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_paragraph .lrn_token.lrn_valid {\\n  @apply bg-green-100;\\n  @apply border-l border-green-700 !important;\\n}\\n.lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_custom .lrn_token.lrn_valid:after, .lrn_widget.lrn_tokenhighlight .lrn_response .lrn_tokenhighlight_text.lrn_tokenhighlight_paragraph .lrn_token.lrn_valid:after {\\n  @apply text-green-700;\\n}\\n.lrn_widget.lrn_tokenhighlight .lrn_response .lrn_token.lrn_tokenhighlight_hover {\\n  background: #ff9 !important;\\n  border: 1px solid transparent;\\n}\\n.lrn_widget.lrn_tokenhighlight .lrn_response .lrn_token.lrn_tokenhighlight_hover:hover {\\n  border-color: transparent !important;\\n}\\n.lrn_widget.lrn_tokenhighlight .lrn_response .lrn_token.lrn_valid {\\n  @apply border-l border-green-700;\\n}\\n\\n.tei-distractor {\\n  @apply bg-gray-300 border-l-4 border-solid border-green-700;\\n  padding: 24px 42px;\\n}\\n.tei-distractor.unattempted {\\n  font-weight: 500;\\n  border-left: 4px solid #989795;\\n  color: #989795;\\n}\\n.tei-distractor:not(:last-child) {\\n  margin-bottom: 16px;\\n}\\n.tei-distractor p {\\n  margin: 0;\\n}\\n\\n.lrn_response .lrn_display_correct_answer_enabled {\\n  padding: 1em;\\n}\\n\\n.learnosity-item--hide-response .lrn_response_wrapper .lrn_player {\\n  display: none;\\n}\\n\\n:export {\\n  small: 471;\\n  smallplus: 568;\\n  medium: 768;\\n  large: 1024;\\n  mobile: 767;\\n}\\n\\n@media only screen and (max-width: 767px) {\\n  .notification-wrapper,\\n  .toast-wrapper {\\n    width: 100vw;\\n  }\\n  .page_wrapper {\\n    padding: 0;\\n  }\\n  .page_wrapper > .welcome {\\n    margin-left: 0;\\n    margin-right: 0;\\n  }\\n  .PageIndex {\\n    padding: 0;\\n  }\\n  .widget-wrapper {\\n    margin: 24px 0;\\n  }\\n  .Widget--label {\\n    margin: 0;\\n    font-weight: 400;\\n    margin-left: 15px;\\n    line-height: 1;\\n  }\\n}\",\"@import './Fonts';\\n\\n//Typography\\na {\\n  outline: 0;\\n  text-decoration: none;\\n  cursor: pointer;\\n  &:focus {\\n    outline: 0;\\n  }\\n  &[disabled] {\\n    pointer-events: none;\\n  }\\n}\\n\\n.larger {\\n  font-family: sans-serif;\\n  font-size: 175%;\\n  vertical-align: sub;\\n}\\n\\n.all-caps {\\n  text-transform: uppercase;\\n}\\n\\n.init_caps {\\n  text-transform: capitalize;\\n}\\n\\n.right_text {\\n  text-align: right;\\n}\\n\\n.center_text {\\n  text-align: center;\\n}\\n\\n.nowrap {\\n  white-space: nowrap;\\n}\\n\\n.pre-wrap {\\n  white-space: pre-wrap;\\n}\\n\\n.lettered {\\n  list-style-type: upper-alpha;\\n}\\n\\n// Text Colors\\n.text_green {\\n  @apply text-green-600;\\n}\\n\\n.text_red {\\n  @apply text-red-500;\\n}\\n\\n.text_blue {\\n  @apply text-blue-700;\\n}\\n\",\".input--type_check {\\n  margin: 0;\\n  [type='checkbox'] {\\n    margin-right: 0.5rem;\\n  }\\n  span {\\n    display: inline-block !important;\\n  }\\n}\\n\",\".error_validation {\\n  margin: 0;\\n  padding: 0;\\n  list-style: none;\\n}\\n.ev__item {\\n  margin-top: 0.25rem;\\n  padding-left: 1em;\\n  @apply text-red-500;\\n  line-height: 1;\\n  text-indent: -1em;\\n  &[data-icon-before]::before {\\n    margin-right: 0.25rem;\\n  }\\n}\\n\\n.error {\\n  @apply text-red-600;\\n  &.svg-icon {\\n    @apply fill-current text-red-600;\\n  }\\n}\\n\\n.error-wrap {\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n  width: 100%;\\n\\n  .error-msg {\\n    line-height: 2em;\\n  }\\n}\\n\",\"@import './utility/InputSizes';\\n\\n.toolbar {\\n  padding: 1.25rem;\\n}\\n\\n//\\n// Filter Toolbar\\n// Contains the user and group search forms\\n//\\n.filter_toolbar {\\n  // Add Button & Join Code Wrapper\\n  .actions_wrapper {\\n    margin-bottom: 1.25rem;\\n  }\\n  // Add button\\n  [data-icon-before='+'] {\\n    float: right;\\n    clear: right;\\n  }\\n\\n  // Forms - Common Styles\\n  .user_search_form,\\n  .group_search_form {\\n    .input--type_text__wrapper {\\n      width: 100%;\\n      margin-bottom: 0.5rem;\\n    }\\n    label,\\n    .btn {\\n      align-self: flex-end;\\n    }\\n    label {\\n      height: 5rem;\\n      .input--type_select {\\n        width: 100%;\\n      }\\n    }\\n  }\\n  .user_search_form,\\n  .group_search_form {\\n    label {\\n      flex: 2;\\n    }\\n    // States\\n    &.user_search_form--large,\\n    &.group_search_form--large {\\n      display: flex;\\n      width: 100%;\\n      .input--type_text__wrapper,\\n      .user_search_toolbar,\\n      .group_search_toolbar {\\n        width: 50%;\\n        display: flex;\\n      }\\n      .user_search_input,\\n      .group_search_input {\\n        align-self: flex-end;\\n        margin-bottom: 0 !important;\\n        margin-right: 1.5rem;\\n      }\\n      .input--type_text__wrapper {\\n        margin-bottom: 0;\\n      }\\n    }\\n  }\\n}\\n\",\"@import './utility/Fonts';\\n\\n.form {\\n  label {\\n    display: inline-block;\\n    text-transform: capitalize;\\n    vertical-align: bottom;\\n    span {\\n      display: block;\\n      @apply text-gray-600;\\n      @include secondary-alt-font();\\n      font-size: 1.4rem;\\n      letter-spacing: 0.025rem;\\n    }\\n  }\\n}\\n\",\"//\\n// Font Mixins\\n//\\n\\n@mixin primary-font() {\\n  font-family: Roboto, HelveticaNeue, 'Helvetica Neue', Helvetica, Arial,\\n    sans-serif;\\n}\\n@mixin secondary-font() {\\n  font-family: Roboto, HelveticaNeue, 'Helvetica Neue', Helvetica, Arial,\\n    sans-serif;\\n  font-weight: 500;\\n  -webkit-font-smoothing: antialiased;\\n}\\n@mixin secondary-alt-font() {\\n  font-family: Roboto, HelveticaNeue, 'Helvetica Neue', Helvetica, Arial,\\n    sans-serif;\\n  font-weight: 300;\\n}\\n\",\"//\\n// Login and join forms\\n//\\n.form_account_container {\\n  margin-top: 2rem;\\n\\n  a {\\n    @apply text-blue-600;\\n  }\\n  display: flex;\\n  justify-content: center;\\n  // Modal overlay style overrides\\n  .contents {\\n    @apply bg-white;\\n    width: 45rem;\\n    max-width: 45rem;\\n    border: 1px solid #cccccc;\\n    box-shadow: none;\\n    overflow-x: visible;\\n    overflow-y: visible;\\n  }\\n\\n  // Join a Class | Teacher Login links\\n  .login_links_container {\\n    margin-bottom: 1rem;\\n\\n    a {\\n      display: inline-block;\\n\\n      + a::before {\\n        content: '|';\\n        color: #cccccc;\\n        margin-right: 1rem;\\n      }\\n\\n      + a {\\n        margin-left: 1rem;\\n      }\\n    }\\n  }\\n}\\n\\n.form_login_wrapper {\\n  padding: 2.5rem 2rem;\\n\\n  p {\\n    margin-bottom: 1.5rem;\\n  }\\n}\\n\\n.join_form_name_row {\\n  fieldset {\\n    flex: 1 !important;\\n    -ms-flex: 1 !important;\\n  }\\n}\\n\\n.form_login_header {\\n  h2 {\\n    font-size: 2.6rem;\\n    margin-top: 0;\\n    font-weight: 400;\\n  }\\n}\\n\\n.form_login_panel {\\n  margin-bottom: 2.5rem;\\n\\n  .join_radio_toggle {\\n    display: flex;\\n    justify-content: space-around;\\n    margin-top: 1.5rem;\\n\\n    label {\\n      font-weight: 400;\\n    }\\n\\n    input[type='radio'] {\\n      width: 1.6rem;\\n      height: 1.6rem;\\n      margin-right: 1rem;\\n    }\\n  }\\n\\n  fieldset {\\n    padding: 0;\\n    margin: 1rem 0 0.5rem 0;\\n  }\\n\\n  label {\\n    display: inline-block;\\n    margin-bottom: 0.5rem;\\n    color: #4d4c4a;\\n    font-weight: 700;\\n  }\\n\\n  .join_form_btn_row {\\n    text-align: center;\\n    margin-top: 3rem;\\n  }\\n\\n  .join-toggle-pass {\\n    float: right;\\n  }\\n\\n  button {\\n    width: 13rem;\\n\\n    &.join_form_cancel {\\n      margin-right: 2rem;\\n      @apply bg-white border border-solid border-blue-500 text-blue-600;\\n\\n      &:hover,\\n      &:active {\\n        @apply border-blue-600;\\n      }\\n    }\\n\\n    &.login_form {\\n      display: block;\\n      margin: 0 auto;\\n    }\\n  }\\n\\n  span.form-error {\\n    display: block;\\n    @apply text-red-600;\\n  }\\n}\\n\\n// Login form, just single login type\\n.form_login {\\n  label {\\n    margin-bottom: 0.25rem;\\n  }\\n  fieldset {\\n    margin: 0 0 1.25rem;\\n  }\\n  [type='submit'] {\\n    margin-top: 0.5rem;\\n  }\\n  .form_login_panel {\\n    width: 100%;\\n\\n    > a {\\n      margin-bottom: 1.5rem;\\n      display: block;\\n    }\\n  }\\n  .failed-login {\\n    @apply text-red-600;\\n  }\\n  .form_login_panel_actions {\\n    margin: 0.75rem 0;\\n    a {\\n      float: left;\\n    }\\n    a + a {\\n      float: right;\\n    }\\n  }\\n  .form_login_sso_button {\\n    display: block;\\n    margin-top: 2rem;\\n    .btn {\\n      margin: 0 auto 0.75rem;\\n    }\\n    h5 {\\n      font-size: 1.8rem;\\n    }\\n  }\\n}\\n\\n// Login form with SSO options\\n.form_login--has_options {\\n  display: table-row;\\n  .form_login_panel--standard {\\n    display: table-cell;\\n    width: 60%;\\n    padding: 0 1.25rem 0 0;\\n    vertical-align: top;\\n    + .form_login_panel--sso a {\\n      padding-left: 1.25rem;\\n      @apply border-l border-solid border-gray-300;\\n    }\\n  }\\n  .form_login_panel--sso {\\n    display: table-cell;\\n    width: auto;\\n  }\\n  .form_login_panel_actions {\\n    a,\\n    a + a {\\n      float: left;\\n    }\\n  }\\n}\\n\\n// Formal forms, password resets\\n// Validation styles use the border, so box-shadow provides the outline\\n.formal {\\n  padding: 1.5rem 2.5rem 2.5rem;\\n  label {\\n    margin: 1.5rem 0 0;\\n    @apply text-gray-700;\\n    font-size: 1.5rem;\\n  }\\n  input,\\n  textarea {\\n    margin-bottom: 0.5rem;\\n    @apply border border-solid border-gray-500;\\n    &[type='checkbox'],\\n    &[type='radio'] {\\n      box-shadow: none;\\n    }\\n  }\\n}\\n\\nlabel.right {\\n  //scss-lint:disable QualifyingElement\\n  width: auto;\\n  + label {\\n    width: auto;\\n  }\\n}\\n\\n.response {\\n  margin-top: 0.5rem;\\n  margin-left: 1rem;\\n  @apply text-gray-600;\\n  font-size: 90%;\\n  text-align: right;\\n}\\n\\n.join_code_desc {\\n  margin-top: -0.5rem;\\n}\\n\\n.field_errors,\\n[field-errors] {\\n  margin: 0;\\n  padding: 0;\\n  @apply text-red-600;\\n  li {\\n    margin: 0 0 0 2.5rem;\\n    list-style-type: disc;\\n  }\\n}\\n\\n.show_password {\\n  margin-top: 0.5rem;\\n  .option_check {\\n    margin-right: 0.5rem;\\n  }\\n}\\n\\n.form_controls {\\n  @extend %cf;\\n\\n  margin: 2.5rem 0 2rem;\\n  button {\\n    margin-left: 1.5rem;\\n  }\\n  a {\\n    + a {\\n      margin-left: 1.5rem;\\n    }\\n  }\\n}\\n\\n.form_controls--short {\\n  margin: 0;\\n}\\n\\n//\\n// Confirm Button\\n//\\n[confirm-action] {\\n  display: inline-block;\\n  width: 100px;\\n  height: 25px;\\n  overflow: hidden;\\n  .conf_wrapper {\\n    display: inline-block;\\n    width: 140px;\\n    height: 27px;\\n    overflow: hidden;\\n  }\\n  .conf_btn {\\n    transition: all 0.5s ease;\\n  }\\n  &.conf_active {\\n    .conf_btn {\\n      margin-left: -120px;\\n      opacity: 0;\\n    }\\n  }\\n}\\n\\n//\\n// Stylized Select\\n//\\n.select_wrap {\\n  display: inline-block;\\n  position: relative;\\n  width: auto;\\n  height: 3.6rem;\\n  border-radius: 0.3rem;\\n  background: rgba(0, 0, 0, 0.1);\\n  overflow: hidden;\\n  &::after {\\n    position: absolute;\\n    top: 0;\\n    right: 0;\\n    width: 3.6rem;\\n    height: 3.6rem;\\n    background: rgba(0, 0, 0, 0.1);\\n    line-height: 35px; // in PX because IE9 is special\\n    text-align: center;\\n    content: '\\\\25BC';\\n    vertical-align: bottom;\\n    z-index: 1;\\n  }\\n  select {\\n    position: relative;\\n    width: calc(100% + 1.5rem);\\n    height: 3.6rem;\\n    padding: 0 4.5rem 0 1rem;\\n    border: 0;\\n    background: transparent;\\n    color: #555;\\n    font-size: 1.2rem;\\n    line-height: 1;\\n    z-index: 10;\\n\\n    -webkit-appearance: none; //scss-lint:disable VendorPrefixes\\n    &:hover {\\n      cursor: pointer;\\n    }\\n  }\\n  &.select_block {\\n    width: 100%;\\n  }\\n  &.btn--size_small {\\n    height: 2.6rem;\\n    padding: 0;\\n    &::after {\\n      width: 2.6rem;\\n      height: 2.6rem;\\n      line-height: 30px;\\n    }\\n    select {\\n      height: 2.6rem;\\n    }\\n  }\\n}\\n\\n//\\n// Stylized Radio/Checkbox Buttons\\n//\\n// <label class='input_wrap media'>\\n//   <input type='radio' ng-model='(model)' value='{{ (value) }}'>\\n//   <span class='option'>\\n//     <span class='option_check obj_alt'></span>\\n//     <span class='option_text bd'>{{ (value) }}</span>\\n//   </span>\\n// </label>\\n//\\n\\n%option_check {\\n  display: block;\\n  position: absolute;\\n  width: 1.5rem;\\n  height: 1.5rem;\\n}\\n\\n.input_wrap {\\n  //Common\\n  [type='radio']:not(old),\\n  [type='checkbox']:not(old) {\\n    position: absolute;\\n    width: 0;\\n    height: 0;\\n    opacity: 0;\\n    + .option {\\n      display: block;\\n      margin-left: 2.5rem;\\n      cursor: pointer;\\n      .option_check {\\n        position: relative;\\n        width: 2.5rem;\\n        height: 2.5rem;\\n        margin-top: 0;\\n        margin-left: -2.5rem;\\n        border-width: 1px;\\n        border-style: solid;\\n        @apply bg-white border border-solid border-gray-600;\\n      }\\n      .option_text {\\n        margin-left: 0.75rem;\\n        line-height: 2.6rem;\\n      }\\n    }\\n    &:disabled {\\n      + .option .option_check {\\n        @apply bg-gray-300 border-gray-600;\\n      }\\n    }\\n  }\\n  // Radios\\n  [type='radio']:not(old) {\\n    + .option .option_check {\\n      border-radius: 50%;\\n    }\\n  }\\n  &.radio_checked {\\n    .option_check::before {\\n      @extend %option_check;\\n\\n      margin: 0.4rem 0 0 0.4rem;\\n      border-radius: 50%;\\n      @apply bg-green-600;\\n      content: '';\\n    }\\n  }\\n  // Checkboxes\\n  [type='checkbox']::not(old) {\\n    + .option {\\n      .option_check {\\n        border-radius: 0.3rem;\\n      }\\n    }\\n  }\\n  &.checkbox_checked {\\n    .option_check::before {\\n      @extend %option_check;\\n\\n      margin: 0.4rem 0 0 0.5rem;\\n      @apply text-green-600;\\n      font-family: 'am-icon-font';\\n      line-height: 1;\\n      content: '1';\\n    }\\n  }\\n}\\n\\n//\\n// Scribe/WYSIWYG Editor\\n//\\n.wysi_editor {\\n  .editor-body {\\n    width: 100%;\\n    min-height: 3.5rem;\\n    padding: 0.5rem;\\n    border-radius: 0.3rem;\\n    @apply bg-white;\\n    cursor: text;\\n    box-shadow: 0 0 0.4rem #999 inset;\\n  }\\n  .btn {\\n    vertical-align: top;\\n  }\\n}\\n\\n.wysi--large {\\n  .editor-body {\\n    min-height: 20rem;\\n  }\\n}\\n\\n.have_account {\\n  margin-top: 2rem;\\n}\\n\\n.fail-login-show {\\n  @apply text-red-600;\\n}\\n\\n.fail-login-hide {\\n  @apply text-red-600;\\n  display: none;\\n}\\n\",\"@import './utility/Grid';\\n\\n.group_memberships {\\n  .th_active,\\n  .th_role {\\n    width: $gs-2;\\n  }\\n}\\n\",\"// Twelve Column grid widths as variables\\n$gs-1: 8.333%;\\n$gs-2: 16.666%;\\n$gs-3: 25%;\\n$gs-4: 33.333%;\\n$gs-5: 41.666%;\\n$gs-6: 50%;\\n$gs-7: 58.333%;\\n$gs-8: 66.666%;\\n$gs-9: 75%;\\n$gs-10: 83.333%;\\n$gs-11: 91.666%;\\n$gs-12: 100%;\\n\\n// Nine column grid widths\\n$g9-1: 11.11%;\\n$g9-2: 22.22%;\\n$g9-3: 33.33%;\\n$g9-4: 44.44%;\\n$g9-5: 55.55%;\\n$g9-6: 66.66%;\\n$g9-7: 77.77%;\\n$g9-8: 88.88%;\\n$g9-9: 100%;\\n\",\"#ft-levity-login {\\n  padding: 2.5rem 2rem;\\n  form {\\n    margin-bottom: 1.5rem;\\n    label {\\n      display: inline-block;\\n      margin-bottom: 0.5rem;\\n      color: #4d4c4a;\\n      font-weight: 700;\\n    }\\n    input {\\n      margin-bottom: 1rem;\\n    }\\n    button {\\n      display: block;\\n      margin: 1.5rem auto 2.25rem;\\n      height: 3.6rem;\\n      padding: 0 1.2rem;\\n      line-height: 3.5rem;\\n      @apply bg-blue-700 hover:bg-blue-800;\\n      width: 13rem;\\n      &.login_form {\\n        display: block;\\n        margin: 0 auto;\\n      }\\n    }\\n  }\\n  p {\\n    line-height: 2.75rem;\\n    margin-bottom: 0;\\n  }\\n}\\n\",\"// Powered By logo for the APUSH app\\n.powered_by {\\n  position: fixed;\\n  bottom: 0;\\n  left: 0;\\n  width: 11rem;\\n  height: 3rem;\\n  padding: 0.5rem;\\n  border-radius: 0 0.3rem 0 0;\\n  @apply bg-white border-t border-r border-solid border-gray-300 rounded-r-md;\\n  z-index: 110;\\n}\\n\\n.tooltip,\\n.modal.overlay > .contents {\\n  margin: 0;\\n  padding: 1rem 1rem 1.25rem;\\n  transition: opacity 1s ease;\\n  border-radius: 0.3rem;\\n  background: rgba(255, 255, 255, 1);\\n  color: #666;\\n  text-align: left;\\n  box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.4);\\n  z-index: 1000;\\n}\\n\\n.tooltip {\\n  // Disable flicker if you mouse down over the tooltip\\n  pointer-events: none;\\n  > ul {\\n    margin: 0;\\n    padding-left: 1em;\\n  }\\n}\\n\\n.overlay.hidden {\\n  opacity: 0;\\n}\\n\\n.modal.overlay {\\n  position: fixed;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n  min-height: 100vh;\\n  background: rgba(255, 255, 255, 0.9);\\n  z-index: 100;\\n}\\n\\n.modal.overlay > .contents {\\n  position: fixed;\\n  top: 7.5rem;\\n  left: 50%;\\n  width: 96%;\\n  max-width: 40rem;\\n  max-height: 96%;\\n  max-height: 96vh; // scss-lint:disable DuplicateProperty\\n  -webkit-transform: translateX(-50%);\\n  -moz-transform: translateX(-50%);\\n  -o-transform: translateX(-50%);\\n  transform: translateX(-50%);\\n  padding: 0;\\n  box-shadow: 0 0 2.5rem rgba(0, 0, 0, 0.3);\\n\\n  box-sizing: border-box;\\n  overflow-y: auto;\\n  p {\\n    margin-bottom: 2.5rem;\\n  }\\n  &.contents_large {\\n    top: 7.5rem;\\n    bottom: 2.5rem;\\n    max-width: 65rem;\\n    margin-left: 0;\\n    transform: translateX(-50%);\\n  }\\n}\\n\\n.modal_close {\\n  position: absolute !important;\\n  top: 7.5rem;\\n  right: 2.5rem;\\n  z-index: 10000;\\n}\\n\\n//\\n// -- Modal Types\\n//\\n\\n// - Video\\n.modal.modal_video.overlay > .contents {\\n  top: 7.5rem;\\n  width: 90vm;\\n  width: 90vmin; // scss-lint:disable DuplicateProperty\\n  max-width: 1200px;\\n  margin-left: 0;\\n  transform: translateX(-50%);\\n}\\n\\n.modal_video .modal_video_content {\\n  padding: 1.25rem;\\n}\\n\\n.modal_video .modal_close {\\n  top: 1.25rem;\\n  right: 1.25rem;\\n}\\n\",\"%cf {\\n  &::before,\\n  &::after {\\n    display: table;\\n    content: ' ';\\n  }\\n  &::after {\\n    clear: both;\\n  }\\n}\\n\",\"@import './utility/InputSizes';\\n@import './utility/Helpers';\\n@import './utility/Fonts';\\n\\n.launchpad__columns {\\n  align-items: flex-start;\\n  justify-content: center;\\n  > div {\\n    flex-basis: 50%;\\n  }\\n}\\n// Column that AP-I and QB launchpads are in\\n.ap_apps {\\n  display: flex;\\n  flex-wrap: wrap;\\n  align-items: flex-start;\\n  justify-content: center;\\n  margin-left: 0;\\n}\\n\\n// All launchpads\\n.launchpad {\\n  max-width: 700px;\\n  margin: 0 0.75rem 2.5rem !important; //required to make spacing equal in all configs\\n  flex-grow: 1;\\n}\\n\\n.launchpad__title {\\n  padding: 0.01rem 1.25rem 2.304em;\\n  @apply border-b-4 border-solid border-blue-700 bg-gray-400;\\n  // Only for Insight & QB\\n  .logo_wrap {\\n    float: left;\\n  }\\n  svg {\\n    max-width: 100%;\\n  }\\n  &.launchpad--has_svg_logo {\\n    @extend %cf;\\n  }\\n  &.launchpad--has_group_mgmt {\\n    padding-top: 3.45rem; //same as h1\\n    padding-bottom: 4.75rem;\\n    text-align: right;\\n  }\\n}\\n\\n.launchpoint {\\n  display: flex;\\n  padding: 0 1.25rem 1.25em;\\n  @apply border border-solid border-gray-500;\\n\\n  justify-content: space-between;\\n  align-items: stretch;\\n  .launchpoint__title {\\n    padding-right: 1.25rem;\\n  }\\n  .launchpoint__action {\\n    min-width: 12rem;\\n    .btn {\\n      display: block;\\n      width: 100%;\\n      max-width: 16rem;\\n      margin-top: 1.25em;\\n      text-align: center;\\n      white-space: nowrap;\\n    }\\n  }\\n  &.draft {\\n    @apply border-2 border-solid border-gray-500 bg-blue-700;\\n  }\\n}\\n\\n// AP Student\\n.join_group {\\n  text-align: left;\\n  h3 {\\n    margin-top: 0.3125em;\\n  }\\n  .join_group__input_wrap {\\n    display: flex;\\n    min-width: 24rem;\\n    margin: 1.5rem 0;\\n    .input--type_text {\\n      max-width: 14rem;\\n\\n      flex-grow: 1;\\n    }\\n    .btn {\\n      min-width: 8rem;\\n      margin-left: 1rem;\\n\\n      flex: 1;\\n    }\\n  }\\n}\\n\\n//\\n// IE9 Fixes\\n//\\n.no-flexbox {\\n  .launchpad__columns {\\n    @extend %cf;\\n    display: block;\\n  }\\n  .ap_apps {\\n    > .launchpad {\\n      width: 100%;\\n    }\\n  }\\n  .launchpad {\\n    width: 47.5%;\\n    display: block;\\n  }\\n  .launchpad:nth-child(odd) {\\n    float: left;\\n  }\\n  .launchpad:nth-child(even) {\\n    float: right;\\n  }\\n  .launchpad__title {\\n    overflow: auto;\\n    .apinsight-logo {\\n      width: 156px;\\n      float: left;\\n    }\\n  }\\n  .launchpoint {\\n    display: block;\\n    flex: none;\\n    overflow: hidden;\\n    .launchpoint__title {\\n      width: calc(100% - 12rem);\\n      float: left;\\n    }\\n    .launchpoint__action {\\n      width: 12rem;\\n      overflow: hidden;\\n    }\\n  }\\n}\\n\",\".input--type_radio {\\n  margin: 0;\\n  cursor: pointer;\\n  [type='radio'] {\\n    margin-right: 0.5rem;\\n  }\\n  span {\\n    display: inline-block !important;\\n  }\\n}\\n\",\".rich_title_wrapper {\\n  ul {\\n    padding: 0 0 0 2.5rem !important;\\n    list-style-type: disc;\\n  }\\n  &.default {\\n    max-width: 45em;\\n  }\\n\\n  li {\\n    > p {\\n      margin: 0;\\n    }\\n  }\\n\\n  p {\\n    margin: 0;\\n  }\\n}\\n\",\".role-select {\\n  position: relative;\\n  // Popover button\\n  .popover {\\n    width: 100%;\\n  }\\n  .pop_over_toggle {\\n    display: block;\\n    text-align: center;\\n    width: 100%;\\n  }\\n  .btn {\\n    text-transform: capitalize;\\n    margin-bottom: 0;\\n  }\\n\\n  .svg-icon {\\n    margin-right: 0;\\n    margin-left: 1rem;\\n    vertical-align: text-top;\\n  }\\n\\n  > select {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n    cursor: pointer;\\n    &:not(:active) {\\n      opacity: 0;\\n    }\\n  }\\n}\\n.role-select__selector {\\n  h3 {\\n    margin-top: 0;\\n  }\\n}\\n.role-select__buttons {\\n  .btn + .btn {\\n    margin-left: 1rem;\\n  }\\n}\\n\",\"@import './utility/InputSizes';\\n\\n//\\n// Stylized Select\\n//\\n.input--type_select {\\n  display: inline-block;\\n  position: relative;\\n  width: auto;\\n  border-radius: 0.3rem;\\n  background: rgba(0, 0, 0, 0.1);\\n  overflow: hidden;\\n  &::after {\\n    position: absolute;\\n    top: 0;\\n    right: 0;\\n    background: rgba(0, 0, 0, 0.1);\\n    text-align: center;\\n    content: '\\\\25BC'; // solid downward triangle\\n    vertical-align: bottom;\\n    z-index: 1;\\n    @apply text-gray-900;\\n  }\\n  select {\\n    position: relative;\\n    width: calc(100% + 5.5rem);\\n    padding-left: 1rem;\\n    border: 0;\\n    background: transparent;\\n    color: #555;\\n    font-size: 1.4rem;\\n    text-transform: capitalize;\\n    z-index: 10;\\n\\n    -webkit-appearance: none; //scss-lint:disable VendorPrefixes\\n    &:hover {\\n      cursor: pointer;\\n    }\\n  }\\n  &.input--size_small {\\n    height: $input_small;\\n    &::after {\\n      width: $input_small;\\n      height: $input_small;\\n      font-size: calc($input_small / 2.5);\\n      line-height: 26px; // in PX because IE9 is special\\n    }\\n    select {\\n      height: $input_small;\\n      padding-right: $input_small + 1;\\n    }\\n  }\\n  &.input--size_medium {\\n    height: $input_medium;\\n    &::after {\\n      width: $input_medium;\\n      height: $input_medium;\\n      font-size: calc($input_medium / 2.5);\\n      line-height: 36px;\\n    }\\n    select {\\n      height: $input_medium;\\n      padding-right: $input_medium + 1;\\n      font-size: 1.6rem;\\n    }\\n  }\\n}\\n\",\"// Form input sizes\\n$input_xsmall: 2.2rem;\\n$input_small: 2.6rem;\\n$input_medium: 3.6rem;\\n$input_large: 5rem;\\n\",\"@import './utility/InputSizes';\\n\\n.slide_switch {\\n  display: inline-block;\\n  height: $input_medium;\\n  padding-top: 0.4rem;\\n  font-size: 1.2rem;\\n  text-align: left;\\n  text-transform: uppercase;\\n\\n  > div {\\n    display: table-row;\\n    cursor: pointer;\\n    user-select: none;\\n  }\\n\\n  span {\\n    display: table-cell;\\n    padding: 0 0.5rem;\\n    line-height: 2.5;\\n    vertical-align: middle;\\n  }\\n\\n  [type='checkbox'] {\\n    display: none;\\n    margin: 0;\\n    padding: 0;\\n  }\\n\\n  .switch_outter {\\n    display: inline-block;\\n    position: relative;\\n    width: 5rem;\\n    height: $input_small;\\n    padding: 0;\\n    transition: background 0.25s ease;\\n    border-radius: 1.3rem;\\n    @apply bg-gray-600;\\n\\n    &.disabled {\\n      @apply bg-gray-400;\\n    }\\n  }\\n\\n  //default is off position\\n  .switch_toggle {\\n    display: inline-block;\\n    position: absolute;\\n    width: 2rem;\\n    height: 2rem;\\n    margin-top: 0.3rem;\\n    margin-left: 0.3rem;\\n    padding: 0;\\n    float: left;\\n    transition: margin 0.25s ease;\\n    border-radius: 50%;\\n    @apply bg-white;\\n  }\\n\\n  &.switch_on {\\n    .switch_toggle {\\n      margin-left: 2.7rem;\\n    }\\n\\n    .switch_outter {\\n      @apply bg-green-600;\\n\\n      &.disabled {\\n        opacity: 0.5;\\n      }\\n    }\\n  }\\n}\\n\",\"@import './utility/InputSizes';\\n\\n.subjects-preview {\\n  display: flex;\\n  min-height: 100vh;\\n  @apply bg-white;\\n\\n  .container {\\n    margin: 15px auto;\\n    min-width: 450px;\\n    width: auto;\\n  }\\n\\n  .header {\\n    display: flex;\\n    align-items: center;\\n    .title {\\n      flex: 1;\\n      margin: 0 !important;\\n      font-size: 24px;\\n      font-weight: 400;\\n    }\\n  }\\n\\n  .subject_selector {\\n    margin-left: 1rem;\\n    margin-top: 0.5rem;\\n  }\\n  .subsel__label {\\n    display: inline-block;\\n    font-family: Roboto;\\n    align-items: center;\\n    font-size: 20px;\\n    font-weight: 500;\\n    line-height: 1.4;\\n    text-align: left;\\n    color: #0075c8;\\n    padding-top: 25px;\\n    padding-bottom: 15px;\\n    display: flex;\\n    height: 100%;\\n\\n    .svg-icon {\\n      width: 13.5px !important;\\n      height: 13.5px !important;\\n    }\\n  }\\n\\n  label {\\n    padding: 0 14px;\\n    margin-bottom: 0%;\\n  }\\n}\\n\\n.bottom-line {\\n  height: 15px;\\n  @apply border-b;\\n  @apply border-gray-400;\\n}\\n\\n.no_btn {\\n  border: 0;\\n  padding: 0;\\n  background: initial;\\n}\\n\\n.units_title {\\n  margin: 0 auto;\\n  display: flex;\\n  align-items: center;\\n  justify-content: space-between;\\n\\n  .left {\\n    margin-right: auto;\\n    width: 100%;\\n  }\\n}\\n\\n.right {\\n  float: right;\\n}\\n\",\".subjects {\\n  ul {\\n    list-style: none;\\n    padding: 0;\\n\\n    li {\\n      margin-bottom: 9px;\\n      a {\\n        padding: 18px 22px;\\n        display: block;\\n        @apply bg-gray-200;\\n        border-top: solid 1px #d9d9d9;\\n        label {\\n          cursor: pointer;\\n          font-size: 20px;\\n          color: #0075c8;\\n          font-size: 18px;\\n          font-weight: 500;\\n        }\\n        svg {\\n          float: right;\\n          margin-top: 7px;\\n        }\\n      }\\n    }\\n  }\\n}\\n\",\"@import './utility/Decoration';\\n@import './utility/InputSizes';\\n\\n// \\\"Tabs\\\" base/default style, assumes children are anchors\\n.tabs {\\n  display: flex;\\n\\n  flex-direction: row;\\n  a {\\n    cursor: pointer;\\n    transition: all 0.125s ease;\\n    border-style: solid;\\n    text-align: center;\\n\\n    align-self: stretch;\\n\\n    &.active {\\n      outline: none;\\n    }\\n  }\\n  // Tab Direction\\n  // Horizontal needs nothing, Vertical assumes tab container on left\\n  &.tabs--direction_vert {\\n    flex-direction: column;\\n  }\\n}\\n//\\n// \\\"Tabs\\\" style\\n.tabs--style_tabs {\\n  a {\\n    margin-right: 0.2rem;\\n    margin-bottom: -0.1rem;\\n    border-width: 0.1rem 0.1rem 0;\\n    border-radius: $radius $radius 0 0;\\n    border-color: transparent;\\n    // Tab States\\n    &.active,\\n    &:hover {\\n      border-width: 0.1rem 0.1rem 0;\\n      border-style: solid;\\n    }\\n    &[disabled] {\\n      border-width: 0.1rem;\\n      border-style: solid;\\n    }\\n  }\\n  // Tab Direction\\n  // Vertical assumes tab container on left\\n  &.tabs--direction_vert {\\n    a {\\n      margin: 0 0 0.2rem -0.1rem;\\n      border-width: 0.1rem;\\n      border-style: solid;\\n\\n      align-self: stretch;\\n    }\\n  }\\n}\\n\\n//\\n// \\\"Bar\\\" style\\n.tabs--style_bar {\\n  a {\\n    margin: 0 0.2rem 0 0;\\n    border-width: 0 0 0.3rem;\\n    border-color: transparent;\\n  }\\n  // Tab Direction\\n  // Vertical assumes tab container on left\\n  &.tabs--direction_vert {\\n    a {\\n      margin: 0 0 0.2rem;\\n      border-width: 0 0 0 0.3rem;\\n    }\\n  }\\n}\\n\\n//\\n// Tab Size\\n\\n// Default Size\\n.tabs--size_default {\\n  min-height: $input_medium;\\n  &.tabs--direction_vert {\\n    height: auto;\\n    a {\\n      min-height: $input_medium;\\n    }\\n  }\\n}\\n// Large Size\\n.tabs--size_large {\\n  min-height: $input_large;\\n  &.tabs--direction_vert {\\n    height: auto;\\n    a {\\n      min-height: $input_large;\\n    }\\n  }\\n}\\n\\n//\\n// IE9 Fixes\\n//\\n.no-flexbox {\\n  .tabs {\\n    a {\\n      display: inline-block;\\n    }\\n    &.tabs--direction_vert a {\\n      display: block;\\n    }\\n  }\\n}\\n\\n[role='tabpanel']:focus {\\n  outline: none;\\n}\\n\",\"/*\\n  Please note the support of sticky positioning:\\n  Not supported by IE, Opera Mini and Edge lower than v16.\\n*/\\n@mixin sticky-table-header($headerBgColor: transparent) {\\n  table {\\n    position: relative;\\n\\n    thead th {\\n      position: -webkit-sticky;\\n      position: sticky;\\n      top: 0;\\n      z-index: 2;\\n\\n      @if $headerBgColor != transparent {\\n        background-color: $headerBgColor;\\n      }\\n    }\\n  }\\n}\\n\\n@mixin sticky-table-left-column(\\n  $defaultRowBgColor: transparent,\\n  $oddRowBgColor: transparent\\n) {\\n  table {\\n    position: relative;\\n\\n    thead tr:first-child th:first-child,\\n    tbody tr th:first-child {\\n      position: -webkit-sticky;\\n      position: sticky;\\n      left: 0;\\n      z-index: 2;\\n    }\\n\\n    @if $defaultRowBgColor != transparent {\\n      tbody tr {\\n        background-color: $defaultRowBgColor;\\n\\n        th:first-child,\\n        td:first-child {\\n          background-color: $defaultRowBgColor;\\n        }\\n      }\\n\\n      @if $oddRowBgColor != transparent {\\n        tbody tr:nth-child(odd) {\\n          background-color: $oddRowBgColor;\\n\\n          th:first-child,\\n          td:first-child {\\n            background-color: $oddRowBgColor;\\n          }\\n        }\\n      }\\n    }\\n  }\\n}\\n\\n@mixin sticky-table-header-left-column(\\n  $headerBgColor: transparent,\\n  $defaultRowBgColor: transparent,\\n  $oddRowBgColor: transparent\\n) {\\n  @include sticky-table-header($headerBgColor);\\n  @include sticky-table-left-column($defaultRowBgColor, $oddRowBgColor);\\n\\n  table thead tr:first-child th:first-child {\\n    z-index: 3;\\n  }\\n}\\n\\n.cell-with-popover {\\n  display: flex;\\n  justify-content: space-between;\\n  > .popover {\\n    margin: 0 10px;\\n  }\\n}\\n\\n// semi lined table used in new assessments tab\\n// compliments material table styles\\n.table--grouped {\\n  .gray {\\n    @apply bg-gray-200;\\n  }\\n  .MuiTableHead-root {\\n    border-bottom: none;\\n  }\\n  .MuiTableCell-head {\\n    @apply text-black;\\n  }\\n  .MuiTableCell-root,\\n  th[class^='MuiTableCell-root-'] {\\n    font-size: 14px;\\n  }\\n  th,\\n  td {\\n    font-size: 14px;\\n    border: none;\\n    word-break: break-word;\\n  }\\n}\\n\",\"// Responsive Breakpoints\\n$small-breakpoint: 471;\\n$smallplus-breakpoint: 568;\\n$medium-breakpoint: 768;\\n$large-breakpoint: 1024;\\n\\n$mobile-breakpoint: 767;\\n$desktop-breakpoint: $medium-breakpoint;\\n$tailwind-mobile-breakpoint: 993;\\n\\n$small: #{$small-breakpoint}px;\\n$smallplus: #{$smallplus-breakpoint}px;\\n$medium: #{$medium-breakpoint}px;\\n$large: #{$large-breakpoint}px;\\n\\n@mixin min-responsive($breakpoint) {\\n  @media only screen and (min-width: #{$breakpoint}) {\\n    @content;\\n  }\\n}\\n\\n@mixin max-responsive($breakpoint) {\\n  @media only screen and (max-width: #{$breakpoint}) {\\n    @content;\\n  }\\n}\\n\\n@mixin mobile() {\\n  @include max-responsive(#{$mobile-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n@mixin desktop() {\\n  @include min-responsive(#{$desktop-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n@mixin tailwind-mobile() {\\n  @include max-responsive(#{$tailwind-mobile-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n:export {\\n  small: $small-breakpoint;\\n  smallplus: $smallplus-breakpoint;\\n  medium: $medium-breakpoint;\\n  large: $large-breakpoint;\\n  mobile: $mobile-breakpoint;\\n}\\n\",\"@import './utility/Breakpoints';\\n\\n// reset custom scrollbars set by Learnosity on material tabs only.\\n.MuiTabs-root {\\n  .MuiTabs-scrollable {\\n    margin-bottom: 0 !important;\\n    overflow-x: hidden;\\n\\n    // root cause of FY-10636: Correctly draw FRQ scoring guidelines category navigation arrows\\n    // and other bugs with tabs and scrollbars on scoring sections and rubrics\\n    &::-webkit-scrollbar {\\n      display: none;\\n    }\\n\\n    &::-webkit-scrollbar-track {\\n      all: unset;\\n    }\\n\\n    &::-webkit-scrollbar-thumb {\\n      all: unset;\\n    }\\n\\n    &::-webkit-scrollbar-thumb:window-inactive {\\n      all: unset;\\n    }\\n  }\\n  .MuiButtonBase-root:not(.Mui-selected) {\\n    @apply border-b border-solid border-b-gray-200;\\n  }\\n}\\n\\n.mobile-tabs {\\n  &.is-sticky {\\n    position: fixed;\\n    top: 0;\\n    z-index: 12;\\n    width: 100%;\\n  }\\n\\n  .mobile-tabs {\\n    &-root {\\n      @apply bg-white;\\n      padding-bottom: 2px;\\n      .MuiButtonBase-root:not(.Mui-selected) {\\n        border-bottom: none;\\n      }\\n    }\\n\\n    &-item {\\n      outline: 0;\\n      @apply text-blue-700;\\n      font-size: 16px;\\n      font-weight: 500;\\n      letter-spacing: -0.2px;\\n      opacity: 1;\\n    }\\n\\n    &-item-is-selected {\\n      color: #1e1e1e;\\n    }\\n\\n    &-selected-indicator {\\n      display: block;\\n      background-color: #1e1e1e;\\n    }\\n  }\\n}\\n\\n@include mobile() {\\n  .MuiTabs-root {\\n    .MuiTabs-scrollable {\\n      overflow-x: scroll;\\n    }\\n  }\\n}\\n\",\"//\\n// Base colors\\n//\\n\\n$white: #fff;\\n$black: #000;\\n$almost_black: #1e1e1e;\\n$dark: #1e1e1e;\\n$body: #333;\\n$incorrect: #d0021b;\\n\\n// - Brand\\n$blue: #0076c4;\\n$darkBlue: #024974;\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n\\n// - Interaction alt\\n// High, low and middle grays. Lighten or darken by 10% to get CB approved colors.\\n$tile_gray: #696969;\\n$tile_light_gray: #888888;\\n$light_gray: #ebe9e6;\\n$light_gray_op: #efeff4;\\n$slider_gray: #d8d8d8;\\n$light_gray2: #f0f0f0;\\n$lighter_gray: #faf9f7;\\n$lighter_gray_2: #ddd;\\n$light_gray2: #f0f0f0;\\n$gray-400: #d4d4d8;\\n$light_row_gray: #e0e0e0;\\n$light_header_gray: #f9f9f9;\\n$row_gray: #f2f2f2;\\n$tabs_gray: #ececec;\\n$medium-gray: #aaaaa9;\\n$medium_light_gray: #bcbcbc;\\n$gray: #999896;\\n$gray_text_consistent: #999999;\\n$dark_gray: #333231;\\n$mild-gray: #cecece;\\n$trans_gray: $light_gray;\\n$solid_gray: $light_gray;\\n$panel_gray: #f0f0f0;\\n$input_border: darken($light_gray, 12.5%);\\n$border: #d9d9d9;\\n$dark-border: #a5a6a7;\\n$border-grey: #ccc;\\n$shadow: #000; //DEPRECATED\\n$medium_gray_border: #cccccc;\\n$transparent_gray: rgba($light_gray, 0.5);\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n$light_blue_two: #0077c8;\\n$hover_blue: #00497c;\\n$new_light_blue: #eef7ff;\\n$new_border_light_blue: #efeff1;\\n\\n//\\n// Contextual colors\\n//\\n$green: #318635;\\n$light_green: rgba(58, 145, 63, 0.1);\\n$alt_green: #c4e7b6;\\n$bright_green: #6cc449;\\n\\n$yellow: #fedb00;\\n$alt_yellow: #fff199;\\n$alt_yellow_light: #fdf4ba;\\n\\n$red: #e75b6b;\\n$alt_red: #f9d1d2;\\n$dark_red: $red;\\n$light_red: #9127251a;\\n\\n$teal: #01a1b3;\\n$orange: #ff8000;\\n$dark-orange: #e57200;\\n\\n// Global Colors\\n$text-color: #1e1e1e;\\n$text-color-blue: #0073ce;\\n$warm-neutral-color: $light_gray;\\n$merit-color: #deb53c;\\n$app-color: rgba(239, 239, 244, 1);\\n\\n// Disabled Colors\\n$disabled-color: $gray;\\n$disabled-background: $light_gray;\\n$disabled-border: darken($light_gray, 10%);\\n\\n// Scoring Colors\\n$exact-color: $green;\\n$close-color: $yellow;\\n$out-of-range-color: $dark_red;\\n\\n// Form colors\\n$form-light-blue: #009cde;\\n$form-error-red: #cf2b4e;\\n$button_blue: #1d8fdc;\\n\\n// Alert Colors\\n$warning-color: $yellow;\\n$confirm-warning-color: $dark-orange;\\n$error-color: $red;\\n$valid-color: $green;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n\\n// performance metrics color\\n$performance1: $yellow;\\n$performance2: $alt_yellow;\\n$performance3: $alt_green;\\n$performance4: $bright_green;\\n\\n$homepage-intro-background: #296dc1;\\n\\n:export {\\n  primary: $blue;\\n  secondary: $text-color;\\n  error: $red;\\n  tabsEdge: $tabs_gray;\\n  dark: $dark;\\n  border: $border;\\n  blue: $blue;\\n  white: $white;\\n  gray: $gray;\\n  focusColor: $focus-highlight-color;\\n  focusRadius: $focus-highlight-radius;\\n}\\n\\n$teiCorrect: #3a913f;\\n$teiCorrectBackground: #e5f6f2;\\n$teiIncorrect: #cf2b4e;\\n\\n$finalExamDeveloping: $yellow;\\n$finalExamApproaching: #a7dc92;\\n$finalExamAchieving: #6cc449;\\n\\n$placeholderColor: #807f7c;\\n\\n$resourceYellowBg: #fff4c1;\\n$resourceBlueBg: #e5f1f9;\\n\\n$firewall-accepted: #3b8f3e;\\n$firewall-blocked: #c23146;\\n$firewall-warning: #e57202;\\n$firewall-default: #a5a6a7;\\n\\n$dark_select_boarder: #1d2225;\\n$popover-box-shadow: 0 0.5rem 3rem 0.25rem rgba(0, 0, 0, 0.3);\\n$toast-text-default-color: #468847;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n@mixin focus_outline() {\\n  box-shadow: 0 0 $focus-highlight-radius $focus-highlight-radius\\n    $focus-highlight-color;\\n}\\n\\n$widget-blue: #0075c8;\\n$modal-window-background: rgba(0, 0, 0, 0.5);\\n$modal-margin: 24px;\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n$code-editor-background: #f7f7f7;\\n\",\"@import './Colors';\\n\\n$tabs-border: 1px solid $tabs_gray;\\n$tabs-min-height: 49px;\\n$tabs-margin-bottom: 20px;\\n\\n$tab-padding: 8px 16px;\\n$tab-selected-font-weight: 400;\\n$tab-font-weight: 500;\\n// focus tabs can not use outside shadow due to overflow hidden containers for scolling\\n//$tab-focus: inset 0 0 0 2px $focus-highlight-color;\\n$tab-selected: inset 0 0 0 1px $tabs_gray;\\n$tab-max-width-lg: 200px;\\n$tab-max-width-md: 150px;\\n$tab-line-height: 1.44;\\n\\n:export {\\n  border: $tabs-border;\\n  padding: $tab-padding;\\n  fontWeight: $tab-font-weight;\\n  fontWeightSelected: $tab-selected-font-weight;\\n  boxShadowSelected: $tab-selected;\\n  minHeight: $tabs-min-height;\\n  //focus: $tab-focus;\\n  scrollButtonsWidth: 32px;\\n  marginBottom: $tabs-margin-bottom;\\n  tabsBorderBottom: 3px solid transparent;\\n  tabSelectedBorderBottom: 1px solid #ffffff;\\n  tabWidthLg: $tab-max-width-lg;\\n  tabWidthMd: $tab-max-width-md;\\n  lineHeight: $tab-line-height;\\n  colorFade: rgba(255, 255, 255, 0.8);\\n}\\n\",\"@import '~legacy/src/styles/utility/Breakpoints';\\n@import '~legacy/src/styles/utility/Colors';\\n@import '~legacy/src/styles/utility/OpTabs';\\n\\n.react-tabs {\\n  -webkit-tap-highlight-color: transparent;\\n  min-height: $tabs-min-height;\\n\\n  &__tab-list {\\n    @apply border-b border-b-gray-200;\\n    margin: 0 0 $tabs-margin-bottom;\\n    padding: 0;\\n    &::after {\\n      content: '';\\n    }\\n  }\\n\\n  &__tab {\\n    display: inline-block;\\n    border: 1px solid transparent;\\n    border-bottom: none;\\n    bottom: -1px;\\n    position: relative;\\n    list-style: none;\\n    cursor: pointer;\\n\\n    align-items: center;\\n    flex-basis: 100%;\\n    padding: $tab-padding;\\n    text-align: center;\\n    @apply text-blue-700;\\n    font-weight: 500;\\n\\n    &--selected {\\n      font-weight: $tab-selected-font-weight;\\n      @apply bg-white;\\n      border-color: $tabs_gray;\\n      color: $text-color;\\n      position: relative;\\n      z-index: -1;\\n      &:focus {\\n        box-shadow: none;\\n      }\\n    }\\n\\n    &--disabled {\\n      @apply text-gray-600;\\n      cursor: default;\\n    }\\n  }\\n\\n  &__tab-panel {\\n    display: none;\\n\\n    &--selected {\\n      display: block;\\n    }\\n  }\\n}\\n\",\"@import './utility/Decoration';\\n@import './utility/Fonts';\\n@import './utility/InputSizes';\\n\\n// \\\"Tabs style\\\"\\n.tabs {\\n  @apply border border-gray-400;\\n  //\\n  //Tab Direction\\n  // Horizontal needs nothing, Vertical assumes tab container on left\\n  &.tabs--direction_vert {\\n    @apply border-l border-solid border-gray-400;\\n  }\\n}\\n\\n// \\\"Tabs\\\" style\\n.tabs--style_tabs {\\n  padding-top: 0.5rem; //accomodate shadow\\n  a {\\n    // Tab States\\n    &:hover {\\n      border-bottom-width: 0.1rem;\\n      @apply border-gray-400 bg-blue-700 text-blue-600;\\n    }\\n    &.active {\\n      @apply bg-white text-gray-900 border-t border-r border-l border-gray-400;\\n      box-shadow: 0 -0.33rem 1rem -0.5rem rgba(0, 0, 0, 0.33);\\n    }\\n    &[disabled] {\\n      @apply text-gray-500;\\n      &:hover {\\n        @apply bg-white border-gray-300 text-gray-500;\\n        cursor: not-allowed;\\n      }\\n    }\\n  }\\n  //Tab Direction\\n  // Horizontal needs nothing, Vertical assumes tab container on left\\n  &.tabs--direction_vert {\\n    a {\\n      border-radius: 0 $radius $radius 0;\\n\\n      // Tab States\\n      &:hover {\\n        @apply border-gray-300;\\n      }\\n      &.active {\\n        @apply bg-white border-t border-r border-b border-gray-300;\\n      }\\n    }\\n  }\\n}\\n\\n// \\\"Bar\\\" style\\n.tabs--style_bar {\\n  @apply border-b border-gray-500;\\n  a {\\n    // Tab States\\n    &:hover {\\n      @apply text-blue-600 border-blue-600;\\n    }\\n    &.active {\\n      @apply bg-white border-b border-blue-700;\\n      &:hover {\\n        @apply text-blue-700 border-blue-700;\\n      }\\n    }\\n    &[disabled] {\\n      @apply text-gray-500;\\n      &:hover {\\n        cursor: default;\\n        @apply text-gray-500 border-gray-500;\\n      }\\n    }\\n  }\\n  //Tab Direction\\n  // Horizontal needs nothing, Vertical assumes tab container on left\\n  &.tabs--direction_vert {\\n    a {\\n      &.active {\\n        @apply border-l-2 border-blue-700;\\n      }\\n    }\\n  }\\n}\\n\\n// Tab Sizes\\n.tabs--size_default {\\n  a {\\n    min-height: $input_medium;\\n    padding: 0.3225em 1.5em;\\n    text-transform: capitalize;\\n  }\\n}\\n.tabs--size_large {\\n  a {\\n    min-height: $input_large;\\n    padding: 0.645em 1.5em;\\n    text-transform: capitalize;\\n  }\\n}\\n\",\"@import './utility/InputSizes';\\n@import './utility/Fonts';\\n\\n.input--type_text {\\n  width: 100%;\\n  padding: 0 0 0 0.33em;\\n  @apply border border-solid border-gray-300;\\n  border-radius: 0.3rem;\\n\\n  box-sizing: border-box !important;\\n  &.input--size_small {\\n    height: $input_small;\\n    line-height: $input_small;\\n  }\\n  &.input--size_medium {\\n    @include secondary-font();\\n\\n    height: $input_medium;\\n    font-size: 2.1rem;\\n    line-height: $input_medium;\\n  }\\n  &.input--size_large {\\n    @include secondary-font();\\n\\n    height: $input_large;\\n    font-size: 3.2rem;\\n    line-height: $input_large;\\n  }\\n}\\n.input--type_text--has_icon {\\n  position: relative;\\n  .svg-icon {\\n    position: absolute;\\n    left: 0;\\n    bottom: 10%;\\n  }\\n  .input--size_small {\\n    padding-left: 2.8rem;\\n  }\\n  .input--size_medium {\\n    padding-left: 3.675rem;\\n  }\\n  .input--size_large {\\n    padding-left: 4.675rem;\\n  }\\n}\\n\",\"@import './utility/InputSizes';\\n\\n.input--type_textarea {\\n  width: 100%;\\n  padding: 0 0 0 0.33em;\\n  @apply border border-solid border-gray-300;\\n  border-radius: 0.3rem;\\n  box-sizing: border-box !important;\\n  &.input--size_small {\\n    height: $input_large;\\n  }\\n  &.input--size_medium {\\n    height: $input_large * 3;\\n  }\\n  &.input--size_large {\\n    height: $input_large * 7;\\n  }\\n}\\n\",\".student-todo-carousel {\\n  height: 240px;\\n}\\n\",\"@import './utility/Decoration';\\n@import './utility/InputSizes';\\n@import './utility/Breakpoints';\\n@import './utility/Fonts';\\n@import './utility/Heading';\\n\\n//\\n// Banners across the sections\\n//\\n.section_banner {\\n  display: flex;\\n  flex-wrap: wrap;\\n  padding: 0 1rem;\\n}\\n\\n//\\n// User Details\\n//\\n.user_details {\\n  margin-bottom: $input_small;\\n  .section_banner {\\n    border-top: 0;\\n  }\\n}\\n//\\n// Admin/Staff toolbar\\n//\\n.staff_toolbar {\\n  padding: 1.25rem 1.25rem 1.25rem 1.22rem;\\n  border-width: 0.1rem 0 0.1rem 0.3rem;\\n  border-style: solid;\\n  @apply border-gray-300 border-l border-blue-700 bg-gray-300;\\n  .btn {\\n    margin-top: 1.25rem;\\n  }\\n  h5 {\\n    display: inline;\\n    margin-right: 0.5rem;\\n    @apply text-gray-600;\\n    text-transform: uppercase;\\n  }\\n  @include desktop() {\\n    div {\\n      width: 60%;\\n      float: left;\\n    }\\n    .btn {\\n      margin-top: -4.4rem;\\n    }\\n  }\\n  @include desktop() {\\n    div {\\n      width: 37.5%;\\n    }\\n    h5 {\\n      display: inline;\\n    }\\n    .btn {\\n      margin-top: 0;\\n    }\\n  }\\n}\\n\\n//\\n// Edit User\\n//\\n.edit_user_form {\\n  padding: 1.25rem 1.25rem 1.25rem 0;\\n  label,\\n  .form_controls {\\n    width: 100%;\\n    margin-bottom: 1.25rem;\\n    // Padding only on the left to space evenly\\n    padding: 0 0 0 1.25rem;\\n    //Media Queries\\n    @include desktop() {\\n      width: 50%;\\n    }\\n  }\\n  .form_controls {\\n    // In a span so it wraps nicely, line-height the same as the button to v. center\\n    line-height: $input_medium;\\n  }\\n  .input--type_text {\\n    width: 100%;\\n  }\\n}\\n\\n//\\n// Reset Password\\n//\\n.reset_password {\\n  width: 20rem;\\n  white-space: nowrap;\\n  span {\\n    margin-right: 0.5rem;\\n    @apply text-gray-600;\\n  }\\n}\\n\",\"@import './utility/Grid';\\n\\n.user_memberships_table {\\n  .th_type,\\n  .th_active,\\n  .th_role {\\n    width: $gs-2;\\n  }\\n}\\n\",\".user_search_form {\\n  // Most of the styles for this are shared with the Group Search Form.\\n  // Because of that, a lot of the higher level styles are in the filter\\n  // toolbar component. As soon as that's inconvenient, they should move\\n  // back here.\\n\\n  // Toolbar\\n  .user_search_toolbar {\\n    align-items: flex-end;\\n  }\\n  .user_search_opt__role,\\n  .user_search_opt__active {\\n    height: 5rem;\\n  }\\n}\\n\\n.user_search_form--lite {\\n  .input--type_text__wrapper {\\n    margin-bottom: 1.25rem;\\n  }\\n}\\n\",\"@import './utility/Helpers';\\n\\n.ViewMembers {\\n  .ViewMembers__table-header {\\n    padding: 1rem;\\n    display: flex;\\n    flex-wrap: wrap;\\n  }\\n  .ViewMembers__table-heading {\\n    margin-top: 0;\\n    margin-bottom: 0;\\n  }\\n  .ViewMembers__member_actions {\\n    margin-left: auto;\\n    .svg-icon {\\n      vertical-align: text-top;\\n      margin-left: 0;\\n    }\\n    .btn + .btn {\\n      margin-left: 1rem;\\n    }\\n  }\\n}\\n\\n.no-flexbox {\\n  .ViewMembers__table-header {\\n    @extend %cf;\\n  }\\n  .ViewMembers__table-heading {\\n    float: left;\\n  }\\n  .ViewMembers__member_actions {\\n    float: right;\\n  }\\n}\\n\",\".wizard_frame {\\n  width: 100%;\\n  height: 500px;\\n  border: hidden;\\n  margin: 0 auto;\\n}\\n\",\"@import './utility/Fonts';\\n\\n.decision_course {\\n  @include primary-font;\\n  font-weight: 700;\\n  font-size: 20px;\\n  text-align: left;\\n  padding-top: 12px;\\n}\\n\\n.decision_footer {\\n  @include primary-font;\\n  font-size: 14px;\\n  padding: 12px 0 12px 0;\\n}\\n\\n.decision_response {\\n  @include primary-font;\\n  font-size: 16px;\\n  margin: 6px 0 6px 0;\\n}\\n\\n.wizard_buttons {\\n  padding-top: 20px;\\n  display: flex;\\n  flex-direction: row;\\n  line-height: 20px;\\n\\n  .continue_button {\\n    display: flex;\\n    align-items: center;\\n    padding: 6px 12px;\\n  }\\n\\n  .continue_icon {\\n    margin: 0 0 2px 2px;\\n  }\\n\\n  &.video_response {\\n    .watch_again {\\n      display: flex;\\n      align-items: center;\\n      padding: 6px 12px;\\n\\n      background: rgba(21, 21, 21, 0.05);\\n      border: 1px solid rgba(21, 21, 21, 0.05);\\n      box-sizing: border-box;\\n      border-radius: 50px;\\n    }\\n\\n    .watch_again_icon {\\n      margin: 0 2px 2px 0;\\n    }\\n\\n    .respond_later_button {\\n      @apply bg-white;\\n      border: 1px solid #52525b;\\n      box-sizing: border-box;\\n      border-radius: 50px;\\n    }\\n\\n    .submit_and_finish_button {\\n      margin-left: 3%;\\n    }\\n  }\\n}\\n\\n.wizard_mobile_buttons {\\n  padding-top: 20px;\\n  display: flex;\\n  flex-direction: column;\\n  line-height: 20px;\\n\\n  .watch_again {\\n    display: flex;\\n    flex-direction: row;\\n    align-items: center;\\n    padding: 12px 30%;\\n\\n    background: rgba(21, 21, 21, 0.05);\\n    border: 1px solid rgba(21, 21, 21, 0.05);\\n    box-sizing: border-box;\\n    border-radius: 50px;\\n  }\\n\\n  .watch_again_icon {\\n    margin: 0 2px 2px 0;\\n  }\\n\\n  .respond_later_button {\\n    @apply bg-white;\\n    border: 1px solid #52525b;\\n    box-sizing: border-box;\\n    border-radius: 50px;\\n    margin: 3% 0 3% 0;\\n  }\\n}\\n\\n.wizard_icons {\\n  padding-top: 3vh;\\n}\\n\\n.wizard_container {\\n  height: 100vh;\\n  padding: 0 0 10% 0;\\n  @apply bg-gray-100;\\n}\\n\\n.wizard_header {\\n  @include primary-font;\\n  font-size: 28px;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  width: 50%;\\n\\n  & .wizard_tag {\\n    font-size: 16px;\\n    line-height: 26px;\\n    font-weight: 400;\\n  }\\n}\\n\\n.wizard_mobile_header {\\n  @include primary-font;\\n  font-size: 28px;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  width: 100%;\\n\\n  & .wizard_tag {\\n    font-size: 14px;\\n    line-height: 22px;\\n    font-weight: 400;\\n  }\\n}\\n\\n.wizard_response_header {\\n  @include primary-font;\\n  font-size: 36px;\\n  font-weight: 700;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  line-height: 48px;\\n}\\n\\n.wizard_response_mobile_header {\\n  @include primary-font;\\n  font-size: 24px;\\n  font-weight: 700;\\n  padding-right: 10%;\\n  padding-bottom: 25px;\\n  line-height: 32px;\\n}\\n\\n.wizard_title {\\n  font-size: 48px;\\n  font-weight: 700;\\n  margin-top: 25px;\\n  margin-bottom: 17px;\\n  line-height: 64px;\\n}\\n\\n.wizard_mobile_title {\\n  font-size: 36px;\\n  font-weight: 700;\\n  margin-top: 25px;\\n  margin-bottom: 17px;\\n  line-height: 48px;\\n}\\n\\n.wizard_watch_later {\\n  color: #0054b6;\\n  font-weight: 500;\\n  font-size: 14px;\\n  line-height: 170%;\\n}\\n\\n.video_container {\\n  width: 80%;\\n  padding-top: 14vh;\\n  margin: 0 auto;\\n  display: flex;\\n  flex-direction: row;\\n}\\n\\n.video_mobile_container {\\n  width: 95%;\\n  margin: 0 auto;\\n}\\n\\n.video_wrapper {\\n  width: 50%;\\n  display: inline-block;\\n  position: relative;\\n}\\n\\n.video_mobile_wrapper {\\n  width: 100%;\\n  height: 240px;\\n  display: inline-block;\\n  position: relative;\\n}\\n\\n.video_wrapper::after {\\n  padding-top: 56.25vh;\\n  /* 16:9 ratio */\\n  display: block;\\n  content: '';\\n}\\n\\n.wizard_response_container {\\n  width: 80%;\\n  padding: 10% 0 0 20%;\\n}\\n\\n.wizard_response_mobile_container {\\n  width: 95%;\\n  padding-top: 5vh;\\n  margin: 0 auto;\\n}\\n\\n.wizard_mobile_tag {\\n  font-size: 14px;\\n  font-weight: 400;\\n  line-height: 21px;\\n  color: #303030;\\n}\\n\\n.wizard_question {\\n  @include primary-font;\\n  margin-bottom: 20px;\\n\\n  & > .wizard_question_header {\\n    font-size: 20px;\\n    text-align: left;\\n  }\\n\\n  & > .wizard_tag {\\n    font-size: 16px;\\n    font-weight: 400;\\n    line-height: 24px;\\n    color: #303030;\\n  }\\n\\n  & > .wizard_bold {\\n    font-weight: 700;\\n  }\\n\\n  & > .wizard_response {\\n    margin-top: 15px;\\n    width: 100%;\\n    height: 150px;\\n  }\\n  & > .wizard_mobile_response {\\n    margin-top: 15px;\\n    width: 100%;\\n    height: 200px;\\n  }\\n\\n  & > textarea.wizard_response {\\n    border: 1px solid #151515;\\n    box-sizing: border-box;\\n    border-radius: 6px;\\n  }\\n  & > textarea.wizard_mobile_response {\\n    border: 1px solid #151515;\\n    box-sizing: border-box;\\n    border-radius: 6px;\\n  }\\n}\\n\\n.wizard_response_ending_text {\\n  font-size: 14px;\\n  line-height: 16px;\\n  color: #52525b;\\n}\\n\\n.wizard_steps {\\n  margin-top: 10vh;\\n  margin-left: 48%;\\n  width: 6%;\\n  min-width: 72px;\\n}\\n\\n.wizard_steps_icons {\\n  display: flex;\\n  flex-direction: row;\\n}\\n\\n.active_step_icon {\\n  margin-right: 2%;\\n  color: #0054b6;\\n}\\n\\n.inactive_step_icon {\\n  margin-right: 2%;\\n  color: #d4d4d8;\\n}\\n\\n.wizard_wizard_steps_text {\\n  margin-left: -20%;\\n  font-size: 14px;\\n  font-weight: 500;\\n  line-height: 16px;\\n}\\n\",\"// Remove unwanted border for mutilple response item\\n.lrn-response-validate-wrapper.lrn_mcqgroup {\\n  &.lrn_mcqgroup-vertical,\\n  &.lrn_mcqgroup-horizontal {\\n    border: none !important;\\n  }\\n}\\n\\n.Player-preview .lrn-response-validate-wrapper::after,\\n.TabsLayout .lrn-response-validate-wrapper::after {\\n  content: none !important;\\n}\\n\\n.teacher-item-preview {\\n  .lrn_mcqgroup {\\n    display: none;\\n  }\\n  .learnosity-item {\\n    .formatted_line_break {\\n      display: block;\\n    }\\n\\n    .tabs {\\n      flex-direction: column;\\n\\n      ul.nav-tabs {\\n        padding: 0;\\n        margin: 0;\\n        list-style-type: none;\\n\\n        // Styles pulled from learnosity.  Internal overrides\\n        // break the styles in the preview Item view.\\n        & > li,\\n        .nav-tab {\\n          &:after {\\n            background: #1877b1;\\n            border: none;\\n            content: '';\\n            display: block;\\n            height: 2px;\\n            outline: none;\\n            transform: scaleX(0);\\n            transition: all 0.2s ease-in-out;\\n            width: 100%;\\n          }\\n          display: inline-block;\\n          float: none;\\n          min-width: 110px;\\n\\n          &.active {\\n            & > a {\\n              color: #333;\\n            }\\n\\n            &:after {\\n              transform: scaleX(1);\\n            }\\n          }\\n\\n          & > a {\\n            color: #767676;\\n            margin-right: 2px;\\n            line-height: 1.42857;\\n            border: 1px solid transparent;\\n            border-radius: 4px 4px 0 0;\\n            position: relative;\\n            display: block;\\n            padding: 10px 15px;\\n            font-size: 85%;\\n          }\\n\\n          // Disable styles that override learnosity.\\n          & > a,\\n          & > a:hover,\\n          & > a:focus,\\n          &.active > a,\\n          &.active > a:hover,\\n          &.active > a:focus {\\n            background: none;\\n            border: none;\\n            outline: none;\\n          }\\n        }\\n      }\\n    }\\n\\n    .row > .col-xs-12 > div {\\n      height: auto !important; // only one way to overwrite inline styles, set by learnosity.\\n    }\\n  }\\n}\\n\\n// style learnosity responses to fit scoring UI design\\n.learnosity-control-item {\\n  .lrn_stimulus {\\n    margin-bottom: 1em;\\n  }\\n\\n  &.--hide-response {\\n    .lrn_response_wrapper {\\n      display: none;\\n    }\\n  }\\n  &.--hide-question {\\n    .lrn_sharedpassage,\\n    .lrn_question {\\n      display: none;\\n    }\\n    .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper {\\n      border: none;\\n      padding: 0;\\n    }\\n  }\\n\\n  &.--visible-all {\\n    .lrn_response_wrapper,\\n    .lrn_sharedpassage,\\n    .lrn_question {\\n      display: initial;\\n    }\\n  }\\n\\n  .lrn_box_skin_wrapper {\\n    width: 100%;\\n    max-width: 50em;\\n  }\\n\\n  .lrn-toolbar {\\n    display: none;\\n  }\\n\\n  .lrn-toolbar-footer {\\n    display: none;\\n  }\\n\\n  .lrn_widget.lrn_longtextV2 .lrn_response_input_wrapper {\\n    height: auto;\\n    max-height: none;\\n    &:empty::after {\\n      content: 'No response entered';\\n      display: block;\\n      padding: 10px;\\n    }\\n  }\\n\\n  // style fileuploader customly\\n  .lrn_widget.lrn_fileupload {\\n    .lrn-fileupload-file-type-icon {\\n      width: 30px;\\n      display: block;\\n    }\\n\\n    .lrn_response_input_wrapper {\\n      border: none;\\n    }\\n\\n    .lrn-fileupload-file-numerator {\\n      display: none;\\n    }\\n\\n    .lrn-fileupload-list-container {\\n      padding: 0;\\n    }\\n\\n    .lrn-fileupload-list-container ul {\\n      padding: 0;\\n      list-style: none;\\n      display: block;\\n      border-collapse: collapse;\\n      width: 100%;\\n    }\\n\\n    .lrn-fileupload-list-container li {\\n      border: none;\\n      @apply bg-gray-200;\\n      padding: 11px 23px;\\n      display: flex;\\n      align-items: center;\\n      height: auto;\\n      line-height: 1.4;\\n      margin-bottom: 16px;\\n    }\\n\\n    .lrn-fileupload-filename {\\n      overflow: hidden;\\n      padding: 0 0 0 16px;\\n      max-width: none;\\n      a {\\n        @apply text-blue-700;\\n        text-decoration: none;\\n        font-weight: 500;\\n      }\\n    }\\n  }\\n\\n  // remove scrolled item\\n  .row > .col-xs-12 > div,\\n  .row > .col-xs-6 > div {\\n    height: auto !important; // only one way to overwrite inline styles, set by learnosity.\\n  }\\n}\\n\\n.PlayerModeContainer--content .learnosity-item {\\n  &.--hide-response {\\n    .lrn_response_wrapper {\\n      display: none;\\n    }\\n  }\\n  .lrn_widget.lrn_feature.lrn_scrollablepassage {\\n    height: auto;\\n  }\\n\\n  // TEIs have their body as response, given that you have to interact with the actual question\\n  &.--hide-tei-response {\\n    .tei-distractor {\\n      display: none;\\n    }\\n    .lrn_correctAnswers {\\n      display: none;\\n    }\\n    span.lrn_responseIndex {\\n      background-color: #666;\\n    }\\n    &.lrn_item_teacher {\\n      .lrn-hotspot-wrapper {\\n        .lrn-polygons {\\n          li {\\n            background: transparent;\\n          }\\n          .lrn_valid polygon {\\n            fill: transparent;\\n            stroke: transparent;\\n          }\\n        }\\n      }\\n    }\\n    .lrn_widget {\\n      .lrn_valid {\\n        display: none;\\n      }\\n      &.lrn_clozetext {\\n        .lrn_textinput.lrn_not_attempted {\\n          .lrn_responseIndex {\\n            background: #666;\\n          }\\n        }\\n      }\\n      &.lrn_tokenhighlight {\\n        .lrn_response .lrn_tokenhighlight_text {\\n          .lrn_token {\\n            &.lrn_valid {\\n              background: transparent;\\n              border-left-color: transparent !important;\\n              &:after {\\n                display: none;\\n              }\\n            }\\n          }\\n        }\\n      }\\n    }\\n  }\\n\\n  // remove excessive height while loading learnosity question\\n  .row > .col-xs-12 > div {\\n    height: auto !important; // only one way to overwrite inline styles, set by learnosity.\\n  }\\n}\\n\\n.show-correct-answers {\\n  display: flex;\\n  align-items: center;\\n  font-family: 'Roboto';\\n  font-weight: 500;\\n  justify-content: flex-end;\\n  margin: 12px 0;\\n  .slide_switch {\\n    margin-left: 16px;\\n  }\\n}\\n\\n.lrn_widget {\\n  span.lrn_responseIndex {\\n    @apply bg-green-700;\\n  }\\n  &.lrn_hotspot {\\n    .lrn_correctAnswers {\\n      display: none;\\n    }\\n  }\\n  &.lrn_clozetext {\\n    .lrn_textinput.lrn_not_attempted {\\n      .lrn_responseIndex {\\n        @apply bg-green-700;\\n      }\\n    }\\n    .lrn_textinput {\\n      &.lrn_incorrect .lrn_responseIndex {\\n        @apply bg-red-600;\\n      }\\n      .lrn_display_correct_answer_enabled & {\\n        .lrn_responseIndex {\\n          @apply bg-green-700;\\n        }\\n      }\\n    }\\n  }\\n  .lrn_correctAnswers {\\n    @apply bg-gray-300 #{!important};\\n    @apply border-l-4 border-solid border-green-700;\\n    .lrn_correctAnswerList li {\\n      @apply bg-white;\\n      .lrn_responseIndex {\\n        @apply bg-green-700;\\n      }\\n    }\\n  }\\n\\n  .lrn-hotspot-wrapper {\\n    .lrn-polygons {\\n      li {\\n        @apply bg-green-700;\\n      }\\n      .lrn_valid polygon {\\n        @apply stroke-current fill-current text-green-700 text-opacity-20 #{!important};\\n      }\\n    }\\n  }\\n\\n  .lrn_clozedropdown {\\n    .lrn_combobox.lrn_correct {\\n      .lrn_responseIndex {\\n        @apply bg-green-700 #{!important};\\n      }\\n      .lrn_clozedropdown_answer:after {\\n        @apply text-green-700 #{!important};\\n      }\\n    }\\n\\n    .lrn_combobox.lrn_incorrect {\\n      .lrn_responseIndex {\\n        @apply bg-red-600 #{!important};\\n      }\\n      .lrn_clozedropdown_answer:after {\\n        @apply text-red-600 #{!important};\\n      }\\n    }\\n  }\\n\\n  &.lrn_tokenhighlight {\\n    .lrn_response {\\n      .lrn_tokenhighlight_text {\\n        &.lrn_tokenhighlight_custom,\\n        &.lrn_tokenhighlight_paragraph {\\n          .lrn_token {\\n            &.lrn_valid {\\n              @apply bg-green-100;\\n              @apply border-l border-green-700 #{!important};\\n              &:after {\\n                @apply text-green-700;\\n              }\\n            }\\n          }\\n        }\\n      }\\n      .lrn_token {\\n        &.lrn_tokenhighlight_hover {\\n          background: #ff9 !important;\\n          border: 1px solid transparent;\\n          &:hover {\\n            border-color: transparent !important;\\n          }\\n        }\\n        &.lrn_valid {\\n          @apply border-l border-green-700;\\n        }\\n      }\\n    }\\n  }\\n}\\n\\n.tei-distractor {\\n  @apply bg-gray-300 border-l-4 border-solid border-green-700;\\n  padding: 24px 42px;\\n  &.unattempted {\\n    font-weight: 500;\\n    border-left: 4px solid #989795;\\n    color: #989795;\\n  }\\n  &:not(:last-child) {\\n    margin-bottom: 16px;\\n  }\\n  p {\\n    margin: 0;\\n  }\\n}\\n\\n.lrn_response {\\n  .lrn_display_correct_answer_enabled {\\n    padding: 1em;\\n  }\\n}\\n\\n.learnosity-item--hide-response {\\n  .lrn_response_wrapper .lrn_player {\\n    display: none;\\n  }\\n}\\n\",\"@import './utility/Breakpoints';\\n\\n@include mobile() {\\n  .notification-wrapper,\\n  .toast-wrapper {\\n    width: 100vw;\\n  }\\n\\n  .page_wrapper {\\n    padding: 0;\\n  }\\n\\n  .page_wrapper > .welcome {\\n    margin-left: 0;\\n    margin-right: 0;\\n  }\\n\\n  .PageIndex {\\n    padding: 0;\\n  }\\n\\n  .widget-wrapper {\\n    margin: 24px 0;\\n  }\\n\\n  .Widget--label {\\n    margin: 0;\\n    font-weight: 400;\\n    margin-left: 15px;\\n    line-height: 1;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon :export {\n  small: 471;\n  smallplus: 568;\n  medium: 768;\n  large: 1024;\n  mobile: 767;\n}\n\n.chameleon .FirewallCheck {\n  align-items: center;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  margin: 0 auto;\n  max-width: 1024px;\n  padding: 30px;\n  width: auto !important;\n  height: auto !important;\n}\n\n.chameleon .FirewallCheck--bold {\n  font-weight: bold;\n}\n\n.chameleon .FirewallCheck__title {\n  font-weight: 700;\n  margin-bottom: 40px;\n}\n\n.chameleon .FirewallCheck__content {\n  margin-bottom: 22px;\n}\n\n.chameleon .FirewallCheck__columns {\n  display: grid;\n  gap: 70px;\n  grid-template-columns: repeat(2, 1fr);\n  margin: 60px 0 60px;\n  width: 100%;\n}\n\n@media only screen and (max-width: 767px) {\n  .chameleon .FirewallCheck__columns {\n    grid-template-columns: 1fr;\n  }\n}\n\n.chameleon .FirewallCheck__column {\n  flex: 0 1 50%;\n}\n\n.chameleon .FirewallCheck__cell {\n  margin-bottom: 15px;\n}\n\n.chameleon .FirewallCheck__cell--outlined {\n  border-width: 1px;\n  border-style: solid;\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n  border-radius: 3px;\n  font-size: 1.4rem;\n  padding: 8px 14px;\n}\n\n.chameleon .FirewallCheck__cell--default {\n  --tw-border-opacity: 1;\n  border-color: rgb(161 161 170 / var(--tw-border-opacity));\n}\n\n.chameleon .FirewallCheck__cell--warning {\n  --tw-border-opacity: 1;\n  border-color: rgb(247 157 56 / var(--tw-border-opacity));\n}\n\n.chameleon .FirewallCheck__cell--accepted {\n  --tw-border-opacity: 1;\n  border-color: rgb(33 126 38 / var(--tw-border-opacity));\n}\n\n.chameleon .FirewallCheck__cell--blocked {\n  --tw-border-opacity: 1;\n  border-color: rgb(193 49 69 / var(--tw-border-opacity));\n}\n\n.chameleon .FirewallCheck__domains {\n  margin: 10px 0 0 25px;\n}\n\n.chameleon .FirewallCheck__domain {\n  align-items: center;\n  display: flex;\n  height: 2em;\n  margin-bottom: 10px;\n}\n\n.chameleon .FirewallCheck__title-wrapper {\n  display: flex;\n}\n\n.chameleon .FirewallCheck__title-wrapper .FirewallCheck__icon--default,\n.chameleon .FirewallCheck__title-wrapper .FirewallCheck__icon--blocked,\n.chameleon .FirewallCheck__title-wrapper .FirewallCheck__icon--warning {\n  position: relative;\n  top: -5px;\n}\n\n.chameleon .FirewallCheck__icon {\n  align-items: flex-start;\n  display: inline-flex;\n  font-size: 2rem;\n  font-weight: bold;\n  justify-content: center;\n  margin: 0 5px;\n  text-align: center;\n  width: 1em;\n}\n\n.chameleon .FirewallCheck__icon--default {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(161 161 170 / var(--tw-text-opacity));\n}\n\n.chameleon .FirewallCheck__icon--warning {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(247 157 56 / var(--tw-text-opacity));\n}\n\n.chameleon .FirewallCheck__icon--accepted {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(33 126 38 / var(--tw-text-opacity));\n}\n\n.chameleon .FirewallCheck__icon--blocked {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n\n.chameleon .FirewallCheck__legend {\n  width: 100%;\n}\n\n.chameleon .FirewallCheck__legend-title {\n  font-weight: bold;\n  margin-bottom: 15px;\n}\n\n.chameleon .FirewallCheck__legend-entry {\n  margin-bottom: 15px;\n}\n\n.chameleon .SecureFirewallCheck__listDomains {\n  margin-top: 2vh;\n  margin-bottom: 2vh;\n}\n\n.chameleon .SecureFirewallCheck__about-results {\n  font-size: 16px;\n  line-height: 22px;\n  font-weight: bold;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/styles/utility/Breakpoints.scss\",\"webpack://./chameleon/legacy/src/utility/FirewallCheck/FirewallCheck.scss\"],\"names\":[],\"mappings\":\"AA6CA;EACE,UA7CiB;EA8CjB,cA7CqB;EA8CrB,WA7CkB;EA8ClB,WA7CiB;EA8CjB,WA5CkB;ACApB;;AAJA;EAGE,mBAAA;EACA,aAAA;EACA,sBAAA;EACA,uBAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EACA,sBAAA;EACA,uBAAA;AAKF;;AAHE;EACE,iBAAA;AAKJ;;AAFE;EACE,gBAAA;EACA,mBAAA;AAIJ;;AADE;EACE,mBAAA;AAGJ;;AAAE;EACE,aAAA;EACA,SAAA;EACA,qCAAA;EACA,mBAAA;EACA,WAAA;AAEJ;;ADbE;ECMA;IAQI,0BAAA;EAGJ;AACF;;AAAE;EACE,aAAA;AAEJ;;AACE;EACE,mBAAA;AACJ;;AAEM;EAAA,iBAAA;EAAA,mBAAA;EAAA,sBAAA;EAAA,yDAAA;EACA,kBAAA;EACA,iBAAA;EACA;AAHA;;AAOA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAIJ;EACE,qBAAA;AALJ;;AAQE;EACE,mBAAA;EACA,aAAA;EACA,WAAA;EACA,mBAAA;AANJ;;AASE;EACE,aAAA;AAPJ;;AASI;;;EAGE,kBAAA;EACA,SAAA;AAPN;;AAWE;EACE,uBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;EACA,uBAAA;EACA,aAAA;EACA,kBAAA;EACA,UAAA;AATJ;;AAYM;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAIJ;EACE,WAAA;AAdJ;;AAiBE;EACE,iBAAA;EACA,mBAAA;AAfJ;;AAkBE;EACE,mBAAA;AAhBJ;;AAqBE;EACE,eAAA;EACA,kBAAA;AAlBJ;;AAqBE;EACE,eAAA;EACA,iBAAA;EACA,iBAAA;AAnBJ\",\"sourcesContent\":[\"// Responsive Breakpoints\\n$small-breakpoint: 471;\\n$smallplus-breakpoint: 568;\\n$medium-breakpoint: 768;\\n$large-breakpoint: 1024;\\n\\n$mobile-breakpoint: 767;\\n$desktop-breakpoint: $medium-breakpoint;\\n$tailwind-mobile-breakpoint: 993;\\n\\n$small: #{$small-breakpoint}px;\\n$smallplus: #{$smallplus-breakpoint}px;\\n$medium: #{$medium-breakpoint}px;\\n$large: #{$large-breakpoint}px;\\n\\n@mixin min-responsive($breakpoint) {\\n  @media only screen and (min-width: #{$breakpoint}) {\\n    @content;\\n  }\\n}\\n\\n@mixin max-responsive($breakpoint) {\\n  @media only screen and (max-width: #{$breakpoint}) {\\n    @content;\\n  }\\n}\\n\\n@mixin mobile() {\\n  @include max-responsive(#{$mobile-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n@mixin desktop() {\\n  @include min-responsive(#{$desktop-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n@mixin tailwind-mobile() {\\n  @include max-responsive(#{$tailwind-mobile-breakpoint}px) {\\n    @content;\\n  }\\n}\\n\\n:export {\\n  small: $small-breakpoint;\\n  smallplus: $smallplus-breakpoint;\\n  medium: $medium-breakpoint;\\n  large: $large-breakpoint;\\n  mobile: $mobile-breakpoint;\\n}\\n\",\"@import '../../styles/utility/Breakpoints';\\n\\n.FirewallCheck {\\n  $blockElement: &;\\n\\n  align-items: center;\\n  display: flex;\\n  flex-direction: column;\\n  justify-content: center;\\n  margin: 0 auto;\\n  max-width: 1024px;\\n  padding: 30px;\\n  width: auto !important;\\n  height: auto !important;\\n\\n  &--bold {\\n    font-weight: bold;\\n  }\\n\\n  &__title {\\n    font-weight: 700;\\n    margin-bottom: 40px;\\n  }\\n\\n  &__content {\\n    margin-bottom: 22px;\\n  }\\n\\n  &__columns {\\n    display: grid;\\n    gap: 70px;\\n    grid-template-columns: repeat(2, 1fr);\\n    margin: 60px 0 60px;\\n    width: 100%;\\n\\n    @include mobile() {\\n      grid-template-columns: 1fr;\\n    }\\n  }\\n\\n  &__column {\\n    flex: 0 1 50%;\\n  }\\n\\n  &__cell {\\n    margin-bottom: 15px;\\n\\n    &--outlined {\\n      @apply border border-solid border-gray-500;\\n      border-radius: 3px;\\n      font-size: 1.4rem;\\n      padding: 8px 14px;\\n    }\\n\\n    &--default {\\n      @apply border-gray-500;\\n    }\\n\\n    &--warning {\\n      @apply border-orange-500;\\n    }\\n\\n    &--accepted {\\n      @apply border-green-600;\\n    }\\n\\n    &--blocked {\\n      @apply border-red-600;\\n    }\\n  }\\n\\n  &__domains {\\n    margin: 10px 0 0 25px;\\n  }\\n\\n  &__domain {\\n    align-items: center;\\n    display: flex;\\n    height: 2em;\\n    margin-bottom: 10px;\\n  }\\n\\n  &__title-wrapper {\\n    display: flex;\\n\\n    #{$blockElement}__icon--default,\\n    #{$blockElement}__icon--blocked,\\n    #{$blockElement}__icon--warning {\\n      position: relative;\\n      top: -5px;\\n    }\\n  }\\n\\n  &__icon {\\n    align-items: flex-start;\\n    display: inline-flex;\\n    font-size: 2rem;\\n    font-weight: bold;\\n    justify-content: center;\\n    margin: 0 5px;\\n    text-align: center;\\n    width: 1em;\\n\\n    &--default {\\n      @apply text-gray-500 fill-current;\\n    }\\n\\n    &--warning {\\n      @apply text-orange-500 fill-current;\\n    }\\n\\n    &--accepted {\\n      @apply text-green-600 fill-current;\\n    }\\n\\n    &--blocked {\\n      @apply text-red-600 fill-current;\\n    }\\n  }\\n\\n  &__legend {\\n    width: 100%;\\n  }\\n\\n  &__legend-title {\\n    font-weight: bold;\\n    margin-bottom: 15px;\\n  }\\n\\n  &__legend-entry {\\n    margin-bottom: 15px;\\n  }\\n}\\n\\n.SecureFirewallCheck {\\n  &__listDomains {\\n    margin-top: 2vh;\\n    margin-bottom: 2vh;\\n  }\\n\\n  &__about-results {\\n    font-size: 16px;\\n    line-height: 22px;\\n    font-weight: bold;\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon .default-tier {\n  --tw-bg-opacity: 1;\n  background-color: rgb(113 113 122 / var(--tw-bg-opacity));\n}\n\n.chameleon .default-tier-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(113 113 122 / var(--tw-border-opacity));\n}\n\n.chameleon .tier1,\n.chameleon .tier-developing {\n  --tw-bg-opacity: 1;\n  background-color: rgb(254 219 0 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier1-text,\n.chameleon .tier-developing-text {\n  --tw-text-opacity: 1;\n  color: rgb(254 219 0 / var(--tw-text-opacity));\n}\n\n.chameleon .tier1-border,\n.chameleon .tier-developing-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(254 219 0 / var(--tw-border-opacity));\n}\n\n.chameleon .tier2,\n.chameleon .tier-approaching {\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 236 156 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier2-text,\n.chameleon .tier-approaching-text {\n  --tw-text-opacity: 1;\n  color: rgb(255 236 156 / var(--tw-text-opacity));\n}\n\n.chameleon .tier2-border,\n.chameleon .tier-approaching-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(255 236 156 / var(--tw-border-opacity));\n}\n\n.chameleon .tier3,\n.chameleon .tier-progressing {\n  --tw-bg-opacity: 1;\n  background-color: rgb(191 245 170 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier3-text,\n.chameleon .tier-progressing-text {\n  --tw-text-opacity: 1;\n  color: rgb(191 245 170 / var(--tw-text-opacity));\n}\n\n.chameleon .tier3-border,\n.chameleon .tier-progressing-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(191 245 170 / var(--tw-border-opacity));\n}\n\n.chameleon .tier4,\n.chameleon .tier-achieving {\n  --tw-bg-opacity: 1;\n  background-color: rgb(108 194 74 / var(--tw-bg-opacity));\n}\n\n.chameleon .tier4-text,\n.chameleon .tier-achieving-text {\n  --tw-text-opacity: 1;\n  color: rgb(108 194 74 / var(--tw-text-opacity));\n}\n\n.chameleon .tier4-border,\n.chameleon .tier-achieving-border {\n  --tw-border-opacity: 1;\n  border-color: rgb(108 194 74 / var(--tw-border-opacity));\n}\n\n.chameleon .stacked-bar {\n  width: 100%;\n  min-width: 20.2rem;\n}\n\n.chameleon .stacked-bar .bar {\n  display: flex;\n}\n\n.chameleon .stacked-bar .bar > .stack {\n  display: flex;\n  flex-direction: column;\n  padding: 0px;\n  background: none;\n  min-width: 1rem;\n  transition: all 200ms ease-in-out;\n}\n\n.chameleon .stacked-bar .bar > .stack > .stack-value {\n  display: block;\n  text-align: center;\n  font-size: 1.8rem;\n  line-height: 1.6rem;\n  font-weight: 500;\n  --tw-text-opacity: 1;\n  color: rgb(255 255 255 / var(--tw-text-opacity));\n  line-height: 1.2;\n  padding: 0.6rem 0 0.7rem;\n}\n\n.chameleon .stacked-bar .bar > .stack.--submitted {\n  --tw-bg-opacity: 1;\n  background-color: rgb(0 119 200 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--available-to-score {\n  --tw-bg-opacity: 1;\n  background-color: rgb(1 92 176 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--in-progress {\n  --tw-bg-opacity: 1;\n  background-color: rgb(113 197 232 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--in-progress > .stack-value {\n  --tw-text-opacity: 1;\n  color: rgb(82 82 91 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--complete {\n  --tw-bg-opacity: 1;\n  background-color: rgb(3 64 136 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--low-tier, .chameleon .stacked-bar .bar > .stack.--low_tier {\n  --tw-bg-opacity: 1;\n  background-color: rgb(254 219 0 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--low-tier > .stack-value, .chameleon .stacked-bar .bar > .stack.--low_tier > .stack-value {\n  --tw-text-opacity: 1;\n  color: rgb(21 21 21 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--partial, .chameleon .stacked-bar .bar > .stack.--middle_tier, .chameleon .stacked-bar .bar > .stack.--middle-tier {\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 236 156 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--partial > .stack-value, .chameleon .stacked-bar .bar > .stack.--middle_tier > .stack-value, .chameleon .stacked-bar .bar > .stack.--middle-tier > .stack-value {\n  --tw-text-opacity: 1;\n  color: rgb(21 21 21 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--high-tier, .chameleon .stacked-bar .bar > .stack.--high_tier {\n  --tw-bg-opacity: 1;\n  background-color: rgb(191 245 170 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--high-tier > .stack-value, .chameleon .stacked-bar .bar > .stack.--high_tier > .stack-value {\n  --tw-text-opacity: 1;\n  color: rgb(21 21 21 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.yellow > .stack-value, .chameleon .stacked-bar .bar > .stack.light-yellow > .stack-value, .chameleon .stacked-bar .bar > .stack.light-green > .stack-value, .chameleon .stacked-bar .bar > .stack.green > .stack-value {\n  --tw-text-opacity: 1;\n  color: rgb(21 21 21 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.yellow {\n  --tw-bg-opacity: 1;\n  background-color: rgb(254 219 0 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.light-yellow {\n  --tw-bg-opacity: 1;\n  background-color: rgb(255 236 156 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.light-green {\n  --tw-bg-opacity: 1;\n  background-color: rgb(191 245 170 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.green {\n  --tw-bg-opacity: 1;\n  background-color: rgb(108 194 74 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--default {\n  --tw-bg-opacity: 1;\n  background-color: rgb(113 113 122 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--no-results {\n  --tw-bg-opacity: 1;\n  background-color: rgb(47 47 50 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--correct {\n  --tw-bg-opacity: 1;\n  background-color: rgb(33 126 38 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.--incorrect {\n  --tw-bg-opacity: 1;\n  background-color: rgb(193 49 69 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.no_answer_sheet {\n  --tw-bg-opacity: 1;\n  background-color: rgb(30 30 30 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.answer_sheet_generated {\n  --tw-bg-opacity: 1;\n  background-color: rgb(161 161 170 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .bar > .stack.answer_sheet_issues {\n  --tw-bg-opacity: 1;\n  background-color: rgb(193 49 69 / var(--tw-bg-opacity));\n}\n\n.chameleon .stacked-bar .labels {\n  display: flex;\n  justify-content: flex-start;\n  margin: 15px 0 15px -5px;\n}\n\n.chameleon .stacked-bar .labels .label {\n  display: flex;\n  align-items: center;\n  line-height: 25px;\n  width: unset;\n}\n\n.chameleon .stacked-bar .labels .label:not(:first-child) {\n  margin-left: 20px;\n}\n\n.chameleon .stacked-bar .labels .not-started {\n  --tw-text-opacity: 1;\n  color: rgb(113 113 122 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .started {\n  --tw-text-opacity: 1;\n  color: rgb(113 197 232 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .submitted {\n  --tw-text-opacity: 1;\n  color: rgb(61 156 214 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .scoring {\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .student-scored,\n.chameleon .stacked-bar .labels .scored {\n  --tw-text-opacity: 1;\n  color: rgb(0 119 200 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .student-scored > g > circle,\n.chameleon .stacked-bar .labels .scored > g > circle {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(3 64 136 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .complete {\n  --tw-text-opacity: 1;\n  color: rgb(3 64 136 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .complete g > circle {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(3 64 136 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .no-answer-sheet g {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(30 30 30 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .no-answer-sheet g > circle {\n  fill: none;\n}\n\n.chameleon .stacked-bar .labels .answer-sheet-generated {\n  --tw-text-opacity: 1;\n  color: rgb(228 228 231 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar .labels .answer-sheet-issues path {\n  fill: currentColor;\n  --tw-text-opacity: 1;\n  color: rgb(193 49 69 / var(--tw-text-opacity));\n}\n\n.chameleon .stacked-bar.--smaller .bar > .stack {\n  min-width: 0.5rem;\n}\n\n.chameleon .stacked-bar.--smaller .bar > .stack > .stack-value {\n  font-size: 1.4rem;\n  padding: 0.4rem 0 0.4rem;\n}\n\n.chameleon .stacked-bar.--auto-height {\n  height: 100%;\n}\n\n.chameleon .stacked-bar.--auto-height .bar {\n  height: 100%;\n  align-items: stretch;\n}\n\n.chameleon .stacked-bar.--auto-height .bar > .stack {\n  height: 100%;\n  justify-content: center;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/src/styles/PerformanceColors.css\",\"webpack://./chameleon/legacy/src/utility/StackedBar.scss\"],\"names\":[],\"mappings\":\"AACE;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AAKA;;EAAA,kBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,sBAAA;EAAA;AAAA;;AC/DF;EACE,WAAA;EACA,kBAAA;AAmEF;;AAhEI;EAAA;AAAA;;AAEE;EAAA,aAAA;EAAA,sBAAA;EAAA,YAAA;EACA,gBAAA;EACA,eAAA;EACA;AAHA;;AAME;EAAA,cAAA;EAAA,kBAAA;EAAA,iBAAA;EAAA,mBAAA;EAAA,gBAAA;EAAA,oBAAA;EAAA,gDAAA;EACA,gBAAA;EACA;AAFA;;AAMA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAEE;EAAA,oBAAA;EAAA;AAAA;;AAKF;EAAA,kBAAA;EAAA;AAAA;;AAKA;EAAA,kBAAA;EAAA;AAAA;;AAEE;EAAA,oBAAA;EAAA;AAAA;;AAOF;EAAA,kBAAA;EAAA;AAAA;;AAEE;EAAA,oBAAA;EAAA;AAAA;;AAMF;EAAA,kBAAA;EAAA;AAAA;;AAEE;EAAA,oBAAA;EAAA;AAAA;;AASA;EAAA,oBAAA;EAAA;AAAA;;AAKF;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAIA;EAAA,kBAAA;EAAA;AAAA;;AAMJ;EAAA,aAAA;EACA,2BAAA;EACA;AAFA;;AAKE;EAAA,aAAA;EAAA,mBAAA;EACA,iBAAA;EACA;AAFA;;AAGA;EACE,iBAAA;AAsCR;;AAjCM;EAAA,oBAAA;EAAA;AAAA;;AAIA;EAAA,oBAAA;EAAA;AAAA;;AAIA;EAAA,oBAAA;EAAA;AAAA;;AAIA;EAAA,oBAAA;EAAA;AAAA;;AAKA;;EAAA,oBAAA;EAAA;AAAA;;AAGE;;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAKF;EAAA,oBAAA;EAAA;AAAA;;AAGE;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAMA;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAEF;EACE,UAAA;AA4BR;;AAvBM;EAAA,oBAAA;EAAA;AAAA;;AAKE;EAAA,kBAAA;EAAA,oBAAA;EAAA;AAAA;;AAOF;EACE,iBAAA;AAmBR;;AAjBU;EAAA,iBAAA;EACA;AADA;;AAQN;EAAA;AAAA;;AAGE;EAAA,YAAA;EAAA;AAAA;;AAGE;EAAA,YAAA;EAAA;AAAA\",\"sourcesContent\":[\".default-tier {\\n  @apply bg-gray-600;\\n}\\n\\n.default-tier-border {\\n  @apply border-gray-600;\\n}\\n\\n.tier1,\\n.tier-developing {\\n  @apply bg-yellow-400;\\n}\\n\\n.tier1-text,\\n.tier-developing-text {\\n  @apply text-yellow-400;\\n}\\n\\n.tier1-border,\\n.tier-developing-border {\\n  @apply border-yellow-400;\\n}\\n\\n.tier2,\\n.tier-approaching {\\n  @apply bg-yellow-200;\\n}\\n\\n.tier2-text,\\n.tier-approaching-text {\\n  @apply text-yellow-200;\\n}\\n\\n.tier2-border,\\n.tier-approaching-border {\\n  @apply border-yellow-200;\\n}\\n\\n.tier3,\\n.tier-progressing {\\n  @apply bg-green-200;\\n}\\n\\n.tier3-text,\\n.tier-progressing-text {\\n  @apply text-green-200;\\n}\\n\\n.tier3-border,\\n.tier-progressing-border {\\n  @apply border-green-200;\\n}\\n\\n.tier4,\\n.tier-achieving {\\n  @apply bg-green-400;\\n}\\n\\n.tier4-text,\\n.tier-achieving-text {\\n  @apply text-green-400;\\n}\\n\\n.tier4-border,\\n.tier-achieving-border {\\n  @apply border-green-400;\\n}\\n\",\"@import '~chameleon/src/styles/PerformanceColors';\\n\\n.stacked-bar {\\n  width: 100%;\\n  min-width: 20.2rem;\\n\\n  .bar {\\n    @apply flex;\\n    > .stack {\\n      @apply flex flex-col p-0;\\n      background: none;\\n      min-width: 1rem;\\n      transition: all 200ms ease-in-out;\\n\\n      > .stack-value {\\n        @apply text-18 block text-white text-center font-medium;\\n        line-height: 1.2;\\n        padding: 0.6rem 0 0.7rem;\\n      }\\n\\n      &.--submitted {\\n        @apply bg-blue-600;\\n      }\\n\\n      &.--available-to-score {\\n        @apply bg-blue-700;\\n      }\\n\\n      &.--in-progress {\\n        @apply bg-blue-400;\\n        > .stack-value {\\n          @apply text-gray-700;\\n        }\\n      }\\n\\n      &.--complete {\\n        @apply bg-blue-800;\\n      }\\n\\n      &.--low-tier,\\n      &.--low_tier {\\n        @apply tier1;\\n        > .stack-value {\\n          @apply text-black;\\n        }\\n      }\\n\\n      &.--partial,\\n      &.--middle_tier,\\n      &.--middle-tier {\\n        @apply tier2;\\n        > .stack-value {\\n          @apply text-black;\\n        }\\n      }\\n\\n      &.--high-tier,\\n      &.--high_tier {\\n        @apply tier3;\\n        > .stack-value {\\n          @apply text-black;\\n        }\\n      }\\n\\n      &.yellow,\\n      &.light-yellow,\\n      &.light-green,\\n      &.green {\\n        > .stack-value {\\n          @apply text-black;\\n        }\\n      }\\n\\n      &.yellow {\\n        @apply tier1;\\n      }\\n\\n      &.light-yellow {\\n        @apply tier2;\\n      }\\n\\n      &.light-green {\\n        @apply tier3;\\n      }\\n\\n      &.green {\\n        @apply tier4;\\n      }\\n\\n      &.--default {\\n        @apply default-tier;\\n      }\\n\\n      &.--no-results {\\n        @apply bg-gray-800;\\n      }\\n\\n      &.--correct {\\n        @apply bg-green-600;\\n      }\\n\\n      &.--incorrect {\\n        @apply bg-red-600;\\n      }\\n\\n      &.no_answer_sheet {\\n        @apply bg-gray-900;\\n      }\\n\\n      &.answer_sheet_generated {\\n        @apply bg-gray-500;\\n      }\\n\\n      &.answer_sheet_issues {\\n        @apply bg-red-600;\\n      }\\n    }\\n  }\\n\\n  .labels {\\n    @apply flex;\\n    justify-content: flex-start;\\n    margin: 15px 0 15px -5px;\\n\\n    .label {\\n      @apply flex items-center;\\n      line-height: 25px;\\n      width: unset;\\n      &:not(:first-child) {\\n        margin-left: 20px;\\n      }\\n    }\\n\\n    .not-started {\\n      @apply text-gray-600;\\n    }\\n\\n    .started {\\n      @apply text-blue-400;\\n    }\\n\\n    .submitted {\\n      @apply text-blue-500;\\n    }\\n\\n    .scoring {\\n      @apply text-blue-700;\\n    }\\n\\n    .student-scored,\\n    .scored {\\n      @apply text-blue-600;\\n\\n      & > g > circle {\\n        @apply fill-current text-blue-800;\\n      }\\n    }\\n\\n    .complete {\\n      @apply text-blue-800;\\n\\n      & g > circle {\\n        @apply fill-current text-blue-800;\\n      }\\n    }\\n\\n    .no-answer-sheet {\\n      & g {\\n        @apply fill-current text-gray-900;\\n      }\\n      & g > circle {\\n        fill: none;\\n      }\\n    }\\n\\n    .answer-sheet-generated {\\n      @apply text-gray-300;\\n    }\\n\\n    .answer-sheet-issues {\\n      & path {\\n        @apply fill-current text-red-600;\\n      }\\n    }\\n  }\\n\\n  &.--smaller {\\n    .bar {\\n      > .stack {\\n        min-width: 0.5rem;\\n        > .stack-value {\\n          @apply text-base;\\n          padding: 0.4rem 0 0.4rem;\\n        }\\n      }\\n    }\\n  }\\n\\n  &.--auto-height {\\n    @apply h-full;\\n\\n    .bar {\\n      @apply h-full items-stretch;\\n\\n      > .stack {\\n        @apply h-full justify-center;\\n      }\\n    }\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.chameleon :export {\n  primary: #0076c4;\n  secondary: #1e1e1e;\n  error: #e75b6b;\n  tabsEdge: #ececec;\n  dark: #1e1e1e;\n  border: #d9d9d9;\n  blue: #0076c4;\n  white: #fff;\n  gray: #999896;\n  focusColor: rgba(0, 156, 222, 0.8);\n  focusRadius: 3px;\n}\n\n.chameleon .tag_wrapper {\n  margin: 0 -0.25rem;\n}\n\n.chameleon .tag_wrapper .popover {\n  margin: 0 0.25rem;\n  display: inline-block;\n}\n\n.chameleon .tag_wrapper .pop_over_toggle {\n  --tw-text-opacity: 1;\n  color: rgb(1 92 176 / var(--tw-text-opacity));\n  background: transparent;\n  cursor: pointer;\n}\n\n.chameleon .tag_wrapper .pop_over_toggle:hover {\n  transition: color 0.125s ease;\n  color: #004878;\n}\n\n.chameleon .tag_wrapper .pop_over_toggle::after {\n  content: \",\";\n}\n\n.chameleon .tag_wrapper .popover:last-child .pop_over_toggle::after {\n  content: \"\";\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./chameleon/legacy/src/styles/utility/Colors.scss\",\"webpack://./chameleon/legacy/src/utility/TagWithDescriptionPopover.scss\"],\"names\":[],\"mappings\":\"AA+HA;EACE,gBApHK;EAqHL,kBAjDW;EAkDX,cA5DI;EA6DJ,iBAlGU;EAmGV,aA7HK;EA8HL,eAzFO;EA0FP,aA1HK;EA2HL,WAnIM;EAoIN,aApGK;EAqGL,kCApBsB;EAqBtB,gBAvBuB;ACvGzB;;AAVA;EACE,kBAAA;AAaF;;AAVE;EACE,iBAAA;EACA,qBAAA;AAYJ;;AARI;EAAA,oBAAA;EAAA,6CAAA;EACA,uBAAA;EACA;AAFA;;AAGA;EACE,6BAAA;EACA,cAAA;AAYN;;AAVI;EACE,YAAA;AAYN;;AAPI;EACE,WAAA;AASN\",\"sourcesContent\":[\"//\\n// Base colors\\n//\\n\\n$white: #fff;\\n$black: #000;\\n$almost_black: #1e1e1e;\\n$dark: #1e1e1e;\\n$body: #333;\\n$incorrect: #d0021b;\\n\\n// - Brand\\n$blue: #0076c4;\\n$darkBlue: #024974;\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n\\n// - Interaction alt\\n// High, low and middle grays. Lighten or darken by 10% to get CB approved colors.\\n$tile_gray: #696969;\\n$tile_light_gray: #888888;\\n$light_gray: #ebe9e6;\\n$light_gray_op: #efeff4;\\n$slider_gray: #d8d8d8;\\n$light_gray2: #f0f0f0;\\n$lighter_gray: #faf9f7;\\n$lighter_gray_2: #ddd;\\n$light_gray2: #f0f0f0;\\n$gray-400: #d4d4d8;\\n$light_row_gray: #e0e0e0;\\n$light_header_gray: #f9f9f9;\\n$row_gray: #f2f2f2;\\n$tabs_gray: #ececec;\\n$medium-gray: #aaaaa9;\\n$medium_light_gray: #bcbcbc;\\n$gray: #999896;\\n$gray_text_consistent: #999999;\\n$dark_gray: #333231;\\n$mild-gray: #cecece;\\n$trans_gray: $light_gray;\\n$solid_gray: $light_gray;\\n$panel_gray: #f0f0f0;\\n$input_border: darken($light_gray, 12.5%);\\n$border: #d9d9d9;\\n$dark-border: #a5a6a7;\\n$border-grey: #ccc;\\n$shadow: #000; //DEPRECATED\\n$medium_gray_border: #cccccc;\\n$transparent_gray: rgba($light_gray, 0.5);\\n\\n// - Link/Interaction\\n$light_blue: $blue;\\n$light_blue_two: #0077c8;\\n$hover_blue: #00497c;\\n$new_light_blue: #eef7ff;\\n$new_border_light_blue: #efeff1;\\n\\n//\\n// Contextual colors\\n//\\n$green: #318635;\\n$light_green: rgba(58, 145, 63, 0.1);\\n$alt_green: #c4e7b6;\\n$bright_green: #6cc449;\\n\\n$yellow: #fedb00;\\n$alt_yellow: #fff199;\\n$alt_yellow_light: #fdf4ba;\\n\\n$red: #e75b6b;\\n$alt_red: #f9d1d2;\\n$dark_red: $red;\\n$light_red: #9127251a;\\n\\n$teal: #01a1b3;\\n$orange: #ff8000;\\n$dark-orange: #e57200;\\n\\n// Global Colors\\n$text-color: #1e1e1e;\\n$text-color-blue: #0073ce;\\n$warm-neutral-color: $light_gray;\\n$merit-color: #deb53c;\\n$app-color: rgba(239, 239, 244, 1);\\n\\n// Disabled Colors\\n$disabled-color: $gray;\\n$disabled-background: $light_gray;\\n$disabled-border: darken($light_gray, 10%);\\n\\n// Scoring Colors\\n$exact-color: $green;\\n$close-color: $yellow;\\n$out-of-range-color: $dark_red;\\n\\n// Form colors\\n$form-light-blue: #009cde;\\n$form-error-red: #cf2b4e;\\n$button_blue: #1d8fdc;\\n\\n// Alert Colors\\n$warning-color: $yellow;\\n$confirm-warning-color: $dark-orange;\\n$error-color: $red;\\n$valid-color: $green;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n\\n// performance metrics color\\n$performance1: $yellow;\\n$performance2: $alt_yellow;\\n$performance3: $alt_green;\\n$performance4: $bright_green;\\n\\n$homepage-intro-background: #296dc1;\\n\\n:export {\\n  primary: $blue;\\n  secondary: $text-color;\\n  error: $red;\\n  tabsEdge: $tabs_gray;\\n  dark: $dark;\\n  border: $border;\\n  blue: $blue;\\n  white: $white;\\n  gray: $gray;\\n  focusColor: $focus-highlight-color;\\n  focusRadius: $focus-highlight-radius;\\n}\\n\\n$teiCorrect: #3a913f;\\n$teiCorrectBackground: #e5f6f2;\\n$teiIncorrect: #cf2b4e;\\n\\n$finalExamDeveloping: $yellow;\\n$finalExamApproaching: #a7dc92;\\n$finalExamAchieving: #6cc449;\\n\\n$placeholderColor: #807f7c;\\n\\n$resourceYellowBg: #fff4c1;\\n$resourceBlueBg: #e5f1f9;\\n\\n$firewall-accepted: #3b8f3e;\\n$firewall-blocked: #c23146;\\n$firewall-warning: #e57202;\\n$firewall-default: #a5a6a7;\\n\\n$dark_select_boarder: #1d2225;\\n$popover-box-shadow: 0 0.5rem 3rem 0.25rem rgba(0, 0, 0, 0.3);\\n$toast-text-default-color: #468847;\\n\\n@mixin scoring-color($color) {\\n  background: $color;\\n  &.icon {\\n    background: transparent;\\n    color: $color;\\n  }\\n}\\n\\n@mixin focus_outline() {\\n  box-shadow: 0 0 $focus-highlight-radius $focus-highlight-radius\\n    $focus-highlight-color;\\n}\\n\\n$widget-blue: #0075c8;\\n$modal-window-background: rgba(0, 0, 0, 0.5);\\n$modal-margin: 24px;\\n\\n$focus-highlight-radius: 3px;\\n// this is the standard CB #009CDE color, at 80% opacity\\n$focus-highlight-color: rgba(0, 156, 222, 0.8);\\n$code-editor-background: #f7f7f7;\\n\",\"@import '~legacy/src/styles/utility/Colors';\\n\\n.tag_wrapper {\\n  margin: 0 -0.25rem;\\n\\n  //Popover containers\\n  .popover {\\n    margin: 0 0.25rem;\\n    display: inline-block;\\n  }\\n  //Toggle within popover\\n  .pop_over_toggle {\\n    @apply text-blue-700;\\n    background: transparent;\\n    cursor: pointer;\\n    &:hover {\\n      transition: color 0.125s ease;\\n      color: darken($light-blue, 15%);\\n    }\\n    &::after {\\n      content: ',';\\n    }\\n  }\\n  //Remove comma on last popover\\n  .popover:last-child {\\n    .pop_over_toggle::after {\\n      content: '';\\n    }\\n  }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n      import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./Breakpoints.module.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./Breakpoints.module.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./OpTabs.module.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./OpTabs.module.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs.js!./Main.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs.js!./Main.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../node_modules/sass-loader/dist/cjs.js!./FirewallCheck.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../../node_modules/sass-loader/dist/cjs.js!./FirewallCheck.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs.js!./StackedBar.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs.js!./StackedBar.scss\";\n       export default content && content.locals ? content.locals : undefined;\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs.js!./TagWithDescriptionPopover.scss\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[2]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[5].use[3]!../../../../node_modules/sass-loader/dist/cjs.js!./TagWithDescriptionPopover.scss\";\n       export default content && content.locals ? content.locals : undefined;\n"],"names":["map","all","takeEvery","SUBJECT_MAPPING","getUserSubjects","PREAP_SUBJECTS","remapSubjectsSaga","action","getUserSubjectsFn","arguments","length","undefined","userData","router","params","userSubjects","mapId","isAdmin","isCoordinator","subjectIds","item","toString","Number","isNaN","parseInt","subject","includes","replace","entrypointSaga","UserRoles","renderValidation","pilot","fromROS","document","referrer","match","error","me","levityProfile","window","cb","core","iam","getAuthSession","basicProfile","isStudent","userRole","STUDENT","isTeacher","TEACHER","isProfessional","isAdminOrCoordinator","ADMIN","COORDINATOR","namespace","studentSubjects","teacherSubjects","CURRENT_PILOT_NAME","location","pathname","schoolSet","console","log","href","ROS_FRONTEND_URL","axios","_fireRequest","method","url","data","headers","options","FYM_BACKEND_URL","then","response","resp","http_status_code","status","content_type","endsWith","Array","isArray","msg","get","_len","args","_key","post","_len2","_key2","put","_len3","_key3","delete","_len4","_key4","calls","_ref","catch","signedURLCache","getSignedUrl","failIfKeyIsMissing","bypassCache","cacheKey","JSON","stringify","Promise","resolve","isString","test","fail_if_key_is_missing","result","signedURL","signedUrl","call","SubmissionError","apiClient","apiSaga","routine","_arguments","silent","callback","callbackValue","onReady","transform","x","isSubmission","isParallel","request","arg2","shouldUseAll","i","cMethod","cUrl","cData","reqResponse","push","errors","forEach","res","success","failure","initialState","handlers","state","hasOwnProperty","type","bootstrapApollo","createRootReducer","createNetworkInterface","IntrospectionFragmentMatcher","introspectionQueryResultData","fragmentMatcher","networkInterface","uri","client","store","React","useEffect","useRef","connect","flowRight","compose","omitBy","isEmpty","flatten","rison","fetchCategories","resetAssessmentState","flattenTags","createFlattenHierarchyData","extractTags","findTagById","findQBSubject","withCourseOutlineConfig","usePersistFilters","isPreApSubject","getRecursiveFilterByLabel","tags","label","searchedTag","getSelectedTags","tagTree","selectedTagsRef","hierarchyRef","id","parent_id","parentId","isSelected","children","child","tag","tagsCleanUp","hierarchy","selectedTags","current","tree","tagCategoryId","encode_object","extractChildrenFromMetadata","metadata","applyMetadataFilters","filters","categories","above_fold","tagsQuery","filter","allCategories","concat","below_fold","categoryMatches","category","description","name","filterId","matches","values","value","metadataItems","moreMatches","firstTag","ids","source","unitQuestions","questionFilterTag","category_id","AssessmentFilterProvider","WrappedComponent","FilterProvider","props","route","courseOutlineConfig","chosenEducationPeriodCode","adminSubjects","query","locationState","unitNumber","bigIdeaType","userId","arePersistedFiltersLoaded","redirectWithFilters","bigIdea","flattenHierarchy","parentByChild","userSubjectsToUse","subjectInfo","isPreAP","initId","optionParams","educationPeriod","minimal_fields_only","subunitLabel","filterParams","generateUnitTagsString","unitNumberValue","unitFilterCategories","unitFilter","find","firstSubCategoryTags","unitTag","_ref2","_ref3","tagsString","filterQueryString","bigIdeaFilterCategories","bigIdeaFilter","_ref4","bigIdeaTag","assessmentPurposeAndSourceCategories","assessmentPurposeAndSourceFilter","_ref5","withPerformanceTaskFilter","performanceTaskFilter","apQuestionFilter","siblingFilter","tagId","topicQuestionsFilter","unitNumberFromState","questionBankPath","otherLocationState","innerPath","searchTerm","sortTagsBy","urlToPath","createElement","_extends","key","displayName","assessment","findAndApply","filterLabel","labelFound","title","list","applyFilterCustomLabel","dayjs","dateTimeFormat","inputDate","preset","timezone","presets","date","dateAndTime","dateAndTimeZoned","dateAndTimeZonedTwoLines","time","timeHourSeconds","dateAndTimeShortYear","dateAndTimeShort","dateAndTimeShortest","dateLong","dateTimeFile","dateShort","dateStandard","dateShortMonth","dayMonthTime","dateShortTwoDigitMonth","dateMonthTextAndDay","dt","tz","utc","local","format","retrieveEducationPeriod","educationPeriodCode","educationPeriods","p","isCurrentEducationPeriod","educationPeriodOptions","dateToCheck","chosenEducationPeriod","chosenPeriodStart","contentAvailableAt","chosenPeriodEnd","endDate","dateRepresentation","isBetween","isAfterEducationPeriodExpires","chosenPeriodData","isAfter","isBeforeEducationPeriod","chosenPeriodAvailable","isBefore","createRoutine","setActiveEducationPeriod","createReducer","TYPES","groupFiltersFromLocalStorage","parse","localStorage","getItem","localStorageGroupFilterKey","activeEducationPeriod","reducer","payload","has","size","reduce","addQuery","ACTIONS","handleActiveDistrict","handleActiveSchool","handleActiveSection","handleActiveStudent","handleActiveEducationPeriod","setAllEducationPeriods","setHierarchy","setDistricts","setSchools","setSections","setStudents","handleSetupInitialState","updateCachedFilterProps","toggleCachedFilterProps","storeFlattenedGroups","district","school","section","student","skillCategory","allSkillCategories","none","mcq","frq","asc","des","ALL_SCHOOLS","ALL_SECTIONS","ALL_STUDENTS","ALL_DISTRICTS","DEFAULT_DISTRICT","DEFAULT_SCHOOL","DEFAULT_STUDENT","DEFAULT_UNIT","INITIAL_DISTRICTS","defaultValue","INITIAL_SCHOOLS","INITIAL_SECTIONS","INITIAL_STUDENTS","defaultValues","districts","schools","sections","students","allSchools","allSections","allStudents","setData","sortedData","Object","keys","sort","first","second","firstStudentName","last_name","toUpperCase","first_name","secondStudentName","datum","firstName","lastName","aggregatedList","filterHierarchyData","districtAccum","filteredSchools","schoolAccum","formatUserEducationPeriods","earliestReportingEP","period","displayValue","formatCurrentEducationPeriod","currentEducationPeriod","handleDataList","dataList","selection","setInitialGroupFilterState","dispatch","activeDistrictId","activeSchoolId","activeSectionId","activeStudentId","activeEducationPeriodValue","userEducationPeriods","filteredData","hasInitialStateFromStorageOrQuery","showEmptySelection","hideAllDistricts","matchingDistrict","some","matchingDistrictValue","accum","matchingSchool","matchingSchoolValue","getSections","acc","matchingSection","matchingSectionValue","searchAllSections","studentsWithSectionId","studentsAccum","studentId","split","matchingStudent","matchingEducationPeriod","activeDistrict","activeSchool","activeSection","activeStudent","storeActiveId","groupFilters","setItem","applyMiddleware","districtId","schoolId","sectionId","prevState","showCachedFilterProps","districtSelection","prefix_object","prefix","old_obj","obj","Fragment","useState","Link","withRouter","Grid","WarningModal","trackerLog","clearDataFromLocalStorage","Actions","getBlockedDomains","getIconByAction","DebugSecureFirewallCheck","removeDebugKeysFromLocalStorage","isLockdownBrowser","areDebugKeysSetInLocalStorage","INTERVAL_CHECK_TEN_MINUTES_AS_MILLIS","FIREWALL_CHECK_KEY","SecureFirewallCheck","featureEnabled","nextCheckHours","intervalMillis","showModal","setShowModal","initialDomainsState","warnDomains","blockDomains","domains","setDomains","isUserLoggedIn","handleConfirm","hasBlockedDomains","updateUserAcknowledgement","trackDomains","userInformation","warn","block","userRoles","groupIds","intervalCheck","isCheckNeeded","findBlockedDomains","shouldShowModal","userHasJustLoggedIn","updateNextCheck","r","intervalId","setInterval","clearInterval","confirmLabel","onSuccess","content","btnPrimary","WarningContent","className","d","WARN","BLOCK","WarningAndBlockedMessage","WarningOnlyMessage","BlockedOnlyMessage","to","container","xs","getRoleAndPrograms","role","programs","Set","s","subjectProgram","sessionData","sessionStorage","_lastPageUrl","FYM_FRONTEND_URL","from","stored","hasBlockingDomains","hasWarningDomains","userConfirmedBlockedDomains","nextCheckAfter","numHours","add","localStore","updated","assign","featureFlag","secure_firewall_check_enable","secure_firewall_check_interval_duration_hours","SECURE_FIREWALL_DOMAINS_BEHAVIOR","getDebugFirewallCheckDomainsBehavior","domainBehaviors","process","env","ENV","removeItem","AP","PreAP","getDomains","domain","isValidForUserRole","isValidForAnyProgram","program","debugDomainBehaviors","getDomainsToActions","Map","entry","debugDomain","actionOnBlock","DOMAIN_LOADED","DOMAIN_NOT_LOADED","fetchDomains","loaded","failed","domainPromises","fetch","mode","domainsToCheck","domainsToLoadingStatus","entries","warningDomains","blockingDomains","LEARNOSITY_REGION","__testing__","fymFragmentMatcher","createClient","URI","context","endpoint","unitsClient","FYM_UNITS_BACKEND_URL","fymClient","impersonatorFymClient","reportsClient","FYM_BACKEND_REPORTING_URL","wizardsClient","FYM_WIZARDS_BACKEND_URL","_","btn","decodeTags","decode_object","decodeArray","arr","decode_array","t","sortBy","join","flattenArray","nextLink","page","curPage","path","nextQuery","color","arrow","prevLink","prevQuery","pageLink","pageNumber","pageQuery","changeFilters","component","inclusionFilters","tagQuery","omit","excludeHigher","includeOnly","encode_array","newQuery","changeFullTextSearch","fetchTags","loading","takeLatest","fetchTagsSaga","subjectId","itemId","questionDetailsToogleRationale","itemTagsSaga","TRIGGER","saveToLocalStorage","retrieveFromLocalStorage","Responsive","breakpoints","mapValues","mobile","small","smallplus","medium","large","DUMMY_MAX_WIDTH","MOBILE_BREAKPOINT","ResponsiveView","forwardRef","ref","screens","otherProps","resolutions","minWidth","maxWidth","desktop","queryRes","screenSizes","currentResolutionKey","currentResolution","Math","min","max","maxSize","Children","toArray","index","cloneElement","MobileMedia","matchMedia","TabletMedia","Component","cn","STATUS_ICON","Icon","PopOverImport","PopOver","v4","uuidv4","Stack","classStatus","style","stackValue","getBarStyle","classNames","StackedBar","render","showLabels","stacks","isSmall","isLoading","showMovedStudentIndicator","alwaysSmall","isAutoHeight","availableStacks","stack","text","isFirst","isLast","uuid","flexGrow","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","icon","accessibility","trigger","_defineProperty","PropTypes","isEqual","Button","PracticeSkillBox","setMathJaxTypeset","TagWithDescriptionPopover","shouldComponentUpdate","renderTags","isSkillChip","tagClassName","tagHasDescription","renderTag","withPortal","onContentMount","contentElementRef","buttonProps","isOpen","triggerRef","isNaked","isLink","accessibilityTitle","array","isOnLogin","isOnLogout","isOnJoin","isOnRoot","_roles","set","roles","isStaff","STAFF","isDemo","DEMO","ASSESSMENTS","NOW_OPEN","a","DASH","assignmentStartDate","fallback","nowOpenLabel","startsAtDate","starts_at","startsAt","opened","formattedStartDate","formattedOpenedDate","assignmentDueDate","dueAtDate","due_at","dueAt","closed","formattedDueDate","formattedClosedDate","getRelatedAssignmentDueAtDate","relatedAssignment","startDate","relatedAssignmentTime","timer","dateIsSet","formattedDate","SSO_LOGIN_URL","defaults","final","buildUrl","routes","endRoute","queries","stop","_index","indexOf","paramIndex","newRoute","stringifyQuery","queryStr","SplitIOHandler","fetchFlags","uid","attributes","flagWithConfigOptions","listenCallback","reject","flagHandler","splitName","treatment","Error","invoke","orderBy","groupBy","maxBy","chunk","QUESTION_TYPES","lodash","scoresByStudentId","not_started","started","submitted","mcq_scoring","ready_to_score","scoring","student_scored","teacher_and_student_scored","scored","complete","no_answer_sheet","answer_sheet_generated","answer_sheet_issues","SPP_STATUS_ICON","createWeightedStacks","isWeighted","columns","expandedFlex","stackWithMaxStudents","maxStudents","hasAbilityToExpand","hasExpandedView","Boolean","chunkBy","round","studentGroups","flex","studentsSort","primarySortingAttr","secondarySorts","grouped","sortedGroupKeys","b","parseFloat","sortFallBack","getStudentId","parsed","user_id","dedupeStudentsById","seen","studentsWithoutReport","userIds","studentsByScoreBracket","topLimit","bottomLimit","reportByUsers","isNoResults","ignoreUnanswered","uniqueStudents","userIdsFromReports","studentsSubmitted","reportForUser","reportForUserPerItem","items","max_score","maxScore","score","isNotScored","isAwaitingScore","percent","isScoreInsideTierValues","meta","learnosityReport","learnosityReportScoreParsed","learnosityReportMaxScore","percentCorrect","studentsInTier","learnosityReportByUsers","reports","firstReport","activityId","users","isMCQ","multipleChoice","isFRQ","freeResponse","isRubric","isSecure","sortTiers","performanceTierStacks","totalStudents","performanceTiers","lastLabel","secondaryNameSorts","performanceTiersArray","performanceTiersWithNoResults","NaN","stackData","anyReportForItem","isMaxScoreMoreThanOne","tier","isHiddenByDefault","studentsForStack","shouldPushTier","shouldRemoveNoResultsStack","shift","buildPerformanceResultsAriaLabel","secondsToTime","seconds","forceShowHours","startOf","averageTimeSpentInSeconds","averageTimeSpents","getScoreTimeSpents","learnosityReportsByItemData","userTimeSpents","userTimeSpentPerQuestion","assessmentIndex","assignmentKeys","assignmentIndex","assignment","userKeys","userIndex","user","questionKeys","questionIndex","question","time_spent","getSingleResult","report","findReportByAssignmentIdSectionId","assignmentId","foundReport","reportId","reportAssignmentId","reportSectionId","splice","stacksToMessage","isLocked","getStudentScore","learnosityReportsData","getPerformanceStacks","reportData","reportByStudents","recursiveTagDescDelta","deepTag","determineFirstLevel","tagCategory","getTagChildrenIds","flatHierarchy","tagsHierarchy","tagHierarchy","hasChildren","childrenIds","getTagsSelectedStatus","setParentSelections","tagsById","isClicked","grandParent","selectTag","deselectTag","areChildrenSelected","setTagSelections","childrenTags","hasTags","recursiveTagIndex","preToggleFilters","selectedFilters","filtersByCategory","aboveFold","belowFold","firstLevel","processTags","found","rest","next","pop","innerTags","parentInfo","cat","merge","track","isImpersonating","envMapping","dev","testing","staging","integration","p2testing","perf","prod","uat","_sendToTelemetry","blockImpersonating","post_data","object","FYM_TELEMETRY_BACKEND_URL","sendImpersonatingDetailsToTelemetry","sendToTelemetry","TLTRY_DEFAULTS","v","TELEMETRY_EVENTS","teacherAssign","teacherUpdate","teacherMarkComplete","teacherReopen","sppTeacherDeleted","teacherDeleted","sppPartAttempted","sppHintAttempted","sppStartSelfAssigned","sppStartTeacherAssigned","sppSavedAndExited","sppSubmitted","sppUnansweredPartClick","sppReviewOpened","labsSubmitClick","teacherSubmitStudentAssignment","teacherUnSubmitStudentAssignment","sppDisabledRevealTipClick","sppDisabledRevealAnswerTipClick","teacherUpdateShowLabels","openSourceResource","openJsTorResource","casImplicitDelete","ackJsTorTerms","telemetry","opts","handleTelemetry","app","eventType","importId","cbUserId","amUserId","current_user","telemetryData","event_type","date_clicked","am_user_id","cb_user_id","mapKeys","camelCase","getFinishedPercent","getScoredSubmissions","redirectToLogin","num","decimalPlaces","m","EPSILON","validateEmail","address","regexp","getParameterByName","urlToParse","regexName","regex","RegExp","results","exec","decodeURIComponent","redirectRequiredCheck","redirectUrl","getLocation","l","hostname","sensitiveFieldProps","autoComplete","autoCorrect","spellCheck","ALPHABET","createMCQAnswersTable","answerLabels","charAt","storeUserType","userType","trim","str","getSavedGroupsFilter","selectedGroups","class","createClassRedirect","FEATUREFLAGS","myClasses","redirectRos","redirectToCBLegacyWithTokens","nextURL","_nextURL","encodeURIComponent","accountAccessToken","accountRefreshToken","expires","finalURL","CB_LEGACY_URL","getSignedResource","bucket","vhost","signature","getValidBucketUrl","baseS3Url","getSignedUnitResource","resourceUrl","urlBucket","baseURL","extractS3ResourceDomainFromUrl","newUrl","startsWith","S3_RESOURCES_BUCKET","urlParts","isS3Resource","getResourceAddress","extractHtmlContent","html","space","span","innerHTML","querySelectorAll","textContent","innerText","parseHeaders","headerString","oldHeaders","header","toLowerCase","slice","SIGNING_ENDPOINT","wait","millis","setTimeout","signUrl","getPayload","retryPromise","func","timeout","interval","closureTimeout","requestLoop","waitForUrl","rebuildPathFromRoutes","getTestSelector","removeHtmlFromText","string","isValidJSONString","e","parseNonEmptyJSONObject","getSubGroupStudentsLabel","subGroupStudents","subGroupStudentsLength","AllAssignments","constructor","assessments","assessmentId","assignments","is_final_exam","assignee","isAssignmentComplete","progress","finishedPercentage","matchingAssessment","KEY_CODES","backspace","tab","return","alt","esc","leftArrow","upArrow","rightArrow","downArrow","getSelectedPlayer","isQBCreateTab","blueBookUiFlag","isTopicQuestion","fetchSubmissionData","submissions","fetchSubmissionDataSaga","submissionDataSaga"],"sourceRoot":""}