{"version":3,"sources":["../assets/src/scripts/frontend/totalpoll.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,IAAU,SAAS,CAg9BlB;AAh9BD,WAAU,SAAS;IACJ,eAAK,GAAG,EAAE,CAAC;IAEtB;;OAEG;IACH;QA2NI;YAAA,iBAaC;YAtOM,aAAQ,GAAG,8qMAuNnB,CAAC;YAGI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK;gBAC3B,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;oBACvH,KAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE;gBACpD,KAAI,CAAC,IAAI,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QAED,4BAAY,GAAZ;YACI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,sBAAM,GAAN;YACI,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;QAED,oBAAI,GAAJ;YAAA,iBASC;YARG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;YAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACnD,UAAU,CAAC;gBACP,KAAI,CAAC,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;gBAChD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;gBACrD,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3D,CAAC,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC;QAED,sBAAM,GAAN;YACI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;QAED,0BAAU,GAAV,UAAW,OAAO;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,oBAAI,GAAJ;YAAA,iBAWC;YAVG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC9C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAChB,yBAAyB,EACzB,UAAC,KAAK;gBACF,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;oBACrB,KAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,CAAC;YACL,CAAC,CACJ,CAAC;QACN,CAAC;QACL,YAAC;IAAD,CAjRA,AAiRC,IAAA;IASD;QA2EI,uBAAoB,IAAU;YAA9B,iBASC;YATmB,SAAI,GAAJ,IAAI,CAAM;YA1EtB,WAAM,GAAG,MAAM,CAAC,iiFAwEzB,CAAC,CAAC;YAIG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK;gBAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,KAAK;gBACzC,KAAI,CAAC,IAAI,CAAC,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC;gBACpF,KAAK,CAAC,cAAc,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;QACP,CAAC;QAED,+BAAO,GAAP;QACA,CAAC;QAED,4BAAI,GAAJ,UAAK,GAAG,EAAE,IAAS,EAAE,MAAc;YAAnC,iBAgCC;YAhCS,qBAAA,EAAA,SAAS;YAAE,uBAAA,EAAA,cAAc;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAErB,MAAM,CAAC,IAAI,CAAC;oBACR,GAAG,EAAE,GAAG;oBACR,IAAI,EAAE,IAAI;oBACV,WAAW,EAAE,MAAM,IAAI,MAAM;oBAC7B,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,MAAM;iBACf,CAAC;qBACG,IAAI,CAAC,UAAC,QAAQ;oBACX,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,EAAE,CAAC;oBAE1C,KAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;wBACrB,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACrC,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;wBACpF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;4BACf,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;wBAC/C,CAAC,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC;qBACD,IAAI,CAAC,UAAC,KAAK;oBACR,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACtC,OAAO,CAAC,KAAK,CAAC,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,yCAAyC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC9F,CAAC,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACP,CAAC;QACL,oBAAC;IAAD,CA1HA,AA0HC,IAAA;IAED;QAYI,MAAM;QACN,yBAAoB,IAAU;YAAV,SAAI,GAAJ,IAAI,CAAM;YAJvB,oBAAe,GAAG,KAAK,CAAC;YACxB,iBAAY,GAAG,CAAC,CAAC;YAIpB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;gBAC7F,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACnG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC,CAAC;YACzG,CAAC;QACL,CAAC;QAED,iCAAO,GAAP;QACA,CAAC;QAED,sCAAY,GAAZ;YACI,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,qCAAW,GAAX;YACI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACzD,CAAC;QAED,0CAAgB,GAAhB;YACI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,oCAAoC,CAAC,CAAC;QACvE,CAAC;QAED,mCAAS,GAAT,UAAU,KAAK;YACX,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACrB,MAAM,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;QAEL,CAAC;QAED,uCAAa,GAAb,UAAc,KAAK;YACf,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC;YACX,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;QAED,wCAAc,GAAd;YACI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9H,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACnI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAE5H,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAE5D,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjF,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;YACL,CAAC;QACL,CAAC;QAED,kCAAQ,GAAR,UAAS,KAAK;YAAd,iBAWC;YAVG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC5C,KAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC1B,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC;gBACxD,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC5B,KAAI,CAAC,cAAc,EAAE,CAAC;gBAEtB,EAAE,CAAC,CAAC,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC5B,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAC,SAAS,EAAE,KAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,EAAC,EAAE,IAAI,CAAC,CAAC;gBAC1F,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;QAED,sCAAY,GAAZ,UAAa,SAAS,EAAE,OAAO;YAA/B,iBA6BC;YA5BG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;YAEtE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,0FAAoF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,cAAW,CAAC,CAAC;YACnK,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,sFAAgF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,cAAW,CAAC,CAAC;YAEvJ,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEnC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;gBAClE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;oBACtB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC;YAED,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1F,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;YAC/D,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAzB,CAAyB,CAAC,CAAC;YACvE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAArB,CAAqB,CAAC,CAAC;QACnE,CAAC;QAED,qCAAW,GAAX,UAAY,MAAM;YAAlB,iBAoBC;YAnBG,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC5D,UAAU,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,OAAO;gBAC3B,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,SAAS,CAAC,MAAM,CAAC,+CAA0C,KAAK,GAAG,CAAC,UAAI,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAI,UAAU,CAAC,MAAM,WAAQ,CAAC,CAAC;gBACrI,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,6CAA6C,EAAE,UAAC,KAAK;oBACxE,KAAI,CAAC,cAAc,EAAE,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEjB,4CAA4C;YAC5C,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;QACL,CAAC;QAED,gCAAM,GAAN;YACI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,EAAC,EAAE,IAAI,CAAC,CAAC;YAC1F,CAAC;QACL,CAAC;QAGL,sBAAC;IAAD,CAnJA,AAmJC,IAAA;IAED;QACI,MAAM;QACN,2BAAY,IAAU;YAClB,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC/D,WAAW,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK;gBACjI,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACP,CAAC;QAED,mCAAO,GAAP;QACA,CAAC;QAGL,wBAAC;IAAD,CAdA,AAcC,IAAA;IAED;QACI,2BAAY,IAAU;YAClB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBACzC,UAAU,CAAC;oBACP,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG,EAAC,EAAE,IAAI,CAAC,CAAC;gBACrF,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,CAAC;QACL,CAAC;QAED,mCAAO,GAAP;QACA,CAAC;QACL,wBAAC;IAAD,CAXA,AAWC,IAAA;IAED;QAGI,gCAAmB,IAAI;YAAvB,iBAGC;YAHkB,SAAI,GAAJ,IAAI,CAAA;YACnB,IAAI,CAAC,QAAQ,GAAG,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAA1B,CAA0B,CAAC;YACtD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7D,CAAC;QAED,wCAAO,GAAP;YACI,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,2CAAU,GAAV;YACI,GAAG,CAAC,WAAW,CAAC;gBACZ,SAAS,EAAE;oBACP,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBAChB,MAAM,EAAE,cAAc;oBACtB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;iBACxC;aACJ,EAAE,GAAG,CAAC,CAAC;QACZ,CAAC;QAED,+CAAc,GAAd,UAAe,KAAK;YAChB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,eAAe,CAAC,CAAC,CAAC;gBACtH,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;QACL,CAAC;QACL,6BAAC;IAAD,CA3BA,AA2BC,IAAA;IAED;QACI,4BAAoB,IAAU;YAAV,SAAI,GAAJ,IAAI,CAAM;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK;gBACjI,IAAI,KAAK,GAAG,KAAK,CAAC;gBAClB,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBACrD,IAAI,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBACvE,IAAI,iBAAiB,GAAG,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAChE,IAAI,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5E,IAAI,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAE5E,SAAS,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC;gBAC1G,SAAS,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAC;gBAE1H,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;gBAC7F,IAAI,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;gBAC3G,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC;gBAC1D,CAAC;gBAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC;oBACzC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBAClC,KAAK,GAAG,IAAI,CAAC;oBACb,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC5H,YAAY,CAAC,IAAI,EAAE,CAAC;oBACxB,CAAC;gBACL,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBACnC,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,YAAY,CAAC;oBACxC,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC9D,YAAY,CAAC,IAAI,EAAE,CAAC;oBACxB,CAAC;gBACL,CAAC;gBAED,SAAS,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAEtE,SAAS,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;gBAC3G,SAAS,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;YAChI,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK;gBACnF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACrH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK;gBAClF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3I,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qFAAqF,CAAC,CAAC,MAAM,EAAE,CAAC;QACtH,CAAC;QAED,oCAAO,GAAP;QACA,CAAC;QACL,yBAAC;IAAD,CAjDA,AAiDC,IAAA;IAED;QAGI,wBAAoB,IAAU;YAA9B,iBAWC;YAXmB,SAAI,GAAJ,IAAI,CAAM;YAFvB,UAAK,GAAG,IAAI,KAAK,EAAE,CAAC;YAGvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAC,KAAK;gBACxD,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACnE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACX,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC;gBAED,KAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAElB,KAAK,CAAC,cAAc,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;QACP,CAAC;QAGD,gCAAO,GAAP;YACI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;QACL,qBAAC;IAAD,CApBA,AAoBC,IAAA;IAED;QAOI,4BAAoB,IAAU;YAA9B,iBAcC;YAdmB,SAAI,GAAJ,IAAI,CAAM;YAFtB,UAAK,GAAY,KAAK,CAAC;YAG3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC;YAE9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEhH,YAAY;YACZ,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAApB,CAAoB,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,cAAM,OAAA,KAAI,CAAC,MAAM,EAAE,EAAb,CAAa,CAAC,CAAC;YACpD,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;QACL,CAAC;QAED,oCAAO,GAAP;YACI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC;QAED,mCAAM,GAAN;YAAA,iBAWC;YAVG,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;gBACjC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;gBACxC,QAAQ,EAAE;oBACN,KAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,EAAE,CAAC,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,CAAC;wBACjB,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC;gBACL,CAAC;aACJ,CACJ,CAAC;QACN,CAAC;QAED,qCAAQ,GAAR,UAAS,KAAK;YACV,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACd,KAAK,CAAC,cAAc,EAAE,CAAC;YAC3B,CAAC;QACL,CAAC;QACL,yBAAC;IAAD,CA7CA,AA6CC,IAAA;IAED;QACI,0BAAoB,IAAU;YAA9B,iBAUC;YAVmB,SAAI,GAAJ,IAAI,CAAM;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,EAAE,OAAO;gBAC1D,oBAAoB;gBACpB,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/B,IAAI,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC1D,IAAI,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,WAAW,CAAC;gBACpE,IAAI,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC5D,QAAQ;gBACR,KAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACP,CAAC;QAED,kCAAO,GAAP;QAEA,CAAC;QAED,gCAAK,GAAL,UAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAO;YAAP,oBAAA,EAAA,OAAO;YAC9B,MAAM,CAAC,EAAC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAA,EAAE,GAAG,KAAA,EAAE,EAAE,IAAA,EAAC,CAAC;iBAChC,OAAO,CAAC,EAAC,OAAO,EAAE,OAAO,EAAC,EAAE;gBACzB,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,IAAI;aACtB,CAAC,CAAC;QACX,CAAC;QAED,+BAAI,GAAJ;YACI,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/H,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACrC,CAAC;QAEM,yBAAQ,GAAf,UAAgB,MAAM,EAAE,YAAY,EAAE,SAAe;YAAf,0BAAA,EAAA,eAAe;YACjD,YAAY,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,iDAAiD;YACnF,SAAS,GAAG,MAAM,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC5C,EAAE,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,wDAAwD;gBAC/H,CAAC;gBACD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;QACL,uBAAC;IAAD,CA5CA,AA4CC,IAAA;IAED;QACI,8BAAoB,IAAU;YAAV,SAAI,GAAJ,IAAI,CAAM;YAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QACzG,CAAC;QAED,sCAAO,GAAP;QAEA,CAAC;QACL,2BAAC;IAAD,CARA,AAQC,IAAA;IAED;;OAEG;IACH;QACI,oBAAmB,OAAO,EAAS,QAAgB;YAAhC,YAAO,GAAP,OAAO,CAAA;YAAS,aAAQ,GAAR,QAAQ,CAAQ;YAC/C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,gCAAW,GAAX;YACI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,+BAAU,GAAV;YACI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;QAKL,iBAAC;IAAD,CAhBA,AAgBC,IAAA;IAED;QAA+B,oCAAU;QAAzC;;QAcA,CAAC;QAbG,6BAAE,GAAF,UAAG,QAAmB,EAAE,QAAqC;YAArC,yBAAA,EAAA,WAAmB,IAAI,CAAC,WAAW,EAAE;YACzD,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;YACvE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACX,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC;QAED,8BAAG,GAAH,UAAI,QAAmB,EAAE,QAAqC;YAArC,yBAAA,EAAA,WAAmB,IAAI,CAAC,WAAW,EAAE;YAC1D,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC9C,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACX,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC;QACL,uBAAC;IAAD,CAdA,AAcC,CAd8B,UAAU,GAcxC;IAED;QAA6B,kCAAU;QAAvC;;QAQA,CAAC;QAPG,2BAAE,GAAF,UAAG,QAAmB,EAAE,QAAqC;YAArC,yBAAA,EAAA,WAAmB,IAAI,CAAC,WAAW,EAAE;YACzD,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC;QAED,4BAAG,GAAH,UAAI,QAAmB,EAAE,QAAqC;YAArC,yBAAA,EAAA,WAAmB,IAAI,CAAC,WAAW,EAAE;YAC1D,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;QACL,qBAAC;IAAD,CARA,AAQC,CAR4B,UAAU,GAQtC;IAED;QAA8B,mCAAU;QAAxC;;QAQA,CAAC;QAPG,4BAAE,GAAF,UAAG,QAAmB,EAAE,QAAqC;YAArC,yBAAA,EAAA,WAAmB,IAAI,CAAC,WAAW,EAAE;YACzD,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;QAED,6BAAG,GAAH,UAAI,QAAmB,EAAE,QAAqC;YAArC,yBAAA,EAAA,WAAmB,IAAI,CAAC,WAAW,EAAE;YAC1D,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACL,sBAAC;IAAD,CARA,AAQC,CAR6B,UAAU,GAQvC;IAED;QAAA;QAWA,CAAC;QAVU,eAAS,GAAhB,UAAiB,KAAK,EAAE,QAAQ;YAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK;gBACvC,IAAI,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACjD,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACP,CAAC;QAEM,cAAQ,GAAf,UAAgB,KAAK,EAAE,OAAO;YAC1B,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QACL,YAAC;IAAD,CAXA,AAWC,IAAA;IAXY,eAAK,QAWjB,CAAA;IAED;;OAEG;IACH;QAOI,cAAmB,OAAO,EAAU,OAAe,EAAU,QAAgB;YAAzC,wBAAA,EAAA,eAAe;YAAU,yBAAA,EAAA,gBAAgB;YAA1D,YAAO,GAAP,OAAO,CAAA;YAAU,YAAO,GAAP,OAAO,CAAQ;YAAU,aAAQ,GAAR,QAAQ,CAAQ;YANtE,eAAU,GAAQ,EAAE,CAAC;YACrB,WAAM,GAAQ,EAAE,CAAC;YAEjB,WAAM,GAAQ,EAAE,CAAC;YAIpB,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAE/C,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3B,2BAA2B;gBAC3B,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACvC,CAAC;YAED,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAE3B,YAAY;YACZ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAE5D,QAAQ;YACR,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACrE,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;YACxD,CAAC;YAED,YAAY;YACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC;YAED,YAAY;YACZ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC9D,CAAC;YAED,mBAAmB;YACnB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1D,CAAC;YAED,WAAW;YACX,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACvC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5D,CAAC;YAED,yBAAyB;YACzB,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;YAED,aAAa;YACb,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAE1D,EAAE,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACxF,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACzF,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1F,CAAC;YAED,YAAY;YACZ,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAChE,CAAC;YAED,OAAO;YACP,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;YAED,QAAQ;YACR,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,QAAQ;YACR,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;YAC1C,CAAC;YAED,KAAK,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAED,sBAAO,GAAP;YACI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAoB;gBAC3D,SAAS,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAC1C,yBAAyB;QAC7B,CAAC;QAED,wBAAS,GAAT;YACI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,yBAAU,GAAV;YACI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;QACL,WAAC;IAAD,CA3GA,AA2GC,IAAA;IA3GY,cAAI,OA2GhB,CAAA;AACL,CAAC,EAh9BS,SAAS,KAAT,SAAS,QAg9BlB;AAED,MAAM,CAAC,UAAU,CAAC;IACd,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC;QAClB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","file":"../../frontend/totalpoll.js","sourcesContent":["declare var jQuery;\nnamespace TotalPoll {\n    export var Polls = {};\n\n    /**\n     * Utils\n     */\n    class Modal {\n        public element;\n        public template = `\n<style type=\"text/css\">\n    @-webkit-keyframes modalFadeIn {\n        from {\n            opacity: 0;\n        }   \n        \n        to {\n            opacity: 1;\n        } \n    }\n        \n    @keyframes modalFadeIn {\n        from {\n            opacity: 0;\n        }   \n        \n        to {\n            opacity: 1;\n        } \n    }\n        \n    @-webkit-keyframes modalFadeOut {\n        from {\n            opacity: 1;\n        }   \n        \n        to {\n            opacity: 0;\n        } \n    }\n        \n    @keyframes modalFadeOut {\n        from {\n            opacity: 1;\n        }   \n        \n        to {\n            opacity: 0;\n        } \n    }\n    \n    .totalpoll-modal {\n        position:fixed;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        z-index: 999999999;\n        width: 100%;\n        height: 100%;\n        background: rgba(0,0,0,0.9);\n        display: none;\n        -webkit-box-orient: vertical;\n        -webkit-box-direction: normal;\n        -webkit-flex-direction: column;\n            -ms-flex-direction: column;\n                flex-direction: column;\n        -webkit-box-align: center;\n        -webkit-align-items: center;\n            -ms-flex-align: center;\n                align-items: center;\n        -webkit-box-pack: center;\n        -webkit-justify-content: center;\n            -ms-flex-pack: center;\n                justify-content: center;\n    }\n    \n    .totalpoll-modal.totalpoll-is-visible {\n        display: -webkit-box;\n        display: -webkit-flex;\n        display: -ms-flexbox;\n        display: flex;\n        -webkit-animation: modalFadeIn 0.2s ease-in forwards;\n                animation: modalFadeIn 0.2s ease-in forwards;\n    }    \n    \n    .totalpoll-modal.totalpoll-is-hiding {\n        display: -webkit-box;\n        display: -webkit-flex;\n        display: -ms-flexbox;\n        display: flex;\n        -webkit-animation: modalFadeOut 0.2s ease-in forwards;\n                animation: modalFadeOut 0.2s ease-in forwards;\n    }\n    \n    .totalpoll-modal-content {\n        position: relative;\n        display: -webkit-box;\n        display: -webkit-flex;\n        display: -ms-flexbox;\n        display: flex;\n        -webkit-box-flex: 1;\n        -webkit-flex: 1;\n            -ms-flex: 1;\n                flex: 1;\n        width: 100%;\n        height: 100%;\n        max-width: 100vh;\n        max-width: 100%;\n        max-height: 100vh;\n        max-height: 100%;\n        -webkit-box-sizing: border-box;\n                box-sizing: border-box;\n        -webkit-box-align: center;\n        -webkit-align-items: center;\n            -ms-flex-align: center;\n                align-items: center;\n        -webkit-box-pack: center;\n        -webkit-justify-content: center;\n            -ms-flex-pack: center;\n                justify-content: center;\n    }\n    \n    @media (min-width:768px){\n        .totalpoll-modal-content {\n            max-width: 85vh;\n            max-width: 85%;\n            max-height: 85vh;\n            max-height: 85%;\n            padding: 2em;\n        }\n    }\n    \n    .totalpoll-modal-content img {\n        max-width: 100%!important;\n        max-height: 100%!important;\n        width: auto!important;\n        height: auto!important;\n    }\n        \n    .totalpoll-modal-content .totalpoll-embed-type-image {\n        position: absolute;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        display: -webkit-box;\n        display: -webkit-flex;\n        display: -ms-flexbox;\n        display: flex;\n        -webkit-box-align: center;\n        -webkit-align-items: center;\n            -ms-flex-align: center;\n                align-items: center;\n        -webkit-box-pack: center;\n        -webkit-justify-content: center;\n            -ms-flex-pack: center;\n                justify-content: center;\n        margin: auto;\n        text-align: center;\n    }\n    \n    .totalpoll-modal-content .totalpoll-embed-type-video {\n        position: relative;\n        padding-bottom: 56.25%;\n        overflow: hidden;\n        max-width: 100%;\n        width: 100%;\n    }\n    \n    .totalpoll-modal-content .totalpoll-embed-type-video iframe, .totalpoll-modal-content .totalpoll-embed-type-video object, .totalpoll-modal-content .totalpoll-embed-type-video embed,.totalpoll-modal-content .totalpoll-embed-type-video video, .totalpoll-modal-content .totalpoll-embed-type-video audio {\n        position: absolute;\n        top: 0;\n        right: 0;\n        bottom: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n    }\n    \n    .totalpoll-modal-close {\n        position: absolute;\n        top: 1em;\n        right: 1em;\n        width: 3em;\n        height: 3em;\n        padding: 1em;\n        border: 1px solid rgba(255, 255, 255, 0.1);\n        -webkit-border-radius: 50%;\n                border-radius: 50%;\n        fill: white;\n        cursor: pointer;\n        background: rgba(0, 0, 0, 0.5);\n        -webkit-box-sizing: border-box;\n                box-sizing: border-box;\n    }\n    \n    .totalpoll-modal-close svg {\n        vertical-align: top;\n        opacity: 0.5;\n        -webkit-transition: 0.2s all ease-out;\n        -o-transition: 0.2s all ease-out;\n        transition: 0.2s all ease-out;\n    }\n    \n    .totalpoll-modal-close:hover svg {\n        opacity: 1;\n        -webkit-transform: scale(1.1);\n            -ms-transform: scale(1.1);\n                transform: scale(1.1);\n    }\n    \n    .totalpoll-modal-close:active svg {\n        -webkit-transform: scale(0.8);\n            -ms-transform: scale(0.8);\n                transform: scale(0.8);\n    }\n    \n</style>\n<div class=\"totalpoll-modal\">\n    <div class=\"totalpoll-modal-content\"></div>\n    <div class=\"totalpoll-modal-close\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"5 5 14 14\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/><path d=\"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"/></svg>\n    </div>\n</div>`;\n\n        constructor() {\n            this.create();\n            this.appendToBody();\n\n            this.element.on('click', (event) => {\n                if (jQuery(event.srcElement).hasClass('totalpoll-modal') || jQuery(event.srcElement).hasClass('totalpoll-modal-content')) {\n                    this.hide();\n                }\n            });\n\n            this.element.find('.totalpoll-modal-close').on('click', () => {\n                this.hide();\n            });\n        }\n\n        appendToBody() {\n            jQuery(document.body).append(this.element);\n        }\n\n        create() {\n            this.element = jQuery(this.template);\n        }\n\n        hide() {\n            this.element.removeClass('totalpoll-is-visible');\n            this.element.addClass('totalpoll-is-hiding');\n            jQuery(document).unbind('keydown.totalpoll-modal');\n            setTimeout(() => {\n                this.element.removeClass('totalpoll-is-hiding');\n                document.documentElement.style.overflowY = 'initial';\n                this.element.find('.totalpoll-modal-content').html('');\n            }, 200);\n        }\n\n        remove() {\n            this.element.remove();\n        }\n\n        setContent(content) {\n            this.element.find('.totalpoll-modal-content').html(content);\n        }\n\n        show() {\n            document.documentElement.style.overflowY = 'hidden';\n            this.element.addClass('totalpoll-is-visible');\n            jQuery(document).one(\n                'keydown.totalpoll-modal',\n                (event) => {\n                    if (event.which === 27) {\n                        this.hide();\n                    }\n                }\n            );\n        }\n    }\n\n    /**\n     * Behaviours\n     */\n    interface Behaviour {\n        destroy();\n    }\n\n    class AjaxBehaviour implements Behaviour {\n        private loader = jQuery(`\n            <style>\n            .totalpoll-wrapper { \n                position: relative; \n            }\n            \n            @-webkit-keyframes totalpoll-fade-in {\n                form {\n                    opacity: 0;\n                }\n                to {\n                    opacity: 1;\n                }\n            }\n            \n            @keyframes totalpoll-fade-in {\n                form {\n                    opacity: 0;\n                }\n                to {\n                    opacity: 1;\n                }\n            }\n            \n            .totalpoll-form-loading {\n                position: absolute;\n                top: 0;\n                left: 0;\n                right: 0;\n                bottom: 0;\n                width: 100%;\n                height: 100%;\n                display: -webkit-box;\n                display: -webkit-flex;\n                display: -ms-flexbox;\n                display: flex;\n                -webkit-box-orient: vertical;\n                -webkit-box-direction: normal;\n                -webkit-flex-direction: column;\n                    -ms-flex-direction: column;\n                        flex-direction: column;\n                -webkit-box-pack: center;\n                -webkit-justify-content: center;\n                    -ms-flex-pack: center;\n                        justify-content: center;\n                -webkit-box-align: center;\n                -webkit-align-items: center;\n                    -ms-flex-align: center;\n                        align-items: center;\n                background-color: rgba(255,255,255, 0.3);\n                opacity: 0;\n                -webkit-animation: totalpoll-fade-in 300ms ease-in forwards;\n                        animation: totalpoll-fade-in 300ms ease-in forwards;\n            }\n            </style>\n<div class=\"totalpoll-form-loading\">\n    <svg width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"#000000\">\n    <g fill=\"none\" fill-rule=\"evenodd\">\n        <g transform=\"translate(1 1)\" stroke-width=\"2\">\n            <circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n            <path d=\"M36 18c0-9.94-8.06-18-18-18\">\n                <animateTransform\n                    attributeName=\"transform\"\n                    type=\"rotate\"\n                    from=\"0 18 18\"\n                    to=\"360 18 18\"\n                    dur=\"1s\"\n                    repeatCount=\"indefinite\"/>\n            </path>\n        </g>\n    </g>\n</svg>\n</div>`);\n\n        constructor(private poll: Poll) {\n\n            poll.element.find('[type=\"submit\"]').on('click', function (event) {\n                poll.element.find('[name=\"totalpoll[action]\"]').val(this.value);\n            });\n            poll.element.find('form').on('submit', (event) => {\n                this.load(this.poll.config.ajaxEndpoint, new FormData(event.currentTarget), 'POST');\n                event.preventDefault();\n            });\n        }\n\n        destroy() {\n        }\n\n        load(url, data = {}, method = 'GET') {\n            this.poll.element.css('pointer-events', 'none');\n            this.poll.element.parent().css('min-height', this.poll.element.parent().outerHeight());\n\n            this.poll.element.prepend(this.loader);\n\n            this.poll.transition.out(() => {\n\n                jQuery.ajax({\n                    url: url,\n                    data: data,\n                    processData: method != 'POST',\n                    contentType: false,\n                    type: method,\n                })\n                    .done((response) => {\n                        let $poll = jQuery(response);\n                        $poll.find('.totalpoll-container').hide();\n\n                        this.poll.transition.out(() => {\n                            this.poll.element.replaceWith($poll);\n                            let poll = new TotalPoll.Poll($poll, true, this.poll.config['behaviours']['async']);\n                            poll.transition.in(() => {\n                                poll.element.parent().css('min-height', 0);\n                            });\n                        });\n                    })\n                    .fail((error) => {\n                        this.poll.element.removeAttr('style');\n                        console.error(this.poll.config['i18n']['Something went wrong! Please try again.'], error);\n                    });\n            });\n        }\n    }\n\n    class SliderBehaviour implements Behaviour {\n        public $buttons;\n        public $currentSlide;\n        public $navigationButtons;\n        public $nextButton;\n        public $previousButton;\n        public $slides;\n        public $voteButton;\n        public $resultsButton;\n        public hasCustomFields = false;\n        public currentSlide = 0;\n\n        //@PRO\n        constructor(private poll: Poll) {\n            if (poll.screen === 'vote' || poll.screen === 'results') {\n                poll.element.find('.totalpoll-form-custom-fields').attr('totalpoll-valid-selection', 'true');\n                this.setupButtons(poll.element.find('.totalpoll-buttons'), poll.element.find('.totalpoll-button'));\n                this.setupSlides(poll.element.find('.totalpoll-question, .totalpoll-form-custom-fields:has(input)'));\n            }\n        }\n\n        destroy() {\n        }\n\n        isFirstSlide() {\n            return this.currentSlide === 0;\n        }\n\n        isLastSlide() {\n            return this.$slides.length === this.currentSlide + 1;\n        }\n\n        isValidSelection() {\n            return this.$currentSlide.is('[totalpoll-valid-selection=\"true\"]');\n        }\n\n        nextSlide(event) {\n            if (this.isLastSlide()) {\n                return;\n            } else {\n                event.preventDefault();\n                this.setSlide(this.currentSlide + 1);\n                this.scroll();\n            }\n\n        }\n\n        previousSlide(event) {\n            if (this.isFirstSlide()) {\n                return;\n            } else {\n                event.preventDefault();\n                this.setSlide(this.currentSlide - 1);\n                this.scroll();\n            }\n        }\n\n        refreshButtons() {\n            this.$buttons.hide();\n            this.$nextButton[this.isLastSlide() || (this.poll.behaviours['oneClick'] && this.poll.screen === 'vote') ? 'hide' : 'show']();\n            this.$previousButton[this.isFirstSlide() || (this.poll.behaviours['oneClick'] && this.poll.screen === 'vote') ? 'hide' : 'show']();\n            this.$buttons[this.isLastSlide() && (!this.poll.behaviours['oneClick'] || this.poll.screen === 'vote') ? 'show' : 'hide']();\n\n            if (this.poll.screen === 'vote') {\n                this.$voteButton.prop('disabled', !this.isValidSelection());\n                this.$nextButton.prop('disabled', !this.isValidSelection());\n\n                if (this.poll.behaviours['oneClick']) {\n                    this.$voteButton[this.hasCustomFields && this.isLastSlide() ? 'show' : 'hide']();\n                    this.$resultsButton.show();\n                }\n            }\n        }\n\n        setSlide(index) {\n            this.$slides.eq(this.currentSlide).fadeOut(500, () => {\n                this.currentSlide = index;\n                this.$currentSlide = this.$slides.eq(this.currentSlide);\n                this.$currentSlide.fadeIn();\n                this.refreshButtons();\n\n                if (this.poll.config.scrollUp) {\n                    jQuery('html, body').animate({scrollTop: this.poll.element.offset().top - 100}, 1000);\n                }\n            });\n        }\n\n        setupButtons(container, buttons) {\n            this.$buttons = buttons;\n            this.$voteButton = this.$buttons.filter('button[value=\"vote\"]');\n            this.$resultsButton = this.$buttons.filter('button[value=\"results\"]');\n\n            this.$previousButton = jQuery(`<button type=\"button\" class=\"totalpoll-button totalpoll-buttons-slider-previous\">${this.poll.config['i18n']['Previous']}</button>`);\n            this.$nextButton = jQuery(`<button type=\"button\" class=\"totalpoll-button totalpoll-buttons-slider-next\">${this.poll.config['i18n']['Next']}</button>`);\n\n            container.prepend(this.$previousButton);\n            container.append(this.$nextButton);\n\n            if (this.poll.behaviours['oneClick'] && this.poll.screen === 'vote') {\n                if (this.$resultsButton) {\n                    this.$resultsButton.show();\n                }\n\n                this.$voteButton.hide();\n                this.$previousButton.hide();\n                this.$nextButton.hide();\n            }\n\n            if (this.poll.screen === 'results' && !this.poll.element.find('.totalpoll-question').length) {\n                this.$previousButton.hide();\n                this.$nextButton.hide();\n            }\n\n            this.$voteButton.on('click', (event) => this.nextSlide(event));\n            this.$previousButton.on('click', (event) => this.previousSlide(event));\n            this.$nextButton.on('click', (event) => this.nextSlide(event));\n        }\n\n        setupSlides(slides) {\n            this.hasCustomFields = slides.is('.totalpoll-form-custom-fields');\n            this.$slides = slides;\n            this.$slides.hide();\n\n            let $questions = this.$slides.filter('.totalpoll-question');\n            $questions.each((index, element) => {\n                let $question = jQuery(element);\n                $question.append(`<div class=\"totalpoll-question-number\">${index + 1} ${this.poll.config['i18n']['of']} ${$questions.length}</div>`);\n                $question.on('change', 'input[type=\"checkbox\"], input[type=\"radio\"]', (event) => {\n                    this.refreshButtons();\n                });\n            });\n\n            this.setSlide(0);\n\n            // Move to custom fields if there are errors\n            if (this.$slides.last().find('.totalpoll-form-field-errors-item').length) {\n                this.setSlide(this.$slides.length - 1);\n            }\n        }\n\n        scroll() {\n            if (this.poll.config['behaviours']['scrollUp']) {\n                jQuery('html, body').animate({scrollTop: this.poll.element.offset().top - 100}, 1000);\n            }\n        }\n\n        //@END-PRO\n    }\n\n    class OneClickBehaviour implements Behaviour {\n        //@PRO\n        constructor(poll: Poll) {\n            var $voteButton = poll.element.find('.totalpoll-buttons-vote');\n            $voteButton.hide();\n            poll.element.find('.totalpoll-question input[type=\"checkbox\"], .totalpoll-question input[type=\"radio\"]').on('change', function (event) {\n                $voteButton.prop('disabled', false).trigger('click');\n            });\n        }\n\n        destroy() {\n        }\n\n        //@END-PRO\n    }\n\n    class ScrollUpBehaviour implements Behaviour {\n        constructor(poll: Poll) {\n            if (poll.isViaAjax() && !poll.isViaAsync()) {\n                setTimeout(() => {\n                    jQuery('html, body').animate({scrollTop: poll.element.offset().top - 100}, 1000);\n                }, 200);\n            }\n        }\n\n        destroy() {\n        }\n    }\n\n    class EmbedResizingBehaviour implements Behaviour {\n        public listener;\n\n        constructor(public poll) {\n            this.listener = (event) => this.receiveRequest(event);\n            window.addEventListener(\"message\", this.listener, false);\n        }\n\n        destroy() {\n            window.removeEventListener(\"message\", this.listener);\n        }\n\n        postHeight() {\n            top.postMessage({\n                totalpoll: {\n                    id: this.poll.id,\n                    action: 'resizeHeight',\n                    value: jQuery(document.body).height()\n                }\n            }, '*');\n        }\n\n        receiveRequest(event) {\n            if (event.data.totalpoll && event.data.totalpoll.id === this.poll.id && event.data.totalpoll.action === 'requestHeight') {\n                this.postHeight();\n            }\n        }\n    }\n\n    class SelectionBehaviour implements Behaviour {\n        constructor(private poll: Poll) {\n            poll.element.find('.totalpoll-question input[type=\"checkbox\"], .totalpoll-question input[type=\"radio\"]').on('change', function (event) {\n                var valid = false;\n                var $this = jQuery(this);\n                var $question = $this.closest('.totalpoll-question');\n                var $otherChoice = $question.find('.totalpoll-question-choices-other');\n                var $otherChoiceField = $otherChoice.find('input[type=\"text\"]');\n                var minSelection = parseInt($question.attr('totalpoll-min-selection')) || 0;\n                var maxSelection = parseInt($question.attr('totalpoll-max-selection')) || 1;\n\n                $question.find('.totalpoll-question-choices-item').removeClass('totalpoll-question-choices-item-checked');\n                $question.find('.totalpoll-question-choices-item:has(input:checked)').addClass('totalpoll-question-choices-item-checked');\n\n                var $checked = $question.find('input[type=\"checkbox\"]:checked, input[type=\"radio\"]:checked');\n                var $unchecked = $question.find('input[type=\"checkbox\"]:not(:checked), input[type=\"radio\"]:not(:checked)');\n                if (maxSelection == 1) {\n                    valid = Boolean($checked.length) || minSelection == 0;\n                } else if ($checked.length >= maxSelection) {\n                    $unchecked.prop('disabled', true);\n                    valid = true;\n                    if ($otherChoiceField.length && !$otherChoiceField.val().trim() && !$this.parents('.totalpoll-question-choices-other').length) {\n                        $otherChoice.hide();\n                    }\n                } else {\n                    $unchecked.prop('disabled', false);\n                    valid = $checked.length >= minSelection;\n                    if ($otherChoiceField.length && !$otherChoiceField.val().trim()) {\n                        $otherChoice.show();\n                    }\n                }\n\n                $question.attr('totalpoll-valid-selection', valid ? 'true' : 'false');\n\n                $question.find('.totalpoll-question-choices-item').removeClass('totalpoll-question-choices-item-disabled');\n                $question.find('.totalpoll-question-choices-item:has(input:disabled)').addClass('totalpoll-question-choices-item-disabled');\n            });\n            poll.element.find('.totalpoll-question input[type=\"text\"]').on('focus', function (event) {\n                jQuery(this).closest('label').find('input[type=\"checkbox\"], input[type=\"radio\"]').prop('checked', true).change();\n            });\n            poll.element.find('.totalpoll-question input[type=\"text\"]').on('blur', function (event) {\n                jQuery(this).closest('label').find('input[type=\"checkbox\"], input[type=\"radio\"]').prop('checked', Boolean(this.value.trim())).change();\n            });\n\n            poll.element.find('.totalpoll-question input[type=\"checkbox\"], .totalpoll-question input[type=\"radio\"]').change();\n        }\n\n        destroy() {\n        }\n    }\n\n    class ModalBehaviour implements Behaviour {\n        public modal = new Modal();\n\n        constructor(private poll: Poll) {\n            jQuery(poll.element).on('click', '[totalpoll-modal]', (event) => {\n                var selector = jQuery(event.currentTarget).attr('totalpoll-modal');\n                if (selector) {\n                    this.modal.setContent(jQuery(selector).clone());\n                }\n\n                this.modal.show();\n\n                event.preventDefault();\n            });\n        }\n\n\n        destroy() {\n            this.modal.remove();\n        }\n    }\n\n    class reCaptchaBehaviour implements Behaviour {\n        readonly invisible: Boolean;\n        readonly widget;\n        private $form;\n        private $recaptcha;\n        private valid: Boolean = false;\n\n        constructor(private poll: Poll) {\n            this.$recaptcha = poll.element.find('.g-recaptcha');\n            this.$form = poll.element.find('form');\n            this.invisible = this.$recaptcha.data('size') === 'invisible';\n\n            this.widget = this.invisible ? this.$form.find('[type=\"submit\"][value=\"vote\"]').get(0) : this.$recaptcha.get(0);\n\n            // Invisible\n            if (this.invisible) {\n                this.$form.on('submit', (event) => this.validate(event));\n                window['grecaptcha'].ready(() => this.render());\n            } else if (this.poll.isViaAjax()) {\n                this.render();\n            }\n        }\n\n        destroy() {\n            this.$recaptcha.remove();\n        }\n\n        render() {\n            window['grecaptcha'].render(this.widget, {\n                    sitekey: this.$recaptcha.data('sitekey'),\n                    callback: () => {\n                        this.valid = true;\n                        if (this.invisible) {\n                            this.$form.trigger('submit');\n                        }\n                    }\n                }\n            );\n        }\n\n        validate(event) {\n            if (!this.valid) {\n                event.preventDefault();\n            }\n        }\n    }\n\n    class CountUpBehaviour implements Behaviour {\n        constructor(private poll: Poll) {\n            poll.element.find('[totalpoll-count-up]').each((index, element) => {\n                // Prepare arguments\n                let $element = jQuery(element);\n                let countTo = Number($element.attr('totalpoll-count-up'));\n                let format = $element.attr('totalpoll-count-format') || \"{counter}\";\n                let pad = Number($element.attr('totalpoll-count-pad')) || 2;\n                // Start\n                this.start($element, countTo, format, pad);\n            });\n        }\n\n        destroy() {\n\n        }\n\n        start(el, countTo, format, pad = 2) {\n            jQuery({counter: 0, format, pad, el})\n                .animate({counter: countTo}, {\n                    duration: 900,\n                    step: this.step,\n                    complete: this.step\n                });\n        }\n\n        step() {\n            let formatedCounter = this['format'].replace('{counter}', CountUpBehaviour.padStart(Math.round(this['counter']), this['pad']));\n            this['el'].text(formatedCounter);\n        }\n\n        static padStart(number, targetLength, padString = \"0\") {\n            targetLength = targetLength >> 0; //truncate if number, or convert non-number to 0;\n            padString = String(typeof padString !== 'undefined' ? padString : ' ');\n            if (number.length >= targetLength) {\n                return String(number);\n            } else {\n                targetLength = targetLength - number.length;\n                if (targetLength > padString.length) {\n                    padString += padString['repeat'](targetLength / padString.length); //append to original to ensure we are longer than needed\n                }\n                return padString.slice(0, targetLength) + String(number);\n            }\n        }\n    }\n\n    class CustomFieldsPosition implements Behaviour {\n        constructor(private poll: Poll) {\n            poll.element.find('.totalpoll-questions').before(poll.element.find('.totalpoll-form-custom-fields'));\n        }\n\n        destroy() {\n\n        }\n    }\n\n    /**\n     * Transitions\n     */\n    abstract class Transition {\n        constructor(public element, public duration: number) {\n            this.element = jQuery(element);\n        }\n\n        getDuration() {\n            return Number(this.duration);\n        }\n\n        getElement() {\n            return this.element;\n        }\n\n        abstract in(callback?: Function, duration?: number);\n\n        abstract out(callback?: Function, duration?: number);\n    }\n\n    class SimpleTransition extends Transition {\n        in(callback?: Function, duration: number = this.getDuration()) {\n            this.getElement().css({'visibility': 'visible', 'display': 'inherit'});\n            if (callback) {\n                callback();\n            }\n        }\n\n        out(callback?: Function, duration: number = this.getDuration()) {\n            this.getElement().css('visibility', 'hidden');\n            if (callback) {\n                callback();\n            }\n        }\n    }\n\n    class FadeTransition extends Transition {\n        in(callback?: Function, duration: number = this.getDuration()) {\n            this.getElement().fadeIn(duration, callback);\n        }\n\n        out(callback?: Function, duration: number = this.getDuration()) {\n            this.getElement().fadeTo(duration, 0.2, callback);\n        }\n    }\n\n    class SlideTransition extends Transition {\n        in(callback?: Function, duration: number = this.getDuration()) {\n            this.getElement().slideDown(duration, callback);\n        }\n\n        out(callback?: Function, duration: number = this.getDuration()) {\n            this.getElement().slideUp(duration, callback);\n        }\n    }\n\n    export class Hooks {\n        static addAction(event, callback) {\n            jQuery(TotalPoll).on(event, function (event) {\n                let payload = [].slice.call(arguments).splice(1);\n                callback.apply(event, payload);\n            });\n        }\n\n        static doAction(event, payload) {\n            jQuery(TotalPoll).triggerHandler(event, payload);\n        }\n    }\n\n    /**\n     * Poll\n     */\n    export class Poll {\n        public behaviours: any = {};\n        public config: any = {};\n        public id;\n        public screen: any = '';\n        public transition: Transition;\n\n        constructor(public element, private viaAjax = false, private viaAsync = false) {\n            this.id = element.attr('totalpoll');\n            this.config = JSON.parse(element.find('[totalpoll-config]').text());\n            this.screen = element.attr('totalpoll-screen');\n\n            if (TotalPoll.Polls[this.id]) {\n                // Destroy the old instance\n                TotalPoll.Polls[this.id].destroy();\n            }\n\n            TotalPoll.Polls[this.id] = this;\n            element.data('poll', this);\n\n            // Selection\n            this.behaviours['selection'] = new SelectionBehaviour(this);\n\n            // Modal\n            if (this.config['behaviours']['disableModal']) {\n                this.element.find('[totalpoll-modal]').remove();\n                this.element.find('.has-thumbnail').removeClass('has-thumbnail');\n            } else {\n                this.behaviours['modal'] = new ModalBehaviour(this);\n            }\n\n            // Scroll up\n            if (this.config['behaviours']['scrollUp']) {\n                this.behaviours['scrollUp'] = new ScrollUpBehaviour(this);\n            }\n\n            // One-click\n            if (this.config['behaviours']['oneClick']) {\n                this.behaviours['oneClick'] = new OneClickBehaviour(this);\n            }\n\n            // Questions slider\n            if (this.config['behaviours']['slider']) {\n                this.behaviours['slider'] = new SliderBehaviour(this);\n            }\n\n            // Count up\n            if (this.config['behaviours']['countUp']) {\n                this.behaviours['countUp'] = new CountUpBehaviour(this);\n            }\n\n            // Custom fields position\n            if (this.config['behaviours']['fieldsFirst']) {\n                this.behaviours['fieldsFirst'] = new CustomFieldsPosition(this);\n            }\n\n            // Transition\n            let transition = this.config['effects']['transition'];\n            let container = this.element.find('.totalpoll-container');\n\n            if (transition == 'fade') {\n                this.transition = new FadeTransition(container, this.config['effects']['duration']);\n            } else if (transition == 'slide') {\n                this.transition = new SlideTransition(container, this.config['effects']['duration']);\n            } else {\n                this.transition = new SimpleTransition(container, this.config['effects']['duration']);\n            }\n\n            // reCaptcha\n            if (window['grecaptcha'] && element.find('.g-recaptcha').length) {\n                this.behaviours['recaptcha'] = new reCaptchaBehaviour(this);\n            }\n\n            // Ajax\n            if (this.config['behaviours']['async'] || this.config['behaviours']['ajax']) {\n                this.behaviours['ajax'] = new AjaxBehaviour(this);\n            }\n\n            // Async\n            if (this.config['behaviours']['async']) {\n                this.behaviours['ajax'].load(element.attr('totalpoll-ajax-url'));\n            }\n\n            // Embed\n            if (window.top !== window.self) {\n                this.behaviours['embed'] = new EmbedResizingBehaviour(this);\n                this.behaviours['embed'].postHeight();\n            }\n\n            Hooks.doAction('totalpoll/init', this);\n        }\n\n        destroy() {\n            jQuery.each(this.behaviours, function (id, behaviour: Behaviour) {\n                behaviour.destroy();\n            });\n            Hooks.doAction('totalpoll/destroy', this);\n            // this.element.remove();\n        }\n\n        isViaAjax() {\n            return this.viaAjax;\n        }\n\n        isViaAsync() {\n            return this.viaAsync;\n        }\n    }\n}\n\njQuery(function ($) {\n    $('[totalpoll]').each(function () {\n        new TotalPoll.Poll($(this));\n    });\n});\n"]}