{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;AACuD;AACyB;AAC/B;;;AAEjD,MAAMG,MAAM,GAAW,CACrB;EAAEC,IAAI,EAAE,EAAE;EAAEC,UAAU,EAAE,MAAM;EAAEC,SAAS,EAAE;AAAM,CAAE,EACnD;EAAEF,IAAI,EAAE,UAAU;EAAEG,SAAS,EAAEN,yFAAqBA;AAAA,CAAE,EACtD;EACEG,IAAI,EAAE,MAAM;EACZG,SAAS,EAAEL,0DAAQ;EACnBM,QAAQ,EAAE,CACR;IAAEJ,IAAI,EAAE,EAAE;IAAEC,UAAU,EAAE,cAAc;IAAEC,SAAS,EAAE,MAAM;IAAEG,KAAK,EAAE;EAAQ,CAAE,EAC5E;IAAEL,IAAI,EAAE,QAAQ;IAAEM,YAAY,EAAEA,CAAA,KAAM,yQAA6C,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,eAAe;EAAC,CAAE,EAClH;IAAET,IAAI,EAAE,OAAO;IAAEM,YAAY,EAAEA,CAAA,KAAM,sLAA2C,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACE,cAAc;EAAC,CAAE,EAC9G;IAAEV,IAAI,EAAE,IAAI;IAAEM,YAAY,EAAEA,CAAA,KAAM,0RAAqC,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACG,WAAW;EAAC,CAAE,EAClG;IAAEX,IAAI,EAAE,QAAQ;IAAEM,YAAY,EAAEA,CAAA,KAAM,yQAA6C,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACI,eAAe;EAAC,CAAE;CAErH,EACD;EAAEZ,IAAI,EAAE,SAAS;EAAEM,YAAY,EAAEA,CAAA,KAAM,4QAA8B,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACK,WAAW;AAAC,CAAC,EAC/F;EAAEb,IAAI,EAAE,IAAI;EAAEC,UAAU,EAAE;AAAM,CAAE,CAEnC;AAKK,MAAOa,gBAAgB;EAAA,QAAAC,CAAA;qBAAhBD,gBAAgB;EAAA;EAAA,QAAAE,EAAA;UAAhBF;EAAgB;EAAA,QAAAG,EAAA;cAHjBrB,yDAAY,CAACsB,OAAO,CAACnB,MAAM,EAAE,EAAE,CAAC,EAChCH,yDAAY;EAAA;;;sHAEXkB,gBAAgB;IAAAK,OAAA,GAAAC,yDAAA;IAAAC,OAAA,GAFjBzB,yDAAY;EAAA;AAAA;;;;;;;;;;;;;;;;;;;ACxByB;AACY;;;;;;ICQrD4B,4DAAA,QAA0C;IAAAA,oDAAA,4FAAqF;IAAAA,0DAAA,EAAI;;;;;IACnIA,4DAAA,QAA0C;IAAAA,oDAAA,iFAA0E;IAAAA,0DAAA,EAAI;;;;;;IAUtHA,4DADF,cAAgD,oBAC2C;IAApBA,wDAAA,mBAAAK,mEAAA;MAAAL,2DAAA,CAAAO,GAAA;MAAA,MAAAC,MAAA,GAAAR,2DAAA;MAAA,OAAAA,yDAAA,CAASQ,MAAA,CAAAG,OAAA,EAAS;IAAA,EAAC;IAACX,oDAAA,YAAK;IAChGA,0DADgG,EAAa,EACnG;;;ADbZ,MAAOY,kBAAkB;EAK7BC,YACUC,SAA0B;IAA1B,KAAAA,SAAS,GAATA,SAAS;EACf;EAEJH,OAAOA,CAAA;IACL,IAAI,CAACG,SAAS,CAACH,OAAO,EAAE;EAC1B;EAEAI,MAAMA,CAAA;IACJhB,uEAAS,CAACiB,YAAY,EAAE;EAC1B;EAAC,QAAAzB,CAAA;qBAfUqB,kBAAkB,EAAAZ,+DAAA,CAAAJ,2DAAA;EAAA;EAAA,QAAAJ,EAAA;UAAlBoB,kBAAkB;IAAAM,SAAA;IAAAC,MAAA;MAAAC,cAAA;IAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAC,4BAAAC,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCP3B1B,4DAFJ,iBAAY,kBACG,gBACA;QAAAA,oDAAA,4BAAqB;QAEpCA,0DAFoC,EAAY,EAChC,EACH;QAIPA,4DAHN,qBAAiD,eACrC,cACC,iBACY;QACjBA,uDAAA,SAAS;QAETA,wDADA,IAAA8B,+BAAA,eAA0C,KAAAC,gCAAA,eACA;QAIlD/B,0DAHM,EAAU,EACF,EACD,EACC;QAIRA,4DAHN,kBAAY,mBACG,gBACD,eACC;QACPA,wDAAA,KAAAgC,sCAAA,qBAAgD;QAI9ChC,4DADF,eAAS,qBAC2D;QAAnBA,wDAAA,mBAAAiC,yDAAA;UAAA,OAASN,GAAA,CAAAZ,MAAA,EAAQ;QAAA,EAAC;QAACf,oDAAA,sBAAc;QAK1FA,0DAL0F,EAAa,EACrF,EACF,EACD,EACC,EACH;;;QAnBDA,uDAAA,GAAoC;QAApCA,wDAAA,SAAA2B,GAAA,CAAAP,cAAA,iBAAoC;QACpCpB,uDAAA,EAAoC;QAApCA,wDAAA,SAAA2B,GAAA,CAAAP,cAAA,iBAAoC;QAS9BpB,uDAAA,GAAoC;QAApCA,wDAAA,SAAA2B,GAAA,CAAAP,cAAA,iBAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClB4C;AACb;AAEY;AACzC;AACG;AAEjB;AACkC;AAClB;AACa;AACjC;AACY;AACI;AACkB;AACZ;AACf;AACK;AAC8B;AACd;;;;;;;;AAIlE,MAAMoC,cAAc,GAAG,mBAAmB;AAOpC,MAAOC,YAAY;EAIvB5C,YACU6C,IAAgB,EAChBC,MAAc,EACdC,eAAgC,EAChCC,eAAgC,EACjCC,QAAkB,EACjBC,cAA8B,EAC/BC,WAAwB,EACvBC,aAAmC,EACnCC,WAA8B;IAAA,IAAAC,KAAA;IAR9B,KAAAT,IAAI,GAAJA,IAAI;IACJ,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,eAAe,GAAfA,eAAe;IACf,KAAAC,eAAe,GAAfA,eAAe;IAChB,KAAAC,QAAQ,GAARA,QAAQ;IACP,KAAAC,cAAc,GAAdA,cAAc;IACf,KAAAC,WAAW,GAAXA,WAAW;IACV,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAAC,WAAW,GAAXA,WAAW;IAEnB;IACA,IAAI,IAAI,CAACJ,QAAQ,CAACM,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAACN,QAAQ,CAACM,EAAE,CAAC,SAAS,CAAC,EAAE;MAC1D,IAAI,CAACC,UAAU,EAAE;IACnB,CAAC,MAAM;MACL,IAAI,CAACC,gBAAgB,EAAE;IACzB;IAEA,IAAI,CAACL,aAAa,CAACM,gBAAgB,CAACC,SAAS,EAAE;IAE/C,IAAI,CAACb,MAAM,CAACc,MAAM,CAACD,SAAS,CAACE,KAAK,IAAG;MACnC,IAAIA,KAAK,YAAYrC,2DAAa,EAAE;QAClC,IAAI,IAAI,CAACyB,QAAQ,CAACM,EAAE,CAAC,KAAK,CAAC,EAAE;UAC3Bb,6EAAiB,CAACoB,QAAQ,CAAC;YACzBC,IAAI,EAAE,aAAa;YACnBC,MAAM,EAAE;cACNC,SAAS,EAAEJ,KAAK,CAACK,iBAAiB,CAACC,KAAK,CAAC,CAAC,GAAG,CAAC;cAC9CC,WAAW,EAAEC,QAAQ,CAACrG;;WAEzB,CAAC;QACJ,CAAC,MAAM;UACLsG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;YAAE,eAAe,EAAET,KAAK,CAACK;UAAiB,CAAE,CAAC;QAC1E;MACF;IACF,CAAC,CAAC;IAEFnC,+CAAG,CAACwC,WAAW,CAAC,YAAY,EAAGC,IAA0B,IAAI;MAC3DC,OAAO,CAACC,GAAG,CAAC,cAAc,EAAEF,IAAI,CAAC;MACjC,IAAI,CAACtB,cAAc,CAACyB,SAAS,CAACH,IAAI,CAACI,GAAG,EAAErC,wDAAO,CAACsC,KAAK,CAAC;IACxD,CAAC,CAAC;IAEFhD,4EAAiB,CAACiD,kBAAkB,EAAE,CAAC5G,IAAI,CAAC6G,MAAM,IAAG;MACnD,IAAIA,MAAM,CAACC,OAAO,KAAK,SAAS,EAAE;QAChC;QACAnD,4EAAiB,CAACoD,QAAQ,EAAE;QAC5B;QACApD,4EAAiB,CAAC0C,WAAW,CAAC,cAAc,EACzCW,KAAY,IAAI;UACfT,OAAO,CAACC,GAAG,CAAC,cAAcS,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC,EAAE,CAAC;UAClDG,YAAY,CAACC,OAAO,CAAC,YAAY,EAAEJ,KAAK,CAACK,KAAK,CAAC;QACjD,CAAC,CACF;QAED1D,4EAAiB,CAAC0C,WAAW,CAAC,0BAA0B;UAAA,IAAAiB,IAAA,GAAAC,oJAAA,CACtD,WAAOC,YAAoC,EAAI;YAC7C,MAAMC,KAAK,SAASrC,KAAI,CAACP,eAAe,CAAC6C,MAAM,CAAC;cAC9CC,MAAM,EAAEH,YAAY,CAAC1H,KAAK;cAC1B8H,OAAO,EAAEJ,YAAY,CAACK,IAAI;cAC1BC,QAAQ,EAAE,KAAK;cACfC,OAAO,EAAE,CAAC;gBAAEC,IAAI,EAAE,IAAI;gBAAEC,IAAI,EAAE;cAAQ,CAAE;aACzC,CAAC;YACFR,KAAK,CAACS,OAAO,EAAE;UACjB,CAAC;UAAA,iBAAAC,EAAA;YAAA,OAAAb,IAAA,CAAAc,KAAA,OAAAC,SAAA;UAAA;QAAA,IACF;MACH,CAAC,MAAM;QACL;MAAA;IAEJ,CAAC,CAAC,CAACC,KAAK,CAACC,GAAG,IAAG;MACbhC,OAAO,CAACiC,IAAI,CAAC,kCAAkC,CAAC;IAClD,CAAC,CAAC;IAEF,IAAI,CAACC,YAAY,EAAE;EACrB;EAEMC,QAAQA,CAAA;IAAA,IAAAC,MAAA;IAAA,OAAApB,oJAAA;MACZ3D,kEAAY,CAACgF,IAAI,EAAE;MACnBD,MAAI,CAACE,uBAAuB,EAAE;IAAC;EACjC;EAEMA,uBAAuBA,CAAA;IAAA,IAAAC,MAAA;IAAA,OAAAvB,oJAAA;MAC3BuB,MAAI,CAACC,kBAAkB,SAASD,MAAI,CAAC3D,WAAW,CAACuC,MAAM,CAAC;QACtDE,OAAO,EAAE;OACV,CAAC;MAEF;MAEAkB,MAAI,CAAClE,MAAM,CAACc,MAAM,CAACD,SAAS;QAAA,IAAAuD,KAAA,GAAAzB,oJAAA,CAAC,WAAM5B,KAAK,EAAG;UACvC,IAAIA,KAAK,YAAYpC,kEAAoB,EAAE;YACzCuF,MAAI,CAACC,kBAAkB,CAACb,OAAO,EAAE;UACnC,CAAC,MAAM,IAAIvC,KAAK,YAAYnC,gEAAkB,EAAE;YAC9CsF,MAAI,CAACC,kBAAkB,CAACnH,OAAO,EAAE;UACnC;QACJ,CAAC;QAAA,iBAAAqH,GAAA;UAAA,OAAAD,KAAA,CAAAZ,KAAA,OAAAC,SAAA;QAAA;MAAA,IAAC;IAAC;EACL;EAEM9C,gBAAgBA,CAAA;IAAA,IAAA2D,MAAA;IAAA,OAAA3B,oJAAA;MACpB,MAAM4B,MAAM,GAAGhC,YAAY,CAACiC,OAAO,CAAC,eAAe,CAAC;MACpD,IAAI,CAACD,MAAM,IAAIA,MAAM,KAAK7E,2DAAO,EAAE;QACjC,MAAM+E,OAAO,SAASH,MAAI,CAACpE,eAAe,CAAC4C,MAAM,CAAC;UAChD9H,SAAS,EAAE2E,0FAAqBA;SACjC,CAAC;QACF,MAAM8E,OAAO,CAACnB,OAAO,EAAE;QACvB,MAAMmB,OAAO,CAACC,YAAY,EAAE;QAC5BnC,YAAY,CAACC,OAAO,CAAC,eAAe,EAAE9C,2DAAO,CAAC;MAChD;IAAC;EACH;EAEMgB,UAAUA,CAAA;IAAA,IAAAiE,MAAA;IAAA,OAAAhC,oJAAA;MACd,IAAI;QACF,IAAIxD,kEAAW,CAACyF,UAAU,EAAE;UAC1B,MAAMC,aAAa,SAAwBzI,uEAAS,CAAC0I,gBAAgB,EAAE;UAEvE,IAAIH,MAAI,CAACI,2BAA2B,CAACF,aAAa,CAACG,kBAAkB,EAAEH,aAAa,CAACI,oBAAoB,CAAC,EAAE;YAC1G,MAAMC,WAAW,SAAS9F,qDAAc,CAACuF,MAAI,CAAC5E,IAAI,CAACoF,GAAG,CAAChG,kEAAW,CAACiG,QAAQ,CAAC,CAAC;YAC7E,MAAMC,iBAAiB,GAAGH,WAAW,GAAGL,aAAa,CAACI,oBAAoB,CAAC;YAE3E,MAAMK,KAAK,SAASX,MAAI,CAACzE,eAAe,CAAC4C,MAAM,CAAC;cAC9C9H,SAAS,EAAEiC,gFAAkB;cAC7BsI,cAAc,EAAE;gBACd9H,cAAc,EAAE4H,iBAAiB,EAAE5H;;aAEtC,CAAC;YAEF,MAAM6H,KAAK,CAAChC,OAAO,EAAE;YAErB,MAAMgC,KAAK,CAACZ,YAAY,EAAE,CAACtJ,IAAI,CAAC,MAAK;cACnC;cACA;YAAA,CACD,CAAC;UACJ;QACF;QACAuJ,MAAI,CAAChE,gBAAgB,EAAE;MACzB,CAAC,CAAC,OAAO6E,CAAC,EAAE;QACV7D,OAAO,CAAC8D,KAAK,CAACD,CAAC,CAAC;MAClB;IAAC;EACH;EAEA;EACAT,2BAA2BA,CAACW,cAAsB,EAAEC,qBAA6B;IAC/E,IAAID,cAAc,KAAKC,qBAAqB,EAAE;MAC5C,OAAO,KAAK;IACd;IACA;IACA,MAAM,CAACC,YAAY,EAAEC,YAAY,EAAEC,YAAY,CAAC,GAAGJ,cAAc,CAACK,KAAK,CAAC,GAAG,CAAC;IAC5E,MAAM,CAACC,mBAAmB,EAAEC,mBAAmB,EAAEC,mBAAmB,CAAC,GAAGP,qBAAqB,CAACI,KAAK,CAAC,GAAG,CAAC;IACxG,MAAMI,EAAE,GAAGC,QAAQ,CAACJ,mBAAmB,EAAE,EAAE,CAAC;IAC5C,MAAMK,EAAE,GAAGD,QAAQ,CAACR,YAAY,EAAE,EAAE,CAAC;IACrC,IAAIO,EAAE,GAAGE,EAAE,EAAE;MACX,OAAO,IAAI;IACb,CAAC,MACI,IAAIF,EAAE,IAAIE,EAAE,EAAE;MACjB,MAAMC,GAAG,GAAGF,QAAQ,CAACH,mBAAmB,EAAE,EAAE,CAAC;MAC7C,MAAMM,GAAG,GAAGH,QAAQ,CAACP,YAAY,EAAE,EAAE,CAAC;MACtC,IAAIS,GAAG,GAAGC,GAAG,EAAE;QACb,OAAO,IAAI;MACb,CAAC,MAAM,IAAID,GAAG,KAAKC,GAAG,EAAE;QACtB,MAAMC,EAAE,GAAGJ,QAAQ,CAACF,mBAAmB,EAAE,EAAE,CAAC;QAC5C,MAAMO,EAAE,GAAGL,QAAQ,CAACN,YAAY,EAAE,EAAE,CAAC;QACrC,OAAOU,EAAE,GAAGC,EAAE;MAChB;IACF;IACA,OAAO,KAAK;EACd;EAEM5C,YAAYA,CAAA;IAAA,IAAA6C,MAAA;IAAA,OAAA/D,oJAAA;MAChB,MAAMgE,OAAO,SAAS1H,+CAAG,CAAC4E,YAAY,EAAE;MACxC,IAAI,CAAC8C,OAAO,IAAI,CAACA,OAAO,CAAC7E,GAAG,EAAE;QAC5B;MACF;MACAH,OAAO,CAACC,GAAG,CAAC,YAAY,EAAE+E,OAAO,CAAC;MAClCD,MAAI,CAACE,QAAQ,CAACD,OAAO,CAAC7E,GAAG,CAAC;IAAC;EAC7B;EAEA8E,QAAQA,CAACC,GAAW;IAClB;IACA,MAAMC,IAAI,GAAG,CAAC,qCAAqC,EAAE,0CAA0C,CAAC;IAChG,KAAK,MAAMC,KAAK,IAAID,IAAI,EAAE;MACxB,IAAID,GAAG,CAACG,UAAU,CAACD,KAAK,CAAC,EAAE;QACzBF,GAAG,GAAGA,GAAG,CAACI,SAAS,CAACF,KAAK,CAACG,MAAM,CAAC;QACjC,IAAI,CAAClH,MAAM,CAACmH,aAAa,CAACN,GAAG,CAAC;QAC9B;MACF;IACF;EACF;EAAC,QAAAjL,CAAA;qBA3LUkE,YAAY,EAAAzD,gEAAA,CAAAJ,6DAAA,GAAAI,gEAAA,CAAA+K,oDAAA,GAAA/K,gEAAA,CAAAgL,4DAAA,GAAAhL,gEAAA,CAAAgL,4DAAA,GAAAhL,gEAAA,CAAAgL,qDAAA,GAAAhL,gEAAA,CAAAiL,qEAAA,GAAAjL,gEAAA,CAAAkL,+DAAA,GAAAlL,gEAAA,CAAAmL,iFAAA,GAAAnL,gEAAA,CAAAgL,8DAAA;EAAA;EAAA,QAAAxL,EAAA;UAAZiE,YAAY;IAAAvC,SAAA;IAAAG,KAAA;IAAAC,IAAA;IAAAE,QAAA,WAAA4J,sBAAA1J,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QChCzB1B,6DAAA,cAAS;QACPA,wDAAA,wBAAuC;QACzCA,2DAAA,EAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACF8D;AACd;AACL;AAEY;AAET;AACT;AACA;AAC2B;AACzB;AACgC;AACV;AACb;AACyB;AACxB;AACf;AACa;AACuB;AACsC;;;;AAIhH,MAAOwM,cAAc;EAC1BC,WAAWA,CAACrD,KAAK;IAChB;IACA9D,OAAO,CAAC8D,KAAK,CAACA,KAAK,CAAC;IACpBjE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;MACzB,eAAe,EAAEiE;KACjB,CAAC;EACF;;AAGF,MAAMsD,UAAU,GAAe;EAC3BC,MAAM,EAAE7J,qEAAW,CAAC8J,aAAa,CAACD,MAAM;EACxCE,QAAQ,EAAE/J,qEAAW,CAAC8J,aAAa,CAACC,QAAQ;EAC5CC,aAAa,EAAE,cAAc;EAC7BC,gBAAgB,EAAE,IAAI;EACtBC,wBAAwB,EAAE,KAAK;EAC/BC,oBAAoB,EAAE,IAAI;EAC1BC,mBAAmB,EAAE;IACjBC,YAAY,EACRhB,sDAAS,CAACiB,gBAAgB,EAAE,GAC5B,uCAAuCtK,qEAAW,CAAC8J,aAAa,CAACD,MAAM,uDAAuD,GAC9H,GAAGU,QAAQ,CAACC,MAAM,WAAW;IACjCC,QAAQ,EAAEzK,qEAAW,CAAC8J,aAAa,CAACW,QAAQ;IAC5CC,KAAK,EAAE;GACV;EACDC,eAAe,EAAE;IACbC,WAAW,EAAE,CACX;MACElD,GAAG,EAAE,GAAG1H,qEAAW,CAAC6K,QAAQ,CAACC,GAAG;KACjC;;CAGV;AAuCK,MAAOC,SAAS;EAAA,QAAAtO,CAAA;qBAATsO,SAAS;EAAA;EAAA,QAAArO,EAAA;UAATqO,SAAS;IAAAC,SAAA,GAFNrK,wDAAY;EAAA;EAAA,QAAAhE,EAAA;eAvBb,CACP;MAAEsO,OAAO,EAAEvC,gEAAkB;MAAEwC,QAAQ,EAAEtC,+DAAkBA;IAAA,CAAE,EAC7D;MACIqC,OAAO,EAAE1C,wDAAY;MACrB2C,QAAQ,EAAExB;KACb,EACD;MAAEuB,OAAO,EAAElC,oEAAiB;MAAEmC,QAAQ,EAAE/B,sEAAmB;MAAEgC,KAAK,EAAE;IAAI,CAAE,EAC1E;MACIF,OAAO,EAAEzC,2DAAe;MACxB4C,UAAU,EAAElC,yDAAY;MACxBmC,IAAI,EAAE,CAACpC,qDAAQ,CAAC;MAChBkC,KAAK,EAAE;KACV,EACD;MACIF,OAAO,EAAEzC,2DAAe;MACxB4C,UAAU,EAAE5B,iFAAoB;MAChC6B,IAAI,EAAE,CAAC5B,iFAAoB,CAAC;MAC5B0B,KAAK,EAAE;KACV,CACJ;IAAAtO,OAAA,GA3BG4L,qEAAa,EACbI,0DAAY,EACZS,oEAAe,EACfR,mEAAgB,EAChBH,wDAAW,CAAC/L,OAAO,EAAE,EACrBJ,iEAAgB,EAChB4M,6DAAU,CAACxM,OAAO,CAACgN,UAAU,CAAC;EAAA;;;uHA2BzBmB,SAAS;IAAAO,YAAA,GAnCH3K,wDAAY,EAAEnF,0DAAQ,EAAEwN,0FAAW,EAAElL,gFAAkB,EAAE0C,yFAAqB,EAAE+I,mFAAsB;IAAA1M,OAAA,GAEjH4L,qEAAa,EACbI,0DAAY,EACZS,oEAAe,EACfR,mEAAgB,EAAAhM,wDAAA,EAEhBN,iEAAgB,EAAAyL,6DAAA;IAAAlL,OAAA,GAwBhBe,gFAAkB;EAAA;AAAA;;;;;;;;;;;;;;;;;ACzFmC;;;AAOvD,MAAOvC,qBAAqB;EAEhCwC,YACUkD,cAA8B;IAA9B,KAAAA,cAAc,GAAdA,cAAc;EACpB;EAEJ0D,QAAQA,CAAA;IACN;EAAA;EACD,QAAAlI,CAAA;qBARUlB,qBAAqB,EAAA2B,+DAAA,CAAAJ,qEAAA;EAAA;EAAA,QAAAJ,EAAA;UAArBnB,qBAAqB;IAAA6C,SAAA;IAAAG,KAAA;IAAAC,IAAA;IAAAE,QAAA,WAAA6M,+BAAA3M,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCRlC1B,uDAAA,QACI;;;;;;;;;;;;;;;;;;;;;;;ACA6B;;AAM3B,MAAOuO,mBAAmB;EAC5BC,SAASA,CAACC,KAAmB;IACzB,MAAMC,UAAU,GAAGJ,mCAAM,EAAE,CAACK,KAAK,CAAC,KAAK,CAAC,CAACC,IAAI,EAAE;IAC/C,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAACC,QAAQ,CAACJ,KAAK,EAAEK,MAAM,CAAC,IAAKJ,UAAU,GAAGD,KAAK,CAACM,IAAI,IAAIN,KAAK,EAAEK,MAAM,KAAK,WAAY;EAC7H;EAAC,QAAAvP,CAAA;qBAJQgP,mBAAmB;EAAA;EAAA,QAAA/O,EAAA;;UAAnB+O,mBAAmB;IAAAS,IAAA;EAAA;;;;;;;;;;;;;;;;;;ACF1B,MAAOC,iBAAiB;EAC1BC,UAAUA,CAACC,CAAC;IACR,OAAQA,CAAC,GAAIA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,EAAE,GAAGF,CAAC,CAACnK,KAAK,CAAC,CAAC,CAAC,GAAGmK,CAAC;EAC3D;EAEAX,SAASA,CAACc,IAAS;IACf,IAAIA,IAAI,EAAE;MACN,OAAO,GAAGA,IAAI,CAACC,iBAAiB,IAAI,IAAI,CAACL,UAAU,CAACI,IAAI,CAACE,aAAa,CAAC,IAAIF,IAAI,CAACG,aAAa,IAAI,IAAI,CAACP,UAAU,CAACI,IAAI,CAACI,SAAS,CAAC,IAAIJ,IAAI,CAACK,YAAY,IAAI,IAAI,CAACT,UAAU,CAACI,IAAI,CAACM,QAAQ,CAAC,EAAE;IAC7L,CAAC,MAAM;MACH,OAAO,aAAa;IACxB;EACJ;EAAC,QAAArQ,CAAA;qBAXQ0P,iBAAiB;EAAA;EAAA,QAAAzP,EAAA;;UAAjByP,iBAAiB;IAAAD,IAAA;EAAA;;;;;;;;;;;;;;;;;;ACJkB;;AAM1C,MAAOc,iBAAiB;EAC1BtB,SAASA,CAACpI,KAAU,EAAE1B,KAAK,EAAEqL,QAAQ;IACjC,IAAI3J,KAAK,EAAE;MACPA,KAAK,CAAC4J,IAAI,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAI;QACvB,IAAKD,IAAI,CAACE,KAAK,GAAGC,MAAM,CAACH,IAAI,CAACI,KAAK,CAAC,KAAOH,KAAK,CAACC,KAAK,GAAGC,MAAM,CAACF,KAAK,CAACG,KAAK,CAAE,EAAE;UAC3E;UACA,OAAQH,KAAK,CAACC,KAAK,GAAGC,MAAM,CAACF,KAAK,CAACG,KAAK,CAAC,IAAKJ,IAAI,CAACE,KAAK,GAAGC,MAAM,CAACH,IAAI,CAACI,KAAK,CAAC,CAAC;QAClF,CAAC,MAAM;UACH;UACA,OAAOR,wDAAQ,CAACS,OAAO,CAAC5L,KAAK,EAAEuL,IAAI,EAAEC,KAAK,EAAEH,QAAQ,EAAE;YAACQ,MAAM,EAAE;UAAI,CAAC,CAAC;QAEzE;MACJ,CAAC,CAAC;MACF,OAAOnK,KAAK;IAChB;EACJ;EAAC,QAAA7G,CAAA;qBAfQuQ,iBAAiB;EAAA;EAAA,QAAAtQ,EAAA;;UAAjBsQ,iBAAiB;IAAAd,IAAA;EAAA;;;;;;;;;;;;;;;;;;ACNqC;;AAK7D,MAAOyB,eAAe;EAC3BjC,SAASA,CAACkC,UAAe,EAAEC,QAAkB;IAC5C,MAAMC,IAAI,GAAG,EAAE;IACf,IAAIF,UAAU,IAAI,IAAI,EAAE;MACvB,IAAIG,GAAG,GAAGH,UAAU;MACpB,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE;QACnCG,GAAG,GAAGH,UAAU,CAAChH,KAAK,CAAC,GAAG,CAAC;MAC5B;MACA,KAAK,MAAMoH,CAAC,IAAID,GAAG,EAAE;QACpB,IAAI,CAACL,2EAAiB,CAACO,GAAG,CAACD,CAAC,CAAC,IAAI,EAAE,EAAEE,MAAM,EAAE;UAC5C,IAAIF,CAAC,KAAK,MAAM,IAAIH,QAAQ,EAAE;YAC7BC,IAAI,CAACK,IAAI,CAAC,GAAG,CAAC;UACf,CAAC,MAAM;YACNL,IAAI,CAACK,IAAI,CAACT,2EAAiB,CAACO,GAAG,CAACD,CAAC,CAAC,CAACE,MAAM,CAAC;UAC3C;QACD,CAAC,MAAM;UACN,IAAIL,QAAQ,IAAIH,2EAAiB,CAACO,GAAG,CAACD,CAAC,CAAC,IAAIN,2EAAiB,CAACO,GAAG,CAACD,CAAC,CAAC,CAAC1K,KAAK,EAAE;YAC3EwK,IAAI,CAACK,IAAI,CAACT,2EAAiB,CAACO,GAAG,CAACD,CAAC,CAAC,CAAC1K,KAAK,CAACwE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;UAC1D;QACD;MACD;IACD;IACA,OAAOgG,IAAI,CAACM,IAAI,CAAC,GAAG,CAAC;EACtB;EAAC,QAAA3R,CAAA;qBAvBWkR,eAAe;EAAA;EAAA,QAAAjR,EAAA;;UAAfiR,eAAe;IAAAzB,IAAA;EAAA;;;;;;;;;;;;;;;;;;ACCtB,MAAOmC,aAAa;EAExB3C,SAASA,CAAC4C,UAAgC,EAAE1M,KAAa,EAAE2M,OAAqG;IAC9J,IAAI,CAACD,UAAU,EAAE;MACf,OAAO,EAAE;IACX;IAEA,MAAME,UAAU,GAAG5M,KAAK,CAAC6M,iBAAiB,KAAK,OAAO,GAAGH,UAAU,CAACI,QAAQ,GAAGJ,UAAU,CAACf,KAAK;IAC/F,IAAIF,KAAK,GAAGiB,UAAU,CAACjB,KAAK,GAAGC,MAAM,CAACkB,UAAU,CAAC;IACjD,IAAIG,QAAQ,GAAGL,UAAU,CAACK,QAAQ;IAClC,IAAIC,aAAa,GAAG,CAAC;IACrB,IAAIC,gBAAgB,GAAG,CAAC;IACxB,IAAIC,aAAa,GAAGlN,KAAK,CAAC6M,iBAAiB,KAAK,OAAO,GAAGM,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE3B,KAAK,GAAGsB,QAAQ,CAAC,GAAG,CAAC;IAC3FL,UAAU,CAACW,SAAS,CAACV,OAAO,CAACW,MAAM,CAAC,EAAEC,MAAM,EAAEC,OAAO,CAACC,KAAK,IAAG;MAC5DR,gBAAgB,IAAIvB,MAAM,CAAC+B,KAAK,CAACV,QAAQ,CAAC;MAC1CA,QAAQ,IAAIU,KAAK,CAACV,QAAQ;MAC1B,IAAI/M,KAAK,CAAC6M,iBAAiB,KAAK,KAAK,EAAE;QACrCpB,KAAK,IAAI0B,IAAI,CAACO,GAAG,CAACD,KAAK,CAACE,KAAK,GAAGjC,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC,EAAE8B,KAAK,CAACV,QAAQ,CAAC;QACzEC,aAAa,IAAIS,KAAK,CAACE,KAAK;QAC5BT,aAAa,IAAIC,IAAI,CAACO,GAAG,CAACD,KAAK,CAACV,QAAQ,GAAGU,KAAK,CAACE,KAAK,EAAEjC,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC,CAAC;MACnF,CAAC,MAAM;QACLF,KAAK,IAAIgC,KAAK,CAACE,KAAK,GAAGjC,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC;QAC/CqB,aAAa,IAAIS,KAAK,CAACE,KAAK;QAC5BT,aAAa,IAAIxB,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC;MAC3C;IACF,CAAC,CAAC;IAEF,IAAIgB,OAAO,CAACW,MAAM,KAAK,MAAM,EAAE;MAC7BZ,UAAU,CAACW,SAAS,CAACO,IAAI,EAAEL,MAAM,EAAEC,OAAO,CAACC,KAAK,IAAG;QACjDV,QAAQ,IAAIU,KAAK,CAACV,QAAQ;QAC1BE,gBAAgB,IAAIvB,MAAM,CAAC+B,KAAK,CAACV,QAAQ,CAAC;QAC1C,IAAI/M,KAAK,CAAC6M,iBAAiB,KAAK,KAAK,EAAE;UACrCpB,KAAK,IAAI0B,IAAI,CAACO,GAAG,CAACD,KAAK,CAACE,KAAK,GAAGjC,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC,EAAE8B,KAAK,CAACV,QAAQ,CAAC;UACzEC,aAAa,IAAIS,KAAK,CAACE,KAAK;UAC5BT,aAAa,IAAIC,IAAI,CAACO,GAAG,CAACD,KAAK,CAACV,QAAQ,GAAGU,KAAK,CAACE,KAAK,EAAEjC,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC,CAAC;QACnF,CAAC,MAAM;UACLF,KAAK,IAAIgC,KAAK,CAACE,KAAK,GAAGjC,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC;UAC/CqB,aAAa,IAAIS,KAAK,CAACE,KAAK;UAC5BT,aAAa,IAAIxB,MAAM,CAAC+B,KAAK,CAAC9B,KAAK,IAAI,CAAC,CAAC;QAC3C;MACF,CAAC,CAAC;IACJ;IACA,QAAQgB,OAAO,CAACkB,OAAO;MACrB,KAAK,eAAe;QAClB,MAAMC,QAAQ,GAAI9N,KAAK,CAAC6M,iBAAiB,KAAK,OAAO,GACnDM,IAAI,CAACO,GAAG,CAACR,aAAa,EAAED,gBAAgB,GAAGD,aAAa,CAAC,GACzDE,aAAa;QACf,MAAMa,cAAc,GAAGb,aAAa,GAAG,MAAMY,QAAQ,GAAG,GAAG,EAAE;QAC7D,OAAO,GAAGd,aAAa,GAAGe,cAAc,MAAMd,gBAAgB,EAAE;MAClE,KAAK,cAAc;QACjB,MAAMe,WAAW,GAAGpB,UAAU,GAAG,MAAMO,IAAI,CAACO,GAAG,CAACd,UAAU,EAAEG,QAAQ,GAAGtB,KAAK,CAAC,GAAG,GAAG,EAAE;QACrF,OAAO,GAAG0B,IAAI,CAACO,GAAG,CAAChB,UAAU,CAACjB,KAAK,GAAGuB,aAAa,EAAED,QAAQ,CAAC,IAAIiB,WAAW,MAAMjB,QAAQ,EAAE;MAC/F,KAAK,aAAa;QAChB,MAAMkB,UAAU,GAAGd,IAAI,CAACO,GAAG,CAACd,UAAU,EAAEF,UAAU,CAACK,QAAQ,GAAGL,UAAU,CAACjB,KAAK,CAAC;QAC/E,MAAMyC,gBAAgB,GAAGD,UAAU,GAAG,MAAMA,UAAU,GAAG,GAAG,EAAE;QAC9D,OAAO,GAAGvB,UAAU,CAACjB,KAAK,GAAGyC,gBAAgB,MAAMxB,UAAU,CAACK,QAAQ,EAAE;MAC1E;QACE,OAAO,GAAGI,IAAI,CAACO,GAAG,CAACjC,KAAK,EAAEsB,QAAQ,CAAC,MAAMA,QAAQ,EAAE;IACvD;EACF;EAAC,QAAAlS,CAAA;qBA3DU4R,aAAa;EAAA;EAAA,QAAA3R,EAAA;;UAAb2R,aAAa;IAAAnC,IAAA;EAAA;;;;;;;;;;;;;;;;;;ACFlB,MAAO6D,kBAAkB;EAC7BrE,SAASA,CAACpI,KAAY,EAAE,GAAG0M,IAAW;IACpC,MAAMC,SAAS,GAAG,EAAE;IACpB3M,KAAK,EAAE8L,OAAO,CAACc,UAAU,IAAG;MAC1B,IAAIC,SAAS,GAAQ,EAAE;MACvB,IAAIC,KAAK,GAAG,KAAK;MACjB,IAAIF,UAAU,EAAEG,KAAK,CAACC,QAAQ,EAAEC,IAAI,EAAE;QACpCJ,SAAS,CAACI,IAAI,GAAGL,UAAU,EAAEG,KAAK,CAACC,QAAQ,EAAEC,IAAI;QACjDH,KAAK,GAAG,IAAI;MACd;MAEA,IAAIF,UAAU,EAAEG,KAAK,CAACG,IAAI,EAAEzI,MAAM,GAAG,CAAC,EAAE;QACtCoI,SAAS,CAACK,IAAI,GAAGN,UAAU,EAAEG,KAAK,CAACG,IAAI;QACvCJ,KAAK,GAAG,IAAI;MACd;MACA,IAAIA,KAAK,EAAE;QACTH,SAAS,CAAC9B,IAAI,CAACgC,SAAS,CAAC;MAC3B;IACF,CAAC,CAAC;IACF,OAAOF,SAAS;EAClB;EAAC,QAAAxT,CAAA;qBApBUsT,kBAAkB;EAAA;EAAA,QAAArT,EAAA;;UAAlBqT,kBAAkB;IAAA7D,IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;ACJoB;AACJ;AACC;AACZ;;;;AAOhC,MAAO1L,qBAAqB;EAIhCzC,YAAmB0S,QAAyB,EAAU7P,IAAgB;IAAnD,KAAA6P,QAAQ,GAARA,QAAQ;IAA2B,KAAA7P,IAAI,GAAJA,IAAI;IAH1D,KAAAL,OAAO,GAAGA,0DAAO;EAGyD;EAEpEoE,QAAQA,CAAA;IAAA,IAAAtD,KAAA;IAAA,OAAAmC,oJAAA;MACZ,IAAI;QACFnC,KAAI,CAACqP,IAAI,SAASzQ,oDAAc,CAACoB,KAAI,CAACT,IAAI,CAACoF,GAAG,CAAC,wBAAwB3E,KAAI,CAACd,OAAO,OAAO,EAAE;UAAEoQ,YAAY,EAAE;QAAM,CAAC,CAAC,CAAC;MACvH,CAAC,CAAC,OAAOnM,GAAG,EAAE;QACZnD,KAAI,CAACqP,IAAI,GAAG,mCAAmC;MACjD;IAAC;EACH;EAAC,QAAAjU,CAAA;qBAZU+D,qBAAqB,EAAAtD,+DAAA,CAAAJ,2DAAA,GAAAI,+DAAA,CAAA+K,4DAAA;EAAA;EAAA,QAAAvL,EAAA;UAArB8D,qBAAqB;IAAApC,SAAA;IAAAG,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAkS,+BAAAhS,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCR5B1B,4DAHN,iBAAY,kBACG,qBACa,oBACmB;QAA7BA,wDAAA,mBAAA2T,2DAAA;UAAA,OAAShS,GAAA,CAAA4R,QAAA,CAAA5S,OAAA,EAAkB;QAAA,EAAC;QAACX,oDAAA,YAAK;QAChDA,0DADgD,EAAa,EAC/C;QACdA,4DAAA,gBAAW;QAAAA,oDAAA,GAAiB;QAEhCA,0DAFgC,EAAY,EAC5B,EACH;QAGXA,4DAFF,qBAAiC,SAE3B;QAAAA,oDAAA,iBAAU;QAAAA,0DAAA,EAAK;QAEnBA,uDAAA,cAA8B;QAChCA,0DAAA,EAAc;;;QARCA,uDAAA,GAAiB;QAAjBA,gEAAA,WAAA2B,GAAA,CAAA0B,OAAA,KAAiB;QAOzBrD,uDAAA,GAAkB;QAAlBA,wDAAA,cAAA2B,GAAA,CAAA6R,IAAA,EAAAxT,4DAAA,CAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZyB;AAEZ;AACqB;;;AAcrD,MAAO8T,SAAS;EAElBjT,YAAoB6C,IAAgB;IAAhB,KAAAA,IAAI,GAAJA,IAAI;EAAgB;EAElCqQ,KAAKA,CAACC,QAAQ,EAAEC,MAAM,EAAEC,MAAM;IAAA,IAAA/P,KAAA;IAAA,OAAAmC,oJAAA;MAChC,MAAM6N,KAAK,GAAG,GAAGrR,qEAAW,CAACsR,WAAW,CAACxG,GAAG,gBAAgBoG,QAAQ,SAASC,MAAM,SAASC,MAAM,EAAE;MACpG,OAAOnR,oDAAc,CAACoB,KAAI,CAACT,IAAI,CAACoF,GAAG,CAA2CqL,KAAK,CAAC,CAAC;IAAC;EAC1F;EAAC,QAAA5U,CAAA;qBAPQuU,SAAS,EAAA9T,sDAAA,CAAAJ,4DAAA;EAAA;EAAA,QAAAJ,EAAA;WAATsU,SAAS;IAAAQ,OAAA,EAATR,SAAS,CAAAS,IAAA;IAAAC,UAAA,EADG;EAAM;;;;;;;;;;;;;;;;;;;;;ACf4B;AACd;AAC4B;AACe;;AAYlF,MAAOI,UAAU;EAEtB/T,YAAA,GAAe;EAGf,IAAIgU,EAAEA,CAAA;IACL,MAAMC,qBAAqB,GAAG,IAAIJ,mFAAqB,CAAC;MAAEK,MAAM,EAAE;IAAgB,CAAE,CAAC;IAErF;IACA,MAAMC,WAAW,GAAGL,sGAAuB,CAAC;MAC5CM,MAAM,EAAEH,qBAAqB;MAC7BI,cAAc,EAAEpS,qEAAW,CAACqS,GAAG,CAACC;KAC/B,CAAC;IACF,OAAO,IAAIX,wDAAQ,CAAC;MAAEM,MAAM,EAAE,gBAAgB;MAAEC,WAAW,EAAEA;IAAW,CAAE,CAAC;EAC5E;EAAC,QAAAzV,CAAA;qBAdWqV,UAAU;EAAA;EAAA,QAAApV,EAAA;WAAVoV,UAAU;IAAAN,OAAA,EAAVM,UAAU,CAAAL,IAAA;IAAAC,UAAA,EADE;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfmB;AAE6J;AACpJ;AACkB;AAE3B;AACa;AACZ;;;;;;;AAK7C,MAAO2B,kBAAkB;EAW7BtV,YACU6C,IAAgB,EAChB0S,UAA8B,EAC9BC,aAAkC,EAClCpS,aAAmC,EACnCF,cAA8B;IAJ9B,KAAAL,IAAI,GAAJA,IAAI;IACJ,KAAA0S,UAAU,GAAVA,UAAU;IACV,KAAAC,aAAa,GAAbA,aAAa;IACb,KAAApS,aAAa,GAAbA,aAAa;IACb,KAAAF,cAAc,GAAdA,cAAc;IAdxB,KAAAuS,YAAY,GAAG,IAAIjB,iDAAe,CAAekB,SAAS,CAAC;IAC3D,KAAAC,YAAY,GAAG,IAAInB,iDAAe,CAAgBkB,SAAS,CAAC;IAC5D,KAAAE,aAAa,GAAG,IAAIpB,iDAAe,CAAgBkB,SAAS,CAAC;IAE7D,KAAAG,aAAa,GAAG,IAAIrB,iDAAe,CAAsBkB,SAAS,CAAC;IACnE,KAAAI,iBAAiB,GAAG,IAAItB,iDAAe,CAAsBkB,SAAS,CAAC;IAEvE,KAAAK,QAAQ,GAAG,IAAIvB,iDAAe,CAAC,CAAC,CAAC;IAU/BE,mDAAa,CAAC,CACZ,IAAI,CAACxR,cAAc,CAAC8S,mBAAmB,EACvC,IAAI,CAACD,QAAQ,CACd,CAAC,CAACE,IAAI,CACLxB,gDAAU,CAAChO,GAAG,IAAG;MACfhC,OAAO,CAACC,GAAG,CAAC+B,GAAG,CAAC;MAChB,OAAOwO,wCAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,EACFL,2DAAoB,EAAE,EACtBE,0CAAG,CAAC,CAAC,CAACoB,OAAO,CAAC,KAAKA,OAAO,CAAC,EAC3B/E,6CAAM,CAAC+E,OAAO,IAAI,CAAC,CAACA,OAAO,CAAC,EAC5BvB,gDAAS,CAACuB,OAAO,IAAI,IAAI,CAACrT,IAAI,CAACoF,GAAG,CAAgB,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,4BAA4BmJ,OAAO,CAACC,GAAG,EAAE,CAAC,CAAC,EACxHjB,0CAAG,CAACkB,YAAY,IAAG;MACjB,MAAMC,WAAW,GAAG,EAAE;MACtBD,YAAY,CAAC/E,OAAO,CAACiF,CAAC,IAAG;QACvBC,MAAM,CAACC,MAAM,CAACF,CAAC,CAACG,WAAW,IAAI,EAAE,CAAC,CAACpF,OAAO,CAACqF,CAAC,IAAG;UAC7C,IAAIA,CAAC,EAAEC,YAAY,EAAE;YACnBN,WAAW,CAACjG,IAAI,CAACsG,CAAC,CAACC,YAAY,CAAC;UAClC;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,IAAI,CAACpB,UAAU,CAACqB,sBAAsB,CAACP,WAAW,CAAC;IACrD,CAAC,CAAC,CACH,CAAC1S,SAAS,CAAC,IAAI,CAACiS,aAAa,CAAC;IAE/BlB,mDAAa,CAAC,CACZ,IAAI,CAACxR,cAAc,CAAC8S,mBAAmB,EACvC,IAAI,CAACD,QAAQ,CACd,CAAC,CAACE,IAAI,CACLrB,2DAAoB,EAAE,EACtBE,0CAAG,CAAC,CAAC,CAACoB,OAAO,CAAC,KAAKA,OAAO,CAAC,EAC3B/E,6CAAM,CAAC+E,OAAO,IAAI,CAAC,CAACA,OAAO,CAAC,EAC5BvB,gDAAS,CAACuB,OAAO,IAAI,IAAI,CAACrT,IAAI,CAACoF,GAAG,CAAgB,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,0BAA0BmJ,OAAO,CAACC,GAAG,EAAE,CAAC,CAAC,CACvH,CAACxS,SAAS,CAAC,IAAI,CAACgS,YAAY,CAAC;IAE9BjB,mDAAa,CAAC,CACZ,IAAI,CAACxR,cAAc,CAAC8S,mBAAmB,EACvC,IAAI,CAACD,QAAQ,CACd,CAAC,CAACE,IAAI,CACLrB,2DAAoB,EAAE,EACtBE,0CAAG,CAAC,CAAC,CAACoB,OAAO,CAAC,KAAKA,OAAO,CAAC,EAC3B/E,6CAAM,CAAC+E,OAAO,IAAI,CAAC,CAACA,OAAO,CAAC,EAC5BvB,gDAAS,CAACuB,OAAO,IAAG;MAClB,OAAO,IAAI,CAACrT,IAAI,CAACoF,GAAG,CAAsB,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,oBAAoB,CAAC,CACzFkJ,IAAI,CACHnB,0CAAG,CAAC+B,QAAQ,KAAK;QAAEX,OAAO;QAAEW;MAAQ,CAAC,CAAC,CAAC,CACxC;IACH,CAAC,CAAC,CACH,CAAClT,SAAS,CAAC,CAAC;MAAEuS,OAAO;MAAEW;IAAQ,CAAC,KAAI;MACnC,IAAI,CAACf,iBAAiB,CAACgB,IAAI,CAACD,QAAQ,CAAC1F,MAAM,CAAC4F,CAAC,IAAIA,CAAC,CAAClC,IAAI,CAACqB,OAAO,KAAKA,OAAO,CAACC,GAAG,CAACa,QAAQ,EAAE,CAAC,CAAC;MAC5F,IAAI,CAACnB,aAAa,CAACiB,IAAI,CAACD,QAAQ,CAAC1F,MAAM,CAAC4F,CAAC,IAAIA,CAAC,CAAClC,IAAI,CAACqB,OAAO,KAAKA,OAAO,CAACC,GAAG,CAACa,QAAQ,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC;IAIFtC,mDAAa,CAAC,CAAC,IAAI,CAACkB,aAAa,EAAE,IAAI,CAACD,YAAY,EAAE,IAAI,CAACG,iBAAiB,EAAE,IAAI,CAACD,aAAa,CAAC,CAAC,CACnGI,IAAI,CACJnB,0CAAG,CAAC,CAAC,CAACsB,YAAY,EAAEa,WAAW,EAAEC,gBAAgB,EAAEC,YAAY,CAAC,KAAI;MACnE,MAAMC,WAAW,GAAiC,EAAE;MACpDhB,YAAY,EAAE/E,OAAO,CAACiF,CAAC,IAAG;QACzBc,WAAW,CAACd,CAAC,CAACe,EAAE,CAACnB,OAAO,CAAC,GAAGK,MAAM,CAACe,MAAM,CAACF,WAAW,CAACd,CAAC,CAACe,EAAE,CAACnB,OAAO,CAAC,IAAI,EAAE,EAAE;UAAEE,YAAY,EAAEE;QAAC,CAAC,CAAC;MAC/F,CAAC,CAAC;MACFW,WAAW,EAAE5F,OAAO,CAACiF,CAAC,IAAG;QACxBc,WAAW,CAACd,CAAC,CAACzB,IAAI,CAACqB,OAAO,CAAC,GAAGK,MAAM,CAACe,MAAM,CAACF,WAAW,CAACd,CAAC,CAACzB,IAAI,CAACqB,OAAO,CAAC,IAAI,EAAE,EAAE;UAAEe,WAAW,EAAEX;QAAC,CAAC,CAAC;MAClG,CAAC,CAAC;MACEY,gBAAgB,EAAE7F,OAAO,CAAC0F,CAAC,IAAG;QAC5B,IAAIK,WAAW,CAACL,CAAC,CAAClC,IAAI,CAACqB,OAAO,CAAC,EAAE;UAC/BkB,WAAW,CAACL,CAAC,CAAClC,IAAI,CAACqB,OAAO,CAAC,GAAGkB,WAAW,CAACL,CAAC,CAAClC,IAAI,CAACqB,OAAO,CAAC,IAAI,EAAE;UAC/DkB,WAAW,CAACL,CAAC,CAAClC,IAAI,CAACqB,OAAO,CAAC,CAACqB,eAAe,GAAGH,WAAW,CAACL,CAAC,CAAClC,IAAI,CAACqB,OAAO,CAAC,CAACqB,eAAe,IAAI,EAAE;UAC/FH,WAAW,CAACL,CAAC,CAAClC,IAAI,CAACqB,OAAO,CAAC,CAACqB,eAAe,CAACC,QAAQ,GAAGT,CAAC;QAC1D;MACF,CAAC,CAAC;MACFI,YAAY,EAAE9F,OAAO,CAAC0F,CAAC,IAAG;QACxB,MAAMU,QAAQ,GAAGR,WAAW,EAAES,IAAI,CAACpB,CAAC,IAAIA,CAAC,CAACzB,IAAI,CAAC8C,KAAK,KAAKZ,CAAC,CAACM,EAAE,CAACM,KAAK,CAAC;QACpE,IAAIF,QAAQ,IAAIL,WAAW,CAACK,QAAQ,CAAC5C,IAAI,CAACqB,OAAO,CAAC,EAAE;UAClDkB,WAAW,CAACK,QAAQ,CAAC5C,IAAI,CAACqB,OAAO,CAAC,GAAGkB,WAAW,CAACK,QAAQ,CAAC5C,IAAI,CAACqB,OAAO,CAAC,IAAI,EAAE;UAC7EkB,WAAW,CAACK,QAAQ,CAAC5C,IAAI,CAACqB,OAAO,CAAC,CAACqB,eAAe,GAAGH,WAAW,CAACK,QAAQ,CAAC5C,IAAI,CAACqB,OAAO,CAAC,CAACqB,eAAe,IAAI,EAAE;UAC7GH,WAAW,CAACK,QAAQ,CAAC5C,IAAI,CAACqB,OAAO,CAAC,CAACqB,eAAe,CAACK,IAAI,GAAGb,CAAC;QAC7D;MACF,CAAC,CAAC;MAEF,OAAOR,MAAM,CAACC,MAAM,CAACY,WAAW,CAAC,CAACtC,GAAG,CAACwB,CAAC,IAAG;QAC7CA,CAAC,CAACvS,IAAI,GAAGuS,CAAC,CAACF,YAAY,EAAEiB,EAAE,EAAEtT,IAAI,IAAIuS,CAAC,CAACW,WAAW,EAAEpC,IAAI,EAAE9Q,IAAI;QAC9D,OAAOuS,CAAC;MACT,CAAC,CAAC;IACH,CAAC,CAAC,CACF,CAAC3S,SAAS,CAAC,IAAI,CAAC8R,YAAY,CAAC;IAE5B,IAAI,CAACD,aAAa,CAACqC,cAAc,CAAClU,SAAS,CAAC,IAAI,CAACoS,QAAQ,CAAC;EAC5D;EAEA+B,aAAaA,CAACC,MAAmF;IAC/F,OAAOlD,2CAAI,CAAC,IAAI,CAAC3R,cAAc,CAAC8S,mBAAmB,CAAC,CACnDC,IAAI,CACHlB,+CAAQ,CAAEmB,OAAO,IAAI;MACnB,OAAO,IAAI,CAACrT,IAAI,CAACmV,IAAI,CAAoB,GAAG/V,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,oBAAoB,EAAE;QACxFsK,EAAE,EAAE;UACFtT,IAAI,EAAEgU,MAAM,CAAChU,IAAI;UACjB4T,KAAK,EAAEI,MAAM,CAACE,OAAO,EAAEN,KAAK;UAC5BO,MAAM,EAAEH,MAAM,CAACE,OAAO,EAAEE;SACzB;QACDrS,OAAO,EAAEiS,MAAM,CAACjS,OAAO;QACvB+O,IAAI,EAAE;UACJ9Q,IAAI,EAAEmS,OAAO,CAACkC,UAAU;UACxBT,KAAK,EAAEzB,OAAO,CAACyB,KAAK;UACpBzB,OAAO,EAAEA,OAAO,CAACC;SAClB;QACDlI,MAAM,EAAE;OACT,CAAC;IACJ,CAAC,CAAC,EACFiH,0CAAG,CAAC,MAAM,IAAI,CAACa,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC,CAAC,CAC7C;EACH;EAEMC,OAAOA,CAACC,iBAAoC,EAAEtK,MAAM,EAAEwI,WAAW;IAAA,IAAAnT,KAAA;IAAA,OAAAmC,oJAAA;MACrE,MAAM+S,QAAQ,SAAStW,qDAAc,CACnCoB,KAAI,CAACT,IAAI,CAACmV,IAAI,CAAC,GAAG/V,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,qBAAqB,EAAE;QAC/D0L,OAAO,EAAEF,iBAAiB,CAACpC,GAAG;QAC9BuC,MAAM,EAAEzK,MAAM;QACdwI;OACD,CAAC,CACH;MACDnT,KAAI,CAACyS,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;MACjC,OAAOG,QAAQ;IAAC;EAClB;EAEMG,gBAAgBA,CAACC,GAAgB;IAAA,IAAA/R,MAAA;IAAA,OAAApB,oJAAA;MACrC,MAAMoT,OAAO,SAAS3W,qDAAc,CAAC2E,MAAI,CAAChE,IAAI,CAACiW,GAAG,CAAC,GAAG7W,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,eAAe6L,GAAG,CAACzC,GAAG,EAAE,EAAEyC,GAAG,CAAC,CAAC;MAC7G/R,MAAI,CAACkP,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;MACjC,OAAOQ,OAAO;IAAC;EACjB;EAEME,aAAaA,CAACH,GAAsB;IAAA,IAAA5R,MAAA;IAAA,OAAAvB,oJAAA;MACxC,MAAMuT,OAAO,SAAS9W,qDAAc,CAAC8E,MAAI,CAACnE,IAAI,CAACoW,MAAM,CAAC,GAAGhX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,sBAAsB6L,GAAG,CAACzC,GAAG,EAAE,CAAC,CAAC;MAClHnP,MAAI,CAAC+O,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EACpC;EAEMa,gBAAgBA,CAACN,GAAgB;IAAA,IAAAxR,MAAA;IAAA,OAAA3B,oJAAA;MACrC,MAAMuT,OAAO,SAAS9W,qDAAc,CAACkF,MAAI,CAACvE,IAAI,CAACoW,MAAM,CAAC,GAAGhX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,eAAe6L,GAAG,CAACzC,GAAG,EAAE,CAAC,CAAC;MAC3G/O,MAAI,CAAC2O,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EACpC;EAEMc,yBAAyBA,CAACC,UAAU,EAAE3C,WAAW;IAAA,IAAAhP,MAAA;IAAA,OAAAhC,oJAAA;MACrD,MAAMvD,qDAAc,CAACuF,MAAI,CAAC5E,IAAI,CAACwW,KAAK,CAAC,GAAGpX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,eAAeqM,UAAU,CAACjD,GAAG,EAAE,EAAE;QAC/FmD,IAAI,EAAE;UACJ7C,WAAW,EAAEA;;OAEhB,CAAC,CAAC;MACHhP,MAAI,CAACsO,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EAEpC;EAEMkB,uBAAuBA,CAACC,IAAY;IAAA,OAAA/T,oJAAA;EAW1C,CAAC,CAVC;EAEA;;;;;;;EAUFgU,iBAAiBA,CAACC,SAAoB;IACpC,OAAOhF,mDAAa,CAAC,CAAC,IAAI,CAACkB,aAAa,EAAE,IAAI,CAACxS,aAAa,CAACM,gBAAgB,CAAC,CAAC,CAC5EuS,IAAI,CACLnB,0CAAG,CAAC,CAAC,CAACsB,YAAY,EAAEuD,UAAU,CAAC,KAAI;MACjC,MAAMC,mBAAmB,GAAqC,EAAE;MAEhE,IAAID,UAAU,EAAE;QACdvD,YAAY,EAAE/E,OAAO,CAAE+H,UAAU,IAAI;UACnC,IAAIA,UAAU,EAAE3C,WAAW,EAAE;YAC3BF,MAAM,CAACsD,OAAO,CAACT,UAAU,CAAC3C,WAAW,CAAC,CAACpF,OAAO,CAAC,CAAC,CAACyI,WAAW,EAAEC,WAAW,CAAC,KAAI;cAC5ExD,MAAM,CAACsD,OAAO,CAACE,WAAW,CAAC,CAAC1I,OAAO,CAAC,CAAC,CAAC2I,SAAS,EAAEC,UAAU,CAAC,KAAI;gBAC9D,IAAIA,UAAU,CAACC,UAAU,EAAE;kBACzBN,mBAAmB,CAACI,SAAS,CAAC,GAAGJ,mBAAmB,CAACI,SAAS,CAAC,IAAI,EAAE;kBACrEJ,mBAAmB,CAACI,SAAS,CAAC,CAAC5J,IAAI,CAAC0J,WAAW,CAAC;gBAClD;cACF,CAAC,CAAC;YACJ,CAAC,CAAC;UACJ;QACF,CAAC,CAAC;MACJ;MACA,OAAOF,mBAAmB;IAC5B,CAAC,CAAC,EACF7E,+CAAQ,CAACoF,SAAS,IAAG;MACnB,MAAMC,GAAG,GAAG7D,MAAM,CAAC8D,IAAI,CAACF,SAAS,CAAC;MAClC,IAAIC,GAAG,EAAEpQ,MAAM,GAAG,CAAC,EAAE;QACnB,OAAOmL,0CAAG,CAAC,CACT,GAAGiF,GAAG,CAACtF,GAAG,CAACkF,SAAS,IAAI,IAAI,CAACnX,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAACqY,WAAW,CAACvN,GAAG,cAAciN,SAAS,kBAAkB,CAAC,CAAC,EAC/G,GAAGI,GAAG,CAACtF,GAAG,CAACkF,SAAS,IAAI,IAAI,CAACnX,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAACqY,WAAW,CAACvN,GAAG,cAAciN,SAAS,sBAAsB,CAAC,CAAC,CACpH,CAAC,CAAC/D,IAAI,CACLnB,0CAAG,CAAEyF,kBAAuB,IAAI;UAC9B,MAAMC,WAAW,GAAG,EAAE;UACtBD,kBAAkB,CAACzF,GAAG,CAAC7E,CAAC,IAAIA,CAAC,CAACwK,KAAK,CAAC,CAACpJ,OAAO,CAACrB,GAAG,IAAIA,GAAG,CAACqB,OAAO,CAACqJ,CAAC,IAAIF,WAAW,CAACpK,IAAI,CAACsK,CAAC,CAAC,CAAC,CAAC;UAC1F,OAAO;YACLP,SAAS;YACTK;WACD;QACH,CAAC,CAAC,CACH;MACH,CAAC,MAAM;QACL,OAAOvF,wCAAE,CAAC;UACRkF,SAAS;UACTK,WAAW,EAAE;SACd,CAAC;MACJ;IACF,CAAC,CAAC,EACF1F,0CAAG,CAAC,CAAC;MAACqF,SAAS;MAAEK;IAAW,CAAC,KAAI;MAE/B,MAAMG,QAAQ,GAAG,EAAE;MAEnB;MACAH,WAAW,CAACrJ,MAAM,CAACyJ,GAAG,IAAG;QACvB,MAAMC,UAAU,GAAGD,GAAG,CAACC,UAAU,EAAEhR,KAAK,CAAC,kBAAkB,CAAC;QAC5D,IAAIiR,iBAAiB;QACrB,IAAID,UAAU,EAAE;UACdC,iBAAiB,GAAGD,UAAU,CAAC,CAAC,CAAC;QACnC;QACA;QACA,OAAO,CAACE,OAAO,CAACH,GAAG,CAACI,QAAQ,CAAC,KACtB,CAACF,iBAAiB,IAAIX,SAAS,CAACS,GAAG,CAACK,OAAO,CAAC,EAAEjN,QAAQ,CAAC8M,iBAAiB,CAAC,CAAC;MAEnF,CAAC,CAAC,CACDzJ,OAAO,CAACuJ,GAAG,IAAG;QACbD,QAAQ,CAACC,GAAG,CAACM,IAAI,CAAC,GAAGP,QAAQ,CAACC,GAAG,CAACM,IAAI,CAAC,IAAI,EAAE;QAC7CP,QAAQ,CAACC,GAAG,CAACM,IAAI,CAAC,CAAC9K,IAAI,CAACwK,GAAG,CAAC;MAC9B,CAAC,CAAC;MACF,OAAOrE,MAAM,CAAC8D,IAAI,CAACM,QAAQ,CAAC;IAC9B,CAAC,CAAC,CACH;EACH;EAAC,QAAAjc,CAAA;qBA5PU4W,kBAAkB,EAAAnW,uDAAA,CAAAJ,6DAAA,GAAAI,uDAAA,CAAA+K,2DAAA,GAAA/K,uDAAA,CAAAgL,qFAAA,GAAAhL,uDAAA,CAAAiL,wEAAA,GAAAjL,uDAAA,CAAAkL,4DAAA;EAAA;EAAA,QAAA1L,EAAA;WAAlB2W,kBAAkB;IAAA7B,OAAA,EAAlB6B,kBAAkB,CAAA5B,IAAA;IAAAC,UAAA,EAFjB;EAAM;;;;;;;;;;;;;;;;;;;;;;ACViC;AACA;;AAErD;;;;;;AAOM,MAAO0B,kBAAkB;EAM9BrV,YAAA;IAJA,KAAAqb,mBAAmB,GAAG,IAAID,+CAAa,CAAW,CAAC,CAAC;IACpD,KAAAE,YAAY,GAAG,IAAIF,+CAAa,CAAW,CAAC,CAAC;IAC7C,KAAAG,QAAQ,GAAG,IAAIH,+CAAa,CAAmC,CAAC,CAAC;IAGhED,+DAAW,CAAClT,GAAG,CAAC;MAACuT,GAAG,EAAE;IAAwB,CAAC,CAAC,CAACtd,IAAI,CAACud,KAAK,IAAI,IAAI,CAACJ,mBAAmB,CAACvE,IAAI,CAAC3R,IAAI,CAACuW,KAAK,CAACD,KAAK,EAAElW,KAAK,CAAC,EAAEuP,GAAG,CAAC7E,CAAC,IAAI0L,MAAM,CAAC1L,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5IkL,+DAAW,CAAClT,GAAG,CAAC;MAACuT,GAAG,EAAE;IAAiB,CAAC,CAAC,CAACtd,IAAI,CAAC0d,KAAK,IAAI,IAAI,CAACN,YAAY,CAACxE,IAAI,CAAC3R,IAAI,CAACuW,KAAK,CAACE,KAAK,EAAErW,KAAK,CAAC,EAAEuP,GAAG,CAAC7E,CAAC,IAAI0L,MAAM,CAAC1L,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9HkL,+DAAW,CAAClT,GAAG,CAAC;MAACuT,GAAG,EAAE;IAAW,CAAC,CAAC,CAACtd,IAAI,CAAC2d,KAAK,IAAI,IAAI,CAACN,QAAQ,CAACzE,IAAI,CAAC3R,IAAI,CAACuW,KAAK,CAACG,KAAK,EAAEtW,KAAK,CAAC,CAAC,CAAC;EAChG;EAEAuW,gBAAgBA,CAACC,YAAY;IAC5BZ,+DAAW,CAACa,GAAG,CAAC;MAACR,GAAG,EAAE,wBAAwB;MAAEjW,KAAK,EAAEJ,IAAI,CAACC,SAAS,CAAC2W,YAAY;IAAC,CAAC,CAAC;IACrF,IAAI,CAACV,mBAAmB,CAACvE,IAAI,CAACiF,YAAY,CAAC;EAC5C;EAEAE,SAASA,CAAC1G,UAAoB;IAC7B4F,+DAAW,CAACa,GAAG,CAAC;MAACR,GAAG,EAAE,iBAAiB;MAAEjW,KAAK,EAAEJ,IAAI,CAACC,SAAS,CAACmQ,UAAU;IAAC,CAAC,CAAC;IAC5E,IAAI,CAAC+F,YAAY,CAACxE,IAAI,CAACvB,UAAU,CAAC;EACnC;EAEA2G,YAAYA,CAACX,QAA0C;IACtDJ,+DAAW,CAACa,GAAG,CAAC;MAACR,GAAG,EAAE,WAAW;MAAEjW,KAAK,EAAEJ,IAAI,CAACC,SAAS,CAACmW,QAAQ;IAAC,CAAC,CAAC;IACpE,IAAI,CAACA,QAAQ,CAACzE,IAAI,CAACyE,QAAQ,CAAC;EAC7B;EAEM3E,sBAAsBA,CAACuF,iBAA2B;IAAA,IAAA7Y,KAAA;IAAA,OAAAmC,oJAAA;MACvD,MAAM2W,WAAW,SAASla,oDAAc,CAACoB,KAAI,CAACiY,QAAQ,CAAC;MACvD,MAAMc,eAAe,GAAGD,WAAW,EAAEjL,MAAM,CAACmL,EAAE,IAAG;QAChD,OAAO,CAACH,iBAAiB,EAAEI,IAAI,CAACpe,CAAC,IAAIwd,MAAM,CAACxd,CAAC,CAAC,KAAKwd,MAAM,CAACW,EAAE,CAACE,EAAE,CAAC,CAAC;MAClE,CAAC,CAAC;MACFlZ,KAAI,CAAC4Y,YAAY,CAACG,eAAe,IAAI,EAAE,CAAC;IAAC;EAC1C;EAAC,QAAA3d,CAAA;qBAjCW2W,kBAAkB;EAAA;EAAA,QAAA1W,EAAA;WAAlB0W,kBAAkB;IAAA5B,OAAA,EAAlB4B,kBAAkB,CAAA3B,IAAA;IAAAC,UAAA,EADN;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;ACTyB;AACX;AACM;AACb;AACW;;;;;;AAI3C,MAAOjI,oBAAoB;EAE7B1L,YACY0c,WAAwB,EACxBvZ,WAAwB,EACxBL,MAAc,EACdE,eAAgC;IAHhC,KAAA0Z,WAAW,GAAXA,WAAW;IACX,KAAAvZ,WAAW,GAAXA,WAAW;IACX,KAAAL,MAAM,GAANA,MAAM;IACN,KAAAE,eAAe,GAAfA,eAAe;EACvB;EAEJ2Z,MAAMA,CAAA;IACF,IAAI,CAAC7Z,MAAM,CAACc,MAAM,CAACD,SAAS,CAACE,KAAK,IAAG;MACjC,IAAIA,KAAK,YAAYrC,0DAAa,EAAE;QAChC,IAAIqC,KAAK,CAACK,iBAAiB,KAAK,cAAc,IAAIL,KAAK,CAACK,iBAAiB,KAAK,UAAU,EAAE;UACtF,IAAI,CAAC0Y,yBAAyB,EAAE;QACpC;MACJ;IACJ,CAAC,CAAC;EACN;EAEMA,yBAAyBA,CAAA;IAAA,IAAAtZ,KAAA;IAAA,OAAAmC,oJAAA;MAC3B,MAAMoX,QAAQ,SAAS3a,oDAAc,CAACoB,KAAI,CAACoZ,WAAW,CAACI,gBAAgB,CAAC;MACxE,IAAI,CAACD,QAAQ,EAAE;MAEf,MAAME,UAAU,SAAS7a,oDAAc,CAACoB,KAAI,CAACH,WAAW,CAAC6Z,WAAW,CAAC;MACrE,IAAI,CAACD,UAAU,IAAI,EAAE,EAAE/S,MAAM,KAAK,CAAC,EAAE;MAErC,MAAMiT,WAAW,GAAG,CAACF,UAAU,IAAI,EAAE,EAAEG,KAAK,CAACxC,CAAC,IAAG;QAAG,OAAQA,CAAC,CAACT,UAAU,EAAEkD,QAAQ;MAAC,CAAC,CAAC;MACrF,IAAIF,WAAW,EAAE;MAEjB,MAAMG,YAAY,GAAG7N,MAAM,CAAClK,YAAY,CAACiC,OAAO,CAAC,+CAA+C,CAAC,CAAC;MAElG,IAAI8V,YAAY,EAAE;QACd,MAAMC,WAAW,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;QACxC,MAAMC,QAAQ,GAAGxM,IAAI,CAACyM,GAAG,CAACJ,WAAW,GAAGD,YAAY,CAAC;QACrD,MAAMM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAEjD,IAAIF,QAAQ,GAAGE,WAAW,EAAE;MAChC;MAEA,MAAMC,SAAS,SAASra,KAAI,CAACsa,wBAAwB,EAAE;MAEvD,IAAID,SAAS,EAAE;QACXZ,UAAU,CAAC1L,OAAO;UAAA,IAAA7L,IAAA,GAAAC,oJAAA,CAAC,WAAMiV,CAAC,EAAG;YACzB,MAAMpX,KAAI,CAACH,WAAW,CAAC0a,qBAAqB,CAACnD,CAAC,EAAE;cAAEyC,QAAQ,EAAE;YAAI,CAAE,CAAC;UACvE,CAAC;UAAA,iBAAA9W,EAAA;YAAA,OAAAb,IAAA,CAAAc,KAAA,OAAAC,SAAA;UAAA;QAAA,IAAC;MACN,CAAC,MAAM;QACHlB,YAAY,CAACC,OAAO,CAAC,+CAA+C,EAAE,IAAIgY,IAAI,EAAE,CAACC,OAAO,EAAE,CAACvG,QAAQ,EAAE,CAAC;MAC1G;IAAC;EACL;EAEM4G,wBAAwBA,CAAA;IAAA,IAAA/W,MAAA;IAAA,OAAApB,oJAAA;MAC1B,MAAMtH,CAAC,SAAS0I,MAAI,CAAC7D,eAAe,CAAC4C,MAAM,CAAC;QACxC9H,SAAS,EAAE0N,sBAAsB;QACjCsS,QAAQ,EAAE,aAAa;QACvBC,eAAe,EAAE;OACpB,CAAC;MAEF,MAAM5f,CAAC,CAACiI,OAAO,EAAE;MAEjB,OAAO,OAAOjI,CAAC,CAACqJ,YAAY,EAAE,EAAEhD,IAAI,CAACwZ,OAAO;IAAC;EACjD;EAAC,QAAAtf,CAAA;qBA5DQgN,oBAAoB,EAAAvM,sDAAA,CAAAJ,6DAAA,GAAAI,sDAAA,CAAA+K,sDAAA,GAAA/K,sDAAA,CAAAgL,mDAAA,GAAAhL,sDAAA,CAAAiL,2DAAA;EAAA;EAAA,QAAAzL,EAAA;WAApB+M,oBAAoB;IAAA+H,OAAA,EAApB/H,oBAAoB,CAAAgI,IAAA;IAAAC,UAAA,EADP;EAAM;;AAiE1B,SAAUlI,oBAAoBA,CAACwS,QAA8B;EAC/D,OAAO,MAAMA,QAAQ,CAACtB,MAAM,EAAE;AAClC;AA+BM,MAAOnR,sBAAsB;EAI/BxL,YACYgD,eAAgC;IAAhC,KAAAA,eAAe,GAAfA,eAAe;EACvB;EAEJlD,OAAOA,CAACke,OAAgB;IACpB,IAAI,CAAChb,eAAe,CAAClD,OAAO,CAAC;MAAEke;IAAO,CAAE,CAAC;EAC7C;EAAC,QAAAtf,CAAA;qBAVQ8M,sBAAsB,EAAArM,+DAAA,CAAAiL,2DAAA;EAAA;EAAA,QAAAzL,EAAA;UAAtB6M,sBAAsB;IAAAnL,SAAA;IAAAC,MAAA;MAAA2a,OAAA;IAAA;IAAAza,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAud,gCAAArd,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QAvBvB1B,4DAFR,kBAAgC,sBACX,qBACG;QAAAA,oDAAA,aAAM;QAAAA,0DAAA,EAAiB;QACvCA,4DAAA,wBAAmB;QAAAA,oDAAA,8BAAuB;QAC9CA,0DAD8C,EAAoB,EAChD;QAElBA,4DAAA,uBAAkB;QACdA,oDAAA,8OACA;QAAKA,uDAAL,SAAK,SAAK;QACVA,oDAAA,2HACJ;QAAAA,0DAAA,EAAmB;QAGfA,4DADJ,cAAgF,qBACX;QAAzBA,wDAAA,mBAAAgf,6DAAA;UAAA,OAASrd,GAAA,CAAAhB,OAAA,CAAQ,KAAK,CAAC;QAAA,EAAC;QAC5DX,uDAAA,yBAAuC;QACvCA,oDAAA,eACJ;QAAAA,0DAAA,EAAa;QACbA,4DAAA,qBAAoD;QAAxBA,wDAAA,mBAAAif,6DAAA;UAAA,OAAStd,GAAA,CAAAhB,OAAA,CAAQ,IAAI,CAAC;QAAA,EAAC;QAC/CX,uDAAA,yBAAuC;QACvCA,oDAAA,gBACJ;QAERA,0DAFQ,EAAa,EACX,EACC;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGuB;AAEhC,MAAOwQ,iBAAiB;EAAA,QAAAjR,CAAA,GACtB,KAAAwR,GAAG,GAAG;IACZuB,IAAI,EAAE;MACL4M,KAAK,EAAE,CAAC;MACR9Y,KAAK,EAAE,MAAM;MACb+Y,KAAK,EAAE,SAAS;MAChBnO,MAAM,EAAE,EAAE;MACVoO,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE,CAAC,YAAY;KACvB;IACD,YAAY,EAAE;MACbH,KAAK,EAAE,CAAC;MACR9Y,KAAK,EAAE,YAAY;MACnB4K,MAAM,EAAE,IAAI;MACZoO,OAAO,EAAE,KAAK;MACdE,UAAU,EAAE,QAAQ;MACpBD,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY;KACnD;IACDE,MAAM,EAAE;MACPL,KAAK,EAAE,CAAC;MACR9Y,KAAK,EAAE,QAAQ;MACf4K,MAAM,EAAE,GAAG;MACXoO,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,YAAY;KACnD;IACDG,MAAM,EAAE;MACPN,KAAK,EAAE,CAAC;MACR9Y,KAAK,EAAE,QAAQ;MACf4K,MAAM,EAAE,GAAG;MACXoO,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE,CAAC,YAAY;KACvB;IACD,eAAe,EAAE;MAChBH,KAAK,EAAE,CAAC;MACR9Y,KAAK,EAAE,eAAe;MACtB4K,MAAM,EAAE,IAAI;MACZoO,OAAO,EAAE,KAAK;MACdE,UAAU,EAAE,SAAS;MACrBD,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY;KAC/C;IACDI,OAAO,EAAE;MACRP,KAAK,EAAE,CAAC;MACR9Y,KAAK,EAAE,SAAS;MAChB4K,MAAM,EAAE,GAAG;MACXoO,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY;KAC/C;IACDK,UAAU,EAAE;MACXR,KAAK,EAAE,GAAG;MACV9Y,KAAK,EAAE,YAAY;MACnB4K,MAAM,EAAE,GAAG;MACXoO,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY;;GAEnG;;AAGI,MAAOM,UAAU;EAEtB9e,YAAA;IAIA,KAAA+e,WAAW,GAAQ,EAAE;IAHpB,IAAI,CAACC,MAAM,GAAG,EAAE;EACjB;EAMO,OAAOC,YAAYA,CAACC,MAAM,EAAErb,KAAK,EAAEsb,SAAS,EAAEC,WAAW;IAE/D,MAAMf,KAAK,GAAGc,SAAS,CAACE,QAAQ,IAAI9I,MAAM,CAAC8D,IAAI,CAAC6E,MAAM,CAAC;IACvDb,KAAK,CAAChN,OAAO,CAAC,UAAUiO,aAAa;MACpC;MACA,IAAIC,eAAe,GAAGJ,SAAS,CAACJ,WAAW,CAACO,aAAa,CAAC,IAAI,CAAC;MAC/D,IAAIE,cAAc,GAAG,IAAI;MACzB,MAAMC,YAAY,GAAG,EAAE;MACvB,KAAK,MAAMC,WAAW,IAAInJ,MAAM,CAAC8D,IAAI,CAAC6E,MAAM,CAACI,aAAa,CAAC,CAAC,EAAE;QAC7D,MAAMK,MAAM,GAAGT,MAAM,CAACI,aAAa,CAAC,CAACI,WAAW,CAAC;QACjDC,MAAM,CAACC,KAAK,GAAGD,MAAM,CAACC,KAAK,IAAI,EAAE;QACjC,OAAOD,MAAM,CAACC,KAAK,CAACN,aAAa,CAAC;QAClC,IAAIH,SAAS,CAACU,UAAU,CAACF,MAAM,CAAC1E,OAAO,EAAEqE,aAAa,EAAEJ,MAAM,CAAC,EAAE;UAChEO,YAAY,CAACrP,IAAI,CAACuP,MAAM,CAAC;QAC1B,CAAC,MAAM;UACN;UACA;QACD;QAEA,MAAMG,UAAU,GAAGZ,MAAM,CAACI,aAAa,CAAC,CAAC/P,MAAM,CAACmQ,WAAW,CAAC,GAAG,CAAC,CAAC;QACjE,IAAIK,aAAa,GAAGD,UAAU,IAAI,IAAI,GAAG,CAAC,GAAIH,MAAM,CAACrQ,KAAK,GAAGC,MAAM,CAACoQ,MAAM,CAACnQ,KAAK,CAAC,IAAKsQ,UAAU,CAACxQ,KAAK,GAAGC,MAAM,CAACuQ,UAAU,CAACtQ,KAAK,CAAC,CAAC;QAClI,IAAIwQ,aAAa,GAAGR,cAAc,IAAI,IAAI,GAAG,CAAC,GAAIA,cAAc,CAAClQ,KAAK,GAAGC,MAAM,CAACiQ,cAAc,CAAChQ,KAAK,CAAC,IAAKmQ,MAAM,CAACrQ,KAAK,GAAGC,MAAM,CAACoQ,MAAM,CAACnQ,KAAK,CAAC,CAAC;QAC9I,IAAIoB,QAAQ,GAAG,KAAK;QACpB,IAAIqP,WAAW,GAAGd,SAAS,CAACJ,WAAW,CAACO,aAAa,CAAC,GAAGC,eAAe,GAAG,CAAC;QAC5E,IAAIS,aAAa,KAAK,CAAC,EAAE;UACxBA,aAAa,GAAGhR,+CAAQ,CAACS,OAAO,CAAC5L,KAAK,EAAE2b,cAAc,EAAEG,MAAM,EAAEL,aAAa,EAAE;YAAE5P,MAAM,EAAE;UAAI,CAAE,CAAC;UAChG,IAAIsQ,aAAa,KAAK,CAAC,EAAE;YACxBpP,QAAQ,GAAG,IAAI;YACfqP,WAAW,GAAGT,cAAc,CAACI,KAAK,CAACN,aAAa,CAAC;UAClD;QACD;QACA,IAAIS,aAAa,KAAK,CAAC,EAAE;UACxBA,aAAa,GAAG/Q,+CAAQ,CAACS,OAAO,CAAC5L,KAAK,EAAE8b,MAAM,EAAEG,UAAU,EAAER,aAAa,EAAE;YAAE5P,MAAM,EAAE;UAAI,CAAE,CAAC;QAC7F;QAEA,IAAI6P,eAAe,GAAG,CAAC,IAAI3O,QAAQ,EAAE;UACpC;UACA;UACA;UACA;UACA;UACA;UACA;UAEA;UACA;UACA,IAAI,CAACwO,WAAW,IAAKW,aAAa,KAAK,CAAC,IAAIC,aAAa,KAAK,CAAE,EAAE;YACjE,IAAIT,eAAe,GAAG,CAAC,IAAI,CAACH,WAAW,EAAE;cAAG;cAC3CI,cAAc,GAAGG,MAAM;cACvBA,MAAM,CAACC,KAAK,CAACN,aAAa,CAAC,GAAGW,WAAW;cACzCd,SAAS,CAACe,OAAO,CAACP,MAAM,CAAC1E,OAAO,EAAEqE,aAAa,CAAC;cAChDC,eAAe,EAAE;YAClB,CAAC,MAAM;cAAE;cACR,OAAOI,MAAM,CAACC,KAAK,CAACN,aAAa,CAAC;YACnC;UACD,CAAC,MAAM;YACN;YACAE,cAAc,GAAGG,MAAM;YACvBA,MAAM,CAACC,KAAK,CAACN,aAAa,CAAC,GAAGW,WAAW;YACzCV,eAAe,GAAGvO,IAAI,CAACC,GAAG,CAAC,EAAEsO,eAAe,EAAE,CAAC,CAAC;UACjD;QACD;QACA;MACD;MACAL,MAAM,CAACI,aAAa,CAAC,GAAGG,YAAY;IACrC,CAAC,CAAC;EAEH;EAEAU,KAAKA,CAACpB,WAAW;IAChB,IAAI,CAACA,WAAW,GAAGA,WAAW,IAAI,EAAE;IACpC,KAAK,MAAMrI,CAAC,IAAIH,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAAC2E,MAAM,CAAC,EAAE;MACzC,IAAI,CAACA,MAAM,CAACtI,CAAC,CAAC,GAAG,EAAE;IACpB;EACD;EACA;EACAwJ,OAAOA,CAACjF,OAAO,EAAEmF,KAAK;IACrB,IAAI,CAACpB,MAAM,CAACoB,KAAK,CAAC,GAAG,IAAI,CAACpB,MAAM,CAACoB,KAAK,CAAC,IAAI,EAAE;IAC7C,IAAI,CAACpB,MAAM,CAACoB,KAAK,CAAC,CAAChQ,IAAI,CAAC6K,OAAO,CAAC;IAChC,IAAI,IAAI,CAAC8D,WAAW,IAAI,IAAI,CAACA,WAAW,CAACqB,KAAK,CAAC,EAAE;MAChD,OAAO,IAAI,CAACrB,WAAW,CAACqB,KAAK,CAAC,GAAG,IAAI,CAACpB,MAAM,CAACoB,KAAK,CAAC,CAACpW,MAAM;IAC3D,CAAC,MAAM;MACN,OAAO,CAAC;IACT;EACD;EACA;EACA6V,UAAUA,CAAC5E,OAAO,EAAEmF,KAAK,EAAElB,MAAO;IACjC;IACA;IACA,OAAO,IAAI;EACZ;EACAmB,YAAYA,CAACD,KAAK,EAAEE,QAAQ;IAC3B,IAAI,IAAI,CAACvB,WAAW,IAAI,IAAI,CAACA,WAAW,CAACqB,KAAK,CAAC,IAAI,IAAI,CAACrB,WAAW,CAACqB,KAAK,CAAC,GAAG,CAAC,EAAE;MAC/E,OAAO,IAAI,CAACrB,WAAW,CAACqB,KAAK,CAAC;IAC/B;IACA,OAAO,CAAC;EACT;;AAIK,MAAOG,aAAc,SAAQzB,UAAU;EAC5C9e,YAAYwgB,MAAM,EAAE3Q,UAAU;IAC7B,KAAK,EAAE;IACP,IAAI,CAACwP,QAAQ,GAAG,CAAC,MAAM,CAAC,CAACoB,MAAM,CAACD,MAAM,CAAC,CAACC,MAAM,CAAC5Q,UAAU,CAACsB,MAAM,CAAEuP,CAAC,IAAKA,CAAC,KAAK,MAAM,CAAC,CAAC;EACvF;EAGA;EACA;EACAb,UAAUA,CAAC5E,OAAO,EAAEmF,KAAK,EAAElB,MAAO;IACjC,MAAMyB,YAAY,GAAG,IAAI,CAACtB,QAAQ,CAACuB,OAAO,CAACR,KAAK,CAAC;IACjD,KAAK,IAAI1F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiG,YAAY,EAAEjG,CAAC,EAAE,EAAE;MACtC,IAAI,CAAC,IAAI,CAACsE,MAAM,CAAC,IAAI,CAACK,QAAQ,CAAC3E,CAAC,CAAC,CAAC,IAAI,EAAE,EAAEkG,OAAO,CAAC3F,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;QAAE;QACpE,OAAO,KAAK;MACb;IACD;IACA,OAAO,IAAI;EACZ;EAEAoF,YAAYA,CAACD,KAAK,EAAEE,QAAQ;IAC3B,IAAI,IAAI,CAACvB,WAAW,IAAI,IAAI,CAACA,WAAW,CAACqB,KAAK,CAAC,IAAI,IAAI,CAACrB,WAAW,CAACqB,KAAK,CAAC,GAAG,CAAC,EAAE;MAC/E,QAAQA,KAAK;QACZ,KAAK,MAAM;UAAE,OAAO,IAAI,CAACrB,WAAW,CAACqB,KAAK,CAAC;QAC3C,KAAK,IAAI;QAAE,KAAK,GAAG;QAAE,KAAK,GAAG;QAAE,KAAK,GAAG;UACtC,OAAOE,QAAQ,GAAG,IAAI,CAACvB,WAAW,CAACqB,KAAK,CAAC,GAAG,IAAI,CAACrB,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAACA,WAAW,CAACqB,KAAK,CAAC;QAC/F,KAAK,SAAS;QAAE,KAAK,QAAQ;QAAE,KAAK,QAAQ;UAC3C,OAAOE,QAAQ,GAAG,IAAI,CAACvB,WAAW,CAACqB,KAAK,CAAC,GAAG,IAAI,CAACrB,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAACA,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAACA,WAAW,CAACqB,KAAK,CAAC;MACzH;IACD;IACA,OAAO,CAAC;EACT;;AAIK,MAAOS,qBAAsB,SAAQ/B,UAAU;EACpD9e,YAAYwgB,MAAM,EAAE3Q,UAAU;IAC7B,KAAK,EAAE;IACP,IAAI,CAACwP,QAAQ,GAAG,CAAC,MAAM,CAAC,CAACoB,MAAM,CAAC5Q,UAAU,CAACsB,MAAM,CAAEuP,CAAC,IAAKA,CAAC,KAAK,MAAM,CAAC,CAAC,CAACD,MAAM,CAACD,MAAM,CAAC;EAEvF;EAEA;EACAX,UAAUA,CAAC7F,SAAS,EAAEoG,KAAK,EAAElB,MAAO;IACnC,IAAIkB,KAAK,KAAK,MAAM,EAAE;MACrB,OAAO,IAAI;IACZ;IAEA,IAAI,CAAC,IAAI,CAACpB,MAAM,CAACvN,IAAI,IAAI,EAAE,EAAEmP,OAAO,CAAC5G,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;MAAE;MACzD,OAAO,KAAK;IACb;IAEA,IAAIrK,iBAAiB,CAACO,GAAG,CAACkQ,KAAK,CAAC,EAAE;MACjC,OAAO,IAAI;IACZ;IAEA;IACA,KAAK,MAAMU,CAAC,IAAI5B,MAAM,EAAE;MACvB,IAAI4B,CAAC,KAAK,MAAM,IAAInR,iBAAiB,CAACO,GAAG,CAAC4Q,CAAC,CAAC,IAAI,IAAI,EAAE;QACrD,IAAI5B,MAAM,CAAC4B,CAAC,CAAC,CAACpJ,IAAI,CAAEhB,CAAC,IAAKA,CAAC,CAACuE,OAAO,KAAKjB,SAAS,CAAC,EAAE;UACnD,OAAO,KAAK;QACb;MACD;IACD;IACA;IACA,OAAO,IAAI;EACZ;;AAIM,MAAM+G,gBAAgB,GAAGA,CAACC,gBAAgB,EAAER,MAAgB,EAAE3Q,UAAoB,KAAI;EAC5F,IAAIsP,SAAqB;EAEzB,IAAI6B,gBAAgB,EAAE;IACrB,QAAQ,CAACA,gBAAgB,IAAI,EAAE,EAAEC,KAAK;MACrC,KAAK,MAAM;QACV9B,SAAS,GAAG,IAAIoB,aAAa,CAACC,MAAM,EAAE3Q,UAAU,CAAC;QACjD;MACD,KAAK,UAAU;QACdsP,SAAS,GAAG,IAAI0B,qBAAqB,CAACL,MAAM,EAAE3Q,UAAU,CAAC;QACzD;MAED;QACCsP,SAAS,GAAG,IAAIL,UAAU,EAAE;IAC9B;IAEAK,SAAS,CAACgB,KAAK,CAACa,gBAAgB,CAACjC,WAAW,CAAC;EAC9C,CAAC,MAAM;IACNI,SAAS,GAAG,IAAIL,UAAU,EAAE;IAC5BK,SAAS,CAACgB,KAAK,CAAC,IAAI,CAAC;EACtB;EACA,OAAOhB,SAAS;AACjB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpQiD;AACC;AACkB;AACxB;AACD;AACiH;AAClG;AAErB;AACG;;;;;AAkBnC,MAAO7c,cAAc;EAOzBtC,YACU6C,IAAgB,EAChB6Z,WAAwB,EACxB2E,IAAY,EACZxV,UAA4B,EAC5B/I,MAAc;IAJd,KAAAD,IAAI,GAAJA,IAAI;IACJ,KAAA6Z,WAAW,GAAXA,WAAW;IACX,KAAA2E,IAAI,GAAJA,IAAI;IACJ,KAAAxV,UAAU,GAAVA,UAAU;IACV,KAAA/I,MAAM,GAANA,MAAM;IAVhB,KAAAkT,mBAAmB,GAAG,IAAIxB,iDAAe,CAAckB,SAAS,CAAC;IACjE,KAAAK,QAAQ,GAAG,IAAIvB,iDAAe,CAACxD,IAAI,CAACqH,MAAM,EAAE,CAAC;IAC7C,KAAAiJ,UAAU,GAAG,IAAI9M,iDAAe,CAACkB,SAAS,CAAC;IAC3C,KAAA6L,OAAO,GAAG,IAAI/M,iDAAe,CAAC,EAAE,CAAC;IAS/B,IAAI,CAACkI,WAAW,CAAC8E,sBAAsB,EAAE,CAACvL,IAAI,CAC5CxB,gDAAU,CAAChO,GAAG,IAAG;MACf,MAAM7B,GAAG,GAAG4H,QAAQ,CAACiV,IAAI;MACzB,IAAI7c,GAAG,EAAEkF,UAAU,CAAC,IAAI,CAAC+B,UAAU,CAAC5D,GAAG,EAAE,CAACoE,mBAAmB,CAACC,YAAY,CAAC,EAAE;QAC3E;QACA,IAAI1H,GAAG,CAACoJ,QAAQ,CAAC,QAAQ,CAAC,KAAKpJ,GAAG,CAACoJ,QAAQ,CAAC,QAAQ,CAAC,IAAIpJ,GAAG,CAACoJ,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE;UAC/E,OAAO,IAAI,CAAC0O,WAAW,CAACgF,sBAAsB,CAAC9c,GAAG,CAAC,CAACqR,IAAI,CACtDtB,+CAAS,CAAC,MAAM,IAAI,CAAC+H,WAAW,CAAC8E,sBAAsB,EAAE,CAAC,EAC1D/M,gDAAU,CAAChO,GAAG,IAAG;YACfhC,OAAO,CAACC,GAAG,CAAC+B,GAAG,CAAC;YAChB,OAAOwO,wCAAE,CAACS,SAAS,CAAC;UACtB,CAAC,CAAC,CACH;QACH;MACF;MACA,OAAOT,wCAAE,CAACS,SAAS,CAAC;IACtB,CAAC,CAAC,CACH,CAAC/R,SAAS,CAACuB,KAAK,IAAG;MAClB,IAAI,CAACoc,UAAU,CAACxK,IAAI,CAAC5R,KAAK,CAAC;IAC7B,CAAC,CAAC;IAEFwP,mDAAa,CAAC,CACZ,IAAI,CAACqB,QAAQ,EACb,IAAI,CAACuL,UAAU,CAChB,CAAC,CAACrL,IAAI,CACLlB,+CAAQ,CAAC,CAAC,CAAC4M,QAAQ,EAAEzc,KAAK,CAAC,KAAI;MAC7B,IAAIA,KAAK,EAAE;QACT,OAAO,IAAI,CAACwX,WAAW,CAACkF,KAAK;MAC/B,CAAC,MAAM;QACL,OAAO3M,wCAAE,CAAC,IAAI,CAAC;MACjB;IACF,CAAC,CAAC,EACFN,+CAAS,CAACkN,WAAW,IAAG;MACtB,IAAIA,WAAW,EAAE;QACf,OAAO,IAAI,CAAChf,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,8BAA8B8U,WAAW,CAACC,GAAG,sCAAsC,CAAC,CACnI7L,IAAI,CACHtB,+CAAS,CAACoN,YAAY,IAAG;UACvB,IAAIA,YAAY,GAAG,CAAC,CAAC,EAAE;YACrB,OAAO9M,wCAAE,CAAC8M,YAAY,CAAC,CAAC,CAAC,CAAC;UAC5B,CAAC,MAAM;YACL,OAAO,IAAI,CAACC,oBAAoB,CAACH,WAAW,CAAC;UAC/C;QACF,CAAC,CAAC,CACH;MACH,CAAC,MAAM;QACL,OAAO5M,wCAAE,CAAC,IAAI,CAAC;MACjB;IACF,CAAC,CAAC,EACFR,gDAAU,CAAChO,GAAG,IAAG;MACfhC,OAAO,CAACiC,IAAI,CAAC,iCAAiC,CAAC;MAC/CjC,OAAO,CAAC8D,KAAK,CAAC9B,GAAG,CAAC;MAClB,OAAOwO,wCAAE,CAAC,IAAI,CAAC;IACjB,CAAC,CAAC,CACH,CAACtR,SAAS,CAAC,IAAI,CAACqS,mBAAmB,CAAC;IAErC,IAAI,CAACA,mBAAmB,CAACC,IAAI,CAC3BlB,+CAAQ,CAAC2B,CAAC,IAAG;MACX,IAAIA,CAAC,EAAE;QACL,OAAO,IAAI,CAAC7T,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,QAAQ,CAAC;MAC3D;MACA,OAAO,EAAE;IACX,CAAC,CAAC,EACF+H,0CAAG,CAACmN,MAAM,IAAG;MACX,MAAMC,aAAa,GAAG,EAAE;MACxBD,MAAM,CAAC5Q,OAAO,CAAC/I,CAAC,IAAG;QACjB,IAAI,CAAC4Z,aAAa,CAAC5Z,CAAC,CAACqP,KAAK,CAAC,IAAI,CAACuK,aAAa,CAAC5Z,CAAC,CAACqP,KAAK,CAAC,CAACwK,QAAQ,EAAE;UAC/DD,aAAa,CAAC5Z,CAAC,CAACqP,KAAK,CAAC,GAAGrP,CAAC;QAC5B;MACF,CAAC,CAAC;MACF,OAAOiO,MAAM,CAACC,MAAM,CAAC0L,aAAa,CAAC;IACrC,CAAC,CAAC,CACH,CAACve,SAAS,CAAC,IAAI,CAAC4d,OAAO,CAAC;EAC3B;EAEAa,KAAKA,CAAA;IACH,IAAIC,WAAW;IAEf,IAAI/W,sDAAS,CAACiB,gBAAgB,EAAE,EAAE;MAChC8V,WAAW,GAAG;QACNC,OAAOA,CAAC1d,GAAW;UAAA,OAAAa,oJAAA;YACvB,MAAMlD,uDAAO,CAACggB,IAAI,CAAC;cAAE3d,GAAG;cAAE4d,UAAU,EAAE;YAAO,CAAE,CAAC;UAAC;QACnD;OACD;IACH;IAEAtgB,qDAAc,CACZ,IAAI,CAACwa,WAAW,CAAC+F,iBAAiB,CAChCJ,WAAW,CACZ,CACF;EACH;EAEAL,oBAAoBA,CAACH,WAAW;IAC9B,IAAIzJ,UAAU,GAAGyJ,WAAW,CAACzJ,UAAU;IACvC,IAAIsK,WAAW,GAAGb,WAAW,CAACa,WAAW;IACzC,IAAI,CAACb,WAAW,CAACzJ,UAAU,EAAE;MAC3B,MAAMuK,KAAK,GAAGd,WAAW,CAAC9d,IAAI,CAAC6c,OAAO,CAAC,GAAG,CAAC;MAC3C,IAAI+B,KAAK,GAAG,CAAC,EAAE;QACbvK,UAAU,GAAGyJ,WAAW,CAAC9d,IAAI,EAAEgG,SAAS,CAAC,CAAC,EAAE4Y,KAAK,CAAC;QAClDD,WAAW,GAAGb,WAAW,CAAC9d,IAAI,CAACgG,SAAS,CAAC4Y,KAAK,GAAC,CAAC,CAAC;MACnD,CAAC,MAAM;QACLvK,UAAU,GAAGyJ,WAAW,CAAC9d,IAAI;MAC/B;IACF;IACA,MAAM6e,WAAW,GAAG;MAClBxK,UAAU;MACVsK,WAAW;MACX/K,KAAK,EAAEkK,WAAW,CAAClK,KAAK;MACxBkL,aAAa,EAAE,CACbhB,WAAW,CAACC,GAAG;KAElB;IACD,OAAO,IAAI,CAACjf,IAAI,CAACmV,IAAI,CAAC,GAAG/V,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,cAAc,EAAE6V,WAAW,CAAC;EAC/E;EAEME,MAAMA,CAAA;IAAA,IAAAxf,KAAA;IAAA,OAAAmC,oJAAA;MACV,MAAMsd,YAAY,GAAQ;QACxBC,YAAY,EAAE;OACf;MACD,IAAIV,OAAO;MACX,IAAIhX,sDAAS,CAACiB,gBAAgB,EAAE,EAAE;QAChCwW,YAAY,CAACC,YAAY,CAACC,QAAQ,GAAG,uCAAuChhB,qEAAW,CAAC8J,aAAa,CAACD,MAAM,uDAAuD;QACnKiX,YAAY,CAACT,OAAO;UAAA,IAAA9c,IAAA,GAAAC,oJAAA,CAAG,WAAOb,GAAG,EAAI;YAAG,MAAMrC,uDAAO,CAACggB,IAAI,CAAC;cAAE3d;YAAG,CAAE,CAAC;UAAE,CAAC;UAAA,iBAAAyB,EAAA;YAAA,OAAAb,IAAA,CAAAc,KAAA,OAAAC,SAAA;UAAA;QAAA;MACxE,CAAC,MAAM;QACLwc,YAAY,CAACC,YAAY,CAACC,QAAQ,GAAG,GAAGzW,QAAQ,CAACC,MAAM,EAAE;QACzD;MACF;MAEAnJ,KAAI,CAACoZ,WAAW,CAACoG,MAAM,CAACC,YAAY,CAAC,CAACpf,SAAS,CAAC,MAAK;QACnD;MAAA,CACD,CAAC;IAAC;EACL;EAEMuf,eAAeA,CAACvL,KAAK,EAAEwL,MAAO;IAAA,IAAAtc,MAAA;IAAA,OAAApB,oJAAA;MAClC,MAAMvD,qDAAc,CAAC2E,MAAI,CAAChE,IAAI,CAACmV,IAAI,CAAC,GAAG/V,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,SAASoW,MAAM,GAAG,cAAc,GAAG,EAAE,EAAE,EAAE;QAAExL;MAAK,CAAE,CAAC,CAAC;MACnH9Q,MAAI,CAACkP,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EACpC;EAEM+K,kBAAkBA,CAAC5G,EAAE;IAAA,IAAAxV,MAAA;IAAA,OAAAvB,oJAAA;MACzB,MAAMvD,qDAAc,CAAC8E,MAAI,CAACnE,IAAI,CAACoW,MAAM,CAAC,GAAGhX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,UAAUyP,EAAE,EAAE,CAAC,CAAC;MACjFxV,MAAI,CAAC+O,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EACpC;EAEA1T,SAASA,CAACC,GAAG,EAACC,KAAK;IAAA,IAAAuC,MAAA;IACjB,IAAI,CAACia,IAAI,CAACgC,GAAG,eAAA5d,oJAAA,CAAC,aAAW;MACvB,IAAIb,GAAG,EAAEkF,UAAU,CAAC1C,MAAI,CAACyE,UAAU,CAAC5D,GAAG,EAAE,CAACoE,mBAAmB,CAACC,YAAY,CAAC,EAAE;QAC3E;QACA,IAAI1H,GAAG,CAACoJ,QAAQ,CAAC,QAAQ,CAAC,KACvBpJ,GAAG,CAACoJ,QAAQ,CAAC,QAAQ,CAAC,IAAIpJ,GAAG,CAACoJ,QAAQ,CAAC,OAAO,CAAC,CAAC,EACjD;UACA;UACA5G,MAAI,CAACsV,WAAW,CACfgF,sBAAsB,CAAC9c,GAAG,CAAC,CAACqR,IAAI,CAC/Bf,0CAAG,CAAC,MAAMrQ,KAAK,EAAE,CAAC,EAClB8P,+CAAS,CAAC,MAAMvN,MAAI,CAACsV,WAAW,CAAC8E,sBAAsB,EAAE,CAAC,CAC3D,CAAC7d,SAAS,CAACuB,KAAK,IAAG;YAClBkC,MAAI,CAACka,UAAU,CAACxK,IAAI,CAAC5R,KAAK,CAAC;UAC7B,CAAC,CAAC;QACJ,CAAC,MAAM;UACLL,KAAK,EAAE;QACT;MACF,CAAC,MAAM;QACL,MAAMye,SAAS,GAAGlC,sCAAQ,CAACxc,GAAG,CAAC;QAC/B,IAAI0e,SAAS,EAAE;UACblc,MAAI,CAACtE,MAAM,CAACmH,aAAa,CAACqZ,SAAS,CAACC,QAAQ,CAAC;QAC/C;MACF;IACF,CAAC,EAAC;EACJ;EAGMtK,MAAMA,CAAA;IAAA,IAAAxR,MAAA;IAAA,OAAAhC,oJAAA;MACV,MAAMyQ,OAAO,SAAShU,qDAAc,CAACuF,MAAI,CAACuO,mBAAmB,CAAC;MAC9D,IAAIE,OAAO,EAAE;QACX,aAAahU,qDAAc,CAACuF,MAAI,CAAC5E,IAAI,CAACoW,MAAM,CAAC,GAAGhX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,gBAAgBmJ,OAAO,CAACC,GAAG,EAAE,CAAC,CAAC;MACzG;IAAC;EACH;EAAC,QAAAzX,CAAA;qBA9LU4D,cAAc,EAAAnD,uDAAA,CAAAJ,6DAAA,GAAAI,uDAAA,CAAA+K,8DAAA,GAAA/K,uDAAA,CAAAA,kDAAA,GAAAA,uDAAA,CAAA+K,mEAAA,GAAA/K,uDAAA,CAAAgL,oDAAA;EAAA;EAAA,QAAAxL,EAAA;WAAd2D,cAAc;IAAAmR,OAAA,EAAdnR,cAAc,CAAAoR,IAAA;IAAAC,UAAA,EAFb;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB+B;AAElB;AAEgB;AACN;AACgB;AACV;AAC4B;;;;;AAiCvE,MAAO+P,cAAc;EAQ1B1jB,YAAoB2jB,aAA4B,EAAUrP,GAAe,EAAUjR,WAA8B;IAA7F,KAAAsgB,aAAa,GAAbA,aAAa;IAAyB,KAAArP,GAAG,GAAHA,GAAG;IAAsB,KAAAjR,WAAW,GAAXA,WAAW;IAL9F,KAAAugB,OAAO,GAAuB,IAAIxI,+CAAa,CAAM,CAAC,CAAC;EAK8D;EAGrHyI,IAAIA,CAAC3I,IAAS;IACb,IAAI,CAACA,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC4I,YAAY,GAAGpO,SAAS;IAC7B,IAAI,CAACqO,OAAO,EAAE;IACd,OAAO,IAAI,CAACH,OAAO;EACpB;EAEMG,OAAOA,CAAA;IAAA,IAAAzgB,KAAA;IAAA,OAAAmC,oJAAA;MACZ,MAAMue,MAAM,SAAS1gB,KAAI,CAACD,WAAW,CAACuC,MAAM,CAAC;QAC5CE,OAAO,EAAE;OACT,CAAC;MAEFxC,KAAI,CAAC2gB,OAAO,GAAG,IAAI;MACnBD,MAAM,CAAC5d,OAAO,EAAE;MAEhB,MAAM8d,SAAS,GAAQ;QACtBC,MAAM,EAAEliB,qEAAW,CAACqY,WAAW,CAAC8J,MAAM;QACtCC,GAAG,EAAE,GAAGpiB,qEAAW,CAACqY,WAAW,CAAC3c,IAAI,IAAI2F,KAAI,CAAC4X,IAAI,CAACoJ,OAAO,IAAI,EAAE,GAAGhhB,KAAI,CAAC4X,IAAI,CAACsB,EAAE;OAC9E;MACD,IAAIlZ,KAAI,CAACwgB,YAAY,EAAE;QACtBI,SAAS,CAACK,eAAe,GAAGjhB,KAAI,CAACwgB,YAAY;MAC9C;MACA,IAAI;QACH,MAAMtf,IAAI,SAASlB,KAAI,CAACgR,GAAG,CAACN,EAAE,CAACwQ,IAAI,CAAC,IAAIf,gEAAgB,CAACS,SAAS,CAAC,CAAC;QACpE,MAAMne,IAAI,SAASvB,IAAI,CAACigB,IAAI,CAACC,iBAAiB,EAAE;QAChDphB,KAAI,CAACqhB,OAAO,GAAGxf,IAAI,CAACuW,KAAK,CAAC3V,IAAI,CAAC;QAC/BzC,KAAI,CAACwgB,YAAY,GAAGtf,IAAI,CAACogB,YAAY;QACrCthB,KAAI,CAACuhB,gBAAgB,EAAE;QACvBvhB,KAAI,CAACsgB,OAAO,CAAC9M,IAAI,CAACxT,KAAI,CAACwhB,UAAU,CAAC;QAClCxhB,KAAI,CAAC2gB,OAAO,GAAG,KAAK;QACpBD,MAAM,CAAClkB,OAAO,EAAE;QAChB,OAAOwD,KAAI,CAACwhB,UAAU;MACvB,CAAC,CAAC,OAAOre,GAAG,EAAE;QACb,IAAIA,GAAG,CAACse,SAAS,CAACC,cAAc,KAAK,GAAG,EAAE;UACzC1hB,KAAI,CAACsgB,OAAO,CAAC9M,IAAI,CAAC;YAAE,GAAGxT,KAAI,CAACwhB;UAAU,CAAE,CAAC;QAC1C,CAAC,MAAM;UACNxhB,KAAI,CAACsgB,OAAO,CAACrb,KAAK,CAAC9B,GAAG,CAAC;QACxB;MACD;MAEAnD,KAAI,CAAC2gB,OAAO,GAAG,KAAK;MACpBD,MAAM,CAAClkB,OAAO,EAAE;IAAC;EAClB;EAEA+kB,gBAAgBA,CAAA;IACf,IAAI,CAACC,UAAU,GAAG;MACjBG,IAAI,EAAE,EAAE;MACR3K,WAAW,EAAE,EAAE;MACf4K,WAAW,EAAE,EAAE;MACfC,aAAa,EAAE,EAAE;MACjBC,oBAAoB,EAAE,EAAE;MACxBC,WAAW,EAAE,EAAE;MACfC,MAAM,EAAE;QACPC,KAAK,EAAE,EAAE;QACTC,KAAK,EAAE,EAAE;QACTC,WAAW,EAAE,EAAE;QACfC,UAAU,EAAE,EAAE;QACdC,SAAS,EAAE,EAAE;QACbC,eAAe,EAAE;OACjB;MACDC,cAAc,EAAEnQ,SAAS;MACzBoQ,IAAI,EAAEpQ;KACN;IAED,IAAI,CAACoP,UAAU,CAACgB,IAAI,GAAG,IAAI,CAACnB,OAAO;IAEnC,KAAK,MAAMnI,EAAE,IAAIjG,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACsK,OAAO,CAAC,EAAE;MAC3C,MAAMoB,MAAM,GAAG,IAAI,CAACpB,OAAO,CAACnI,EAAE,CAAC;MAC/B,IAAIuJ,MAAM,CAAC/K,QAAQ,EAAE;QACpB,OAAO,IAAI,CAAC2J,OAAO,CAACnI,EAAE,CAAC;QACvB;MACD;MACA,IAAI,CAACsI,UAAU,CAACQ,MAAM,CAACS,MAAM,CAACC,KAAK,CAAC,GAAG,IAAI,CAAClB,UAAU,CAACQ,MAAM,CAACS,MAAM,CAACC,KAAK,CAAC,IAAI,EAAE;MACjF,IAAI,CAAClB,UAAU,CAACQ,MAAM,CAACS,MAAM,CAACC,KAAK,CAAC,CAAC5V,IAAI,CAAC2V,MAAM,CAAC;MAEjD,QAAQA,MAAM,CAACC,KAAK;QACnB,KAAK,aAAa;UACjB,IAAI,CAAClB,UAAU,CAACxK,WAAW,GAAGyL,MAAM;UACpC,IAAI,CAAC,IAAI,CAACjB,UAAU,CAACxK,WAAW,CAACkG,MAAM,IAAI,EAAE,EAAExW,MAAM,KAAK,CAAC,EAAE;YAC5D,IAAI,CAAC8a,UAAU,CAACxK,WAAW,CAACkG,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;UAC3D,CAAC,MAAM,IAAI,OAAO,IAAI,CAACsE,UAAU,CAACxK,WAAW,CAACkG,MAAM,KAAK,QAAQ,EAAE;YAClE,IAAI,CAACsE,UAAU,CAACxK,WAAW,CAACkG,MAAM,GAAG,IAAI,CAACsE,UAAU,CAACxK,WAAW,CAACkG,MAAM,CAAC3X,KAAK,CAAC,GAAG,CAAC;UACnF;UACA;QACD,KAAK,OAAO;UACX,IAAI,CAACod,WAAW,CAACF,MAAM,CAAC;UACxB;QACD,KAAK,iBAAiB;UACrB,IAAI,CAACG,cAAc,CAACH,MAAM,CAAC;UAC3B;MACF;IACD;IACA,KAAK,MAAMvJ,EAAE,IAAIjG,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACsK,OAAO,CAAC,EAAE;MAC3C,MAAMoB,MAAM,GAAG,IAAI,CAACpB,OAAO,CAACnI,EAAE,CAAC;MAE/B,QAAQuJ,MAAM,CAACC,KAAK;QACnB,KAAK,YAAY;UAChB,IAAI,CAAClB,UAAU,CAACM,oBAAoB,CAACW,MAAM,CAAC9K,OAAO,CAAC,GAAG,IAAI,CAAC6J,UAAU,CAACM,oBAAoB,CAACW,MAAM,CAAC9K,OAAO,CAAC,IAAI,EAAE;UACjH,IAAI,CAAC6J,UAAU,CAACM,oBAAoB,CAACW,MAAM,CAAC9K,OAAO,CAAC,CAAC8K,MAAM,CAACliB,KAAK,CAAC,GAAGkiB,MAAM;UAC3E;QACD,KAAK,OAAO;UACX,IAAI,CAACI,WAAW,CAACJ,MAAM,CAAC;UACxB;QACD,KAAK,aAAa;UACjB,IAAI,CAACK,iBAAiB,CAACL,MAAM,CAAC;MAChC;IACD;IAIA,KAAK,MAAMM,OAAO,IAAI9P,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACyK,UAAU,CAACI,WAAW,CAAC,EAAE;MAC/D,MAAMoB,IAAI,GAAG,IAAI,CAACxB,UAAU,CAACI,WAAW,CAACmB,OAAO,CAAC;MACjDC,IAAI,CAACnX,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KAAKtW,CAAC,CAACuW,QAAQ,GAAGD,CAAC,CAACC,QAAQ,CAAC;MAC5C,MAAMC,MAAM,GAAG,EAAE;MACjB,MAAMrV,MAAM,GAAG,EAAE;MACjB,KAAK,MAAMsV,QAAQ,IAAIJ,IAAI,EAAE;QAC5B,MAAMK,GAAG,GAAG,IAAI,CAAChC,OAAO,CAAC+B,QAAQ,CAACC,GAAG,CAAC;QACtC,IAAIA,GAAG,EAAE;UACR,IAAI,CAACF,MAAM,CAACE,GAAG,CAACC,SAAS,CAAC,EAAE;YAC3BxV,MAAM,CAAChB,IAAI,CAAC;cACXwW,SAAS,EAAE,IAAI,CAACjC,OAAO,CAACgC,GAAG,CAACC,SAAS,CAAC;cACtCN,IAAI,EAAE,CAACK,GAAG;aACV,CAAC;UACH,CAAC,MAAM;YACNvV,MAAM,CAACA,MAAM,CAACpH,MAAM,GAAG,CAAC,CAAC,CAACsc,IAAI,CAAClW,IAAI,CAACuW,GAAG,CAAC;UACzC;QACD;MACD;MACA,IAAI,CAAC7B,UAAU,CAACK,aAAa,CAACkB,OAAO,CAAC,GAAGjV,MAAM,CAACD,MAAM,CAAC4F,CAAC,IAAG;QAC1D,OAAOA,CAAC,CAAC6P,SAAS,EAAEC,WAAW,GAAG,CAAC;MACpC,CAAC,CAAC;IACH;IAEA,IAAI,CAAC/B,UAAU,CAACe,cAAc,GAAG,IAAI,CAAClC,aAAa,CAACmD,KAAK,CAAC,IAAI,CAAChC,UAAU,CAACxK,WAAW,EAAE,IAAI,CAACwK,UAAU,CAACQ,MAAM,CAAC;EAE/G;EAEAW,WAAWA,CAACpiB,KAAU;IACrB;IAEA,IAAIA,KAAK,CAACkjB,WAAW,IAAIljB,KAAK,CAACmjB,WAAW,KAAK,CAAC,EAAE;MACjD,IAAI,CAAClC,UAAU,CAACG,IAAI,CAAC,UAAU,CAAC,GAAI,IAAI,CAACH,UAAU,CAACG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAG;MAC3E,IAAI,CAACH,UAAU,CAACG,IAAI,CAAC,UAAU,CAAC,CAAC7U,IAAI,CAACvM,KAAK,CAAC;MAC5C,IAAI,CAACihB,UAAU,CAACG,IAAI,CAAC,UAAU,CAAC,CAAC9V,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KACzCtW,CAAC,CAAC+W,WAAW,IAAI/W,CAAC,CAAC8W,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,IAAKR,CAAC,CAACS,WAAW,IAAIT,CAAC,CAACQ,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CACzF;IACF,CAAC,MAAM;MACN,MAAME,OAAO,GAAGxZ,wCAAW,CAAC5J,KAAK,CAACqjB,SAAS,CAAC,CAACC,MAAM,CAAC,YAAY,CAAC;MACjE,IAAI,CAACrC,UAAU,CAACG,IAAI,CAACgC,OAAO,CAAC,GAAG,IAAI,CAACnC,UAAU,CAACG,IAAI,CAACgC,OAAO,CAAC,IAAI,EAAE;MACnE,IAAI,CAACnC,UAAU,CAACG,IAAI,CAACgC,OAAO,CAAC,CAAC7W,IAAI,CAACvM,KAAK,CAAC;MACzC,IAAI,CAACihB,UAAU,CAACG,IAAI,CAACgC,OAAO,CAAC,CAAC9X,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KACtCtW,CAAC,CAAC+W,WAAW,IAAI/W,CAAC,CAAC8W,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,IAAKR,CAAC,CAACS,WAAW,IAAIT,CAAC,CAACQ,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CACzF;IACF;EACD;EAEAb,cAAcA,CAACQ,QAAQ;IACtB,IAAI,CAAC5B,UAAU,CAACI,WAAW,CAACwB,QAAQ,CAAC7iB,KAAK,CAAC,GAAG,IAAI,CAACihB,UAAU,CAACI,WAAW,CAACwB,QAAQ,CAAC7iB,KAAK,CAAC,IAAI,EAAE;IAC/F,IAAI,CAACihB,UAAU,CAACI,WAAW,CAACwB,QAAQ,CAAC7iB,KAAK,CAAC,CAACuM,IAAI,CAAC,IAAI,CAACuU,OAAO,CAAC+B,QAAQ,CAAClK,EAAE,CAAC,CAAC;EAC5E;EAEA4J,iBAAiBA,CAACgB,WAAW;IAC5B,MAAMC,OAAO,GAAGD,WAAW,CAAC9U,KAAK;IACjC,MAAMA,KAAK,GAAG,IAAI,CAACwS,UAAU,CAACgB,IAAI,CAACuB,OAAO,CAAC;IAC3C,IAAI,CAAC/U,KAAK,EAAE;MACX7N,OAAO,CAACiC,IAAI,CAAC,yBAAyBvB,IAAI,CAACC,SAAS,CAACgiB,WAAW,CAAC,EAAE,CAAC;MACpE;IACD;IACA,IAAI9U,KAAK,CAACgV,iBAAiB,IAAIhV,KAAK,CAACgV,iBAAiB,CAACtd,MAAM,GAAG,CAAC,EAAE;MAClE;IACD;IAEA,MAAMud,WAAW,GAAGjV,KAAK,CAACsU,SAAS;IACnC,MAAMY,SAAS,GAAG,IAAI,CAAC1C,UAAU,CAACQ,MAAM,CAAC,WAAW,CAAC,CAACnU,MAAM,CAACwV,GAAG,IAAIA,GAAG,CAACC,SAAS,KAAKW,WAAW,CAAC;IAClG,MAAME,MAAM,GAAGD,SAAS,CAAC1S,GAAG,CAAC4S,CAAC,IAAIA,CAAC,CAAClL,EAAE,CAAC;IAEvC,KAAK,MAAM6J,OAAO,IAAI9P,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACyK,UAAU,CAACI,WAAW,CAAC,EAAE;MAC/D,MAAMyC,SAAS,GAAG,IAAI,CAAC7C,UAAU,CAACI,WAAW,CAACmB,OAAO,CAAC;MACtD,KAAK,MAAM3L,CAAC,IAAIiN,SAAS,EAAE;QAC1B,IAAIF,MAAM,CAAC7G,OAAO,CAAC+G,SAAS,CAACjN,CAAC,CAAC,CAACiM,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;UAC5C,IAAI,CAAC7B,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,GAAG,IAAI,CAACvB,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,IAAI,EAAE;UACjF,IAAI,CAACvB,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,GAAG,IAAI,CAAC9C,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,IAAI;YACpHC,MAAM,EAAE,EAAE;YACVD,WAAW,EAAEtV,KAAK,CAACsV,WAAW;YAC9BE,OAAO,EAAE;WACT;UACD,IAAI,CAAChD,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACC,MAAM,CAACvV,KAAK,CAACkK,EAAE,CAAC,GAAGlK,KAAK;UAChF,IAAI,CAACwS,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACE,OAAO,CAACV,WAAW,CAACW,aAAa,CAAC,GAAG,IAAI,CAACjD,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACE,OAAO,CAACV,WAAW,CAACW,aAAa,CAAC,IAAI;YAC1L9M,OAAO,EAAE,IAAI,CAAC6J,UAAU,CAACgB,IAAI,CAACsB,WAAW,CAACnM,OAAO,CAAC;YAClD+M,MAAM,EAAE;WACR;QACF;MACD;IACD;EACD;EAEA7B,WAAWA,CAAC7X,CAAC;IACZ,MAAM2Z,aAAa,GAAG3Z,CAAC,CAAC4Z,UAAU;IAClC,MAAMd,WAAW,GAAG,IAAI,CAACtC,UAAU,CAACgB,IAAI,CAACmC,aAAa,CAAC;IACvD,IAAIb,WAAW,IAAI,IAAI,EAAE;MACxB3iB,OAAO,CAACiC,IAAI,CAAC,kBAAkBvB,IAAI,CAACC,SAAS,CAACkJ,CAAC,CAAC,EAAE,CAAC;MACnD;IACD;IACA,MAAM+Y,OAAO,GAAGD,WAAW,CAAC9U,KAAK;IACjC,MAAMA,KAAK,GAAG,IAAI,CAACwS,UAAU,CAACgB,IAAI,CAACuB,OAAO,CAAC;IAC3C,IAAI/U,KAAK,CAACgV,iBAAiB,IAAIhV,KAAK,CAACgV,iBAAiB,CAACtd,MAAM,GAAG,CAAC,EAAE;MAClE;IACD;IAEA,MAAMme,KAAK,GAAG7Z,CAAC,CAAC8Z,MAAM;IACtB,MAAMC,eAAe,GAAG,EAAE;IAC1B,KAAK,MAAMhC,OAAO,IAAI9P,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACyK,UAAU,CAACI,WAAW,CAAC,EAAE;MAC/D,MAAMyC,SAAS,GAAG,IAAI,CAAC7C,UAAU,CAACI,WAAW,CAACmB,OAAO,CAAC;MACtD,KAAK,MAAM3L,CAAC,IAAIiN,SAAS,EAAE;QAC1B,IAAIA,SAAS,CAACjN,CAAC,CAAC,CAACiM,GAAG,KAAKwB,KAAK,EAAE;UAC/BE,eAAe,CAAChC,OAAO,CAAC,GAAG9W,MAAM,CAACmL,CAAC,CAAC;UACpC;QACD;MACD;IACD;IACA,KAAK,MAAM2L,OAAO,IAAI9P,MAAM,CAAC8D,IAAI,CAACgO,eAAe,CAAC,EAAE;MACnD,MAAMC,QAAQ,GAAGD,eAAe,CAAChC,OAAO,CAAC;MACzC,IAAI,CAACvB,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,GAAG,IAAI,CAACvB,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,IAAI,EAAE;MACjF,IAAI,CAACvB,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,GAAG,IAAI,CAAC9C,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,IAAI;QACpHC,MAAM,EAAE,EAAE;QACVD,WAAW,EAAEtV,KAAK,CAACsV,WAAW;QAC9BE,OAAO,EAAE;OACT;MACD,IAAI,CAAChD,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACC,MAAM,CAACvV,KAAK,CAACkK,EAAE,CAAC,GAAGlK,KAAK;MAChF,IAAI,CAACwS,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACE,OAAO,CAACV,WAAW,CAACW,aAAa,CAAC,GAAG,IAAI,CAACjD,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACE,OAAO,CAACV,WAAW,CAACW,aAAa,CAAC,IAAI;QAC1L9M,OAAO,EAAE,IAAI,CAAC6J,UAAU,CAACgB,IAAI,CAACsB,WAAW,CAACnM,OAAO,CAAC;QAClD+M,MAAM,EAAE;OACR;MACD,IAAI,CAAClD,UAAU,CAACO,WAAW,CAACgB,OAAO,CAAC,CAAC/T,KAAK,CAACsV,WAAW,CAAC,CAACE,OAAO,CAACV,WAAW,CAACW,aAAa,CAAC,CAACC,MAAM,CAACzY,MAAM,CAAC+Y,QAAQ,CAAC,CAAC,GAAGha,CAAC;IACxH;EACD;EAEA,IAAIia,SAASA,CAAA;IACZ,MAAMC,KAAK,GAAGjS,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACyK,UAAU,CAACG,IAAI,CAAC,CAAC9T,MAAM,CAACsX,CAAC,IAAIA,CAAC,KAAK,UAAU,CAAC;IAC7ED,KAAK,CAACrZ,IAAI,EAAE;IACZ,OAAOqZ,KAAK;EACb;EAEA,IAAIvD,IAAIA,CAAA;IACP,MAAMuD,KAAK,GAAGjS,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACyK,UAAU,CAACG,IAAI,CAAC;IAC/CuD,KAAK,CAACrZ,IAAI,EAAE;IACZ,OAAOqZ,KAAK;EACb;EAAC,QAAA9pB,CAAA;qBAlQWglB,cAAc,EAAAvkB,sDAAA,CAAAJ,0DAAA,GAAAI,sDAAA,CAAA+K,oDAAA,GAAA/K,sDAAA,CAAAgL,6DAAA;EAAA;EAAA,QAAAxL,EAAA;WAAd+kB,cAAc;IAAAjQ,OAAA,EAAdiQ,cAAc,CAAAhQ;EAAA;;;;;;;;;;;;;;;;;;;;;;;;ACxCuB;AACb;AAER;;;AAOvB,MAAOxI,QAAQ;EAcnBlL,YAAoB6C,IAAgB;IAAhB,KAAAA,IAAI,GAAJA,IAAI;IAZxB,KAAA6lB,WAAW,GAAG;MACZC,IAAI,EAAGC,CAAC,IAAKA,CAAC;MACdC,SAAS,EAAGD,CAAC,IAAKA,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;MACjCE,MAAM,EAAGF,CAAC,IAAKA,CAAC,GAAG,CAAC;MACpBG,MAAM,EAAGH,CAAC,IAAKA,CAAC,GAAG,CAAC;MACpBI,MAAM,EAAGJ,CAAC,IAAKA,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;KAC9B;EAMsC;EAEjCK,IAAIA,CAAA;IAAA,IAAA3lB,KAAA;IAAA,OAAAmC,oJAAA;MACR,MAAMyjB,SAAS,SAAS5lB,KAAI,CAACT,IAAI,CAChCoF,GAAG,CAAM,oBAAoB,CAAC,CAC9BgO,IAAI,CACHf,mDAAG,CAACiU,IAAI,IAAK5S,MAAM,CAACe,MAAM,CAAChU,KAAI,EAAE6lB,IAAI,CAAC,CAAC,CACxC,CAACC,SAAS,EAAE;MACb,OAAO9lB,KAAI;IAAC;EACd;EAEA+lB,OAAOA,CAACC,KAAa,EAAEC,OAAe;IACpC,MAAMC,UAAU,GAAG,IAAI,CAACC,KAAK,CAACH,KAAK,CAAC,CAACD,OAAO;IAC5C,IAAI,CAAC,IAAI,CAACX,WAAW,CAACc,UAAU,CAAC,EAAE;MACjC/kB,OAAO,CAACiC,IAAI,CAAC,qBAAqB4iB,KAAK,EAAE,CAAC;IAC5C;IACA,OAAO,CAAC,IAAI,CAACZ,WAAW,CAACc,UAAU,CAAC,IAAI,IAAI,CAACd,WAAW,CAACC,IAAI,EAAEY,OAAO,CAAC;EACzE;EAEAG,YAAYA,CAACC,WAAkC;IAC7C,OAAOA,WAAW,GAAI,IAAI,CAACC,iBAAiB,CAACD,WAAW,CAAC9O,UAAU,CAAC,GAAI,IAAI;EAC9E;EAEAgP,UAAUA,CAAC3O,IAAkB,EAAErX,KAAa;IAC1C,OAAO,IAAI,CAAC6lB,YAAY,CAAC7lB,KAAK,CAAC,IAAI,IAAI,CAAC6lB,YAAY,CAACxO,IAAI,CAAC;EAC5D;EAEA4O,gBAAgBA,CAACC,GAAW;IAC1B,OAAOxT,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAACuP,iBAAiB,CAAC,CAACzY,MAAM,CAACsX,CAAC,IAAIA,CAAC,CAACza,QAAQ,CAAC,IAAI+b,GAAG,GAAG,CAAC,CAAC;EAChF;EAEAC,aAAaA,CAAC9O,IAAkB,EAAErX,KAAa,EAAEomB,UAAuB;IACtE,MAAMC,iBAAiB,GAAG,CAACrmB,KAAK,CAACgX,UAAU,IAAIK,IAAI,CAACL,UAAU,EAAEhR,KAAK,CAAC,kBAAkB,CAAC;IACzF,MAAM,GAAGgR,UAAU,EAAEkP,GAAG,CAAC,GAAGG,iBAAiB,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC;IACjE,IAAIC,aAAa,GAAG,GAAGtP,UAAU,KAAKkP,GAAG,GAAG;IAE5C;IACA,IAAI,IAAI,CAACK,QAAQ,CAACL,GAAG,CAAC,EAAEM,OAAO,EAAErgB,MAAM,GAAG,CAAC,EAAE;MAC3C,MAAMsgB,EAAE,GAAG,IAAI,CAACT,UAAU,CAAC3O,IAAI,EAAErX,KAAK,CAAC;MACvC,IAAI0mB,QAAQ,GAAGD,EAAE;MACjB,IAAIA,EAAE,CAACE,UAAU,EAAE;QACjBL,aAAa,GAAG,GAAGG,EAAE,CAACE,UAAU,KAAKT,GAAG,GAAG;QAC3CQ,QAAQ,GAAG,IAAI,CAACX,iBAAiB,CAACO,aAAa,CAAC;MAClD;MAEA;MACA,IAAIG,EAAE,CAAChE,IAAI,CAACtY,QAAQ,CAACnK,KAAK,CAAC4mB,cAAc,EAAEC,SAAS,CAAC,EAAE;QACrD,OAAOT,UAAU,CAACU,QAAQ,EAAEC,MAAM,GAAGT,aAAa,CAAC,GAAGtmB,KAAK,CAAC4mB,cAAc,EAAEC,SAAS,CAAC,EAAEtK,KAAK;MAC/F,CAAC,MAAM;QACL,MAAMyK,aAAa,GAAG,IAAI,CAACT,QAAQ,CAACL,GAAG,CAAC,CAACM,OAAO,CAAC3S,IAAI,CAACoT,CAAC,IAAIA,CAAC,CAACvM,OAAO,CAAC;QACrE,MAAMwM,cAAc,GAAG,CAAC,IAAI,CAACX,QAAQ,CAACL,GAAG,CAAC,CAACM,OAAO,CAAC3S,IAAI,CAACoT,CAAC,IAAIA,CAAC,CAACvlB,KAAK,KAAK1B,KAAK,CAAC4mB,cAAc,EAAEC,SAAS,CAAC,EAAEG,aAAa,EAAE,IAAI,CAACT,QAAQ,CAACL,GAAG,CAAC,CAACM,OAAO,CAAC3S,IAAI,CAACoT,CAAC,IAAIA,CAAC,CAACvlB,KAAK,KAAKslB,aAAa,CAACG,QAAQ,CAAC,CAAC;QACnM,KAAK,MAAMC,aAAa,IAAIF,cAAc,EAAE;UAC1C,IAAIE,aAAa,EAAE1lB,KAAK,KAAK,YAAY,EAAE;YACzC,MAAM2lB,QAAQ,GAAG,IAAI,CAACC,sBAAsB,CAAChB,aAAa,EAAEF,UAAU,CAAC;YACvE,IAAIiB,QAAQ,CAAC9K,KAAK,EAAE;cAClB,OAAO,GAAG8K,QAAQ,CAAC9K,KAAK,GAAG8K,QAAQ,CAACP,QAAQ,IAAI,EAAE,EAAE;YACtD;UACF;UAEA,IAAIJ,QAAQ,CAACa,OAAO,GAAGH,aAAa,EAAE1lB,KAAK,CAAC,EAAE;YAC5C,MAAM6a,KAAK,GAAGnY,2CAAG,CAACgiB,UAAU,EAAEM,QAAQ,CAACa,OAAO,CAACH,aAAa,CAAC1lB,KAAK,CAAC,CAAC6a,KAAK,EAAE,EAAE,CAAC;YAC9E,MAAMiL,GAAG,GAAGpjB,2CAAG,CAACgiB,UAAU,EAAEM,QAAQ,CAACa,OAAO,CAACH,aAAa,CAAC1lB,KAAK,CAAC,CAAColB,QAAQ,EAAE,EAAE,CAAC;YAC/E,OAAO,GAAGvK,KAAK,GAAGiL,GAAG,EAAE;UACzB;QACF;MACF;IACF;IAEA;IACA,IAAIpB,UAAU,EAAEU,QAAQ,GAAG9P,UAAU,CAAC,EAAE;MACtC,OAAOoP,UAAU,CAACU,QAAQ,CAAC9P,UAAU,CAAC;IACxC,CAAC,MAAM;MACL,OAAO,IAAI;IACb;EACF;EAEE;EAAA,QAAAnc,CAAA,GACO,KAAA4sB,WAAW,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;EAC/EH,sBAAsBA,CAACI,aAAa,EAAEtB,UAAU;IAE9C,IAAI7J,KAAK;IACT,IAAIuK,QAAQ;IACZ;IACA,IAAIV,UAAU,EAAEU,QAAQ,EAAEC,MAAM,GAAGW,aAAa,CAAC,EAAE;MACjD,KAAK,MAAMC,KAAK,IAAIjV,MAAM,CAAC8D,IAAI,CAAC4P,UAAU,EAAEU,QAAQ,EAAEC,MAAM,GAAGW,aAAa,CAAC,CAAC,EAAE;QAC9E,MAAME,aAAa,GAAGxB,UAAU,CAACU,QAAQ,CAACC,MAAM,CAACW,aAAa,CAAC,CAACC,KAAK,CAAC;QACtE,IAAIC,aAAa,CAACrL,KAAK,EAAE;UACvB,IAAI,CAACA,KAAK,IAAIlV,QAAQ,CAACogB,WAAW,CAAC1K,OAAO,CAAC6K,aAAa,CAACrL,KAAK,CAAC,GAAGlV,QAAQ,CAACogB,WAAW,CAAC1K,OAAO,CAACR,KAAK,CAAC,EAAE;YACrGA,KAAK,GAAGqL,aAAa,CAACrL,KAAK;UAC7B;QACF,CAAC,MAAM,IAAIqL,aAAa,CAACC,QAAQ,EAAE;UACjC,IAAI,CAACf,QAAQ,IAAIc,aAAa,CAACC,QAAQ,GAAGf,QAAQ,EAAE;YAClDA,QAAQ,GAAGc,aAAa,CAACC,QAAQ;UACnC;QACF;MACF;IACF;IAEA,OAAO;MAACtL,KAAK;MAAEuK;IAAQ,CAAE;EAC3B;EAEFgB,QAAQA,CAAC9nB,KAAa;IACpB,MAAM+nB,cAAc,GAAG,IAAI,CAAChC,iBAAiB,CAAC/lB,KAAK,CAACgX,UAAU,IAAIhX,KAAK,CAACqX,IAAI,CAACL,UAAU,CAAC;IACxF,IAAI,CAAC+Q,cAAc,EAAE;MAAE,OAAO,KAAK;IAAE;IACrC,MAAMC,OAAO,GAAGD,cAAc,CAACE,SAAS,CAACjoB,KAAK,CAAC8mB,QAAQ,CAAC;IACxD,OAAO,CAACkB,OAAO,IAAI,EAAE,EAAErc,KAAK;EAC9B;EAEAuc,SAASA,CAACloB,KAAa;IACrB,MAAM+nB,cAAc,GAAG,IAAI,CAAChC,iBAAiB,CAAC/lB,KAAK,CAACgX,UAAU,IAAIhX,KAAK,CAACqX,IAAI,CAACL,UAAU,CAAC;IACxF,IAAI,CAAC+Q,cAAc,EAAE;MAAE,OAAO,KAAK;IAAE;IACrC,MAAMC,OAAO,GAAGD,cAAc,CAACE,SAAS,CAACjoB,KAAK,CAAC8mB,QAAQ,CAAC;IACxD,OAAO,CAACkB,OAAO,IAAI,EAAE,EAAEG,IAAI;EAC7B;EAEAC,cAAcA,CAACpoB,KAAa,EAAEyL,KAAkB,EAAEkC,KAAgB,EAAEoJ,GAAgB;IAClF,MAAMgR,cAAc,GAAG,IAAI,CAAChC,iBAAiB,CAAC/lB,KAAK,CAACgX,UAAU,IAAIhX,KAAK,CAACqX,IAAI,CAACL,UAAU,CAAC;IACxF,IAAI,CAAC+Q,cAAc,EAAE;MAAE,OAAO,KAAK;IAAE;IACrC,MAAMC,OAAO,GAAGD,cAAc,CAACE,SAAS,CAACjoB,KAAK,CAAC8mB,QAAQ,CAAC;IACxD,MAAMuB,UAAU,GAAG,CAACtR,GAAG,EAAE+P,QAAQ,IAAI,EAAE,EAAE9gB,KAAK,CAAC,qBAAqB,CAAC;IACrE,IAAIsiB,UAAU,GAAG,CAAC;IAClB,IAAID,UAAU,EAAE;MACdC,UAAU,GAAG5c,MAAM,CAAC2c,UAAU,CAAC,CAAC,CAAC,CAAC;IACpC;IAEA,IAAIL,OAAO,EAAErc,KAAK,KAAK,OAAO,EAAE;MAC9B,IAAI4c,QAAQ,GAAG,CAAC;MAChB,IAAIC,WAAW,GAAG,CAAC;MACnB,IAAIC,QAAQ,GAAG,CAAC;MAChB,IAAIzoB,KAAK,CAAC6M,iBAAiB,KAAK,KAAK,EAAE;QACrC4b,QAAQ,GAAG/c,MAAM,CAAC4c,UAAU,IAAI,CAAC,CAAC;QAClCC,QAAQ,GAAG7c,MAAM,CAACiC,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC;QACnC8a,QAAQ,GAAGtb,IAAI,CAACO,GAAG,CAAC+a,QAAQ,EAAE/c,MAAM,CAACiC,KAAK,CAACZ,QAAQ,CAAC,GAAGwb,QAAQ,CAAC;QAChE9c,KAAK,CAACE,KAAK,IAAI8c,QAAQ;MACzB,CAAC,MAAM,IAAIzoB,KAAK,CAAC6M,iBAAiB,KAAK,OAAO,EAAE;QAC9CpB,KAAK,CAACid,OAAO,CAAClb,OAAO,CAAC/C,CAAC,IAAG;UACxBge,QAAQ,IAAI/c,MAAM,CAAC4c,UAAU,IAAI,CAAC,CAAC;UACnCE,WAAW,IAAI9c,MAAM,CAACjB,CAAC,CAACsC,QAAQ,IAAI,CAAC,CAAC;UACtCwb,QAAQ,IAAI7c,MAAM,CAACjB,CAAC,CAACkD,KAAK,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC;QACFlC,KAAK,CAACqB,QAAQ,GAAG2b,QAAQ;QACzBA,QAAQ,GAAGtb,IAAI,CAACO,GAAG,CAAC+a,QAAQ,EAAED,WAAW,GAAGD,QAAQ,CAAC;QACrD9c,KAAK,CAACE,KAAK,GAAG8c,QAAQ;MACxB;IACF;EACF;EAAC,QAAA3tB,EAAA;qBA/JUuM,QAAQ,EAAA/L,sDAAA,CAAAJ,4DAAA;EAAA;EAAA,QAAAH,EAAA;WAARsM,QAAQ;IAAAuI,OAAA,EAARvI,QAAQ,CAAAwI,IAAA;IAAAC,UAAA,EAFP;EAAM;;AAqKd,SAAUxI,YAAYA,CAAC8S,QAAkB;EAC7C,OAAO,MAAMA,QAAQ,CAACgL,IAAI,EAAE;AAC9B;;;;;;;;;;;;;;;AC7KM,MAAOja,QAAQ;EAEnB;EAGA;EACQ,OAAOwd,gBAAgBA,CAACC,SAAiB,EAAEC,YAAoB,EAAEC,UAAkB,EAAEC,aAAqB;IAChH;IACA;IACA,IAAIC,KAAK,GAAG,CAAC;IAEb,IAAIH,YAAY,KAAKE,aAAa,EAAE;MACpCC,KAAK,GAAG7b,IAAI,CAACO,GAAG,CAACob,UAAU,EAAEC,aAAa,CAAC,GAAG5b,IAAI,CAACO,GAAG,CAACkb,SAAS,EAAEC,YAAY,CAAC;IAC/E,CAAC,MAAM;MAAE;MACP,MAAMI,UAAU,GAAGJ,YAAY,KAAK,CAAC,GAAGK,QAAQ,GAAGL,YAAY,GAAGD,SAAS;MAC3E,MAAMO,WAAW,GAAGJ,aAAa,KAAK,CAAC,GAAGG,QAAQ,GAAGH,aAAa,GAAGD,UAAU;MAC/E,IAAIG,UAAU,IAAI,CAAC,IAAIE,WAAW,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;MAAE;MACrD,IAAIA,WAAW,IAAI,CAAC,IAAIF,UAAU,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC;MAAE;MACpD;MAEA,OAAOF,aAAa,GAAGF,YAAY;IACrC;IACA,OAAOG,KAAK;EACd;EAEQ,OAAOI,aAAaA,CAACppB,KAAa,EAAEuL,IAA0B,EAAEC,KAA2B,EAAEH,QAAgB,EAAEQ,MAAO;IAC5H;IACA,IAAImd,KAAK,GAAG,CAAC;IACb,IAAIvb,KAAK,GAAG,CAAC;IACb,IAAImb,SAAS,GAAGrd,IAAI,CAACE,KAAK;IAC1B,IAAIqd,UAAU,GAAGtd,KAAK,CAACC,KAAK;IAC5B,IAAIod,YAAY,GAAGtd,IAAI,CAACwB,QAAQ;IAChC,IAAIgc,aAAa,GAAGvd,KAAK,CAACuB,QAAQ;IAElC,IAAIlB,MAAM,EAAE;MACV,IAAI7L,KAAK,CAAC6M,iBAAiB,KAAK,KAAK,EAAE;QACrC+b,SAAS,IAAKld,MAAM,CAACH,IAAI,CAACI,KAAK,CAAC;QAChCmd,UAAU,IAAKpd,MAAM,CAACF,KAAK,CAACG,KAAK,CAAC;MACpC,CAAC,MAAM,IAAI3L,KAAK,CAAC6M,iBAAiB,KAAK,OAAO,EAAE;QAC9C+b,SAAS,IAAKld,MAAM,CAACH,IAAI,CAACuB,QAAQ,CAAC;QACnCgc,UAAU,IAAKpd,MAAM,CAACF,KAAK,CAACsB,QAAQ,CAAC;MACvC;IACF;IAEA,MAAMuc,cAAc,GAAG,CAAC,CAAC9d,IAAI,CAAC8B,SAAS,IAAI,EAAE,EAAEO,IAAI,IAAI,EAAE,EAAEL,MAAM;IACjE,MAAM+b,eAAe,GAAG,CAAC,CAAC9d,KAAK,CAAC6B,SAAS,IAAI,EAAE,EAAEO,IAAI,IAAI,EAAE,EAAEL,MAAM;IACnE,OAAOyb,KAAK,KAAK,CAAC,KAAKK,cAAc,GAAG5b,KAAK,CAAC,IAAI6b,eAAe,GAAG7b,KAAK,CAAC,CAAC,EAAE;MAC3E,IAAI4b,cAAc,GAAG5b,KAAK,CAAC,EAAE;QAC3B,IAAI6b,eAAe,GAAG7b,KAAK,CAAC,EAAE;UAC5B,MAAM8b,EAAE,GAAGF,cAAc,GAAG5b,KAAK,CAAC;UAClCmb,SAAS,IAAIld,MAAM,CAAC6d,EAAE,CAAC5b,KAAK,CAAC;UAC7Bkb,YAAY,IAAInd,MAAM,CAAC6d,EAAE,CAACxc,QAAQ,CAAC;UACnC,MAAMyc,EAAE,GAAGF,eAAe,GAAG7b,KAAK,CAAC;UACnCqb,UAAU,IAAIpd,MAAM,CAAC8d,EAAE,CAAC7b,KAAK,CAAC;UAC9Bob,aAAa,IAAIrd,MAAM,CAAC8d,EAAE,CAACzc,QAAQ,CAAC;UACpCic,KAAK,GAAG7d,QAAQ,CAACwd,gBAAgB,CAACC,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAEC,aAAa,CAAC;UACrFtb,KAAK,EAAE;QACT,CAAC,MAAM;UACL,OAAO,CAAC,CAAC;QACX;MACF,CAAC,MAAM;QACL,OAAO,CAAC;MACV;IACF;IAEAA,KAAK,GAAG,CAAC,CAAC,CAAC;IACX,IAAIub,KAAK,KAAK,CAAC,IAAI3d,QAAQ,KAAK,MAAM,EAAE;MACtC,MAAMoe,gBAAgB,GAAG,CAAC,CAACle,IAAI,CAAC8B,SAAS,IAAI,EAAE,EAAEhC,QAAQ,CAAC,IAAI,EAAE,EAAEkC,MAAM;MACxE,MAAMmc,iBAAiB,GAAG,CAAC,CAACle,KAAK,CAAC6B,SAAS,IAAI,EAAE,EAAEhC,QAAQ,CAAC,IAAI,EAAE,EAAEkC,MAAM;MAC1E,OAAOyb,KAAK,KAAK,CAAC,KAAKS,gBAAgB,GAAGhc,KAAK,CAAC,IAAIic,iBAAiB,GAAGjc,KAAK,CAAC,CAAC,EAAE;QAC/E,IAAIgc,gBAAgB,GAAGhc,KAAK,CAAC,EAAE;UAC7B,IAAIic,iBAAiB,GAAGjc,KAAK,CAAC,EAAE;YAC9B,MAAM8b,EAAE,GAAGE,gBAAgB,GAAGhc,KAAK,CAAC;YACpCmb,SAAS,IAAIld,MAAM,CAAC6d,EAAE,CAAC5b,KAAK,CAAC;YAC7Bkb,YAAY,IAAInd,MAAM,CAAC6d,EAAE,CAACxc,QAAQ,CAAC;YACnC,MAAMyc,EAAE,GAAGE,iBAAiB,GAAGjc,KAAK,CAAC;YACrCqb,UAAU,IAAIpd,MAAM,CAAC8d,EAAE,CAAC7b,KAAK,CAAC;YAC9Bob,aAAa,IAAIrd,MAAM,CAAC8d,EAAE,CAACzc,QAAQ,CAAC;YACpCic,KAAK,GAAG7d,QAAQ,CAACwd,gBAAgB,CAACC,SAAS,EAAEC,YAAY,EAAEC,UAAU,EAAEC,aAAa,CAAC;YACrFtb,KAAK,EAAE;UACT,CAAC,MAAM;YACL,OAAO,CAAC,CAAC;UACX;QACF,CAAC,MAAM;UACL,OAAO,CAAC;QACV;MACF;IACF;IACA,OAAOub,KAAK;EACd;EAEO,OAAOpd,OAAOA,CAAC5L,KAAa,EAAEuL,IAA0B,EAAEC,KAA2B,EAAEH,QAAgB,EAAE;IAAEse,KAAK;IAAE9d;EAAM,CAAyC;IACtK;IACA,IAAI+d,OAAO,GAAG,CAAC;IACfA,OAAO,GAAGze,QAAQ,CAACie,aAAa,CAACppB,KAAK,EAAEuL,IAAI,EAAEC,KAAK,EAAEH,QAAQ,EAAEQ,MAAM,CAAC;IAEtE,IAAI+d,OAAO,KAAK,CAAC,EAAE;MACjB,OAAOA,OAAO;IAChB;IAEA;IAEA;IACA;IACA,IAAIre,IAAI,CAACse,OAAO,IAAK,OAAOte,IAAI,CAACse,OAAO,KAAK,QAAQ,IAAIte,IAAI,CAACse,OAAO,CAACxe,QAAQ,CAAC,IAAI,IAAI,IAAIye,KAAK,CAACve,IAAI,CAACse,OAAO,CAACxe,QAAQ,CAAC,CAAE,EAAE;MACzH,IAAI,EAAEG,KAAK,CAACqe,OAAO,IAAI,OAAOre,KAAK,CAACqe,OAAO,KAAK,QAAQ,IAAIre,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC,IAAI,IAAI,IAAIye,KAAK,CAACte,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC9H,OAAO,CAAC;MACV;MACA;IACF,CAAC,MAAM,IAAIG,KAAK,CAACqe,OAAO,IAAI,OAAOre,KAAK,CAACqe,OAAO,KAAK,QAAQ,IAAIre,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC,IAAI,IAAI,IAAIye,KAAK,CAACte,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC,CAAC,EAAE;MAClI,OAAO,CAAC,CAAC;IACX;IAEA;IACA,IAAIE,IAAI,CAACse,OAAO,IAAIte,IAAI,CAACse,OAAO,CAACxe,QAAQ,CAAC,EAAE;MAC1C,IAAIG,KAAK,CAACqe,OAAO,IAAIre,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC,EAAE;QAC5C;QACAue,OAAO,GAAGre,IAAI,CAACse,OAAO,CAACxe,QAAQ,CAAC,GAAGG,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC;MAC5D,CAAC,MAAM;QAAE;QACP,OAAO,CAAC,CAAC;MACX;MACA;IACF,CAAC,MAAM,IAAIG,KAAK,CAACqe,OAAO,IAAIre,KAAK,CAACqe,OAAO,CAACxe,QAAQ,CAAC,EAAE;MACnD,OAAO,CAAC;IACV;IAEA;IACA,IAAIse,KAAK,IAAIpe,IAAI,CAAC8B,SAAS,IAAI7B,KAAK,CAAC6B,SAAS,EAAE;MAE9C,IAAI9B,IAAI,CAAC8B,SAAS,CAAChC,QAAQ,CAAC,IAAIG,KAAK,CAAC6B,SAAS,CAAChC,QAAQ,CAAC,EAAE;QACzD;QACAue,OAAO,GAAGpe,KAAK,CAAC6B,SAAS,CAAChC,QAAQ,CAAC,CAAC0B,QAAQ,GAAGxB,IAAI,CAAC8B,SAAS,CAAChC,QAAQ,CAAC,CAAC0B,QAAQ;MAClF,CAAC,MAAM,IAAIxB,IAAI,CAAC8B,SAAS,CAACO,IAAI,IAAIpC,KAAK,CAAC6B,SAAS,CAACO,IAAI,EAAE;QACtDgc,OAAO,GAAGpe,KAAK,CAAC6B,SAAS,CAACO,IAAI,CAACb,QAAQ,GAAGxB,IAAI,CAAC8B,SAAS,CAACO,IAAI,CAACb,QAAQ;MACxE;IACF;IAEA,IAAI6c,OAAO,KAAK,CAAC,IAAID,KAAK,EAAE;MAC1BC,OAAO,GAAGle,MAAM,CAACH,IAAI,CAACwe,gBAAgB,CAAC,GAAGre,MAAM,CAACF,KAAK,CAACue,gBAAgB,CAAC;IAC1E;IAEA,OAAOH,OAAO;EAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJgD;AAEqC;AAC3C;AACF;AAC6F;AACpF;AAClB;AAC0B;;;;;;AAE3D,MAAMM,YAAY,GAAG,cAAc;AACnC,MAAMC,KAAK,GAAG,OAAO;AAKf,MAAO3rB,oBAAoB;EAQ7BrC,YACYiuB,SAAoB,EACpBhrB,QAAkB,EAClBC,cAA8B,EAC9BL,IAAgB;IAHhB,KAAAorB,SAAS,GAATA,SAAS;IACT,KAAAhrB,QAAQ,GAARA,QAAQ;IACR,KAAAC,cAAc,GAAdA,cAAc;IACd,KAAAL,IAAI,GAAJA,IAAI;IAVhB,KAAAqrB,mBAAmB,GAAG,IAAI1Z,iDAAe,CAASuZ,YAAY,CAAC;IAC/D,KAAArqB,gBAAgB,GAAG,IAAI8Q,iDAAe,CAAU,KAAK,CAAC;IACtD,KAAA2Z,OAAO,GAAG,IAAI/S,+CAAa,CAAS,CAAC,CAAC;IAEtC,KAAAgT,eAAe,GAAG,IAAIhT,+CAAa,CAAM,CAAC,CAAC;IAQzC,IAAI,CAACnY,QAAQ,CAACorB,KAAK,EAAE,CAACnwB,IAAI,CAAC,MAAK;MAC9B,IAAIoN,sDAAS,CAACiB,gBAAgB,EAAE,EAAE;QAC9B,IAAI,CAAC0hB,SAAS,CAACK,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;MAC9C;MACA,IAAI,IAAI,CAACrrB,QAAQ,CAACM,EAAE,CAAC,SAAS,CAAC,EAAE;QAC7B,IAAI,CAAC4qB,OAAO,CAACrX,IAAI,CAAC,kCAAkC,CAAC;MACzD,CAAC,MAAM,IAAI,IAAI,CAAC7T,QAAQ,CAACM,EAAE,CAAC,KAAK,CAAC,EAAE;QAChC,IAAI,CAAC4qB,OAAO,CAACrX,IAAI,CAAC,kCAAkC,CAAC;MACzD,CAAC,MAAM;QACH,IAAI,CAACqX,OAAO,CAACrX,IAAI,CAAC,kCAAkC,CAAC;MACzD;IACF,CAAC,CAAC;IAEFpC,mDAAa,CAAC,CACZ,IAAI,CAACxR,cAAc,CAAC8S,mBAAmB,EACvC,IAAI,CAACmY,OAAO,CACb,CAAC,CACDlY,IAAI,CACH9E,4CAAM,CAAC,CAAC,CAAC+E,OAAO,EAAEqY,OAAO,CAAC,KAAK,CAAC,CAACrY,OAAO,CAAC,EACzCnB,+CAAQ,CAAC,CAAC,CAACmB,OAAO,EAAEsY,MAAM,CAAC,KAAI;MAE7B,IAAIljB,sDAAS,CAACiB,gBAAgB,EAAE,EAAE;QAC9B,IAAI,CAAC0hB,SAAS,CAACQ,aAAa,CAAC;UAC3BD,MAAM,EAAEA,MAAM;UACdE,SAAS,EAAExY,OAAO,CAACC;SACpB,CAAC;QACF,OAAO,IAAI,CAAC8X,SAAS,CAACU,eAAe,EAAE;MAC3C,CAAC,MAAM;QAEL;QACA,OAAO,IAAI,CAAC9rB,IAAI,CAACoF,GAAG,CAAC,6CAA6CiO,OAAO,CAACC,GAAG,EAAE,EAAE;UAAEyY,OAAO,EAAE;YAAEC,aAAa,EAAE,UAAUL,MAAM;UAAE;QAAC,CAAC,CAAC,CACjIvY,IAAI,CACHnB,0CAAG,CAACga,YAAY,IAAG;UACjB,IAAIA,YAAY,CAAC,YAAY,CAAC,EAAEC,YAAY,EAAEf,KAAK,EAAE;YACnD,IAAIvgB,mCAAM,CAACqhB,YAAY,CAAC,YAAY,CAAC,EAAEC,YAAY,EAAEf,KAAK,CAACgB,YAAY,CAAC,CAACC,OAAO,CAACxhB,mCAAM,EAAE,CAAC,EAAE;cAC1F,OAAO;gBACLshB,YAAY,EAAE;kBACZG,MAAM,EAAE;oBACNlB,KAAK,EAAEc,YAAY,CAAC,YAAY,CAAC,EAAEC,YAAY,EAAEf;;;eAGtD;YACH;UACF;UACA,OAAO,EAAE;QACX,CAAC,CAAC,CACH;MACH;IACF,CAAC,CAAC,CACH,CAACrqB,SAAS,CAAC,IAAI,CAACyqB,eAAe,CAAC;IAEjC,IAAI,CAACA,eAAe,CAACnY,IAAI,CACvBnB,0CAAG,CAACqa,YAAY,IAAG;MACjB,IAAG,OAAOA,YAAY,EAAEJ,YAAY,EAAEG,MAAM,GAAG,OAAO,CAAC,KAAK,WAAW,EAAE;QACrE,OAAOlB,KAAK;MAChB;MACA,OAAOD,YAAY;IACrB,CAAC,CAAC,EACFtZ,iDAAU,CAAChO,GAAG,IAAIwO,yCAAE,CAAC8Y,YAAY,CAAC,CAAC,CACpC,CAACpqB,SAAS,CAAC,IAAI,CAACuqB,mBAAmB,CAAC;IAErC,IAAIjsB,qEAAW,CAACyF,UAAU,IAAI4D,sDAAS,CAACiB,gBAAgB,EAAE,EAAE;MAC1D,IAAI,CAAC2hB,mBAAmB,CACvBjY,IAAI,CACDnB,0CAAG,CAACsa,IAAI,IAAG;QACT,OAAOA,IAAI,KAAK,OAAO;MACzB,CAAC,CAAC,CACL,CAACzrB,SAAS,CAAC,IAAI,CAACD,gBAAgB,CAAC;IACpC,CAAC,MAAM;MACL,MAAM2rB,eAAe,GAAGlqB,IAAI,CAACuW,KAAK,CAAC4T,MAAM,CAACjqB,YAAY,CAACiC,OAAO,CAAC,iCAAiC,CAAC,CAAC;MAClG,IAAI,CAAC5D,gBAAgB,CAACoT,IAAI,CAACuY,eAAe,CAAC;IAC7C;EACF;EAEME,YAAYA,CAAA;IAAA,IAAAjsB,KAAA;IAAA,OAAAmC,oJAAA;MAChB,IAAI6F,sDAAS,CAACiB,gBAAgB,EAAE,EAAE;QAChC,OAAOrK,qDAAc,CACnBoB,KAAI,CAAC8qB,eAAe,CAACnY,IAAI,CACvBlB,+CAAQ,CAAC,MAAMzR,KAAI,CAAC2qB,SAAS,CAACsB,YAAY,EAAE,CAAC,CAC9C,CACF;MACH,CAAC,MAAM;QACL,OAAOrtB,qDAAc,CACnBwS,mDAAa,CAAC,CACZpR,KAAI,CAACJ,cAAc,CAAC8S,mBAAmB,EACvC1S,KAAI,CAAC6qB,OAAO,CACb,CAAC,CACDlY,IAAI,CACH9E,4CAAM,CAAC,CAAC,CAAC+E,OAAO,EAAEqY,OAAO,CAAC,KAAK,CAAC,CAACrY,OAAO,CAAC,EACzC4X,gDAAS,CAAC,CAAC,CAAC5X,OAAO,EAAEsY,MAAM,CAAC,KAC1BlrB,KAAI,CAACT,IAAI,CAACoF,GAAG,CAAqB,6CAA6CiO,OAAO,CAACC,GAAG,YAAY,EAAE;UAAEyY,OAAO,EAAE;YAAEC,aAAa,EAAE,UAAUL,MAAM;UAAE;QAAC,CAAC,CAAC,CAC1J,CACF,CACF;MAEH;IAAC;EACH;EAEMgB,iBAAiBA,CAAA;IAAA,IAAA3oB,MAAA;IAAA,OAAApB,oJAAA;MACnB,IAAI;QACA,MAAMgqB,SAAS,SAAS5oB,MAAI,CAAConB,SAAS,CAACsB,YAAY,EAAE;QAErD,MAAM;UAACJ,YAAY;UAAEO;QAAiB,CAAC,SAAS7oB,MAAI,CAAConB,SAAS,CAAC0B,eAAe,CAACF,SAAS,EAAEG,OAAO,EAAEC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC1H,IAAI,OAAOV,YAAY,CAACJ,YAAY,CAACG,MAAM,CAAClB,KAAK,KAAK,WAAW,EAAE;UACjE;UACAnnB,MAAI,CAACqnB,mBAAmB,CAACpX,IAAI,CAACkX,KAAK,CAAC;QACtC;MACF,CAAC,CAAC,OAAO1lB,CAAC,EAAE;QACV,IAAI,CAACA,CAAC,CAACwnB,aAAa,EAAE;UACpBrrB,OAAO,CAAC8D,KAAK,CAACD,CAAC,CAAC;QAClB;MACF;IAAC;EACP;EAAC,QAAA5J,CAAA;qBA9HQ2D,oBAAoB,EAAAlD,uDAAA,CAAAJ,6EAAA,GAAAI,uDAAA,CAAA+K,qDAAA,GAAA/K,uDAAA,CAAAgL,4DAAA,GAAAhL,uDAAA,CAAAiL,6DAAA;EAAA;EAAA,QAAAzL,EAAA;WAApB0D,oBAAoB;IAAAoR,OAAA,EAApBpR,oBAAoB,CAAAqR,IAAA;IAAAC,UAAA,EAFnB;EAAM;;;;;;;;;;;;;;;;;;;;ACd8B;;;AAK5C,MAAOoc,cAAc;EAEvB/vB,YACY6C,IAAgB;IAAhB,KAAAA,IAAI,GAAJA,IAAI;EACb;EAEGmtB,SAASA,CAACC,cAAc,EAAEpsB,KAAM;IAAA,IAAAP,KAAA;IAAA,OAAAmC,oJAAA;MACxC,IAAI,CAACwqB,cAAc,CAACnL,UAAU,CAACxK,WAAW,EAAEkC,EAAE,EAAE;QAC/C,OAAO,IAAI;MACZ;MACA,IAAI5X,GAAG;MAEP,IAAIf,KAAK,EAAE;QACVe,GAAG,GAAG,uCAAuCqrB,cAAc,CAACnL,UAAU,CAACxK,WAAW,CAACkC,EAAE,WAAW3Y,KAAK,CAAC2Y,EAAE,OAAO;MAChH,CAAC,MAAM;QACN5X,GAAG,GAAG,uCAAuCqrB,cAAc,CAACnL,UAAU,CAACxK,WAAW,CAACkC,EAAE,kBAAkB;MACxG;MAEA,IAAI;QACH,MAAMhE,QAAQ,SAASlV,KAAI,CAACT,IAAI,CAACqtB,IAAI,CAACtrB,GAAG,CAAC,CAACwkB,SAAS,EAAE;QACtD,OAAOxkB,GAAG;MACX,CAAC,CAAC,OAAO2D,KAAK,EAAE;QACf,OAAO,IAAI;MACZ;IAAC;EACF;EAAC,QAAA7J,CAAA;qBAxBWqxB,cAAc,EAAA5wB,sDAAA,CAAAJ,4DAAA;EAAA;EAAA,QAAAJ,EAAA;WAAdoxB,cAAc;IAAAtc,OAAA,EAAdsc,cAAc,CAAArc,IAAA;IAAAC,UAAA,EADF;EAAM;;;;;;;;;;;;;;;;;;;;ACHI;AACiC;AAEE;;;AAoBhE,MAAO6P,aAAa;EAQzBxjB,YAAoBspB,KAAe;IAAf,KAAAA,KAAK,GAALA,KAAK;IANzB,KAAA6G,eAAe,GAIX,EAAE;EAGN;EAEA;EACArJ,KAAKA,CAACxM,WAAW,EAAE8V,cAAc;IAChC,MAAMxsB,MAAM,GAAGwsB,cAAc,CAAC5K,KAAK;IACnC,MAAMmC,SAAS,GAAGyI,cAAc,CAACxK,eAAe;IAChD;IACA,MAAMoC,MAAM,GAAGoI,cAAc,CAAC7K,KAAK;IACnC,MAAM8K,IAAI,GAAGD,cAAc,CAAC1K,UAAU;IACtC,MAAM4K,MAAM,GAAGF,cAAc,CAACG,WAAW;IACzC,IAAI,CAACH,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACD,eAAe,GAAG,EAAE;IAEzB,IAAIvsB,MAAM,IAAIA,MAAM,CAACoG,MAAM,GAAG,CAAC,EAAE;MAChC;MACA2d,SAAS,CAACxY,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KAAKtW,CAAC,CAACuW,QAAQ,GAAGD,CAAC,CAACC,QAAQ,CAAC;MACjD,MAAMgK,aAAa,GAAG,EAAE;MACxB5sB,MAAM,CAACyN,OAAO,CAAEof,EAAE,IAAI;QACrB,MAAMC,MAAM,GAAG,CAACL,IAAI,IAAI,EAAE,EAAElf,MAAM,CAAEwf,CAAC,IAAKA,CAAC,CAAC9sB,KAAK,KAAK4sB,EAAE,CAACjU,EAAE,CAAC;QAC5D,MAAMiL,MAAM,GAAGE,SAAS,CAACxW,MAAM,CAACyf,EAAE,IAAIA,EAAE,CAAC/sB,KAAK,KAAK4sB,EAAE,CAACjU,EAAE,CAAC,CAAC1H,GAAG,CAAExM,CAAC,IAAKA,CAAC,CAACqe,GAAG,CAAC;QAC3E,MAAMkK,WAAW,GAAG,CAAC7I,MAAM,IAAI,EAAE,EAAE7W,MAAM,CAAE7C,CAAC,IAAKmZ,MAAM,CAAC7G,OAAO,CAACtS,CAAC,CAAC8Z,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjFyI,WAAW,CAAC1hB,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KAAKkB,MAAM,CAAC7G,OAAO,CAAC3Q,CAAC,CAACmY,MAAM,CAAC,GAAGX,MAAM,CAAC7G,OAAO,CAAC2F,CAAC,CAAC6B,MAAM,CAAC,CAAC;QAC/E,MAAM0I,WAAW,GAAG,CAACR,MAAM,IAAI,EAAE,EAAEnf,MAAM,CAAC4f,CAAC,IAAIA,CAAC,CAACltB,KAAK,KAAK4sB,EAAE,CAACjU,EAAE,CAAC;QACjEgU,aAAa,CAACC,EAAE,CAACjU,EAAE,CAAC,GAAG,IAAI,CAACwU,eAAe,CAACP,EAAE,EAAEI,WAAW,EAAEC,WAAW,EAAEJ,MAAM,EAAEpW,WAAW,CAACkG,MAAM,EAAElG,WAAW,CAACzK,UAAU,CAAC;MAC9H,CAAC,CAAC;MACF,OAAO2gB,aAAa;IACrB;IACA,OAAO,EAAE;EACV;EAEAQ,eAAeA,CAACntB,KAAK,EAAEmkB,MAAM,EAAEsI,MAAM,EAAED,IAAI,EAAE7P,MAAgB,EAAE3Q,UAAoB;IAClF,MAAMohB,gBAAgB,GAAgD,IAAI,CAACC,OAAO,CAACrtB,KAAK,EAAEmkB,MAAM,EAAEsI,MAAM,EAAED,IAAI,EAAE7P,MAAM,EAAE3Q,UAAU,CAAC;IACnI,MAAMshB,eAAe,GAAG,IAAI,CAACf,cAAc,CAACgB,WAAW,EAAE1Z,IAAI,CAAC2Z,EAAE,IAAIA,EAAE,CAAC7U,EAAE,KAAK3Y,KAAK,CAACytB,UAAU,CAAC;IAC/F/a,MAAM,CAAC8D,IAAI,CAAC4W,gBAAgB,CAAC,CAAC5f,OAAO,CAACyP,CAAC,IAAG;MACzC,MAAMyQ,CAAC,GAAGN,gBAAgB,CAACnQ,CAAC,CAAC;MAC7BmQ,gBAAgB,CAACnQ,CAAC,CAAC,GAAG,IAAI7R,8EAAiB,EAAE,CAACtB,SAAS,CAAC4jB,CAAC,EAAE1tB,KAAK,EAAEid,CAAC,CAAC;IACrE,CAAC,CAAC;IACF,MAAM0Q,cAAc,GAAGzQ,qEAAgB,CAACoQ,eAAe,EAAE3Q,MAAM,EAAE3Q,UAAU,CAAC;IAC5EiP,2DAAU,CAACG,YAAY,CAACgS,gBAAgB,EAAEptB,KAAK,EAAE2tB,cAAc,EAAE3tB,KAAK,CAAC4tB,QAAQ,CAAC;IAChF,OAAOR,gBAAgB;EACxB;EAEAC,OAAOA,CAACQ,cAAc,EAAE1J,MAAM,EAAEsI,MAAM,EAAED,IAAI,EAAE7P,MAAM,EAAE3Q,UAAU;IAE/D,MAAM6d,OAAO,GAAG,EAAE;IAClB,MAAMiE,OAAO,GAAG;MACfjE,OAAO;MACP2C,IAAI,EAAE,EAAE;MACR;MACAI,EAAE,EAAEiB,cAAc;MAClBlR,MAAM;MACN3Q;KACA;IACD,IAAI8hB,OAAO,CAAC9hB,UAAU,EAAE+Q,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;MAC/C+Q,OAAO,CAAC9hB,UAAU,CAACO,IAAI,CAAC,MAAM,CAAC;IAChC;IAEA,KAAK,MAAM2gB,CAAC,IAAIT,MAAM,EAAE;MACvB,IAAIS,CAAC,CAAC9V,OAAO,EAAE;QACd8V,CAAC,CAACzhB,KAAK,GAAG,CAAC;QAAEyhB,CAAC,CAACngB,QAAQ,GAAG,CAAC;QAC3BmgB,CAAC,CAACvhB,KAAK,GAAG,CAAC;QAAEuhB,CAAC,CAACa,KAAK,GAAG,CAAC;QACxBb,CAAC,CAAC7f,SAAS,GAAG,EAAE;QAChB6f,CAAC,CAACxE,OAAO,GAAG,EAAE;QACd,IAAI,CAAC4D,eAAe,CAACY,CAAC,CAAC9V,OAAO,CAAC,GAAG,IAAI,CAACkV,eAAe,CAACY,CAAC,CAAC9V,OAAO,CAAC,IAAI,EAAE;QACvE,IAAI,CAACkV,eAAe,CAACY,CAAC,CAAC9V,OAAO,CAAC,CAACyW,cAAc,CAAClV,EAAE,CAAC,GAAGuU,CAAC;MACvD;IACD;IAEA,MAAMc,aAAa,GAAG,EAAE;IACxB,KAAK,MAAMlB,CAAC,IAAIN,IAAI,EAAE;MACrB,IAAIM,CAAC,CAAC1V,OAAO,EAAE;QACd4W,aAAa,CAAClB,CAAC,CAAC1V,OAAO,CAAC,GAAG0V,CAAC;MAC7B;IACD;IAEC;IACD,KAAK,MAAMriB,CAAC,IAAI0Z,MAAM,EAAE;MACvB,MAAME,UAAU,GAAG,IAAI,CAACkI,cAAc,CAAC3K,WAAW,CAAC/N,IAAI,CAACoa,EAAE,IAAIA,EAAE,CAACtV,EAAE,KAAKlO,CAAC,CAAC4Z,UAAU,CAAC;MACrF,IAAIA,UAAU,IAAIA,UAAU,CAACjN,OAAO,EAAE;QACrC,IAAI,CAAC,IAAI,CAACkV,eAAe,CAACjI,UAAU,CAACjN,OAAO,CAAC,GAAGyW,cAAc,CAAClV,EAAE,CAAC,EAAE;UACnE,IAAI,CAAC2T,eAAe,CAACjI,UAAU,CAACjN,OAAO,CAAC,GAAG,IAAI,CAACkV,eAAe,CAACjI,UAAU,CAACjN,OAAO,CAAC,IAAI,EAAE;UACzF,IAAI,CAACkV,eAAe,CAACjI,UAAU,CAACjN,OAAO,CAAC,CAACyW,cAAc,CAAClV,EAAE,CAAC,GAAG;YAC7DvB,OAAO,EAAEiN,UAAU,CAACjN,OAAO;YAC3BpX,KAAK,EAAE6tB,cAAc,CAAClV,EAAE;YACxBlN,KAAK,EAAG,CAAC;YAAEsB,QAAQ,EAAG,CAAC;YACvBpB,KAAK,EAAG,CAAC;YAAEoiB,KAAK,EAAG,CAAC;YACpB1gB,SAAS,EAAE,EAAE;YACbqb,OAAO,EAAE;WACe;UACzBhW,MAAM,CAACe,MAAM,CAAC,IAAI,CAAC6Y,eAAe,CAACjI,UAAU,CAACjN,OAAO,CAAC,CAACyW,cAAc,CAAClV,EAAE,CAAC,EAAE;YAC1EtL,SAAS,EAAE,EAAE;YACbqb,OAAO,EAAE;WACT,CAAC;QACH;QACA,IAAI,CAACwF,UAAU,CAAC,IAAI,CAAC5B,eAAe,CAACjI,UAAU,CAACjN,OAAO,CAAC,CAACyW,cAAc,CAAClV,EAAE,CAAC,EAAElO,CAAC,EAAEujB,aAAa,CAAC3J,UAAU,CAACjN,OAAO,CAAC,CAAC;MACnH;IACD;IACA0W,OAAO,CAACtB,IAAI,GAAGwB,aAAa;IAC5B,OAAO,IAAI,CAACG,aAAa,CAAC,IAAI,CAAC7B,eAAe,EAAEwB,OAAO,CAAC;EACzD;EAEAK,aAAaA,CAAC7B,eAAkF,EAAEwB,OAAO;IACxG,MAAMzS,MAAM,GAAG,EAAE;IAEjByS,OAAO,CAAC9hB,UAAU,EAAEwB,OAAO,CAAG4gB,GAAG,IAAK/S,MAAM,CAAC+S,GAAG,CAAC,GAAG,EAAE,CAAC;IACvD,CAACN,OAAO,CAACnR,MAAM,IAAI,EAAE,EAAEnP,OAAO,CAAEyZ,CAAC,IAAK5L,MAAM,CAAC4L,CAAC,CAAC,GAAG,EAAE,CAAC;IAErD6G,OAAO,CAACjE,OAAO,CAACiE,OAAO,CAAClB,EAAE,CAACjU,EAAE,CAAC,GAAG0C,MAAM;IACvC;IACA3I,MAAM,CAAC8D,IAAI,CAAC8V,eAAe,CAAC,CAAC9e,OAAO,CAAE2I,SAAS,IAAI;MAClD,MAAMkY,EAAE,GAAG/B,eAAe,CAACnW,SAAS,CAAC,GAAG2X,OAAO,CAAClB,EAAE,CAACjU,EAAE,CAAC;MACtD,MAAM5B,GAAG,GAAG+W,OAAO,CAACtB,IAAI,CAACrW,SAAS,CAAC;MACnC,IAAIkY,EAAE,EAAE;QACP,IAAI9R,KAAK;QACT,IAAI+R,QAAQ,GAAG,EAAE;QACjB,IAAIvX,GAAG,IAAI,IAAI,EAAE;UAChBwF,KAAK,GAAG,CAAC,CAACxF,GAAG,CAAC+P,QAAQ,IAAI,EAAE,EAAE9gB,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;UAClF,IAAI,OAAO+Q,GAAG,CAACwX,QAAQ,KAAK,QAAQ,EAAE;YAAExX,GAAG,CAACwX,QAAQ,GAAGxX,GAAG,CAACwX,QAAQ,CAACvpB,KAAK,CAAC,GAAG,CAAC;UAAE;UAChFspB,QAAQ,GAAG,CAACvX,GAAG,CAACwX,QAAQ,IAAI,EAAE,EAAE3R,MAAM,CAAC,CAACL,KAAK,CAAC,CAAC;QAChD;QAEA7J,MAAM,CAAC8D,IAAI,CAAC8X,QAAQ,CAAC,CAAC9gB,OAAO,CAACuX,CAAC,IAAG;UACjC,MAAMlS,CAAC,GAAGyb,QAAQ,CAACvJ,CAAC,CAAC;UACrB,IAAI1J,MAAM,CAACmT,cAAc,CAAC3b,CAAC,CAAC,EAAE;YAC9Bwb,EAAE,CAACC,QAAQ,GAAGA,QAAQ;YACtBD,EAAE,CAAC9R,KAAK,GAAGA,KAAK;YAChB8R,EAAE,CAAChY,UAAU,GAAGU,GAAG;YACnBsE,MAAM,CAACxI,CAAC,CAAC,CAACtG,IAAI,CAAC8hB,EAAE,CAAC;UAClB;QACD,CAAC,CAAC;MACH;IACD,CAAC,CAAC;IACF,OAAOhT,MAAM;EACd;EAEA6S,UAAUA,CAAChB,CAAuB,EAAEziB,CAAY,EAAEsM,GAAgB;IAEjE,MAAMsN,UAAU,GAAG,IAAI,CAACkI,cAAc,CAAC3K,WAAW,CAAC/N,IAAI,CAACoa,EAAE,IAAIA,EAAE,CAACtV,EAAE,KAAKlO,CAAC,CAAC4Z,UAAU,CAAC;IACrF,IAAIA,UAAU,IAAI,IAAI,IAAIA,UAAU,CAAC5V,KAAK,IAAI,IAAI,EAAE;MACnD,MAAMA,KAAK,GAAG,IAAI,CAAC8d,cAAc,CAACkC,KAAK,CAAC5a,IAAI,CAAC6a,EAAE,IAAIA,EAAE,CAAC/V,EAAE,KAAK0L,UAAU,CAAC5V,KAAK,CAAC;MAC9E,MAAMsU,SAAS,GAAG,IAAI,CAACwJ,cAAc,CAACoC,UAAU,CAAC9a,IAAI,CAAC+a,EAAE,IAAIA,EAAE,CAACjW,EAAE,KAAKlK,KAAK,CAACsU,SAAS,CAAC;MACtF,MAAM/iB,KAAK,GAAG,IAAI,CAACusB,cAAc,CAAC5K,KAAK,CAAC9N,IAAI,CAAC+Y,EAAE,IAAIA,EAAE,CAACjU,EAAE,KAAKuU,CAAC,CAACltB,KAAK,CAAC;MAErE,MAAM6uB,SAAS,GAAGpgB,KAAK,CAACgV,iBAAiB;MACzC,MAAMhW,KAAK,GAAGsV,SAAS,CAAC+L,aAAa;MAErC5B,CAAC,CAACxE,OAAO,CAACnc,IAAI,CAAC9B,CAAC,CAAC;MACjB,IAAIokB,SAAS,IAAIA,SAAS,CAAC1oB,MAAM,GAAG,CAAC,EAAE;QACtC;QACA,MAAM4oB,WAAW,GAAG7B,CAAC,CAAC7f,SAAS,CAACwhB,SAAS,CAAC,IAAI;UAC7Cd,KAAK,EAAE,CAAC;UAAEpgB,KAAK,EAAE,CAAC;UAAEhC,KAAK,EAAE,CAAC;UAAEoB,QAAQ,EAAE,CAAC;UACzCQ,MAAM,EAAE;SACR;QACDwhB,WAAW,CAACphB,KAAK,IAAIjC,MAAM,CAACjB,CAAC,CAACkD,KAAK,CAAC;QACpCohB,WAAW,CAAChiB,QAAQ,IAAIrB,MAAM,CAACjB,CAAC,CAACsC,QAAQ,CAAC;QAE1CgiB,WAAW,CAACxhB,MAAM,CAAC7B,MAAM,CAAC+B,KAAK,CAAC,CAAC,GAAGshB,WAAW,CAACxhB,MAAM,CAAC7B,MAAM,CAAC+B,KAAK,CAAC,CAAC,IAAI;UACxEE,KAAK,EAAE,CAAC;UAAEZ,QAAQ,EAAE,CAAC;UAAEpB,KAAK,EAAE,CAAC;UAAEoiB,KAAK,EAAE;SACxC;QACDgB,WAAW,CAACxhB,MAAM,CAAC7B,MAAM,CAAC+B,KAAK,CAAC,CAAC,CAACE,KAAK,IAAIjC,MAAM,CAACjB,CAAC,CAACkD,KAAK,CAAC;QAC1DohB,WAAW,CAACxhB,MAAM,CAAC7B,MAAM,CAAC+B,KAAK,CAAC,CAAC,CAACV,QAAQ,IAAIrB,MAAM,CAACjB,CAAC,CAACsC,QAAQ,CAAC;QAChEgiB,WAAW,CAACxhB,MAAM,CAAC7B,MAAM,CAAC+B,KAAK,CAAC,CAAC,CAACsgB,KAAK,IAAIriB,MAAM,CAACjB,CAAC,CAACsjB,KAAK,CAAC;QAE1D,IAAI,IAAI,CAACtI,KAAK,CAACqC,QAAQ,CAAC9nB,KAAK,CAAC,KAAK,OAAO,EAAE;UAC3C+uB,WAAW,CAACpjB,KAAK,IAAID,MAAM,CAACjB,CAAC,CAAC6d,UAAU,IAAI,CAAC,CAAC;UAC9CyG,WAAW,CAACxhB,MAAM,CAAC7B,MAAM,CAAC+B,KAAK,CAAC,CAAC,CAAC9B,KAAK,IAAID,MAAM,CAACjB,CAAC,CAAC6d,UAAU,IAAI,CAAC,CAAC;QACrE;QAEA4E,CAAC,CAAC7f,SAAS,CAACwhB,SAAS,CAAC,GAAGE,WAAW;MACrC,CAAC,MAAM;QACN7B,CAAC,CAACzhB,KAAK,IAAIC,MAAM,CAACjB,CAAC,CAACkD,KAAK,CAAC;QAC1B,IAAI,CAAC8X,KAAK,CAAC2C,cAAc,CAACpoB,KAAK,EAAEktB,CAAC,EAAEziB,CAAC,EAAEsM,GAAG,CAAC;QAC3CmW,CAAC,CAACngB,QAAQ,IAAIrB,MAAM,CAACjB,CAAC,CAACsC,QAAQ,CAAC;QAChCmgB,CAAC,CAACa,KAAK,IAAIriB,MAAM,CAACjB,CAAC,CAACsjB,KAAK,CAAC;QAC1B;QACAb,CAAC,CAACnD,gBAAgB,GAAGtb,KAAK,CAACsV,WAAW,GAAG,GAAG,IAAIM,UAAU,CAACH,aAAa,GAAG,CAAC,CAAC;MAC9E;IACD;EACD;EAAC,QAAArpB,CAAA;qBA3LW8kB,aAAa,EAAArkB,sDAAA,CAAAJ,4CAAA;EAAA;EAAA,QAAAJ,EAAA;WAAb6kB,aAAa;IAAA/P,OAAA,EAAb+P,aAAa,CAAA9P,IAAA;IAAAC,UAAA,EADD;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBmB;AAE4E;AACnE;AACkB;AAC3B;AACa;AACZ;;;;;;;AAO7C,MAAOvR,WAAW;EAKtBpC,YACU6C,IAAgB,EAChB2S,aAAkC,EAClCD,UAA8B,EAC9BrS,cAA8B,EAC9BE,aAAmC;IAJnC,KAAAP,IAAI,GAAJA,IAAI;IACJ,KAAA2S,aAAa,GAAbA,aAAa;IACb,KAAAD,UAAU,GAAVA,UAAU;IACV,KAAArS,cAAc,GAAdA,cAAc;IACd,KAAAE,aAAa,GAAbA,aAAa;IATvB,KAAA4Z,WAAW,GAAG,IAAIxI,iDAAe,CAAekB,SAAS,CAAC;IAC1D,KAAAmd,cAAc,GAAG,IAAIre,iDAAe,CAAQkB,SAAS,CAAC;IACtD,KAAAod,cAAc,GAAG,IAAIte,iDAAe,CAAU,KAAK,CAAC;IASlD,IAAI,CAACse,cAAc,CAAChc,IAAI,CAAC,CAAC7U,qEAAW,CAACyF,UAAU,CAAC;IAEjD,IAAI,CAACxE,cAAc,CAAC8S,mBAAmB,CAACC,IAAI,CAC1CnB,yCAAG,CAACoB,OAAO,IAAG;MACZ,OAAOA,OAAO,GAAGA,OAAO,CAAC6G,UAAU,IAAI,EAAE,GAAG,IAAI;IAClD,CAAC,CAAC,EACF7H,yCAAG,CAAEwB,CAAC,IAAKjS,OAAO,CAACC,GAAG,CAACgS,CAAC,IAAI,eAAe,CAAC,CAAC,EAC7CxB,yCAAG,CAACkF,GAAG,IAAG;MACR,MAAM2Y,MAAM,GAAG3Y,GAAG,EAAEtF,GAAG,CAAC3W,CAAC,IAAIA,CAAC,CAACwY,YAAY,CAAC;MAC5C,IAAIoc,MAAM,EAAE/oB,MAAM,EAAE;QAClB,IAAI,CAACuL,UAAU,CAACqB,sBAAsB,CAACmc,MAAM,CAAC;MAChD;IACF,CAAC,CAAC,CACH,CAACpvB,SAAS,CAAC,IAAI,CAACqZ,WAAW,CAAC;IAE7BtI,mDAAa,CAAC,CACZ,IAAI,CAACxR,cAAc,CAAC6S,QAAQ,EAC5B,IAAI,CAAC7S,cAAc,CAAC8S,mBAAmB,CACxC,CAAC,CAACC,IAAI,CACLxB,iDAAU,CAAChO,GAAG,IAAG;MAAGhC,OAAO,CAACiC,IAAI,CAACD,GAAG,CAAC;MAAE,OAAOwO,yCAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAAC,CAAC,CAAC,EACjE9D,6CAAM,CAAC,CAAC,GAAG+E,OAAO,CAAC,KAAK,CAAC,CAACA,OAAO,CAAC,EAClCnB,+CAAQ,CAAC,MAAM,IAAI,CAAClS,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,0BAA0B,CAAC,CAAC,EACpF+H,yCAAG,CAAEke,MAAa,IAAKA,MAAM,CAAC7hB,MAAM,CAACuP,CAAC,IAAI,CAACA,CAAC,CAACuS,YAAY,CAAC,CAAC,CAC5D,CAACtvB,SAAS,CAAC,IAAI,CAACkvB,cAAc,CAAC;IAGhC,IAAI,CAACrd,aAAa,CAACqC,cAAc,CAAClU,SAAS,CAAC,IAAI,CAACT,cAAc,CAAC6S,QAAQ,CAAC;EAE3E;EAEAmd,eAAeA,CAAA;IACb,OAAOxe,mDAAa,CAAC,CACnB,IAAI,CAACsI,WAAW,CAAC/G,IAAI,CAACf,yCAAG,CAAC,MAAMzQ,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAC3D,IAAI,CAACtB,aAAa,CAACM,gBAAgB,CAACuS,IAAI,CAACf,yCAAG,CAAC,MAAMzQ,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CACjF,CAAC,CAACuR,IAAI,CACLlB,+CAAQ,CAAC,CAAC,CAACgI,UAAU,EAAEpD,UAAU,CAAC,KAAI;MACpC,IAAIA,UAAU,IAAIoD,UAAU,EAAE/S,MAAM,GAAG,CAAC,EAAE;QACxC,OAAOmL,0CAAG,CAAC,CACT,GAAG4H,UAAU,EAAEjI,GAAG,CAACkF,SAAS,IAAI,IAAI,CAACnX,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAACqY,WAAW,CAACvN,GAAG,cAAciN,SAAS,CAACmZ,WAAW,kBAAkB,CAAC,CAAC,EACnI,GAAGpW,UAAU,EAAEjI,GAAG,CAACkF,SAAS,IAAI,IAAI,CAACnX,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAACqY,WAAW,CAACvN,GAAG,cAAciN,SAAS,CAACmZ,WAAW,sBAAsB,CAAC,CAAC,CACxI,CAAC;MACJ,CAAC,MAAM;QACL,OAAOle,yCAAE,CAAC,EAAE,CAAC;MACf;IACF,CAAC,CAAC,EACFH,yCAAG,CAAC0F,WAAW,IAAG;MAChB,MAAMG,QAAQ,GAAG,EAAE;MAEnBH,WAAW,CAAC1F,GAAG,CAAC7E,CAAC,IAAIA,CAAC,CAACwK,KAAK,CAAC,CAC5BpJ,OAAO,CAACrB,GAAG,IAAIA,GAAG,CAACqB,OAAO,CAACuJ,GAAG,IAAG;QAChC,IAAI,CAACA,GAAG,CAACI,QAAQ,EAAE;UACjBL,QAAQ,CAACC,GAAG,CAACM,IAAI,CAAC,GAAGP,QAAQ,CAACC,GAAG,CAACM,IAAI,CAAC,IAAI,EAAE;UAC7CP,QAAQ,CAACC,GAAG,CAACM,IAAI,CAAC,CAAC9K,IAAI,CAACwK,GAAG,CAAC;QAC9B;MACF,CAAC,CAAC,CAAC;MAEH,OAAOD,QAAQ;IACjB,CAAC,CAAC,EACFlG,iDAAU,CAAChO,GAAG,IAAG;MAAGhC,OAAO,CAACiC,IAAI,CAACD,GAAG,CAAC;MAAE,OAAOwO,yCAAE,CAAC,EAAE,CAAC;IAAA,CAAC,CAAC,CACvD;EACH;EAEMme,wBAAwBA,CAACC,OAAO;IAAA,IAAA/vB,KAAA;IAAA,OAAAmC,oJAAA;MACpC,MAAMoc,WAAW,SAAS3f,qDAAc,CAACoB,KAAI,CAACJ,cAAc,CAAC8S,mBAAmB,CAAC;MACjFO,MAAM,CAACe,MAAM,CAACuK,WAAW,EAAEwR,OAAO,CAAC;MAEnC,MAAMnxB,qDAAc,CAACoB,KAAI,CAACT,IAAI,CAACiW,GAAG,CAAC,GAAG7W,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,gBAAgB8U,WAAW,CAAC1L,GAAG,EAAE,EAAEkd,OAAO,CAAC,CAAC;MAC1G;IAAA;EACF;EAEMC,cAAcA,CAACC,UAAkB;IAAA,IAAA1sB,MAAA;IAAA,OAAApB,oJAAA;MACrC,MAAMoc,WAAW,SAAS3f,qDAAc,CAAC2E,MAAI,CAAC3D,cAAc,CAAC8S,mBAAmB,CAAC;MAEjF,MAAM9T,qDAAc,CAAC2E,MAAI,CAAChE,IAAI,CAACwW,KAAK,CAAC,GAAGpX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,gBAAgB8U,WAAW,CAAC1L,GAAG,EAAE,EAAE;QACjGqd,KAAK,EAAE;UAAEzW,UAAU,EAAE,OAAOwW,UAAU;QAAE;OACzC,CAAC,CAAC;MACH1sB,MAAI,CAAC3D,cAAc,CAAC6S,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EACnD;EAEMob,WAAWA,CAACC,OAAO;IAAA,IAAA1sB,MAAA;IAAA,OAAAvB,oJAAA;MACvB,MAAMvD,qDAAc,CAClB8E,MAAI,CAACnE,IAAI,CAACoW,MAAM,CAAC,GAAGhX,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,4BAA4B2mB,OAAO,EAAE,CAAC,CACnF;MACD1sB,MAAI,CAAC9D,cAAc,CAAC6S,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAAC;EACnD;EAEMsb,gBAAgBA,CAACN,OAAO;IAAA,IAAAjsB,MAAA;IAAA,OAAA3B,oJAAA;MAC5B,MAAMsX,UAAU,SAAS7a,qDAAc,CAACkF,MAAI,CAAC4V,WAAW,CAAC;MAEzDD,UAAU,CAAC1L,OAAO;QAAA,IAAA7L,IAAA,GAAAC,oJAAA,CAAC,WAAOqH,QAAQ,EAAI;UACpCyJ,MAAM,CAACe,MAAM,CAACxK,QAAQ,EAAEumB,OAAO,CAAC;UAEhC,MAAMnxB,qDAAc,CAClBkF,MAAI,CAACvE,IAAI,CAACiW,GAAG,CAAC,GAAG7W,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,sBAAsBD,QAAQ,CAACqJ,GAAG,EAAE,EAAErJ,QAAQ,CAAC,CACzF;QACH,CAAC;QAAA,iBAAAzG,EAAA;UAAA,OAAAb,IAAA,CAAAc,KAAA,OAAAC,SAAA;QAAA;MAAA,IAAC;IAAC;EACL;EAEMsX,qBAAqBA,CAAC/Q,QAAQ,EAAEmN,UAAU;IAAA,IAAAxS,MAAA;IAAA,OAAAhC,oJAAA;MAC9CqH,QAAQ,CAACmN,UAAU,GAAGnN,QAAQ,CAACmN,UAAU,IAAI,EAAE;MAC/C1D,MAAM,CAACe,MAAM,CAACxK,QAAQ,CAACmN,UAAU,EAAEA,UAAU,CAAC;MAE9C,MAAM/X,qDAAc,CAClBuF,MAAI,CAAC5E,IAAI,CAACiW,GAAG,CAAC,GAAG7W,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,sBAAsBD,QAAQ,CAACqJ,GAAG,aAAa,EAAE;QAAE8D,UAAU,EAAEnN,QAAQ,CAACmN;MAAU,CAAC,CAAC,CAC9H;IAAC;EACJ;EAEA2Z,iBAAiBA,CAACL,UAAU;IAC1B,OAAO,IAAI,CAAC1wB,IAAI,CAACoF,GAAG,CAAC,GAAGhG,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,mBAAmBwmB,UAAU,EAAE,CAAC;EAClF;EAEAM,cAAcA,CAACC,iBAAwC;IACrD,OAAO,IAAI,CAACjxB,IAAI,CAACmV,IAAI,CAAC,GAAG/V,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,0BAA0B,EAAE+mB,iBAAiB,CAAC,CAC9F7d,IAAI,CACHf,yCAAG,CAAC,MAAK;MACP,IAAI,CAAChS,cAAc,CAAC6S,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAClD,CAAC,CAAC,CACH;EACH;EAEA0b,2BAA2BA,CAACD,iBAAwC;IAClE,OAAO,IAAI,CAACjxB,IAAI,CAACmV,IAAI,CAAC,GAAG/V,qEAAW,CAAC6K,QAAQ,CAACC,GAAG,2BAA2B,EAAE+mB,iBAAiB,CAAC,CAC/F7d,IAAI,CACHf,yCAAG,CAAC,MAAK;MACP,IAAI,CAAChS,cAAc,CAAC6S,QAAQ,CAACe,IAAI,CAAC9F,IAAI,CAACqH,MAAM,EAAE,CAAC;IAClD,CAAC,CAAC,CACH;EACH;EAAC,QAAA3Z,CAAA;qBA3IU0D,WAAW,EAAAjD,uDAAA,CAAAJ,6DAAA,GAAAI,uDAAA,CAAA+K,qFAAA,GAAA/K,uDAAA,CAAAgL,2DAAA,GAAAhL,uDAAA,CAAAiL,4DAAA,GAAAjL,uDAAA,CAAAkL,wEAAA;EAAA;EAAA,QAAA1L,EAAA;WAAXyD,WAAW;IAAAqR,OAAA,EAAXrR,WAAW,CAAAsR,IAAA;IAAAC,UAAA,EAFV;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;ACX4C;AACf;AACC;AACoC;;;;;;;;;;;;;;;;ICMrFxU,4DADD,qBAA6I,QACzI;IAAAA,oDAAA,0FAAmF;IAAAA,0DAAA,EAAI;IAC1FA,4DAAA,QAAG;IAAAA,oDAAA,2GAAoG;IACxGA,0DADwG,EAAI,EAC9F;;;;;IAkBRA,4DAAA,cAAiH;IAAAA,oDAAA,GAAiC;IAAAA,0DAAA,EAAM;;;;;IAAvCA,uDAAA,EAAiC;IAAjCA,gEAAA,WAAAQ,MAAA,CAAAq0B,aAAA,CAAAC,QAAA,CAAAzX,EAAA,MAAiC;;;;;IAOhJrd,qEAAA,GAA6C;IAC5CA,4DAAA,eAAuB;IAAAA,oDAAA,GAAuE;IAAAA,0DAAA,EAAO;;;;;IAA9EA,uDAAA,GAAuE;IAAvEA,gEAAA,WAAAi1B,MAAA,CAAA7K,OAAA,MAAA6K,MAAA,CAAA9K,KAAA,6BAAA8K,MAAA,CAAA9K,KAAA,KAAuE;;;;;IAI7FnqB,4DAAA,WAAqC;IAAAA,oDAAA,GAA8C;IAAAA,0DAAA,EAAO;;;;;IAArDA,uDAAA,EAA8C;IAA9CA,+DAAA,CAAAQ,MAAA,CAAA20B,gBAAA,CAAAC,QAAA,CAAA3N,SAAA,CAAApK,EAAA,mBAAA7c,MAAA,CAAA20B,gBAAA,CAAAC,QAAA,CAAA3N,SAAA,CAAApK,EAAA,EAAA/J,IAAA,CAA8C;;;;;IACnFtT,4DAAA,WAAmC;IAAAA,oDAAA,GAAyE;IAAAA,0DAAA,EAAO;;;;;IAAhFA,uDAAA,EAAyE;IAAzEA,gEAAA,kBAAAQ,MAAA,CAAA20B,gBAAA,CAAAC,QAAA,CAAA3N,SAAA,CAAApK,EAAA,mBAAA7c,MAAA,CAAA20B,gBAAA,CAAAC,QAAA,CAAA3N,SAAA,CAAApK,EAAA,EAAAjK,QAAA,kBAAA5S,MAAA,CAAA20B,gBAAA,CAAAC,QAAA,CAAA3N,SAAA,CAAApK,EAAA,EAAAjK,QAAA,CAAAC,IAAA,KAAyE;;;;;IAF7GrT,4DAAA,YAA6E;IAE5EA,wDADA,IAAAq1B,2GAAA,mBAAqC,IAAAC,2GAAA,mBACF;IACpCt1B,0DAAA,EAAI;;;;IAFIA,uDAAA,EAA4B;IAA5BA,wDAAA,UAAAu1B,QAAA,CAAAjiB,IAAA,kBAAAiiB,QAAA,CAAAjiB,IAAA,CAAAzI,MAAA,MAA4B;IAC5B7K,uDAAA,EAA0B;IAA1BA,wDAAA,SAAAu1B,QAAA,CAAAniB,QAAA,kBAAAmiB,QAAA,CAAAniB,QAAA,CAAAC,IAAA,CAA0B;;;;;IAHnCrT,qEAAA,GAA+G;IAC9GA,wDAAA,IAAAw1B,oGAAA,gBAA6E;;;;;;IAAzEx1B,uDAAA,EAA2C;IAA3CA,wDAAA,SAAAQ,MAAA,CAAA20B,gBAAA,CAAAC,QAAA,CAAA3N,SAAA,CAAApK,EAAA,EAA2C;;;;;IAOhDrd,4DAAA,oBAA2F;IAC1FA,oDAAA,GACD;IAAAA,0DAAA,EAAY;;;;;IADXA,uDAAA,EACD;IADCA,gEAAA,MAAAQ,MAAA,CAAAk1B,WAAA,CAAAC,MAAA,CAAAtY,EAAA,mBAAA7c,MAAA,CAAAk1B,WAAA,CAAAC,MAAA,CAAAtY,EAAA,EAAAhL,KAAA,SAAA7R,MAAA,CAAAk1B,WAAA,CAAAC,MAAA,CAAAtY,EAAA,mBAAA7c,MAAA,CAAAk1B,WAAA,CAAAC,MAAA,CAAAtY,EAAA,EAAA5L,QAAA,MACD;;;;;IAHDzR,qEAAA,GAA6C;IAC5CA,wDAAA,IAAA41B,4GAAA,wBAA2F;;;;;;IAAlC51B,uDAAA,EAAgC;IAAhCA,wDAAA,SAAAQ,MAAA,CAAAk1B,WAAA,CAAAC,MAAA,CAAAtY,EAAA,mBAAA7c,MAAA,CAAAk1B,WAAA,CAAAC,MAAA,CAAAtY,EAAA,EAAAhL,KAAA,CAAgC;;;;;IAhB5FrS,qEAAA,GACyF;IAGtFA,4DAFF,eAAU,gBACE,cACsB;IAAAA,oDAAA,GAAiB;IAAAA,0DAAA,EAAO;IAIxDA,wDAHA,IAAA61B,gGAAA,0BAA6C,IAAAC,gGAAA,2BAGkE;;IAMhH91B,0DAAA,EAAY;IACZA,wDAAA,IAAA+1B,gGAAA,0BAA6C;IAK9C/1B,0DAAA,EAAW;;;;;;;;IAhBuBA,uDAAA,GAAiB;IAAjBA,gEAAA,WAAAg2B,KAAA,UAAiB;IACnBh2B,uDAAA,EAAa;IAAbA,wDAAA,YAAAo1B,QAAA,CAAAjO,IAAA,CAAa;IAG5BnnB,uDAAA,EAA8F;IAA9FA,wDAAA,SAAA80B,QAAA,CAAAlN,WAAA,aAAA5nB,yDAAA,OAAAQ,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,kBAAAnlB,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAxK,WAAA,EAA8F;IAOhFnb,uDAAA,GAAa;IAAbA,wDAAA,YAAAo1B,QAAA,CAAAjO,IAAA,CAAa;;;;;IAkBzCnnB,4DAAA,oBAA2F;IAC1FA,oDAAA,GACD;IAAAA,0DAAA,EAAY;;;;IADXA,uDAAA,EACD;IADCA,gEAAA,MAAAk2B,QAAA,kBAAAA,QAAA,CAAA7jB,KAAA,SAAA6jB,QAAA,kBAAAA,QAAA,CAAAzkB,QAAA,MACD;;;;;IAHDzR,qEAAA,GAA0D;IACzDA,wDAAA,IAAAm2B,4GAAA,wBAA2F;;;;;IAA7Cn2B,uDAAA,EAAkB;IAAlBA,wDAAA,SAAAk2B,QAAA,kBAAAA,QAAA,CAAA7jB,KAAA,CAAkB;;;;;IAPpErS,qEAAA,GAAqF;IAGlFA,4DAFF,eAAU,oBAC0B,cACF;IAAAA,oDAAA,GAA6B;IAC9DA,0DAD8D,EAAO,EACzD;IACZA,4DAAA,mBAA6D;IAC5DA,wDAAA,IAAAo2B,gGAAA,0BAA0D;IAM5Dp2B,0DADC,EAAW,EACD;;;;;IATuBA,uDAAA,GAA6B;IAA7BA,gEAAA,gBAAAq2B,WAAA,CAAAha,GAAA,OAA6B;IAG7Brc,uDAAA,GAAwB;IAAxBA,wDAAA,YAAAq2B,WAAA,CAAAjwB,KAAA,CAAA6L,MAAA,CAAwB;;;;;IA5C7DjS,4DADD,mBAAuH,0BAC3D;IAC1DA,oDAAA,GACD;IAAAA,0DAAA,EAAkB;IAIfA,4DAHH,uBAAkB,eACP,eACC,gBACE;IACVA,oDAAA,GAED;IAAAA,0DAAA,EAAY;IACZA,wDAAA,IAAAs2B,uEAAA,kBAAiH;;IAClHt2B,0DAAA,EAAW;IACXA,wDAAA,KAAAu2B,iFAAA,0BACyF;IAsBxFv2B,4DADD,gBAAU,iBACE;IAAAA,oDAAA,mBAAW;IAAAA,0DAAA,EAAY;IAClCA,4DAAA,qBAAwD;IAAAA,oDAAA,IAAuF;;IAChJA,0DADgJ,EAAY,EACjJ;IACXA,wDAAA,KAAAw2B,iFAAA,0BAAqF;;IAgBxFx2B,0DAFE,EAAW,EACO,EACT;;;;;IArDTA,uDAAA,GACD;IADCA,gEAAA,MAAA80B,QAAA,CAAAlN,WAAA,mCAAAkN,QAAA,CAAAjN,WAAA,MAAAiN,QAAA,CAAAlwB,IAAA,WAAAkwB,QAAA,CAAAlwB,IAAA,WACD;IAKI5E,uDAAA,GAED;IAFCA,gEAAA,MAAAQ,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAzlB,MAAA,CAAAsb,OAAA,CAAAuB,EAAA,EAAAyX,QAAA,CAAAzX,EAAA,mBAAA7c,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAzlB,MAAA,CAAAsb,OAAA,CAAAuB,EAAA,EAAAyX,QAAA,CAAAzX,EAAA,EAAAmO,QAAA,OAAAhrB,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAzlB,MAAA,CAAAsb,OAAA,CAAAuB,EAAA,EAAAyX,QAAA,CAAAzX,EAAA,mBAAA7c,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAzlB,MAAA,CAAAsb,OAAA,CAAAuB,EAAA,EAAAyX,QAAA,CAAAzX,EAAA,EAAA4V,QAAA,kBAAAzyB,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAzlB,MAAA,CAAAsb,OAAA,CAAAuB,EAAA,EAAAyX,QAAA,CAAAzX,EAAA,EAAA4V,QAAA,CAAA/hB,IAAA,WAED;IACiBlR,uDAAA,EAA8F;IAA9FA,wDAAA,SAAA80B,QAAA,CAAAlN,WAAA,aAAA5nB,yDAAA,OAAAQ,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,kBAAAnlB,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAxK,WAAA,EAA8F;IAG7Fnb,uDAAA,GAAsD;IAAtDA,wDAAA,YAAAQ,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAK,aAAA,CAAA8O,QAAA,CAAAzX,EAAA,EAAsD;IAuBhBrd,uDAAA,GAAuF;IAAvFA,+DAAA,CAAAA,yDAAA,SAAAQ,MAAA,CAAAk2B,aAAA,CAAA5B,QAAA,CAAAzX,EAAA,GAAAyX,QAAA,EAAA90B,6DAAA,KAAA42B,GAAA,GAAuF;IAE7G52B,uDAAA,GAAgD;IAAhDA,wDAAA,YAAAA,yDAAA,SAAAQ,MAAA,CAAAk2B,aAAA,CAAA5B,QAAA,CAAAzX,EAAA,mBAAA7c,MAAA,CAAAk2B,aAAA,CAAA5B,QAAA,CAAAzX,EAAA,EAAAtL,SAAA,EAAgD;;;;;IA3CvF/R,qEAAA,GAAuC;IAEtCA,4DAAA,YAA8B;IAAAA,oDAAA,GAA0D;;IAAAA,0DAAA,EAAK;IAE7FA,wDAAA,IAAA62B,iEAAA,yBAAuH;;;;;;IAFzF72B,uDAAA,GAA0D;IAA1DA,+DAAA,CAAA82B,OAAA,8BAAA92B,yDAAA,OAAA82B,OAAA,cAA0D;IAET92B,uDAAA,GAAsC;IAAtCA,wDAAA,YAAAQ,MAAA,CAAAswB,cAAA,CAAAnL,UAAA,CAAAG,IAAA,CAAAgR,OAAA,EAAsC;;;;;IALvH92B,4DAAA,qBAA4H;IAC3HA,wDAAA,IAAAg3B,sDAAA,0BAAuC;IA8DxCh3B,0DAAA,EAAc;;;;IA9DiBA,uDAAA,EAAO;IAAPA,wDAAA,YAAAQ,MAAA,CAAAslB,IAAA,CAAO;;;ADJhC,MAAOmR,gBAAgB;EAS5Bp2B,YACQiwB,cAA8B,EAC7BtM,aAA4B,EAC5Bvb,KAAsB,EACtBkhB,KAAe;IAHhB,KAAA2G,cAAc,GAAdA,cAAc;IACb,KAAAtM,aAAa,GAAbA,aAAa;IACb,KAAAvb,KAAK,GAALA,KAAK;IACL,KAAAkhB,KAAK,GAALA,KAAK;IATd,KAAAuM,aAAa,GAAgD,EAAE;IAC/D,KAAAhB,WAAW,GAAQ,EAAE;IACrB,KAAAb,aAAa,GAAQ,EAAE;IACvB,KAAAM,gBAAgB,GAAQ,EAAE;EAOvB;EAEH1tB,QAAQA,CAAA;IACP,MAAMyvB,WAAW,GAAQ,EAAE;IAC3B,IAAI,IAAI,CAACpb,OAAO,EAAE;MACjB,IAAI,CAACgV,cAAc,CAACnL,UAAU,CAACQ,MAAM,CAACG,WAAW,CAACpU,OAAO,CAAClT,CAAC,IAAG;QAC7D,IAAIA,CAAC,CAAC8c,OAAO,KAAK,IAAI,CAACA,OAAO,CAACuB,EAAE,EAAE;UAClC6Z,WAAW,CAACl4B,CAAC,CAACqe,EAAE,CAAC,GAAGre,CAAC;QACtB;MACD,CAAC,CAAC;IACH;IAEA,IAAI,CAAC8xB,cAAc,CAACnL,UAAU,CAACQ,MAAM,CAACC,KAAK,CAAClU,OAAO,CAACG,KAAK,IAAG;MAC3D,IAAI6kB,WAAW,CAAC7kB,KAAK,CAAC0W,UAAU,CAAC,EAAE;QAClC,IAAI,CAAC2M,WAAW,CAACrjB,KAAK,CAAC4W,MAAM,CAAC,GAAG5W,KAAK;MACvC;IACD,CAAC,CAAC;IAEF,IAAI,CAACye,cAAc,CAACnL,UAAU,CAACQ,MAAM,CAACE,KAAK,CAACnU,OAAO,CAACxN,KAAK,IAAG;MAC3D,IAAI,CAACgyB,aAAa,CAAChyB,KAAK,CAAC2Y,EAAE,CAAC,GAAG,IAAI,CAACmH,aAAa,CAACwM,eAAe,CAAC,IAAI,CAAClV,OAAO,CAACuB,EAAE,CAAC,GAAG3Y,KAAK,CAAC2Y,EAAE,CAAC;MAE9F,CAAC,IAAI,CAACyT,cAAc,CAACnL,UAAU,CAACK,aAAa,CAACthB,KAAK,CAAC2Y,EAAE,CAAC,IAAI,EAAE,EAAEnL,OAAO,CAAC0F,CAAC,IAAG;QAE1ER,MAAM,CAAC8D,IAAI,CAACgc,WAAW,CAAC,CAAChlB,OAAO,CAACilB,KAAK,IAAG;UACxC,MAAMlP,WAAW,GAAGiP,WAAW,CAACC,KAAK,CAAC;UACtC,MAAMhkB,KAAK,GAAG,IAAI,CAAC2d,cAAc,CAACnL,UAAU,CAACgB,IAAI,CAACsB,WAAW,CAAC9U,KAAK,CAAC;UACpE,IAAIA,KAAK,IAAIA,KAAK,CAACsU,SAAS,KAAK7P,CAAC,CAAC6P,SAAS,CAACpK,EAAE,EAAE;YAChD,IAAI,CAAC8X,gBAAgB,CAAChiB,KAAK,CAACsU,SAAS,CAAC,GAAGtU,KAAK;YAC9C,IAAI,CAAC0hB,aAAa,CAACnwB,KAAK,CAAC2Y,EAAE,CAAC,GAAG,GAAGlK,KAAK,CAACsV,WAAW,IAAIR,WAAW,CAACW,aAAa,GAAG,CAAC,EAAE;UACvF;QACD,CAAC,CAAC;MACH,CAAC,CAAC;MACF;MACA;MACA;IACD,CAAC,CAAC;EACH;EAGAjoB,OAAOA,CAAA;IACN,IAAI,CAACsI,KAAK,CAACtI,OAAO,EAAE;EACrB;EAEA,IAAImlB,IAAIA,CAAA;IACP,MAAMjV,GAAG,GAAauG,MAAM,CAAC8D,IAAI,CAAC,IAAI,CAAC4V,cAAc,CAACnL,UAAU,CAACG,IAAI,CAAC;IACtEjV,GAAG,CAACb,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KAAI;MACjB,IAAItW,CAAC,KAAK,UAAU,EAAE;QAAE,OAAO,CAAC;MAAE;MAClC,IAAIsW,CAAC,KAAK,UAAU,EAAE;QAAE,OAAO,CAAC,CAAC;MAAE;MACnC,OAAOtW,CAAC,CAACsmB,aAAa,CAAChQ,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,OAAOvW,GAAG;EACX;EAEAwmB,SAASA,CAAC3yB,KAAK;IACd,OAAO,IAAI,CAACylB,KAAK,CAACqC,QAAQ,CAAC9nB,KAAK,CAAC;EAClC;EAAC,QAAAnF,CAAA;qBArEW03B,gBAAgB,EAAAj3B,+DAAA,CAAAJ,qEAAA,GAAAI,+DAAA,CAAA+K,0EAAA,GAAA/K,+DAAA,CAAAgL,2DAAA,GAAAhL,+DAAA,CAAAiL,4DAAA;EAAA;EAAA,QAAAzL,EAAA;UAAhBy3B,gBAAgB;IAAA/1B,SAAA;IAAAC,MAAA;MAAA2a,OAAA;IAAA;IAAAza,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA81B,0BAAA51B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCR1B1B,4DAHH,iBAAY,qBACe,qBACK,oBACG;QAApBA,wDAAA,mBAAAu3B,sDAAA;UAAA,OAAS51B,GAAA,CAAAhB,OAAA,EAAS;QAAA,EAAC;QAACX,uDAAA,kBAAkC;QACnEA,0DADmE,EAAa,EAClE;QACdA,4DAAA,gBAAW;QAAAA,oDAAA,GAA2B;;QAExCA,0DAFwC,EAAY,EACrC,EACF;QAObA,wDALA,IAAAw3B,uCAAA,yBAA6I,IAAAC,uCAAA,yBAKjB;;;QAT/Gz3B,uDAAA,GAA2B;QAA3BA,+DAAA,CAAAA,yDAAA,OAAA2B,GAAA,CAAAma,OAAA,EAA2B;QAIN9b,uDAAA,GAA6E;QAA7EA,wDAAA,UAAA2B,GAAA,CAAAma,OAAA,KAAAna,GAAA,CAAAmvB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAtkB,GAAA,CAAAma,OAAA,CAAAuB,EAAA,EAA6E;QAK7Erd,uDAAA,EAA2E;QAA3EA,wDAAA,SAAA2B,GAAA,CAAAma,OAAA,IAAAna,GAAA,CAAAmvB,cAAA,CAAAnL,UAAA,CAAAM,oBAAA,CAAAtkB,GAAA,CAAAma,OAAA,CAAAuB,EAAA,EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbnB;AACX;AAC6B;AAC3D;AACmB;AACA;AACvB;AACqB;AACf;AACS;AACkB;AACJ;AAER;;;;;;;;;;;;;;;;;IAYxDrd,6DAAA,WAA2C;IAAAA,wDAAA,kBAAiC;IAAAA,qDAAA,GAAgC;IAAAA,2DAAA,EAAO;;;;IAAvCA,wDAAA,GAAgC;IAAhCA,gEAAA,CAAA83B,SAAA,kBAAAA,SAAA,CAAA3kB,KAAA,CAAAC,QAAA,kBAAA0kB,SAAA,CAAA3kB,KAAA,CAAAC,QAAA,CAAAC,IAAA,CAAgC;;;;;IAC5GrT,6DAAA,WAA6C;IAAAA,qDAAA,GAAkC;IAAAA,2DAAA,EAAO;;;;IAAzCA,wDAAA,EAAkC;IAAlCA,iEAAA,iBAAA83B,SAAA,kBAAAA,SAAA,CAAA3kB,KAAA,CAAAG,IAAA,KAAkC;;;;;IAHnFtT,sEAAA,GAAiD;IAC/CA,6DAAA,eAAU;IAERA,yDADA,IAAA+3B,0CAAA,kBAA2C,IAAAC,0CAAA,kBACE;IAC/Ch4B,2DAAA,EAAW;;;;;IAFFA,wDAAA,GAAkC;IAAlCA,yDAAA,SAAA83B,SAAA,kBAAAA,SAAA,CAAA3kB,KAAA,CAAAC,QAAA,kBAAA0kB,SAAA,CAAA3kB,KAAA,CAAAC,QAAA,CAAAC,IAAA,CAAkC;IAClCrT,wDAAA,EAAoC;IAApCA,yDAAA,UAAA83B,SAAA,kBAAAA,SAAA,CAAA3kB,KAAA,CAAAG,IAAA,kBAAAwkB,SAAA,CAAA3kB,KAAA,CAAAG,IAAA,CAAAzI,MAAA,MAAoC;;;;;;;;;ICvBjD7K,6DAAA,mBAE4C;IAD1CA,yDAAA,mBAAAi4B,mEAAA;MAAAj4B,4DAAA,CAAAk4B,GAAA;MAAA,MAAAC,MAAA,GAAAn4B,4DAAA;MAAA,OAAAA,0DAAA,CAASm4B,MAAA,CAAAC,YAAA,EAAc;IAAA,EAAC;IACkBp4B,2DAAA,EAAW;;;;IAArDA,0DAAA,aAAAm4B,MAAA,CAAAG,QAAA,CAA2B;;;;;IAM7Bt4B,6DADF,kBAA2D,YACV;IAAAA,qDAAA,0BAAmB;IACpEA,2DADoE,EAAI,EAC1D;;;;IADFA,wDAAA,EAAmB;IAAnBA,yDAAA,SAAAu4B,aAAA,EAAAv4B,4DAAA,CAAmB;;;;;IAkBrBA,6DAAA,WAAqC;IACnCA,qDAAA,GACF;IAAAA,2DAAA,EAAO;;;;IADLA,wDAAA,EACF;IADEA,iEAAA,MAAAy4B,MAAA,CAAArO,OAAA,MAAAqO,MAAA,CAAAtO,KAAA,YACF;;;;;IALNnqB,sEAAA,GAAsF;IAElFA,6DADF,cAAuC,mBACd;IAAAA,qDAAA,GACrB;IAAAA,yDAAA,IAAA04B,mEAAA,mBAAqC;IAGrC14B,6DAAA,WAAM;IAAAA,qDAAA,GAAqB;IAE/BA,2DAF+B,EAAO,EACzB,EACP;;;;;;IANmBA,wDAAA,GACrB;IADqBA,iEAAA,WAAAg2B,KAAA,kBACrB;IAAsBh2B,wDAAA,EAAa;IAAbA,yDAAA,YAAA24B,QAAA,CAAAxR,IAAA,CAAa;IAG7BnnB,wDAAA,GAAqB;IAArBA,iEAAA,WAAA24B,QAAA,CAAAxZ,KAAA,KAAqB;;;;;;IAMjCnf,6DAAA,mBAA+D;IAAnBA,yDAAA,mBAAA44B,mFAAA;MAAA54B,4DAAA,CAAA64B,GAAA;MAAA,MAAAV,MAAA,GAAAn4B,4DAAA;MAAA,OAAAA,0DAAA,CAASm4B,MAAA,CAAAW,MAAA,EAAQ;IAAA,EAAC;IAC5D94B,wDAAA,cAA0D;IAE5DA,2DAAA,EAAW;;;;IAFJA,wDAAA,EAA4B;IAA5BA,yDAAA,QAAAm4B,MAAA,CAAAY,EAAA,kBAAAZ,MAAA,CAAAY,EAAA,CAAAC,MAAA,YAAAh5B,4DAAA,CAA4B;;;;;IAgBrBA,wDAAA,mBAAoD;;;;;IACpDA,6DAAA,eAA6B;IAAAA,qDAAA,GAAc;IAAAA,2DAAA,EAAW;;;;IAAzBA,wDAAA,EAAc;IAAdA,gEAAA,CAAAi5B,QAAA,kBAAAA,QAAA,CAAA5lB,IAAA,CAAc;;;;;IAC3CrT,6DAAA,eAAwC;IAAAA,qDAAA,GAAkB;IAAAA,2DAAA,EAAW;;;;IAA7BA,wDAAA,EAAkB;IAAlBA,iEAAA,MAAAi5B,QAAA,CAAA3lB,IAAA,KAAkB;;;;;IAH1DtT,6DADF,cAAsG,eAC1F;IAAAA,qDAAA,GAAsB;IAAAA,2DAAA,EAAW;IAC3CA,yDAAA,IAAAk5B,0HAAA,uBAAyC;IAAWl5B,qDAAA,cACpD;IAAAA,yDAAA,IAAAm5B,0HAAA,sBAA6B;IAAyBn5B,qDAAA,cACtD;IAAAA,yDAAA,IAAAo5B,0HAAA,sBAAwC;IAA6Bp5B,qDAAA,cACvE;IAAAA,2DAAA,EAAM;;;;;;IAJMA,wDAAA,GAAsB;IAAtBA,iEAAA,WAAAq5B,KAAA,gBAAsB;IACrBr5B,wDAAA,EAAgB;IAAhBA,yDAAA,SAAAi5B,QAAA,kBAAAA,QAAA,CAAA5lB,IAAA,CAAgB;IAChBrT,wDAAA,GAAgB;IAAhBA,yDAAA,SAAAi5B,QAAA,kBAAAA,QAAA,CAAA5lB,IAAA,CAAgB;IAChBrT,wDAAA,GAA2B;IAA3BA,yDAAA,UAAAi5B,QAAA,CAAA3lB,IAAA,kBAAA2lB,QAAA,CAAA3lB,IAAA,CAAAzI,MAAA,MAA2B;;;;;IAL1C7K,sEAAA,GAA+E;IAC7EA,yDAAA,IAAAs5B,+GAAA,kBAAsG;;;;;IAA3Ct5B,wDAAA,EAAyC;IAAzCA,yDAAA,UAAAi5B,QAAA,kBAAAA,QAAA,CAAA5lB,IAAA,MAAA4lB,QAAA,CAAA3lB,IAAA,kBAAA2lB,QAAA,CAAA3lB,IAAA,CAAAzI,MAAA,MAAyC;;;;;IAJ5G7K,sEAAA,GAAiE;IAE7DA,6DADF,mBAAuC,cACV;IACzBA,yDAAA,IAAAu5B,yGAAA,2BAA+E;;IASnFv5B,2DADE,EAAM,EACG;;;;;IATwBA,wDAAA,GAAiC;IAAjCA,yDAAA,YAAAA,0DAAA,OAAAw5B,eAAA,EAAiC;;;;;IAPxEx5B,sEAAA,GAA6E;IAE9DA,6DADb,mBAAuC,gBAC1B,QAAG;IAAAA,qDAAA,GAA0C;IAC1DA,2DAD0D,EAAI,EAAY,EAC/D;IACXA,yDAAA,IAAAy5B,0FAAA,0BAAiE;;;;;;;IAFjDz5B,wDAAA,GAA0C;IAA1CA,iEAAA,WAAAw5B,eAAA,IAAArmB,KAAA,CAAAsV,WAAA,KAA0C;IAE3CzoB,wDAAA,EAAgD;IAAhDA,yDAAA,WAAA05B,OAAA,GAAA15B,0DAAA,OAAAw5B,eAAA,oBAAAE,OAAA,CAAA7uB,MAAA,MAAgD;;;;;IAiB/D7K,6DAAA,oBAA0D;IAAAA,qDAAA,aAAM;IAAAA,2DAAA,EAAY;;;;;IASxEA,6DAAA,eACsE;IAAAA,qDAAA,GAClD;;IAAAA,2DAAA,EAAO;;;;;IAD2CA,wDAAA,EAClD;IADkDA,iEAAA,WAAAA,0DAAA,OAAA25B,OAAA,CAAAxB,MAAA,CAAAzzB,KAAA,CAAA2Y,EAAA,mBAAAsc,OAAA,CAAAxB,MAAA,CAAAzzB,KAAA,CAAA2Y,EAAA,EAAA4V,QAAA,MAClD;;;;;IAIdjzB,6DAAA,oBACqD;IAAAA,qDAAA,GAAkC;IAAAA,2DAAA,EAAY;;;;IAAjGA,yDAAA,YAAAA,8DAAA,IAAA42B,GAAA,EAAAiD,SAAA,CAAAxnB,KAAA,IAAAwnB,SAAA,CAAApoB,QAAA,EAAkD;IAACzR,wDAAA,EAAkC;IAAlCA,iEAAA,KAAA65B,SAAA,CAAAxnB,KAAA,OAAAwnB,SAAA,CAAApoB,QAAA,KAAkC;;;;;IAFzFzR,sEAAA,GAAkD;IAChDA,yDAAA,IAAA85B,4GAAA,wBACqD;;;;;;;IAD3B95B,wDAAA,EAAY;IAAAA,yDAAZ,SAAA65B,SAAA,CAAY,aAAAE,cAAA,CAAe;;;;;IAFzD/5B,sEAAA,GAAkE;IAChEA,yDAAA,IAAAg6B,gGAAA,2BAAkD;;;;;IAAlBh6B,wDAAA,EAAgB;IAAhBA,yDAAA,YAAAi6B,UAAA,CAAApR,MAAA,CAAgB;;;;;IANpD7oB,6DADF,UAA4B,WACpB;IAAAA,qDAAA,GAAkC;;IAAAA,2DAAA,EAAO;IAC/CA,yDAAA,IAAAk6B,yEAAA,mBACsE;IAEtEl6B,6DAAA,YAA2D;IACzDA,yDAAA,IAAAm6B,iFAAA,0BAAkE;IAOtEn6B,2DADE,EAAI,EACA;;;;;;IAZEA,wDAAA,GAAkC;IAAlCA,gEAAA,CAAAA,0DAAA,OAAAi6B,UAAA,CAAAne,OAAA,EAAkC;IAErC9b,wDAAA,GAA2D;IAA3DA,yDAAA,SAAAm4B,MAAA,CAAAxS,UAAA,kBAAAwS,MAAA,CAAAxS,UAAA,CAAAM,oBAAA,CAAAgU,UAAA,CAAAne,OAAA,kBAAAme,UAAA,CAAAne,OAAA,CAAAuB,EAAA,EAA2D;IAG7Crd,wDAAA,GAA+B;IAAAA,yDAA/B,SAAAi6B,UAAA,CAAApR,MAAA,CAAAhe,MAAA,KAA+B,aAAAkvB,cAAA,CAAe;;;;;IAWjE/5B,6DAAA,eACsE;IAAAA,qDAAA,GAAiC;IAAAA,2DAAA,EAAO;;;;;IAAxCA,wDAAA,EAAiC;IAAjCA,iEAAA,WAAAo6B,OAAA,CAAAjC,MAAA,CAAAzzB,KAAA,CAAA2Y,EAAA,mBAAA+c,OAAA,CAAAjC,MAAA,CAAAzzB,KAAA,CAAA2Y,EAAA,EAAAmO,QAAA,KAAiC;;;;;IAIrGxrB,6DAAA,eAAqD;IACnDA,qDAAA,GACF;IAAAA,2DAAA,EAAO;;;;IADLA,wDAAA,EACF;IADEA,iEAAA,QAAAi6B,UAAA,CAAA9pB,KAAA,CAAAE,KAAA,OACF;;;;;;IAtDRrQ,sEAAA,GAAiE;IAsB/DA,yDApBA,IAAAq6B,2EAAA,0BAA6E,IAAAC,0EAAA,gCAAAt6B,qEAAA,CAoBpD;IAIzBA,6DAAA,mBAAuE;IAA7DA,yDAAA,mBAAAw6B,uFAAA;MAAA,MAAAP,UAAA,GAAAj6B,4DAAA,CAAAy6B,GAAA,EAAAC,SAAA;MAAA,MAAAvC,MAAA,GAAAn4B,4DAAA;MAAA,OAAAA,0DAAA,CAASm4B,MAAA,CAAAwC,WAAA,CAAAV,UAAA,CAAAne,OAAA,CAA2B;IAAA,EAAC;IAC7C9b,6DAAA,mBAC6C;IAAAA,qDAAA,GAA0B;IAAAA,2DAAA,EAAW;IAClFA,6DAAA,gBAAW;IACTA,yDAAA,IAAA46B,kEAAA,iBAA4B;IAc9B56B,2DAAA,EAAY;IAEZA,6DAAA,mBAAoD;IAClDA,yDAAA,KAAA66B,oEAAA,mBACsE;IAGpE76B,6DAFF,oBAC4G,YACpG;IAAAA,qDAAA,IAAsB;IAAAA,2DAAA,EAAO;IACnCA,yDAAA,KAAA86B,oEAAA,mBAAqD;IAGrD96B,6DAAA,YAAM;IAAAA,qDAAA,SAAC;IAAAA,2DAAA,EAAO;IACdA,6DAAA,YAAM;IAAAA,qDAAA,IAAyB;IAGrCA,2DAHqC,EAAO,EAC7B,EACF,EACF;;;;;;;IAzDIA,wDAAA,EAA6C;IAA7CA,yDAAA,SAAAm4B,MAAA,CAAA4C,YAAA,CAAAd,UAAA,EAAAe,KAAA,EAAA7C,MAAA,CAAA8C,YAAA,EAA6C;IAyB0Bj7B,wDAAA,GAA0B;IAC5GA,0DADkF,SAAAi6B,UAAA,CAAAiB,IAAA,CAA0B,iBAAAjB,UAAA,CAAAkB,YAAA,CAClE;IAACn7B,wDAAA,EAA0B;IAA1BA,gEAAA,CAAAi6B,UAAA,CAAArR,aAAA,KAA0B;IAE/D5oB,wDAAA,GAAoB;IAApBA,yDAAA,SAAAi6B,UAAA,CAAAne,OAAA,CAAoB;IAkBvB9b,wDAAA,GAA2D;IAA3DA,yDAAA,SAAAm4B,MAAA,CAAAxS,UAAA,kBAAAwS,MAAA,CAAAxS,UAAA,CAAAM,oBAAA,CAAAgU,UAAA,CAAAne,OAAA,kBAAAme,UAAA,CAAAne,OAAA,CAAAuB,EAAA,EAA2D;IAE5Drd,wDAAA,EAAyG;IAAzGA,yDAAA,UAAAi6B,UAAA,CAAA9pB,KAAA,CAAAA,KAAA,IAAA8pB,UAAA,CAAA9pB,KAAA,CAAAsB,QAAA,IAAAwoB,UAAA,CAAA9pB,KAAA,CAAAA,KAAA,yBAAyG;IACnGnQ,wDAAA,GAAsB;IAAtBA,gEAAA,CAAAi6B,UAAA,CAAA9pB,KAAA,CAAAA,KAAA,CAAsB;IACrBnQ,wDAAA,EAAwB;IAAxBA,yDAAA,SAAAi6B,UAAA,CAAA9pB,KAAA,CAAAE,KAAA,CAAwB;IAIzBrQ,wDAAA,GAAyB;IAAzBA,gEAAA,CAAAi6B,UAAA,CAAA9pB,KAAA,CAAAsB,QAAA,CAAyB;;;;;IA9E3CzR,sEAAA,GAA2D;IAGrDA,6DAFJ,eAAU,eACE,oBAC2C;IAErDA,yDAAA,IAAAo7B,4DAAA,2BAAsF;IAWtFp7B,2DADA,EAAY,EACD;IAMXA,yDALA,IAAAq7B,wDAAA,uBAA+D,IAAAC,4DAAA,6BAKE;IA8DnEt7B,2DAAA,EAAW;;;;;IA/EuBA,wDAAA,GAAwC;IAAxCA,yDAAA,YAAAm4B,MAAA,CAAAxS,UAAA,kBAAAwS,MAAA,CAAAxS,UAAA,CAAAK,aAAA,CAAAmS,MAAA,CAAAzzB,KAAA,kBAAAyzB,MAAA,CAAAzzB,KAAA,CAAA2Y,EAAA,EAAwC;IAY7Drd,wDAAA,EAAQ;IAARA,yDAAA,SAAAm4B,MAAA,CAAAY,EAAA,CAAQ;IAKc/4B,wDAAA,EAAiB;IAAjBA,yDAAA,YAAAm4B,MAAA,CAAA8C,YAAA,CAAiB;;;;;IAiEpDj7B,6DAAA,cAA4F;IAC1FA,wDAAA,sBAAmE;IACrEA,2DAAA,EAAM;;;AD9EJ,MAAO8L,WAAW;EAAA,QAAAvM,CAAA;qBAAXuM,WAAW;EAAA;EAAA,QAAAtM,EAAA;UAAXsM,WAAW;IAAA5K,SAAA;IAAAC,MAAA;MAAAo6B,WAAA;IAAA;IAAAl6B,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAAg6B,qBAAA95B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QAVpB1B,6DAAA,eAAU;QACRA,yDAAA,IAAAy7B,mCAAA,0BAAiD;QAMnDz7B,2DAAA,EAAW;;;QANwBA,wDAAA,EAAc;QAAdA,yDAAA,YAAA2B,GAAA,CAAA45B,WAAA,CAAc;;;;;;;AAmB/C,MAAOG,oBAAoB;EA4B/B76B,YACS86B,UAA0B,EAC1BC,IAAoB,EACpBC,IAAiB,EACjBC,IAAiB,EAChB7yB,KAAsB,EACtB8yB,iBAAoC,EACpCC,KAAqB,EACrBC,SAAoB,EACpBC,cAA8B,EAC/BC,mBAAyC,EACxCC,iBAAqC,EACrCt4B,QAAkB;IAXnB,KAAA63B,UAAU,GAAVA,UAAU;IACV,KAAAC,IAAI,GAAJA,IAAI;IACJ,KAAAC,IAAI,GAAJA,IAAI;IACJ,KAAAC,IAAI,GAAJA,IAAI;IACH,KAAA7yB,KAAK,GAALA,KAAK;IACL,KAAA8yB,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAC,KAAK,GAALA,KAAK;IACL,KAAAC,SAAS,GAATA,SAAS;IACT,KAAAC,cAAc,GAAdA,cAAc;IACf,KAAAC,mBAAmB,GAAnBA,mBAAmB;IAClB,KAAAC,iBAAiB,GAAjBA,iBAAiB;IACjB,KAAAt4B,QAAQ,GAARA,QAAQ;IAlClB,KAAAm3B,YAAY,GAUN,EAAE;IAER,KAAA3C,QAAQ,GAAY,KAAK;IACzB,KAAA+D,cAAc,GAAY,IAAI;IAuB5B,IAAI,CAACC,MAAM,GAAG/mB,oDAAa,CAAC,CAC1B,IAAI,CAAComB,UAAU,CAAClX,OAAO,EACvB,IAAI,CAACuX,KAAK,CAACO,QAAQ,CACpB,CAAC;EACJ;EAEMC,gBAAgBA,CAAA;IAAA,IAAAr4B,KAAA;IAAA,OAAAmC,oJAAA;MACtBnC,KAAI,CAACs4B,SAAS,EAAE;IAAC;EAClB;EAECC,eAAeA,CAAA;IACb,IAAI,CAACC,SAAS,CAACC,QAAQ,GAAG,KAAK;EACjC;EAEAC,gBAAgBA,CAAA;IACZ,IAAI,CAACF,SAAS,CAACC,QAAQ,GAAG,IAAI;EAClC;EAEAn1B,QAAQA,CAAA;IAAA,IAAAC,MAAA;IACN,IAAI,CAACo1B,YAAY,GAAG,IAAI,CAACR,MAAM,CAAC93B,SAAS;MAAA,IAAA6B,IAAA,GAAAC,oJAAA,CAAC,WAAO,CAACiR,CAAC,EAAEwlB,UAAU,CAAC,EAAI;QAClEr1B,MAAI,CAACie,UAAU,GAAGpO,CAAC;QAEnB7P,MAAI,CAAChD,KAAK,GAAGgD,MAAI,CAACi0B,UAAU,CAAChW,UAAU,CAACgB,IAAI,CAACoW,UAAU,CAACj0B,GAAG,CAAC,SAAS,CAAC,CAAC;QACvEpB,MAAI,CAACuzB,YAAY,GAAG,EAAE;QAEtBvzB,MAAI,CAACs1B,kBAAkB,EAAE;QAEzB,IAAIt1B,MAAI,CAACu1B,UAAU,EAAE;UACnBv1B,MAAI,CAACu1B,UAAU,CAACC,QAAQ,EAAE;QAC5B;MACF,CAAC;MAAA,iBAAAh2B,EAAA;QAAA,OAAAb,IAAA,CAAAc,KAAA,OAAAC,SAAA;MAAA;IAAA,IAAC;IAEF,IAAI,CAAC+1B,aAAa,GAAG,IAAI,CAACjB,cAAc,CAACrL,SAAS,CAAC,IAAI,CAAC8K,UAAU,EAAE,IAAI,CAACj3B,KAAK,CAAC;EACjF;EAEA0zB,YAAYA,CAAA;IACV,IAAI,CAACE,QAAQ,GAAG,CAAC,IAAI,CAACA,QAAQ;IAE9B,IAAI,CAAC0E,kBAAkB,EAAE;EAC3B;EAEMA,kBAAkBA,CAAA;IAAA,IAAAn1B,MAAA;IAAA,OAAAvB,oJAAA;MACtBuB,MAAI,CAACw0B,cAAc,GAAG,IAAI;MAE1Bx0B,MAAI,CAACozB,YAAY,GAAG,EAAE;MAEtB,MAAMvd,QAAQ,SAAS3a,qDAAc,CAAC8E,MAAI,CAACi0B,IAAI,CAACne,gBAAgB,CAAC;MAEjE,MAAMyf,YAAY,GAAG1f,QAAQ,IAAI,OAAO3a,qDAAc,CAAC8E,MAAI,CAACs0B,mBAAmB,CAACpN,mBAAmB,CAAC,MAAM,OAAO;MACnH,MAAMsO,WAAW,GAAG3f,QAAQ,WAAU3a,qDAAc,CAAC8E,MAAI,CAACu0B,iBAAiB,CAAC3lB,aAAa,CAAC;MAExF,IAAI5O,MAAI,CAAC8d,UAAU,IAAI9d,MAAI,CAACnD,KAAK,IAAImD,MAAI,CAAC8d,UAAU,CAACO,WAAW,CAACre,MAAI,CAACnD,KAAK,CAAC2Y,EAAE,CAAC,EAAE;QAC/E,KAAK,MAAMtK,SAAS,IAAIlL,MAAI,CAAC8d,UAAU,CAACO,WAAW,CAACre,MAAI,CAACnD,KAAK,CAAC2Y,EAAE,CAAC,EAAE;UAClE,IAAItK,SAAS,IAAIA,SAAS,CAAC4V,OAAO,EAAE;YAClC,KAAK,MAAM9hB,QAAQ,IAAIuQ,MAAM,CAAC8D,IAAI,CAACnI,SAAS,CAAC4V,OAAO,CAAC,EAAE;cACrD,MAAM2U,MAAM,GAAGvqB,SAAS,CAAC4V,OAAO,CAAC9hB,QAAQ,CAAC;cAC1C,MAAMsM,KAAK,GAAGiE,MAAM,CAACC,MAAM,CAACtE,SAAS,CAAC2V,MAAM,CAAC,CAACnQ,IAAI,CAAE6a,EAAO,IAAKA,EAAE,CAAC3K,WAAW,GAAG1V,SAAS,CAAC0V,WAAW,CAAC;cACvG,MAAMyS,IAAI,GAAG,CAACkC,YAAY,GAAG,KAAK,GAAG,CAACv1B,MAAI,CAACg0B,IAAI,CAAChe,WAAW,CAACzX,KAAK,IAAI,EAAE,EAAEmS,IAAI,CAAE5K,QAAQ,IAAI;gBAAG,OAAOA,QAAQ,CAACqmB,WAAW,KAAKsJ,MAAM,CAACxhB,OAAO,EAAEuB,EAAE;cAAE,CAAC,CAAC,KAAK9G,SAAS;cAClK,MAAM4kB,YAAY,GAAG,CAACiC,YAAY,GAAG,KAAK,GAAG,CAACC,WAAW,IAAI,EAAE,EAAE9kB,IAAI,CAAE0B,UAAuB,IAAI;gBAChG,OAAO7C,MAAM,CAACsD,OAAO,CAACT,UAAU,CAAC3C,WAAW,CAAC,CAAC8F,IAAI,CAAC,CAAC,CAACmgB,YAAY,EAAEC,aAAa,CAAC,KAAI;kBACnF;kBACA,OAAOA,aAAa,GAAGF,MAAM,CAACxhB,OAAO,EAAEuB,EAAE,CAAC,IAAImgB,aAAa,GAAGF,MAAM,CAACxhB,OAAO,EAAEuB,EAAE,CAAC,EAAEtC,UAAU;gBAC/F,CAAC,CAAC;cACJ,CAAC,CAAC,KAAKxE,SAAS;cAEhB,IAAI,CAAC1O,MAAI,CAACywB,QAAQ,IAAKzwB,MAAI,CAACywB,QAAQ,KAAK4C,IAAI,IAAIC,YAAY,CAAE,EAAE;gBAC/DtzB,MAAI,CAACozB,YAAY,CAAChqB,IAAI,CAAC;kBACrBwX,WAAW,EAAE1V,SAAS,CAAC0V,WAAW;kBAClCG,aAAa,EAAExY,MAAM,CAACvJ,QAAQ,CAAC;kBAC/BgiB,MAAM,EAAEyU,MAAM,CAACzU,MAAM;kBACrB/M,OAAO,EAAEwhB,MAAM,CAACxhB,OAAO;kBACvB3L,KAAK,EAAEtI,MAAI,CAAC41B,GAAG,CAACH,MAAM,CAACzU,MAAM,CAAC;kBAC9BqS,IAAI;kBACJC,YAAY;kBACZhoB,KAAK;kBACLooB,WAAW,EAAEnkB,MAAM,CAACC,MAAM,CAACtE,SAAS,CAAC2V,MAAM,CAAC,CAAC/S,GAAG,CAAEyd,EAAO,IAAI;oBAC3D,OAAO;sBACLjgB,KAAK,EAAEigB,EAAE;sBACTsK,KAAK,EAAE71B,MAAI,CAAC8zB,UAAU,CAAChW,UAAU,CAACgB,IAAI,CAACyM,EAAE,CAAC3L,SAAS;qBACpD;kBACH,CAAC,CAAC,CAACzX,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KAAKtW,CAAC,CAAC4sB,KAAK,CAAChW,WAAW,GAAGN,CAAC,CAACsW,KAAK,CAAChW,WAAW;iBAC5D,CAAC;cACJ;YACF;UACF;QACF;MACF;MAEA7f,MAAI,CAACw0B,cAAc,GAAG,KAAK;IAAC;EAC9B;EAEAsB,kBAAkBA,CAAC9U,MAAW,EAAE3B,OAAe;IAC7C,OAAO2B,MAAM,CAAC7Y,IAAI,CAAC,CAACc,CAAC,EAAEsW,CAAC,KAAI;MAC1B,MAAMwW,YAAY,GAAG,IAAI,CAACjY,UAAU,CAACI,WAAW,CAACmB,OAAO,CAAC;MAEzD,MAAM2W,SAAS,GAAGD,YAAY,EAAErlB,IAAI,CAAEiP,GAAG,IAAI;QAAG,OAAOA,GAAG,CAACA,GAAG,KAAK1W,CAAC,CAACmY,MAAM;MAAC,CAAC,CAAC,EAAE5B,QAAkB;MAClG,MAAMyW,SAAS,GAAGF,YAAY,EAAErlB,IAAI,CAAEiP,GAAG,IAAI;QAAG,OAAOA,GAAG,CAACA,GAAG,KAAKJ,CAAC,CAAC6B,MAAM;MAAC,CAAC,CAAC,EAAE5B,QAAkB;MAElG,IAAIwW,SAAS,IAAIC,SAAS,EAAE;QAC1B,IAAID,SAAS,GAAGC,SAAS,EAAE;UAAE,OAAO,CAAC;QAAE,CAAC,MACnC,IAAIA,SAAS,GAAGD,SAAS,EAAE;UAAE,OAAO,CAAC,CAAC;QAAE;MAC/C;MAEA,OAAO,CAAC;IACV,CAAC,CAAC;EACJ;EAEMpB,SAASA,CAAA;IAAA,IAAAx0B,MAAA;IAAA,OAAA3B,oJAAA;MACb,MAAM,CAACiR,CAAC,EAAE1S,MAAM,CAAC,SAAS9B,qDAAc,CAACkF,MAAI,CAACq0B,MAAM,CAAC;MAEvDr0B,MAAI,CAAC8wB,EAAE,SAAS9wB,MAAI,CAACg0B,SAAS,CAACloB,KAAK,CAAC,oBAAoB,EAAEwD,CAAC,CAAC4D,WAAW,CAAC4iB,IAAI,EAAExmB,CAAC,CAAC4D,WAAW,CAACkC,EAAE,CAAC;MAC9F,IAAIpV,MAAI,CAACnE,QAAQ,CAACM,EAAE,CAAC,KAAK,CAAC,EAAE;QAC9Bb,4EAAiB,CAACoB,QAAQ,CAAC;UACzBC,IAAI,EAAE,gBAAgB;UACtBC,MAAM,EAAE;YACT,gBAAgB,EAAE0S,CAAC,CAAC4D,WAAW,CAAC4iB,IAAI;YACpC,aAAa,EAAExmB,CAAC,CAAC4D,WAAW,CAACkC,EAAE;YAC/BjX,KAAK,EAAE6B,MAAI,CAAC8wB,EAAE,CAAC1b,EAAE;YACjB2gB,eAAe,EAAE;;SAGjB,CAAC;MACH,CAAC,MAAM;QACH74B,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE;UAC9B,gBAAgB,EAAEoS,CAAC,CAAC4D,WAAW,CAAC4iB,IAAI;UACpC,aAAa,EAAExmB,CAAC,CAAC4D,WAAW,CAACkC,EAAE;UAC/BjX,KAAK,EAAE6B,MAAI,CAAC8wB,EAAE,CAAC1b,EAAE;UACjB2gB,eAAe,EAAE;SAClB,CAAC;MACJ;IAAC;EACH;EAEAC,WAAWA,CAAA;IACT,IAAI,IAAI,CAACnB,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAACoB,WAAW,EAAE;IACjC;EACF;EAEAnD,YAAYA,CAACoD,MAAM,EAAEC,WAAW,EAAEC,OAAO;IACvC,IAAID,WAAW,KAAK,CAAC,IAAIC,OAAO,CAACD,WAAW,CAAC,CAAC3V,WAAW,KAAK4V,OAAO,CAACD,WAAW,GAAG,CAAC,CAAC,CAAC3V,WAAW,EAAE;MAClG,OAAO4V,OAAO,CAACD,WAAW,CAAC,CAAC7C,WAAW;IACzC;IACA,OAAO,IAAI;EACb;EAEAkC,GAAGA,CAAC5U,MAAM;IACR,IAAI1Y,KAAK,GAAG,CAAC;IACb,IAAIsB,QAAQ,GAAG,CAAC;IAChB,IAAIpB,KAAK,GAAG,CAAC;IACbwY,MAAM,CAAC3W,OAAO,CAAC/C,CAAC,IAAG;MACjBgB,KAAK,IAAIC,MAAM,CAACjB,CAAC,CAACkD,KAAK,CAAC;MACxBZ,QAAQ,IAAIrB,MAAM,CAACjB,CAAC,CAACsC,QAAQ,CAAC;MAC9BpB,KAAK,IAAID,MAAM,CAACjB,CAAC,CAAC6d,UAAU,CAAC;IAC/B,CAAC,CAAC;IACF,OAAO;MACL7c,KAAK,EAAEA,KAAK;MACZsB,QAAQ,EAAEA,QAAQ;MAClBpB,KAAK,EAAEA;KACR;EACH;EAEMiuB,SAASA,CAACC,MAAM;IAAA,IAAAj2B,MAAA;IAAA,OAAAhC,oJAAA;MACpB,MAAMgC,MAAI,CAACqzB,UAAU,CAAC/W,OAAO,EAAE;MAC/B2Z,MAAM,CAACC,MAAM,CAACtB,QAAQ,EAAE;MACxB;IAAA;EACF;EAGKvC,WAAWA,CAAC7e,OAAO;IAAA,IAAAzR,MAAA;IAAA,OAAA/D,oJAAA;MACxB,MAAMm4B,YAAY,SAASp0B,MAAI,CAACpB,KAAK,CAACxC,MAAM,CAAC;QAC5C9H,SAAS,EAAEs4B,yEAAgB;QAC3B/tB,cAAc,EAAE;UACf4S;;OAED,CAAC;MAEF,MAAM2iB,YAAY,CAACx3B,OAAO,EAAE;IAAC;EAC7B;EAEMy3B,WAAWA,CAACH,MAAM,EAAEhD,WAAW;IAAA,IAAAoD,MAAA;IAAA,OAAAr4B,oJAAA;MACnC,MAAMs4B,OAAO,SAASD,MAAI,CAAC5C,iBAAiB,CAACt1B,MAAM,CAAC;QAClD9H,SAAS,EAAEmN,WAAW;QACtB5C,cAAc,EAAE;UACdqyB;SACD;QACD72B,KAAK,EAAE65B,MAAM;QACbM,WAAW,EAAE;OACd,CAAC;MACF,aAAaD,OAAO,CAAC33B,OAAO,EAAE;IAAC;EACjC;EAEA6xB,MAAMA,CAAA;IACN11B,uDAAO,CAACggB,IAAI,CAAC;MAAE3d,GAAG,EAAE,IAAI,CAACszB,EAAE,CAAC+F,OAAO,CAACC;IAAY,CAAE,CAAC;EACpD;EAAC,QAAAx/B,CAAA;qBA3OWm8B,oBAAoB,EAAA17B,gEAAA,CAAAgL,4EAAA,GAAAhL,gEAAA,CAAA+K,2DAAA,GAAA/K,gEAAA,CAAAiL,sEAAA,GAAAjL,gEAAA,CAAAkL,8DAAA,GAAAlL,gEAAA,CAAA+K,4DAAA,GAAA/K,gEAAA,CAAA+K,8DAAA,GAAA/K,gEAAA,CAAAmL,4DAAA,GAAAnL,gEAAA,CAAAg/B,kEAAA,GAAAh/B,gEAAA,CAAAi/B,4EAAA,GAAAj/B,gEAAA,CAAAk/B,wFAAA,GAAAl/B,gEAAA,CAAAm/B,oFAAA,GAAAn/B,gEAAA,CAAA+K,qDAAA;EAAA;EAAA,QAAAvL,EAAA;UAApBk8B,oBAAoB;IAAAx6B,SAAA;IAAAk+B,SAAA,WAAAC,2BAAA39B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;mEAyBpBg2B,yDAAY;;;;;;;;;;;;;QCnEvB13B,6DADF,iBAAY,qBACwD;QAChEA,wDAAA,yBAAoG;QACzFA,6DAAX,gBAAW,QAAG;QAAAA,qDAAA,GAAgC;QAAIA,2DAAJ,EAAI,EAAY;QAC9DA,yDAAA,IAAAs/B,wCAAA,sBAE4C;;;QAC9Ct/B,2DAAA,EAAc;QAEZA,6DADF,kBAAa,oBACsB;QAAAA,qDAAA,IAAqB;QACxDA,2DADwD,EAAY,EACtD;QACdA,yDAAA,KAAAu/B,4CAAA,yBAA2D;;QAG7Dv/B,2DAAA,EAAa;QAEXA,6DADF,mBAAa,wBACkD;QAAjCA,yDAAA,wBAAAw/B,mEAAAjB,MAAA;UAAAv+B,4DAAA,CAAAO,GAAA;UAAA,OAAAP,0DAAA,CAAc2B,GAAA,CAAA28B,SAAA,CAAAC,MAAA,CAAiB;QAAA,EAAC;QAC1Dv+B,wDAAA,gCACyD;QAC3DA,2DAAA,EAAgB;QAyFhBA,yDAtFA,KAAAy/B,6CAAA,0BAA2D,KAAAC,4CAAA,gCAAA1/B,qEAAA,CAsF/B;QAO9BA,2DAAA,EAAc;;;;QAhHIA,wDAAA,GAAgC;QAAhCA,gEAAA,aAAA2B,GAAA,CAAA+C,KAAA,kBAAA/C,GAAA,CAAA+C,KAAA,CAAAmjB,WAAA,EAAgC;QACnC7nB,wDAAA,EAAsG;QAAtGA,yDAAA,SAAAA,0DAAA,OAAA2B,GAAA,CAAAm6B,IAAA,CAAAne,gBAAA,KAAA3d,0DAAA,OAAA2B,GAAA,CAAAw6B,mBAAA,CAAApN,mBAAA,cAAsG;QAKhF/uB,wDAAA,GAAqB;QAArBA,gEAAA,EAAA2B,GAAA,CAAA+C,KAAA,kBAAA/C,GAAA,CAAA+C,KAAA,CAAAE,IAAA,QAAqB;QAE1C5E,wDAAA,EAA6B;QAA7BA,yDAAA,SAAAA,0DAAA,SAAA2B,GAAA,CAAAw7B,aAAA,EAA6B;QAW5Bn9B,wDAAA,GAAuB;QAAAA,yDAAvB,UAAA2B,GAAA,CAAA06B,cAAA,CAAuB,aAAAsD,iBAAA,CAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBR;AACgB;AAC6B;AAC9B;AACP;AACoC;;;;AAE/F,MAAMK,UAAU,GAAG,IAAI3qB,iDAAe,CAAS,CAAC,CAAC;AAK3C,MAAOY,mBAAmB;EAM9BpV,YAAoBkD,cAA8B,EAAUk8B,WAAwB;IAAhE,KAAAl8B,cAAc,GAAdA,cAAc;IAA0B,KAAAk8B,WAAW,GAAXA,WAAW;IAJzE,KAAAC,SAAS,GAAG,KAAK;IACjB,KAAAxnB,cAAc,GAAG,IAAIknB,yCAAO,EAAE;IAI1BrqB,mDAAa,CAAC,CACZ,IAAI,CAACxR,cAAc,CAAC8S,mBAAmB,EACvCmpB,UAAU,CACX,CAAC,CAAClpB,IAAI,CACL9E,sDAAM,CAAC,CAAC,CAAC+E,OAAO,CAAC,KAAK,CAAC,CAACA,OAAO,CAAC,EAChCtB,oEAAoB,EAAE,EACtBD,yDAAS,CAAC,MAAM,IAAI,CAACyqB,WAAW,CAAC5d,sBAAsB,EAAE,CAAC,CAC3D,CAAC7d,SAAS,CAACuB,KAAK,IAAG;MAClB,IAAI,IAAI,CAACo6B,MAAM,EAAE;QACfC,aAAa,CAAC,IAAI,CAACD,MAAM,CAAC;MAC5B;MAEA,IAAIp6B,KAAK,EAAE;QACT,IAAI,IAAI,CAACs6B,SAAS,EAAE;UAClB,IAAI,CAACA,SAAS,CAACC,mBAAmB,CAACP,wDAAc,CAACr6B,KAAK,EAAE,IAAI,CAAC66B,aAAa,CAAC;UAC5E,IAAI,CAACF,SAAS,CAAC36B,KAAK,EAAE;QACxB;QAEA,IAAI,CAAC26B,SAAS,GAAG,IAAIP,0DAAgB,CAAC,GAAGh9B,qEAAW,CAAC6K,QAAQ,CAAC6yB,EAAE,iBAAiBz6B,KAAK,EAAE,CAAC,CACxF06B,WAAW,CAAC,IAAIZ,6DAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAC7Ca,MAAM,CAAC,CAACC,EAAE,EAAEC,MAAM,KAAI;UAAG,IAAI,CAACV,SAAS,GAAG,IAAI;QAAC,CAAC,CAAC,CACjDW,SAAS,CAAC,CAACF,EAAE,EAAEj8B,KAAK,KAAI;UAAG,IAAI,CAACgU,cAAc,CAACf,IAAI,CAAC3R,IAAI,CAACuW,KAAK,CAAC7X,KAAK,CAACW,IAAI,CAAC,CAAC;QAAE,CAAC,CAAC,CAC/Ey7B,OAAO,CAAC,CAACH,EAAE,EAAEj8B,KAAK,KAAI;UAAGY,OAAO,CAACC,GAAG,CAAC,kBAAkBb,KAAK,CAAC2V,IAAI,EAAE,CAAC;QAAE,CAAC,CAAC,CACxEymB,OAAO,CAAC,MAAK;UAAG,IAAI,CAACT,SAAS,GAAG9pB,SAAS;UAAE,IAAI,CAAC2pB,SAAS,GAAG,KAAK;QAAC,CAAC,CAAC,CACrEa,KAAK,EAAE;QAER,IAAI,CAACZ,MAAM,GAAGa,WAAW,CAAC,MAAK;UAC7B,IAAI,CAACX,SAAS,EAAEhb,IAAI,CAAC,MAAM,CAAC;QAC9B,CAAC,EAAE,MAAM,CAAC;MACZ,CAAC,MAAM;QACL,IAAI,CAACgb,SAAS,GAAG9pB,SAAS;MAC5B;IACF,CAAC,CAAC;EACJ;EAEAgqB,aAAaA,CAACI,EAAE,EAAEj8B,KAAK;IACrB,IAAI,CAAC27B,SAAS,GAAG9pB,SAAS;EAC5B;EAAC,QAAAhX,CAAA;qBA5CU0W,mBAAmB,EAAAjW,uDAAA,CAAAJ,4EAAA,GAAAI,uDAAA,CAAA+K,8DAAA;EAAA;EAAA,QAAAvL,EAAA;WAAnByW,mBAAmB;IAAA3B,OAAA,EAAnB2B,mBAAmB,CAAA1B,IAAA;IAAAC,UAAA,EAFhB;EAAM;;;;;;;;;;;;;;;;;;;;;;;;;ACV+C;AACE;AAC9B;AACoB;AACV;AACsB;;;;;;;;;;;;ICQnExU,4DAAA,oBAAiF;IAAAA,oDAAA,QAAC;IAAAA,0DAAA,EAAY;;;;;IAA9FA,wDAAA,IAAAihC,4CAAA,wBAAiF;;;;;IAArEjhC,wDAAA,UAAAA,yDAAA,OAAAkhC,MAAA,CAAAn9B,cAAA,CAAA8S,mBAAA,EAAmD;;;;;IAK7D7W,4DAAA,oBAA8D;IAAAA,oDAAA,GAA2B;IAAAA,0DAAA,EAAY;;;;IAAvCA,uDAAA,EAA2B;IAA3BA,+DAAA,CAAAmhC,mBAAA,CAAAt2B,MAAA,CAA2B;;;;;IAD3F7K,qEAAA,GAAqG;IACnGA,wDAAA,IAAAohC,6CAAA,wBAA8D;;;;;IAAlDphC,uDAAA,EAAiC;IAAjCA,wDAAA,SAAAmhC,mBAAA,CAAAt2B,MAAA,KAAiC;;;;;IAKjD7K,qEAAA,GAAmE;IACjEA,4DAAA,yBAA6B;IAC3BA,uDAAA,mBAAqC;IACrCA,4DAAA,gBAAW;IAAAA,oDAAA,gBAAS;IACtBA,0DADsB,EAAY,EACjB;;;;ADfjB,MAAO1B,QAAQ;EAEnBuC,YACSw8B,WAA+B,EAC/Bt5B,cAA8B,EAC9BsS,aAAkC,EAClCylB,IAAiB,EACjB7L,IAA0B,EACzBtsB,MAAc;IALf,KAAA05B,WAAW,GAAXA,WAAW;IACX,KAAAt5B,cAAc,GAAdA,cAAc;IACd,KAAAsS,aAAa,GAAbA,aAAa;IACb,KAAAylB,IAAI,GAAJA,IAAI;IACJ,KAAA7L,IAAI,GAAJA,IAAI;IACH,KAAAtsB,MAAM,GAANA,MAAM;EAGhB;EAEA09B,MAAMA,CAAA;IACJ,IAAI,CAAC19B,MAAM,CAAC4G,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;EACrC;EAAC,QAAAhL,CAAA;qBAfUjB,QAAQ,EAAA0B,+DAAA,CAAAJ,6EAAA,GAAAI,+DAAA,CAAA+K,qEAAA,GAAA/K,+DAAA,CAAAgL,gFAAA,GAAAhL,+DAAA,CAAAiL,6DAAA,GAAAjL,+DAAA,CAAAkL,iFAAA,GAAAlL,+DAAA,CAAAmL,mDAAA;EAAA;EAAA,QAAA3L,EAAA;UAARlB,QAAQ;IAAA4C,SAAA;IAAAG,KAAA;IAAAC,IAAA;IAAAC,MAAA;IAAAC,QAAA,WAAA8/B,kBAAA5/B,EAAA,EAAAC,GAAA;MAAA,IAAAD,EAAA;QCVjB1B,4DAHJ,eAAU,qBAEmB,wBACI;QAC3BA,uDAAA,kBAAiC;QACjCA,4DAAA,gBAAW;QAAAA,oDAAA,aAAM;QACnBA,0DADmB,EAAY,EACd;QAEjBA,4DAAA,wBAA4B;QAC1BA,uDAAA,kBAAqC;QACrCA,4DAAA,gBAAW;QAAAA,oDAAA,YAAK;QAClBA,0DADkB,EAAY,EACb;QAEjBA,wDAAA,KAAAuhC,gCAAA,gCAAAvhC,oEAAA,CAA2B;QAG3BA,4DAAA,yBAAyB;QACvBA,uDAAA,mBAA0C;QAC1CA,wDAAA,KAAAwhC,iCAAA,0BAAqG;;QAGrGxhC,4DAAA,iBAAW;QAAAA,oDAAA,UAAE;QACfA,0DADe,EAAY,EACV;QAEjBA,wDAAA,KAAAyhC,iCAAA,0BAAmE;;QAQvEzhC,0DAFE,EAAc,EAEL;;;;QAdUA,uDAAA,IAA6C;QAAsBA,wDAAnE,SAAAA,yDAAA,QAAA2B,GAAA,CAAA07B,WAAA,CAAA1mB,iBAAA,EAA6C,aAAA+qB,eAAA,CAAuC;QAMtF1hC,uDAAA,GAAkD;QAAlDA,wDAAA,SAAAA,yDAAA,QAAA2B,GAAA,CAAAoC,cAAA,CAAA8S,mBAAA,EAAkD;;;;;;;;;;;;;;;;;;;;;ACxB9D,MAAM/T,WAAW,GAAG;EAC1ByF,UAAU,EAAE,IAAI;EAChB4M,GAAG,EAAE;IACJC,cAAc,EAAE;GAChB;EAEDusB,YAAY,EAAE;IACb1c,MAAM,EAAE,0BAA0B;IAClCzmB,IAAI,EAAE;GACN;EAED2c,WAAW,EAAE;IACZ8J,MAAM,EAAE,0BAA0B;IAClCzmB,IAAI,EAAE,2BAA2B;IACjCoP,GAAG,EAAE;GACL;EAEDg0B,KAAK,EAAE;IACNC,eAAe,EAAE,0DAA0D;IAC3E5c,MAAM,EAAE,0BAA0B;IAClCzmB,IAAI,EAAE;GACN;EACDoO,aAAa,EAAE;IACRW,QAAQ,EAAE,0CAA0C;IACpDu0B,WAAW,EAAE,kCAAkC;IAC/Cj1B,QAAQ,EAAE,kCAAkC;IAC5CF,MAAM,EAAE;GACX;EACJo1B,QAAQ,EAAE;IACHn0B,GAAG,EAAE,6CAA6C;IACxDo0B,eAAe,EAAE,4CAA4C;IACvDC,OAAO,EAAE,qEAAqE;IAC9EC,MAAM,EAAE,oEAAoE;IAC5EC,QAAQ,EAAE;GACb;EACD/tB,WAAW,EAAE;IACfxG,GAAG,EAAE,sCAAsC;IAC3Cw0B,UAAU,EAAE;GACT;EACJz0B,QAAQ,EAAE;IACTC,GAAG,EAAE,0CAA0C;IAC/C4yB,EAAE,EAAE;GACJ;EACD1D,YAAY,EAAE;IACbuF,SAAS,EAAE;GACX;EACDt5B,QAAQ,EAAE;CAEV;;;;;;;;;;;;;;;;;;AChD8C;AAGF;AACY;AACJ;AAGrD;AAEA,MAAMw5B,EAAE,GAAGr9B,QAAQ,CAACs9B,aAAa,CAAC,QAAQ,CAAC;AAC3CD,EAAE,CAACE,IAAI,GAAG,iBAAiB;AAC3BF,EAAE,CAACG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;AAChCH,EAAE,CAACG,YAAY,CAAC,KAAK,EAAE,+CAAgD5/B,kEAAW,CAACsR,WAAW,CAACguB,UAAW,EAAE,CAAC;AAC7Gl9B,QAAQ,CAACy9B,eAAe,CAACC,UAAU,CAACC,WAAW,CAACN,EAAE,CAAC;AACnDpS,MAAM,CAAC,WAAW,CAAC,GAAGA,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/C,SAAShrB,IAAIA,CAAC,GAAG2N,IAAI;EACnBgwB,SAAS,CAAC7xB,IAAI,CAAC6B,IAAI,CAAC;AACtB;AAAC;AAEDqd,MAAM,CAAC,MAAM,CAAC,GAAGhrB,IAAI;AACrBA,IAAI,CAAC,IAAI,EAAE,IAAIgZ,IAAI,EAAE,CAAC;AAEtBhZ,IAAI,CAAC,QAAQ,EAAErC,kEAAW,CAACsR,WAAW,CAACguB,UAAU,EAAE;EAAC,YAAY,EAAEt/B,kEAAW,CAACyF,UAAU,GAAG,KAAK,GAAG;AAAI,CAAE,CAAC;AAI1G,IAAIzF,kEAAW,CAACyF,UAAU,EAAE;EAC1B+5B,6DAAc,EAAE;AAClB;AAEAtmB,+DAAW,CAAC+mB,OAAO,EAAE,CACpB17B,KAAK,CAACC,GAAG,IAAIA,GAAG,CAAC,CACjBvI,IAAI,CAAC6G,MAAM,IAAG;EACbo9B,sEAAA,EAAwB,CAACE,eAAe,CAACr1B,sDAAS,CAAC,CAClDxG,KAAK,CAACC,GAAG,IAAIhC,OAAO,CAACC,GAAG,CAAC+B,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;;;;;;;;;;;;;;;ACpCF;AACO,MAAMjE,OAAO,GAAG,SAAS;;;;;;;;;;ACDhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;ACnPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app-update/app-update.component.ts","./src/app/app-update/app-update.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth-callback/auth-callback.component.ts","./src/app/auth-callback/auth-callback.component.html","./src/app/pipes/is-squads-visible.pipe.ts","./src/app/pipes/preferred-last.pipe.ts","./src/app/pipes/score-then-shootoff.pipe.ts","./src/app/pipes/short-categories.pipe.ts","./src/app/pipes/show-total.pipe.ts","./src/app/pipes/squad-visit-meta.pipe.ts","./src/app/release-notes/release-notes.component.ts","./src/app/release-notes/release-notes.component.html","./src/app/services/ad.service.ts","./src/app/services/aws.service.ts","./src/app/services/connections.service.ts","./src/app/services/favourites.ts","./src/app/services/featureprompt.service.ts","./src/app/services/prizemodel.service.ts","./src/app/services/profile.service.ts","./src/app/services/program.service.ts","./src/app/services/rules.ts","./src/app/services/shootoff.ts","./src/app/services/subscriptions.service.ts","./src/app/services/summary.service.ts","./src/app/services/totals.service.ts","./src/app/services/user.service.ts","./src/app/shoot/shooters/shooter.component.ts","./src/app/shoot/shooters/shooter.component.html","./src/app/shoot/squads/event-squads/event-squads.component.ts","./src/app/shoot/squads/event-squads/event-squads.component.html","./src/app/tabs/me-tab/me/notification.service.ts","./src/app/tabs/tabs.component.ts","./src/app/tabs/tabs.component.html","./src/environments/environment.ts","./src/main.ts","./src/environments/version.js","./node_modules/@ionic/core/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./node_modules/@stencil/core/internal/client/ lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthCallbackComponent } from './auth-callback/auth-callback.component';\r\nimport { TabsPage } from './tabs/tabs.component';\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'tabs', pathMatch: 'full' },\r\n { path: 'callback', component: AuthCallbackComponent },\r\n {\r\n path: 'tabs',\r\n component: TabsPage,\r\n children: [\r\n { path: '', redirectTo: '/tabs/shoots', pathMatch: 'full', title: 'Shoots' },\r\n { path: 'shoots', loadChildren: () => import('./tabs/shoots-tab/shoots-tab.module').then(m => m.ShootsTabModule) },\r\n { path: 'clubs', loadChildren: () => import('./tabs/clubs-tab/clubs-tab.module').then(m => m.ClubsTabModule) },\r\n { path: 'me', loadChildren: () => import('./tabs/me-tab/me-tab.module').then(m => m.MeTabModule) },\r\n { path: 'toybox', loadChildren: () => import('./tabs/toybox-tab/toybox-tab.module').then(m => m.ToyboxTabModule) }\r\n ]\r\n },\r\n { path: 'program', loadChildren: () => import('./shoot/shoot.module').then(m => m.ShootModule)},\r\n { path: '**', redirectTo: 'tabs' },\r\n\r\n];\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, {})],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { AppUpdate } from '@capawesome/capacitor-app-update';\r\n\r\n@Component({\r\n selector: 'app-update',\r\n templateUrl: './app-update.component.html',\r\n styleUrls: ['./app-update.component.scss'],\r\n})\r\nexport class AppUpdateComponent {\r\n\r\n @Input()\r\n updateStrategy;\r\n\r\n constructor(\r\n private modalCtrl: ModalController,\r\n ) { }\r\n\r\n dismiss() {\r\n this.modalCtrl.dismiss();\r\n }\r\n\r\n update() {\r\n AppUpdate.openAppStore();\r\n }\r\n\r\n}","\r\n \r\n New version available\r\n \r\n\r\n\r\n \r\n \r\n \r\n

\r\n

This version of MCMS is out of date. Please update to the latest version to continue.

\r\n

A new version of MCMS is available. To get the best experience update now.

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n LATER\r\n \r\n \r\n INSTALL UPDATE\r\n \r\n \r\n \r\n \r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { Router, NavigationEnd, RouteConfigLoadStart, RouteConfigLoadEnd } from '@angular/router';\r\nimport { LoadingController, ModalController, ToastController } from '@ionic/angular';\r\n\r\nimport { PushNotifications, PushNotificationSchema, Token } from '@capacitor/push-notifications';\r\nimport { SplashScreen } from '@capacitor/splash-screen';\r\nimport { App, URLOpenListenerEvent } from '@capacitor/app';\r\n\r\nimport { Platform } from '@ionic/angular';\r\nimport { AppUpdate, AppUpdateInfo } from '@capawesome/capacitor-app-update';\r\nimport { environment } from '../environments/environment';\r\nimport { AppUpdateComponent } from './app-update/app-update.component';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UserService } from './services/user.service';\r\nimport { SubscriptionsService } from './services/subscriptions.service';\r\nimport { ProfileService } from './services/profile.service';\r\nimport { Browser } from '@capacitor/browser';\r\nimport { version } from '../environments/version';\r\nimport { ReleaseNotesComponent } from './release-notes/release-notes.component';\r\nimport { FirebaseAnalytics } from '@capacitor-firebase/analytics';\r\n\r\ndeclare var gtag;\r\n\r\nconst APP_UPDATE_KEY = 'APP_UPDATE_ACTION';\r\n\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: 'app.component.html'\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n routeLoadIndicator: HTMLIonLoadingElement;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private router: Router,\r\n private toastController: ToastController,\r\n private modalController: ModalController,\r\n public platform: Platform,\r\n private profileService: ProfileService,\r\n public userService: UserService,\r\n private subscriptions: SubscriptionsService,\r\n private loadingCtrl: LoadingController\r\n ) {\r\n // Only enable tracking when running in the app1\r\n if (this.platform.is('ios') || this.platform.is('android')) {\r\n this.onAppStart();\r\n } else {\r\n this.showReleaseNotes();\r\n }\r\n\r\n this.subscriptions.hasSubscription$.subscribe();\r\n\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (this.platform.is('ios')) {\r\n FirebaseAnalytics.logEvent({\r\n name: 'screen_view',\r\n params: { \r\n page_path: event.urlAfterRedirects.slice(-100),\r\n screen_name: document.title\r\n },\r\n });\r\n } else {\r\n gtag('event', 'page_view', { 'page_location': event.urlAfterRedirects });\r\n }\r\n }\r\n });\r\n\r\n App.addListener('appUrlOpen', (data: URLOpenListenerEvent) => {\r\n console.log('App URL Open', data);\r\n this.profileService.checkAuth(data.url, Browser.close);\r\n });\r\n\r\n PushNotifications.requestPermissions().then(result => {\r\n if (result.receive === 'granted') {\r\n // Register with Apple / Google to receive push via APNS/FCM\r\n PushNotifications.register();\r\n // On success, we should be able to receive notifications\r\n PushNotifications.addListener('registration',\r\n (token: Token) => {\r\n console.log(`APN TOKEN: ${JSON.stringify(token)}`);\r\n localStorage.setItem('push.token', token.value);\r\n }\r\n );\r\n\r\n PushNotifications.addListener('pushNotificationReceived',\r\n async (notification: PushNotificationSchema) => {\r\n const toast = await this.toastController.create({\r\n header: notification.title,\r\n message: notification.body,\r\n position: 'top',\r\n buttons: [{ text: 'OK', role: 'cancel' }]\r\n });\r\n toast.present();\r\n }\r\n );\r\n } else {\r\n // Show some error\r\n }\r\n }).catch(err => {\r\n console.warn(`No support for PushNotifications`);\r\n });\r\n\r\n this.getLaunchUrl();\r\n }\r\n\r\n async ngOnInit() {\r\n SplashScreen.hide();\r\n this.setupRouteLoadIndicator();\r\n }\r\n\r\n async setupRouteLoadIndicator() {\r\n this.routeLoadIndicator = await this.loadingCtrl.create({\r\n message: 'Loading...',\r\n });\r\n\r\n // Hides and displays a loading indicator when routes are being lazy loaded\r\n\r\n this.router.events.subscribe(async event => {\r\n if (event instanceof RouteConfigLoadStart) {\r\n this.routeLoadIndicator.present();\r\n } else if (event instanceof RouteConfigLoadEnd) {\r\n this.routeLoadIndicator.dismiss();\r\n }\r\n });\r\n }\r\n\r\n async showReleaseNotes() {\r\n const seenRN = localStorage.getItem('release-notes');\r\n if (!seenRN || seenRN !== version) {\r\n const rnModal = await this.modalController.create({\r\n component: ReleaseNotesComponent,\r\n });\r\n await rnModal.present();\r\n await rnModal.onDidDismiss();\r\n localStorage.setItem('release-notes', version);\r\n }\r\n }\r\n\r\n async onAppStart() { \r\n try {\r\n if (environment.production) {\r\n const appUpdateInfo: AppUpdateInfo = await AppUpdate.getAppUpdateInfo();\r\n\r\n if (this.isCurrentVersionUpgradeable(appUpdateInfo.currentVersionName, appUpdateInfo.availableVersionName)) {\r\n const versionInfo = await firstValueFrom(this.http.get(environment.versions));\r\n const updateInformation = versionInfo?.[appUpdateInfo.availableVersionName];\r\n\r\n const modal = await this.modalController.create({\r\n component: AppUpdateComponent,\r\n componentProps: {\r\n updateStrategy: updateInformation?.updateStrategy,\r\n },\r\n });\r\n\r\n await modal.present();\r\n\r\n await modal.onDidDismiss().then(() => {\r\n // appUpdateActionMap[appUpdateInfo.availableVersion] = 'dismissed';\r\n // return Storage.set({ key: appUpdateActionMap, value: JSON.stringify(appUpdateActionMap) });\r\n });\r\n }\r\n }\r\n this.showReleaseNotes();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n // Check to disable prompt when in beta or testflight\r\n isCurrentVersionUpgradeable(currentVersion: string, availableStoreVersion: string) {\r\n if (currentVersion === availableStoreVersion) {\r\n return false;\r\n }\r\n // Assume semver\r\n const [currentMajor, currentMinor, currentPatch] = currentVersion.split('.');\r\n const [availableStoreMajor, availableStoreMinor, availableStorePatch] = availableStoreVersion.split('.');\r\n const m1 = parseInt(availableStoreMajor, 10);\r\n const m2 = parseInt(currentMajor, 10);\r\n if (m1 > m2) {\r\n return true;\r\n }\r\n else if (m1 == m2) {\r\n const mi1 = parseInt(availableStoreMinor, 10);\r\n const mi2 = parseInt(currentMinor, 10);\r\n if (mi1 > mi2) {\r\n return true;\r\n } else if (mi1 === mi2) {\r\n const p1 = parseInt(availableStorePatch, 10);\r\n const p2 = parseInt(currentPatch, 10);\r\n return p1 > p2;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n async getLaunchUrl() {\r\n const urlOpen = await App.getLaunchUrl();\r\n if (!urlOpen || !urlOpen.url) {\r\n return;\r\n }\r\n console.log('Launch URL', urlOpen);\r\n this.navigate(urlOpen.url);\r\n }\r\n\r\n navigate(uri: string) {\r\n // THIS MUST EQUAL THE 'custom_url_scheme' from your Android intent:\r\n const urls = ['com.myclubsmyscores.claytargetapp:/', 'http://claytargetapp.myclubsmyscores.com'];\r\n for (const match of urls) {\r\n if (uri.startsWith(match)) {\r\n uri = uri.substring(match.length);\r\n this.router.navigateByUrl(uri);\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n\r\n","import { NgModule, ErrorHandler, APP_INITIALIZER } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\n\r\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS} from '@angular/common/http';\r\nimport { TabsPage } from './tabs/tabs.component';\r\nimport { TrapPopover } from './shoot/squads/event-squads/event-squads.component';\r\nimport { AppUpdateComponent } from './app-update/app-update.component';\r\nimport { DTLRules, RulesFactory } from './services/rules';\r\nimport { AuthConfig, AuthHttpInterceptor, AuthModule } from '@auth0/auth0-angular';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Capacitor } from '@capacitor/core';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { ReleaseNotesComponent } from './release-notes/release-notes.component';\r\nimport { FeaturePromptComponent, FeaturePromptFactory, FeaturePromptService } from './services/featureprompt.service';\r\n\r\ndeclare var gtag;\r\n\r\nexport class GAErrorHandler implements ErrorHandler {\r\n\thandleError(error) {\r\n\t\t// do something with the exception\r\n\t\tconsole.error(error);\r\n\t\tgtag('send', 'exception', {\r\n\t\t\t'exDescription': error\r\n\t\t});\r\n \t}\r\n}\r\n\r\nconst authConfig: AuthConfig = {\r\n domain: environment.authorization.domain,\r\n clientId: environment.authorization.clientId,\r\n cacheLocation: 'localstorage',\r\n useRefreshTokens: true,\r\n useRefreshTokensFallback: false,\r\n skipRedirectCallback: true,\r\n authorizationParams: {\r\n redirect_uri: \r\n Capacitor.isNativePlatform() ? \r\n `com.myclubsmyscores.claytargetapp://${environment.authorization.domain}/capacitor/com.myclubsmyscores.ClaytargetApp/callback` : \r\n `${location.origin}/callback`,\r\n audience: environment.authorization.audience,\r\n scope: 'openid profile email offline_access'\r\n },\r\n httpInterceptor: {\r\n allowedList: [\r\n {\r\n uri: `${environment.identity.api}/*`\r\n }\r\n ]\r\n }\r\n};\r\n \r\n\r\n@NgModule({\r\n declarations: [AppComponent, TabsPage, TrapPopover, AppUpdateComponent, ReleaseNotesComponent, FeaturePromptComponent],\r\n imports: [\r\n BrowserModule,\r\n CommonModule,\r\n ScrollingModule,\r\n HttpClientModule,\r\n IonicModule.forRoot(),\r\n AppRoutingModule,\r\n AuthModule.forRoot(authConfig)\r\n ],\r\n providers: [\r\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },\r\n {\r\n provide: ErrorHandler,\r\n useClass: GAErrorHandler\r\n },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthHttpInterceptor, multi: true },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: RulesFactory,\r\n deps: [DTLRules],\r\n multi: true\r\n },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: FeaturePromptFactory,\r\n deps: [FeaturePromptService],\r\n multi: true\r\n },\r\n ],\r\n exports: [\r\n AppUpdateComponent\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ProfileService } from '../services/profile.service';\r\n\r\n@Component({\r\n selector: 'app-auth-callback',\r\n templateUrl: './auth-callback.component.html',\r\n styleUrls: ['./auth-callback.component.scss'],\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n\r\n constructor(\r\n private profileService: ProfileService\r\n ) { }\r\n\r\n ngOnInit() {\r\n // this.profileService.checkAuth(location.href, () => {});\r\n }\r\n\r\n}\r\n","

\r\n

\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport * as moment from \"moment\";\r\nimport { ICompetition } from \"../services/shoots.service\";\r\n\r\n@Pipe({\r\n name: 'isSquadsVisible'\r\n})\r\nexport class IsSquadsVisiblePipe implements PipeTransform {\r\n transform(shoot: ICompetition) {\r\n const endOfToday = moment().endOf('day').unix();\r\n return ['IN_PROGRESS', 'COMPLETED'].includes(shoot?.status) || (endOfToday > shoot.when && shoot?.status === 'PUBLISHED');\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'preferredLast'\r\n})\r\nexport class PreferredLastPipe implements PipeTransform {\r\n capitalise(s) {\r\n return (s) ? s.charAt(0).toUpperCase() + s.slice(1) : s;\r\n }\r\n\r\n transform(dict: any): string {\r\n if (dict) {\r\n return `${dict.preferredNameCase || this.capitalise(dict.preferredName) || dict.firstNameCase || this.capitalise(dict.firstName)} ${dict.lastNameCase || this.capitalise(dict.lastName)}`;\r\n } else {\r\n return '< Unknown >';\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Shootoff } from '../services/shootoff';\r\nimport { IProcessedEventScore } from '../services/totals.service';\r\n\r\n@Pipe({\r\n name: 'scoreThenShootOff'\r\n})\r\nexport class ScoreThenShootOff implements PipeTransform {\r\n transform(value: any, event, filterBy) {\r\n if (value) {\r\n value.sort((left, right) => {\r\n if ((left.total + Number(left.extra)) !== (right.total + Number(right.extra))) {\r\n // descending by total\r\n return (right.total + Number(right.extra)) - (left.total + Number(left.extra));\r\n } else {\r\n // ascending by shootoff\r\n return Shootoff.compare(event, left, right, filterBy, {extras: true});\r\n\r\n }\r\n });\r\n return value;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { DefaultCategories } from \"../services/prizemodel.service\";\r\n\r\n@Pipe({\r\n\tname: 'shortCategories'\r\n})\r\nexport class ShortCategories implements PipeTransform {\r\n\ttransform(categories: any, showOpen?: boolean): string {\r\n\t\tconst arr2 = [];\r\n\t\tif (categories != null) {\r\n\t\t\tlet arr = categories;\r\n\t\t\tif (typeof categories === 'string') {\r\n\t\t\t\tarr = categories.split(',');\r\n\t\t\t}\r\n\t\t\tfor (const a of arr) {\r\n\t\t\t\tif ((DefaultCategories.all[a] || {}).abbrev) {\r\n\t\t\t\t\tif (a === 'OPEN' && showOpen) {\r\n\t\t\t\t\t\tarr2.push('O');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tarr2.push(DefaultCategories.all[a].abbrev);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (showOpen && DefaultCategories.all[a] && DefaultCategories.all[a].value) {\r\n\t\t\t\t\t\tarr2.push(DefaultCategories.all[a].value.substring(0, 1));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr2.join(',');\r\n\t}\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IEvent } from '../services/datatypes';\r\nimport { IProcessedEventScore } from '../services/totals.service';\r\n\r\n@Pipe({\r\n name: 'showTotal'\r\n})\r\nexport class ShowTotalPipe implements PipeTransform {\r\n\r\n transform(totalScore: IProcessedEventScore, event: IEvent, options: {filter?: string, display?: 'no-shootoff' | 'shootoff-only' | 'total-only' | 'total+extras'}): any {\r\n if (!totalScore) {\r\n return '';\r\n }\r\n\r\n const totalExtra = event.limit_to_possible === 'event' ? totalScore.maxExtra : totalScore.extra;\r\n let total = totalScore.total + Number(totalExtra);\r\n let possible = totalScore.possible;\r\n let shootOffTotal = 0;\r\n let shootOffPossible = 0;\r\n let shootOffExtra = event.limit_to_possible === 'event' ? Math.max(0, total - possible) : 0;\r\n totalScore.shootOffs[options.filter]?.rounds?.forEach(round => {\r\n shootOffPossible += Number(round.possible);\r\n possible += round.possible;\r\n if (event.limit_to_possible === 'leg') {\r\n total += Math.min(round.score + Number(round.extra || 0), round.possible);\r\n shootOffTotal += round.score;\r\n shootOffExtra += Math.min(round.possible - round.score, Number(round.extra || 0));\r\n } else {\r\n total += round.score + Number(round.extra || 0);\r\n shootOffTotal += round.score;\r\n shootOffExtra += Number(round.extra || 0);\r\n }\r\n });\r\n\r\n if (options.filter !== 'OPEN') {\r\n totalScore.shootOffs.OPEN?.rounds?.forEach(round => {\r\n possible += round.possible;\r\n shootOffPossible += Number(round.possible);\r\n if (event.limit_to_possible === 'leg') {\r\n total += Math.min(round.score + Number(round.extra || 0), round.possible);\r\n shootOffTotal += round.score;\r\n shootOffExtra += Math.min(round.possible - round.score, Number(round.extra || 0));\r\n } else {\r\n total += round.score + Number(round.extra || 0);\r\n shootOffTotal += round.score;\r\n shootOffExtra += Number(round.extra || 0);\r\n }\r\n });\r\n }\r\n switch (options.display) {\r\n case 'shootoff-only':\r\n const extrasSO = (event.limit_to_possible === 'event') ?\r\n Math.min(shootOffExtra, shootOffPossible - shootOffTotal) :\r\n shootOffExtra;\r\n const extrasSOString = shootOffExtra ? ` (+${extrasSO})` : '';\r\n return `${shootOffTotal}${extrasSOString} / ${shootOffPossible}`;\r\n case 'total+extras':\r\n const extraString = totalExtra ? ` (+${Math.min(totalExtra, possible - total)})` : '';\r\n return `${Math.min(totalScore.total + shootOffTotal, possible)} ${extraString} / ${possible}`;\r\n case 'no-shootoff':\r\n const extrasMain = Math.min(totalExtra, totalScore.possible - totalScore.total);\r\n const extrasMainString = extrasMain ? ` (+${extrasMain})` : '';\r\n return `${totalScore.total}${extrasMainString} / ${totalScore.possible}`;\r\n default:\r\n return `${Math.min(total, possible)} / ${possible}`;\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'squadVisitMeta'\r\n })\r\n export class SquadVisitMetaPipe implements PipeTransform {\r\n transform(value: any[], ...args: any[]) {\r\n const squadMeta = [];\r\n value?.forEach(visitSquad => {\r\n let visitMeta: any = {};\r\n let toAdd = false;\r\n if (visitSquad?.squad.metadata?.time) {\r\n visitMeta.time = visitSquad?.squad.metadata?.time;\r\n toAdd = true;\r\n }\r\n \r\n if (visitSquad?.squad.trap?.length > 0) {\r\n visitMeta.trap = visitSquad?.squad.trap;\r\n toAdd = true;\r\n }\r\n if (toAdd) {\r\n squadMeta.push(visitMeta);\r\n }\r\n })\r\n return squadMeta;\r\n }\r\n \r\n }","import { Component, OnInit } from '@angular/core';\r\nimport { version } from '../../environments/version';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { firstValueFrom } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-release-notes',\r\n templateUrl: './release-notes.component.html',\r\n styleUrls: ['./release-notes.component.scss'],\r\n})\r\nexport class ReleaseNotesComponent implements OnInit {\r\n version = version\r\n html: any;\r\n\r\n constructor(public modalCtl: ModalController, private http: HttpClient) { }\r\n\r\n async ngOnInit() {\r\n try {\r\n this.html = await firstValueFrom(this.http.get(`assets/release-notes/${this.version}.html`, { responseType: 'text'}));\r\n } catch (err) {\r\n this.html = ``;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n Close\r\n \r\n MCMS v{{version}}\r\n \r\n\r\n\r\n\r\n

What's New

\r\n\r\n
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nexport interface AdResponse {\r\n id: number;\r\n images: {\r\n '320x320': string;\r\n '320x50': string;\r\n };\r\n actions: {\r\n clickThrough: string;\r\n };\r\n}\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class AdService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n async getAd(property, hostId, compId): Promise {\r\n const adURI = `${environment.advertising.api}/advertising/${property}?host=${hostId}&comp=${compId}`;\r\n return firstValueFrom(this.http.get<{id: number; actions: any, images: any }>(adURI));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport {S3Client } from \"@aws-sdk/client-s3\";\r\nimport { CognitoIdentityClient } from \"@aws-sdk/client-cognito-identity\";\r\nimport { fromCognitoIdentityPool } from \"@aws-sdk/credential-provider-cognito-identity\";\r\n\r\n\r\nexport interface IAmazonCredentials {\r\n\tAccessKeyId: string;\r\n\tSecretAccessKey: string;\r\n\tSessionToken: string;\r\n\tExpiration: string;\r\n\tSubject: string;\r\n}\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class AwsService {\r\n\r\n\tconstructor() {}\r\n\r\n\r\n\tget s3(): S3Client {\r\n\t\tconst cognitoIdentityClient = new CognitoIdentityClient({ region: 'ap-southeast-2' });\r\n\r\n\t\t// Setting up AWS credentials\r\n\t\tconst credentials = fromCognitoIdentityPool({\r\n\t\tclient: cognitoIdentityClient,\r\n\t\tidentityPoolId: environment.aws.IdentityPoolId,\r\n\t\t});\r\n\t\treturn new S3Client({ region: 'ap-southeast-2', credentials: credentials });\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, catchError, combineLatest, concatMap, distinctUntilChanged, filter, firstValueFrom, from, map, mergeMap, Observable, of, ReplaySubject, startWith, switchMap, tap, zip } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotificationService } from '../tabs/me-tab/me/notification.service';\r\nimport { ConnectionRequest, IConnected, IConnection } from './connection.types';\r\nimport { FavouritesProvider } from './favourites';\r\nimport { SubscriptionsService } from './subscriptions.service';\r\nimport { ProfileService } from './profile.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConnectionsService {\r\n\r\n connections$ = new BehaviorSubject(undefined);\r\n followingMe$ = new BehaviorSubject(undefined);\r\n followedByMe$ = new BehaviorSubject(undefined);\r\n\r\n requestsSent$ = new BehaviorSubject(undefined);\r\n requestsReceived$ = new BehaviorSubject(undefined);\r\n\r\n refresh$ = new BehaviorSubject(0);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private favourites: FavouritesProvider,\r\n private notifications: NotificationService,\r\n private subscriptions: SubscriptionsService,\r\n private profileService: ProfileService\r\n ) {\r\n\r\n combineLatest([\r\n this.profileService.currentUserProfile$,\r\n this.refresh$\r\n ]).pipe(\r\n catchError(err => {\r\n console.log(err);\r\n return of([null]);\r\n }),\r\n distinctUntilChanged(),\r\n map(([profile]) => profile),\r\n filter(profile => !!profile),\r\n concatMap(profile => this.http.get(`${environment.identity.api}/Connection?from.profile=${profile._id}`)),\r\n tap(followedByMe => {\r\n const followedIds = [];\r\n followedByMe.forEach(f => {\r\n Object.values(f.permissions || {}).forEach(p => {\r\n if (p?.membershipId) {\r\n followedIds.push(p.membershipId);\r\n }\r\n })\r\n });\r\n this.favourites.clearLinkedMemberships(followedIds);\r\n })\r\n ).subscribe(this.followedByMe$)\r\n\r\n combineLatest([\r\n this.profileService.currentUserProfile$,\r\n this.refresh$\r\n ]).pipe(\r\n distinctUntilChanged(),\r\n map(([profile]) => profile),\r\n filter(profile => !!profile),\r\n concatMap(profile => this.http.get(`${environment.identity.api}/Connection?to.profile=${profile._id}`))\r\n ).subscribe(this.followingMe$)\r\n\r\n combineLatest([\r\n this.profileService.currentUserProfile$,\r\n this.refresh$\r\n ]).pipe(\r\n distinctUntilChanged(),\r\n map(([profile]) => profile),\r\n filter(profile => !!profile),\r\n concatMap(profile => {\r\n return this.http.get(`${environment.identity.api}/ConnectionRequest`)\r\n .pipe(\r\n map(requests => ({ profile, requests}))\r\n )\r\n })\r\n ).subscribe(({ profile, requests}) => {\r\n this.requestsReceived$.next(requests.filter(r => r.from.profile !== profile._id.toString()));\r\n this.requestsSent$.next(requests.filter(r => r.from.profile === profile._id.toString()));\r\n });\r\n \r\n\r\n \r\n combineLatest([this.followedByMe$, this.followingMe$, this.requestsReceived$, this.requestsSent$])\r\n\t\t.pipe(\r\n\t\t\tmap(([followedByMe, followingMe, requestsReceived, requestsSent]) => {\r\n\t\t\t\tconst byProfileId: { [id: string]: IConnected } = {};\r\n\t\t\t\tfollowedByMe?.forEach(f => {\r\n\t\t\t\t\tbyProfileId[f.to.profile] = Object.assign(byProfileId[f.to.profile] || {}, { followedByMe: f});\r\n\t\t\t\t});\r\n\t\t\t\tfollowingMe?.forEach(f => {\r\n\t\t\t\t\tbyProfileId[f.from.profile] = Object.assign(byProfileId[f.from.profile] || {}, { followingMe: f});\r\n\t\t\t\t});\r\n requestsReceived?.forEach(r => {\r\n if (byProfileId[r.from.profile]) {\r\n byProfileId[r.from.profile] = byProfileId[r.from.profile] || {};\r\n byProfileId[r.from.profile].pendingRequests = byProfileId[r.from.profile].pendingRequests || {};\r\n byProfileId[r.from.profile].pendingRequests.received = r;\r\n }\r\n });\r\n requestsSent?.forEach(r => {\r\n const incoming = followingMe?.find(f => f.from.email === r.to.email);\r\n if (incoming && byProfileId[incoming.from.profile]) {\r\n byProfileId[incoming.from.profile] = byProfileId[incoming.from.profile] || {};\r\n byProfileId[incoming.from.profile].pendingRequests = byProfileId[incoming.from.profile].pendingRequests || {};\r\n byProfileId[incoming.from.profile].pendingRequests.sent = r;\r\n }\r\n });\r\n\r\n return Object.values(byProfileId).map(f => {\r\n\t\t\t\t\tf.name = f.followedByMe?.to?.name || f.followingMe?.from?.name\r\n\t\t\t\t\treturn f;\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t).subscribe(this.connections$);\r\n\r\n this.notifications.messageSubject.subscribe(this.refresh$);\r\n }\r\n\r\n createRequest(detail: { name: string, contact: {phone?: string, email?: string}, message: string}) {\r\n return from(this.profileService.currentUserProfile$)\r\n .pipe(\r\n mergeMap((profile) => {\r\n return this.http.post(`${environment.identity.api}/ConnectionRequest`, {\r\n to: {\r\n name: detail.name,\r\n email: detail.contact?.email,\r\n mobile: detail.contact?.phone,\r\n },\r\n message: detail.message,\r\n from: {\r\n name: profile.given_name,\r\n email: profile.email,\r\n profile: profile._id\r\n },\r\n status: 'pending'\r\n });\r\n }),\r\n tap(() => this.refresh$.next(Math.random()))\r\n )\r\n }\r\n\r\n async respond(connectionRequest: ConnectionRequest, status, permissions) {\r\n const response = await firstValueFrom(\r\n this.http.post(`${environment.identity.api}/ConnectionResponse`, {\r\n request: connectionRequest._id,\r\n action: status,\r\n permissions\r\n })\r\n );\r\n this.refresh$.next(Math.random());\r\n return response;\r\n }\r\n\r\n async updateConnection(doc: IConnection) {\r\n const updated = await firstValueFrom(this.http.put(`${environment.identity.api}/Connection/${doc._id}`, doc));\r\n this.refresh$.next(Math.random());\r\n return updated;\r\n }\r\n\r\n async deleteRequest(doc: ConnectionRequest) {\r\n const deleted = await firstValueFrom(this.http.delete(`${environment.identity.api}/ConnectionRequest/${doc._id}`));\r\n this.refresh$.next(Math.random());\r\n }\r\n\r\n async deleteConnection(doc: IConnection) {\r\n const deleted = await firstValueFrom(this.http.delete(`${environment.identity.api}/Connection/${doc._id}`));\r\n this.refresh$.next(Math.random());\r\n }\r\n\r\n async updateIdentityPermissions(connection, permissions) {\r\n await firstValueFrom(this.http.patch(`${environment.identity.api}/Connection/${connection._id}`, {\r\n $set: { \r\n permissions: permissions\r\n }\r\n }));\r\n this.refresh$.next(Math.random());\r\n\r\n }\r\n\r\n async verifyConnectionRequest(code: string) {\r\n // https://t5jjtitngl.execute-api.ap-southeast-2.amazonaws.com/OrgMemberIdentity/Claim?id=2b1c866d-4682-485d-aa7a-82f15d47e035&code=836691\r\n\r\n /*const token = await firstValueFrom(this.auth.getAccessTokenSilently());\r\n\r\n await firstValueFrom(this.http.post(`${environment.organisationConnection.api}/Claim`, connectionDetails, {\r\n headers: {\r\n authorization: `Bearer ${token}`\r\n }\r\n }));\r\n */\r\n }\r\n\r\n connectionsShoots(including?: string[]): Observable {\r\n return combineLatest([this.followedByMe$, this.subscriptions.hasSubscription$])\r\n .pipe(\r\n map(([followedByMe, subscribed]) => {\r\n const followingShooterIds: { [shooterId:string]: string[] } = {};\r\n\t\t\r\n if (subscribed) {\r\n followedByMe?.forEach((connection) => {\r\n if (connection?.permissions) {\r\n Object.entries(connection.permissions).forEach(([association, byShooterId]) => {\r\n Object.entries(byShooterId).forEach(([shooterId, permission]) => {\r\n if (permission.nomination) {\r\n followingShooterIds[shooterId] = followingShooterIds[shooterId] || [];\r\n followingShooterIds[shooterId].push(association)\r\n }\r\n }) \r\n });\r\n }\r\n });\r\n }\r\n return followingShooterIds;\r\n }),\r\n mergeMap(permitted => {\r\n const ids = Object.keys(permitted);\r\n if (ids?.length > 0) {\r\n return zip([\r\n ...ids.map(shooterId => this.http.get(`${environment.competition.api}/byShooter/${shooterId}?type=NOMINATION`)),\r\n ...ids.map(shooterId => this.http.get(`${environment.competition.api}/byShooter/${shooterId}?type=PRE_NOMINATION`))\r\n ]).pipe(\r\n map((arrayOfArrayOfNoms: any) => {\r\n const nominations = [];\r\n arrayOfArrayOfNoms.map(a => a.Items).forEach(arr => arr.forEach(i => nominations.push(i)));\r\n return {\r\n permitted,\r\n nominations\r\n }\r\n })\r\n );\r\n } else {\r\n return of({\r\n permitted,\r\n nominations: []\r\n });\r\n }\r\n }),\r\n map(({permitted, nominations}) => {\r\n \r\n const byCompId = {};\r\n\r\n // should not be deleted and should match permitted association\r\n nominations.filter(nom => {\r\n const discipline = nom.discipline?.match(/^(.*)\\s\\[(.*)\\]$/);\r\n let nommedAssociation;\r\n if (discipline) {\r\n nommedAssociation = discipline[2];\r\n }\r\n // FIXME - prenoms don't have a discipline\r\n return !Boolean(nom._deleted) &&\r\n (!nommedAssociation || permitted[nom.shooter]?.includes(nommedAssociation));\r\n \r\n })\r\n .forEach(nom => {\r\n byCompId[nom.comp] = byCompId[nom.comp] || [];\r\n byCompId[nom.comp].push(nom)\r\n })\r\n return Object.keys(byCompId);\r\n })\r\n )\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Preferences } from '@capacitor/preferences';\r\nimport { ReplaySubject, firstValueFrom } from 'rxjs';\r\n\r\n/*\r\n Generated class for the FavouritesProvider provider.\r\n\r\n See https://angular.io/guide/dependency-injection for more info on providers\r\n and Angular DI.\r\n*/\r\n@Injectable({providedIn: 'root'})\r\nexport class FavouritesProvider {\r\n\r\n\tassociationsSubject = new ReplaySubject(1);\r\n\tclubsSubject = new ReplaySubject(1);\r\n\tbarcodes = new ReplaySubject<{nickname: string; id: string}[]>(1);\r\n\r\n\tconstructor() {\r\n\t\tPreferences.get({key: 'favourite.associations'}).then(assoc => this.associationsSubject.next(JSON.parse(assoc?.value)?.map(a => String(a))));\r\n\t\tPreferences.get({key: 'favourite.clubs'}).then(clubs => this.clubsSubject.next(JSON.parse(clubs?.value)?.map(a => String(a))));\r\n\t\tPreferences.get({key: 'barcodes2'}).then(codes => this.barcodes.next(JSON.parse(codes?.value)));\r\n\t}\r\n\r\n\tsaveAssociations(associations) {\r\n\t\tPreferences.set({key: 'favourite.associations', value: JSON.stringify(associations)});\r\n\t\tthis.associationsSubject.next(associations);\r\n\t}\r\n\r\n\tsaveClubs(favourites: string[]) {\r\n\t\tPreferences.set({key: 'favourite.clubs', value: JSON.stringify(favourites)});\r\n\t\tthis.clubsSubject.next(favourites);\r\n\t}\r\n\r\n\tsaveBarcodes(barcodes: {nickname: string; id: string}[]) {\r\n\t\tPreferences.set({key: 'barcodes2', value: JSON.stringify(barcodes)});\r\n\t\tthis.barcodes.next(barcodes);\r\n\t}\r\n\r\n\tasync clearLinkedMemberships(membershipNumbers: string[]) {\r\n\t\tconst allBarcodes = await firstValueFrom(this.barcodes);\r\n\t\tconst updatedBarcodes = allBarcodes?.filter(bc => {\r\n\t\t\treturn !membershipNumbers?.some(m => String(m) === String(bc.id));\r\n\t\t});\r\n\t\tthis.saveBarcodes(updatedBarcodes || []);\r\n\t}\r\n}\r\n","import { Component, Injectable, Input } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { UserService } from './user.service';\r\nimport { AuthService } from '@auth0/auth0-angular';\r\nimport { firstValueFrom } from 'rxjs';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { environment } from 'src/environments/environment.prod';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FeaturePromptService {\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private router: Router,\r\n private modalController: ModalController,\r\n ) { }\r\n\r\n onLoad() {\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n if (event.urlAfterRedirects === \"/tabs/toybox\" || event.urlAfterRedirects === \"/tabs/me\") {\r\n this.promoteRankingsVisibility();\r\n }\r\n }\r\n });\r\n }\r\n\r\n async promoteRankingsVisibility() {\r\n const isAuthed = await firstValueFrom(this.authService.isAuthenticated$);\r\n if (!isAuthed) return;\r\n\r\n const identities = await firstValueFrom(this.userService.identities$);\r\n if ((identities || []).length === 0) return;\r\n\r\n const isAllPublic = (identities || []).every(i => { return (i.permission?.rankings)});\r\n if (isAllPublic) return;\r\n\r\n const previousTime = Number(localStorage.getItem('featurePromoteRankingsVisibilityLastPresented'));\r\n\r\n if (previousTime) {\r\n const currentTime = new Date().getTime();\r\n const diffInMs = Math.abs(currentTime - previousTime);\r\n const maximumTime = 7 * 24 * 60 * 60 * 1000 * 2; // 2 weeks\r\n\r\n if (diffInMs < maximumTime) return;\r\n }\r\n\r\n const confirmed = await this.displayConfirmationModal();\r\n\r\n if (confirmed) {\r\n identities.forEach(async i => {\r\n await this.userService.setIdentityPermission(i, { rankings: true });\r\n });\r\n } else {\r\n localStorage.setItem('featurePromoteRankingsVisibilityLastPresented', new Date().getTime().toString());\r\n }\r\n }\r\n\r\n async displayConfirmationModal() {\r\n const m = await this.modalController.create({\r\n component: FeaturePromptComponent,\r\n cssClass: 'small-modal',\r\n backdropDismiss: false\r\n });\r\n\r\n await m.present();\r\n\r\n return (await m.onDidDismiss()).data.confirm;\r\n }\r\n\r\n}\r\n\r\nexport function FeaturePromptFactory(provider: FeaturePromptService) {\r\n return () => provider.onLoad();\r\n}\r\n\r\n\r\n@Component({\r\n selector: 'feature-prompt-modal',\r\n template: `\r\n \r\n \r\n Hello!\r\n Join the MCMS Rankings!\r\n \r\n\r\n \r\n We noticed you haven’t made your rankings public yet. By enabling this feature, you'll be helping the shooting community see who’s performing well and where the top shooters are from—fostering friendly competition.\r\n

\r\n If you'd like to be part of the rankings, simply click \"Enable\" below. If not, feel free to close this message.\r\n
\r\n\r\n
\r\n \r\n \r\n Close\r\n \r\n \r\n \r\n Enable\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class FeaturePromptComponent {\r\n @Input()\r\n shooter: any;\r\n\r\n constructor(\r\n private modalController: ModalController,\r\n ) { }\r\n\r\n dismiss(confirm: boolean) {\r\n this.modalController.dismiss({ confirm });\r\n }\r\n}","import { Shootoff } from './shootoff';\r\n\r\nexport class DefaultCategories {\r\n\tstatic all = {\r\n\t\tOPEN: {\r\n\t\t\torder: 1,\r\n\t\t\tvalue: 'OPEN',\r\n\t\t\tlabel: 'Overall',\r\n\t\t\tabbrev: '',\r\n\t\t\tdefault: true,\r\n\t\t\texcludes: ['CLAYS_ONLY']\r\n\t\t},\r\n\t\t'SUB-JUNIOR': {\r\n\t\t\torder: 2,\r\n\t\t\tvalue: 'SUB-JUNIOR',\r\n\t\t\tabbrev: 'SJ',\r\n\t\t\tdefault: false,\r\n\t\t\tincludedBy: 'JUNIOR',\r\n\t\t\texcludes: ['VETERAN', 'SUPER-VETERAN', 'CLAYS_ONLY']\r\n\t\t},\r\n\t\tJUNIOR: {\r\n\t\t\torder: 3,\r\n\t\t\tvalue: 'JUNIOR',\r\n\t\t\tabbrev: 'J',\r\n\t\t\tdefault: true,\r\n\t\t\texcludes: ['VETERAN', 'SUPER-VETERAN', 'CLAYS_ONLY']\r\n\t\t},\r\n\t\tLADIES: {\r\n\t\t\torder: 4,\r\n\t\t\tvalue: 'LADIES',\r\n\t\t\tabbrev: 'L',\r\n\t\t\tdefault: true,\r\n\t\t\texcludes: ['CLAYS_ONLY']\r\n\t\t},\r\n\t\t'SUPER-VETERAN': {\r\n\t\t\torder: 5,\r\n\t\t\tvalue: 'SUPER-VETERAN',\r\n\t\t\tabbrev: 'SV',\r\n\t\t\tdefault: false,\r\n\t\t\tincludedBy: 'VETERAN',\r\n\t\t\texcludes: ['JUNIOR', 'SUB-JUNIOR', 'CLAYS_ONLY']\r\n\t\t},\r\n\t\tVETERAN: {\r\n\t\t\torder: 6,\r\n\t\t\tvalue: 'VETERAN',\r\n\t\t\tabbrev: 'V',\r\n\t\t\tdefault: true,\r\n\t\t\texcludes: ['JUNIOR', 'SUB-JUNIOR', 'CLAYS_ONLY']\r\n\t\t},\r\n\t\tCLAYS_ONLY: {\r\n\t\t\torder: 100,\r\n\t\t\tvalue: 'CLAYS_ONLY',\r\n\t\t\tabbrev: '!',\r\n\t\t\tdefault: true,\r\n\t\t\texcludes: ['OPEN', 'JUNIOR', 'LADIES', 'VETERAN', 'SUPER-VETERAN', 'OTHER', 'JUNIOR', 'SUB-JUNIOR']\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport class PrizeModel {\r\n\r\n\tconstructor() {\r\n\t\tthis.prizes = {};\r\n\t}\r\n\r\n\tallocations: any = {};\r\n\tprizes: any;\r\n\tpriority: string[];\r\n\r\n\tpublic static assignPrizes(places, event, modelImpl, hasShootoff) {\r\n\r\n\t\tconst order = modelImpl.priority || Object.keys(places);\r\n\t\torder.forEach(function (gradeCategory) {\r\n\t\t\t// var winnerScores = {};\r\n\t\t\tlet prizesRemaining = modelImpl.allocations[gradeCategory] || 0;\r\n\t\t\tlet previousWinner = null;\r\n\t\t\tconst eligibleCopy = [];\r\n\t\t\tfor (const placeGetter of Object.keys(places[gradeCategory])) {\r\n\t\t\t\tconst winner = places[gradeCategory][placeGetter];\r\n\t\t\t\twinner.prize = winner.prize || {};\r\n\t\t\t\tdelete winner.prize[gradeCategory];\r\n\t\t\t\tif (modelImpl.isEligible(winner.shooter, gradeCategory, places)) {\r\n\t\t\t\t\teligibleCopy.push(winner);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// remove them\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst nextWinner = places[gradeCategory][Number(placeGetter) + 1];\r\n\t\t\t\tlet totalDiffNext = nextWinner == null ? 1 : (winner.total + Number(winner.extra)) - (nextWinner.total + Number(nextWinner.extra));\r\n\t\t\t\tlet totalDiffPrev = previousWinner == null ? 1 : (previousWinner.total + Number(previousWinner.extra)) - (winner.total + Number(winner.extra));\r\n\t\t\t\tlet possible = false;\r\n\t\t\t\tlet winnerPlace = modelImpl.allocations[gradeCategory] - prizesRemaining + 1;\r\n\t\t\t\tif (totalDiffPrev === 0) {\r\n\t\t\t\t\ttotalDiffPrev = Shootoff.compare(event, previousWinner, winner, gradeCategory, { extras: true });\r\n\t\t\t\t\tif (totalDiffPrev === 0) {\r\n\t\t\t\t\t\tpossible = true;\r\n\t\t\t\t\t\twinnerPlace = previousWinner.prize[gradeCategory];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (totalDiffNext === 0) {\r\n\t\t\t\t\ttotalDiffNext = Shootoff.compare(event, winner, nextWinner, gradeCategory, { extras: true });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (prizesRemaining > 0 || possible) {\r\n\t\t\t\t\t// possibly a winner\r\n\t\t\t\t\t// cases => Clear winner if\r\n\t\t\t\t\t// hasn't already won prize +\r\n\t\t\t\t\t// prizesRemaining +\r\n\t\t\t\t\t// (shootoffComplete or total > next.total)\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// or cash divide and (prizesRemaining or total = previousWinner.total)\r\n\r\n\t\t\t\t\t// otherwise => Still in contention for a prize if\r\n\t\t\t\t\t// prizesRemaining or total = previousWinner.total\r\n\t\t\t\t\tif (!hasShootoff || (totalDiffNext !== 0 && totalDiffPrev !== 0)) {\r\n\t\t\t\t\t\tif (prizesRemaining > 0 || !hasShootoff) { // you get a prize\r\n\t\t\t\t\t\t\tpreviousWinner = winner;\r\n\t\t\t\t\t\t\twinner.prize[gradeCategory] = winnerPlace;\r\n\t\t\t\t\t\t\tmodelImpl.prizeTo(winner.shooter, gradeCategory);\r\n\t\t\t\t\t\t\tprizesRemaining--;\r\n\t\t\t\t\t\t} else { // you can't get a prize\r\n\t\t\t\t\t\t\tdelete winner.prize[gradeCategory];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// => Not a winner yet, but in contention, consumes a prize place\r\n\t\t\t\t\t\tpreviousWinner = winner;\r\n\t\t\t\t\t\twinner.prize[gradeCategory] = winnerPlace;\r\n\t\t\t\t\t\tprizesRemaining = Math.max(--prizesRemaining, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// if (prizesRemaining <= 0) break;\r\n\t\t\t}\r\n\t\t\tplaces[gradeCategory] = eligibleCopy;\r\n\t\t});\r\n\r\n\t}\r\n\r\n\treset(allocations) {\r\n\t\tthis.allocations = allocations || {};\r\n\t\tfor (const p of Object.keys(this.prizes)) {\r\n\t\t\tthis.prizes[p] = [];\r\n\t\t}\r\n\t}\r\n\t// @return the number of prizes remaining\r\n\tprizeTo(shooter, grade) {\r\n\t\tthis.prizes[grade] = this.prizes[grade] || [];\r\n\t\tthis.prizes[grade].push(shooter);\r\n\t\tif (this.allocations && this.allocations[grade]) {\r\n\t\t\treturn this.allocations[grade] - this.prizes[grade].length;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\t// default to give prize to # allocations\r\n\tisEligible(shooter, grade, places?) {\r\n\t\t// if (this.allocations == null || this.allocations[grade] == null) return false;\r\n\t\t// return (this.prizes[grade].length < this.allocations[grade]);\r\n\t\treturn true;\r\n\t}\r\n\tminimumDepth(grade, resolved) {\r\n\t\tif (this.allocations && this.allocations[grade] && this.allocations[grade] > 0) {\r\n\t\t\treturn this.allocations[grade];\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n}\r\n\r\n\r\nexport class BestPrizeOnly extends PrizeModel {\r\n\tconstructor(grades, categories) {\r\n\t\tsuper();\r\n\t\tthis.priority = ['OPEN'].concat(grades).concat(categories.filter((c) => c !== 'OPEN'));\r\n\t}\r\n\r\n\r\n\t// override default, not allowing the same shooter to win twice\r\n\t// it should be called in priority order for a given event\r\n\tisEligible(shooter, grade, places?) {\r\n\t\tconst searchBefore = this.priority.indexOf(grade);\r\n\t\tfor (let i = 0; i < searchBefore; i++) {\r\n\t\t\tif ((this.prizes[this.priority[i]] || []).indexOf(shooter) !== -1) { // you already have a prize you greedy s.o.b.\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tminimumDepth(grade, resolved) {\r\n\t\tif (this.allocations && this.allocations[grade] && this.allocations[grade] > 0) {\r\n\t\t\tswitch (grade) {\r\n\t\t\t\tcase 'OPEN': return this.allocations[grade];\r\n\t\t\t\tcase 'AA': case 'A': case 'B': case 'C':\r\n\t\t\t\t\treturn resolved ? this.allocations[grade] : this.allocations['OPEN'] + this.allocations[grade];\r\n\t\t\t\tcase 'VETERAN': case 'LADIES': case 'JUNIOR':\r\n\t\t\t\t\treturn resolved ? this.allocations[grade] : this.allocations['OPEN'] + this.allocations['AA'] + this.allocations[grade];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n}\r\n\r\nexport class CategoryExcludesGrade extends PrizeModel {\r\n\tconstructor(grades, categories) {\r\n\t\tsuper();\r\n\t\tthis.priority = ['OPEN'].concat(categories.filter((c) => c !== 'OPEN')).concat(grades);\r\n\r\n\t}\r\n\r\n\t// override default, cannot win a grade if you are eligible for category\r\n\tisEligible(shooterId, grade, places?) {\r\n\t\tif (grade === 'OPEN') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tif ((this.prizes.OPEN || []).indexOf(shooterId) !== -1) { // you already have a prize you greedy s.o.b.\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (DefaultCategories.all[grade]) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// it isn't OPEN or a CATEGORY, so we have to see if they are in the category results\r\n\t\tfor (const k in places) {\r\n\t\t\tif (k !== 'OPEN' && DefaultCategories.all[k] != null) {\r\n\t\t\t\tif (places[k].find((p) => p.shooter === shooterId)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t// we made it this far, so he mustn't be in category\r\n\t\treturn true;\r\n\t}\r\n}\r\n\r\n\r\nexport const createPrizeModel = (prizeModelEntity, grades: string[], categories: string[]) => {\r\n\tlet modelImpl: PrizeModel;\r\n\r\n\tif (prizeModelEntity) {\r\n\t\tswitch ((prizeModelEntity || {}).model) {\r\n\t\t\tcase 'best':\r\n\t\t\t\tmodelImpl = new BestPrizeOnly(grades, categories);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'notgrade':\r\n\t\t\t\tmodelImpl = new CategoryExcludesGrade(grades, categories);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tmodelImpl = new PrizeModel();\r\n\t\t}\r\n\r\n\t\tmodelImpl.reset(prizeModelEntity.allocations);\r\n\t} else {\r\n\t\tmodelImpl = new PrizeModel();\r\n\t\tmodelImpl.reset(null);\r\n\t}\r\n\treturn modelImpl;\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { AuthClientConfig, AuthService } from '@auth0/auth0-angular';\r\nimport { Browser } from '@capacitor/browser';\r\nimport { Capacitor } from '@capacitor/core';\r\nimport { BehaviorSubject, catchError, combineLatest, concat, concatMap, filter, firstValueFrom, map, mergeMap, of, shareReplay, switchMap, tap } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { WithId } from 'mongodb';\r\nimport * as urlParse from 'url-parse';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\nexport interface MCMSProfile extends WithId {\r\n \"given_name\": string;\r\n \"family_name\": string;\r\n \"email\": string;\r\n \"emailAddresses\": {\r\n email: string;\r\n verified: boolean\r\n }[];\r\n \"authUsernames\": string[],\r\n \"identities\": any[]\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileService {\r\n\r\n currentUserProfile$ = new BehaviorSubject(undefined);\r\n refresh$ = new BehaviorSubject(Math.random());\r\n authToken$ = new BehaviorSubject(undefined);\r\n emails$ = new BehaviorSubject([]);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private zone: NgZone,\r\n private authConfig: AuthClientConfig,\r\n private router: Router,\r\n ) {\r\n this.authService.getAccessTokenSilently().pipe(\r\n catchError(err => {\r\n const url = location.href;\r\n if (url?.startsWith(this.authConfig.get().authorizationParams.redirect_uri)) {\r\n // If the URL is an authentication callback URL..\r\n if (url.includes('state=') && (url.includes('error=') || url.includes('code='))) {\r\n return this.authService.handleRedirectCallback(url).pipe(\r\n concatMap(() => this.authService.getAccessTokenSilently()),\r\n catchError(err => {\r\n console.log(err);\r\n return of(undefined);\r\n }),\r\n )\r\n }\r\n }\r\n return of(undefined)\r\n })\r\n ).subscribe(token => {\r\n this.authToken$.next(token);\r\n }); \r\n\r\n combineLatest([\r\n this.refresh$, \r\n this.authToken$\r\n ]).pipe(\r\n mergeMap(([_refresh, token]) => {\r\n if (token) {\r\n return this.authService.user$;\r\n } else {\r\n return of(null);\r\n }\r\n }),\r\n concatMap(currentUser => { // change mergeMap to concatMap\r\n if (currentUser) {\r\n return this.http.get(`${environment.identity.api}/MCMSProfile?authUsernames=${currentUser.sub}&expand=identities:OrgMemberIdentity`)\r\n .pipe(\r\n concatMap(mcmsProfiles => { // change mergeMap to concatMap\r\n if (mcmsProfiles?.[0]) {\r\n return of(mcmsProfiles[0]);\r\n } else {\r\n return this.convertUserToProfile(currentUser);\r\n }\r\n })\r\n )\r\n } else {\r\n return of(null);\r\n }\r\n }),\r\n catchError(err => {\r\n console.warn('Got an error retrieving profile');\r\n console.error(err);\r\n return of(null)\r\n }),\r\n ).subscribe(this.currentUserProfile$);\r\n\r\n this.currentUserProfile$.pipe(\r\n mergeMap(p => {\r\n if (p) {\r\n return this.http.get(`${environment.identity.api}/email`);\r\n }\r\n return [];\r\n }),\r\n map(emails => {\r\n const distinctEmail = {};\r\n emails.forEach(e => {\r\n if (!distinctEmail[e.email] || !distinctEmail[e.email].verified) {\r\n distinctEmail[e.email] = e;\r\n }\r\n });\r\n return Object.values(distinctEmail);\r\n })\r\n ).subscribe(this.emails$);\r\n }\r\n\r\n login() {\r\n let openOptions;\r\n \r\n if (Capacitor.isNativePlatform()) {\r\n openOptions = {\r\n async openUrl(url: string) {\r\n await Browser.open({ url, windowName: '_self' });\r\n }\r\n };\r\n }\r\n\r\n firstValueFrom(\r\n this.authService.loginWithRedirect(\r\n openOptions\r\n )\r\n );\r\n }\r\n\r\n convertUserToProfile(currentUser) {\r\n let given_name = currentUser.given_name;\r\n let family_name = currentUser.family_name;\r\n if (!currentUser.given_name) {\r\n const space = currentUser.name.indexOf(' ');\r\n if (space > 0) {\r\n given_name = currentUser.name?.substring(0, space);\r\n family_name = currentUser.name.substring(space+1);\r\n } else {\r\n given_name = currentUser.name;\r\n }\r\n }\r\n const userProfile = {\r\n given_name,\r\n family_name,\r\n email: currentUser.email,\r\n authUsernames: [\r\n currentUser.sub\r\n ]\r\n }; \r\n return this.http.post(`${environment.identity.api}/MCMSProfile`, userProfile);\r\n }\r\n\r\n async logout() {\r\n const logoutConfig: any = {\r\n logoutParams: {}\r\n };\r\n let openUrl;\r\n if (Capacitor.isNativePlatform()) { \r\n logoutConfig.logoutParams.returnTo = `com.myclubsmyscores.claytargetapp://${environment.authorization.domain}/capacitor/com.myclubsmyscores.ClaytargetApp/callback`;\r\n logoutConfig.openUrl = async (url) => { await Browser.open({ url }); };\r\n } else {\r\n logoutConfig.logoutParams.returnTo = `${location.origin}`;\r\n // logoutConfig.openUrl = async (url) => { location.href = url; };\r\n }\r\n\r\n this.authService.logout(logoutConfig).subscribe(() => {\r\n //location.reload()\r\n });\r\n }\r\n\r\n async addEmailAddress(email, resend?) {\r\n await firstValueFrom(this.http.post(`${environment.identity.api}/email${resend ? '?resend=true' : ''}`, { email }));\r\n this.refresh$.next(Math.random());\r\n }\r\n\r\n async removeEmailAddress(id) {\r\n await firstValueFrom(this.http.delete(`${environment.identity.api}/email/${id}`));\r\n this.refresh$.next(Math.random());\r\n }\r\n\r\n checkAuth(url,close) {\r\n this.zone.run(async () => {\r\n if (url?.startsWith(this.authConfig.get().authorizationParams.redirect_uri)) {\r\n // If the URL is an authentication callback URL..\r\n if (url.includes('state=') &&\r\n (url.includes('error=') || url.includes('code='))\r\n ) {\r\n // Call handleRedirectCallback and close the browser\r\n this.authService\r\n .handleRedirectCallback(url).pipe(\r\n tap(() => close()),\r\n concatMap(() => this.authService.getAccessTokenSilently())\r\n ).subscribe(token => {\r\n this.authToken$.next(token);\r\n })\r\n } else {\r\n close();\r\n }\r\n } else {\r\n const targetUrl = urlParse(url);\r\n if (targetUrl) {\r\n this.router.navigateByUrl(targetUrl.pathname);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n async delete() {\r\n const profile = await firstValueFrom(this.currentUserProfile$);\r\n if (profile) {\r\n return await firstValueFrom(this.http.delete(`${environment.identity.api}/MCMSProfile/${profile._id}`));\r\n }\r\n }\r\n}","import { LoadingController } from '@ionic/angular';\r\nimport { Injectable } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\nimport { TotalsService } from './totals.service';\r\nimport { AwsService } from './aws.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ReplaySubject, Observable } from 'rxjs';\r\nimport { GetObjectCommand, GetObjectCommandInput } from \"@aws-sdk/client-s3\";\r\n\r\nexport interface IStructuredCompetition {\r\n\tcompetition?: any;\r\n\tdays: { [key: string]: any[]; };\r\n\tlegsByEvent?: { [key: string]: any[]; };\r\n\troundsByEvent?: { \r\n\t\t[eventId: string]: {\r\n\t\t\tlabel: string;\r\n\t\t\ttrapVisit: any;\r\n\t\t\tlegs: any[];\r\n\t\t}[];\r\n\t};\r\n\tnominationsByShooter?: { [key: string]: any; };\r\n\tresultsByEvent: any;\r\n\tsquadScores?: ISquadScores;\r\n\tbyType: any;\r\n\tbyId: any;\r\n}\r\n\r\nexport interface ISquadScores {\r\n\t[key: string]: { // eventId\r\n\t\tsquads?: any,\r\n\t\tsquadNumber: number,\r\n\t\tmembers?: {\r\n\t\t\tshooter: any,\r\n\t\t\tscores?: any[]\r\n\t\t}[],\r\n\t}[];\r\n}\r\n\r\n\r\n@Injectable()\r\nexport class ProgramService {\r\n\tprogram: any;\r\n\tstructured: IStructuredCompetition;\r\n\tsubject: ReplaySubject = new ReplaySubject(1);\r\n\tcomp: any;\r\n\tlastModified: string | Date;\r\n\tloading: boolean;\r\n\r\n\tconstructor(private totalsService: TotalsService, private aws: AwsService, private loadingCtrl: LoadingController) { }\r\n\r\n\r\n\tinit(comp: any): Observable {\r\n\t\tthis.comp = comp;\r\n\t\tthis.lastModified = undefined;\r\n\t\tthis.refresh();\r\n\t\treturn this.subject;\r\n\t}\r\n\r\n\tasync refresh() {\r\n\t\tconst loader = await this.loadingCtrl.create({\r\n\t\t\tmessage: 'Loading shoot information...',\r\n\t\t});\r\n\r\n\t\tthis.loading = true;\r\n\t\tloader.present();\r\n\r\n\t\tconst s3Options: any = {\r\n\t\t\tBucket: environment.competition.bucket,\r\n\t\t\tKey: `${environment.competition.path}/${this.comp._origin || ''}${this.comp.id}.json`\r\n\t\t};\r\n\t\tif (this.lastModified) {\r\n\t\t\ts3Options.IfModifiedSince = this.lastModified;\r\n\t\t}\r\n\t\ttry {\r\n\t\t\tconst data = await this.aws.s3.send(new GetObjectCommand(s3Options));\r\n\t\t\tconst body = await data.Body.transformToString();\r\n\t\t\tthis.program = JSON.parse(body);\r\n\t\t\tthis.lastModified = data.LastModified;\r\n\t\t\tthis.transformProgram();\r\n\t\t\tthis.subject.next(this.structured);\r\n\t\t\tthis.loading = false;\r\n\t\t\tloader.dismiss();\r\n\t\t\treturn this.structured;\r\n\t\t} catch (err) {\r\n\t\t\tif (err.$metadata.httpStatusCode === 304) {\r\n\t\t\t\tthis.subject.next({ ...this.structured });\r\n\t\t\t} else {\r\n\t\t\t\tthis.subject.error(err);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.loading = false;\r\n\t\tloader.dismiss();\r\n\t}\r\n\r\n\ttransformProgram() {\r\n\t\tthis.structured = {\r\n\t\t\tdays: {},\r\n\t\t\tcompetition: {},\r\n\t\t\tlegsByEvent: {},\r\n\t\t\troundsByEvent: {},\r\n\t\t\tnominationsByShooter: {},\r\n\t\t\tsquadScores: {},\r\n\t\t\tbyType: {\r\n\t\t\t\tSCORE: [],\r\n\t\t\t\tEVENT: [],\r\n\t\t\t\tSQUAD_ORDER: [],\r\n\t\t\t\tNOMINATION: [],\r\n\t\t\t\tEVENT_LEG: [],\r\n\t\t\t\tEVENT_EVENT_LEG: []\r\n\t\t\t},\r\n\t\t\tresultsByEvent: undefined,\r\n\t\t\tbyId: undefined\r\n\t\t};\r\n\r\n\t\tthis.structured.byId = this.program;\r\n\r\n\t\tfor (const id of Object.keys(this.program)) {\r\n\t\t\tconst entity = this.program[id];\r\n\t\t\tif (entity._deleted) {\r\n\t\t\t\tdelete this.program[id];\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tthis.structured.byType[entity._type] = this.structured.byType[entity._type] || [];\r\n\t\t\tthis.structured.byType[entity._type].push(entity);\r\n\r\n\t\t\tswitch (entity._type) {\r\n\t\t\t\tcase 'COMPETITION':\r\n\t\t\t\t\tthis.structured.competition = entity;\r\n\t\t\t\t\tif ((this.structured.competition.grades || []).length === 0) {\r\n\t\t\t\t\t\tthis.structured.competition.grades = ['AA', 'A', 'B', 'C'];\r\n\t\t\t\t\t} else if (typeof this.structured.competition.grades === 'string') {\r\n\t\t\t\t\t\tthis.structured.competition.grades = this.structured.competition.grades.split(',');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'EVENT':\r\n\t\t\t\t\tthis.handleEvent(entity);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'EVENT_EVENT_LEG':\r\n\t\t\t\t\tthis.handleEventLeg(entity);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (const id of Object.keys(this.program)) {\r\n\t\t\tconst entity = this.program[id];\r\n\r\n\t\t\tswitch (entity._type) {\r\n\t\t\t\tcase 'NOMINATION':\r\n\t\t\t\t\tthis.structured.nominationsByShooter[entity.shooter] = this.structured.nominationsByShooter[entity.shooter] || {};\r\n\t\t\t\t\tthis.structured.nominationsByShooter[entity.shooter][entity.event] = entity;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'SCORE':\r\n\t\t\t\t\tthis.handleScore(entity);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'SQUAD_ORDER':\r\n\t\t\t\t\tthis.handleSquadMember(entity);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\tfor (const eventId of Object.keys(this.structured.legsByEvent)) {\r\n\t\t\tconst legs = this.structured.legsByEvent[eventId];\r\n\t\t\tlegs.sort((a, b) => a.legOrder - b.legOrder);\r\n\t\t\tconst visits = {};\r\n\t\t\tconst rounds = [];\r\n\t\t\tfor (const eventLeg of legs) {\r\n\t\t\t\tconst leg = this.program[eventLeg.leg];\r\n\t\t\t\tif (leg) {\r\n\t\t\t\t\tif (!visits[leg.trapVisit]) {\r\n\t\t\t\t\t\trounds.push({\r\n\t\t\t\t\t\t\ttrapVisit: this.program[leg.trapVisit],\r\n\t\t\t\t\t\t\tlegs: [leg]\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\trounds[rounds.length - 1].legs.push(leg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.structured.roundsByEvent[eventId] = rounds.filter(r => { \r\n\t\t\t\treturn r.trapVisit?.visitNumber > 0 \r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.structured.resultsByEvent = this.totalsService.start(this.structured.competition, this.structured.byType);\r\n\r\n\t}\r\n\r\n\thandleEvent(event: any) {\r\n\t\t// events\r\n\r\n\t\tif (event.aggregating || event.eventNumber === 0) {\r\n\t\t\tthis.structured.days['COMBINED'] = (this.structured.days['COMBINED'] || []);\r\n\t\t\tthis.structured.days['COMBINED'].push(event);\r\n\t\t\tthis.structured.days['COMBINED'].sort((a, b) =>\r\n\t\t\t\t(a.eventNumber + (a.aggregating ? 100 : 0)) - (b.eventNumber + (b.aggregating ? 100 : 0))\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tconst evStart = moment.unix(event.startTime).format('YYYY-MM-DD');\r\n\t\t\tthis.structured.days[evStart] = this.structured.days[evStart] || [];\r\n\t\t\tthis.structured.days[evStart].push(event);\r\n\t\t\tthis.structured.days[evStart].sort((a, b) =>\r\n\t\t\t\t(a.eventNumber + (a.aggregating ? 100 : 0)) - (b.eventNumber + (b.aggregating ? 100 : 0))\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\thandleEventLeg(eventLeg) {\r\n\t\tthis.structured.legsByEvent[eventLeg.event] = this.structured.legsByEvent[eventLeg.event] || [];\r\n\t\tthis.structured.legsByEvent[eventLeg.event].push(this.program[eventLeg.id]);\r\n\t}\r\n\r\n\thandleSquadMember(squadMember) {\r\n\t\tconst squadId = squadMember.squad;\r\n\t\tconst squad = this.structured.byId[squadId];\r\n\t\tif (!squad) {\r\n\t\t\tconsole.warn(`Ophaned squad member: ${JSON.stringify(squadMember)}`);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (squad.shootOffQualifier && squad.shootOffQualifier.length > 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst trapVisitId = squad.trapVisit;\r\n\t\tconst squadLegs = this.structured.byType['EVENT_LEG'].filter(leg => leg.trapVisit === trapVisitId);\r\n\t\tconst legIds = squadLegs.map(l => l.id);\r\n\r\n\t\tfor (const eventId of Object.keys(this.structured.legsByEvent)) {\r\n\t\t\tconst eventLegs = this.structured.legsByEvent[eventId];\r\n\t\t\tfor (const i in eventLegs) {\r\n\t\t\t\tif (legIds.indexOf(eventLegs[i].leg) !== -1) {\r\n\t\t\t\t\tthis.structured.squadScores[eventId] = this.structured.squadScores[eventId] || [];\r\n\t\t\t\t\tthis.structured.squadScores[eventId][squad.squadNumber] = this.structured.squadScores[eventId][squad.squadNumber] || {\r\n\t\t\t\t\t\tsquads: {},\r\n\t\t\t\t\t\tsquadNumber: squad.squadNumber,\r\n\t\t\t\t\t\tmembers: []\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.structured.squadScores[eventId][squad.squadNumber].squads[squad.id] = squad;\r\n\t\t\t\t\tthis.structured.squadScores[eventId][squad.squadNumber].members[squadMember.squadPosition] = this.structured.squadScores[eventId][squad.squadNumber].members[squadMember.squadPosition] || {\r\n\t\t\t\t\t\tshooter: this.structured.byId[squadMember.shooter],\r\n\t\t\t\t\t\tscores: []\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thandleScore(s) {\r\n\t\tconst squadMemberId = s.squadOrder;\r\n\t\tconst squadMember = this.structured.byId[squadMemberId];\r\n\t\tif (squadMember == null) {\r\n\t\t\tconsole.warn(`Ophaned score: ${JSON.stringify(s)}`);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst squadId = squadMember.squad;\r\n\t\tconst squad = this.structured.byId[squadId];\r\n\t\tif (squad.shootOffQualifier && squad.shootOffQualifier.length > 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst legId = s.forLeg;\r\n\t\tconst legIndexByEvent = {};\r\n\t\tfor (const eventId of Object.keys(this.structured.legsByEvent)) {\r\n\t\t\tconst eventLegs = this.structured.legsByEvent[eventId];\r\n\t\t\tfor (const i in eventLegs) {\r\n\t\t\t\tif (eventLegs[i].leg === legId) {\r\n\t\t\t\t\tlegIndexByEvent[eventId] = Number(i);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (const eventId of Object.keys(legIndexByEvent)) {\r\n\t\t\tconst legIndex = legIndexByEvent[eventId];\r\n\t\t\tthis.structured.squadScores[eventId] = this.structured.squadScores[eventId] || [];\r\n\t\t\tthis.structured.squadScores[eventId][squad.squadNumber] = this.structured.squadScores[eventId][squad.squadNumber] || {\r\n\t\t\t\tsquads: {},\r\n\t\t\t\tsquadNumber: squad.squadNumber,\r\n\t\t\t\tmembers: []\r\n\t\t\t};\r\n\t\t\tthis.structured.squadScores[eventId][squad.squadNumber].squads[squad.id] = squad;\r\n\t\t\tthis.structured.squadScores[eventId][squad.squadNumber].members[squadMember.squadPosition] = this.structured.squadScores[eventId][squad.squadNumber].members[squadMember.squadPosition] || {\r\n\t\t\t\tshooter: this.structured.byId[squadMember.shooter],\r\n\t\t\t\tscores: []\r\n\t\t\t};\r\n\t\t\tthis.structured.squadScores[eventId][squad.squadNumber].members[squadMember.squadPosition].scores[Number(legIndex)] = s;\r\n\t\t}\r\n\t}\r\n\r\n\tget eventDays() {\r\n\t\tconst dates = Object.keys(this.structured.days).filter(d => d !== 'COMBINED');\r\n\t\tdates.sort();\r\n\t\treturn dates;\r\n\t}\r\n\r\n\tget days() {\r\n\t\tconst dates = Object.keys(this.structured.days);\r\n\t\tdates.sort();\r\n\t\treturn dates;\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { tap } from 'rxjs/operators';\r\nimport { IAssociationDefaults, ICompetition, IDisciplineRules, IEvent, ILegScore, IMembership, INomination, IRules, ITotalScore } from './datatypes';\r\nimport { get } from 'lodash';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DTLRules {\r\n\r\n calculators = {\r\n noop: (x) => x,\r\n zeroOrOne: (x) => x === 0 ? 0 : 1,\r\n times2: (x) => x * 2,\r\n times3: (x) => x * 3,\r\n points: (x) => x === 1 ? 3 : 2\r\n };\r\n\r\n Rules: IRules;\r\n DisciplineVsRules: IDisciplineRules;\r\n defaults: IAssociationDefaults;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n async load() {\r\n const rulesJson = await this.http\r\n .get('/assets/rules.json')\r\n .pipe(\r\n tap(json => Object.assign(this, json))\r\n ).toPromise();\r\n return this;\r\n }\r\n\r\n perfect(rules: string, targets: number) {\r\n const calculator = this.Rules[rules].perfect;\r\n if (!this.calculators[calculator]) {\r\n console.warn(`No calculator for ${rules}`);\r\n }\r\n return (this.calculators[calculator] || this.calculators.noop)(targets);\r\n }\r\n\r\n programRules(compOrEvent: ICompetition | IEvent) {\r\n return compOrEvent ? (this.DisciplineVsRules[compOrEvent.discipline]) : null;\r\n }\r\n\r\n eventRules(comp: ICompetition, event: IEvent) {\r\n return this.programRules(event) || this.programRules(comp);\r\n }\r\n\r\n disciplinesByOrg(org: string) {\r\n return Object.keys(this.DisciplineVsRules).filter(d => d.includes(`[${org}]`));\r\n }\r\n\r\n eventHandicap(comp: ICompetition, event: IEvent, membership: IMembership) {\r\n const matchedDiscipline = (event.discipline || comp.discipline).match(/^(.*)\\s+\\[(.*)\\]/);\r\n const [, discipline, org] = matchedDiscipline || ['', '', 'MCMS'];\r\n let hcpDiscipline = `${discipline} [${org}]`;\r\n\r\n // If discipline has grading instructions\r\n if (this.defaults[org]?.grading?.length > 0) {\r\n const er = this.eventRules(comp, event);\r\n let hcpRules = er;\r\n if (er.equivalent) {\r\n hcpDiscipline = `${er.equivalent} [${org}]`;\r\n hcpRules = this.DisciplineVsRules[hcpDiscipline];\r\n }\r\n\r\n // if the hcpSource is a skill\r\n if (er.legs.includes(event.disciplineMeta?.hcpSource)) {\r\n return membership.handicap?.skills?.[hcpDiscipline]?.[event.disciplineMeta?.hcpSource]?.grade;\r\n } else {\r\n const defaultSystem = this.defaults[org].grading.find(g => g.default);\r\n const gradingSystems = [this.defaults[org].grading.find(g => g.value === event.disciplineMeta?.hcpSource), defaultSystem, this.defaults[org].grading.find(g => g.value === defaultSystem.fallback)];\r\n for (const gradingSystem of gradingSystems) {\r\n if (gradingSystem?.value === 'discipline') {\r\n const gradeHcp = this.bestSkillGradeHandicap(hcpDiscipline, membership);\r\n if (gradeHcp.grade) {\r\n return `${gradeHcp.grade}${gradeHcp.handicap || ''}`;\r\n }\r\n }\r\n\r\n if (hcpRules.sources?.[gradingSystem?.value]) {\r\n const grade = get(membership, hcpRules.sources[gradingSystem.value].grade, '');\r\n const hcp = get(membership, hcpRules.sources[gradingSystem.value].handicap, '');\r\n return `${grade}${hcp}`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n // FGA, SCA, etc.\r\n if (membership?.handicap?.[discipline]) {\r\n return membership.handicap[discipline];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // tslint:disable-next-line: member-ordering\r\n static GRADE_ORDER = ['C', 'C5', 'C4', 'B', 'B3', 'B2', 'A', 'A1', 'AA', 'AA0'];\r\n bestSkillGradeHandicap(disciplineOrg, membership): { grade: string, handicap: string } {\r\n\r\n let grade;\r\n let handicap;\r\n // best of skills\r\n if (membership?.handicap?.skills?.[disciplineOrg]) {\r\n for (const skill of Object.keys(membership?.handicap?.skills?.[disciplineOrg])) {\r\n const skillHandicap = membership.handicap.skills[disciplineOrg][skill];\r\n if (skillHandicap.grade) {\r\n if (!grade || DTLRules.GRADE_ORDER.indexOf(skillHandicap.grade) > DTLRules.GRADE_ORDER.indexOf(grade)) {\r\n grade = skillHandicap.grade;\r\n }\r\n } else if (skillHandicap.meterage) {\r\n if (!handicap || skillHandicap.meterage > handicap) {\r\n handicap = skillHandicap.meterage;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {grade, handicap };\r\n }\r\n\r\n hasExtra(event: IEvent) {\r\n const disciplineData = this.DisciplineVsRules[event.discipline || event.comp.discipline];\r\n if (!disciplineData) { return false; }\r\n const hcpData = disciplineData.handicaps[event.handicap];\r\n return (hcpData || {}).extra;\r\n }\r\n\r\n autoExtra(event: IEvent) {\r\n const disciplineData = this.DisciplineVsRules[event.discipline || event.comp.discipline];\r\n if (!disciplineData) { return false; }\r\n const hcpData = disciplineData.handicaps[event.handicap];\r\n return (hcpData || {}).auto;\r\n }\r\n\r\n calculateExtra(event: IEvent, total: ITotalScore, score: ILegScore, nom: INomination) {\r\n const disciplineData = this.DisciplineVsRules[event.discipline || event.comp.discipline];\r\n if (!disciplineData) { return false; }\r\n const hcpData = disciplineData.handicaps[event.handicap];\r\n const matchedHCP = (nom?.handicap || '').match(/^([A-Z]+)([\\d\\.]*)$/);\r\n let extraScore = 0;\r\n if (matchedHCP) {\r\n extraScore = Number(matchedHCP[2]);\r\n }\r\n\r\n if (hcpData?.extra === 'score') {\r\n let addScore = 0;\r\n let addPossible = 0;\r\n let addExtra = 0;\r\n if (event.limit_to_possible === 'leg') {\r\n addExtra = Number(extraScore || 0);\r\n addScore = Number(score.score || 0);\r\n addExtra = Math.min(addExtra, Number(score.possible) - addScore);\r\n total.extra += addExtra;\r\n } else if (event.limit_to_possible === 'event') {\r\n total.counted.forEach(s => {\r\n addExtra += Number(extraScore || 0);\r\n addPossible += Number(s.possible || 0);\r\n addScore += Number(s.score || 0);\r\n });\r\n total.maxExtra = addExtra;\r\n addExtra = Math.min(addExtra, addPossible - addScore);\r\n total.extra = addExtra;\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nexport function RulesFactory(provider: DTLRules) {\r\n return () => provider.load();\r\n}\r\n","import { IEvent } from \"./datatypes\";\r\nimport { IProcessedEventScore } from \"./totals.service\";\r\n\r\nexport class Shootoff {\r\n\r\n // utility to help sort tied results\r\n\r\n\r\n // order based on number missed\r\n private static possibleOrdering(leftTotal: number, leftPossible: number, rightTotal: number, rightPossible: number) {\r\n // unsorted\r\n // check possibles\r\n let delta = 0;\r\n\r\n if (leftPossible === rightPossible) {\r\n delta = Math.min(rightTotal, rightPossible) - Math.min(leftTotal, leftPossible);\r\n } else { // they have different possibles\r\n const missedLeft = leftPossible === 0 ? Infinity : leftPossible - leftTotal;\r\n const missedRight = rightPossible === 0 ? Infinity : rightPossible - rightTotal;\r\n if (missedLeft <= 0 && missedRight > 0) { return -1; }\r\n if (missedRight <= 0 && missedLeft > 0) { return 1; }\r\n // neither are perfect - they need manual sorting.\r\n\r\n return rightPossible - leftPossible;\r\n }\r\n return delta;\r\n }\r\n\r\n private static roundOrdering(event: IEvent, left: IProcessedEventScore, right: IProcessedEventScore, filterBy: string, extras?) {\r\n // sort them round by round\r\n let delta = 0;\r\n let round = 1;\r\n let leftTotal = left.total;\r\n let rightTotal = right.total;\r\n let leftPossible = left.possible;\r\n let rightPossible = right.possible;\r\n\r\n if (extras) {\r\n if (event.limit_to_possible === 'leg') {\r\n leftTotal += Number(left.extra);\r\n rightTotal += Number(right.extra);\r\n } else if (event.limit_to_possible === 'event') {\r\n leftTotal += Number(left.maxExtra);\r\n rightTotal += Number(right.maxExtra);\r\n }\r\n }\r\n\r\n const leftOpenRounds = ((left.shootOffs || {}).OPEN || {}).rounds;\r\n const rightOpenRounds = ((right.shootOffs || {}).OPEN || {}).rounds;\r\n while (delta === 0 && (leftOpenRounds?.[round] || rightOpenRounds?.[round])) {\r\n if (leftOpenRounds?.[round]) {\r\n if (rightOpenRounds?.[round]) {\r\n const lr = leftOpenRounds?.[round];\r\n leftTotal += Number(lr.score);\r\n leftPossible += Number(lr.possible);\r\n const rr = rightOpenRounds?.[round];\r\n rightTotal += Number(rr.score);\r\n rightPossible += Number(rr.possible);\r\n delta = Shootoff.possibleOrdering(leftTotal, leftPossible, rightTotal, rightPossible);\r\n round++;\r\n } else {\r\n return -1;\r\n }\r\n } else {\r\n return 1;\r\n }\r\n }\r\n\r\n round = 1; // start iterating over [filterBy] rounds\r\n if (delta === 0 && filterBy !== 'OPEN') {\r\n const leftFilterRounds = ((left.shootOffs || {})[filterBy] || {}).rounds;\r\n const rightFilterRounds = ((right.shootOffs || {})[filterBy] || {}).rounds;\r\n while (delta === 0 && (leftFilterRounds?.[round] || rightFilterRounds?.[round])) {\r\n if (leftFilterRounds?.[round]) {\r\n if (rightFilterRounds?.[round]) {\r\n const lr = leftFilterRounds?.[round];\r\n leftTotal += Number(lr.score);\r\n leftPossible += Number(lr.possible);\r\n const rr = rightFilterRounds?.[round];\r\n rightTotal += Number(rr.score);\r\n rightPossible += Number(rr.possible);\r\n delta = Shootoff.possibleOrdering(leftTotal, leftPossible, rightTotal, rightPossible);\r\n round++;\r\n } else {\r\n return -1;\r\n }\r\n } else {\r\n return 1;\r\n }\r\n }\r\n }\r\n return delta;\r\n }\r\n\r\n public static compare(event: IEvent, left: IProcessedEventScore, right: IProcessedEventScore, filterBy: string, { guess, extras }: { guess?: boolean, extras?: boolean }) {\r\n // 1. Reduce by possibles\r\n let soDelta = 0;\r\n soDelta = Shootoff.roundOrdering(event, left, right, filterBy, extras);\r\n\r\n if (soDelta !== 0) {\r\n return soDelta;\r\n }\r\n\r\n // the winner is still unclear\r\n\r\n // handle quit and prize taken\r\n // if left shooter has quit\r\n if (left.placing && (typeof left.placing === 'object' && left.placing[filterBy] != null && isNaN(left.placing[filterBy]))) {\r\n if (!(right.placing && typeof right.placing === 'object' && right.placing[filterBy] != null && isNaN(right.placing[filterBy]))) {\r\n return 1;\r\n }\r\n // right shooter has quit\r\n } else if (right.placing && typeof right.placing === 'object' && right.placing[filterBy] != null && isNaN(right.placing[filterBy])) {\r\n return -1;\r\n }\r\n\r\n // left shooter has been confirmed a prize\r\n if (left.placing && left.placing[filterBy]) {\r\n if (right.placing && right.placing[filterBy]) {\r\n // they have both been confirmed, the diff should resolve it\r\n soDelta = left.placing[filterBy] - right.placing[filterBy];\r\n } else { // prize holder\r\n return -1;\r\n }\r\n // right shooter is confirmed\r\n } else if (right.placing && right.placing[filterBy]) {\r\n return 1;\r\n }\r\n\r\n // everything has failed.\r\n if (guess && left.shootOffs && right.shootOffs) {\r\n\r\n if (left.shootOffs[filterBy] && right.shootOffs[filterBy]) {\r\n // whoever has the highest possible is probably the winner\r\n soDelta = right.shootOffs[filterBy].possible - left.shootOffs[filterBy].possible;\r\n } else if (left.shootOffs.OPEN && right.shootOffs.OPEN) {\r\n soDelta = right.shootOffs.OPEN.possible - left.shootOffs.OPEN.possible;\r\n }\r\n }\r\n\r\n if (soDelta === 0 && guess) {\r\n soDelta = Number(left.shootOffPriority) - Number(right.shootOffPriority);\r\n }\r\n\r\n return soDelta;\r\n\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Purchases, PurchasesOfferings } from \"@awesome-cordova-plugins/purchases/ngx\";\r\nimport { Capacitor } from '@capacitor/core';\r\nimport { Platform } from '@ionic/angular';\r\nimport { BehaviorSubject, ReplaySubject, catchError, combineLatest, filter, firstValueFrom, map, mergeMap, of, switchMap } from 'rxjs';\r\nimport { ProfileService } from './profile.service';\r\nimport * as moment from 'moment';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nconst Unsubscribed = \"Unsubscribed\";\r\nconst Basic = \"Basic\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SubscriptionsService {\r\n\r\n activeSubscription$ = new BehaviorSubject(Unsubscribed);\r\n hasSubscription$ = new BehaviorSubject(false);\r\n apiKey$ = new ReplaySubject(1);\r\n\r\n purchasesReady$ = new ReplaySubject(1);\r\n\r\n constructor(\r\n private purchases: Purchases,\r\n private platform: Platform,\r\n private profileService: ProfileService,\r\n private http: HttpClient\r\n ) {\r\n this.platform.ready().then(() => {\r\n if (Capacitor.isNativePlatform()) {\r\n this.purchases.setDebugLogsEnabled(true); // Enable to get debug logs\r\n }\r\n if (this.platform.is('android')) {\r\n this.apiKey$.next('goog_GUiywXhBdNuxoOPEkzsMRrXlfyt');\r\n } else if (this.platform.is('ios')) {\r\n this.apiKey$.next('appl_ekymnbrnSDZxcZrTHyDHlKmjCEF');\r\n } else {\r\n this.apiKey$.next('strp_SXvQAVCqvxMbfxhxgBLfpPnxafu');\r\n }\r\n });\r\n\r\n combineLatest([\r\n this.profileService.currentUserProfile$,\r\n this.apiKey$\r\n ])\r\n .pipe(\r\n filter(([profile, _apiKey]) => !!profile),\r\n mergeMap(([profile, apiKey]) => {\r\n\r\n if (Capacitor.isNativePlatform()) {\r\n this.purchases.configureWith({\r\n apiKey: apiKey,\r\n appUserID: profile._id\r\n });\r\n return this.purchases.getCustomerInfo();\r\n } else {\r\n\r\n // access latest customerInfo\r\n return this.http.get(`https://api.revenuecat.com/v1/subscribers/${profile._id}`, { headers: { Authorization: `Bearer ${apiKey}`}})\r\n .pipe(\r\n map(rcatResponse => {\r\n if (rcatResponse['subscriber']?.entitlements?.Basic) {\r\n if (moment(rcatResponse['subscriber']?.entitlements?.Basic.expires_date).isAfter(moment())) {\r\n return {\r\n entitlements: {\r\n active: {\r\n Basic: rcatResponse['subscriber']?.entitlements?.Basic\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n }),\r\n )\r\n }\r\n })\r\n ).subscribe(this.purchasesReady$);\r\n\r\n this.purchasesReady$.pipe(\r\n map(customerInfo => {\r\n if(typeof customerInfo?.entitlements?.active?.['Basic'] !== \"undefined\") {\r\n return Basic\r\n }\r\n return Unsubscribed\r\n }),\r\n catchError(err => of(Unsubscribed)),\r\n ).subscribe(this.activeSubscription$);\r\n\r\n if (environment.production || Capacitor.isNativePlatform()) {\r\n this.activeSubscription$\r\n .pipe(\r\n map(subs => {\r\n return subs === 'Basic';\r\n })\r\n ).subscribe(this.hasSubscription$); \r\n } else {\r\n const isDevSubToggled = JSON.parse(window.localStorage.getItem('development-subscription-toggle'));\r\n this.hasSubscription$.next(isDevSubToggled);\r\n }\r\n }\r\n\r\n async getOfferings(): Promise {\r\n if (Capacitor.isNativePlatform()) {\r\n return firstValueFrom(\r\n this.purchasesReady$.pipe(\r\n mergeMap(() => this.purchases.getOfferings())\r\n )\r\n );\r\n } else {\r\n return firstValueFrom(\r\n combineLatest([\r\n this.profileService.currentUserProfile$,\r\n this.apiKey$\r\n ])\r\n .pipe(\r\n filter(([profile, _apiKey]) => !!profile),\r\n switchMap(([profile, apiKey]) => \r\n this.http.get(`https://api.revenuecat.com/v1/subscribers/${profile._id}/offerings`, { headers: { Authorization: `Bearer ${apiKey}`}})\r\n )\r\n )\r\n );\r\n\r\n }\r\n }\r\n\r\n async subscribeToMePlus() {\r\n try {\r\n const offerings = await this.purchases.getOfferings();\r\n \r\n const {customerInfo, productIdentifier} = await this.purchases.purchasePackage(offerings?.current?.availablePackages?.[0]);\r\n if (typeof customerInfo.entitlements.active.Basic !== \"undefined\") {\r\n // Unlock that great \"pro\" content\r\n this.activeSubscription$.next(Basic);\r\n }\r\n } catch (e) {\r\n if (!e.userCancelled) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { ProgramService } from './program.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class SummaryService {\r\n\t\r\n constructor(\r\n private http: HttpClient\r\n ) {}\r\n\r\n async published(programService, event?) {\r\n\t\tif (!programService.structured.competition?.id) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tlet url;\r\n\r\n\t\tif (event) {\r\n\t\t\turl = `https://reports.myclubsmyscores.com/${programService.structured.competition.id}/winner.${event.id}.html`;\r\n\t\t} else {\r\n\t\t\turl = `https://reports.myclubsmyscores.com/${programService.structured.competition.id}/winner.all.html`;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tconst response = await this.http.head(url).toPromise();\r\n\t\t\treturn url;\r\n\t\t} catch (error) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { DTLRules } from './rules';\r\nimport { PrizeModel, createPrizeModel } from './prizemodel.service';\r\nimport { ILegScore, INomination, ITotalScore } from './datatypes';\r\nimport { ScoreThenShootOff } from '../pipes/score-then-shootoff.pipe';\r\n\r\nexport type IProcessedEventScore = ITotalScore & {\r\n\tshootOffs: {\r\n\t\t[eligibility: string]: {\r\n\t\t\tscore: number;\r\n\t\t\textra: number;\r\n\t\t\tpossible: number;\r\n\t\t\trounds: (ILegScore & { extra: number })[];\r\n\t\t}\r\n\t};\r\n\tcounted: ILegScore[];\r\n\teligible: string[];\r\n\tgrade: string;\r\n\tprize?: number;\r\n\tplacing: any;\r\n\tnomination: INomination;\r\n };\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class TotalsService {\r\n\tentitiesByType: any;\r\n\ttotalsByShooter: {\r\n\t\t[id: string]: {\r\n\t\t\t[eventId: string]: IProcessedEventScore\r\n\t\t}\r\n\t} = {};\r\n\r\n\tconstructor(private rules: DTLRules) {\r\n\t}\r\n\r\n\t// todo - not the most efficient algorithm. Probably better to subscribe to changes and recalculate only what changes\r\n\tstart(competition, entitiesByType): { [eventId: string]: { [prizeFor: string]: IProcessedEventScore }} {\r\n\t\tconst events = entitiesByType.EVENT;\r\n\t\tconst eventLegs = entitiesByType.EVENT_EVENT_LEG;\r\n\t\t// let legs = entitiesByType.EVENT_LEG;\r\n\t\tconst scores = entitiesByType.SCORE;\r\n\t\tconst noms = entitiesByType.NOMINATION;\r\n\t\tconst totals = entitiesByType.TOTAL_SCORE;\r\n\t\tthis.entitiesByType = entitiesByType;\r\n\t\tthis.totalsByShooter = {};\r\n\r\n\t\tif (events && events.length > 0) {\r\n\t\t\t// filter scores\r\n\t\t\teventLegs.sort((a, b) => a.legOrder - b.legOrder);\r\n\t\t\tconst eventPromises = {};\r\n\t\t\tevents.forEach((ev) => {\r\n\t\t\t\tconst evNoms = (noms || []).filter((n) => n.event === ev.id);\r\n\t\t\t\tconst legIds = eventLegs.filter(el => el.event === ev.id).map((e) => e.leg);\r\n\t\t\t\tconst eventScores = (scores || []).filter((s) => legIds.indexOf(s.forLeg) !== -1);\r\n\t\t\t\teventScores.sort((a, b) => legIds.indexOf(a.forLeg) - legIds.indexOf(b.forLeg));\r\n\t\t\t\tconst eventTotals = (totals || []).filter(t => t.event === ev.id);\r\n\t\t\t\teventPromises[ev.id] = this.calculateTotals(ev, eventScores, eventTotals, evNoms, competition.grades, competition.categories);\r\n\t\t\t});\r\n\t\t\treturn eventPromises;\r\n\t\t}\r\n\t\treturn {};\r\n\t}\r\n\r\n\tcalculateTotals(event, scores, totals, noms, grades: string[], categories: string[]): { [prizeFor: string]: IProcessedEventScore } {\r\n\t\tconst calculatedTotals: {[prizeFor: string]: IProcessedEventScore } = this.leaders(event, scores, totals, noms, grades, categories);\r\n\t\tconst eventPrizeModel = this.entitiesByType.PRIZE_MODEL?.find(pm => pm.id === event.prizeModel);\r\n\t\tObject.keys(calculatedTotals).forEach(k => {\r\n\t\t\tconst v = calculatedTotals[k];\r\n\t\t\tcalculatedTotals[k] = new ScoreThenShootOff().transform(v, event, k);\r\n\t\t});\r\n\t\tconst prizeModelImpl = createPrizeModel(eventPrizeModel, grades, categories);\r\n\t\tPrizeModel.assignPrizes(calculatedTotals, event, prizeModelImpl, event.shootOff);\r\n\t\treturn calculatedTotals;\r\n\t}\r\n\r\n\tleaders(referenceEvent, scores, totals, noms, grades, categories) {\r\n\r\n\t\tconst placing = {};\r\n\t\tconst context = {\r\n\t\t\tplacing,\r\n\t\t\tnoms: {},\r\n\t\t\t// highGunByShooter: highGunByShooter,\r\n\t\t\tev: referenceEvent,\r\n\t\t\tgrades,\r\n\t\t\tcategories\r\n\t\t};\r\n\t\tif (context.categories?.indexOf('OPEN') === -1) {\r\n\t\t\tcontext.categories.push('OPEN');\r\n\t\t}\r\n\r\n\t\tfor (const t of totals) {\r\n\t\t\tif (t.shooter) {\r\n\t\t\t\tt.total = 0; t.possible = 0;\r\n\t\t\t\tt.extra = 0; t.kills = 0;\r\n\t\t\t\tt.shootOffs = {};\r\n\t\t\t\tt.counted = [];\r\n\t\t\t\tthis.totalsByShooter[t.shooter] = this.totalsByShooter[t.shooter] || {};\r\n\t\t\t\tthis.totalsByShooter[t.shooter][referenceEvent.id] = t;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst nomsByShooter = {};\r\n\t\tfor (const n of noms) {\r\n\t\t\tif (n.shooter) {\r\n\t\t\t\tnomsByShooter[n.shooter] = n;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\t// map to {:[scores]}\r\n\t\tfor (const s of scores) {\r\n\t\t\tconst squadOrder = this.entitiesByType.SQUAD_ORDER.find(so => so.id === s.squadOrder);\r\n\t\t\tif (squadOrder && squadOrder.shooter) {\r\n\t\t\t\tif (!this.totalsByShooter[squadOrder.shooter]?.[referenceEvent.id]) {\r\n\t\t\t\t\tthis.totalsByShooter[squadOrder.shooter] = this.totalsByShooter[squadOrder.shooter] || {};\r\n\t\t\t\t\tthis.totalsByShooter[squadOrder.shooter][referenceEvent.id] = {\r\n\t\t\t\t\t\tshooter: squadOrder.shooter,\r\n\t\t\t\t\t\tevent: referenceEvent.id,\r\n\t\t\t\t\t\ttotal : 0, possible : 0,\r\n\t\t\t\t\t\textra : 0, kills : 0,\r\n\t\t\t\t\t\tshootOffs: {},\r\n\t\t\t\t\t\tcounted: []\r\n\t\t\t\t\t} as IProcessedEventScore;\r\n\t\t\t\t\tObject.assign(this.totalsByShooter[squadOrder.shooter][referenceEvent.id], {\r\n\t\t\t\t\t\tshootOffs: {},\r\n\t\t\t\t\t\tcounted: [],\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tthis.accumulate(this.totalsByShooter[squadOrder.shooter][referenceEvent.id], s, nomsByShooter[squadOrder.shooter]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tcontext.noms = nomsByShooter;\r\n\t\treturn this.processScores(this.totalsByShooter, context);\r\n\t}\r\n\r\n\tprocessScores(totalsByShooter: {[shooterId: string]: { [eventId: string]: IProcessedEventScore}}, context): { [prizeFor: string]: IProcessedEventScore } {\r\n\t\tconst places = {};\r\n\r\n\t\tcontext.categories?.forEach( (cat) => places[cat] = []);\r\n\t\t(context.grades || []).forEach((g) => places[g] = []);\r\n\r\n\t\tcontext.placing[context.ev.id] = places;\r\n\t\t// I now have a sorted list of scores for this event\r\n\t\tObject.keys(totalsByShooter).forEach((shooterId) => {\r\n\t\t\tconst ts = totalsByShooter[shooterId]?.[context.ev.id];\r\n\t\t\tconst nom = context.noms[shooterId];\r\n\t\t\tif (ts) {\r\n\t\t\t\tlet grade;\r\n\t\t\t\tlet eligible = [];\r\n\t\t\t\tif (nom != null) {\r\n\t\t\t\t\tgrade = ((nom.handicap || '').match(/^([A-Z]+)([\\d\\.]*)$/) || ['', null, null])[1];\r\n\t\t\t\t\tif (typeof nom.category === 'string') { nom.category = nom.category.split(','); }\r\n\t\t\t\t\teligible = (nom.category || []).concat([grade]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tObject.keys(eligible).forEach(x => {\r\n\t\t\t\t\tconst p = eligible[x];\r\n\t\t\t\t\tif (places.hasOwnProperty(p)) {\r\n\t\t\t\t\tts.eligible = eligible;\r\n\t\t\t\t\tts.grade = grade;\r\n\t\t\t\t\tts.nomination = nom;\r\n\t\t\t\t\tplaces[p].push(ts);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn places;\r\n\t}\r\n\r\n\taccumulate(t: IProcessedEventScore, s: ILegScore, nom: INomination) {\r\n\r\n\t\tconst squadOrder = this.entitiesByType.SQUAD_ORDER.find(so => so.id === s.squadOrder);\r\n\t\tif (squadOrder != null && squadOrder.squad != null) {\r\n\t\t\tconst squad = this.entitiesByType.SQUAD.find(sq => sq.id === squadOrder.squad);\r\n\t\t\tconst trapVisit = this.entitiesByType.TRAP_VISIT.find(tv => tv.id === squad.trapVisit);\r\n\t\t\tconst event = this.entitiesByType.EVENT.find(ev => ev.id === t.event);\r\n\r\n\t\t\tconst qualifier = squad.shootOffQualifier;\r\n\t\t\tconst round = trapVisit.shootoffRound;\r\n\r\n\t\t\tt.counted.push(s);\r\n\t\t\tif (qualifier && qualifier.length > 0) {\r\n\t\t\t\t// This is shootoff score and should be grouped with it's category/grade\r\n\t\t\t\tconst shootoffSum = t.shootOffs[qualifier] || {\r\n\t\t\t\t\tkills: 0, score: 0, extra: 0, possible: 0,\r\n\t\t\t\t\trounds: []\r\n\t\t\t\t};\r\n\t\t\t\tshootoffSum.score += Number(s.score);\r\n\t\t\t\tshootoffSum.possible += Number(s.possible);\r\n\r\n\t\t\t\tshootoffSum.rounds[Number(round)] = shootoffSum.rounds[Number(round)] || {\r\n\t\t\t\t\tscore: 0, possible: 0, extra: 0, kills: 0\r\n\t\t\t\t};\r\n\t\t\t\tshootoffSum.rounds[Number(round)].score += Number(s.score);\r\n\t\t\t\tshootoffSum.rounds[Number(round)].possible += Number(s.possible);\r\n\t\t\t\tshootoffSum.rounds[Number(round)].kills += Number(s.kills);\r\n\r\n\t\t\t\tif (this.rules.hasExtra(event) === 'score') {\r\n\t\t\t\t\tshootoffSum.extra += Number(s.extraScore || 0);\r\n\t\t\t\t\tshootoffSum.rounds[Number(round)].extra += Number(s.extraScore || 0);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tt.shootOffs[qualifier] = shootoffSum;\r\n\t\t\t} else {\r\n\t\t\t\tt.total += Number(s.score);\r\n\t\t\t\tthis.rules.calculateExtra(event, t, s, nom);\r\n\t\t\t\tt.possible += Number(s.possible);\r\n\t\t\t\tt.kills += Number(s.kills);\r\n\t\t\t\t// TODO how to choose which squad is your shootoff priority??\r\n\t\t\t\tt.shootOffPriority = squad.squadNumber + '.' + (squadOrder.squadPosition + 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, catchError, combineLatest, delay, filter, firstValueFrom, map, mergeMap, of, tap, zip } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NotificationService } from '../tabs/me-tab/me/notification.service';\r\nimport { FavouritesProvider } from './favourites';\r\nimport { SubscriptionsService } from './subscriptions.service';\r\nimport { ProfileService } from './profile.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n identities$ = new BehaviorSubject(undefined);\r\n pendingClaims$ = new BehaviorSubject(undefined);\r\n isDevelopment$ = new BehaviorSubject(false);\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private notifications: NotificationService,\r\n private favourites: FavouritesProvider,\r\n private profileService: ProfileService,\r\n private subscriptions: SubscriptionsService\r\n ) {\r\n this.isDevelopment$.next(!environment.production);\r\n\r\n this.profileService.currentUserProfile$.pipe(\r\n map(profile => {\r\n return profile ? profile.identities || [] : null;\r\n }),\r\n tap((p) => console.log(p || 'Not logged in')),\r\n tap(ids => {\r\n const linked = ids?.map(m => m.membershipId);\r\n if (linked?.length) {\r\n this.favourites.clearLinkedMemberships(linked);\r\n }\r\n })\r\n ).subscribe(this.identities$);\r\n\r\n combineLatest([\r\n this.profileService.refresh$,\r\n this.profileService.currentUserProfile$\r\n ]).pipe(\r\n catchError(err => { console.warn(err); return of([null, null]) }),\r\n filter(([, profile]) => !!profile),\r\n mergeMap(() => this.http.get(`${environment.identity.api}/OrgMemberIdentity/Claim`)),\r\n map((claims: any[]) => claims.filter(c => !c.isUnclaiming))\r\n ).subscribe(this.pendingClaims$);\r\n\r\n \r\n this.notifications.messageSubject.subscribe(this.profileService.refresh$);\r\n\r\n }\r\n\r\n getMemberShoots() {\r\n return combineLatest([\r\n this.identities$.pipe(tap(() => console.log('Identities'))), \r\n this.subscriptions.hasSubscription$.pipe(tap(() => console.log('Subscription'))), \r\n ]).pipe(\r\n mergeMap(([identities, subscribed]) => {\r\n if (subscribed && identities?.length > 0) {\r\n return zip([\r\n ...identities?.map(shooterId => this.http.get(`${environment.competition.api}/byShooter/${shooterId.competingAs}?type=NOMINATION`)),\r\n ...identities?.map(shooterId => this.http.get(`${environment.competition.api}/byShooter/${shooterId.competingAs}?type=PRE_NOMINATION`))\r\n ]);\r\n } else {\r\n return of([]);\r\n }\r\n }),\r\n map(nominations => {\r\n const byCompId = {};\r\n\r\n nominations.map(a => a.Items)\r\n .forEach(arr => arr.forEach(nom => {\r\n if (!nom._deleted) {\r\n byCompId[nom.comp] = byCompId[nom.comp] || [];\r\n byCompId[nom.comp].push(nom)\r\n }\r\n }));\r\n\r\n return byCompId;\r\n }),\r\n catchError(err => { console.warn(err); return of({})})\r\n );\r\n }\r\n\r\n async updateCurrentUserProfile(details) {\r\n const currentUser = await firstValueFrom(this.profileService.currentUserProfile$);\r\n Object.assign(currentUser, details);\r\n\r\n await firstValueFrom(this.http.put(`${environment.identity.api}/MCMSProfile/${currentUser._id}`, details));\r\n // this.profileService.refresh$.next(Math.random());\r\n }\r\n\r\n async deleteIdentity(identityId: string) {\r\n const currentUser = await firstValueFrom(this.profileService.currentUserProfile$);\r\n\r\n await firstValueFrom(this.http.patch(`${environment.identity.api}/MCMSProfile/${currentUser._id}`, {\r\n $pull: { identities: `oid:${identityId}` }\r\n }));\r\n this.profileService.refresh$.next(Math.random());\r\n }\r\n\r\n async deleteClaim(claimId) {\r\n await firstValueFrom(\r\n this.http.delete(`${environment.identity.api}/OrgMemberIdentity/Claim/${claimId}`)\r\n );\r\n this.profileService.refresh$.next(Math.random());\r\n }\r\n\r\n async updateIdentities(details) {\r\n const identities = await firstValueFrom(this.identities$);\r\n\r\n identities.forEach(async (identity) => {\r\n Object.assign(identity, details);\r\n\r\n await firstValueFrom(\r\n this.http.put(`${environment.identity.api}/OrgMemberIdentity/${identity._id}`, identity)\r\n );\r\n });\r\n }\r\n\r\n async setIdentityPermission(identity, permission) {\r\n identity.permission = identity.permission || {};\r\n Object.assign(identity.permission, permission);\r\n\r\n await firstValueFrom(\r\n this.http.put(`${environment.identity.api}/OrgMemberIdentity/${identity._id}/permission`, { permission: identity.permission})\r\n );\r\n }\r\n\r\n getMCMSMembership(identityId) {\r\n return this.http.get(`${environment.identity.api}/MCMSMembership/${identityId}`);\r\n }\r\n\r\n linkMembership(connectionDetails: MembershipLinkRequest) {\r\n return this.http.post(`${environment.identity.api}/OrgMemberIdentity/Claim`, connectionDetails)\r\n .pipe(\r\n tap(() => {\r\n this.profileService.refresh$.next(Math.random());\r\n })\r\n );\r\n }\r\n\r\n sendMembershipUnlinkRequest(connectionDetails: MembershipLinkRequest) {\r\n return this.http.post(`${environment.identity.api}/OrgMemberIdentity/Unlink`, connectionDetails)\r\n .pipe(\r\n tap(() => {\r\n this.profileService.refresh$.next(Math.random());\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport interface MembershipLinkRequest {\r\n organisation: string,\r\n association: string,\r\n membershipId: string,\r\n email: string\r\n}\r\n\r\nexport interface Membership {\r\n _id: string;\r\n association: string;\r\n organisation: string;\r\n membershipId: string;\r\n competingAs: string;\r\n firstName: string;\r\n lastName: string;\r\n contact: any;\r\n permission: any;\r\n}\r\n\r\nexport interface RawCompetitionData {\r\n Items: any[],\r\n Count: string,\r\n ScannedCount: string\r\n} ","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ProgramService } from '../../services/program.service';\r\nimport { ModalController } from '@ionic/angular';\r\nimport { DTLRules } from 'src/app/services/rules';\r\nimport { IProcessedEventScore, TotalsService } from 'src/app/services/totals.service';\r\n\r\n@Component({\r\n\tselector: 'app-shooter',\r\n\ttemplateUrl: './shooter.component.html',\r\n\tstyleUrls: ['shooter.component.scss']\r\n})\r\nexport class ShooterComponent implements OnInit {\r\n\t@Input()\r\n\tshooter: any;\r\n\r\n\ttotalsByEvent: { [eventId: string]: IProcessedEventScore } = {};\r\n\tscoresByLeg: any = {};\r\n\tsquadsByEvent: any = {};\r\n\tsquadByTrapVisit: any = {};\r\n\r\n\tconstructor(\r\n\t\tpublic programService: ProgramService,\r\n\t\tprivate totalsService: TotalsService,\r\n\t\tprivate modal: ModalController,\r\n\t\tprivate rules: DTLRules\r\n\t) {}\r\n\r\n\tngOnInit() {\r\n\t\tconst squadOrders: any = {};\r\n\t\tif (this.shooter) {\r\n\t\t\tthis.programService.structured.byType.SQUAD_ORDER.forEach(m => {\r\n\t\t\t\tif (m.shooter === this.shooter.id) {\r\n\t\t\t\t\tsquadOrders[m.id] = m;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.programService.structured.byType.SCORE.forEach(score => {\r\n\t\t\tif (squadOrders[score.squadOrder]) {\r\n\t\t\t\tthis.scoresByLeg[score.forLeg] = score;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.programService.structured.byType.EVENT.forEach(event => {\r\n\t\t\tthis.totalsByEvent[event.id] = this.totalsService.totalsByShooter[this.shooter.id]?.[event.id];\r\n\r\n\t\t\t(this.programService.structured.roundsByEvent[event.id] || []).forEach(r => {\r\n\r\n\t\t\t\tObject.keys(squadOrders).forEach(sqOId => {\r\n\t\t\t\t\tconst squadMember = squadOrders[sqOId];\r\n\t\t\t\t\tconst squad = this.programService.structured.byId[squadMember.squad];\r\n\t\t\t\t\tif (squad && squad.trapVisit === r.trapVisit.id) {\r\n\t\t\t\t\t\tthis.squadByTrapVisit[squad.trapVisit] = squad;\r\n\t\t\t\t\t\tthis.squadsByEvent[event.id] = `${squad.squadNumber}.${squadMember.squadPosition + 1}`;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\t// if (this.rules.hasExtra(event)) {\r\n\t\t\t// \tthis.totalsByEvent[event.id].total += Number(this.totalsByEvent[event.id].extra);\r\n\t\t\t// }\r\n\t\t});\r\n\t}\r\n\r\n\r\n\tdismiss() {\r\n\t\tthis.modal.dismiss();\r\n\t}\r\n\r\n\tget days(): string[] {\r\n\t\tconst arr: string[] = Object.keys(this.programService.structured.days);\r\n\t\tarr.sort((a, b) => {\r\n\t\t\tif (a === 'COMBINED') { return 1; }\r\n\t\t\tif (b === 'COMBINED') { return -1; }\r\n\t\t\treturn a.localeCompare(b);\r\n\t\t});\r\n\t\treturn arr;\r\n\t}\r\n\r\n\tshowExtra(event): string | boolean {\r\n\t\treturn this.rules.hasExtra(event);\r\n\t}\r\n}\r\n","\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t{{shooter | preferredLast}}\r\n\t\r\n\r\n\r\n\r\n\t

This participant has self nominated and is waiting to be accepted into the program.

\r\n\t

While self nomination may open early, clubs may choose not to process until close to the start time.

\r\n
\r\n\r\n\r\n\t\r\n\r\n\t\t

{{day == 'COMBINED' ? 'Combined' : day | date:'fullDate'}}

\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{ event.aggregating == true ? 'Combined' : 'Event ' + event.eventNumber}}{{event.name ? \" - \" + event.name : \"\"}}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{programService.structured.nominationsByShooter[shooter.id][event.id]?.handicap}} \r\n\t\t\t\t\t\t\t{{programService.structured.nominationsByShooter[shooter.id][event.id]?.category?.join(\" \")}}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
Squad {{squadsByEvent[event.id]}}
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tRound {{$i + 1}}:\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t {{leg.targets}}{{leg.rules === 'DR' ? 'PR' : 'T' }} {{leg.rules}}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t\t\t 0\">{{squadByTrapVisit[round.trapVisit.id]?.trap}}\r\n\t\t\t\t\t\t\t\t\t\t @ {{squadByTrapVisit[round.trapVisit.id]?.metadata?.time}}\r\n\t\t\t\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{scoresByLeg[leg.id]?.score}} / {{scoresByLeg[leg.id]?.possible}}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tEvent Total\r\n\t\t\t\t\t\t{{totalsByEvent[event.id] | showTotal:event:{filter: 'OPEN', display: 'no-shootoff'} }}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tShoot Off ({{shootOff.key}}):\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{{score?.score}} / {{score?.possible}}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\r\n
","import { Component, OnInit, OnDestroy, ViewChild, Input } from '@angular/core';\r\nimport { IStructuredCompetition, ProgramService } from 'src/app/services/program.service';\r\nimport { Subscription, combineLatest, Observable, firstValueFrom } from 'rxjs';\r\nimport { IonRefresher, MenuController, ModalController, Platform, PopoverController } from '@ionic/angular';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ShooterComponent } from '../../shooters/shooter.component';\r\nimport { AdResponse, AdService } from 'src/app/services/ad.service';\r\nimport { Browser } from '@capacitor/browser';\r\nimport { SummaryService } from 'src/app/services/summary.service';\r\nimport { AuthService } from '@auth0/auth0-angular';\r\nimport { UserService } from 'src/app/services/user.service';\r\nimport { SubscriptionsService } from 'src/app/services/subscriptions.service';\r\nimport { ConnectionsService } from 'src/app/services/connections.service';\r\nimport { IConnection } from 'src/app/services/connection.types';\r\nimport { FirebaseAnalytics } from '@capacitor-firebase/analytics';\r\n\r\ndeclare var gtag;\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-trap-popover',\r\n template: `\r\n \r\n \r\n \r\n {{visitX?.squad.metadata?.time}}\r\n 0\">  {{visitX?.squad.trap}}\r\n \r\n \r\n \r\n `\r\n})\r\nexport class TrapPopover {\r\n @Input()\r\n visitSquads;\r\n}\r\n\r\n@Component({\r\n selector: 'app-event-squads',\r\n templateUrl: './event-squads.component.html',\r\n styleUrls: ['./event-squads.component.scss'],\r\n})\r\nexport class EventSquadsComponent implements OnInit, OnDestroy {\r\n\r\n structured: IStructuredCompetition;\r\n event: any;\r\n subscription: Subscription;\r\n refreshing: IonRefresher;\r\n squadMembers: {\r\n squadNumber: number;\r\n squadPosition: number;\r\n isMe: boolean;\r\n isConnection: boolean;\r\n scores: any;\r\n shooter: any;\r\n total: any;\r\n squad: any;\r\n visitSquads: any[];\r\n }[] = [];\r\n \r\n meFilter: boolean = false;\r\n updatingSquads: boolean = true;\r\n\r\n ad: AdResponse;\r\n ready$: Observable<[IStructuredCompetition, any]>;\r\n\twinnersReport: Promise;\r\n\r\n @ViewChild(IonRefresher, { static: false})\r\n\trefresher: IonRefresher;\r\n\r\n constructor(\r\n public programSvc: ProgramService,\r\n public menu: MenuController,\r\n public user: UserService,\r\n public auth: AuthService,\r\n private modal: ModalController,\r\n private popoverController: PopoverController,\r\n private route: ActivatedRoute,\r\n private adService: AdService,\r\n private summaryService: SummaryService,\r\n public subscriptionService: SubscriptionsService,\r\n private connectionService: ConnectionsService,\r\n private platform: Platform\r\n ) {\r\n this.ready$ = combineLatest([\r\n this.programSvc.subject,\r\n this.route.paramMap\r\n ]);\r\n }\r\n\r\n async ionViewWillEnter() {\r\n\t\tthis.refreshAd();\r\n\t}\r\n\r\n ionViewDidEnter() {\r\n this.refresher.disabled = false;\r\n }\r\n\r\n ionViewWillLeave() {\r\n this.refresher.disabled = true;\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.ready$.subscribe(async ([p, pathParams]) => {\r\n this.structured = p;\r\n\r\n this.event = this.programSvc.structured.byId[pathParams.get('eventId')];\r\n this.squadMembers = [];\r\n\r\n this.updateSquadMembers();\r\n\r\n if (this.refreshing) {\r\n this.refreshing.complete();\r\n }\r\n });\r\n\r\n this.winnersReport = this.summaryService.published(this.programSvc, this.event);\r\n }\r\n\r\n swapMeFilter() {\r\n this.meFilter = !this.meFilter;\r\n\r\n this.updateSquadMembers();\r\n }\r\n\r\n async updateSquadMembers() {\r\n this.updatingSquads = true;\r\n\r\n this.squadMembers = [];\r\n\r\n const isAuthed = await firstValueFrom(this.auth.isAuthenticated$);\r\n\r\n const isSubscribed = isAuthed && (await firstValueFrom(this.subscriptionService.activeSubscription$)) === 'Basic';\r\n\t\tconst connections = isAuthed && await firstValueFrom(this.connectionService.followedByMe$);\r\n\r\n if (this.structured && this.event && this.structured.squadScores[this.event.id]) {\r\n for (const squadMeta of this.structured.squadScores[this.event.id]) {\r\n if (squadMeta && squadMeta.members) {\r\n for (const position of Object.keys(squadMeta.members)) {\r\n const member = squadMeta.members[position];\r\n const squad = Object.values(squadMeta.squads).find((sq: any) => sq.squadNumber = squadMeta.squadNumber);\r\n const isMe = !isSubscribed ? false : (this.user.identities$.value || []).find((identity) => { return identity.competingAs === member.shooter?.id; }) !== undefined;\r\n const isConnection = !isSubscribed ? false : (connections || []).find((connection: IConnection) => {\r\n return Object.entries(connection.permissions).some(([_association, byAssociation]) => {\r\n // TODO only if the permission is for the comp's association\r\n return byAssociation?.[member.shooter?.id] && byAssociation?.[member.shooter?.id]?.nomination;\r\n })\r\n }) !== undefined;\r\n\r\n if (!this.meFilter || (this.meFilter && (isMe || isConnection))) {\r\n this.squadMembers.push({\r\n squadNumber: squadMeta.squadNumber,\r\n squadPosition: Number(position),\r\n scores: member.scores,\r\n shooter: member.shooter,\r\n total: this.sum(member.scores),\r\n isMe,\r\n isConnection,\r\n squad,\r\n visitSquads: Object.values(squadMeta.squads).map((sq: any) => {\r\n return {\r\n squad: sq,\r\n visit: this.programSvc.structured.byId[sq.trapVisit]\r\n };\r\n }).sort((a, b) => a.visit.visitNumber - b.visit.visitNumber)\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.updatingSquads = false;\r\n }\r\n\r\n reorderScoresByLeg(scores: any, eventId: string) {\r\n return scores.sort((a, b) => {\r\n const legsForEvent = this.structured.legsByEvent[eventId];\r\n\r\n const legOrderA = legsForEvent?.find((leg) => { return leg.leg === a.forLeg })?.legOrder as number;\r\n const legOrderB = legsForEvent?.find((leg) => { return leg.leg === b.forLeg })?.legOrder as number;\r\n\r\n if (legOrderA && legOrderB) {\r\n if (legOrderA > legOrderB) { return 1; }\r\n else if (legOrderB > legOrderA) { return -1; }\r\n }\r\n\r\n return 0;\r\n });\r\n }\r\n\r\n async refreshAd() {\r\n const [p, params] = await firstValueFrom(this.ready$);\r\n\r\n\t\tthis.ad = await this.adService.getAd('app-program-squads', p.competition.host, p.competition.id);\r\n if (this.platform.is('ios')) {\r\n\t\t\tFirebaseAnalytics.logEvent({\r\n\t\t\t name: 'ad_view_squads',\r\n\t\t\t params: { \r\n\t\t\t\t'event_category': p.competition.host,\r\n\t\t\t\t'event_label': p.competition.id,\r\n\t\t\t\tvalue: this.ad.id,\r\n\t\t\t\tnon_interaction: true\r\n\r\n\t\t\t },\r\n\t\t\t});\r\n\t\t} else { \r\n gtag('event', 'ad_view_squads', {\r\n 'event_category': p.competition.host,\r\n 'event_label': p.competition.id,\r\n value: this.ad.id,\r\n non_interaction: true\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n squadHeaders(record, recordIndex, records) {\r\n if (recordIndex === 0 || records[recordIndex].squadNumber !== records[recordIndex - 1].squadNumber) {\r\n return records[recordIndex].visitSquads;\r\n }\r\n return null;\r\n }\r\n\r\n sum(scores) {\r\n let total = 0;\r\n let possible = 0;\r\n let extra = 0;\r\n scores.forEach(s => {\r\n total += Number(s.score);\r\n possible += Number(s.possible);\r\n extra += Number(s.extraScore);\r\n });\r\n return {\r\n total: total,\r\n possible: possible,\r\n extra: extra\r\n };\r\n }\r\n\r\n async doRefresh($event) {\r\n await this.programSvc.refresh();\r\n $event.target.complete();\r\n // this.refreshing = refresher;\r\n }\r\n\r\n\r\n\tasync showShooter(shooter) {\r\n\t\tconst shooterModal = await this.modal.create({\r\n\t\t\tcomponent: ShooterComponent,\r\n\t\t\tcomponentProps: {\r\n\t\t\t\tshooter\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tawait shooterModal.present();\r\n }\r\n\r\n async toggleTraps($event, visitSquads) {\r\n const popover = await this.popoverController.create({\r\n component: TrapPopover,\r\n componentProps: {\r\n visitSquads\r\n },\r\n event: $event,\r\n translucent: true\r\n });\r\n return await popover.present();\r\n }\r\n\r\n openAd() {\r\n\t\tBrowser.open({ url: this.ad.actions.clickThrough });\r\n\t}\r\n\r\n}\r\n\r\n","\r\n \r\n \r\n {{'Event '+ event?.eventNumber}}\r\n \r\n \r\n \r\n {{event?.name || ''}}\r\n \r\n \r\n Winners (Published)\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Visit {{$i+1}}:  \r\n \r\n {{leg.targets}}{{leg.rules}} \r\n \r\n  {{round.label}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Squad {{visitSquads[0].squad.squadNumber}}\r\n \r\n 0\">\r\n \r\n
\r\n \r\n
0\">\r\n Visit {{i + 1}}: \r\n  \r\n {{meta?.time}} \r\n 0\">@{{meta.trap}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n  \r\n \r\n\r\n \r\n {{member.squadPosition+1}}\r\n \r\n
\r\n {{member.shooter | preferredLast}}\r\n  {{nom[event.id]?.category |\r\n shortCategories }}\r\n

\r\n \r\n \r\n {{score.score}}/{{score.possible}}\r\n \r\n \r\n

\r\n
\r\n
\r\n\r\n \r\n  {{nom[event.id]?.handicap}}\r\n 0 ? 'danger' : 'dark'\">\r\n {{member.total.total}}\r\n \r\n (+{{member.total.extra}})\r\n \r\n /\r\n {{member.total.possible}}\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
","import { Injectable } from '@angular/core';\r\nimport { AuthService } from '@auth0/auth0-angular';\r\nimport { BehaviorSubject, Subject, combineLatest, of } from 'rxjs';\r\nimport { switchMap, distinctUntilChanged, catchError, filter, concatMap } from 'rxjs/operators';\r\nimport { ProfileService } from 'src/app/services/profile.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ExponentialBackoff, Websocket, WebsocketBuilder, WebsocketEvent } from 'websocket-ts';\r\n\r\nconst reconnect$ = new BehaviorSubject(0);\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\nprivate websocket: Websocket;\r\nconnected = false;\r\nmessageSubject = new Subject();\r\npinger;\r\n\r\n constructor(private profileService: ProfileService, private authSerivce: AuthService) {\r\n combineLatest([\r\n this.profileService.currentUserProfile$,\r\n reconnect$\r\n ]).pipe(\r\n filter(([profile]) => !!profile),\r\n distinctUntilChanged(),\r\n concatMap(() => this.authSerivce.getAccessTokenSilently())\r\n ).subscribe(token => {\r\n if (this.pinger) {\r\n clearInterval(this.pinger);\r\n }\r\n\r\n if (token) {\r\n if (this.websocket) {\r\n this.websocket.removeEventListener(WebsocketEvent.close, this.onSocketClose);\r\n this.websocket.close();\r\n }\r\n\r\n this.websocket = new WebsocketBuilder(`${environment.identity.ws}?access_token=${token}`)\r\n .withBackoff(new ExponentialBackoff(1000, 10))\r\n .onOpen((_i, _event) => { this.connected = true })\r\n .onMessage((_i, event) => { this.messageSubject.next(JSON.parse(event.data)); })\r\n .onClose((_i, event) => { console.log(`socket closed: ${event.code}`); })\r\n .onClose(() => { this.websocket = undefined; this.connected = false })\r\n .build();\r\n\r\n this.pinger = setInterval(() => {\r\n this.websocket?.send('ping');\r\n }, 300000);\r\n } else {\r\n this.websocket = undefined;\r\n }\r\n });\r\n }\r\n\r\n onSocketClose(_i, event) {\r\n this.websocket = undefined; \r\n }\r\n\r\n}","import { Component } from '@angular/core';\r\nimport { ConnectionsService } from '../services/connections.service';\r\nimport { NotificationService } from './me-tab/me/notification.service';\r\nimport { Router } from '@angular/router';\r\nimport { ProfileService } from '../services/profile.service';\r\nimport { AuthService } from '@auth0/auth0-angular';\r\nimport { SubscriptionsService } from '../services/subscriptions.service';\r\n\r\n@Component({\r\n selector: 'app-tabs',\r\n templateUrl: 'tabs.component.html',\r\n styleUrls: ['tabs.component.scss']\r\n})\r\nexport class TabsPage {\r\n\r\n constructor(\r\n public connections: ConnectionsService,\r\n public profileService: ProfileService,\r\n public notifications: NotificationService,\r\n public auth: AuthService,\r\n public subs: SubscriptionsService,\r\n private router: Router\r\n ) {\r\n\r\n }\r\n\r\n goToMe() {\r\n this.router.navigate(['/tabs/me/']);\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n Shoots\r\n \r\n\r\n \r\n \r\n Clubs\r\n \r\n\r\n \r\n ?\r\n \r\n \r\n \r\n \r\n 0\" color=\"danger\">{{requestsReceived.length}}\r\n \r\n Me\r\n \r\n\r\n \r\n \r\n \r\n Community\r\n \r\n \r\n \r\n\r\n\r\n","export const environment = {\r\n\tproduction: true,\r\n\taws: {\r\n\t\tIdentityPoolId: 'ap-southeast-2:c62d052f-0196-4f39-87ba-dcbeeb58c372'\r\n\t},\r\n\r\n\torganisation: {\r\n\t\tbucket: 'data.myclubsmyscores.com',\r\n\t\tpath: 'dynamo/organisation/latest'\r\n\t},\r\n\r\n\tcompetition: {\r\n\t\tbucket: 'data.myclubsmyscores.com',\r\n\t\tpath: 'dynamo/competition/export',\r\n\t\tapi: 'https://data-api.myclubsmyscores.com/competition'\r\n\t},\r\n\r\n\taudit: {\r\n\t\tmembershipIdUrl: 'https://data-api.myclubsmyscores.com/membership/byNumber',\r\n\t\tbucket: 'data.myclubsmyscores.com',\r\n\t\tpath: 'dynamo/scores'\r\n\t},\r\n\tauthorization: {\r\n audience: \"https://api.myclubsmyscores.com/identity\",\r\n redirectUri: \"https://live.myclubsmyscores.com\",\r\n clientId: \"TEmVuHPAgPi31hpVfap5gsweR2LXLmsw\",\r\n domain: \"myclubsmyscores.auth0.com\"\r\n },\r\n\tpayments: {\r\n api: 'https://payments-api.myclubsmyscores.com/v2',\r\n\t\tpublishable_key: 'pk_live_hEsOpxeTXiZIIvJNOItcGpRM0066Kp1gIv',\r\n success: 'https://apps.myclubsmyscores.com/assets/payment.html?action=success',\r\n cancel: 'https://apps.myclubsmyscores.com/assets/payment.html?action=cancel',\r\n checkout: 'https://apps.myclubsmyscores.com/assets/payment.html'\r\n },\r\n advertising: {\r\n\t\tapi: 'https://data-api.myclubsmyscores.com',\r\n\t\ttrackingID: 'G-JTDNC5Q4CE'\r\n },\r\n\tidentity: {\r\n\t\tapi: 'https://api.myclubsmyscores.com/identity',\r\n\t\tws: 'wss://ws-api.myclubsmyscores.com/identity'\r\n\t},\r\n\tsubscription: {\r\n\t\tproductId: \"meplusbasic\"\r\n\t},\r\n\tversions: 'https://live.myclubsmyscores.com/assets/versions.json'\r\n\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport { Preferences } from '@capacitor/preferences';\r\n\r\ndeclare var dataLayer;\r\n// declare var gtag;\r\n\r\nconst ga = document.createElement('script');\r\nga.type = 'text/javascript';\r\nga.setAttribute('async', 'true');\r\nga.setAttribute('src', `https://www.googletagmanager.com/gtag/js?id=${ environment.advertising.trackingID }`);\r\ndocument.documentElement.firstChild.appendChild(ga);\r\nwindow['dataLayer'] = window['dataLayer'] || [];\r\nfunction gtag(...args) {\r\n dataLayer.push(args);\r\n};\r\n\r\nwindow['gtag'] = gtag;\r\ngtag('js', new Date());\r\n\r\ngtag('config', environment.advertising.trackingID, {'debug_mode': environment.production ? false : true });\r\n\r\n\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nPreferences.migrate()\r\n.catch(err => err)\r\n.then(result => {\r\n platformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n});\r\n\r\n","// Generated by genversion.\nexport const version = '11.2.10';\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t37518,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js\"\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t41981,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js\"\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t71603,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-alert_entry_js\"\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t82273,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-app_8_entry_js\"\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t19642,\n\t\t\"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js\"\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t32095,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-back-button_entry_js\"\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t72335,\n\t\t\"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js\"\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t78221,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js\"\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t47184,\n\t\t\"node_modules_ionic_core_dist_esm_ion-button_2_entry_js\"\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t38759,\n\t\t\"node_modules_ionic_core_dist_esm_ion-card_5_entry_js\"\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t24248,\n\t\t\"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js\"\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t69863,\n\t\t\"node_modules_ionic_core_dist_esm_ion-chip_entry_js\"\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t51769,\n\t\t\"node_modules_ionic_core_dist_esm_ion-col_3_entry_js\"\n\t],\n\t\"./ion-datetime-button.entry.js\": [\n\t\t2569,\n\t\t\"default-node_modules_ionic_core_dist_esm_data-ae11fd43_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js\"\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t54153,\n\t\t\"default-node_modules_ionic_core_dist_esm_data-ae11fd43_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js\"\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t25458,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js\"\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t70654,\n\t\t\"node_modules_ionic_core_dist_esm_ion-img_entry_js\"\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t36034,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js\"\n\t],\n\t\"./ion-input-password-toggle.entry.js\": [\n\t\t82815,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-input-password-toggle_entry_js\"\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t20761,\n\t\t\"default-node_modules_ionic_core_dist_esm_input_utils-09c71bc7_js-node_modules_ionic_core_dist-8b8a84\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-input_entry_js\"\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t6492,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js\"\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t29557,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item_8_entry_js\"\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t68353,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-loading_entry_js\"\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t51024,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js\"\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t29160,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-modal_entry_js\"\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t60393,\n\t\t\"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js\"\n\t],\n\t\"./ion-picker-column-option.entry.js\": [\n\t\t68442,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column-option_entry_js\"\n\t],\n\t\"./ion-picker-column.entry.js\": [\n\t\t43110,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column_entry_js\"\n\t],\n\t\"./ion-picker.entry.js\": [\n\t\t15575,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker_entry_js\"\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t16772,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-popover_entry_js\"\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t34810,\n\t\t\"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js\"\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t14639,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js\"\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t90628,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-range_entry_js\"\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t10852,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js\"\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t61479,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js\"\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t24065,\n\t\t\"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js\"\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t57971,\n\t\t\"node_modules_ionic_core_dist_esm_ion-route_4_entry_js\"\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t93184,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js\"\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t469,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js\"\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t78471,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-select_3_entry_js\"\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t40388,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-spinner_entry_js\"\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t42392,\n\t\t\"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js\"\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t36059,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js\"\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t5427,\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js\"\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t50198,\n\t\t\"node_modules_ionic_core_dist_esm_ion-text_entry_js\"\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t1735,\n\t\t\"default-node_modules_ionic_core_dist_esm_input_utils-09c71bc7_js-node_modules_ionic_core_dist-8b8a84\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-textarea_entry_js\"\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t7510,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toast_entry_js\"\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t45297,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toggle_entry_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 88996;\nmodule.exports = webpackAsyncContext;","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 3199;\nmodule.exports = webpackEmptyAsyncContext;","var map = {\n\t\"./af\": 85637,\n\t\"./af.js\": 85637,\n\t\"./ar\": 6777,\n\t\"./ar-dz\": 74508,\n\t\"./ar-dz.js\": 74508,\n\t\"./ar-kw\": 67504,\n\t\"./ar-kw.js\": 67504,\n\t\"./ar-ly\": 95373,\n\t\"./ar-ly.js\": 95373,\n\t\"./ar-ma\": 92412,\n\t\"./ar-ma.js\": 92412,\n\t\"./ar-ps\": 78823,\n\t\"./ar-ps.js\": 78823,\n\t\"./ar-sa\": 36670,\n\t\"./ar-sa.js\": 36670,\n\t\"./ar-tn\": 36448,\n\t\"./ar-tn.js\": 36448,\n\t\"./ar.js\": 6777,\n\t\"./az\": 23009,\n\t\"./az.js\": 23009,\n\t\"./be\": 28299,\n\t\"./be.js\": 28299,\n\t\"./bg\": 4685,\n\t\"./bg.js\": 4685,\n\t\"./bm\": 11171,\n\t\"./bm.js\": 11171,\n\t\"./bn\": 23590,\n\t\"./bn-bd\": 5841,\n\t\"./bn-bd.js\": 5841,\n\t\"./bn.js\": 23590,\n\t\"./bo\": 54309,\n\t\"./bo.js\": 54309,\n\t\"./br\": 54130,\n\t\"./br.js\": 54130,\n\t\"./bs\": 8033,\n\t\"./bs.js\": 8033,\n\t\"./ca\": 55294,\n\t\"./ca.js\": 55294,\n\t\"./cs\": 53028,\n\t\"./cs.js\": 53028,\n\t\"./cv\": 5807,\n\t\"./cv.js\": 5807,\n\t\"./cy\": 70342,\n\t\"./cy.js\": 70342,\n\t\"./da\": 38269,\n\t\"./da.js\": 38269,\n\t\"./de\": 11489,\n\t\"./de-at\": 42123,\n\t\"./de-at.js\": 42123,\n\t\"./de-ch\": 17757,\n\t\"./de-ch.js\": 17757,\n\t\"./de.js\": 11489,\n\t\"./dv\": 28152,\n\t\"./dv.js\": 28152,\n\t\"./el\": 7687,\n\t\"./el.js\": 7687,\n\t\"./en-au\": 46668,\n\t\"./en-au.js\": 46668,\n\t\"./en-ca\": 76798,\n\t\"./en-ca.js\": 76798,\n\t\"./en-gb\": 53615,\n\t\"./en-gb.js\": 53615,\n\t\"./en-ie\": 91364,\n\t\"./en-ie.js\": 91364,\n\t\"./en-il\": 79907,\n\t\"./en-il.js\": 79907,\n\t\"./en-in\": 70533,\n\t\"./en-in.js\": 70533,\n\t\"./en-nz\": 33190,\n\t\"./en-nz.js\": 33190,\n\t\"./en-sg\": 51096,\n\t\"./en-sg.js\": 51096,\n\t\"./eo\": 3962,\n\t\"./eo.js\": 3962,\n\t\"./es\": 37726,\n\t\"./es-do\": 65010,\n\t\"./es-do.js\": 65010,\n\t\"./es-mx\": 63654,\n\t\"./es-mx.js\": 63654,\n\t\"./es-us\": 59043,\n\t\"./es-us.js\": 59043,\n\t\"./es.js\": 37726,\n\t\"./et\": 25343,\n\t\"./et.js\": 25343,\n\t\"./eu\": 90728,\n\t\"./eu.js\": 90728,\n\t\"./fa\": 60787,\n\t\"./fa.js\": 60787,\n\t\"./fi\": 71771,\n\t\"./fi.js\": 71771,\n\t\"./fil\": 45335,\n\t\"./fil.js\": 45335,\n\t\"./fo\": 69761,\n\t\"./fo.js\": 69761,\n\t\"./fr\": 1670,\n\t\"./fr-ca\": 28991,\n\t\"./fr-ca.js\": 28991,\n\t\"./fr-ch\": 97280,\n\t\"./fr-ch.js\": 97280,\n\t\"./fr.js\": 1670,\n\t\"./fy\": 24203,\n\t\"./fy.js\": 24203,\n\t\"./ga\": 69858,\n\t\"./ga.js\": 69858,\n\t\"./gd\": 38605,\n\t\"./gd.js\": 38605,\n\t\"./gl\": 27365,\n\t\"./gl.js\": 27365,\n\t\"./gom-deva\": 33896,\n\t\"./gom-deva.js\": 33896,\n\t\"./gom-latn\": 95587,\n\t\"./gom-latn.js\": 95587,\n\t\"./gu\": 97950,\n\t\"./gu.js\": 97950,\n\t\"./he\": 92029,\n\t\"./he.js\": 92029,\n\t\"./hi\": 51897,\n\t\"./hi.js\": 51897,\n\t\"./hr\": 29816,\n\t\"./hr.js\": 29816,\n\t\"./hu\": 22253,\n\t\"./hu.js\": 22253,\n\t\"./hy-am\": 28196,\n\t\"./hy-am.js\": 28196,\n\t\"./id\": 51307,\n\t\"./id.js\": 51307,\n\t\"./is\": 95474,\n\t\"./is.js\": 95474,\n\t\"./it\": 23099,\n\t\"./it-ch\": 45807,\n\t\"./it-ch.js\": 45807,\n\t\"./it.js\": 23099,\n\t\"./ja\": 19127,\n\t\"./ja.js\": 19127,\n\t\"./jv\": 30182,\n\t\"./jv.js\": 30182,\n\t\"./ka\": 10758,\n\t\"./ka.js\": 10758,\n\t\"./kk\": 93444,\n\t\"./kk.js\": 93444,\n\t\"./km\": 72034,\n\t\"./km.js\": 72034,\n\t\"./kn\": 46223,\n\t\"./kn.js\": 46223,\n\t\"./ko\": 83064,\n\t\"./ko.js\": 83064,\n\t\"./ku\": 8714,\n\t\"./ku-kmr\": 10961,\n\t\"./ku-kmr.js\": 10961,\n\t\"./ku.js\": 8714,\n\t\"./ky\": 12062,\n\t\"./ky.js\": 12062,\n\t\"./lb\": 84796,\n\t\"./lb.js\": 84796,\n\t\"./lo\": 19279,\n\t\"./lo.js\": 19279,\n\t\"./lt\": 106,\n\t\"./lt.js\": 106,\n\t\"./lv\": 11840,\n\t\"./lv.js\": 11840,\n\t\"./me\": 42240,\n\t\"./me.js\": 42240,\n\t\"./mi\": 13588,\n\t\"./mi.js\": 13588,\n\t\"./mk\": 15518,\n\t\"./mk.js\": 15518,\n\t\"./ml\": 37823,\n\t\"./ml.js\": 37823,\n\t\"./mn\": 98657,\n\t\"./mn.js\": 98657,\n\t\"./mr\": 61285,\n\t\"./mr.js\": 61285,\n\t\"./ms\": 43014,\n\t\"./ms-my\": 86253,\n\t\"./ms-my.js\": 86253,\n\t\"./ms.js\": 43014,\n\t\"./mt\": 20167,\n\t\"./mt.js\": 20167,\n\t\"./my\": 47940,\n\t\"./my.js\": 47940,\n\t\"./nb\": 50014,\n\t\"./nb.js\": 50014,\n\t\"./ne\": 49023,\n\t\"./ne.js\": 49023,\n\t\"./nl\": 34208,\n\t\"./nl-be\": 71412,\n\t\"./nl-be.js\": 71412,\n\t\"./nl.js\": 34208,\n\t\"./nn\": 81354,\n\t\"./nn.js\": 81354,\n\t\"./oc-lnc\": 40870,\n\t\"./oc-lnc.js\": 40870,\n\t\"./pa-in\": 80389,\n\t\"./pa-in.js\": 80389,\n\t\"./pl\": 7342,\n\t\"./pl.js\": 7342,\n\t\"./pt\": 34774,\n\t\"./pt-br\": 73003,\n\t\"./pt-br.js\": 73003,\n\t\"./pt.js\": 34774,\n\t\"./ro\": 85333,\n\t\"./ro.js\": 85333,\n\t\"./ru\": 73451,\n\t\"./ru.js\": 73451,\n\t\"./sd\": 43921,\n\t\"./sd.js\": 43921,\n\t\"./se\": 59682,\n\t\"./se.js\": 59682,\n\t\"./si\": 80582,\n\t\"./si.js\": 80582,\n\t\"./sk\": 4348,\n\t\"./sk.js\": 4348,\n\t\"./sl\": 95337,\n\t\"./sl.js\": 95337,\n\t\"./sq\": 39358,\n\t\"./sq.js\": 39358,\n\t\"./sr\": 50683,\n\t\"./sr-cyrl\": 69382,\n\t\"./sr-cyrl.js\": 69382,\n\t\"./sr.js\": 50683,\n\t\"./ss\": 51156,\n\t\"./ss.js\": 51156,\n\t\"./sv\": 29855,\n\t\"./sv.js\": 29855,\n\t\"./sw\": 18536,\n\t\"./sw.js\": 18536,\n\t\"./ta\": 15373,\n\t\"./ta.js\": 15373,\n\t\"./te\": 37809,\n\t\"./te.js\": 37809,\n\t\"./tet\": 61297,\n\t\"./tet.js\": 61297,\n\t\"./tg\": 92527,\n\t\"./tg.js\": 92527,\n\t\"./th\": 85862,\n\t\"./th.js\": 85862,\n\t\"./tk\": 79331,\n\t\"./tk.js\": 79331,\n\t\"./tl-ph\": 44387,\n\t\"./tl-ph.js\": 44387,\n\t\"./tlh\": 3592,\n\t\"./tlh.js\": 3592,\n\t\"./tr\": 79732,\n\t\"./tr.js\": 79732,\n\t\"./tzl\": 99570,\n\t\"./tzl.js\": 99570,\n\t\"./tzm\": 83553,\n\t\"./tzm-latn\": 7699,\n\t\"./tzm-latn.js\": 7699,\n\t\"./tzm.js\": 83553,\n\t\"./ug-cn\": 25674,\n\t\"./ug-cn.js\": 25674,\n\t\"./uk\": 69974,\n\t\"./uk.js\": 69974,\n\t\"./ur\": 45773,\n\t\"./ur.js\": 45773,\n\t\"./uz\": 357,\n\t\"./uz-latn\": 77135,\n\t\"./uz-latn.js\": 77135,\n\t\"./uz.js\": 357,\n\t\"./vi\": 20043,\n\t\"./vi.js\": 20043,\n\t\"./x-pseudo\": 40767,\n\t\"./x-pseudo.js\": 40767,\n\t\"./yo\": 80150,\n\t\"./yo.js\": 80150,\n\t\"./zh-cn\": 21828,\n\t\"./zh-cn.js\": 21828,\n\t\"./zh-hk\": 86644,\n\t\"./zh-hk.js\": 86644,\n\t\"./zh-mo\": 79305,\n\t\"./zh-mo.js\": 79305,\n\t\"./zh-tw\": 31860,\n\t\"./zh-tw.js\": 31860\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35358;"],"names":["RouterModule","AuthCallbackComponent","TabsPage","routes","path","redirectTo","pathMatch","component","children","title","loadChildren","then","m","ShootsTabModule","ClubsTabModule","MeTabModule","ToyboxTabModule","ShootModule","AppRoutingModule","_","_2","_3","forRoot","imports","i1","exports","ModalController","AppUpdate","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","AppUpdateComponent_ion_col_15_Template_ion_button_click_1_listener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","dismiss","AppUpdateComponent","constructor","modalCtrl","update","openAppStore","ɵɵdirectiveInject","selectors","inputs","updateStrategy","decls","vars","consts","template","AppUpdateComponent_Template","rf","ctx","ɵɵelement","ɵɵtemplate","AppUpdateComponent_p_9_Template","AppUpdateComponent_p_10_Template","AppUpdateComponent_ion_col_15_Template","AppUpdateComponent_Template_ion_button_click_17_listener","ɵɵadvance","ɵɵproperty","Router","NavigationEnd","RouteConfigLoadStart","RouteConfigLoadEnd","LoadingController","ToastController","PushNotifications","SplashScreen","App","Platform","environment","firstValueFrom","HttpClient","UserService","SubscriptionsService","ProfileService","Browser","version","ReleaseNotesComponent","FirebaseAnalytics","APP_UPDATE_KEY","AppComponent","http","router","toastController","modalController","platform","profileService","userService","subscriptions","loadingCtrl","_this","is","onAppStart","showReleaseNotes","hasSubscription$","subscribe","events","event","logEvent","name","params","page_path","urlAfterRedirects","slice","screen_name","document","gtag","addListener","data","console","log","checkAuth","url","close","requestPermissions","result","receive","register","token","JSON","stringify","localStorage","setItem","value","_ref","_asyncToGenerator","notification","toast","create","header","message","body","position","buttons","text","role","present","_x","apply","arguments","catch","err","warn","getLaunchUrl","ngOnInit","_this2","hide","setupRouteLoadIndicator","_this3","routeLoadIndicator","_ref2","_x2","_this4","seenRN","getItem","rnModal","onDidDismiss","_this5","production","appUpdateInfo","getAppUpdateInfo","isCurrentVersionUpgradeable","currentVersionName","availableVersionName","versionInfo","get","versions","updateInformation","modal","componentProps","e","error","currentVersion","availableStoreVersion","currentMajor","currentMinor","currentPatch","split","availableStoreMajor","availableStoreMinor","availableStorePatch","m1","parseInt","m2","mi1","mi2","p1","p2","_this6","urlOpen","navigate","uri","urls","match","startsWith","substring","length","navigateByUrl","i2","i3","i4","i5","i6","AppComponent_Template","ErrorHandler","APP_INITIALIZER","BrowserModule","RouteReuseStrategy","IonicModule","IonicRouteStrategy","CommonModule","HttpClientModule","HTTP_INTERCEPTORS","TrapPopover","DTLRules","RulesFactory","AuthHttpInterceptor","AuthModule","Capacitor","ScrollingModule","FeaturePromptComponent","FeaturePromptFactory","FeaturePromptService","GAErrorHandler","handleError","authConfig","domain","authorization","clientId","cacheLocation","useRefreshTokens","useRefreshTokensFallback","skipRedirectCallback","authorizationParams","redirect_uri","isNativePlatform","location","origin","audience","scope","httpInterceptor","allowedList","identity","api","AppModule","bootstrap","provide","useClass","multi","useFactory","deps","declarations","AuthCallbackComponent_Template","moment","IsSquadsVisiblePipe","transform","shoot","endOfToday","endOf","unix","includes","status","when","pure","PreferredLastPipe","capitalise","s","charAt","toUpperCase","dict","preferredNameCase","preferredName","firstNameCase","firstName","lastNameCase","lastName","Shootoff","ScoreThenShootOff","filterBy","sort","left","right","total","Number","extra","compare","extras","DefaultCategories","ShortCategories","categories","showOpen","arr2","arr","a","all","abbrev","push","join","ShowTotalPipe","totalScore","options","totalExtra","limit_to_possible","maxExtra","possible","shootOffTotal","shootOffPossible","shootOffExtra","Math","max","shootOffs","filter","rounds","forEach","round","min","score","OPEN","display","extrasSO","extrasSOString","extraString","extrasMain","extrasMainString","SquadVisitMetaPipe","args","squadMeta","visitSquad","visitMeta","toAdd","squad","metadata","time","trap","modalCtl","html","responseType","ReleaseNotesComponent_Template","ReleaseNotesComponent_Template_ion_button_click_3_listener","ɵɵtextInterpolate1","ɵɵsanitizeHtml","AdService","getAd","property","hostId","compId","adURI","advertising","ɵɵinject","factory","ɵfac","providedIn","S3Client","CognitoIdentityClient","fromCognitoIdentityPool","AwsService","s3","cognitoIdentityClient","region","credentials","client","identityPoolId","aws","IdentityPoolId","BehaviorSubject","catchError","combineLatest","concatMap","distinctUntilChanged","from","map","mergeMap","Observable","of","tap","zip","NotificationService","FavouritesProvider","ConnectionsService","favourites","notifications","connections$","undefined","followingMe$","followedByMe$","requestsSent$","requestsReceived$","refresh$","currentUserProfile$","pipe","profile","_id","followedByMe","followedIds","f","Object","values","permissions","p","membershipId","clearLinkedMemberships","requests","next","r","toString","followingMe","requestsReceived","requestsSent","byProfileId","to","assign","pendingRequests","received","incoming","find","email","sent","messageSubject","createRequest","detail","post","contact","mobile","phone","given_name","random","respond","connectionRequest","response","request","action","updateConnection","doc","updated","put","deleteRequest","deleted","delete","deleteConnection","updateIdentityPermissions","connection","patch","$set","verifyConnectionRequest","code","connectionsShoots","including","subscribed","followingShooterIds","entries","association","byShooterId","shooterId","permission","nomination","permitted","ids","keys","competition","arrayOfArrayOfNoms","nominations","Items","i","byCompId","nom","discipline","nommedAssociation","Boolean","_deleted","shooter","comp","Preferences","ReplaySubject","associationsSubject","clubsSubject","barcodes","key","assoc","parse","String","clubs","codes","saveAssociations","associations","set","saveClubs","saveBarcodes","membershipNumbers","allBarcodes","updatedBarcodes","bc","some","id","AuthService","authService","onLoad","promoteRankingsVisibility","isAuthed","isAuthenticated$","identities","identities$","isAllPublic","every","rankings","previousTime","currentTime","Date","getTime","diffInMs","abs","maximumTime","confirmed","displayConfirmationModal","setIdentityPermission","cssClass","backdropDismiss","confirm","provider","FeaturePromptComponent_Template","FeaturePromptComponent_Template_ion_button_click_12_listener","FeaturePromptComponent_Template_ion_button_click_15_listener","order","label","default","excludes","includedBy","JUNIOR","LADIES","VETERAN","CLAYS_ONLY","PrizeModel","allocations","prizes","assignPrizes","places","modelImpl","hasShootoff","priority","gradeCategory","prizesRemaining","previousWinner","eligibleCopy","placeGetter","winner","prize","isEligible","nextWinner","totalDiffNext","totalDiffPrev","winnerPlace","prizeTo","reset","grade","minimumDepth","resolved","BestPrizeOnly","grades","concat","c","searchBefore","indexOf","CategoryExcludesGrade","k","createPrizeModel","prizeModelEntity","model","NgZone","AuthClientConfig","urlParse","zone","authToken$","emails$","getAccessTokenSilently","href","handleRedirectCallback","_refresh","user$","currentUser","sub","mcmsProfiles","convertUserToProfile","emails","distinctEmail","verified","login","openOptions","openUrl","open","windowName","loginWithRedirect","family_name","space","userProfile","authUsernames","logout","logoutConfig","logoutParams","returnTo","addEmailAddress","resend","removeEmailAddress","run","targetUrl","pathname","TotalsService","GetObjectCommand","ProgramService","totalsService","subject","init","lastModified","refresh","loader","loading","s3Options","Bucket","bucket","Key","_origin","IfModifiedSince","send","Body","transformToString","program","LastModified","transformProgram","structured","$metadata","httpStatusCode","days","legsByEvent","roundsByEvent","nominationsByShooter","squadScores","byType","SCORE","EVENT","SQUAD_ORDER","NOMINATION","EVENT_LEG","EVENT_EVENT_LEG","resultsByEvent","byId","entity","_type","handleEvent","handleEventLeg","handleScore","handleSquadMember","eventId","legs","b","legOrder","visits","eventLeg","leg","trapVisit","visitNumber","start","aggregating","eventNumber","evStart","startTime","format","squadMember","squadId","shootOffQualifier","trapVisitId","squadLegs","legIds","l","eventLegs","squadNumber","squads","members","squadPosition","scores","squadMemberId","squadOrder","legId","forLeg","legIndexByEvent","legIndex","eventDays","dates","d","calculators","noop","x","zeroOrOne","times2","times3","points","load","rulesJson","json","toPromise","perfect","rules","targets","calculator","Rules","programRules","compOrEvent","DisciplineVsRules","eventRules","disciplinesByOrg","org","eventHandicap","membership","matchedDiscipline","hcpDiscipline","defaults","grading","er","hcpRules","equivalent","disciplineMeta","hcpSource","handicap","skills","defaultSystem","g","gradingSystems","fallback","gradingSystem","gradeHcp","bestSkillGradeHandicap","sources","hcp","GRADE_ORDER","disciplineOrg","skill","skillHandicap","meterage","hasExtra","disciplineData","hcpData","handicaps","autoExtra","auto","calculateExtra","matchedHCP","extraScore","addScore","addPossible","addExtra","counted","possibleOrdering","leftTotal","leftPossible","rightTotal","rightPossible","delta","missedLeft","Infinity","missedRight","roundOrdering","leftOpenRounds","rightOpenRounds","lr","rr","leftFilterRounds","rightFilterRounds","guess","soDelta","placing","isNaN","shootOffPriority","Purchases","switchMap","Unsubscribed","Basic","purchases","activeSubscription$","apiKey$","purchasesReady$","ready","setDebugLogsEnabled","_apiKey","apiKey","configureWith","appUserID","getCustomerInfo","headers","Authorization","rcatResponse","entitlements","expires_date","isAfter","active","customerInfo","subs","isDevSubToggled","window","getOfferings","subscribeToMePlus","offerings","productIdentifier","purchasePackage","current","availablePackages","userCancelled","SummaryService","published","programService","head","totalsByShooter","entitiesByType","noms","totals","TOTAL_SCORE","eventPromises","ev","evNoms","n","el","eventScores","eventTotals","t","calculateTotals","calculatedTotals","leaders","eventPrizeModel","PRIZE_MODEL","pm","prizeModel","v","prizeModelImpl","shootOff","referenceEvent","context","kills","nomsByShooter","so","accumulate","processScores","cat","ts","eligible","category","hasOwnProperty","SQUAD","sq","TRAP_VISIT","tv","qualifier","shootoffRound","shootoffSum","pendingClaims$","isDevelopment$","linked","claims","isUnclaiming","getMemberShoots","competingAs","updateCurrentUserProfile","details","deleteIdentity","identityId","$pull","deleteClaim","claimId","updateIdentities","getMCMSMembership","linkMembership","connectionDetails","sendMembershipUnlinkRequest","squadsByEvent","event_r1","ɵɵelementContainerStart","ɵɵtextInterpolate3","leg_r3","ɵɵtextInterpolate","squadByTrapVisit","round_r4","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_6_p_1_span_1_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_6_p_1_span_2_Template","squad_r5","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_6_p_1_Template","ɵɵtextInterpolate2","scoresByLeg","leg_r6","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_8_ion_badge_1_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_5_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_6_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_ng_container_8_Template","$i_r7","ɵɵpipeBind1","score_r8","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_17_ng_container_6_ion_badge_1_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_17_ng_container_6_Template","shootOff_r9","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_div_8_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_10_Template","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_ng_container_17_Template","ɵɵpipeBind3","totalsByEvent","ɵɵpureFunction0","_c0","ShooterComponent_ion_content_9_ng_container_1_ion_card_4_Template","day_r10","ɵɵpipeBind2","ShooterComponent_ion_content_9_ng_container_1_Template","ShooterComponent","squadOrders","sqOId","localeCompare","showExtra","ShooterComponent_Template","ShooterComponent_Template_ion_button_click_3_listener","ShooterComponent_ion_content_8_Template","ShooterComponent_ion_content_9_Template","IonRefresher","MenuController","PopoverController","ActivatedRoute","visitX_r1","TrapPopover_ng_container_1_span_2_Template","TrapPopover_ng_container_1_span_3_Template","EventSquadsComponent_ion_icon_6_Template_ion_icon_click_0_listener","_r2","ctx_r2","swapMeFilter","ɵɵclassProp","meFilter","winnersUrl_r4","ɵɵsanitizeUrl","leg_r5","EventSquadsComponent_ng_container_17_ng_container_4_span_4_Template","round_r6","EventSquadsComponent_ng_container_17_ion_item_5_Template_ion_item_click_0_listener","_r8","openAd","ad","images","meta_r10","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_ng_container_5_ng_container_3_div_1_ion_icon_3_Template","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_ng_container_5_ng_container_3_div_1_ion_text_5_Template","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_ng_container_5_ng_container_3_div_1_ion_text_7_Template","i_r12","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_ng_container_5_ng_container_3_div_1_Template","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_ng_container_5_ng_container_3_Template","visitSquads_r13","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_ng_container_5_Template","tmp_9_0","nom_r15","ɵɵpureFunction1","score_r16","EventSquadsComponent_ng_container_17_ng_container_6_div_8_ng_container_6_ng_container_1_ion_badge_1_Template","blankBadge_r17","EventSquadsComponent_ng_container_17_ng_container_6_div_8_ng_container_6_ng_container_1_Template","member_r14","EventSquadsComponent_ng_container_17_ng_container_6_div_8_span_4_Template","EventSquadsComponent_ng_container_17_ng_container_6_div_8_ng_container_6_Template","nom_r18","EventSquadsComponent_ng_container_17_ng_container_6_ng_container_1_Template","EventSquadsComponent_ng_container_17_ng_container_6_ng_template_2_Template","ɵɵtemplateRefExtractor","EventSquadsComponent_ng_container_17_ng_container_6_Template_ion_item_click_4_listener","_r9","$implicit","showShooter","EventSquadsComponent_ng_container_17_ng_container_6_div_8_Template","EventSquadsComponent_ng_container_17_ng_container_6_span_10_Template","EventSquadsComponent_ng_container_17_ng_container_6_span_14_Template","squadHeaders","i_r19","squadMembers","isMe","isConnection","EventSquadsComponent_ng_container_17_ng_container_4_Template","EventSquadsComponent_ng_container_17_ion_item_5_Template","EventSquadsComponent_ng_container_17_ng_container_6_Template","visitSquads","TrapPopover_Template","TrapPopover_ng_container_1_Template","EventSquadsComponent","programSvc","menu","user","auth","popoverController","route","adService","summaryService","subscriptionService","connectionService","updatingSquads","ready$","paramMap","ionViewWillEnter","refreshAd","ionViewDidEnter","refresher","disabled","ionViewWillLeave","subscription","pathParams","updateSquadMembers","refreshing","complete","winnersReport","isSubscribed","connections","member","_association","byAssociation","sum","visit","reorderScoresByLeg","legsForEvent","legOrderA","legOrderB","host","non_interaction","ngOnDestroy","unsubscribe","record","recordIndex","records","doRefresh","$event","target","shooterModal","toggleTraps","_this7","popover","translucent","actions","clickThrough","i7","i8","i9","i10","viewQuery","EventSquadsComponent_Query","EventSquadsComponent_ion_icon_6_Template","EventSquadsComponent_ion_toolbar_12_Template","EventSquadsComponent_Template_ion_refresher_ionRefresh_15_listener","EventSquadsComponent_ng_container_17_Template","EventSquadsComponent_ng_template_18_Template","loadingSquads_r20","Subject","ExponentialBackoff","WebsocketBuilder","WebsocketEvent","reconnect$","authSerivce","connected","pinger","clearInterval","websocket","removeEventListener","onSocketClose","ws","withBackoff","onOpen","_i","_event","onMessage","onClose","build","setInterval","TabsPage_ng_template_10_ion_badge_0_Template","ctx_r0","requestsReceived_r2","TabsPage_ng_container_14_ion_badge_1_Template","goToMe","TabsPage_Template","TabsPage_ng_template_10_Template","TabsPage_ng_container_14_Template","TabsPage_ng_container_18_Template","curiousBadge_r3","organisation","audit","membershipIdUrl","redirectUri","payments","publishable_key","success","cancel","checkout","trackingID","productId","enableProdMode","ga","createElement","type","setAttribute","documentElement","firstChild","appendChild","dataLayer","migrate","__NgCli_bootstrap_1","platformBrowser","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[40,41,42]}