{"version":3,"file":"./assets/js/scripts.js","mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,KAA4D;AAC9D,EAAE,CACsD;AACxD,CAAC,qBAAqB;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAgD;AAChE;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;ACpbD;AACA;AACA;;AAEA;AACO,MAAMA,UAAU,GAAG,CACzB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,oBAAoB,EACpB,aAAa,CACb;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,OAAOA,CAAA,EAAqC;EAAA,IAAnCC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IAAEG,KAAK,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGI,QAAQ;EACxD,IAAIC,KAAK,GAAGC,KAAK,CAACC,IAAI,CAAEJ,KAAK,CAACK,gBAAgB,CAAEX,UAAU,CAACY,IAAI,CAAE,IAAK,CAAE,CAAE,CAAC;EAE3E,IAAKV,OAAO,EAAG;IACdM,KAAK,GAAGA,KAAK,CAACK,MAAM,CAAIC,IAAI,IAAM,CAAEA,IAAI,CAACC,OAAO,CAAEb,OAAQ,CAAC,IAAI,CAAEY,IAAI,CAACE,OAAO,CAAEd,OAAQ,CAAE,CAAC;EAC3F;EAEAM,KAAK,CAACS,OAAO,CAAIH,IAAI,IAAM;IAC1B,IAAKA,IAAI,CAACI,QAAQ,IAAIJ,IAAI,CAACI,QAAQ,KAAK,IAAI,EAAG;MAC9CJ,IAAI,CAACK,OAAO,CAACD,QAAQ,GAAGJ,IAAI,CAACI,QAAQ;IACtC;IAEAJ,IAAI,CAACI,QAAQ,GAAG,IAAI;EACrB,CAAE,CAAC;EAEH,OAAOV,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,MAAMA,CAAA,EAAqC;EAAA,IAAnClB,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAAA,IAAEG,KAAK,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGI,QAAQ;EACvD,IAAIC,KAAK,GAAGC,KAAK,CAACC,IAAI,CAAEJ,KAAK,CAACK,gBAAgB,CAAEX,UAAU,CAACY,IAAI,CAAE,IAAK,CAAE,CAAE,CAAC;EAE3E,IAAKV,OAAO,EAAG;IACdM,KAAK,GAAGA,KAAK,CAACK,MAAM,CAAIC,IAAI,IAAM,CAAEA,IAAI,CAACC,OAAO,CAAEb,OAAQ,CAAC,IAAI,CAAEY,IAAI,CAACE,OAAO,CAAEd,OAAQ,CAAE,CAAC;EAC3F;EAEAM,KAAK,CAACS,OAAO,CAAIH,IAAI,IAAM;IAC1B,IAAKA,IAAI,CAACK,OAAO,CAACD,QAAQ,EAAG;MAC5BJ,IAAI,CAACI,QAAQ,GAAGJ,IAAI,CAACK,OAAO,CAACD,QAAQ;IACtC,CAAC,MAAM;MACNJ,IAAI,CAACO,eAAe,CAAE,UAAW,CAAC;IACnC;EACD,CAAE,CAAC;EAEH,OAAOb,KAAK;AACb;AAEA,+DAAe;EACdR,UAAU;EACVoB,MAAM;EACNnB;AACD,CAAC;;;;;;;;;;;;;;;ACxED,6BAAe,oCAAUqB,EAAE,EAAa;EAAA,IAAXC,IAAI,GAAApB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACrC,IAAIqB,KAAK,GAAG,IAAI;EAEhB,SAASC,WAAWA,CAAA,EAAU;IAAA,SAAAC,IAAA,GAAAvB,SAAA,CAAAC,MAAA,EAANuB,IAAI,OAAAlB,KAAA,CAAAiB,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;MAAJD,IAAI,CAAAC,IAAA,IAAAzB,SAAA,CAAAyB,IAAA;IAAA;IAC3B,IAAI,CAACJ,KAAK,EAAE;MACXA,KAAK,GAAGK,UAAU,CAAC,MAAM;QACxBP,EAAE,CAAC,GAAGK,IAAI,CAAC;QACXH,KAAK,GAAG,IAAI;MACb,CAAC,EAAED,IAAI,CAAC;IACT;EACD;EAEAE,WAAW,CAACK,MAAM,GAAG,MAAM;IAC1BC,YAAY,CAACP,KAAK,CAAC;IACnBA,KAAK,GAAG,IAAI;EACb,CAAC;EAED,OAAOC,WAAW;AACnB;;;;;;;;;;;;;;;;AClBO,MAAMO,KAAK,CAAC;EAClBC,WAAWA,CAAEnB,IAAI,EAAEoB,QAAQ,EAAG;IAC7B,IAAI,CAACpB,IAAI,GAAOA,IAAI;IACpB,IAAI,CAACoB,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAI,IAAI,CAACrB,IAAI,CAACK,OAAO,CAACiB,KAAK,IAAI,GAAG;IAC9C,IAAI,CAACC,IAAI,GAAO,CAAE,WAAW,EAAE,cAAc,CAAE,CAACC,QAAQ,CAAE,IAAI,CAACxB,IAAI,CAACK,OAAO,CAACoB,SAAU,CAAC,GAAG,IAAI,CAACzB,IAAI,CAACK,OAAO,CAACoB,SAAS,GAAG,WAAW;IAEnI,MAAMC,OAAO,GAAIC,CAAC,IAAK;MACtB,IAAIC,MAAM,GAAGD,CAAC,CAACC,MAAM;MAErB,OAAQA,MAAM,IAAIA,MAAM,KAAK5B,IAAI,EAAG;QACnC,IAAK4B,MAAM,CAAC3B,OAAO,CAAE,IAAI,CAACoB,OAAQ,CAAC,IAAIO,MAAM,CAACC,IAAI,EAAG;UACpDF,CAAC,CAACG,cAAc,CAAC,CAAC;UAClB,IAAI,CAACR,KAAK,CAAEM,MAAM,CAACC,IAAK,CAAC;UACzB;QACD;QAEAD,MAAM,GAAGA,MAAM,CAACG,UAAU;MAC3B;IACD,CAAC;IAED,IAAI,CAAC/B,IAAI,CAACgC,gBAAgB,CAAE,OAAO,EAAEN,OAAQ,CAAC;IAE9C,IAAK,IAAI,CAACH,IAAI,EAAG;MAChB;MACAU,MAAM,CAACD,gBAAgB,CAAE,UAAU,EAAE,MAAM,IAAI,CAACV,KAAK,CAAEY,QAAQ,CAACL,IAAI,EAAE,KAAM,CAAE,CAAC;IAChF;EACD;EAEA,MAAMP,KAAKA,CAAEO,IAAI,EAAmB;IAAA,IAAjBM,OAAO,GAAA9C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAChC,IAAI;MACH,IAAI,CAACW,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,YAAa,CAAC;MAEvC,IAAKF,OAAO,IAAI,IAAI,CAACZ,IAAI,EAAG;QAC3BU,MAAM,CAACE,OAAO,CAAE,IAAI,CAACZ,IAAI,CAAE,CAAE,CAAC,CAAC,EAAE,EAAE,EAAEM,IAAK,CAAC;MAC5C;MAEA,MAAMS,QAAQ,GAAG,MAAMhB,KAAK,CAAEO,IAAK,CAAC;MACpC,MAAMU,IAAI,GAAO,MAAMD,QAAQ,CAACE,IAAI,CAAC,CAAC;MACtC,MAAMC,MAAM,GAAK,IAAIC,SAAS,CAAC,CAAC;MAChC,MAAMC,GAAG,GAAQF,MAAM,CAACG,eAAe,CAAEL,IAAI,EAAE,WAAY,CAAC;MAC5D,MAAMvC,IAAI,GAAO2C,GAAG,CAACE,aAAa,CAAE,IAAI,CAACzB,QAAS,CAAC;MAEnD,IAAK,CAAEpB,IAAI,YAAY8C,WAAW,EAAG;QACpC,MAAM,IAAIC,KAAK,CAAE,uBAAwB,CAAC;MAC3C;MAEA,IAAI,CAAC/C,IAAI,CAACgD,SAAS,GAAGhD,IAAI,CAACgD,SAAS;MACpC,IAAI,CAAChD,IAAI,CAACiD,aAAa,CAAE,IAAIC,WAAW,CAAE,mBAAmB,EAAE;QAAEC,OAAO,EAAE,IAAI;QAAEC,MAAM,EAAE;MAAK,CAAE,CAAE,CAAC;IACnG,CAAC,CAAC,OAAQC,KAAK,EAAG;MACjBC,OAAO,CAACC,KAAK,CAAE1B,IAAI,EAAEwB,KAAM,CAAC;MAC5BnB,QAAQ,CAACL,IAAI,GAAGA,IAAI;IACrB,CAAC,SAAS;MACT,IAAI,CAAC7B,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,YAAa,CAAC;MAE1C,IAAK,IAAI,CAACxD,IAAI,CAACyD,qBAAqB,CAAC,CAAC,CAACC,GAAG,GAAG,CAAC,EAAG;QAChD,IAAI,CAAC1D,IAAI,CAAC2D,cAAc,CAAE;UAAEC,QAAQ,EAAE;QAAS,CAAE,CAAC;MACnD;IACD;EACD;AACD;AAEO,SAASC,KAAKA,CAAA,EAA8B;EAAA,IAA5BzC,QAAQ,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,cAAc;EAC/C,MAAMK,KAAK,GAAGC,KAAK,CAACC,IAAI,CAAEH,QAAQ,CAACI,gBAAgB,CAAEuB,QAAS,CAAE,CAAC;EAEjE,IAAK1B,KAAK,CAACJ,MAAM,GAAG,CAAC,EAAG;IACvB,IAAKI,KAAK,CAACJ,MAAM,GAAG,CAAC,EAAG;MACvBgE,OAAO,CAACC,KAAK,CAAE,qFAAsF,CAAC;MACtG;IACD;IAEA,OAAO,IAAIrC,KAAK,CAAExB,KAAK,CAAC,CAAC,CAAC,EAAE0B,QAAS,CAAC;EACvC;AACD;AAEA3B,QAAQ,CAACuC,gBAAgB,CAAE,kBAAkB,EAAE,MAAM6B,KAAK,CAAC,CAAE,CAAC;;;;;;;;;;;;;;;AC3E9D;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASC,MAAMA,CAAEC,SAAS,EAAG;EACnC,MAAMC,MAAM,GAAG;IACdD,SAAS,EAAE,CACV,6DAA6D,EAC7D,wDAAwD,EACxD,iEAAiE,EACjE,oCAAoC,EACpC,kCAAkC;EAEpC,CAAC;EAED,IAAKA,SAAS,EAAG;IAChB,IAAK,CAACpE,KAAK,CAACsE,OAAO,CAAEF,SAAU,CAAC,EAAG;MAClCA,SAAS,GAAG,CAACA,SAAS,CAAC;IACxB;IAEAC,MAAM,CAACD,SAAS,GAAGC,MAAM,CAACD,SAAS,CAACG,MAAM,CAAEH,SAAU,CAAC,CAAChE,MAAM,CAAE,CAAEoE,GAAG,EAAEC,KAAK,EAAEC,GAAG,KAAMA,GAAG,CAACC,OAAO,CAAEH,GAAI,CAAC,KAAKC,KAAM,CAAC;EACtH;EAEA,MAAM1E,KAAK,GAAGC,KAAK,CAAC4E,SAAS,CAACC,KAAK,CAACC,IAAI,CAAEhF,QAAQ,CAACI,gBAAgB,CAAEmE,MAAM,CAACD,SAAS,CAACjE,IAAI,CAAE,GAAI,CAAE,CAAE,CAAC;EAErG,IAAKJ,KAAK,CAACJ,MAAM,GAAG,CAAC,EAAG;IACvBI,KAAK,CAACS,OAAO,CAAIH,IAAI,IAAM;MAC1B,IAAKA,IAAI,CAAC0E,YAAY,CAAE,aAAc,CAAC,EAAG;QACzC;MACD;MACA,MAAMC,OAAO,GAAGlF,QAAQ,CAACmF,aAAa,CAAE,KAAM,CAAC;MAC/C,MAAMC,QAAQ,GAAG5C,MAAM,CAAC6C,gBAAgB,CAAE9E,IAAK,CAAC;MAChD,MAAM+E,KAAK,GAAG,CAAIF,QAAQ,CAACG,MAAM,GAAG,CAAC,IAAIH,QAAQ,CAACI,KAAK,GAAG,CAAC,GAAKJ,QAAQ,CAACG,MAAM,GAAGH,QAAQ,CAACI,KAAK,GAAG,CAAC,GAAG,EAAE,IAAK,GAAG;MAEjHN,OAAO,CAACO,SAAS,GAAG,QAAQ;MAC5BP,OAAO,CAACQ,KAAK,CAACF,KAAK,GAAG,MAAM;MAC5BN,OAAO,CAACQ,KAAK,CAACH,MAAM,GAAG,CAAC;MACxBL,OAAO,CAACQ,KAAK,CAACC,QAAQ,GAAG,UAAU;MACnCT,OAAO,CAACQ,KAAK,CAACE,UAAU,GAAG,GAAGN,KAAK,GAAG;MAEtC/E,IAAI,CAACmF,KAAK,CAACC,QAAQ,GAAG,UAAU;MAChCpF,IAAI,CAACmF,KAAK,CAACzB,GAAG,GAAG,CAAC;MAClB1D,IAAI,CAACmF,KAAK,CAACG,IAAI,GAAG,CAAC;MACnBtF,IAAI,CAACmF,KAAK,CAACF,KAAK,GAAG,MAAM;MACzBjF,IAAI,CAACmF,KAAK,CAACH,MAAM,GAAG,MAAM;MAC1BhF,IAAI,CAACuF,YAAY,CAAE,aAAa,EAAER,KAAM,CAAC;MACzC/E,IAAI,CAAC+B,UAAU,CAACyD,YAAY,CAAEb,OAAO,EAAE3E,IAAK,CAAC;MAE7C2E,OAAO,CAACc,WAAW,CAAEzF,IAAK,CAAC;IAC5B,CAAE,CAAC;EACJ;EAEA,OAAON,KAAK;AACb;AAEA,+DAAeoE,MAAM,EAAC;AAEtBrE,QAAQ,CAACuC,gBAAgB,CAAE,kBAAkB,EAAE,MAAM8B,MAAM,CAAC,CAAE,CAAC;;;;;;;;;;;;;;;;AC5DxD,SAAS4B,KAAKA,CAAA,EAAG;EACvB,MAAMC,KAAK,GAAGhG,KAAK,CAACC,IAAI,CAAEH,QAAQ,CAACI,gBAAgB,CAAC,wCAAwC,CAAE,CAAC;EAE/FyD,OAAO,CAACsC,IAAI,CAAC,aAAaD,KAAK,CAACrG,MAAM,2BAA2B,EAAEqG,KAAK,CAAC;EAEzE,OAAOA,KAAK;AACb;;AAEA;AACA;AACA;AACA;AACO,SAASE,QAAQA,CAAA,EAAsB;EAAA,IAApBjE,MAAM,GAAAvC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,QAAQ;EAC1C,MAAMsG,KAAK,GAAGhG,KAAK,CAACC,IAAI,CAACH,QAAQ,CAACI,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAACE,MAAM,CAAE+F,IAAI,IAAK;IAC7F,MAAMjE,IAAI,GAAGiE,IAAI,CAACpB,YAAY,CAAE,MAAO,CAAC,CAACqB,IAAI,CAAC,CAAC;IAC/C,MAAMC,OAAO,GAAGnE,IAAI,KAAK,EAAE;IAC3B,MAAMoE,OAAO,GAAGpE,IAAI,CAACyC,OAAO,CAAC7E,QAAQ,CAACyC,QAAQ,CAACgE,MAAM,CAAC,KAAK,CAAC;IAC5D,MAAMC,QAAQ,GAAGtE,IAAI,CAACyC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IAExC,IAAK0B,OAAO,IAAIC,OAAO,IAAIE,QAAQ,EAAG;MACrC,OAAO,KAAK;IACb;IAEA,OAAO,IAAI;EACZ,CAAC,CAAC;EAEF,IAAKvE,MAAM,EAAG;IACb+D,KAAK,CAACxF,OAAO,CAAE2F,IAAI,IAAI;MACtB,IAAKlE,MAAM,IAAI,CAAEkE,IAAI,CAACpB,YAAY,CAAE,QAAS,CAAC,EAAG;QAChDoB,IAAI,CAAClE,MAAM,GAAGA,MAAM;MACrB;IACD,CAAE,CAAC;EACJ;EAEA0B,OAAO,CAACsC,IAAI,CAAE,gBAAgB,EAAED,KAAM,CAAC;EAEvC,OAAOA,KAAK;AACb;;;;;;;;;;;;;;ACrCmC;AACoB;AAEvD,MAAMU,cAAc,CAAC;EACpBlF,WAAWA,CAAEnB,IAAI,EAAEsG,UAAU,EAAG;IAC/B,IAAI,CAACtG,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACsG,UAAU,GAAGA,UAAU;IAE5B,IAAK,CAAE,IAAI,CAACtG,IAAI,EAAG;MAClB;IACD;;IAEA;IACA,IAAI,CAACuG,YAAY,GAAG,IAAI;;IAExB;IACA,IAAI,CAACC,YAAY,GAAG,IAAI;;IAExB;IACA,IAAI,CAACC,MAAM,GAAG,KAAK;;IAEnB;IACA,IAAI,CAACX,IAAI,GAAG,IAAI,CAAC9F,IAAI,CAAC6C,aAAa,CAAE,0BAA2B,CAAC;;IAEjE;IACA,IAAI,CAAC6D,IAAI,GAAG,IAAI,CAAC1G,IAAI,CAAC6C,aAAa,CAAE,iBAAkB,CAAC;;IAExD;IACA,IAAI,CAAC8D,UAAU,GAAG,CAAE,OAAO,EAAE,KAAK,CAAE;;IAEpC;IACA,MAAMC,cAAc,GAAKjF,CAAC,IAAM;MAC/B,IAAK,IAAI,CAACgF,UAAU,CAACnF,QAAQ,CAAEG,CAAC,CAACkF,WAAY,CAAC,IAAI,OAAO,KAAK,IAAI,CAACP,UAAU,CAACQ,cAAc,CAAC,CAAC,EAAG;QAChG,IAAK,OAAO,IAAI,CAACN,YAAY,KAAK,QAAQ,EAAG;UAC5CvE,MAAM,CAAChB,YAAY,CAAE,IAAI,CAACuF,YAAa,CAAC;UACxC,IAAI,CAACA,YAAY,GAAG,IAAI;QACzB;QAEA,IAAI,CAACD,YAAY,GAAGxF,UAAU,CAAE,MAAM,IAAI,CAACgG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAACT,UAAU,CAACU,UAAW,CAAC;MACpF;IAED,CAAC;;IAED;IACA,MAAMC,cAAc,GAAKtF,CAAC,IAAM;MAE/B,IAAK,IAAI,CAACgF,UAAU,CAACnF,QAAQ,CAAEG,CAAC,CAACkF,WAAY,CAAC,IAAI,OAAO,KAAK,IAAI,CAACP,UAAU,CAACQ,cAAc,CAAC,CAAC,EAAG;QAChG,IAAK,OAAO,IAAI,CAACP,YAAY,KAAK,QAAQ,EAAG;UAC5CtE,MAAM,CAAChB,YAAY,CAAE,IAAI,CAACsF,YAAa,CAAC;UACxC,IAAI,CAACA,YAAY,GAAG,IAAI;QACzB;QAEA,IAAI,CAACC,YAAY,GAAGvE,MAAM,CAAClB,UAAU,CAAE,MAAM,IAAI,CAACmG,UAAU,CAAC,CAAC,EAAE,IAAI,CAACZ,UAAU,CAACU,UAAW,CAAC;MAC7F;IAED,CAAC;;IAED;IACA,MAAMG,WAAW,GAAKxF,CAAC,IAAM;MAC5B,IAAI,CAACkF,WAAW,GAAGlF,CAAC,CAACkF,WAAW,IAAI,IAAI;IACzC,CAAC;;IAED;IACA,MAAMnF,OAAO,GAAKC,CAAC,IAAM;MACxB,IAAK,OAAO,KAAK,IAAI,CAAC2E,UAAU,CAACQ,cAAc,CAAC,CAAC,IAAI,CAAE,IAAI,CAACH,UAAU,CAACnF,QAAQ,CAAE,IAAI,CAACqF,WAAY,CAAC,EAAG;QACrGlF,CAAC,CAACG,cAAc,CAAC,CAAC;QAClB,IAAI,CAACsF,MAAM,CAAC,CAAC;MACd;MAEA,IAAK,IAAI,CAACP,WAAW,EAAG;QACvB,OAAO,IAAI,CAACA,WAAW;MACxB;IACD,CAAC;;IAED;IACA,MAAMQ,OAAO,GAAGA,CAAA,KAAM;MACrB,IAAIzF,MAAM,GAAGnC,QAAQ,CAAC6H,aAAa;MAEnC,OAAQ1F,MAAM,IAAIA,MAAM,CAACG,UAAU,EAAG;QACrC,IAAKH,MAAM,KAAK,IAAI,CAAC5B,IAAI,EAAG;UAC3B;QACD;QAEA4B,MAAM,GAAGA,MAAM,CAACG,UAAU;MAC3B;MAEA,IAAI,CAACmF,UAAU,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAClH,IAAI,CAACgC,gBAAgB,CAAE,cAAc,EAAE4E,cAAe,CAAC;IAC5D,IAAI,CAAC5G,IAAI,CAACgC,gBAAgB,CAAE,cAAc,EAAEiF,cAAe,CAAC;IAC5D,IAAI,CAACjH,IAAI,CAACgC,gBAAgB,CAAE,WAAW,EAAEmF,WAAY,CAAC;IACtD1H,QAAQ,CAAC8H,IAAI,CAACvF,gBAAgB,CAAE,OAAO,EAAEqF,OAAO,EAAE,IAAK,CAAC;IAExD,IAAK,IAAI,CAACX,IAAI,EAAG;MAChB,IAAI,CAACA,IAAI,CAAC1E,gBAAgB,CAAE,OAAO,EAAE,IAAI,CAACkF,UAAU,CAACM,IAAI,CAAE,IAAK,CAAE,CAAC;IACpE;IAEA,IAAK,IAAI,CAAC1B,IAAI,EAAG;MAChB,IAAI,CAACA,IAAI,CAAC9D,gBAAgB,CAAE,OAAO,EAAEN,OAAQ,CAAC;IAC/C;EACD;;EAEA;AACD;AACA;EACC0F,MAAMA,CAAA,EAAG;IACR,IAAI,CAACX,MAAM,GAAG,IAAI,CAACS,UAAU,CAAC,CAAC,GAAG,IAAI,CAACH,QAAQ,CAAC,CAAC;EAClD;;EAEA;AACD;AACA;EACCA,QAAQA,CAAA,EAAG;IACV,IAAK,CAAE,IAAI,CAACN,MAAM,EAAG;MACpB,IAAI,CAACA,MAAM,GAAG,IAAI;MAClB,IAAI,CAACH,UAAU,CAACY,UAAU,CAAE,IAAK,CAAC;MAElC,IAAK,IAAI,CAAClH,IAAI,CAACoC,SAAS,CAACqF,QAAQ,CAAE,sBAAuB,CAAC,EAAG;QAC7D,IAAI,CAACnB,UAAU,CAACtG,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,IAAI,CAACiE,UAAU,CAACoB,eAAgB,CAAC;MACtE;MAEA,IAAI,CAAC1H,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,IAAI,CAACiE,UAAU,CAACqB,iBAAkB,CAAC;MAC5D,IAAI,CAAC3H,IAAI,CAACiD,aAAa,CAAE,IAAI2E,KAAK,CAAE,mBAAoB,CAAE,CAAC;IAC5D;EACD;;EAEA;AACD;AACA;EACCV,UAAUA,CAAA,EAAG;IACZ,IAAK,IAAI,CAACT,MAAM,EAAG;MAClB,IAAI,CAACA,MAAM,GAAG,KAAK;MACnB,IAAI,CAACzG,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,IAAI,CAAC8C,UAAU,CAACqB,iBAAkB,CAAC;MAE/D,IAAK,IAAI,CAAC3H,IAAI,CAACoC,SAAS,CAACqF,QAAQ,CAAE,sBAAuB,CAAC,EAAG;QAC7D,IAAI,CAACnB,UAAU,CAACtG,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,IAAI,CAAC8C,UAAU,CAACoB,eAAgB,CAAC;MACzE;MAEA,IAAI,CAAC1H,IAAI,CAACiD,aAAa,CAAE,IAAI2E,KAAK,CAAE,qBAAsB,CAAE,CAAC;IAC9D;EACD;AACD;AAEA,MAAMC,QAAQ,CAAC;EACd1G,WAAWA,CAAA,EAAG;IACb,IAAI,CAACnB,IAAI,GAAGP,QAAQ,CAACoD,aAAa,CAAE,WAAY,CAAC;IAEjD,IAAK,CAAE,IAAI,CAAC7C,IAAI,EAAG;MAClB;IACD;;IAEA;IACA,IAAI,CAACuB,IAAI,GAAG,IAAI;;IAEhB;IACA,IAAI,CAACuG,WAAW,GAAG,IAAI,CAAC9H,IAAI,CAACK,OAAO,CAACyH,WAAW,IAAI,OAAO;;IAE3D;IACA,IAAI,CAACd,UAAU,GAAG,GAAG;;IAErB;IACA,IAAI,CAACW,iBAAiB,GAAG,wBAAwB;IACjD,IAAI,CAACD,eAAe,GAAG,uBAAuB;;IAE9C;IACA,IAAI,CAACK,GAAG,GAAG,IAAI,CAAC/H,IAAI,CAAC6C,aAAa,CAAE,gBAAiB,CAAC;IACtD,IAAI,CAACmF,QAAQ,GAAG,IAAI,CAAChI,IAAI,CAAC6C,aAAa,CAAE,2BAA4B,CAAC;IACtE,IAAI,CAACoF,SAAS,GAAG,IAAI,CAACjI,IAAI,CAACH,gBAAgB,CAAE,2BAA4B,CAAC;IAC1E,IAAI,CAACqI,QAAQ,GAAG,IAAI,CAAClI,IAAI,CAAC6C,aAAa,CAAE,sBAAuB,CAAC;IACjE,IAAI,CAACsF,MAAM,GAAG,IAAI,CAACnI,IAAI,CAAC6C,aAAa,CAAE,mBAAoB,CAAC;IAE5D,IAAI,CAACuF,UAAU,GAAG,IAAI,CAACpI,IAAI,CAAC6C,aAAa,CAAE,wBAAyB,CAAC;IACrE,IAAI,CAACwF,UAAU,GAAG,IAAI,CAACrI,IAAI,CAAC6C,aAAa,CAAE,wBAAyB,CAAC;IACrE,IAAI,CAACyF,SAAS,GAAG,IAAI,CAACtI,IAAI,CAAC6C,aAAa,CAAE,uBAAwB,CAAC;;IAEnE;IACA,IAAI,CAAC0F,gBAAgB,GAAG,mBAAmB;;IAE3C;IACA,IAAI,CAACC,OAAO,GAAG7I,KAAK,CAACC,IAAI,CAAE,IAAI,CAACI,IAAI,CAACH,gBAAgB,CAAE,sGAAuG,CAAE,CAAC,CAAC4I,GAAG,CAAIzI,IAAI,IAAM;MAClL,OAAO,IAAIqG,cAAc,CAAErG,IAAI,EAAE,IAAK,CAAC;IACxC,CAAE,CAAC;;IAEH;IACA,IAAI,CAAC0I,QAAQ,GAAG,IAAItC,wCAAQ,CAAE,IAAI,CAACpG,IAAI,EAAE;MACxC2I,SAAS,EAAE;QACVC,EAAE,EAAE,CAAC;QACLC,IAAI,EAAE;MACP,CAAC;MACDC,OAAO,EAAE;QACRC,OAAO,EAAE,UAAU;QACnBC,MAAM,EAAE,kBAAkB;QAC1BC,QAAQ,EAAE,oBAAoB;QAC9BvF,GAAG,EAAE,eAAe;QACpBwF,MAAM,EAAE,mBAAmB;QAC3BC,MAAM,EAAE,kBAAkB;QAC1BC,SAAS,EAAE,sBAAsB;QACjCC,MAAM,EAAE;MACT;IACD,CAAE,CAAC;IACH,IAAI,CAACX,QAAQ,CAACY,IAAI,CAAC,CAAC;IACpB,IAAI,CAACZ,QAAQ,CAACa,MAAM,CAAE,IAAI,CAACb,QAAS,CAAC;;IAErC;IACA,MAAMc,OAAO,GAAK7H,CAAC,IAAM;MACxB,QAASA,CAAC,CAAC8H,GAAG;QACb,KAAK,QAAQ;UACZ,IAAK,IAAI,CAAClI,IAAI,EAAG;YAChB,IAAI,CAACmI,OAAO,CAAE,EAAG,CAAC;UACnB;UACA;MACF;IACD,CAAC;;IAED;IACA,MAAMhI,OAAO,GAAKC,CAAC,IAAM;MACxB,IAAIC,MAAM,GAAGD,CAAC,CAACC,MAAM;MAErB,OAAQA,MAAM,CAACG,UAAU,EAAG;QAC3B,IAAKH,MAAM,CAAC3B,OAAO,CAAC,yBAAyB,CAAC,IAC1C2B,MAAM,CAAC3B,OAAO,CAAC,aAAa,CAAC,IAC7B2B,MAAM,CAAC3B,OAAO,CAAC,iBAAiB,CAAC,IACjC2B,MAAM,CAAC3B,OAAO,CAAC,2BAA2B,CAAC,EAAE;UAChD;QACD;QACA2B,MAAM,GAAGA,MAAM,CAACG,UAAU;MAC3B;MAEA,IAAI,CAACmF,UAAU,CAAC,CAAC;IAClB,CAAC;IAED/H,0DAAO,CAAE,IAAI,EAAE,IAAI,CAACgJ,MAAO,CAAC;IAE5B,IAAI,CAACnI,IAAI,CAACgC,gBAAgB,CAAE,OAAO,EAAEwH,OAAQ,CAAC;IAE9C,IAAI,CAACnB,UAAU,CAACrG,gBAAgB,CAAE,OAAO,EAAIL,CAAC,IAAM;MACnDA,CAAC,CAACgI,eAAe,CAAC,CAAC;MACnB,IAAI,CAACC,UAAU,CAAE,QAAS,CAAC;IAC5B,CAAE,CAAC;IACH,IAAI,CAAC1B,QAAQ,CAAClG,gBAAgB,CAAE,OAAO,EAAIL,CAAC,IAAM;MACjDA,CAAC,CAACgI,eAAe,CAAC,CAAC;MACnB,IAAI,CAACC,UAAU,CAAE,MAAO,CAAC;IAC1B,CAAE,CAAC;IACH,IAAI,CAACtB,SAAS,CAACtG,gBAAgB,CAAE,OAAO,EAAIL,CAAC,IAAM;MAClDA,CAAC,CAACgI,eAAe,CAAC,CAAC;MACnB,IAAI,CAACD,OAAO,CAAC,CAAC;IACf,CAAE,CAAC;IAEHjK,QAAQ,CAAC8H,IAAI,CAACvF,gBAAgB,CAAE,OAAO,EAAEN,OAAQ,CAAC;IAElD,IAAI,CAAC0G,UAAU,CAACpG,gBAAgB,CAAC,YAAY,EAAEL,CAAC,IAAI;MACnD,IAAI,IAAI,CAACJ,IAAI,KAAK,QAAQ,EAAE;QAC3B,IAAI,CAAC2F,UAAU,CAAC,CAAC;MAClB;IACD,CAAC,CAAC;IAEF,IAAI,CAACe,SAAS,CAAC9H,OAAO,CAAC0J,IAAI,IAAI;MAC9BA,IAAI,CAAChH,aAAa,CAAC,2BAA2B,CAAC,CAACb,gBAAgB,CAAC,YAAY,EAAE,MAAM;QACpF,IAAI,CAACkF,UAAU,CAAC,CAAC;MAClB,CAAC,CAAC;IACH,CAAC,CAAC;EACH;;EAEA;AACD;AACA;AACA;AACA;EACCA,UAAUA,CAAE9H,OAAO,EAAG;IACrB,IAAI,CAACoJ,OAAO,CAACrI,OAAO,CAAI2J,MAAM,IAAM;MACnC,IAAK,CAAE1K,OAAO,IAAI0K,MAAM,KAAK1K,OAAO,EAAG;QACtC0K,MAAM,CAAC5C,UAAU,CAAC,CAAC;MACpB;IACD,CAAE,CAAC;IAEH,IAAK,CAAEjF,MAAM,CAAC8H,UAAU,CAAE,IAAI,CAACxB,gBAAiB,CAAC,CAACtI,OAAO,EAAG;MAC3D,IAAI,CAACyJ,OAAO,CAAE,EAAG,CAAC;IACnB;EACD;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCA,OAAOA,CAAA,EAAc;IAAA,IAAZnI,IAAI,GAAAlC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;IAEjB,IAAK,IAAI,CAACkC,IAAI,IAAIA,IAAI,KAAK,IAAI,CAACA,IAAI,EAAG;MAEtC,MAAMyI,QAAQ,GAAG,IAAI,CAACzI,IAAI;MAE1B,IAAK,QAAQ,KAAKyI,QAAQ,EAAG;QAC5B7K,0DAAO,CAAE,IAAI,EAAE,IAAI,CAACgJ,MAAO,CAAC;QAE5B,MAAM8B,eAAe,GAAGA,CAAA,KAAM;UAC7B,IAAI,CAAC9B,MAAM,CAAC+B,MAAM,GAAG,IAAI;UACzB,IAAI,CAAC/B,MAAM,CAACgC,mBAAmB,CAAE,eAAe,EAAEF,eAAgB,CAAC;UAEnE,IAAK,CAAE,IAAI,CAACjK,IAAI,CAACoC,SAAS,CAACqF,QAAQ,CAAE,0BAA2B,CAAC,EAAG;YACnE,IAAI,CAACM,GAAG,CAAC3F,SAAS,CAACoB,MAAM,CAAE,uBAAwB,CAAC;UACrD;QACD,CAAC;QAED,IAAI,CAAC2E,MAAM,CAACnG,gBAAgB,CAAE,eAAe,EAAEiI,eAAgB,CAAC;MACjE;MAEA,IAAI,CAACjK,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,kBAAmBwG,QAAQ,EAAI,CAAC;MAC5DvK,QAAQ,CAAC2K,eAAe,CAAChI,SAAS,CAACoB,MAAM,CAAE,mBAAmB,EAAE,sBAAuBwG,QAAQ,EAAI,CAAC;IACrG;IAEA,IAAI,CAACzI,IAAI,GAAGA,IAAI;IAEhB,IAAKA,IAAI,EAAG;MACX,IAAK,QAAQ,KAAK,IAAI,CAACA,IAAI,EAAG;QAC7BjB,yDAAM,CAAE,IAAI,EAAE,IAAI,CAAC6H,MAAO,CAAC;QAC3B,IAAI,CAACA,MAAM,CAAC5H,eAAe,CAAE,QAAS,CAAC;QACvC,IAAI,CAAC4H,MAAM,CAACtF,aAAa,CAAE,OAAQ,CAAC,CAACwH,KAAK,CAAC,CAAC;QAE5C,IAAK,CAAE,IAAI,CAACrK,IAAI,CAACoC,SAAS,CAACqF,QAAQ,CAAE,0BAA2B,CAAC,EAAG;UACnE,IAAI,CAACM,GAAG,CAAC3F,SAAS,CAACC,GAAG,CAAE,uBAAwB,CAAC;QAClD;MACD;MAEAtB,UAAU,CAAE,MAAM;QACjB,IAAI,CAACf,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,kBAAmB,IAAI,CAACd,IAAI,EAAI,CAAC;QAC1D9B,QAAQ,CAAC2K,eAAe,CAAChI,SAAS,CAACC,GAAG,CAAE,mBAAmB,EAAE,sBAAuBd,IAAI,EAAI,CAAC;MAC9F,CAAC,EAAE,EAAG,CAAC;IACR;IAEA,IAAI,CAACvB,IAAI,CAACiD,aAAa,CAAE,IAAI2E,KAAK,CAAE,eAAe,EAAE;MAAExE,MAAM,EAAE;IAAK,CAAE,CAAE,CAAC;EAC1E;;EAEA;AACD;AACA;AACA;AACA;AACA;EACCwG,UAAUA,CAAErI,IAAI,EAAG;IAClB,IAAI,CAACmI,OAAO,CAAE,IAAI,CAACnI,IAAI,KAAKA,IAAI,GAAG,EAAE,GAAGA,IAAK,CAAC;EAC/C;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACCuF,cAAcA,CAAA,EAAG;IAChB,IAAK,OAAO,KAAK,IAAI,CAACgB,WAAW,IAAI7F,MAAM,CAAC8H,UAAU,CAAE,IAAI,CAACxB,gBAAiB,CAAC,CAACtI,OAAO,EAAG;MACzF,OAAO,OAAO;IACf;IAEA,OAAO,IAAI,CAAC6H,WAAW;EACxB;EAEAwC,oBAAoBA,CAAA,EAAG;IACtB;IACA;EAAA;AAEF;AAEA,+DAAe,IAAIzC,QAAQ,CAAC,CAAC;;;;;;;;;;;;;;;;AC9W+B;AAC5D;;AAEO,MAAM2C,UAAU,CAAC;EACvB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EACCrJ,WAAWA,CAAEnB,IAAI,EAAEyK,IAAI,EAAG;IACzB,IAAI,CAACzK,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACyK,IAAI,GAAG;MACXlJ,IAAI,EAAE,MAAM;MAAE;MACdmF,IAAI,EAAE,4BAA4B;MAClCgE,OAAO,EAAE,+BAA+B;MACxCC,OAAO,EAAE,uBAAuB;MAChCC,KAAK,EAAE,oBAAoB;MAC3BC,MAAM,EAAE,IAAI;MACZ,GAAGJ;IACJ,CAAC;IAED,IAAK,CAAE,IAAI,CAACzK,IAAI,EAAG;MAClB;IACD;IAEA,IAAI,CAAC8K,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACpE,IAAI,GAAG,IAAI,CAAC1G,IAAI,CAAC6C,aAAa,CAAE,IAAI,CAAC4H,IAAI,CAAC/D,IAAK,CAAC;IACrD,IAAI,CAACgE,OAAO,GAAG,IAAI,CAAC1K,IAAI,CAAC6C,aAAa,CAAE,IAAI,CAAC4H,IAAI,CAACC,OAAQ,CAAC;IAC3D,IAAI,CAACC,OAAO,GAAG,IAAI,CAAC3K,IAAI,CAAC6C,aAAa,CAAE,IAAI,CAAC4H,IAAI,CAACE,OAAQ,CAAC;IAC3D,IAAI,CAACC,KAAK,GAAGjL,KAAK,CAACC,IAAI,CAAE,IAAI,CAACI,IAAI,CAACH,gBAAgB,CAAE,IAAI,CAAC4K,IAAI,CAACG,KAAM,CAAE,CAAC,CAACnC,GAAG,CAAI3C,IAAI,IAAM;MACzF,IAAIiF,EAAE,GAAG,IAAI;MACb,IAAInJ,MAAM,GAAG,IAAI;MAEjB,IAAKkE,IAAI,CAACkF,IAAI,EAAG;QAChBD,EAAE,GAAGjF,IAAI,CAACkF,IAAI,CAACxG,KAAK,CAAE,CAAE,CAAC;QACzB5C,MAAM,GAAGnC,QAAQ,CAACwL,cAAc,CAAEF,EAAG,CAAC;MACvC;MAEA,OAAO;QAAEA,EAAE;QAAEjF,IAAI;QAAElE;MAAO,CAAC;IAC5B,CAAE,CAAC;IAEHK,MAAM,CAACD,gBAAgB,CAAE,QAAQ,EAAE,IAAI,CAACkJ,QAAQ,CAAC1D,IAAI,CAAE,IAAK,CAAE,CAAC;IAC/D,IAAI,CAACmD,OAAO,CAAC3I,gBAAgB,CAAE,QAAQ,EAAE,IAAI,CAACkJ,QAAQ,CAAC1D,IAAI,CAAE,IAAK,CAAE,CAAC;IAErE,IAAK,MAAM,KAAK,IAAI,CAACiD,IAAI,CAAClJ,IAAI,EAAG;MAChC,IAAI,CAACmJ,OAAO,CAAC1I,gBAAgB,CAAE,OAAO,EAAE,IAAI,CAACmJ,YAAY,CAAC3D,IAAI,CAAE,IAAK,CAAE,CAAC;MACxE,IAAI,CAACd,IAAI,CAAC1E,gBAAgB,CAAE,OAAO,EAAE,IAAI,CAACoJ,SAAS,CAAC5D,IAAI,CAAE,IAAK,CAAE,CAAC;IACnE,CAAC,MAAM;MACN,IAAI,CAACkD,OAAO,CAAC1I,gBAAgB,CAAE,aAAa,EAAE,IAAI,CAACqJ,aAAa,CAAC7D,IAAI,CAAE,IAAK,CAAE,CAAC;MAC/E,IAAI,CAACkD,OAAO,CAAC1I,gBAAgB,CAAE,WAAW,EAAE,IAAI,CAACsJ,UAAU,CAAC9D,IAAI,CAAE,IAAK,CAAE,CAAC;MAC1E,IAAI,CAACd,IAAI,CAAC1E,gBAAgB,CAAE,aAAa,EAAE,IAAI,CAACuJ,UAAU,CAAC/D,IAAI,CAAE,IAAK,CAAE,CAAC;MACzE,IAAI,CAACd,IAAI,CAAC1E,gBAAgB,CAAE,WAAW,EAAE,IAAI,CAACsJ,UAAU,CAAC9D,IAAI,CAAE,IAAK,CAAE,CAAC;IACxE;IAEA,IAAK,IAAI,CAACiD,IAAI,CAACI,MAAM,EAAG;MACvB,MAAMW,oBAAoB,GAAGA,CAAA,KAAM;QAClC,MAAM;UAAEC,SAAS;UAAEC;QAAa,CAAC,GAAGjM,QAAQ,CAAC2K,eAAe;QAC5D,MAAMuB,SAAS,GAAGF,SAAS,GAAKC,YAAY,GAAG,CAAG,CAAC,CAAC;QACpD,MAAME,SAAS,GAAG,IAAI,CAAChB,KAAK,CAC1B7K,MAAM,CAAI8L,IAAI,IAAMA,IAAI,CAACjK,MAAO,CAAC,CACjCkK,MAAM,CACN,CAAEF,SAAS,EAAEC,IAAI,MAAQ;UACxB,GAAGD,SAAS;UACZ,CAAEC,IAAI,CAACd,EAAE,GAAIc,IAAI,CAACjK,MAAM,GAAGmK,IAAI,CAACC,GAAG,CAAEH,IAAI,CAACjK,MAAM,CAAC6B,qBAAqB,CAAC,CAAC,CAACC,GAAG,GAAG+H,SAAS,GAAGE,SAAU,CAAC,GAAG;QAC1G,CAAC,CAAE,EACH,CAAC,CACF,CAAC;QAEF,MAAMzL,OAAO,GAAG+L,MAAM,CAACC,IAAI,CAAEN,SAAU,CAAC,CAACE,MAAM,CAC9C,CAAE5L,OAAO,EAAE6K,EAAE,KAAQ,CAAE7K,OAAO,IAAI,CAAE0L,SAAS,CAAE1L,OAAO,CAAE,IAAI0L,SAAS,CAAEb,EAAE,CAAE,GAAGa,SAAS,CAAE1L,OAAO,CAAE,GAAG6K,EAAE,GAAG7K,OAAS,EACnH,IACD,CAAC;QAED,IAAI,CAAC0K,KAAK,CAACzK,OAAO,CAAI0L,IAAI,IAAM;UAC/B,IAAK3L,OAAO,IAAI2L,IAAI,CAACd,EAAE,KAAK7K,OAAO,EAAG;YACrC2L,IAAI,CAAC/F,IAAI,CAAC1D,SAAS,CAACC,GAAG,CAAE,2BAA4B,CAAC;UACvD,CAAC,MAAM;YACNwJ,IAAI,CAAC/F,IAAI,CAAC1D,SAAS,CAACoB,MAAM,CAAE,2BAA4B,CAAC;UAC1D;QACD,CAAE,CAAC;MACJ,CAAC;MAED,MAAM2I,aAAa,GAAGA,CAAA,KAAM;QAC3B,IAAK,IAAI,CAACnM,IAAI,CAACyD,qBAAqB,CAAC,CAAC,CAACC,GAAG,IAAI,CAAC,EAAG;UACjD,IAAI,CAAC1D,IAAI,CAACmF,KAAK,CAACH,MAAM,GAAG,GAAI,IAAI,CAAChF,IAAI,CAACoM,YAAY,IAAK;UACxD,IAAI,CAACpM,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,qBAAsB,CAAC;QACjD,CAAC,MAAM;UACN,IAAI,CAACrC,IAAI,CAACmF,KAAK,CAACH,MAAM,GAAG,EAAE;UAC3B,IAAI,CAAChF,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,qBAAsB,CAAC;QACpD;MACD,CAAC;MAEDvB,MAAM,CAACD,gBAAgB,CAAE,QAAQ,EAAEuI,uEAAQ,CAAEiB,oBAAoB,EAAE,GAAI,CAAE,CAAC;MAC1EvJ,MAAM,CAACD,gBAAgB,CAAE,QAAQ,EAAEuI,uEAAQ,CAAE4B,aAAa,EAAE,CAAE,CAAE,CAAC;MACjEX,oBAAoB,CAAC,CAAC;MACtBW,aAAa,CAAC,CAAC;IAChB;IAEA,MAAME,WAAW,GAAGA,CAAA,KAAM;MACzB;MACA,IAAKC,QAAQ,IAAIA,QAAQ,CAACtM,IAAI,CAACoC,SAAS,CAACqF,QAAQ,CAAE,oBAAqB,CAAC,EAAG;QAC3E6E,QAAQ,CAAC5D,QAAQ,CAAC6D,MAAM,CAAC,CAAC;QAE1B,IAAK,OAAO,IAAI,CAACC,qBAAqB,KAAK,QAAQ,EAAG;UACrDvL,YAAY,CAAE,IAAI,CAACuL,qBAAsB,CAAC;UAC1C,OAAO,IAAI,CAACA,qBAAqB;QAClC;QAEA,IAAI,CAACA,qBAAqB,GAAGzL,UAAU,CAAE,MAAM;UAC9CuL,QAAQ,CAAC5D,QAAQ,CAAC+D,QAAQ,CAAC,CAAC;UAC5B,OAAO,IAAI,CAACD,qBAAqB;QAClC,CAAC,EAAE,IAAK,CAAC;MACV;IACD,CAAC;IACD,IAAI,CAAC5B,KAAK,CAAC7K,MAAM,CAAI8L,IAAI,IAAMA,IAAI,CAACjK,MAAO,CAAC,CAACzB,OAAO,CAAI0L,IAAI,IAAMA,IAAI,CAAC/F,IAAI,CAAC9D,gBAAgB,CAAE,OAAO,EAAEqK,WAAY,CAAE,CAAC;IAEtH,IAAIK,YAAY,GAAGzK,MAAM,CAACC,QAAQ,CAAC8I,IAAI,GAAGe,IAAI,CAACY,GAAG,CAAE,CAAC,EAAE,IAAI,CAAC/B,KAAK,CAACnC,GAAG,CAAIoD,IAAI,IAAMA,IAAI,CAACb,IAAK,CAAC,CAAC1G,OAAO,CAAErC,MAAM,CAACC,QAAQ,CAAC8I,IAAK,CAAE,CAAC,GAAG,CAAC;IACpI,IAAI,CAAC4B,QAAQ,CAAEF,YAAa,CAAC;IAC7B,IAAI,CAACxB,QAAQ,CAAC,CAAC;EAChB;;EAEA;AACD;AACA;EACCG,aAAaA,CAAA,EAAG;IACf,IAAI,CAACwB,cAAc,GAAGC,WAAW,CAAE,MAAM;MACxC,IAAI,CAACnC,OAAO,CAACoC,QAAQ,CAAE;QAAEzH,IAAI,EAAE,IAAI,CAACqF,OAAO,CAACqC,UAAU,GAAG;MAAE,CAAE,CAAC;MAE9D,IAAK,IAAI,CAACtC,OAAO,CAACuC,QAAQ,EAAG;QAC5B,IAAI,CAAC3B,UAAU,CAAC,CAAC;MAClB;IACD,CAAC,EAAE,EAAG,CAAC;EACR;;EAEA;AACD;AACA;EACCC,UAAUA,CAAA,EAAG;IACZ,IAAI,CAACsB,cAAc,GAAGC,WAAW,CAAE,MAAM;MACxC,IAAI,CAACnC,OAAO,CAACoC,QAAQ,CAAE;QAAEzH,IAAI,EAAEyG,IAAI,CAACY,GAAG,CAAE,CAAC,EAAE,IAAI,CAAChC,OAAO,CAACqC,UAAU,GAAG,CAAE;MAAE,CAAE,CAAC;MAE7E,IAAK,IAAI,CAACtG,IAAI,CAACuG,QAAQ,EAAG;QACzB,IAAI,CAAC3B,UAAU,CAAC,CAAC;MAClB;IACD,CAAC,EAAE,EAAG,CAAC;EACR;;EAEA;AACD;AACA;EACCA,UAAUA,CAAA,EAAG;IACZ,IAAK,OAAO,IAAI,CAACuB,cAAc,KAAK,QAAQ,EAAG;MAC9CK,aAAa,CAAE,IAAI,CAACL,cAAe,CAAC;IACrC;IAEA,IAAI,CAACA,cAAc,GAAG,IAAI;EAC3B;EAEA3B,QAAQA,CAAA,EAAG;IACV,MAAMiC,SAAS,GAAG,IAAI,CAACvC,KAAK,CAAE,CAAC,CAAE,CAAC9E,IAAI;IACtC,MAAMsH,QAAQ,GAAG,IAAI,CAACxC,KAAK,CAAE,IAAI,CAACA,KAAK,CAACtL,MAAM,GAAG,CAAC,CAAE,CAACwG,IAAI;IAEzD,IAAKqH,SAAS,CAACE,UAAU,GAAG,IAAI,CAAC1C,OAAO,CAACqC,UAAU,IAAI,CAAC,EAAG;MAC1D;MACA,IAAI,CAACtG,IAAI,CAACuG,QAAQ,GAAG,IAAI;MACzB,IAAI,CAACjN,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,sBAAuB,CAAC;IACrD,CAAC,MAAM;MACN;MACA,IAAI,CAACkD,IAAI,CAACnG,eAAe,CAAE,UAAW,CAAC;MACvC,IAAI,CAACP,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,sBAAuB,CAAC;IAClD;IAEA,IAAK,IAAI,CAACsI,OAAO,CAACqC,UAAU,GAAG,IAAI,CAACrC,OAAO,CAAC2C,WAAW,IAAIF,QAAQ,CAACC,UAAU,GAAGD,QAAQ,CAACE,WAAW,GAAG,CAAC,EAAG;MAC3G;MACA,IAAI,CAAC5C,OAAO,CAACuC,QAAQ,GAAG,IAAI;MAC5B,IAAI,CAACjN,IAAI,CAACoC,SAAS,CAACoB,MAAM,CAAE,uBAAwB,CAAC;IACtD,CAAC,MAAM;MACN;MACA,IAAI,CAACkH,OAAO,CAACnK,eAAe,CAAE,UAAW,CAAC;MAC1C,IAAI,CAACP,IAAI,CAACoC,SAAS,CAACC,GAAG,CAAE,uBAAwB,CAAC;IACnD;EACD;EAEAkL,QAAQA,CAAA,EAAG;IACV,MAAM3B,SAAS,GAAG,IAAI,CAAChB,KAAK,CAACnC,GAAG,CAAIoD,IAAI,IAAME,IAAI,CAACC,GAAG,CAAEH,IAAI,CAACwB,UAAU,GAAG,IAAI,CAAC1C,OAAO,CAACqC,UAAW,CAAE,CAAC;IAErG,OAAOpB,SAAS,CAACtH,OAAO,CAAEyH,IAAI,CAACyB,GAAG,CAAE,GAAG5B,SAAU,CAAE,CAAC;EACrD;EAEAgB,QAAQA,CAAExI,KAAK,EAAwB;IAAA,IAAtBR,QAAQ,GAAAvE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,QAAQ;IACnC,IAAK+E,KAAK,IAAI,IAAI,CAACwG,KAAK,CAACtL,MAAM,EAAG;MACjC,IAAI,CAACqL,OAAO,CAACoC,QAAQ,CAAE;QACtBzH,IAAI,EAAE,IAAI,CAACsF,KAAK,CAAExG,KAAK,CAAE,CAACiJ,UAAU;QACpCzJ;MACD,CAAE,CAAC;IACJ,CAAC,MAAM,IAAKkH,QAAQ,GAAG,CAAC,EAAG;MAC1BoC,aAAa,CAAEpC,QAAS,CAAC;MACzBA,QAAQ,GAAG,IAAI;IAChB;EACD;EAEAM,SAASA,CAAA,EAAG;IACX,IAAI,CAACwB,QAAQ,CAAEb,IAAI,CAAC0B,KAAK,CAAE1B,IAAI,CAACY,GAAG,CAAE,IAAI,CAACY,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAE,CAAE,CAAE,CAAC;EAClE;EAEApC,YAAYA,CAAA,EAAG;IACd,IAAI,CAACyB,QAAQ,CAAEb,IAAI,CAAC0B,KAAK,CAAE1B,IAAI,CAACyB,GAAG,CAAE,IAAI,CAACD,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC3C,KAAK,CAACtL,MAAM,GAAG,CAAE,CAAE,CAAE,CAAC;EACtF;AACD;AAEAG,QAAQ,CAACuC,gBAAgB,CAAE,kBAAkB,EAAE,MAAM;EACpDvC,QAAQ,CAACI,gBAAgB,CAAE,cAAe,CAAC,CAACM,OAAO,CAAIH,IAAI,IAAM;IAChEsD,OAAO,CAACoK,GAAG,CAAE,IAAIlD,UAAU,CAAExK,IAAI,EAAE;MAAE,GAAGA,IAAI,CAACK;IAAQ,CAAE,CAAE,CAAC;EAC3D,CAAE,CAAC;AACJ,CAAE,CAAC;;;;;;;;;;;;;;;ACzNI,SAASsN,SAASA,CAAEnL,IAAI,EAA6C;EAAA,IAA3CoL,YAAY,GAAAvO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EAAA,IAAEwO,OAAO,GAAAxO,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EACxE,IAAI;IACHyO,SAAS,CAACH,SAAS,CAACI,SAAS,CAAEvL,IAAK,CAAC;IAErC,IAAK,IAAI,YAAYM,WAAW,EAAG;MAClC,MAAMkL,OAAO,GAAGvO,QAAQ,CAACmF,aAAa,CAAC,KAAK,CAAC;MAC7CoJ,OAAO,CAAC5L,SAAS,CAACC,GAAG,CAAC,gBAAgB,CAAC;MACvC2L,OAAO,CAACvI,WAAW,CAAEhG,QAAQ,CAACwO,cAAc,CAAEL,YAAa,CAAE,CAAC;MAE9D,IAAI,CAACxL,SAAS,CAACC,GAAG,CAAC,qBAAqB,CAAC;MACzC,IAAI,CAACoD,WAAW,CAAEuI,OAAQ,CAAC;MAE3BjN,UAAU,CAAE,MAAM;QACjB,IAAI,CAACqB,SAAS,CAACoB,MAAM,CAAC,qBAAqB,CAAC;QAC5CwK,OAAO,CAACjM,UAAU,CAACmM,WAAW,CAAEF,OAAQ,CAAC;MAC1C,CAAC,EAAEH,OAAQ,CAAC;IACb;EACD,CAAC,CAAC,OAAQxK,KAAK,EAAG;IACjBC,OAAO,CAACC,KAAK,CAAEF,KAAM,CAAC;EACvB;AACD;AAEA5D,QAAQ,CAACuC,gBAAgB,CAAE,OAAO,EAAE,UAASL,CAAC,EAAE;EAC/C,IAAI3B,IAAI,GAAG2B,CAAC,CAACC,MAAM;EAEnB,OAAQ5B,IAAI,IAAIA,IAAI,CAAC+B,UAAU,EAAG;IACjC,IAAK/B,IAAI,CAACC,OAAO,CAAE,yBAA0B,CAAC,EAAG;MAChD0B,CAAC,CAACG,cAAc,CAAC,CAAC;MAClB,OAAO6L,SAAS,CAAClJ,IAAI,CAAEzE,IAAI,EAAEA,IAAI,CAAC6B,IAAK,CAAC;IACzC;IAEA7B,IAAI,GAAGA,IAAI,CAAC+B,UAAU;EACvB;AACD,CAAE,CAAC;;;;;;UCjCH;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;ACN4D;AACN;AACV;AACA;AACE;AACF;AAErC,MAAMsM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yE","sources":["webpack://wdg/./node_modules/headroom.js/dist/headroom.js","webpack://wdg/./assets/js/base/_tabIndex.js","webpack://wdg/./assets/js/base/_throttle.js","webpack://wdg/./assets/js/modules/fetch.js","webpack://wdg/./assets/js/modules/fitvid.js","webpack://wdg/./assets/js/modules/links.js","webpack://wdg/./assets/js/modules/masthead.js","webpack://wdg/./assets/js/modules/section-nav.js","webpack://wdg/./assets/js/modules/share.js","webpack://wdg/webpack/bootstrap","webpack://wdg/webpack/runtime/define property getters","webpack://wdg/webpack/runtime/hasOwnProperty shorthand","webpack://wdg/webpack/runtime/make namespace object","webpack://wdg/./assets/js/scripts.js"],"sourcesContent":["/*!\n * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Headroom = factory());\n}(this, function () { 'use strict';\n\n function isBrowser() {\n return typeof window !== \"undefined\";\n }\n\n /**\n * Used to detect browser support for adding an event listener with options\n * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n */\n function passiveEventsSupported() {\n var supported = false;\n\n try {\n var options = {\n // eslint-disable-next-line getter-return\n get passive() {\n supported = true;\n }\n };\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n supported = false;\n }\n\n return supported;\n }\n\n function isSupported() {\n return !!(\n isBrowser() &&\n function() {}.bind &&\n \"classList\" in document.documentElement &&\n Object.assign &&\n Object.keys &&\n requestAnimationFrame\n );\n }\n\n function isDocument(obj) {\n return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9\n }\n\n function isWindow(obj) {\n // `obj === window` or `obj instanceof Window` is not sufficient,\n // as the obj may be the window of an iframe.\n return obj && obj.document && isDocument(obj.document);\n }\n\n function windowScroller(win) {\n var doc = win.document;\n var body = doc.body;\n var html = doc.documentElement;\n\n return {\n /**\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {Number} the scroll height of the document in pixels\n */\n scrollHeight: function() {\n return Math.max(\n body.scrollHeight,\n html.scrollHeight,\n body.offsetHeight,\n html.offsetHeight,\n body.clientHeight,\n html.clientHeight\n );\n },\n\n /**\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {Number} the height of the viewport in pixels\n */\n height: function() {\n return win.innerHeight || html.clientHeight || body.clientHeight;\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n scrollY: function() {\n if (win.pageYOffset !== undefined) {\n return win.pageYOffset;\n }\n\n return (html || body.parentNode || body).scrollTop;\n }\n };\n }\n\n function elementScroller(element) {\n return {\n /**\n * @return {Number} the scroll height of the element in pixels\n */\n scrollHeight: function() {\n return Math.max(\n element.scrollHeight,\n element.offsetHeight,\n element.clientHeight\n );\n },\n\n /**\n * @return {Number} the height of the element in pixels\n */\n height: function() {\n return Math.max(element.offsetHeight, element.clientHeight);\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the element has scrolled along the Y-axis\n */\n scrollY: function() {\n return element.scrollTop;\n }\n };\n }\n\n function createScroller(element) {\n return isWindow(element) ? windowScroller(element) : elementScroller(element);\n }\n\n /**\n * @param element EventTarget\n */\n function trackScroll(element, options, callback) {\n var isPassiveSupported = passiveEventsSupported();\n var rafId;\n var scrolled = false;\n var scroller = createScroller(element);\n var lastScrollY = scroller.scrollY();\n var details = {};\n\n function update() {\n var scrollY = Math.round(scroller.scrollY());\n var height = scroller.height();\n var scrollHeight = scroller.scrollHeight();\n\n // reuse object for less memory churn\n details.scrollY = scrollY;\n details.lastScrollY = lastScrollY;\n details.direction = scrollY > lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset[details.direction];\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded =\n details.distance > options.tolerance[details.direction];\n\n callback(details);\n\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported\n ? { passive: true, capture: false }\n : false;\n\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n\n return {\n destroy: function() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeUpDown(t) {\n return t === Object(t) ? t : { down: t, up: t };\n }\n\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n\n this.elem = elem;\n this.tolerance = normalizeUpDown(this.tolerance);\n this.offset = normalizeUpDown(this.offset);\n this.initialised = false;\n this.frozen = false;\n }\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true;\n\n // defer event registration to handle browser\n // potentially restoring previous scroll position\n setTimeout(\n function(self) {\n self.scrollTracker = trackScroll(\n self.scroller,\n { offset: self.offset, tolerance: self.tolerance },\n self.update.bind(self)\n );\n },\n 100,\n this\n );\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n\n top: function() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n\n notTop: function() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n\n bottom: function() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n\n notBottom: function() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n\n shouldUnpin: function(details) {\n var scrollingDown = details.direction === \"down\";\n\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n\n shouldPin: function(details) {\n var scrollingUp = details.direction === \"up\";\n\n return (scrollingUp && details.toleranceExceeded) || details.top;\n },\n\n addClass: function(className) {\n this.elem.classList.add.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n removeClass: function(className) {\n this.elem.classList.remove.apply(\n this.elem.classList,\n this.classes[className].split(\" \")\n );\n },\n\n hasClass: function(className) {\n return this.classes[className].split(\" \").every(function(cls) {\n return this.classList.contains(cls);\n }, this.elem);\n },\n\n update: function(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n\n /**\n * Default options\n * @type {Object}\n */\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n\n Headroom.cutsTheMustard = isSupported();\n\n return Headroom;\n\n}));\n","/**\n * Array of selectors that are tab index capable\n */\n\n// prettier-ignore\nexport const tabCapable = [\n\t'select',\n\t'input',\n\t'textarea',\n\t'button',\n\t'a',\n\t'iframe',\n\t'object',\n\t'embed',\n\t'*[contenteditable]',\n\t'*[tabindex]',\n];\n\n/**\n * Disable nodes tabIndex while saving the previous tabIndex value in node.dataset\n *\n * @param {string} exclude query selector to filter disabling items\n * @param {HTMLElement} scope Defaults to document\n * @returns {array}\n */\nexport function disable( exclude = null, scope = document ) {\n\tlet nodes = Array.from( scope.querySelectorAll( tabCapable.join( ', ' ) ) );\n\n\tif ( exclude ) {\n\t\tnodes = nodes.filter( ( node ) => ! node.matches( exclude ) && ! node.closest( exclude ) );\n\t}\n\n\tnodes.forEach( ( node ) => {\n\t\tif ( node.tabIndex && node.tabIndex !== '-1' ) {\n\t\t\tnode.dataset.tabIndex = node.tabIndex;\n\t\t}\n\n\t\tnode.tabIndex = '-1';\n\t} );\n\n\treturn nodes;\n}\n\n/**\n * Enable nodes tabIndex by restoring a previously saved tabIndex or removing it entirely\n *\n * @param {string} exclude query selector to filter disabling items\n * @param {HTMLElement} scope Defaults to document\n * @returns {array}\n */\nexport function enable( exclude = null, scope = document ) {\n\tlet nodes = Array.from( scope.querySelectorAll( tabCapable.join( ', ' ) ) );\n\n\tif ( exclude ) {\n\t\tnodes = nodes.filter( ( node ) => ! node.matches( exclude ) && ! node.closest( exclude ) );\n\t}\n\n\tnodes.forEach( ( node ) => {\n\t\tif ( node.dataset.tabIndex ) {\n\t\t\tnode.tabIndex = node.dataset.tabIndex;\n\t\t} else {\n\t\t\tnode.removeAttribute( 'tabIndex' );\n\t\t}\n\t} );\n\n\treturn nodes;\n}\n\nexport default {\n\ttabCapable,\n\tenable,\n\tdisable,\n};\n","export default function (fn, time = 50) {\n\tlet timer = null;\n\n\tfunction throttledFn(...args) {\n\t\tif (!timer) {\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tfn(...args);\n\t\t\t\ttimer = null;\n\t\t\t}, time)\n\t\t}\n\t}\n\n\tthrottledFn.cancel = () => {\n\t\tclearTimeout(timer);\n\t\ttimer = null;\n\t}\n\n\treturn throttledFn;\n}\n","export class Watch {\n\tconstructor( node, selector ) {\n\t\tthis.node = node;\n\t\tthis.selector = selector;\n\t\tthis.trigger = this.node.dataset.fetch || 'a';\n\t\tthis.mode = [ 'pushState', 'replaceState' ].includes( this.node.dataset.fetchMode ) ? this.node.dataset.fetchMode : 'pushState';\n\n\t\tconst onClick = (e) => {\n\t\t\tlet target = e.target;\n\n\t\t\twhile ( target && target !== node ) {\n\t\t\t\tif ( target.matches( this.trigger ) && target.href ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.fetch( target.href );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\t\t}\n\n\t\tthis.node.addEventListener( 'click', onClick );\n\n\t\tif ( this.mode ) {\n\t\t\t// handle back button\n\t\t\twindow.addEventListener( 'popstate', () => this.fetch( location.href, false ) );\n\t\t}\n\t}\n\n\tasync fetch( href, history = true ) {\n\t\ttry {\n\t\t\tthis.node.classList.add( 'is-loading' );\n\n\t\t\tif ( history && this.mode ) {\n\t\t\t\twindow.history[ this.mode ]( {}, '', href );\n\t\t\t}\n\n\t\t\tconst response = await fetch( href );\n\t\t\tconst html = await response.text();\n\t\t\tconst parser = new DOMParser();\n\t\t\tconst doc = parser.parseFromString( html, 'text/html' );\n\t\t\tconst node = doc.querySelector( this.selector );\n\n\t\t\tif ( ! node instanceof HTMLElement ) {\n\t\t\t\tthrow new Error( 'target node not found' );\n\t\t\t}\n\n\t\t\tthis.node.innerHTML = node.innerHTML;\n\t\t\tthis.node.dispatchEvent( new CustomEvent( 'wdg:fetch:refresh', { bubbles: true, detail: this } ) );\n\t\t} catch ( fault ) {\n\t\t\tconsole.error( href, fault );\n\t\t\tlocation.href = href;\n\t\t} finally {\n\t\t\tthis.node.classList.remove( 'is-loading' );\n\n\t\t\tif ( this.node.getBoundingClientRect().top < 0 ) {\n\t\t\t\tthis.node.scrollIntoView( { behavior: 'smooth' } );\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function watch( selector = '[data-fetch]' ) {\n\tconst nodes = Array.from( document.querySelectorAll( selector ) );\n\n\tif ( nodes.length > 0 ) {\n\t\tif ( nodes.length > 1 ) {\n\t\t\tconsole.error( 'Multiple nodes of the same selector are not supported. Please use something unique.' );\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Watch( nodes[0], selector );\n\t}\n}\n\ndocument.addEventListener( 'DOMContentLoaded', () => watch() );\n","/**\n * this implementation of fitvid doesn't force items to 16/9. It measures them and then keeps the ratio unique per embed\n *\n * @var selectors (string|array) additional selectors search for in the DOM\n * @return nodes - array of matched items\n */\n\nexport function fitvid( selectors ) {\n\tconst config = {\n\t\tselectors: [\n\t\t\t'iframe[src*=\"player.vimeo.com\"]:not(.wp-block-embed iframe)',\n\t\t\t'iframe[src*=\"youtube.com\"]:not(.wp-block-embed iframe)',\n\t\t\t'iframe[src*=\"youtube-nocookie.com\"]:not(.wp-block-embed iframe)',\n\t\t\t'object:not(.wp-block-embed object)',\n\t\t\t'embed:not(.wp-block-embed embed)'\n\t\t]\n\t};\n\n\tif ( selectors ) {\n\t\tif ( !Array.isArray( selectors ) ) {\n\t\t\tselectors = [selectors];\n\t\t}\n\n\t\tconfig.selectors = config.selectors.concat( selectors ).filter( ( val, index, arr ) => arr.indexOf( val ) === index );\n\t}\n\n\tconst nodes = Array.prototype.slice.call( document.querySelectorAll( config.selectors.join( ',' ) ) );\n\n\tif ( nodes.length > 0 ) {\n\t\tnodes.forEach( ( node ) => {\n\t\t\tif ( node.getAttribute( 'data-fitvid' ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst wrapper = document.createElement( 'div' );\n\t\t\tconst computed = window.getComputedStyle( node );\n\t\t\tconst ratio = ( ( computed.height > 0 && computed.width > 0 ) ? computed.height / computed.width : 9 / 16 ) * 100;\n\n\t\t\twrapper.className = 'fitvid';\n\t\t\twrapper.style.width = '100%';\n\t\t\twrapper.style.height = 0;\n\t\t\twrapper.style.position = 'relative';\n\t\t\twrapper.style.paddingTop = `${ratio}%`;\n\n\t\t\tnode.style.position = 'absolute';\n\t\t\tnode.style.top = 0;\n\t\t\tnode.style.left = 0;\n\t\t\tnode.style.width = '100%';\n\t\t\tnode.style.height = '100%';\n\t\t\tnode.setAttribute( 'data-fitvid', ratio );\n\t\t\tnode.parentNode.insertBefore( wrapper, node );\n\n\t\t\twrapper.appendChild( node );\n\t\t} );\n\t}\n\n\treturn nodes;\n}\n\nexport default fitvid;\n\ndocument.addEventListener( 'DOMContentLoaded', () => fitvid() );\n","export function empty() {\n\tconst links = Array.from( document.querySelectorAll('a[href=\"\"], a[href=\"#\"], a:not([href])') );\n\n\tconsole.info(`There are ${links.length} empty links on this page`, links);\n\n\treturn links;\n}\n\n/**\n *\n * @returns\n */\nexport function external( target = '_blank' ) {\n\tconst links = Array.from(document.querySelectorAll('a[href]:not([target])')).filter((link) => {\n\t\tconst href = link.getAttribute( 'href' ).trim();\n\t\tconst isEmpty = href === '';\n\t\tconst isLocal = href.indexOf(document.location.origin) === 0;\n\t\tconst isAnchor = href.indexOf('#') === 0;\n\n\t\tif ( isEmpty || isLocal || isAnchor ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif ( target ) {\n\t\tlinks.forEach( link => {\n\t\t\tif ( target && ! link.getAttribute( 'target' ) ) {\n\t\t\t\tlink.target = target;\n\t\t\t}\n\t\t} );\n\t}\n\n\tconsole.info( 'External Links', links )\n\n\treturn links;\n}\n","import Headroom from 'headroom.js';\nimport { enable, disable } from '../base/_tabIndex.js';\n\nclass MastheadParent {\n\tconstructor( node, controller ) {\n\t\tthis.node = node;\n\t\tthis.controller = controller;\n\n\t\tif ( ! this.node ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// stores the timeout id of the enter hover intent\n\t\tthis.enterTimeout = null;\n\n\t\t// stores the timeout of the leave hover intent\n\t\tthis.leaveTimeout = null;\n\n\t\t// is the current item active\n\t\tthis.active = false;\n\n\t\t// reference the direct child link in case we need to preventDefault on click\n\t\tthis.link = this.node.querySelector( ':scope > .masthead__link' );\n\n\t\t// does this item have a back button on the mobile menu\n\t\tthis.back = this.node.querySelector( '.masthead__back' );\n\n\t\t// what types of pointer events are 'hoverable'\n\t\tthis.hoverTypes = [ 'mouse', 'pen' ];\n\n\t\t// trigger the enter hover intent depending on the pointer type\n\t\tconst onPointerEnter = ( e ) => {\n\t\t\tif ( this.hoverTypes.includes( e.pointerType ) && 'hover' === this.controller.getPointerMode() ) {\n\t\t\t\tif ( typeof this.leaveTimeout === 'number' ) {\n\t\t\t\t\twindow.clearTimeout( this.leaveTimeout );\n\t\t\t\t\tthis.leaveTimeout = null;\n\t\t\t\t}\n\n\t\t\t\tthis.enterTimeout = setTimeout( () => this.activate(), this.controller.hoverDelay );\n\t\t\t}\n\n\t\t};\n\n\t\t// trigger the leave hover intent depending on the pointer type\n\t\tconst onPointerLeave = ( e ) => {\n\n\t\t\tif ( this.hoverTypes.includes( e.pointerType ) && 'hover' === this.controller.getPointerMode() ) {\n\t\t\t\tif ( typeof this.enterTimeout === 'number' ) {\n\t\t\t\t\twindow.clearTimeout( this.enterTimeout );\n\t\t\t\t\tthis.enterTimeout = null;\n\t\t\t\t}\n\n\t\t\t\tthis.leaveTimeout = window.setTimeout( () => this.deactivate(), this.controller.hoverDelay );\n\t\t\t}\n\n\t\t};\n\n\t\t// store the last pointer type on pointerup so we can potentially preventDefault onClick\n\t\tconst onPointerUp = ( e ) => {\n\t\t\tthis.pointerType = e.pointerType ?? null;\n\t\t};\n\n\t\t// if not in hover mode, or we're not a hoverable type, simply toggle instead of following the link\n\t\tconst onClick = ( e ) => {\n\t\t\tif ( 'hover' !== this.controller.getPointerMode() || ! this.hoverTypes.includes( this.pointerType ) ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.toggle();\n\t\t\t}\n\n\t\t\tif ( this.pointerType ) {\n\t\t\t\tdelete this.pointerType;\n\t\t\t}\n\t\t};\n\n\t\t// when a element outside of this node is focused, close this menu\n\t\tconst onFocus = () => {\n\t\t\tlet target = document.activeElement;\n\n\t\t\twhile ( target && target.parentNode ) {\n\t\t\t\tif ( target === this.node ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\n\t\t\tthis.deactivate();\n\t\t};\n\n\t\tthis.node.addEventListener( 'pointerenter', onPointerEnter );\n\t\tthis.node.addEventListener( 'pointerleave', onPointerLeave );\n\t\tthis.node.addEventListener( 'pointerup', onPointerUp );\n\t\tdocument.body.addEventListener( 'focus', onFocus, true );\n\n\t\tif ( this.back ) {\n\t\t\tthis.back.addEventListener( 'click', this.deactivate.bind( this ) );\n\t\t}\n\n\t\tif ( this.link ) {\n\t\t\tthis.link.addEventListener( 'click', onClick );\n\t\t}\n\t}\n\n\t/**\n\t * Toggle this dropdown menu state\n\t */\n\ttoggle() {\n\t\tthis.active ? this.deactivate() : this.activate();\n\t}\n\n\t/**\n\t * Activate this dropdown menu state\n\t */\n\tactivate() {\n\t\tif ( ! this.active ) {\n\t\t\tthis.active = true;\n\t\t\tthis.controller.deactivate( this );\n\n\t\t\tif ( this.node.classList.contains( 'masthead__item--mega' ) ) {\n\t\t\t\tthis.controller.node.classList.add( this.controller.megaActiveClass );\n\t\t\t}\n\n\t\t\tthis.node.classList.add( this.controller.parentActiveClass );\n\t\t\tthis.node.dispatchEvent( new Event( 'masthead:activate' ) );\n\t\t}\n\t}\n\n\t/**\n\t * Deactivate this dropdown menu state\n\t */\n\tdeactivate() {\n\t\tif ( this.active ) {\n\t\t\tthis.active = false;\n\t\t\tthis.node.classList.remove( this.controller.parentActiveClass );\n\n\t\t\tif ( this.node.classList.contains( 'masthead__item--mega' ) ) {\n\t\t\t\tthis.controller.node.classList.remove( this.controller.megaActiveClass );\n\t\t\t}\n\n\t\t\tthis.node.dispatchEvent( new Event( 'masthead:deactivate' ) );\n\t\t}\n\t}\n}\n\nclass Masthead {\n\tconstructor() {\n\t\tthis.node = document.querySelector( '.masthead' );\n\n\t\tif ( ! this.node ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// no mode by default (can be search|menu)\n\t\tthis.mode = null;\n\n\t\t// what mouse/pen mode do we want to operate under - hover or click\n\t\tthis.pointerMode = this.node.dataset.pointerMode || 'hover';\n\n\t\t// the delay used for hover-intent\n\t\tthis.hoverDelay = 200;\n\n\t\t// the item active class\n\t\tthis.parentActiveClass = 'masthead__item--active';\n\t\tthis.megaActiveClass = 'masthead--active-mega';\n\n\t\t// node references for interaction\n\t\tthis.nav = this.node.querySelector( '.masthead__nav' );\n\t\tthis.navInner = this.node.querySelector( '.masthead__dropdown-inner' );\n\t\tthis.megaMenus = this.node.querySelectorAll( '.masthead__dropdown--mega' );\n\t\tthis.menuIcon = this.node.querySelector( '.masthead__menu-icon' );\n\t\tthis.search = this.node.querySelector( '.masthead__search' );\n\n\t\tthis.searchWrap = this.node.querySelector( '.masthead__search-wrap' );\n\t\tthis.searchIcon = this.node.querySelector( '.masthead__search-icon' );\n\t\tthis.closeIcon = this.node.querySelector( '.masthead__close-icon' );\n\n\t\t// at what media query is the mobile menu triggered - update this value to match whatever is used in _masthead.scss\n\t\tthis.mobileMediaQuery = '(max-width: 48em)';\n\n\t\t// initialize menu items that are parents\n\t\tthis.parents = Array.from( this.node.querySelectorAll( '.masthead__item--depth-0.masthead__item--has-children, .masthead__item--depth-0.masthead__item--mega' ) ).map( ( node ) => {\n\t\t\treturn new MastheadParent( node, this );\n\t\t} );\n\n\t\t// headroom sticky hide configuration - @see https://www.npmjs.com/package/headroom.js\n\t\tthis.headroom = new Headroom( this.node, {\n\t\t\ttolerance: {\n\t\t\t\tup: 7,\n\t\t\t\tdown: 5,\n\t\t\t},\n\t\t\tclasses: {\n\t\t\t\tinitial: 'masthead',\n\t\t\t\tpinned: 'masthead--pinned',\n\t\t\t\tunpinned: 'masthead--unpinned',\n\t\t\t\ttop: 'masthead--top',\n\t\t\t\tnotTop: 'masthead--not-top',\n\t\t\t\tbottom: 'masthead--bottom',\n\t\t\t\tnotBottom: 'masthead--not-bottom',\n\t\t\t\tfrozen: 'masthead--frozen',\n\t\t\t},\n\t\t} );\n\t\tthis.headroom.init();\n\t\tthis.headroom.update( this.headroom );\n\n\t\t// deactivate the mode of the menu on escape key\n\t\tconst onKeyUp = ( e ) => {\n\t\t\tswitch ( e.key ) {\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tif ( this.mode ) {\n\t\t\t\t\t\tthis.setMode( '' );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\n\t\t// deactivate mode when clicking outside of the masthead\n\t\tconst onClick = ( e ) => {\n\t\t\tlet target = e.target;\n\n\t\t\twhile ( target.parentNode ) {\n\t\t\t\tif ( target.matches('.masthead__search-label')\n\t\t\t\t\t|| target.matches('.searchform')\n\t\t\t\t\t|| target.matches('.masthead__item')\n\t\t\t\t\t|| target.matches('.masthead__dropdown-inner')) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttarget = target.parentNode;\n\t\t\t}\n\n\t\t\tthis.deactivate();\n\t\t};\n\n\t\tdisable( null, this.search );\n\n\t\tthis.node.addEventListener( 'keyup', onKeyUp );\n\n\t\tthis.searchIcon.addEventListener( 'click', ( e ) => {\n\t\t\te.stopPropagation();\n\t\t\tthis.toggleMode( 'search' );\n\t\t} );\n\t\tthis.menuIcon.addEventListener( 'click', ( e ) => {\n\t\t\te.stopPropagation();\n\t\t\tthis.toggleMode( 'menu' );\n\t\t} );\n\t\tthis.closeIcon.addEventListener( 'click', ( e ) => {\n\t\t\te.stopPropagation();\n\t\t\tthis.setMode();\n\t\t} );\n\n\t\tdocument.body.addEventListener( 'click', onClick );\n\n\t\tthis.searchWrap.addEventListener('mouseleave', e => {\n\t\t\tif (this.mode === 'search') {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t});\n\n\t\tthis.megaMenus.forEach(menu => {\n\t\t\tmenu.querySelector('.masthead__dropdown-inner').addEventListener('mouseleave', () => {\n\t\t\t\tthis.deactivate();\n\t\t\t})\n\t\t});\n\t}\n\n\t/**\n\t * Deactivate all dropdown menus (optionally exclude one menu)\n\t *\n\t * @param {MastheadParent} exclude\n\t */\n\tdeactivate( exclude ) {\n\t\tthis.parents.forEach( ( parent ) => {\n\t\t\tif ( ! exclude || parent !== exclude ) {\n\t\t\t\tparent.deactivate();\n\t\t\t}\n\t\t} );\n\n\t\tif ( ! window.matchMedia( this.mobileMediaQuery ).matches ) {\n\t\t\tthis.setMode( '' );\n\t\t}\n\t}\n\n\t/**\n\t * Set the interactive mode of the masthead\n\t *\n\t * @param {string} mode search|menu\n\t * @returns void\n\t */\n\tsetMode( mode = '' ) {\n\n\t\tif ( this.mode && mode !== this.mode ) {\n\n\t\t\tconst lastMode = this.mode;\n\n\t\t\tif ( 'search' === lastMode ) {\n\t\t\t\tdisable( null, this.search );\n\n\t\t\t\tconst onTransitionEnd = () => {\n\t\t\t\t\tthis.search.hidden = true;\n\t\t\t\t\tthis.search.removeEventListener( 'transitionend', onTransitionEnd );\n\n\t\t\t\t\tif ( ! this.node.classList.contains( 'masthead--search-overlay' ) ) {\n\t\t\t\t\t\tthis.nav.classList.remove( 'masthead__nav--search' );\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.search.addEventListener( 'transitionend', onTransitionEnd );\n\t\t\t}\n\n\t\t\tthis.node.classList.remove( `masthead--mode-${ lastMode }` );\n\t\t\tdocument.documentElement.classList.remove( 'has-masthead-mode', `has-masthead--mode-${ lastMode }` );\n\t\t}\n\n\t\tthis.mode = mode;\n\n\t\tif ( mode ) {\n\t\t\tif ( 'search' === this.mode ) {\n\t\t\t\tenable( null, this.search );\n\t\t\t\tthis.search.removeAttribute( 'hidden' );\n\t\t\t\tthis.search.querySelector( 'input' ).focus();\n\n\t\t\t\tif ( ! this.node.classList.contains( 'masthead--search-overlay' ) ) {\n\t\t\t\t\tthis.nav.classList.add( 'masthead__nav--search' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.node.classList.add( `masthead--mode-${ this.mode }` );\n\t\t\t\tdocument.documentElement.classList.add( 'has-masthead-mode', `has-masthead--mode-${ mode }` );\n\t\t\t}, 10 );\n\t\t}\n\n\t\tthis.node.dispatchEvent( new Event( 'masthead:mode', { detail: this } ) );\n\t}\n\n\t/**\n\t * Toggle the interactive mode of the masthead\n\t *\n\t * @param {string} mode search|menu\n\t * @returns void\n\t */\n\ttoggleMode( mode ) {\n\t\tthis.setMode( this.mode === mode ? '' : mode );\n\t}\n\n\t/**\n\t * Gets the mode of the pointerType of how the dropdowns should react to pointer events\n\t *\n\t * - mobile view should always be click based even with mouse/pen pointer events\n\t * - update the breakpoint\n\t *\n\t * @returns string hover|click\n\t */\n\tgetPointerMode() {\n\t\tif ( 'hover' === this.pointerMode && window.matchMedia( this.mobileMediaQuery ).matches ) {\n\t\t\treturn 'click';\n\t\t}\n\n\t\treturn this.pointerMode;\n\t}\n\n\thandleSearchMouseout() {\n\t\t// Add your mouseout logic here\n\t\t// For example, you might want to close search suggestions or reset state\n\t}\n}\n\nexport default new Masthead();\n","import throttle from '../../../assets/js/base/_throttle.js';\n// import masthead from '@wdg/masthead';\n\nexport class SectionNav {\n\t/**\n\t * Initialize a new Sections element\n\t *\n\t * @param {HTMLElement} node - the node that contains the root scrolling element\n\t * @param {object} opts -\n\t * \t- mode: snap, normal\n\t * - sticky: true\n\t */\n\tconstructor( node, opts ) {\n\t\tthis.node = node;\n\t\tthis.opts = {\n\t\t\tmode: 'snap', // snap to next item or free scroll\n\t\t\tback: '.section-nav__scroll--back',\n\t\t\tforward: '.section-nav__scroll--forward',\n\t\t\tcontent: '.section-nav__content',\n\t\t\titems: '.section-nav__item',\n\t\t\tsticky: true,\n\t\t\t...opts,\n\t\t};\n\n\t\tif ( ! this.node ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.interval = null;\n\t\tthis.back = this.node.querySelector( this.opts.back );\n\t\tthis.forward = this.node.querySelector( this.opts.forward );\n\t\tthis.content = this.node.querySelector( this.opts.content );\n\t\tthis.items = Array.from( this.node.querySelectorAll( this.opts.items ) ).map( ( link ) => {\n\t\t\tlet id = null;\n\t\t\tlet target = null;\n\n\t\t\tif ( link.hash ) {\n\t\t\t\tid = link.hash.slice( 1 );\n\t\t\t\ttarget = document.getElementById( id );\n\t\t\t}\n\n\t\t\treturn { id, link, target };\n\t\t} );\n\n\t\twindow.addEventListener( 'resize', this.setState.bind( this ) );\n\t\tthis.content.addEventListener( 'scroll', this.setState.bind( this ) );\n\n\t\tif ( 'snap' === this.opts.mode ) {\n\t\t\tthis.forward.addEventListener( 'click', this.forwardIndex.bind( this ) );\n\t\t\tthis.back.addEventListener( 'click', this.backIndex.bind( this ) );\n\t\t} else {\n\t\t\tthis.forward.addEventListener( 'pointerdown', this.scrollForward.bind( this ) );\n\t\t\tthis.forward.addEventListener( 'pointerup', this.scrollStop.bind( this ) );\n\t\t\tthis.back.addEventListener( 'pointerdown', this.scrollBack.bind( this ) );\n\t\t\tthis.back.addEventListener( 'pointerup', this.scrollStop.bind( this ) );\n\t\t}\n\n\t\tif ( this.opts.sticky ) {\n\t\t\tconst onScrollActiveAnchor = () => {\n\t\t\t\tconst { scrollTop, clientHeight } = document.documentElement;\n\t\t\t\tconst absTarget = scrollTop + ( clientHeight / 3 ); // prettier-ignore\n\t\t\t\tconst distances = this.items\n\t\t\t\t\t.filter( ( item ) => item.target )\n\t\t\t\t\t.reduce(\n\t\t\t\t\t\t( distances, item ) => ( {\n\t\t\t\t\t\t\t...distances,\n\t\t\t\t\t\t\t[ item.id ]: item.target ? Math.abs( item.target.getBoundingClientRect().top + scrollTop - absTarget ) : null,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t{}\n\t\t\t\t\t);\n\n\t\t\t\tconst closest = Object.keys( distances ).reduce(\n\t\t\t\t\t( closest, id ) => ( ! closest || ! distances[ closest ] || distances[ id ] < distances[ closest ] ? id : closest ),\n\t\t\t\t\tnull\n\t\t\t\t);\n\n\t\t\t\tthis.items.forEach( ( item ) => {\n\t\t\t\t\tif ( closest && item.id === closest ) {\n\t\t\t\t\t\titem.link.classList.add( 'section-nav__item--active' );\n\t\t\t\t\t} else {\n\t\t\t\t\t\titem.link.classList.remove( 'section-nav__item--active' );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\tconst onScrollFixed = () => {\n\t\t\t\tif ( this.node.getBoundingClientRect().top <= 0 ) {\n\t\t\t\t\tthis.node.style.height = `${ this.node.offsetHeight }px`;\n\t\t\t\t\tthis.node.classList.add( 'section-nav--sticky' );\n\t\t\t\t} else {\n\t\t\t\t\tthis.node.style.height = '';\n\t\t\t\t\tthis.node.classList.remove( 'section-nav--sticky' );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\twindow.addEventListener( 'scroll', throttle( onScrollActiveAnchor, 100 ) );\n\t\t\twindow.addEventListener( 'scroll', throttle( onScrollFixed, 5 ) );\n\t\t\tonScrollActiveAnchor();\n\t\t\tonScrollFixed();\n\t\t}\n\n\t\tconst onLinkClick = () => {\n\t\t\t// freeze the masthead temporarily while we click on TOC links cause to prevent the masthead overlaying the TOC while interacting with it\n\t\t\tif ( masthead && masthead.node.classList.contains( 'masthead--unpinned' ) ) {\n\t\t\t\tmasthead.headroom.freeze();\n\n\t\t\t\tif ( typeof this.mastheadFreezeTimeout === 'number' ) {\n\t\t\t\t\tclearTimeout( this.mastheadFreezeTimeout );\n\t\t\t\t\tdelete this.mastheadFreezeTimeout;\n\t\t\t\t}\n\n\t\t\t\tthis.mastheadFreezeTimeout = setTimeout( () => {\n\t\t\t\t\tmasthead.headroom.unfreeze();\n\t\t\t\t\tdelete this.mastheadFreezeTimeout;\n\t\t\t\t}, 1500 );\n\t\t\t}\n\t\t};\n\t\tthis.items.filter( ( item ) => item.target ).forEach( ( item ) => item.link.addEventListener( 'click', onLinkClick ) );\n\n\t\tlet initialIndex = window.location.hash ? Math.max( 0, this.items.map( ( item ) => item.hash ).indexOf( window.location.hash ) ) : 0;\n\t\tthis.setIndex( initialIndex );\n\t\tthis.setState();\n\t}\n\n\t/**\n\t * Scroll forward the scrollable content area\n\t */\n\tscrollForward() {\n\t\tthis.scrollInterval = setInterval( () => {\n\t\t\tthis.content.scrollTo( { left: this.content.scrollLeft + 5 } );\n\n\t\t\tif ( this.forward.disabled ) {\n\t\t\t\tthis.scrollStop();\n\t\t\t}\n\t\t}, 10 );\n\t}\n\n\t/**\n\t * Scroll backwards the scrollable content area\n\t */\n\tscrollBack() {\n\t\tthis.scrollInterval = setInterval( () => {\n\t\t\tthis.content.scrollTo( { left: Math.max( 0, this.content.scrollLeft - 5 ) } );\n\n\t\t\tif ( this.back.disabled ) {\n\t\t\t\tthis.scrollStop();\n\t\t\t}\n\t\t}, 10 );\n\t}\n\n\t/**\n\t * Stop the scrolling interval if it's active\n\t */\n\tscrollStop() {\n\t\tif ( typeof this.scrollInterval === 'number' ) {\n\t\t\tclearInterval( this.scrollInterval );\n\t\t}\n\n\t\tthis.scrollInterval = null;\n\t}\n\n\tsetState() {\n\t\tconst firstItem = this.items[ 0 ].link;\n\t\tconst lastItem = this.items[ this.items.length - 1 ].link;\n\n\t\tif ( firstItem.offsetLeft - this.content.scrollLeft >= 0 ) {\n\t\t\t// first item is is view\n\t\t\tthis.back.disabled = true;\n\t\t\tthis.node.classList.remove( 'section-nav--fade-in' );\n\t\t} else {\n\t\t\t// first item is outside the scroll area\n\t\t\tthis.back.removeAttribute( 'disabled' );\n\t\t\tthis.node.classList.add( 'section-nav--fade-in' );\n\t\t}\n\n\t\tif ( this.content.scrollLeft + this.content.offsetWidth >= lastItem.offsetLeft + lastItem.offsetWidth - 1 ) {\n\t\t\t// the last item is fully in view\n\t\t\tthis.forward.disabled = true;\n\t\t\tthis.node.classList.remove( 'section-nav--fade-out' );\n\t\t} else {\n\t\t\t// last item is outside the scroll area\n\t\t\tthis.forward.removeAttribute( 'disabled' );\n\t\t\tthis.node.classList.add( 'section-nav--fade-out' );\n\t\t}\n\t}\n\n\tgetIndex() {\n\t\tconst distances = this.items.map( ( item ) => Math.abs( item.offsetLeft - this.content.scrollLeft ) );\n\n\t\treturn distances.indexOf( Math.min( ...distances ) );\n\t}\n\n\tsetIndex( index, behavior = 'smooth' ) {\n\t\tif ( index <= this.items.length ) {\n\t\t\tthis.content.scrollTo( {\n\t\t\t\tleft: this.items[ index ].offsetLeft,\n\t\t\t\tbehavior,\n\t\t\t} );\n\t\t} else if ( interval > 0 ) {\n\t\t\tclearInterval( interval );\n\t\t\tinterval = null;\n\t\t}\n\t}\n\n\tbackIndex() {\n\t\tthis.setIndex( Math.round( Math.max( this.getIndex() - 1, 0 ) ) );\n\t}\n\n\tforwardIndex() {\n\t\tthis.setIndex( Math.round( Math.min( this.getIndex() + 1, this.items.length - 1 ) ) );\n\t}\n}\n\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\tdocument.querySelectorAll( '.section-nav' ).forEach( ( node ) => {\n\t\tconsole.log( new SectionNav( node, { ...node.dataset } ) );\n\t} );\n} );\n","export function clipboard( text, confirmation = 'Copied!', timeout = 4000 ) {\n\ttry {\n\t\tnavigator.clipboard.writeText( text );\n\n\t\tif ( this instanceof HTMLElement ) {\n\t\t\tconst confirm = document.createElement('div');\n\t\t\tconfirm.classList.add('share__confirm');\n\t\t\tconfirm.appendChild( document.createTextNode( confirmation ) );\n\n\t\t\tthis.classList.add('share__link--copied');\n\t\t\tthis.appendChild( confirm );\n\n\t\t\tsetTimeout( () => {\n\t\t\t\tthis.classList.remove('share__link--copied');\n\t\t\t\tconfirm.parentNode.removeChild( confirm );\n\t\t\t}, timeout );\n\t\t}\n\t} catch ( fault ) {\n\t\tconsole.error( fault );\n\t}\n}\n\ndocument.addEventListener( 'click', function(e) {\n\tlet node = e.target;\n\n\twhile ( node && node.parentNode ) {\n\t\tif ( node.matches( '.share__item--clipboard' ) ) {\n\t\t\te.preventDefault();\n\t\t\treturn clipboard.call( node, node.href );\n\t\t}\n\n\t\tnode = node.parentNode;\n\t}\n} );\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export { default as masthead } from './modules/masthead.js';\nexport { SectionNav } from './modules/section-nav.js';\nexport * as share from './modules/share.js';\nexport * as links from './modules/links.js';\nexport * as fitvid from './modules/fitvid.js';\nexport * as fetch from './modules/fetch.js';\n\nexport const blocks = {}; // this is necessary for webpack's export modules - see webpack.config.js\n"],"names":["tabCapable","disable","exclude","arguments","length","undefined","scope","document","nodes","Array","from","querySelectorAll","join","filter","node","matches","closest","forEach","tabIndex","dataset","enable","removeAttribute","fn","time","timer","throttledFn","_len","args","_key","setTimeout","cancel","clearTimeout","Watch","constructor","selector","trigger","fetch","mode","includes","fetchMode","onClick","e","target","href","preventDefault","parentNode","addEventListener","window","location","history","classList","add","response","html","text","parser","DOMParser","doc","parseFromString","querySelector","HTMLElement","Error","innerHTML","dispatchEvent","CustomEvent","bubbles","detail","fault","console","error","remove","getBoundingClientRect","top","scrollIntoView","behavior","watch","fitvid","selectors","config","isArray","concat","val","index","arr","indexOf","prototype","slice","call","getAttribute","wrapper","createElement","computed","getComputedStyle","ratio","height","width","className","style","position","paddingTop","left","setAttribute","insertBefore","appendChild","empty","links","info","external","link","trim","isEmpty","isLocal","origin","isAnchor","Headroom","MastheadParent","controller","enterTimeout","leaveTimeout","active","back","hoverTypes","onPointerEnter","pointerType","getPointerMode","activate","hoverDelay","onPointerLeave","deactivate","onPointerUp","toggle","onFocus","activeElement","body","bind","contains","megaActiveClass","parentActiveClass","Event","Masthead","pointerMode","nav","navInner","megaMenus","menuIcon","search","searchWrap","searchIcon","closeIcon","mobileMediaQuery","parents","map","headroom","tolerance","up","down","classes","initial","pinned","unpinned","notTop","bottom","notBottom","frozen","init","update","onKeyUp","key","setMode","stopPropagation","toggleMode","menu","parent","matchMedia","lastMode","onTransitionEnd","hidden","removeEventListener","documentElement","focus","handleSearchMouseout","throttle","SectionNav","opts","forward","content","items","sticky","interval","id","hash","getElementById","setState","forwardIndex","backIndex","scrollForward","scrollStop","scrollBack","onScrollActiveAnchor","scrollTop","clientHeight","absTarget","distances","item","reduce","Math","abs","Object","keys","onScrollFixed","offsetHeight","onLinkClick","masthead","freeze","mastheadFreezeTimeout","unfreeze","initialIndex","max","setIndex","scrollInterval","setInterval","scrollTo","scrollLeft","disabled","clearInterval","firstItem","lastItem","offsetLeft","offsetWidth","getIndex","min","round","log","clipboard","confirmation","timeout","navigator","writeText","confirm","createTextNode","removeChild","default","share","blocks"],"sourceRoot":""}