{"version":3,"mappings":"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BACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,oCACX,EAAG,CACD,KAAM,IACN,QAAS,UACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,YACX,EAAG,CACD,KAAM,IACN,QAAS,OACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,EAAG,CACD,KAAM,IACN,QAAS,qCACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,KACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,IACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,WACX,EAAG,CACD,KAAM,IACN,QAAS,eACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,EAAG,CACD,KAAM,KACN,QAAS,IACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,IACN,QAAS,iBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,sBACX,EAAG,CACD,KAAM,IACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,EAAG,CACD,KAAM,IACN,QAAS,qBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,UACX,EAAG,CACD,KAAM,IACN,QAAS,mBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,YACX,EAAG,CACD,KAAM,IACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mBACX,EAAG,CACD,KAAM,IACN,QAAS,oBACX,EAAG,CACD,KAAM,IACN,QAAS,kBACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,oCACX,EAAG,CACD,KAAM,IACN,QAAS,UACX,EAAG,CACD,KAAM,KACN,QAAS,GACX,EAAG,CACD,KAAM,IACN,QAAS,aACX,EAAG,CACD,KAAM,IACN,QAAS,OACX,EAAG,CACD,KAAM,IACN,QAAS,kBACX,EAAG,CACD,KAAM,IACN,QAAS,gBACX,CAAC,EACGC,IAAe,IAAI,OAAO,IAAMD,GAAW,IAAI,SAAU9tD,EAAG,CAC9D,OAAOA,EAAE,OACX,CAAC,EAAE,KAAK,EAAE,EAAI,IAAK,GAAG,EAClBguD,GAAkB,GAEtB,QAASxyF,GAAI,EAAGA,GAAIsyF,GAAW,OAAQtyF,KAGrC,QAFIyyF,GAAYH,GAAWtyF,EAAC,EAEnBoT,GAAI,EAAGA,GAAIq/E,GAAU,QAAQ,OAAQr/E,KAC5Co/E,GAAgBC,GAAU,QAAQr/E,EAAC,CAAC,EAAIq/E,GAAU,KAItD,IAAIC,GAAkB,SAAyBvhB,EAAK,CAClD,OAAOA,EAAI,QAAQohB,IAAc,SAAU5yF,EAAO,CAChD,OAAO6yF,GAAgB7yF,CAAK,EAC7B,CACH,EAEIgzF,IAAkClD,IAAWiD,EAAe,EAE5DE,GAAa,SAAoBzhB,EAAK,CACjC,OAAAA,EAAI,QAAQ,aAAc,EAAE,CACrC,EAEI0hB,IAAmB,SAA0BvpF,EAAQ,CAChD,SAAG,OAAOA,EAAO,MAAO,GAAG,EAAE,OAAOA,EAAO,KAAK,CACzD,EAEIwpF,IAAe,SAAsBrgB,EAAQ,CACxC,gBAAUnpE,EAAQypF,EAAU,CACjC,IAAIC,EAAwBzP,GAAe,CACzC,WAAY,GACZ,cAAe,GACf,UAAWsP,IACX,KAAM,GACN,UAAW,OACVpgB,CAAM,EACLwgB,EAAaD,EAAsB,WACnCE,EAAgBF,EAAsB,cACtCxY,EAAYwY,EAAsB,UAClC9hB,EAAO8hB,EAAsB,KAC7BG,EAAYH,EAAsB,UAElClvF,EAAQotE,EAAO0hB,GAAWG,CAAQ,EAAIA,EACtCj3F,EAAYo1E,EAAO0hB,GAAWpY,EAAUlxE,CAAM,CAAC,EAAIkxE,EAAUlxE,CAAM,EAEvE,OAAI2pF,IACFnvF,EAAQA,EAAM,cACdhI,EAAYA,EAAU,eAGpBo3F,IACFpvF,EAAQ6uF,IAAgC7uF,CAAK,EAC7ChI,EAAY42F,GAAgB52F,CAAS,GAGhCq3F,IAAc,QAAUr3F,EAAU,OAAO,EAAGgI,EAAM,MAAM,IAAMA,EAAQhI,EAAU,QAAQgI,CAAK,EAAI,GAE5G,EAEA,SAASsvF,IAAWr9B,EAAM,CACxBA,EAAK,GACDA,EAAK,IACLA,EAAK,SACLA,EAAK,OACLA,EAAK,MACLA,EAAK,KACL,IAAI4yB,EAAW5yB,EAAK,SACpBA,EAAK,QACL,IAAIxmC,EAAQ0+C,GAAyBlY,EAAM,CAAC,KAAM,MAAO,WAAY,SAAU,QAAS,OAAQ,WAAY,SAAS,CAAC,EAEnH,OAAA4qB,GAAI,QAASnxB,GAAS,CAC3B,IAAKm5B,GACJp5D,EAAO,CACR,IAAsBysC,GAAA,CACpB,MAAO,aAEP,WAAY,EACZ,OAAQ,EACR,SAAU,UACV,QAAS,EACT,QAAS,EAET,MAAO,EAEP,MAAO,cAEP,KAAM,KACN,QAAS,EACT,SAAU,WACV,UAAW,YAC8B,GAAmE,EAAk2C,CACj9C,EAAC,CACJ,CAEA,IAAIq3B,IAAe,SAAsBr3F,EAAO,CAC9CA,EAAM,eAAe,EACrBA,EAAM,gBAAgB,CACxB,EAEA,SAASs3F,IAAiBv9B,EAAM,CAC9B,IAAIw9B,EAAYx9B,EAAK,UACjBy9B,EAAiBz9B,EAAK,eACtB09B,EAAgB19B,EAAK,cACrB29B,EAAc39B,EAAK,YACnB49B,EAAa59B,EAAK,WAClB69B,EAAWC,SAAO,EAAK,EACvBC,EAAQD,SAAO,EAAK,EACpBE,EAAaF,SAAO,CAAC,EACrBG,EAAeH,SAAO,IAAI,EAC1BI,EAAmBC,cAAY,SAAUl4F,EAAOu4B,EAAO,CAEzD,GAAIy/D,EAAa,UAAY,KACzB,KAAAG,EAAwBH,EAAa,QACrCxoB,EAAY2oB,EAAsB,UAClChO,EAAegO,EAAsB,aACrCC,EAAeD,EAAsB,aACrCv4F,EAASo4F,EAAa,QACtBK,EAAkB9/D,EAAQ,EAC1B+/D,EAAkBnO,EAAeiO,EAAe5oB,EAChD+oB,EAAqB,GAErBD,EAAkB//D,GAASq/D,EAAS,UAClCH,GAAeA,EAAcz3F,CAAK,EACtC43F,EAAS,QAAU,IAGjBS,GAAmBP,EAAM,UACvBH,GAAYA,EAAW33F,CAAK,EAChC83F,EAAM,QAAU,IAIdO,GAAmB9/D,EAAQ+/D,GACzBd,GAAkB,CAACI,EAAS,SAC9BJ,EAAex3F,CAAK,EAGtBJ,EAAO,UAAYuqF,EACEoO,EAAA,GACrBX,EAAS,QAAU,IACV,CAACS,GAAmB,CAAC9/D,EAAQi3C,IAClCkoB,GAAe,CAACI,EAAM,SACxBJ,EAAY13F,CAAK,EAGnBJ,EAAO,UAAY,EACE24F,EAAA,GACrBT,EAAM,QAAU,IAIdS,GACFlB,IAAar3F,CAAK,EAEtB,EAAG,CAAE,GACDw4F,EAAUN,cAAY,SAAUl4F,EAAO,CACxBi4F,EAAAj4F,EAAOA,EAAM,MAAM,GACnC,CAACi4F,CAAgB,CAAC,EACjBQ,EAAeP,cAAY,SAAUl4F,EAAO,CAE9C+3F,EAAW,QAAU/3F,EAAM,eAAe,CAAC,EAAE,OAC/C,EAAG,CAAE,GACD04F,EAAcR,cAAY,SAAUl4F,EAAO,CAC7C,IAAI24F,EAASZ,EAAW,QAAU/3F,EAAM,eAAe,CAAC,EAAE,QAC1Di4F,EAAiBj4F,EAAO24F,CAAM,GAC7B,CAACV,CAAgB,CAAC,EACjBW,EAAiBV,cAAY,SAAU11E,EAAI,CAE7C,GAAKA,EACL,KAAIq2E,EAAarP,GAAwB,CACvC,QAAS,EACP,KAEA,OAAOhnE,EAAG,kBAAqB,YAC9BA,EAAA,iBAAiB,QAASg2E,EAASK,CAAU,EAG9C,OAAOr2E,EAAG,kBAAqB,YAC9BA,EAAA,iBAAiB,aAAci2E,EAAcI,CAAU,EAGxD,OAAOr2E,EAAG,kBAAqB,YAC9BA,EAAA,iBAAiB,YAAak2E,EAAaG,CAAU,EAEzD,GAACH,EAAaD,EAAcD,CAAO,CAAC,EACnCM,EAAgBZ,cAAY,SAAU11E,EAAI,CAEvCA,IAED,OAAOA,EAAG,qBAAwB,YACjCA,EAAA,oBAAoB,QAASg2E,EAAS,EAAK,EAG5C,OAAOh2E,EAAG,qBAAwB,YACjCA,EAAA,oBAAoB,aAAci2E,EAAc,EAAK,EAGtD,OAAOj2E,EAAG,qBAAwB,YACjCA,EAAA,oBAAoB,YAAak2E,EAAa,EAAK,EAEvD,GAACA,EAAaD,EAAcD,CAAO,CAAC,EACvCO,mBAAU,UAAY,CACpB,GAAKxB,EACL,KAAI13F,EAAUm4F,EAAa,QAC3B,OAAAY,EAAe/4F,CAAO,EACf,UAAY,CACjBi5F,EAAcj5F,CAAO,GAEtB,GAAC03F,EAAWqB,EAAgBE,CAAa,CAAC,EACtC,SAAUj5F,EAAS,CACxBm4F,EAAa,QAAUn4F,CAAA,CAE3B,CAEA,IAAIm5F,GAAa,CAAC,YAAa,SAAU,WAAY,eAAgB,UAAU,EAC3EC,GAAc,CAChB,UAAW,aAEX,SAAU,SACV,SAAU,WACV,OAAQ,MACV,EAEA,SAASC,GAAiB5lF,EAAG,CAC3BA,EAAE,eAAe,CACnB,CAEA,SAAS6lF,GAAe7lF,EAAG,CACzBA,EAAE,gBAAgB,CACpB,CAEA,SAAS8lF,IAAuB,CAC9B,IAAI/0D,EAAM,KAAK,UACXg1D,EAAc,KAAK,aACnBC,EAAgBj1D,EAAM,KAAK,aAE3BA,IAAQ,EACV,KAAK,UAAY,EACRi1D,IAAkBD,IAC3B,KAAK,UAAYh1D,EAAM,EAE3B,CAIA,SAASk1D,IAAgB,CAChB,uBAAkB,QAAU,UAAU,cAC/C,CAEA,IAAI7qB,GAAY,CAAC,EAAE,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,eACnF8qB,GAAoB,EACpBC,GAAkB,CACpB,QAAS,GACT,QAAS,EACX,EACA,SAASC,IAAc3/B,EAAM,CACvB,IAAAw9B,EAAYx9B,EAAK,UACjB4/B,EAAwB5/B,EAAK,qBAC7B6/B,EAAuBD,IAA0B,OAAS,GAAOA,EACjEE,EAAiBhC,SAAO,EAAE,EAC1BG,EAAeH,SAAO,IAAI,EAC1BiC,EAAgB5B,cAAY,SAAU6B,EAAmB,CAC3D,GAAKrrB,GACL,KAAI9uE,EAAS,SAAS,KAClBo6F,EAAcp6F,GAAUA,EAAO,MAW/B,GATAg6F,GAESZ,GAAA,QAAQ,SAAUlnF,EAAK,CAC5B,IAAAoK,EAAM89E,GAAeA,EAAYloF,CAAG,EACzB+nF,EAAA,QAAQ/nF,CAAG,EAAIoK,CAAA,CAC/B,EAIC09E,GAAwBJ,GAAoB,EAAG,CACjD,IAAIS,EAAiB,SAASJ,EAAe,QAAQ,aAAc,EAAE,GAAK,EACtEK,EAAc,SAAS,KAAO,SAAS,KAAK,YAAc,EAC1DC,EAAkB,OAAO,WAAaD,EAAcD,GAAkB,EAC1E,OAAO,KAAKhB,EAAW,EAAE,QAAQ,SAAUnnF,EAAK,CAC1C,IAAAoK,EAAM+8E,GAAYnnF,CAAG,EAErBkoF,IACFA,EAAYloF,CAAG,EAAIoK,EACrB,CACD,EAEG89E,IACFA,EAAY,aAAe,GAAG,OAAOG,EAAiB,IAAI,EAE9D,CAGIv6F,GAAU25F,OAEL35F,EAAA,iBAAiB,YAAas5F,GAAkBO,EAAe,EAElEM,IACgBA,EAAA,iBAAiB,aAAcX,GAAsBK,EAAe,EACpEM,EAAA,iBAAiB,YAAaZ,GAAgBM,EAAe,IAK9DD,IAAA,EACvB,EAAG,CAAE,GACDY,EAAmBlC,cAAY,SAAU6B,EAAmB,CAC9D,GAAKrrB,GACL,KAAI9uE,EAAS,SAAS,KAClBo6F,EAAcp6F,GAAUA,EAAO,MAEnC45F,GAAoB,KAAK,IAAIA,GAAoB,EAAG,CAAC,EAEjDI,GAAwBJ,GAAoB,GACnCR,GAAA,QAAQ,SAAUlnF,EAAK,CAC5B,IAAAoK,EAAM29E,EAAe,QAAQ/nF,CAAG,EAEhCkoF,IACFA,EAAYloF,CAAG,EAAIoK,EACrB,CACD,EAICtc,GAAU25F,OACL35F,EAAA,oBAAoB,YAAas5F,GAAkBO,EAAe,EAErEM,IACgBA,EAAA,oBAAoB,aAAcX,GAAsBK,EAAe,EACvEM,EAAA,oBAAoB,YAAaZ,GAAgBM,EAAe,IAGxF,EAAG,CAAE,GACLV,mBAAU,UAAY,CACpB,GAAKxB,EACL,KAAI13F,EAAUm4F,EAAa,QAC3B,OAAA8B,EAAcj6F,CAAO,EACd,UAAY,CACjBu6F,EAAiBv6F,CAAO,GAEzB,GAAC03F,EAAWuC,EAAeM,CAAgB,CAAC,EACxC,SAAUv6F,EAAS,CACxBm4F,EAAa,QAAUn4F,CAAA,CAE3B,CAIA,IAAIw6F,IAAkB,UAA2B,CAC/C,OAAO,SAAS,eAAiB,SAAS,cAAc,KAAK,CAC/D,EAEI7xB,IAAgD,CAClD,KAAM,UACN,OAAQ,8CACV,EAOA,SAAS8xB,IAAcvgC,EAAM,CACvB,IAAAgI,EAAWhI,EAAK,SAChBwgC,EAAcxgC,EAAK,YACnBygC,EAAsBzgC,EAAK,eAC3B0gC,EAAiBD,IAAwB,OAAS,GAAOA,EACzDhD,EAAiBz9B,EAAK,eACtB09B,EAAgB19B,EAAK,cACrB29B,EAAc39B,EAAK,YACnB49B,EAAa59B,EAAK,WAClB2gC,EAAyBpD,IAAiB,CAC5C,UAAWmD,EACX,eAAAjD,EACA,cAAAC,EACA,YAAAC,EACA,WAAAC,CAAA,CACD,EACGgD,EAAsBjB,IAAc,CACtC,UAAWa,CAAA,CACZ,EAEGK,EAAY,SAAmB/6F,EAAS,CAC1C66F,EAAuB76F,CAAO,EAC9B86F,EAAoB96F,CAAO,GAG7B,OAAO8kF,GAAI5pB,GAAM,SAAU,KAAMw/B,GAAe5V,GAAI,MAAO,CACzD,QAAS0V,IACT,IAAK7xB,GAAA,CACN,EAAGzG,EAAS64B,CAAS,CAAC,CACzB,CAEA,IAAIC,IAAmB,SAA0BC,EAAO,CACtD,OAAOA,EAAM,KACf,EACI3F,IAAiB,SAAwB7nF,EAAQ,CACnD,OAAOA,EAAO,KAChB,EACIytF,IAAiB,SAAwBztF,EAAQ,CACnD,OAAOA,EAAO,KAChB,EACI8nF,IAAmB,SAA0B9nF,EAAQ,CAChD,OAAC,CAACA,EAAO,UAClB,EAEI0tF,IAAgB,CAClB,eAAgBzL,GAChB,UAAWlB,GACX,QAAS8D,GACT,kBAAmB9C,GACnB,MAAOe,GACP,aAAcK,GACd,oBAAqB7B,GACrB,mBAAoBa,GACpB,MAAOmB,GACP,iBAAkBf,GAClB,eAAgBxC,GAChB,KAAM1B,GACN,SAAUiB,GACV,WAAYY,GACZ,WAAYuD,GACZ,gBAAiBC,GACjB,iBAAkBE,GAClB,iBAAkB9D,GAClB,OAAQ0E,GACR,YAAaG,GACb,YAAalC,GACb,eAAgBtB,EAClB,EAsBI1C,IAAS,CACX,QAAS,UACT,UAAW,UACX,UAAW,UACX,UAAW,UACX,OAAQ,UACR,YAAa,UACb,SAAU,mBACV,SAAU,kBACV,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,iBACb,EACID,IAAe,EAEfgB,GAAW,EAEXmO,IAAgB,GAEhBC,IAAapO,GAAW,EACxB/C,IAAU,CACZ,SAAA+C,GACA,cAAAmO,IACA,WAAAC,GACF,EACIC,GAAe,CACjB,aAAArP,IACA,OAAAC,IACA,QAAAhC,GACF,EAEIlxB,IAAe,CACjB,YAAa,SACb,sBAAuB,GACvB,kBAAmBwwB,GAAe,EAClC,kBAAmB,CAACA,GAAe,EACnC,kBAAmB,GACnB,kBAAmB,GACnB,WAAY,CAAC,EACb,yBAA0B,GAC1B,kBAAmB,GACnB,aAAcyN,IAAa,EAC3B,iBAAA+D,IACA,eAAA1F,IACA,eAAA4F,IACA,WAAY,GACZ,UAAW,GACX,QAAS,GACT,MAAO,GACP,aAAc,GACd,iBAAA3F,IACA,eAAgB,UAA0B,CACjC,kBACT,EACA,cAAe,IACf,cAAe,IACf,WAAY,GACZ,cAAe,SACf,aAAc,WACd,sBAAuB,GACvB,yBAA0B,CAAC9L,GAAe,EAC1C,iBAAkB,UAA4B,CACrC,kBACT,EACA,gBAAiB,GACjB,gBAAiB,GACjB,QAAS,CAAC,EACV,SAAU,EACV,YAAa,YACb,mBAAoB,SAA4BvvB,EAAM,CACpD,IAAI1qC,EAAQ0qC,EAAK,MACV,SAAG,OAAO1qC,EAAO,SAAS,EAAE,OAAOA,IAAU,EAAI,IAAM,GAAI,YAAY,CAChF,EACA,OAAQ,CAAC,EACT,SAAU,IACV,gBAAiB,EACnB,EAEA,SAAS+rE,GAAoB7nE,EAAOjmB,EAAQmnF,EAAarnF,EAAO,CAC9D,IAAIkhF,EAAa+M,GAAkB9nE,EAAOjmB,EAAQmnF,CAAW,EAEzD1C,EAAauJ,GAAkB/nE,EAAOjmB,EAAQmnF,CAAW,EAEzD55B,EAAQ0gC,GAAiBhoE,EAAOjmB,CAAM,EACtCnN,EAAQq7F,GAAiBjoE,EAAOjmB,CAAM,EACnC,OACL,KAAM,SACN,KAAMA,EACN,WAAAghF,EACA,WAAAyD,EACA,MAAAl3B,EACA,MAAA16D,EACA,MAAAiN,CAAA,CAEJ,CAEA,SAASquF,GAAwBloE,EAAOkhE,EAAa,CACnD,OAAOlhE,EAAM,QAAQ,IAAI,SAAUmoE,EAAeC,EAAoB,CACpE,GAAID,EAAc,QAAS,CACzB,IAAIE,EAAqBF,EAAc,QAAQ,IAAI,SAAUpuF,EAAQuuF,EAAa,CAChF,OAAOT,GAAoB7nE,EAAOjmB,EAAQmnF,EAAaoH,CAAW,EACnE,EAAE,OAAO,SAAUC,EAAmB,CAC9B,OAAAC,GAAYxoE,EAAOuoE,CAAiB,EAC5C,EACM,OAAAF,EAAmB,OAAS,EAAI,CACrC,KAAM,QACN,KAAMF,EACN,QAASE,EACT,MAAOD,CACL,QACN,CAEA,IAAIG,EAAoBV,GAAoB7nE,EAAOmoE,EAAejH,EAAakH,CAAkB,EACjG,OAAOI,GAAYxoE,EAAOuoE,CAAiB,EAAIA,EAAoB,OACpE,EACA,OAAO,SAAUA,EAAmB,CACnC,MAAO,CAAC,CAACA,CAAA,CACV,CACH,CAEA,SAASE,GAA4CJ,EAAoB,CACvE,OAAOA,EAAmB,OAAO,SAAUK,EAAoBH,EAAmB,CAC5E,OAAAA,EAAkB,OAAS,QACVG,EAAA,KAAK,MAAMA,EAAoBlJ,GAAmB+I,EAAkB,QAAQ,IAAI,SAAUxuF,EAAQ,CACnH,OAAOA,EAAO,IACf,EAAC,CAAC,EAEgB2uF,EAAA,KAAKH,EAAkB,IAAI,EAGzCG,CACT,EAAG,CAAE,EACP,CAEA,SAASC,IAAsB3oE,EAAOkhE,EAAa,CACjD,OAAOuH,GAA4CP,GAAwBloE,EAAOkhE,CAAW,CAAC,CAChG,CAEA,SAASsH,GAAYxoE,EAAOuoE,EAAmB,CAC7C,IAAIK,EAAoB5oE,EAAM,WAC1BohE,EAAawH,IAAsB,OAAS,GAAKA,EACjDztE,EAAOotE,EAAkB,KACzB/J,EAAa+J,EAAkB,WAC/BjhC,EAAQihC,EAAkB,MAC1B37F,EAAQ27F,EAAkB,MAC9B,OAAQ,CAACM,GAA0B7oE,CAAK,GAAK,CAACw+D,IAAesK,GAAc9oE,EAAO,CAChF,MAAAsnC,EACA,MAAA16D,EACA,KAAAuuB,GACCimE,CAAU,CACf,CAEA,SAAS2H,IAAoB3sF,EAAO4sF,EAAiB,CACnD,IAAIvH,EAAerlF,EAAM,aACrB6sF,EAAkB7sF,EAAM,YACxB8sF,EAAmBD,EAAgB,QAAQxH,CAAY,EAE3D,GAAIyH,EAAmB,GAAI,CACrB,IAAAC,EAAmBH,EAAgB,QAAQvH,CAAY,EAE3D,GAAI0H,EAAmB,GAEd,OAAA1H,EACT,GAAWyH,EAAmBF,EAAgB,OAG5C,OAAOA,EAAgBE,CAAgB,CAE3C,CAEO,WACT,CAEA,SAASE,IAAqBhtF,EAAOnG,EAAS,CAC5C,IAAIozF,EAAoBjtF,EAAM,cACvB,OAAAitF,GAAqBpzF,EAAQ,QAAQozF,CAAiB,EAAI,GAAKA,EAAoBpzF,EAAQ,CAAC,CACrG,CAEA,IAAI+xF,GAAmB,SAAwBhoE,EAAO7E,EAAM,CACnD,OAAA6E,EAAM,eAAe7E,CAAI,CAClC,EAEI8sE,GAAmB,SAAwBjoE,EAAO7E,EAAM,CACnD,OAAA6E,EAAM,eAAe7E,CAAI,CAClC,EAEA,SAAS2sE,GAAkB9nE,EAAOjmB,EAAQmnF,EAAa,CAC9C,cAAOlhE,EAAM,kBAAqB,WAAaA,EAAM,iBAAiBjmB,EAAQmnF,CAAW,EAAI,EACtG,CAEA,SAAS6G,GAAkB/nE,EAAOjmB,EAAQmnF,EAAa,CACjD,GAAAA,EAAY,QAAQnnF,CAAM,EAAI,GAAW,SAEzC,UAAOimB,EAAM,kBAAqB,WAC7B,OAAAA,EAAM,iBAAiBjmB,EAAQmnF,CAAW,EAG/C,IAAA30F,EAAY07F,GAAiBjoE,EAAOjmB,CAAM,EACvC,OAAAmnF,EAAY,KAAK,SAAUzwF,EAAG,CAC5B,OAAAw3F,GAAiBjoE,EAAOvvB,CAAC,IAAMlE,CAAA,CACvC,CACH,CAEA,SAASu8F,GAAc9oE,EAAOjmB,EAAQqnF,EAAY,CAChD,OAAOphE,EAAM,aAAeA,EAAM,aAAajmB,EAAQqnF,CAAU,EAAI,EACvE,CAEA,IAAIyH,GAA4B,SAAmC7oE,EAAO,CACxE,IAAIspE,EAAsBtpE,EAAM,oBAC5By5D,EAAUz5D,EAAM,QACpB,OAAIspE,IAAwB,OAAkB7P,EACvC6P,CACT,EAEIC,IAAa,EAEbC,YAAgCtW,EAAY,CAC9C9iB,GAAUo5B,EAAQtW,CAAU,EAExB,IAAA0F,EAASzE,GAAaqV,CAAM,EAShC,SAASA,EAAOpxB,EAAQ,CAClB,IAAAzP,EAEJoH,UAAgB,KAAMy5B,CAAM,EAEpB7gC,EAAAiwB,EAAO,KAAK,KAAMxgB,CAAM,EAChCzP,EAAM,MAAQ,CACZ,cAAe,KACf,cAAe,KACf,aAAc,KACd,cAAe,GACf,UAAW,GACX,YAAa,CAAC,EACd,wBAAyB,GACzB,yBAA0B,OAC1B,UAAW,QAEbA,EAAM,iBAAmB,GACzBA,EAAM,YAAc,GACpBA,EAAM,YAAc,OACpBA,EAAM,cAAgB,EACtBA,EAAM,cAAgB,EACtBA,EAAM,eAAiB,GACvBA,EAAM,eAAiB,GACvBA,EAAM,8BAAgC,GACtCA,EAAM,eAAiB,OACvBA,EAAM,WAAa,KAEbA,EAAA,cAAgB,SAAU8Q,EAAK,CACnC9Q,EAAM,WAAa8Q,CAAA,EAGrB9Q,EAAM,iBAAmB,KAEnBA,EAAA,oBAAsB,SAAU8Q,EAAK,CACzC9Q,EAAM,iBAAmB8Q,CAAA,EAG3B9Q,EAAM,YAAc,KAEdA,EAAA,eAAiB,SAAU8Q,EAAK,CACpC9Q,EAAM,YAAc8Q,CAAA,EAGtB9Q,EAAM,SAAW,KAEXA,EAAA,YAAc,SAAU8Q,EAAK,CACjC9Q,EAAM,SAAW8Q,CAAA,EAGnB9Q,EAAM,MAAQA,EAAM,WACpBA,EAAM,KAAOA,EAAM,UAEbA,EAAA,SAAW,SAAU8gC,EAAUC,EAAY,CAC/C,IAAIriC,EAAcsB,EAAM,MACpBghC,EAAWtiC,EAAY,SACvBn7D,EAAOm7D,EAAY,KACvBqiC,EAAW,KAAOx9F,EAEZy8D,EAAA,aAAa8gC,EAAUC,CAAU,EAEvCC,EAASF,EAAUC,CAAU,GAGzB/gC,EAAA,SAAW,SAAU8gC,EAAU,CAC/B,IAAAl8F,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,YAC7EwM,EAAS,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OAC/C6uD,EAAeD,EAAM,MACrBihC,EAAoBhhC,EAAa,kBACjC6wB,EAAU7wB,EAAa,QAE3BD,EAAM,cAAc,GAAI,CACtB,OAAQ,YACT,EAEGihC,IACFjhC,EAAM,SAAS,CACb,yBAA0B,CAAC8wB,CAAA,CAC5B,EAED9wB,EAAM,YAAY,GAIpBA,EAAM,SAAS,CACb,wBAAyB,GAC1B,EAEDA,EAAM,SAAS8gC,EAAU,CACvB,OAAAl8F,EACA,OAAAwM,CAAA,CACD,GAGG4uD,EAAA,aAAe,SAAU8gC,EAAU,CACnC,IAAAI,EAAelhC,EAAM,MACrBmhC,EAAoBD,EAAa,kBACjCpQ,EAAUoQ,EAAa,QACvB39F,EAAO29F,EAAa,KACpB3I,EAAcv4B,EAAM,MAAM,YAE1BohC,EAAatQ,GAAW9wB,EAAM,iBAAiB8gC,EAAUvI,CAAW,EAEpEnG,EAAapyB,EAAM,iBAAiB8gC,EAAUvI,CAAW,EAE7D,GAAI6I,EAAY,CACV,IAAAx9F,EAAYo8D,EAAM,eAAe8gC,CAAQ,EAE7C9gC,EAAM,SAASu4B,EAAY,OAAO,SAAUzwF,EAAG,CACtC,OAAAk4D,EAAM,eAAel4D,CAAC,IAAMlE,CAAA,CACpC,EAAG,kBAAmBk9F,CAAQ,UACtB,CAAC1O,EAENtB,EACF9wB,EAAM,SAAS,GAAG,OAAO62B,GAAmB0B,CAAW,EAAG,CAACuI,CAAQ,CAAC,EAAG,gBAAiBA,CAAQ,EAE1F9gC,EAAA,SAAS8gC,EAAU,eAAe,MAErC,CACL9gC,EAAM,aAAa8gC,EAAU,CAC3B,OAAQ,gBACR,KAAAv9F,CAAA,CACD,EAED,MACF,CAEI49F,GACFnhC,EAAM,UAAU,CAClB,EAGIA,EAAA,YAAc,SAAUy5B,EAAc,CACtC,IAAA3I,EAAU9wB,EAAM,MAAM,QACtBu4B,EAAcv4B,EAAM,MAAM,YAE1Bp8D,EAAYo8D,EAAM,eAAey5B,CAAY,EAE7C4H,EAAgB9I,EAAY,OAAO,SAAUzwF,EAAG,CAC3C,OAAAk4D,EAAM,eAAel4D,CAAC,IAAMlE,CAAA,CACpC,EACGk9F,EAAWhQ,EAAUuQ,EAAgBA,EAAc,CAAC,GAAK,KAE7DrhC,EAAM,SAAS8gC,EAAU,CACvB,OAAQ,eACR,aAAArH,CAAA,CACD,EAEDz5B,EAAM,WAAW,GAGnBA,EAAM,WAAa,UAAY,CACzB,IAAAu4B,EAAcv4B,EAAM,MAAM,YAE9BA,EAAM,SAASA,EAAM,MAAM,QAAU,GAAK,KAAM,CAC9C,OAAQ,QACR,cAAeu4B,CAAA,CAChB,GAGHv4B,EAAM,SAAW,UAAY,CACvB,IAAA8wB,EAAU9wB,EAAM,MAAM,QACtBu4B,EAAcv4B,EAAM,MAAM,YAC1BshC,EAAoB/I,EAAYA,EAAY,OAAS,CAAC,EACtD8I,EAAgB9I,EAAY,MAAM,EAAGA,EAAY,OAAS,CAAC,EAC3DuI,EAAWhQ,EAAUuQ,EAAgBA,EAAc,CAAC,GAAK,KAE7DrhC,EAAM,SAAS8gC,EAAU,CACvB,OAAQ,YACR,aAAcQ,CAAA,CACf,GAGHthC,EAAM,SAAW,UAAY,CAC3B,OAAOA,EAAM,MAAM,aAGrBA,EAAM,GAAK,UAAY,CACrB,QAAS1D,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC1EpI,EAAAoI,CAAI,EAAI,UAAUA,CAAI,EAGtB,OAAA+O,GAAW,MAAM,OAAQ,CAACm/B,EAAM,MAAM,eAAe,EAAE,OAAOt2C,CAAI,CAAC,GAGtEs2C,EAAA,eAAiB,SAAUxtC,EAAM,CAC9B,OAAA6sE,GAAiBr/B,EAAM,MAAOxtC,CAAI,GAGrCwtC,EAAA,eAAiB,SAAUxtC,EAAM,CAC9B,OAAA8sE,GAAiBt/B,EAAM,MAAOxtC,CAAI,GAGrCwtC,EAAA,UAAY,SAAUpqD,EAAKyhB,EAAO,CACtC,IAAIzM,EAAOk0E,IAAclpF,CAAG,EAAEyhB,CAAK,EACnCzM,EAAK,UAAY,aACjB,IAAI22E,EAASvhC,EAAM,MAAM,OAAOpqD,CAAG,EACnC,OAAO2rF,EAASA,EAAO32E,EAAMyM,CAAK,EAAIzM,CAAA,EAGlCo1C,EAAA,aAAe,SAAUr8D,EAAS,CACtC,MAAO,GAAG,OAAOq8D,EAAM,eAAgB,GAAG,EAAE,OAAOr8D,CAAO,GAG5Dq8D,EAAM,cAAgB,UAAY,CACzB,OAAAm2B,GAAkBn2B,EAAM,KAAK,GAGtCA,EAAM,wBAA0B,UAAY,CAC1C,OAAOu/B,GAAwBv/B,EAAM,MAAOA,EAAM,MAAM,WAAW,GAGrEA,EAAM,sBAAwB,UAAY,CACxC,OAAOA,EAAM,MAAM,WAAaA,EAAM,0BAA4B,EAAC,EAGrEA,EAAM,sBAAwB,UAAY,CACjC,OAAA8/B,GAA4C9/B,EAAM,yBAAyB,GAGpFA,EAAM,oBAAsB,UAAY,CACtC,OAAOA,EAAM,MAAM,WAAaA,EAAM,wBAA0B,EAAC,EAG7DA,EAAA,aAAe,SAAU/7D,EAAO88F,EAAY,CAChD/gC,EAAM,SAAS,CACb,cAAeqrB,GAAe,CAC5B,MAAApnF,GACC88F,CAAU,EACd,GAGG/gC,EAAA,gBAAkB,SAAUl8D,EAAO,CACnCA,EAAM,SAAW,IAIrBA,EAAM,gBAAgB,EACtBA,EAAM,eAAe,EAErBk8D,EAAM,WAAW,IAGbA,EAAA,gBAAkB,SAAUl8D,EAAO,CACvCk8D,EAAM,iBAAmB,IAGrBA,EAAA,mBAAqB,SAAUl8D,EAAO,CACtC,IAAA09F,EAAkBxhC,EAAM,MAAM,gBAE7BA,EAAM,MAAM,UAMLA,EAAM,MAAM,WAMtBl8D,EAAM,OAAO,UAAY,SAAWA,EAAM,OAAO,UAAY,YAC3Dk8D,EAAM,YAAY,EANhBwhC,GACFxhC,EAAM,SAAS,OAAO,GAPpBwhC,IACFxhC,EAAM,eAAiB,IAGzBA,EAAM,WAAW,GAanBl8D,EAAM,OAAO,UAAY,SAAWA,EAAM,OAAO,UAAY,YAC3DA,EAAM,eAAe,CACvB,EAGIk8D,EAAA,6BAA+B,SAAUl8D,EAAO,CAEpD,GAAI,EAAAA,GAASA,EAAM,OAAS,aAAeA,EAAM,SAAW,IAIxD,CAAAk8D,EAAM,MAAM,WAChB,KAAIyhC,EAAezhC,EAAM,MACrB8wB,EAAU2Q,EAAa,QACvBxN,EAAawN,EAAa,WAE9BzhC,EAAM,WAAW,EAEbi0B,GACFj0B,EAAM,SAAS,CACb,yBAA0B,CAAC8wB,CAAA,CAC5B,EAED9wB,EAAM,YAAY,GAElBA,EAAM,SAAS,OAAO,EAGxBl8D,EAAM,eAAe,EACrBA,EAAM,gBAAgB,IAGlBk8D,EAAA,0BAA4B,SAAUl8D,EAAO,CAE7CA,GAASA,EAAM,OAAS,aAAeA,EAAM,SAAW,IAI5Dk8D,EAAM,WAAW,EAEjBl8D,EAAM,gBAAgB,EACtBk8D,EAAM,eAAiB,GAEnBl8D,EAAM,OAAS,WACjBk8D,EAAM,WAAW,EAEjB,WAAW,UAAY,CACrB,OAAOA,EAAM,YAAW,CACzB,EACH,EAGIA,EAAA,SAAW,SAAUl8D,EAAO,CAC5B,OAAOk8D,EAAM,MAAM,mBAAsB,UACvCl8D,EAAM,kBAAkB,aAAekoF,GAAkBloF,EAAM,MAAM,GACvEk8D,EAAM,MAAM,cAEL,OAAOA,EAAM,MAAM,mBAAsB,YAC9CA,EAAM,MAAM,kBAAkBl8D,CAAK,GACrCk8D,EAAM,MAAM,aAEhB,EAGFA,EAAM,mBAAqB,UAAY,CACrCA,EAAM,YAAc,IAGtBA,EAAM,iBAAmB,UAAY,CACnCA,EAAM,YAAc,IAGhBA,EAAA,aAAe,SAAUsM,EAAO,CACpC,IAAIo1B,EAAUp1B,EAAM,QAChBq1B,EAAQD,GAAWA,EAAQ,KAAK,CAAC,EAEhCC,IAIL3hC,EAAM,cAAgB2hC,EAAM,QAC5B3hC,EAAM,cAAgB2hC,EAAM,QAC5B3hC,EAAM,eAAiB,KAGnBA,EAAA,YAAc,SAAU0vB,EAAO,CACnC,IAAIgS,EAAUhS,EAAM,QAChBiS,EAAQD,GAAWA,EAAQ,KAAK,CAAC,EAErC,GAAKC,EAIL,KAAIC,EAAS,KAAK,IAAID,EAAM,QAAU3hC,EAAM,aAAa,EACrDy8B,EAAS,KAAK,IAAIkF,EAAM,QAAU3hC,EAAM,aAAa,EACrD6hC,EAAgB,EACd7hC,EAAA,eAAiB4hC,EAASC,GAAiBpF,EAASoF,EAAA,EAGtD7hC,EAAA,WAAa,SAAUl8D,EAAO,CAC9Bk8D,EAAM,iBAINA,EAAM,YAAc,CAACA,EAAM,WAAW,SAASl8D,EAAM,MAAM,GAAKk8D,EAAM,aAAe,CAACA,EAAM,YAAY,SAASl8D,EAAM,MAAM,GAC/Hk8D,EAAM,UAAU,EAIlBA,EAAM,cAAgB,EACtBA,EAAM,cAAgB,IAGlBA,EAAA,kBAAoB,SAAUl8D,EAAO,CACrCk8D,EAAM,gBAEVA,EAAM,mBAAmBl8D,CAAK,GAG1Bk8D,EAAA,yBAA2B,SAAUl8D,EAAO,CAC5Ck8D,EAAM,gBAEVA,EAAM,0BAA0Bl8D,CAAK,GAGjCk8D,EAAA,4BAA8B,SAAUl8D,EAAO,CAC/Ck8D,EAAM,gBAEVA,EAAM,6BAA6Bl8D,CAAK,GAGpCk8D,EAAA,kBAAoB,SAAUl8D,EAAO,CACrC,IAAA20F,EAAa30F,EAAM,cAAc,MAErCk8D,EAAM,SAAS,CACb,yBAA0B,GAC3B,EAEDA,EAAM,cAAcy4B,EAAY,CAC9B,OAAQ,eACT,EAEIz4B,EAAM,MAAM,YACfA,EAAM,WAAW,CACnB,EAGIA,EAAA,aAAe,SAAUl8D,EAAO,CAChCk8D,EAAM,MAAM,SACRA,EAAA,MAAM,QAAQl8D,CAAK,EAG3Bk8D,EAAM,SAAS,CACb,yBAA0B,GAC1B,UAAW,GACZ,GAEGA,EAAM,gBAAkBA,EAAM,MAAM,kBACtCA,EAAM,SAAS,OAAO,EAGxBA,EAAM,eAAiB,IAGnBA,EAAA,YAAc,SAAUl8D,EAAO,CACnC,GAAIk8D,EAAM,aAAeA,EAAM,YAAY,SAAS,SAAS,aAAa,EAAG,CAC3EA,EAAM,SAAS,QAEf,MACF,CAEIA,EAAM,MAAM,QACRA,EAAA,MAAM,OAAOl8D,CAAK,EAG1Bk8D,EAAM,cAAc,GAAI,CACtB,OAAQ,aACT,EAEDA,EAAM,YAAY,EAElBA,EAAM,SAAS,CACb,aAAc,KACd,UAAW,GACZ,GAGGA,EAAA,cAAgB,SAAU64B,EAAe,CACzC74B,EAAM,kBAAoBA,EAAM,MAAM,gBAAkB64B,GAI5D74B,EAAM,SAAS,CACb,cAAA64B,CAAA,CACD,GAGH74B,EAAM,0BAA4B,UAAY,CACrC,OAAAkgC,GAA0BlgC,EAAM,KAAK,GAGxCA,EAAA,UAAY,SAAUl8D,EAAO,CACjC,IAAIg+F,EAAe9hC,EAAM,MACrB8wB,EAAUgR,EAAa,QACvBC,EAAwBD,EAAa,sBACrCE,EAAoBF,EAAa,kBACjCrJ,EAAaqJ,EAAa,WAC1BG,EAAcH,EAAa,YAC3B1P,EAAa0P,EAAa,WAC1B7N,EAAa6N,EAAa,WAC1B5hC,EAAY4hC,EAAa,UACzB5J,EAAkB4J,EAAa,gBAC/BI,EAAkBJ,EAAa,gBAC/BK,EAAcniC,EAAM,MACpB64B,EAAgBsJ,EAAY,cAC5BrJ,EAAeqJ,EAAY,aAC3B5J,EAAc4J,EAAY,YAC1B,IAAA/P,GAEA,SAAOlyB,GAAc,aACvBA,EAAUp8D,CAAK,EAEXA,EAAM,mBAQZ,QAFAk8D,EAAM,iBAAmB,GAEjBl8D,EAAM,IAAK,CACjB,IAAK,YACH,GAAI,CAACgtF,GAAW2H,EAAY,OAE5Bz4B,EAAM,WAAW,UAAU,EAE3B,MAEF,IAAK,aACH,GAAI,CAAC8wB,GAAW2H,EAAY,OAE5Bz4B,EAAM,WAAW,MAAM,EAEvB,MAEF,IAAK,SACL,IAAK,YACC,GAAAy4B,EAAY,OAEhB,GAAIK,EACF94B,EAAM,YAAY84B,CAAY,MACzB,CACL,GAAI,CAACiJ,EAAuB,OAExBjR,EACF9wB,EAAM,SAAS,EACNiiC,GACTjiC,EAAM,WAAW,CAErB,CAEA,MAEF,IAAK,MAGH,GAFIA,EAAM,aAENl8D,EAAM,UAAY,CAACmwF,GAAc,CAACiE,GAAmB,CAACW,GAE1DqJ,GAAmBliC,EAAM,iBAAiB64B,EAAeN,CAAW,EAClE,OAGFv4B,EAAM,aAAa64B,CAAa,EAEhC,MAEF,IAAK,QACC,GAAA/0F,EAAM,UAAY,IAGpB,MAGF,GAAImwF,EAAY,CAEd,GADI,CAAC4E,GACD74B,EAAM,YAAa,OAEvBA,EAAM,aAAa64B,CAAa,EAEhC,KACF,CAEA,OAEF,IAAK,SACC5E,GACFj0B,EAAM,SAAS,CACb,yBAA0B,GAC3B,EAEDA,EAAM,cAAc,GAAI,CACtB,OAAQ,aACT,EAEDA,EAAM,YAAY,GACTiiC,GAAeD,GACxBhiC,EAAM,WAAW,EAGnB,MAEF,IAAK,IAEH,GAAIy4B,EACF,OAGF,GAAI,CAACxE,EAAY,CACfj0B,EAAM,SAAS,OAAO,EAEtB,KACF,CAEA,GAAI,CAAC64B,EAAe,OAEpB74B,EAAM,aAAa64B,CAAa,EAEhC,MAEF,IAAK,UACC5E,EACFj0B,EAAM,YAAY,IAAI,EAEtBA,EAAM,SAAS,MAAM,EAGvB,MAEF,IAAK,YACCi0B,EACFj0B,EAAM,YAAY,MAAM,EAExBA,EAAM,SAAS,OAAO,EAGxB,MAEF,IAAK,SACH,GAAI,CAACi0B,EAAY,OAEjBj0B,EAAM,YAAY,QAAQ,EAE1B,MAEF,IAAK,WACH,GAAI,CAACi0B,EAAY,OAEjBj0B,EAAM,YAAY,UAAU,EAE5B,MAEF,IAAK,OACH,GAAI,CAACi0B,EAAY,OAEjBj0B,EAAM,YAAY,OAAO,EAEzB,MAEF,IAAK,MACH,GAAI,CAACi0B,EAAY,OAEjBj0B,EAAM,YAAY,MAAM,EAExB,MAEF,QACE,MACJ,CAEAl8D,EAAM,eAAe,IAGvBk8D,EAAM,eAAiB,iBAAmBA,EAAM,MAAM,YAAc,EAAE4gC,KACtE5gC,EAAM,MAAM,YAAc8rB,GAAWrc,EAAO,KAAK,EAC1CzP,CACT,CAEA0pB,UAAamX,EAAQ,CAAC,CACpB,IAAK,oBACL,MAAO,UAA6B,CAClC,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAEvB,KAAK,MAAM,mBAAqB,UAAY,SAAS,kBAEvD,SAAS,iBAAiB,SAAU,KAAK,SAAU,EAAI,EAGrD,KAAK,MAAM,WACb,KAAK,WAAW,CAEpB,GACC,CACD,IAAK,qBACL,MAAO,SAA4BxlC,EAAW,CAC5C,IAAI+mC,EAAe,KAAK,MACpBhQ,EAAagQ,EAAa,WAC1BnO,EAAamO,EAAa,WAC1BnP,EAAY,KAAK,MAAM,WAG3BA,GAAa,CAACb,GAAc/2B,EAAU,YACtC43B,GAAagB,GAAc,CAAC54B,EAAU,aACpC,KAAK,WAAW,EAGd43B,GAAab,GAAc,CAAC/2B,EAAU,YAExC,KAAK,SAAS,CACZ,UAAW,IACV,KAAK,WAAW,EAIjB,KAAK,aAAe,KAAK,kBAAoB,KAAK,gCACrCuxB,GAAA,KAAK,YAAa,KAAK,gBAAgB,EACtD,KAAK,8BAAgC,GAEzC,GACC,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,SAAS,oBAAoB,SAAU,KAAK,SAAU,EAAI,CAC5D,GAIC,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,KAAK,MAAM,YACb,GACC,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,KAAK,cAAc,GAAI,CACrB,OAAQ,aACT,EACD,KAAK,MAAM,aACb,GACC,CACD,IAAK,gBACL,MAAO,SAAuBkU,EAAUC,EAAY,CAC7C,WAAM,cAAcD,EAAUC,CAAU,CAC/C,GAIC,CACD,IAAK,aACL,MAAO,UAAsB,CACtB,KAAK,UACV,KAAK,SAAS,OAChB,GACC,CACD,IAAK,YACL,MAAO,UAAqB,CACrB,KAAK,UACV,KAAK,SAAS,MAChB,GAEC,CACD,IAAK,WACL,MAAO,SAAkBsB,EAAa,CACpC,IAAI/8B,EAAS,KAETg9B,EAAe,KAAK,MACpB/J,EAAc+J,EAAa,YAC3BrP,EAAYqP,EAAa,UACzBvJ,EAAmB,KAAK,wBACxBwJ,EAAcF,IAAgB,QAAU,EAAItJ,EAAiB,OAAS,EAEtE,IAAC,KAAK,MAAM,QAAS,CACvB,IAAIyJ,EAAgBzJ,EAAiB,QAAQR,EAAY,CAAC,CAAC,EAEvDiK,EAAgB,KACJD,EAAAC,EAElB,CAGK,mCAAgC,EAAEvP,GAAa,KAAK,aACzD,KAAK,SAAS,CACZ,yBAA0B,GAC1B,aAAc,KACd,cAAe8F,EAAiBwJ,CAAW,GAC1C,UAAY,CACb,OAAOj9B,EAAO,YAAW,CAC1B,CACH,GACC,CACD,IAAK,aACL,MAAO,SAAoBm9B,EAAW,CACpC,IAAIC,EAAe,KAAK,MACpBnK,EAAcmK,EAAa,YAC3B5J,EAAe4J,EAAa,aAE5B,GAAC,KAAK,MAAM,QAChB,MAAK,SAAS,CACZ,cAAe,KAChB,EACG,IAAAC,EAAepK,EAAY,QAAQO,CAAY,EAE9CA,IACY6J,EAAA,IAGb,IAAAC,EAAYrK,EAAY,OAAS,EACjCsK,EAAY,GAChB,GAAKtK,EAAY,OAEjB,QAAQkK,EAAW,CACjB,IAAK,WACCE,IAAiB,EAEPE,EAAA,EACHF,IAAiB,GAEdE,EAAAD,EAEZC,EAAYF,EAAe,EAG7B,MAEF,IAAK,OACCA,EAAe,IAAMA,EAAeC,IACtCC,EAAYF,EAAe,GAG7B,KACJ,CAEA,KAAK,SAAS,CACZ,cAAeE,IAAc,GAC7B,aAActK,EAAYsK,CAAS,EACpC,GACH,GACC,CACD,IAAK,cACL,MAAO,UAAuB,CACxB,IAAAJ,EAAY,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,QAChFK,EAAW,KAAK,MAAM,SACtBjK,EAAgB,KAAK,MAAM,cAC3BvrF,EAAU,KAAK,sBACnB,GAAKA,EAAQ,OACb,KAAIu1F,EAAY,EAEZF,EAAer1F,EAAQ,QAAQurF,CAAa,EAE3CA,IACY8J,EAAA,IAGbF,IAAc,KAChBI,EAAYF,EAAe,EAAIA,EAAe,EAAIr1F,EAAQ,OAAS,EAC1Dm1F,IAAc,OACVI,GAAAF,EAAe,GAAKr1F,EAAQ,OAChCm1F,IAAc,UACvBI,EAAYF,EAAeG,EACvBD,EAAY,IAAeA,EAAA,IACtBJ,IAAc,YACvBI,EAAYF,EAAeG,EACvBD,EAAYv1F,EAAQ,OAAS,IAAGu1F,EAAYv1F,EAAQ,OAAS,IACxDm1F,IAAc,SACvBI,EAAYv1F,EAAQ,OAAS,GAG/B,KAAK,8BAAgC,GACrC,KAAK,SAAS,CACZ,cAAeA,EAAQu1F,CAAS,EAChC,aAAc,KACf,EACH,GACC,CACD,IAAK,WACL,MAGA,UAAoB,CAEd,OAAC,KAAK,MAAM,MAOZ,OAAO,KAAK,MAAM,OAAU,WACvB,KAAK,MAAM,MAAM5D,EAAY,EAK/B5T,GAAeA,GAAe,GAAI4T,EAAY,EAAG,KAAK,MAAM,KAAK,EAZ/DA,EAaX,GACC,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,IAAI8D,EAAa,KAAK,WAClB3Z,EAAK,KAAK,GACV/vD,EAAY,KAAK,UACjB2pE,EAAW,KAAK,SAChBC,EAAe,KAAK,aACpBC,EAAW,KAAK,SAChB7rE,EAAQ,KAAK,MACby5D,EAAUz5D,EAAM,QAChBg7D,EAAQh7D,EAAM,MACd/pB,EAAU+pB,EAAM,QAChBo7D,EAAW,KAAK,WACb,OACL,WAAAsQ,EACA,GAAA3Z,EACA,UAAA/vD,EACA,SAAA2pE,EACA,SAAAvQ,EACA,QAAA3B,EACA,MAAAuB,EACA,QAAA/kF,EACA,aAAA21F,EACA,YAAa5rE,EACb,SAAA6rE,EACA,MAAO,KAAK,SAAS,EAEzB,GACC,CACD,IAAK,WACL,MAAO,UAAoB,CACrB,IAAA3K,EAAc,KAAK,MAAM,YAC7B,OAAOA,EAAY,OAAS,CAC9B,GACC,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,MAAO,CAAC,CAAC,KAAK,sBAAsB,MACtC,GACC,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,IAAI4K,EAAe,KAAK,MACpBlB,EAAckB,EAAa,YAC3BrS,EAAUqS,EAAa,QAG3B,OAAIlB,IAAgB,OAAkBnR,EAC/BmR,CACT,GACC,CACD,IAAK,mBACL,MAAO,SAA0B7wF,EAAQmnF,EAAa,CACpD,OAAO4G,GAAkB,KAAK,MAAO/tF,EAAQmnF,CAAW,CAC1D,GACC,CACD,IAAK,mBACL,MAAO,SAA0BnnF,EAAQmnF,EAAa,CACpD,OAAO6G,GAAkB,KAAK,MAAOhuF,EAAQmnF,CAAW,CAC1D,GACC,CACD,IAAK,eACL,MAAO,SAAsBnnF,EAAQqnF,EAAY,CAC/C,OAAO0H,GAAc,KAAK,MAAO/uF,EAAQqnF,CAAU,CACrD,GACC,CACD,IAAK,oBACL,MAAO,SAA2BjmE,EAAMnS,EAAS,CAC/C,GAAI,OAAO,KAAK,MAAM,mBAAsB,WAAY,CAClD,IAAAo4E,EAAa,KAAK,MAAM,WACxBF,EAAc,KAAK,MAAM,YACtB,YAAK,MAAM,kBAAkB/lE,EAAM,CACxC,QAAAnS,EACA,WAAAo4E,EACA,YAAAF,CAAA,CACD,MAEM,aAAK,eAAe/lE,CAAI,CAEnC,GACC,CACD,IAAK,mBACL,MAAO,SAA0BA,EAAM,CAC9B,YAAK,MAAM,iBAAiBA,CAAI,CACzC,GAIC,CACD,IAAK,4BACL,MAGA,UAAqC,CAC/B,UAAY,SAAS,mBACvB,SAAS,iBAAiB,mBAAoB,KAAK,mBAAoB,EAAK,EAC5E,SAAS,iBAAiB,iBAAkB,KAAK,iBAAkB,EAAK,EAE5E,GACC,CACD,IAAK,2BACL,MAAO,UAAoC,CACrC,UAAY,SAAS,sBACd,6BAAoB,mBAAoB,KAAK,kBAAkB,EAC/D,6BAAoB,iBAAkB,KAAK,gBAAgB,EAExE,GACC,CACD,IAAK,wBACL,MAGA,UAAiC,CAC3B,UAAY,SAAS,mBACvB,SAAS,iBAAiB,aAAc,KAAK,aAAc,EAAK,EAChE,SAAS,iBAAiB,YAAa,KAAK,YAAa,EAAK,EAC9D,SAAS,iBAAiB,WAAY,KAAK,WAAY,EAAK,EAEhE,GACC,CACD,IAAK,uBACL,MAAO,UAAgC,CACjC,UAAY,SAAS,sBACd,6BAAoB,aAAc,KAAK,YAAY,EACnD,6BAAoB,YAAa,KAAK,WAAW,EACjD,6BAAoB,WAAY,KAAK,UAAU,EAE5D,GACC,CACD,IAAK,cACL,MAGA,UAAuB,CACrB,IAAI4wE,EAAe,KAAK,MACpBhR,EAAagR,EAAa,WAC1BnL,EAAemL,EAAa,aAC5BC,EAAUD,EAAa,QACvB3K,EAAa2K,EAAa,WAC1B/yB,EAAW+yB,EAAa,SACxBjgG,EAAOigG,EAAa,KAEpBE,EAAsB,KAAK,cAAc,EACzC1O,EAAQ0O,EAAoB,MAE5BC,EAAgB,KAAK,MAAM,cAC3BC,EAAc,KAAK,YACnBp3F,EAAKi3F,GAAW,KAAK,aAAa,OAAO,EAEzCI,EAAiB,CACnB,oBAAqB,OACrB,aAAc,KAAK,MAAM,YAAY,EACrC,kBAAmB,KAAK,MAAM,iBAAiB,GAGjD,OAAKxL,KAgBqB,cAAcrD,EAAOt9B,GAAS,GAAIksC,EAAa,CACvE,eAAgB,OAChB,aAAc,MACd,YAAa,MACb,GAAAp3F,EACA,SAAU,KAAK,YACf,WAAAgmF,EACA,SAAUmR,EACV,OAAQ,KAAK,YACb,SAAU,KAAK,kBACf,QAAS,KAAK,aACd,WAAY,QACZ,SAAAlzB,EACA,KAAAltE,EACA,KAAM,OACN,MAAOs1F,CAAA,EACNgL,CAAc,CAAC,EA9BI5kC,GAAM,cAAcq8B,IAAY5jC,GAAS,CAC3D,GAAAlrD,EACA,SAAU,KAAK,YACf,OAAQ,KAAK,YACb,SAAU45D,GACV,QAAS,KAAK,aACd,SAAU,GACV,SAAUosB,EACV,SAAA/hB,EACA,KAAAltE,EACA,MAAO,IACNsgG,CAAc,CAAC,CAoBtB,GACC,CACD,IAAK,2BACL,MAAO,UAAoC,CACzC,IAAI/9B,EAAS,KAETg+B,EAAuB,KAAK,gBAC5BrO,EAAaqO,EAAqB,WAClCxO,EAAsBwO,EAAqB,oBAC3CvO,EAAkBuO,EAAqB,gBACvCtO,EAAmBsO,EAAqB,iBACxCxN,EAAcwN,EAAqB,YACnC1N,EAAc0N,EAAqB,YAEnCF,EAAc,KAAK,YACnBG,EAAe,KAAK,MACpBC,EAA2BD,EAAa,yBACxCvR,EAAauR,EAAa,WAC1B7S,EAAU6S,EAAa,QACvBlL,EAAakL,EAAa,WAC1Bn1F,EAAcm1F,EAAa,YAC3BE,EAAe,KAAK,MACpBtL,EAAcsL,EAAa,YAC3B/K,EAAe+K,EAAa,aAC5B5Q,EAAY4Q,EAAa,UAE7B,GAAI,CAAC,KAAK,SAAS,GAAK,CAACD,EAChB,OAAAnL,EAAa,KAA0B55B,GAAA,cAAcm3B,EAAa1+B,GAAS,GAAIksC,EAAa,CACjG,IAAK,cACL,WAAApR,EACA,UAAAa,CAAA,CACD,EAAGzkF,CAAW,EAGjB,GAAIsiF,EAAS,CACX,IAAIgT,EAAevL,EAAY,IAAI,SAAUp5D,EAAKjuB,EAAO,CACvD,IAAI6yF,EAAkB5kE,IAAQ25D,EAC9B,UAA0B,cAAczD,EAAY/9B,GAAS,GAAIksC,EAAa,CAC5E,WAAY,CACV,UAAWtO,EACX,MAAOC,EACP,OAAQC,CACV,EACA,UAAW2O,EACX,WAAA3R,EACA,IAAK,GAAG,OAAO1sB,EAAO,eAAevmC,CAAG,CAAC,EAAE,OAAOjuB,CAAK,EACvD,MAAAA,EACA,YAAa,CACX,QAAS,UAAmB,CACnB,OAAAw0D,EAAO,YAAYvmC,CAAG,CAC/B,EACA,WAAY,UAAsB,CACzB,OAAAumC,EAAO,YAAYvmC,CAAG,CAC/B,EACA,YAAa,SAAqB/nB,EAAG,CACnCA,EAAE,eAAe,EACjBA,EAAE,gBAAgB,CACpB,CACF,EACA,KAAM+nB,CACP,GAAGumC,EAAO,kBAAkBvmC,EAAK,OAAO,CAAC,EAC3C,EACM,OAAA2kE,CACT,CAEA,GAAIrL,EACK,YAGL,IAAA3nE,EAAcynE,EAAY,CAAC,EAC/B,UAA0B,cAAcrC,EAAa5+B,GAAS,GAAIksC,EAAa,CAC7E,KAAM1yE,EACN,WAAAshE,CACD,GAAG,KAAK,kBAAkBthE,EAAa,OAAO,CAAC,CAClD,GACC,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,IAAIkzE,EAAuB,KAAK,cAAc,EAC1C1Q,EAAiB0Q,EAAqB,eAEtCR,EAAc,KAAK,YACnBS,EAAgB,KAAK,MACrB7R,EAAa6R,EAAc,WAC3BC,EAAYD,EAAc,UAC1BhR,EAAY,KAAK,MAAM,UAEvB,IAAC,KAAK,eAAiB,CAACK,GAAkBlB,GAAc,CAAC,KAAK,SAAS,GAAK8R,EACvE,YAGT,IAAI97B,EAAa,CACf,YAAa,KAAK,0BAClB,WAAY,KAAK,yBACjB,cAAe,QAEjB,UAA0B,cAAckrB,EAAgBh8B,GAAS,GAAIksC,EAAa,CAChF,WAAAp7B,EACA,UAAA6qB,CACD,EAAC,CACJ,GACC,CACD,IAAK,yBACL,MAAO,UAAkC,CACvC,IAAIkR,EAAuB,KAAK,cAAc,EAC1CrQ,EAAmBqQ,EAAqB,iBAExCX,EAAc,KAAK,YACnBY,EAAgB,KAAK,MACrBhS,EAAagS,EAAc,WAC3BF,EAAYE,EAAc,UAC1BnR,EAAY,KAAK,MAAM,UACvB,IAACa,GAAoB,CAACoQ,EAAkB,YAC5C,IAAI97B,EAAa,CACf,cAAe,QAEjB,UAA0B,cAAc0rB,EAAkBx8B,GAAS,GAAIksC,EAAa,CAClF,WAAAp7B,EACA,WAAAgqB,EACA,UAAAa,CACD,EAAC,CACJ,GACC,CACD,IAAK,2BACL,MAAO,UAAoC,CACrC,IAAAoR,EAAuB,KAAK,gBAC5BjR,EAAoBiR,EAAqB,kBACzC5Q,EAAqB4Q,EAAqB,mBAG1C,IAACjR,GAAqB,CAACK,EAA2B,YACtD,IAAI+P,EAAc,KAAK,YACnBpR,EAAa,KAAK,MAAM,WACxBa,EAAY,KAAK,MAAM,UAC3B,UAA0B,cAAcQ,EAAoBn8B,GAAS,GAAIksC,EAAa,CACpF,WAAApR,EACA,UAAAa,CACD,EAAC,CACJ,GACC,CACD,IAAK,0BACL,MAAO,UAAmC,CACxC,IAAIqR,EAAuB,KAAK,cAAc,EAC1ClR,EAAoBkR,EAAqB,kBAE7C,GAAI,CAAClR,EAA0B,YAC/B,IAAIoQ,EAAc,KAAK,YACnBpR,EAAa,KAAK,MAAM,WACxBa,EAAY,KAAK,MAAM,UACvB7qB,EAAa,CACf,YAAa,KAAK,6BAClB,WAAY,KAAK,4BACjB,cAAe,QAEjB,UAA0B,cAAcgrB,EAAmB97B,GAAS,GAAIksC,EAAa,CACnF,WAAAp7B,EACA,WAAAgqB,EACA,UAAAa,CACD,EAAC,CACJ,GACC,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,IAAIttB,EAAS,KAET4+B,EAAuB,KAAK,cAC5B,EAAApQ,EAAQoQ,EAAqB,MAC7B/P,EAAe+P,EAAqB,aACpC/T,EAAO+T,EAAqB,KAC5B1T,EAAW0T,EAAqB,SAChC/S,EAAa+S,EAAqB,WAClClT,EAAiBkT,EAAqB,eACtCnT,EAAmBmT,EAAqB,iBACxCzO,EAASyO,EAAqB,OAE9Bf,EAAc,KAAK,YACnB3K,EAAgB,KAAK,MAAM,cAC3B2L,EAAgB,KAAK,MACrBC,EAAoBD,EAAc,kBAClC/L,EAAa+L,EAAc,WAC3BN,EAAYM,EAAc,UAC1BE,EAAiBF,EAAc,eAC/BtU,EAAgBsU,EAAc,cAC9BrU,EAAgBqU,EAAc,cAC9BvQ,EAAauQ,EAAc,WAC3BpU,EAAgBoU,EAAc,cAC9BnU,EAAemU,EAAc,aAC7BG,EAAmBH,EAAc,iBACjCI,EAAwBJ,EAAc,sBACtClU,EAA2BkU,EAAc,yBACzCK,EAAmBL,EAAc,iBACjCM,EAAoBN,EAAc,kBAClCO,GAAuBP,EAAc,qBACzC,GAAI,CAACvQ,EAAmB,YAExB,IAAIz9E,GAAS,SAAgB6gB,GAAOjrB,GAAI,CACtC,IAAI4B,EAAOqpB,GAAM,KACb7E,GAAO6E,GAAM,KACb+6D,GAAa/6D,GAAM,WACnBw+D,GAAax+D,GAAM,WACnBsnC,GAAQtnC,GAAM,MACdpzB,GAAQozB,GAAM,MACd47D,GAAY4F,IAAkBrmE,GAC9BwyE,GAAU5S,GAAa,OAAY,UAAY,CAC1C,OAAAzsB,EAAO,cAAcnzC,EAAI,GAE9ByyE,GAAW7S,GAAa,OAAY,UAAY,CAC3C,OAAAzsB,EAAO,aAAanzC,EAAI,GAE7B0yE,GAAW,GAAG,OAAOv/B,EAAO,aAAa,QAAQ,EAAG,GAAG,EAAE,OAAOv5D,EAAE,EAClEg8D,GAAa,CACf,GAAI88B,GACJ,QAASD,GACT,YAAaD,GACb,YAAaA,GACb,SAAU,IAEZ,UAA0B,cAAclP,EAAQx+B,GAAS,GAAIksC,EAAa,CACxE,WAAAp7B,GACA,KAAA51C,GACA,WAAA4/D,GACA,WAAAyD,GACA,IAAKqP,GACL,MAAAvmC,GACA,KAAA3wD,EACA,MAAA/J,GACA,UAAAgvF,GACA,SAAUA,GAAYttB,EAAO,oBAAsB,OACpD,EAAGA,EAAO,kBAAkBtuC,GAAM,KAAM,MAAM,CAAC,GAG9C8tE,GAEA,QAAK,aACPA,GAAS,KAAK,sBAAwB,MAAI,SAAUlqF,GAAM,CACpD,GAAAA,GAAK,OAAS,QAAS,CACzB,IAAIuX,GAAOvX,GAAK,KACZ3N,GAAU2N,GAAK,QACfmqF,EAAanqF,GAAK,MAClBoqF,GAAU,GAAG,OAAO1/B,EAAO,aAAa,OAAO,EAAG,GAAG,EAAE,OAAOy/B,CAAU,EACxEE,GAAY,GAAG,OAAOD,GAAS,UAAU,EAC7C,UAA0B,cAAclR,EAAO78B,GAAS,GAAIksC,EAAa,CACvE,IAAK6B,GACL,KAAA7yE,GACA,QAAAllB,GACA,QAASknF,EACT,aAAc,CACZ,GAAI8Q,GACJ,KAAMrqF,GAAK,IACb,EACA,MAAO0qD,EAAO,iBAAiB1qD,GAAK,IAAI,CACzC,GAAGA,GAAK,QAAQ,IAAI,SAAU7J,GAAQ,CAC9B,OAAAoF,GAAOpF,GAAQ,GAAG,OAAOg0F,EAAY,GAAG,EAAE,OAAOh0F,GAAO,KAAK,CAAC,CACtE,EAAC,UACO6J,GAAK,OAAS,SACvB,OAAOzE,GAAOyE,GAAM,GAAG,OAAOA,GAAK,KAAK,CAAC,CAC3C,CACD,UACQipF,EAAW,CACpB,IAAI5gG,GAAUohG,EAAe,CAC3B,WAAAjM,CAAA,CACD,EACD,GAAIn1F,KAAY,KAAa,YAC7B6hG,GAA4BtmC,GAAA,cAAcwyB,EAAgBmS,EAAalgG,EAAO,MACzE,CACL,IAAIiiG,GAAWV,EAAiB,CAC9B,WAAApM,CAAA,CACD,EAED,GAAI8M,KAAa,KAAa,YAC9BJ,GAA4BtmC,GAAA,cAAcuyB,EAAkBoS,EAAa+B,EAAQ,CACnF,CAEA,IAAIC,GAAqB,CACvB,cAAAtV,EACA,cAAAC,EACA,cAAAC,EACA,aAAAC,EACA,yBAAAC,CAAA,EAEEmV,GAAiC5mC,GAAA,cAAcmxB,GAAY14B,GAAS,CAAC,EAAGksC,EAAagC,EAAkB,EAAG,SAAU7U,GAAO,CACzH,IAAA7f,GAAM6f,GAAM,IACZ+U,GAAoB/U,GAAM,YAC1B1b,EAAYywB,GAAkB,UAC9BlY,GAAYkY,GAAkB,UAClC,UAA0B,cAAclV,EAAMl5B,GAAS,CAAC,EAAGksC,EAAagC,GAAoB,CAC1F,SAAU10B,GACV,WAAY,CACV,YAAanL,EAAO,gBACpB,YAAaA,EAAO,eACtB,EACA,UAAAu+B,EACA,UAAAjvB,CAAA,CACD,EAAsBpW,GAAA,cAAcu/B,IAAe,CAClD,eAAgBqG,EAChB,YAAaK,EACb,eAAgBC,GAChB,YAAaH,CACf,EAAG,SAAUe,GAAiB,CAC5B,UAA0B,cAAc9U,EAAUv5B,GAAS,GAAIksC,EAAa,CAC1E,SAAU,SAAkBn8B,GAAU,CACpC1B,EAAO,eAAe0B,EAAQ,EAE9Bs+B,GAAgBt+B,EAAQ,CAC1B,EACA,UAAA68B,EACA,UAAA1W,GACA,cAAAqL,CAAA,CACD,EAAGsM,EAAM,CACX,EAAC,EACH,EAIM,OAAAR,GAAoBtU,IAAiB,QAAuBxxB,GAAM,cAAc2yB,EAAYl6B,GAAS,CAAC,EAAGksC,EAAa,CAC3H,SAAUmB,EACV,eAAgB,KAAK,WACrB,cAAAvU,EACA,aAAAC,CAAA,CACD,EAAGoV,EAAW,EAAIA,EACrB,GACC,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,IAAIG,EAAS,KAETC,EAAgB,KAAK,MACrB3kB,EAAY2kB,EAAc,UAC1BzT,EAAayT,EAAc,WAC3B/U,EAAU+U,EAAc,QACxBtiG,EAAOsiG,EAAc,KACrBtN,EAAc,KAAK,MAAM,YAC7B,GAAI,GAACh1F,GAAQ6uF,GAEb,GAAItB,EACF,GAAI5P,EAAW,CACb,IAAIj9E,EAAQs0F,EAAY,IAAI,SAAUp5D,EAAK,CAClC,OAAAymE,EAAO,eAAezmE,CAAG,EACjC,EAAE,KAAK+hD,CAAS,EACG,OAAAriB,GAAM,cAAc,QAAS,CAC/C,KAAAt7D,EACA,KAAM,SACN,MAAAU,CAAA,CACD,MACI,CACD,IAAA2H,EAAQ2sF,EAAY,OAAS,EAAIA,EAAY,IAAI,SAAUp5D,EAAKr3B,EAAG,CACjD,OAAA+2D,GAAM,cAAc,QAAS,CAC/C,IAAK,KAAK,OAAO/2D,CAAC,EAClB,KAAAvE,EACA,KAAM,SACN,MAAOqiG,EAAO,eAAezmE,CAAG,EACjC,EACF,EAAuB0/B,GAAA,cAAc,QAAS,CAC7C,KAAAt7D,EACA,KAAM,SACP,EACD,OAA0Bs7D,GAAA,cAAc,MAAO,KAAMjzD,CAAK,CAC5D,KACK,CACD,IAAApC,EAAS+uF,EAAY,CAAC,EAAI,KAAK,eAAeA,EAAY,CAAC,CAAC,EAAI,GAEhD,OAAA15B,GAAM,cAAc,QAAS,CAC/C,KAAAt7D,EACA,KAAM,SACN,MAAOiG,CAAA,CACR,CACH,CACF,GACC,CACD,IAAK,mBACL,MAAO,UAA4B,CACjC,IAAIg6F,EAAc,KAAK,YACnBsC,EAAe,KAAK,MACpBlN,EAAgBkN,EAAa,cAC7BjN,EAAgBiN,EAAa,cAC7BhN,EAAegN,EAAa,aAC5B7S,EAAY6S,EAAa,UACzBvN,EAAcuN,EAAa,YAC3B/M,EAAmB,KAAK,sBAC5B,UAA0B,cAAcJ,IAAYrhC,GAAS,GAAIksC,EAAa,CAC5E,cAAA5K,EACA,cAAAC,EACA,aAAAC,EACA,UAAA7F,EACA,YAAAsF,EACA,iBAAAQ,CACD,EAAC,CACJ,GACC,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIgN,EAAuB,KAAK,cAAc,EAC1C/R,EAAU+R,EAAqB,QAC/BpT,EAAsBoT,EAAqB,oBAC3CzT,EAAkByT,EAAqB,gBACvCvT,EAAiBuT,EAAqB,eAEtCC,EAAgB,KAAK,MACrBt+E,EAAYs+E,EAAc,UAC1B55F,EAAK45F,EAAc,GACnB5T,EAAa4T,EAAc,WAC3B/R,EAAa+R,EAAc,WAC3B/S,EAAY,KAAK,MAAM,UACvBuQ,EAAc,KAAK,YAAc,KAAK,eAAe,EACzD,UAA0B,cAAclR,EAAiBh7B,GAAS,GAAIksC,EAAa,CACjF,UAAA97E,EACA,WAAY,CACV,GAAAtb,EACA,UAAW,KAAK,SAClB,EACA,WAAAgmF,EACA,UAAAa,CAAA,CACD,EAAG,KAAK,iBAAiB,EAAsBp0B,GAAA,cAAcm1B,EAAS18B,GAAS,CAAC,EAAGksC,EAAa,CAC/F,SAAU,KAAK,cACf,WAAY,CACV,YAAa,KAAK,mBAClB,WAAY,KAAK,iBACnB,EACA,WAAApR,EACA,UAAAa,EACA,WAAAgB,CAAA,CACD,EAAsBp1B,GAAA,cAAc2zB,EAAgBl7B,GAAS,GAAIksC,EAAa,CAC7E,WAAApR,CACD,GAAG,KAAK,2BAA4B,KAAK,YAAa,MAAsB,cAAcO,EAAqBr7B,GAAS,GAAIksC,EAAa,CACxI,WAAApR,CAAA,CACD,EAAG,KAAK,uBAAwB,KAAK,yBAA0B,KAAK,2BAA4B,KAAK,yBAAyB,CAAC,EAAG,KAAK,WAAW,EAAG,KAAK,iBAAiB,CAC9K,CACD,GAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkC/6D,EAAO5jB,EAAO,CACrD,IAAI4nD,EAAY5nD,EAAM,UAClBwyF,EAA0BxyF,EAAM,wBAChCyyF,EAA2BzyF,EAAM,yBACjCnG,EAAU+pB,EAAM,QAChBpzB,EAAQozB,EAAM,MACd48D,EAAa58D,EAAM,WACnBohE,EAAaphE,EAAM,WACnB8uE,EAAsB,GAE1B,GAAI9qC,IAAcp3D,IAAUo3D,EAAU,OAAS/tD,IAAY+tD,EAAU,SAAW44B,IAAe54B,EAAU,YAAco9B,IAAep9B,EAAU,YAAa,CACvJ,IAAAk9B,EAAczM,GAAW7nF,CAAK,EAC9B80F,EAAmB9E,EAAa+L,IAAsB3oE,EAAOkhE,CAAW,EAAI,GAC5EO,EAAemN,EAA0B7F,IAAoB3sF,EAAO8kF,CAAW,EAAI,KACnFM,EAAgB4H,IAAqBhtF,EAAOslF,CAAgB,EAC1CoN,EAAA,CACpB,YAAA5N,EACA,cAAAM,EACA,aAAAC,EACA,wBAAyB,GAE7B,CAGA,IAAIsN,EAAwBF,GAA4B,MAAQ7uE,IAAUgkC,EAAY,CACpF,cAAe6qC,EACf,yBAA0B,QACxB,GACG,OAAA7a,GAAeA,GAAeA,GAAe,GAAI8a,CAAmB,EAAGC,CAAqB,EAAG,GAAI,CACxG,UAAW/uE,CAAA,CACZ,CACH,CACD,EAAC,EAEKwpE,CACT,EAAEtlC,EAAS,WAEXslC,GAAO,aAAelkC,ICxnFtB,IAAIA,IAAe,CACjB,kBAAmB,GACnB,kBAAmB,GACnB,aAAc,IAChB,EAEI0pC,IAAc,SAAqBC,EAAiB,CACtD,IAAIj8B,EAAQ8C,EAEZ,OAAOA,EAAQ9C,EAAsB,SAAUkgB,EAAY,CACzD9iB,GAAU8+B,EAAchc,CAAU,EAElC,IAAI0F,EAASzE,GAAa+a,CAAY,EAEtC,SAASA,GAAe,CACtB,IAAIvmC,EAEJoH,GAAgB,KAAMm/B,CAAY,EAElC,QAASjqC,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAAkuC,EAAQiwB,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOvmE,CAAI,CAAC,EACrDs2C,EAAM,OAAS,OACfA,EAAM,MAAQ,CACZ,WAAYA,EAAM,MAAM,aAAe,OAAYA,EAAM,MAAM,WAAaA,EAAM,MAAM,kBACxF,WAAYA,EAAM,MAAM,aAAe,OAAYA,EAAM,MAAM,WAAaA,EAAM,MAAM,kBACxF,MAAOA,EAAM,MAAM,QAAU,OAAYA,EAAM,MAAM,MAAQA,EAAM,MAAM,YACjF,EAEMA,EAAM,SAAW,SAAU/7D,EAAO88F,EAAY,CAC5C/gC,EAAM,SAAS,WAAY/7D,EAAO88F,CAAU,EAE5C/gC,EAAM,SAAS,CACb,MAAO/7D,CACjB,CAAS,CACT,EAEM+7D,EAAM,cAAgB,SAAU/7D,EAAO88F,EAAY,CAGjD,IAAID,EAAW9gC,EAAM,SAAS,gBAAiB/7D,EAAO88F,CAAU,EAEhE/gC,EAAM,SAAS,CACb,WAAY8gC,IAAa,OAAYA,EAAW78F,CAC1D,CAAS,CACT,EAEM+7D,EAAM,WAAa,UAAY,CAC7BA,EAAM,SAAS,YAAY,EAE3BA,EAAM,SAAS,CACb,WAAY,EACtB,CAAS,CACT,EAEMA,EAAM,YAAc,UAAY,CAC9BA,EAAM,SAAS,aAAa,EAE5BA,EAAM,SAAS,CACb,WAAY,EACtB,CAAS,CACT,EAEaA,CACR,CAED0pB,UAAa6c,EAAc,CAAC,CAC1B,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,OAAO,OACb,CACP,EAAO,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,OAAO,MACb,CAEP,EAAO,CACD,IAAK,UACL,MAAO,SAAiB3wF,EAAK,CAC3B,OAAO,KAAK,MAAMA,CAAG,IAAM,OAAY,KAAK,MAAMA,CAAG,EAAI,KAAK,MAAMA,CAAG,CACxE,CAEP,EAAO,CACD,IAAK,WACL,MAAO,SAAkBrS,EAAM,CAC7B,GAAI,OAAO,KAAK,MAAMA,CAAI,GAAM,WAAY,CAG1C,QAFIm7D,EAEKiB,EAAQ,UAAU,OAAQj2C,EAAO,IAAI,MAAMi2C,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGl2C,EAAKk2C,EAAQ,CAAC,EAAI,UAAUA,CAAK,EAGnC,OAAQlB,EAAc,KAAK,OAAOn7D,CAAI,EAAE,MAAMm7D,EAAah1C,CAAI,CAChE,CACF,CACP,EAAO,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI47C,EAAS,KAETrF,EAAe,KAAK,MACpBA,EAAa,kBACbA,EAAa,kBACbA,EAAa,aACb,IAAI5oC,EAAQ0+C,GAAyB9V,EAAc,CAAC,oBAAqB,oBAAqB,cAAc,CAAC,EAEjH,OAAoBpB,GAAM,cAAcynC,EAAiBhvC,GAAS,GAAIjgC,EAAO,CAC3E,IAAK,SAAawmC,EAAM,CACtByH,EAAO,OAASzH,CACjB,EACD,WAAY,KAAK,QAAQ,YAAY,EACrC,WAAY,KAAK,QAAQ,YAAY,EACrC,SAAU,KAAK,SACf,cAAe,KAAK,cACpB,YAAa,KAAK,YAClB,WAAY,KAAK,WACjB,MAAO,KAAK,QAAQ,OAAO,CAC5B,EAAC,CACH,CACF,EAAC,EAEK0oC,CACR,EAAChrC,EAAS,WAAG8O,EAAO,aAAe1N,IAAcwQ,CACpD,EC7EIj8D,IAAQm1F,IAAYxF,EAAM,EAE9B,MAAA2F,GAAet1F,ICzDFu1F,GAAYhiG,GAAQ,CAC/B,KAAM,CAACiiG,EAAcC,CAAe,EAAIC,WAAS,IAAI,EAC/C,CAACC,EAASC,CAAU,EAAIF,WAAS,EAAI,EACrC,CAACh/F,EAAQm/F,CAAS,EAAIH,WAAS,IAAI,EACnC,CAACl9F,EAAOs9F,CAAQ,EAAIJ,WAAS,EAAK,EAExC/J,mBAAU,IAAM,EACI,SAAY,CAC5B,GAAIp4F,EAAK,CACPqiG,EAAW,EAAI,EAEX,IAEI,MAAAG,EAAO,MADD,MAAM,MAAMxiG,CAAG,GACJ,OACvBsiG,EAAUE,CAAI,EACdH,EAAW,EAAK,EAChBH,EAAgBliG,CAAG,QACZiF,EAAO,CACds9F,EAASt9F,CAAK,EACdo9F,EAAW,EAAK,EAChBH,EAAgBliG,CAAG,CACrB,CACF,KAGQ,EACT,CAACA,CAAG,CAAC,EAED,CAAE,QAAAoiG,EAAS,MAAAn9F,EAAO,OAAA9B,EAC3B,EC5Bes/F,GAAC7vE,GAAU,CAClB,MAAAy5C,EAAM6qB,SAAO,IAAI,EAgBvB,OACGlT,EAAAoY,GAAA,CAAQ,GAAGxpE,EAAO,IAAAy5C,EAAU,WAfZ,IAAM,CAGvB,WAAW,IAAM,CACXA,EAAA,QAAQ,OAAO,8BAAgC,GAEnD,MAAM+nB,EAAgBxhE,EAAM,QAAQ,KAAejmB,GAC1CimB,EAAM,eAAejmB,GAAU,EAAE,IAAMimB,EAAM,eAAeA,EAAM,OAAS,EAAE,CACrF,EAEGwhE,GAAe/nB,EAAI,QAAQ,OAAO,SAAS,CAAE,cAAA+nB,CAAe,IAC/D,EAAE,EAI+C,EAExD,ECjBesO,IAAA,CAAC,CAAE,KAAAlsF,EAAM,QAAA3N,EAAS,OAAA5J,EAAQ,UAAA0jG,KAAgB,CACjD,MAAE,OAAAC,EAAQ,MAAAC,EAAO,SAAAC,EAAU,QAAAV,GAAYW,IAAUvsF,EAAM3N,EAAS5J,CAAM,EAE5Em5F,mBAAU,IAAM,CACd,MAAMz1D,EAASkgE,EAAQ,CAAE,QAASA,EAAM,EAAO,OAC/CF,EAAU,CAAE,MAAOE,EAAO,QAAAT,EAAS,OAAAz/D,CAAQ,IAC1C,CAACkgE,EAAOT,CAAO,CAAC,KAGhB,MAAI,WAAWhmE,GAAW,CAAC,4BAA4B,CAAC,EACvD,UAAC4nD,EAAA,SAAM,QAAQ,gBAAgB,SAAM,WACrCA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOI,EACP,SAAUC,EACV,QAASF,EACT,WAAYR,EACZ,WAAY,CAAE,YAAA3Q,IAAA,OAAaJ,GAAO,EAClC,UAAW+Q,EACX,kBAAuB1nE,EAAI,MAC3B,kBAAuBA,EAAI,KAE/B,CACF,GAEJ,EAEMsoE,GAAO,CAAC,CAAE,KAAAj1E,KACPi2D,EAAC,MAAI,WAAW5nD,GAAW,CAAC,cAAerO,EAAK,SAAS,CAAC,EAAG,SAAC,MAGjE0jE,IAAc,CAAC,CAAE,KAAA1jE,EAAM,SAAAqzC,CAC3B,IAAA6hC,GAAC,MAAI,OAAO,CAAC,WAAY,SAAU,MAAO,QACxC,UAAAjf,EAACgf,IAAK,KAAAj1E,EAAW,EAAE,IAAEqzC,CAAA,CACvB,GAGIiwB,IAAS,CAAC,CAAE,KAAAtjE,EAAO,MAAAmsC,EAAO,GAAGtnC,CACjC,IAAAoxD,EAAC6M,GAAW,OAAX,CAAmB,GAAGj+D,EACrB,YAAC,MAAI,OAAO,CAAE,YAAa,GAAI,SAAU,UACvC,YAAAoxD,EAAC,MAAI,OAAO,CAAE,SAAU,WAAY,KAAM,GAAI,IAAK,EAAG,EAAG,SAACA,EAAAgf,GAAA,CAAK,KAAAj1E,CAAW,GAAE,EAAM,IAAEmsC,CAAA,CACtF,EACF,GAGW6oC,IAAY,CAACvsF,EAAM3N,EAAS5J,IAAW,CAClD,MAAMikG,EAAY,IAAIjkG,GAAU,MAAM,IAAIuX,EAAK,GAAG,GAC5C,CAAC2sF,EAAeC,CAAgB,EAAIjB,EAAA,SAAS,CAAE,GAC/C,CAACU,EAAOC,CAAQ,EAAIX,WAAS,IAAI,EACjC,CAAE,QAAAC,EAAS,OAAAj/F,EAAQ,MAAA8B,GAAU+8F,GAAS,yBAAyBkB,CAAS,EAAE,EAG1EG,EAAYvO,UAAQ,KAAOt+E,GAAQ,CAAC,GAAG,MAAQ2sF,EAAc,IAAK,CAAC3sF,EAAM2sF,CAAa,CAAC,EAGvFP,EAAS9N,UAAQ,IACjBsN,GAAWn9F,EAAc,GACtB9B,EAAO,OACb,CAACi/F,EAAS5rF,EAAM6sF,CAAS,CAAC,EAG7BjL,mBAAU,IAAM,OACd,GAAI,CAACgK,GAAW,CAACn9F,GAAS,CAACo+F,EAAW,CACpC,IAAIC,EAAWT,EACf,MAAMU,EAAoB,IAAI,gBAAgB,SAAS,MAAM,EAAE,IAAI,UAAU,EAE7E,GAAI,CAACD,EAAU,CACb,IAAIE,EAAsBhtF,EAAK,mBAE3B+sF,EACoBC,EAAAD,EACbC,GAAuB,aACVA,EAAA,yBACbA,IAAwB,cACXA,GAAA9jG,EAAAkjG,EAAO,CAAC,IAAR,YAAAljG,EAAW,GAEjC8jG,EAAsB36F,EAAQ,QAMrBy6F,EAFWV,EAAO,KAAKC,GAASA,EAAM,IAAMW,CAAmB,GAE9CZ,EAAO,CAAC,CACtC,CAEMA,EAAO,IAASr6F,KAAE,EAAE,EAAE,SAAS+6F,GAAA,YAAAA,EAAU,EAAE,IAC/CA,EAAWV,EAAO,CAAC,GAGrBE,EAASQ,CAAQ,EACjBF,EAAiB5sF,CAAI,CACvB,GACC,CAAC4rF,EAASiB,CAAS,CAAC,EAEhB,CACL,OAAAT,EACA,MAAAC,EACA,SAAAC,EACA,MAAA79F,EACA,QAAS,CAACo+F,CAAA,CAEd,ECtGeI,IAAA,CAAC,CAAE,KAAAjtF,EAAM,QAAA3N,EAAS,UAAA85F,EAAW,gBAAAe,KAAsB,CAC1D,MAAE,WAAAC,EAAY,SAAAC,EAAU,YAAAC,EAAa,QAAAzB,GAAY0B,IAActtF,EAAM3N,EAAS66F,CAAe,EAEnGtL,mBAAU,IAAM,CACd,MAAMz1D,EAASihE,EAAW,CAAE,WAAYA,EAAS,EAAO,OACxDjB,EAAU,CAAE,MAAOiB,EAAU,QAAAxB,EAAS,OAAAz/D,CAAQ,IAC7C,CAACihE,EAAUxB,CAAO,CAAC,KAGnB,MAAI,WAAWhmE,GAAW,CAAC,gCAAgC,CAAC,EAC3D,UAAC4nD,EAAA,SAAM,QAAQ,oBAAoB,SAAS,cAC5CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOmB,EACP,UAAWxB,EACX,WAAYA,EACZ,QAASuB,EACT,SAAUE,EACV,kBAAuB,GAAGnpE,EAAI,iBAAiB,GAAGA,EAAI,YAAc,aAAe,EAAE,GACrF,kBAAuBA,EAAI,KAE/B,CACF,GAEJ,EAEMqpE,IAAc,CAAE,GAAI,KAAM,kBAAmB,KAAM,EAE5CD,IAAgB,CAACttF,EAAM3N,EAAS66F,IAAoB,CAC/D,MAAMxpB,EAAUwpB,EAAgB,QAC1BR,EAAY,gCAAgC1sF,EAAK,0BAA0B,GAC3ExW,EAAMk6E,EAAU,qBAAqBA,CAAO,oBAAoBgpB,CAAS,GAAK,KAC9E,CAACc,EAAkBC,CAAmB,EAAI9B,WAAS,IAAI,EACvD,CAACyB,EAAUC,CAAW,EAAI1B,WAAS,IAAI,EACvC,CAAE,QAAAC,EAAS,OAAAj/F,EAAQ,MAAA8B,CAAM,EAAI+8F,GAAShiG,CAAG,EAGzCqjG,EAAYvO,UAAQ,IAAM5a,IAAY8pB,EAAkB,CAAC9pB,EAAS8pB,CAAgB,CAAC,EAGnFL,EAAa7O,UAAQ,IACrBsN,GAAWn9F,EAAc,GACtB,CAAC8+F,IAAa,GAAG5gG,EAAO,UAAU,EACxC,CAACi/F,EAAS5rF,EAAM6sF,CAAS,CAAC,EAG7BjL,mBAAU,IAAM,CACd,GAAI,CAACgK,GAAW,CAACn9F,GAAS,CAACo+F,EAAW,CAC9B,MAAAa,EAAmBP,EAAW,KAAKC,GAAYA,EAAS,KAAO/6F,EAAQ,UAAU,EAC3Eg7F,EAAAK,GAAoBP,EAAW,CAAC,CAAC,EAC7CM,EAAoB/pB,CAAO,CAC7B,GACC,CAACkoB,EAASiB,CAAS,CAAC,EAEhB,CACL,WAAAM,EACA,SAAAC,EACA,YAAAC,EACA,MAAA5+F,EACA,QAAS,CAACo+F,CAAA,CAEd,sCCjEA,OAAO,eAAec,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACvCA,GAAA,cAAG,OACxB,IAAIC,IAAUx8D,EACVy8D,IAAcj5D,GACdk5D,IAAgB,SAAU5kG,EAAI,CAC9B,IAAI4S,EAAY5S,EAAG,UAAWR,EAAUQ,EAAG,QAAS6kG,EAAe7kG,EAAG,aAAc0hE,EAAW1hE,EAAG,SAClG0kG,WAAQ,gBAAgB,UAAY,CAChC,OAAA9xF,EAAU,YAAYpT,CAAO,EAC7BoT,EAAU,YAAYiyF,CAAY,EAC3B,UAAY,CACfjyF,EAAU,YAAYpT,CAAO,EAC7BoT,EAAU,YAAYiyF,CAAY,CAC9C,CACK,EAAE,CAACjyF,EAAWpT,EAASqlG,CAAY,CAAC,EAC9BF,IAAY,aAAajjC,EAAUliE,CAAO,CACrD,EACqBilG,GAAA,cAAGG,2BChBxB,OAAO,eAAcp5D,EAAU,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5DA,EAAA,qBAA+BA,oBAA4BA,EAAiC,uBAAAA,EAAA,gBAA0BA,gBAAwBA,EAA4B,yBAC1KA,EAA4B,mBACxB,IAAK,EACL,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,MAAO,EACP,MAAO,CACX,EACA,IAAIs5D,EAAgB,SAAUC,EAAOC,EAAO,CACxC,OAAOD,IAAUC,IACXD,GAAU,KAA2B,OAASA,EAAM,WAAaC,GAAU,KAA2B,OAASA,EAAM,UAClHD,GAAU,KAA2B,OAASA,EAAM,WAAaC,GAAU,KAA2B,OAASA,EAAM,UACrHD,GAAU,KAA2B,OAASA,EAAM,SAAWC,GAAU,KAA2B,OAASA,EAAM,QACnHD,GAAU,KAA2B,OAASA,EAAM,UAAYC,GAAU,KAA2B,OAASA,EAAM,SACpHD,GAAU,KAA2B,OAASA,EAAM,QAAUC,GAAU,KAA2B,OAASA,EAAM,OAClHD,GAAU,KAA2B,OAASA,EAAM,UAAYC,GAAU,KAA2B,OAASA,EAAM,MACjI,EACAx5D,EAAA,cAAwBs5D,EACxB,IAAIn/D,EAAkB,SAAUs/D,EAAgBC,EAAoB,CAChE,IAAItyF,EAAY,OAAO,SAAS,cAAc,KAAK,EACnD,OAAIsyF,IACAtyF,EAAU,UAAYsyF,GAC1B,OAAO,OAAOtyF,EAAU,MAAOqyF,CAAc,EACtCryF,CACX,EACA44B,EAAA,gBAA0B7F,EAC1B,IAAIw/D,EAAyB,SAAU/0F,EAAUg1F,EAAWC,EAAal1B,EAASm1B,EAAO,CACrF,IAAIC,EAAaH,EAAU,KAAOA,EAAU,MAAQ,EAChDI,EAAaJ,EAAU,IAAMA,EAAU,OAAS,EAChD5uE,EAAQ6uE,EAAY,MAAOv1B,EAASu1B,EAAY,OAChDrhE,EACAxiC,EACJ,OAAQ4O,EAAQ,CACZ,IAAK,OACD4zB,EAAMwhE,EAAa11B,EAAS,EAC5BtuE,EAAO4jG,EAAU,KAAOj1B,EAAU35C,EAC9B8uE,IAAU,UACVthE,EAAMohE,EAAU,KAEhBE,IAAU,QACVthE,EAAMohE,EAAU,OAASt1B,GAE7B,MACJ,IAAK,SACD9rC,EAAMohE,EAAU,OAASj1B,EACzB3uE,EAAO+jG,EAAa/uE,EAAQ,EACxB8uE,IAAU,UACV9jG,EAAO4jG,EAAU,MAEjBE,IAAU,QACV9jG,EAAO4jG,EAAU,MAAQ5uE,GAE7B,MACJ,IAAK,QACDwN,EAAMwhE,EAAa11B,EAAS,EAC5BtuE,EAAO4jG,EAAU,MAAQj1B,EACrBm1B,IAAU,UACVthE,EAAMohE,EAAU,KAEhBE,IAAU,QACVthE,EAAMohE,EAAU,OAASt1B,GAE7B,MACJ,QACI9rC,EAAMohE,EAAU,IAAMt1B,EAASK,EAC/B3uE,EAAO+jG,EAAa/uE,EAAQ,EACxB8uE,IAAU,UACV9jG,EAAO4jG,EAAU,MAEjBE,IAAU,QACV9jG,EAAO4jG,EAAU,MAAQ5uE,GAE7B,KACP,CACD,MAAO,CAAE,IAAKwN,EAAK,KAAMxiC,EAAM,MAAOg1B,EAAO,OAAQs5C,EAAQ,MAAOtuE,EAAOg1B,EAAO,OAAQwN,EAAM8rC,EACpG,EACAtkC,EAAA,uBAAiC25D,EACjC,IAAIM,EAAoB,SAAUzlG,EAAI0lG,EAAe,CACjD,IAAIt1F,EAAWpQ,EAAG,SAAUslG,EAAQtlG,EAAG,MAAOolG,EAAYplG,EAAG,UAAWqlG,EAAcrlG,EAAG,YAAa2lG,EAAe3lG,EAAG,aAAcmwE,EAAUnwE,EAAG,QAAS4lG,EAAa5lG,EAAG,WACxK2jC,EAAO6H,EAAQ,uBAAuBp7B,EAAUg1F,EAAWC,EAAal1B,EAASm1B,CAAK,EACtFO,EAAoBD,IAClBx1F,IAAa,OAASuzB,EAAK,IAAMgiE,EAAa,IAAMD,GACjDt1F,IAAa,QAAUuzB,EAAK,KAAOgiE,EAAa,KAAOD,GACvDt1F,IAAa,SAAWuzB,EAAK,MAAQgiE,EAAa,MAAQD,GAC1Dt1F,IAAa,UAAYuzB,EAAK,OAASgiE,EAAa,OAASD,GACtE,MAAO,CACH,KAAM/hE,EACN,kBAAmBkiE,CAC3B,CACA,EACAr6D,EAAA,kBAA4Bi6D,EAC5B,IAAIK,EAAuB,SAAUT,EAAaM,EAAcD,EAAe,CAC3E,IAAIK,EAAcJ,EAAa,IAAMD,EACjCM,EAAeL,EAAa,KAAOD,EACnCO,EAAgBN,EAAa,MAAQD,EACrCQ,EAAiBP,EAAa,OAASD,EACvC1hE,EAAMqhE,EAAY,IAAMU,EAAcA,EAAcV,EAAY,IACpErhE,EAAMA,EAAMqhE,EAAY,OAASa,EAAiBA,EAAiBb,EAAY,OAASrhE,EACxF,IAAIxiC,EAAO6jG,EAAY,KAAOW,EAAeA,EAAeX,EAAY,KACxE,OAAA7jG,EAAOA,EAAO6jG,EAAY,MAAQY,EAAgBA,EAAgBZ,EAAY,MAAQ7jG,EAC/E,CACH,IAAKwiC,EACL,KAAMxiC,EACN,MAAO6jG,EAAY,MACnB,OAAQA,EAAY,OACpB,MAAO7jG,EAAO6jG,EAAY,MAC1B,OAAQrhE,EAAMqhE,EAAY,MAClC,CACA,EACA75D,EAAA,qBAA+Bs6D,wBC/G/B,OAAO,eAAeK,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACvCA,GAAA,cAAG,OACxB,IAAIzB,GAAUx8D,EACVk+D,IAAS16D,GACT26D,IAAgB,SAAUnB,EAAoBD,EAAgB,CAC9D,IAAIt4B,EAAM+3B,GAAQ,SACdllG,EAAUklG,GAAQ,QAAQ,UAAY,CAAE,OAAO0B,IAAO,gBAAgBnB,EAAgBC,CAAkB,CAAI,EAAE,CAACA,EAAoBD,CAAc,CAAC,EACtJ,OAAAt4B,EAAI,QAAUntE,EACPmtE,CACX,EACqBw5B,GAAA,cAAGE,ICVxB,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC1CA,GAAA,WAAG,OACrB,IAAI5B,IAAUx8D,EACVk+D,GAAS16D,GACTy6D,GAAkBx6D,GAClB46D,IAAgB,CAChB,SAAU,QACV,SAAU,UACV,IAAK,MACL,KAAM,KACV,EACIC,IAAc,CACd,SAAU,QACV,IAAK,MACL,KAAM,MACN,MAAO,MACP,OAAQ,MACR,WAAY,QAChB,EACIC,IAAa,SAAUzmG,EAAI,CAC3B,IAAI0mG,EAAS1mG,EAAG,OAAQ2mG,EAAW3mG,EAAG,SAAU4mG,EAAY5mG,EAAG,UAAWklG,EAAqBllG,EAAG,mBAAoB6mG,EAAgB7mG,EAAG,cAAe8mG,EAAkB9mG,EAAG,gBAAiBslG,EAAQtlG,EAAG,MAAOmwE,EAAUnwE,EAAG,QAAS4lG,EAAa5lG,EAAG,WAAY0lG,EAAgB1lG,EAAG,cAAe+mG,EAAkB/mG,EAAG,gBAAiBgnG,EAAoBhnG,EAAG,kBAC7VinG,EAAad,GAAgB,cAAcjB,EAAoBqB,GAAa,EAC5EW,EAAWf,GAAgB,cAAc,2BAA4BK,GAAW,EAChFW,EAAkBzC,IAAQ,YAAY,SAAU1kG,EAAI,CACpD,IAAIC,EAAImnG,EACJC,EAAKrnG,IAAO,OAAS,GAAKA,EAAIsnG,EAAKD,EAAG,cAAeE,EAAgBD,IAAO,OAAS,EAAIA,EAAIE,EAAKH,EAAG,WAAYI,EAAaD,IAAO,OAASX,EAAc,sBAAuB,EAAGW,EAAIE,EAAKL,EAAG,UAAWjC,EAAYsC,IAAO,QAAUznG,EAAK0mG,GAAa,KAA8B,OAASA,EAAS,WAAa,MAAQ1mG,IAAO,OAAS,OAASA,EAAG,wBAA0BynG,EAAIC,EAAKN,EAAG,UAAWO,EAAYD,IAAO,QAAUP,EAAKF,GAAa,KAA8B,OAASA,EAAS,WAAa,MAAQE,IAAO,OAAS,OAASA,EAAG,sBAAqB,EAAKO,EAAIE,EAAKR,EAAG,YAAahC,EAAcwC,IAAO,OAASZ,EAAW,QAAQ,wBAA0BY,EAAIC,EAAKT,EAAG,aAAc1B,GAAemC,IAAO,OAASf,IAAoBF,EACvuBY,EACAV,EAAgB,sBAAuB,EAAGe,EAChD,GAAI,GAAC1C,GAAa,CAACqC,GAAc,CAACf,GAGlC,IAAII,EAAiB,CACjB,IAAIiB,GAAK,OAAOjB,GAAoB,WAC9BA,EAAgB,CACd,UAAW1B,EACX,YAAaC,EACb,WAAYoC,EACZ,aAAc9B,GACd,QAASx1B,EACT,UAAW,EACX,WAAY,EACZ,cAAeu1B,EACf,WAAYU,GAAO,kBACnB,cAAe,EACnC,CAAiB,EACCU,EAAiBkB,GAAWD,GAAG,IAAKE,GAAYF,GAAG,KACrDG,GAAS,KAAK,MAAMT,EAAW,KAAOQ,GAAYL,EAAU,IAAI,EAChEO,GAAQ,KAAK,MAAMV,EAAW,IAAMO,GAAWJ,EAAU,GAAG,EAChEX,EAAW,QAAQ,MAAM,UAAY,aAAeiB,GAAS,OAASC,GAAQ,MAC9EnB,EAAkB,CACd,UAAW5B,EACX,YAAaC,EACb,WAAYoC,EACZ,aAAc9B,GACd,QAASx1B,EACT,UAAW,EACX,WAAY,EACZ,cAAeu1B,EACf,WAAYU,GAAO,kBACnB,cAAe,EAC/B,CAAa,EACD,MACH,CACD,IAAIgC,GAAcb,IAAkBX,EAAU,OAC1Cx2F,GAAWg4F,GAAcxB,EAAU,CAAC,EAAIA,EAAUW,CAAa,EAC/Dc,GAAKjC,GAAO,kBAAkB,CAC9B,UAAWhB,EACX,YAAaC,EACb,aAAcM,GACd,SAAUv1F,GACV,MAAOk1F,EACP,QAASn1B,EACT,WAAYy1B,CACxB,EAAWF,CAAa,EAAG/hE,GAAO0kE,GAAG,KAAMxC,EAAoBwC,GAAG,kBAC1D,GAAIxC,GAAqBD,GAAc,CAACwC,GAAa,CACjDjB,EAAgB,CACZ,cAAeI,EAAgB,EAC/B,UAAWnC,EACX,YAAaC,EACb,WAAYoC,EACZ,aAAc9B,EAC9B,CAAa,EACD,MACH,CACD,IAAI3hE,GAAML,GAAK,IAAKniC,GAAOmiC,GAAK,KAAMnN,GAAQmN,GAAK,MAAOmsC,GAASnsC,GAAK,OACpE2kE,GAAc1C,GAAc,CAACwC,GAC7BG,GAAKnC,GAAO,qBAAqBziE,GAAMgiE,GAAcD,CAAa,EAAG8C,GAAaD,GAAG,KAAME,GAAYF,GAAG,IAC1GG,GAAW1kE,GACX2kE,GAAYnnG,GACZ8mG,KACAI,GAAWD,GACXE,GAAYH,IAEhBE,GAAW,KAAK,MAAMA,GAAWd,EAAU,GAAG,EAC9Ce,GAAY,KAAK,MAAMA,GAAYf,EAAU,IAAI,EACjDX,EAAW,QAAQ,MAAM,UAAY,aAAe0B,GAAY,OAASD,GAAW,MACpF,IAAIE,GAAsB,CACtB,IAAKjD,GAAa,IAAMD,EAAgBgD,GACxC,KAAM/C,GAAa,KAAOD,EAAgBiD,GAC1C,MAAOA,GAAYnyE,GAAQmvE,GAAa,MAAQD,EAChD,OAAQgD,GAAW54B,GAAS61B,GAAa,OAASD,CAC9D,EACQsB,EAAkB,CACd,UAAW5B,EACX,YAAa,CACT,IAAKsD,GACL,KAAMC,GACN,MAAOnyE,GACP,OAAQs5C,GACR,MAAO64B,GAAYnyE,GACnB,OAAQkyE,GAAW54B,EACtB,EACD,WAAY23B,EACZ,aAAc9B,GACd,SAAUv1F,GACV,MAAOk1F,EACP,QAASn1B,EACT,UAAWs4B,GAAYzkE,GACvB,WAAYwkE,GAAahnG,GACzB,cAAekkG,EACf,WAAY,CACR,IAAKkD,GAAoB,KAAO,EAAI,EAAIA,GAAoB,IAC5D,KAAMA,GAAoB,MAAQ,EAAI,EAAIA,GAAoB,KAC9D,MAAOA,GAAoB,OAAS,EAAI,EAAIA,GAAoB,MAChE,OAAQA,GAAoB,QAAU,EAAI,EAAIA,GAAoB,MACrE,EACD,cAAeA,GAAoB,IAAM,GACrCA,GAAoB,KAAO,GAC3BA,GAAoB,MAAQ,GAC5BA,GAAoB,OAAS,CAC7C,CAAS,EACT,EAAO,CACC/B,EACAF,EACAO,EACAD,EACAF,EACAL,EACAI,EACAF,EACAtB,EACAn1B,EACAy1B,EACAF,EACAsB,CACR,CAAK,EACD,MAAO,CACH,gBAAiBG,EACjB,WAAYF,EACZ,SAAUC,CAClB,CACA,EACkBZ,GAAA,WAAGG,cCxJrB,OAAO,eAAeoC,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACpCA,GAAA,iBAAG,OAC3B,IAAInE,GAAUx8D,EACV4gE,IAAmB,SAAUC,EAAe,CAC5C,IAAIC,EAAetE,GAAQ,OAAOqE,CAAa,EAC3ChuF,EAAQ2pF,GAAQ,QAAQ,UAAY,CACpC,GAAIsE,EAAa,UAAYD,EACzB,OAAOC,EAAa,QACxB,GAAIA,EAAa,QAAQ,SAAWD,EAAc,OAC9C,OAAAC,EAAa,QAAUD,EAChBA,EAEX,QAASplG,EAAI,EAAGA,EAAIolG,EAAc,OAAQplG,GAAK,EAC3C,GAAIolG,EAAcplG,CAAC,IAAMqlG,EAAa,QAAQrlG,CAAC,EAC3C,OAAAqlG,EAAa,QAAUD,EAChBA,EAGf,OAAOC,EAAa,OAC5B,EAAO,CAACD,CAAa,CAAC,EAClB,OAAOhuF,CACX,EACwB8tF,GAAA,iBAAGC,cCtBvBG,GAAYzuF,IAAQA,GAAK,UAAa,UAAY,CAClDyuF,UAAW,OAAO,QAAU,SAAS,EAAG,CACpC,QAASlwF,EAAGpV,EAAI,EAAG8T,EAAI,UAAU,OAAQ9T,EAAI8T,EAAG9T,IAAK,CACjDoV,EAAI,UAAUpV,CAAC,EACf,QAASs1B,KAAKlgB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGkgB,CAAC,IAC1D,EAAEA,CAAC,EAAIlgB,EAAEkgB,CAAC,EACjB,CACD,OAAO,CACf,EACWgwE,GAAS,MAAM,KAAM,SAAS,CACzC,EACA,OAAO,eAAeC,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACnCA,GAAA,kBAAG,OAC5B,IAAIxE,GAAUx8D,EACVihE,IAAoB,SAAUnpG,EAAI,CAClC,IAAIolG,EAAYplG,EAAG,UAAWqlG,EAAcrlG,EAAG,YAAaoQ,EAAWpQ,EAAG,SAAUopG,EAAYppG,EAAG,UAAWqpG,EAAarpG,EAAG,WAC1HspG,EAAsB5E,GAAQ,QAAQ,UAAY,CAClD,MAAQ,CACJ,QAAS0E,CACrB,CACA,EAAO,CAACA,CAAS,CAAC,EACVx1B,EAAa8wB,GAAQ,QAAQ,UAAY,CACzC,OAAQuE,GAAS,CAAE,SAAU,UAAU,EAAK,UAAY,CACpD,IAAIM,EAAaH,EAAY,EACzBplE,EAAMohE,EAAU,IAAMC,EAAY,IAAMD,EAAU,OAAS,EAAImE,EAAa,EAC5E/nG,EAAO4jG,EAAU,KAAOC,EAAY,KAAOD,EAAU,MAAQ,EAAImE,EAAa,EAC9EC,EAAaJ,EACbK,EAAiBpE,EAAY,MAAQ+D,EACrCM,EAAgBrE,EAAY,OAAS+D,EAOzC,OANA5nG,EAAOA,EAAOgoG,EAAaA,EAAahoG,EACxCA,EAAOA,EAAO+nG,EAAaE,EAAiBA,EAAiBF,EAAa/nG,EAC1EwiC,EAAMA,EAAMwlE,EAAaA,EAAaxlE,EACtCA,EAAMA,EAAMulE,EAAaG,EAAgBA,EAAgBH,EAAavlE,EACtEA,EAAM,OAAO,MAAMA,CAAG,EAAI,EAAIA,EAC9BxiC,EAAO,OAAO,MAAMA,CAAI,EAAI,EAAIA,EACxB4O,EAAQ,CACZ,IAAK,QACD,MAAO,CACH,UAAWg5F,EAAY,uBACvB,aAAcA,EAAY,uBAC1B,YAAaA,EAAY,YAAcC,EACvC,KAAM,EACN,IAAKrlE,CAC7B,EACgB,IAAK,OACD,MAAO,CACH,UAAWolE,EAAY,uBACvB,aAAcA,EAAY,uBAC1B,WAAYA,EAAY,YAAcC,EACtC,MAAO,EACP,IAAKrlE,CAC7B,EACgB,IAAK,SACD,MAAO,CACH,WAAYolE,EAAY,uBACxB,YAAaA,EAAY,uBACzB,aAAcA,EAAY,YAAcC,EACxC,IAAK,EACL,KAAM7nG,CAC9B,EACgB,IAAK,MACD,MAAO,CACH,WAAY4nG,EAAY,uBACxB,YAAaA,EAAY,uBACzB,UAAWA,EAAY,YAAcC,EACrC,OAAQ,EACR,KAAM7nG,CAC9B,EACgB,QACI,MAAO,CACH,QAAS,QACjC,CACa,CACJ,GAAG,CACZ,EAAO,CACC6nG,EACAD,EACAhE,EAAU,OACVA,EAAU,KACVA,EAAU,IACVA,EAAU,MACVC,EAAY,OACZA,EAAY,KACZA,EAAY,IACZA,EAAY,MACZj1F,CACR,CAAK,EACD,MAAO,CACH,oBAAqBk5F,EACrB,WAAY11B,CACpB,CACA,EACyBs1B,GAAA,kBAAGC,cC5FxBF,GAAYzuF,IAAQA,GAAK,UAAa,UAAY,CAClD,OAAAyuF,GAAW,OAAO,QAAU,SAAS,EAAG,CACpC,QAASlwF,EAAGpV,EAAI,EAAG8T,EAAI,UAAU,OAAQ9T,EAAI8T,EAAG9T,IAAK,CACjDoV,EAAI,UAAUpV,CAAC,EACf,QAASs1B,KAAKlgB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGkgB,CAAC,IAC1D,EAAEA,CAAC,EAAIlgB,EAAEkgB,CAAC,EACjB,CACD,OAAO,CACf,EACWgwE,GAAS,MAAM,KAAM,SAAS,CACzC,EACA,OAAO,eAAeU,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EACtCA,GAAA,eAAG,OACzB,IAAIC,GAAgB1hE,GAChBw8D,GAAUh5D,EACVw9D,IAAsBv9D,GACtBk+D,IAAiB,SAAU7pG,EAAI,CAC/B,IAAIolG,EAAYplG,EAAG,UAAWqlG,EAAcrlG,EAAG,YAAaoQ,EAAWpQ,EAAG,SAAUqpG,EAAarpG,EAAG,WAAYopG,EAAYppG,EAAG,UAAW8pG,EAAiB9pG,EAAG,eAAgB+pG,EAAqB/pG,EAAG,WAAYujB,EAAYvjB,EAAG,UAAW0hE,EAAW1hE,EAAG,SAAUgqG,EAA8BhqG,EAAG,MACjSC,EAAKipG,IAAoB,kBAAkB,CAC3C,UAAW9D,EACX,YAAaC,EACb,SAAUj1F,EACV,WAAYi5F,EACZ,UAAWD,CACnB,CAAK,EAAGE,EAAsBrpG,EAAG,oBAAqB2zE,EAAa3zE,EAAG,WAC9DgqG,EAAuBvF,GAAQ,QAAQ,UAAY,CAAE,OAAQuE,GAASA,GAAS,GAAIK,CAAmB,EAAGU,CAA2B,CAAG,EAAI,CAACV,EAAqBU,CAA2B,CAAC,EAC7LE,EAAmBxF,GAAQ,QAAQ,UAAY,CAAE,OAAQuE,GAASA,GAAS,GAAIr1B,CAAU,EAAGm2B,CAAkB,CAAG,EAAI,CAACn2B,EAAYm2B,CAAkB,CAAC,EACzJ,OAAQH,GAAc,KAAK,MAAOX,GAAS,CAAE,UAAW1lF,EAAW,MAAO0mF,CAAoB,EAAI,CAAE,SAAU,CAACL,GAAc,IAAI,MAAO,CAAE,MAAOM,EAAkB,UAAWJ,CAAgB,EAAE,MAAM,EAAGpoC,CAAQ,CAAC,CAAE,EAAG,MAAM,CACjO,EACsBioC,GAAA,eAAGE,iBC7BzB,IAAIZ,EAAYzuF,IAAQA,GAAK,UAAa,UAAY,CAClD,OAAAyuF,EAAW,OAAO,QAAU,SAASvwF,EAAG,CACpC,QAASK,EAAGpV,EAAI,EAAG8T,EAAI,UAAU,OAAQ9T,EAAI8T,EAAG9T,IAAK,CACjDoV,EAAI,UAAUpV,CAAC,EACf,QAASs1B,KAAKlgB,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGkgB,CAAC,IAC1DvgB,EAAEugB,CAAC,EAAIlgB,EAAEkgB,CAAC,EACjB,CACD,OAAOvgB,CACf,EACWuwF,EAAS,MAAM,KAAM,SAAS,CACzC,EACA,OAAO,eAAcz9D,EAAU,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5DA,EAAA,QAAkBA,EAAqB,WAAAA,EAAA,eAAyBA,EAA4B,yBAC5F,IAAIo+D,EAAgB1hE,GAChBw8D,EAAUh5D,EACV+4D,EAAkB94D,GAClBy6D,EAAS53C,GACT83C,EAAep3C,GACnB,OAAO,eAAe1jB,EAAS,aAAc,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO86D,EAAa,UAAW,CAAI,GACvH,IAAIuC,EAAqBl2C,GACrBu2C,EAAsBp2C,GAC1B,OAAO,eAAetnB,EAAS,oBAAqB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAO09D,EAAoB,iBAAkB,CAAI,GAC5I,IAAIS,EAAmBrgC,GACvB,OAAO,eAAe99B,EAAS,iBAAkB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOm+D,EAAiB,cAAe,CAAI,GACnI,IAAIQ,EAAoB,CAAC,MAAO,OAAQ,QAAS,QAAQ,EACrDC,EAAkB1F,EAAQ,WAAW,SAAU1kG,EAAIqqG,EAAa,CAChE,IAAI3D,EAAS1mG,EAAG,OAAQ0hE,EAAW1hE,EAAG,SAAU4E,EAAU5E,EAAG,QAASC,EAAKD,EAAG,UAAWsqG,EAAoBrqG,IAAO,OAASkqG,EAAoBlqG,EAAImnG,EAAKpnG,EAAG,MAAOslG,EAAQ8B,IAAO,OAAS,SAAWA,EAAIC,EAAKrnG,EAAG,QAASmwE,EAAUk3B,IAAO,OAAS,EAAIA,EAAIC,EAAKtnG,EAAG,WAAY4lG,EAAa0B,IAAO,OAAS,GAAOA,EAAIE,EAAKxnG,EAAG,cAAe6mG,EAAgBW,IAAO,OAAS,OAAO,SAAS,KAAOA,EAAIE,EAAK1nG,EAAG,gBAAiB+mG,EAAkBW,IAAO,OAASb,EAAgBa,EAAIC,EAAK3nG,EAAG,mBAAoBklG,EAAqByC,IAAO,OAAS,+BAAiCA,EAAI1C,GAAiBjlG,EAAG,eAAgB8mG,GAAkB9mG,EAAG,gBAAiB6nG,GAAK7nG,EAAG,cAAe0lG,GAAgBmC,KAAO,OAAS,EAAIA,GAAI0C,GAAiBvqG,EAAG,eAAgB8nG,GAAK9nG,EAAG,oBAAqBwqG,GAAsB1C,KAAO,OAAS,GAAQA,GACrzBlB,GAAYiC,EAAmB,iBAAiByB,CAAiB,EAEjEG,GAAa/F,EAAQ,OAAO,EAAK,EACjCgG,GAAgBhG,EAAQ,SACxBiG,EAAsBjG,EAAQ,SAC9BkG,GAAiBlG,EAAQ,OAAOkB,CAAU,EAC1Ce,GAAWjC,EAAQ,SACnBqD,GAAKrD,EAAQ,SAAS,CACtB,MAAOY,EACP,WAAY,EACZ,UAAW,EACX,SAAUsB,GAAU,CAAC,EACrB,QAASz2B,EACT,UAAWi2B,EAAO,kBAClB,YAAaA,EAAO,kBACpB,WAAYA,EAAO,kBACnB,aAAcA,EAAO,kBACrB,cAAeV,GACf,WAAYU,EAAO,kBACnB,cAAe,EACvB,CAAK,EAAGyE,GAAe9C,GAAG,CAAC,EAAG+C,GAAkB/C,GAAG,CAAC,EAC5Cf,GAAoBtC,EAAQ,YAAY,SAAUmG,GAAc,CAAE,OAAOC,GAAgBD,EAAY,CAAI,EAAE,CAAE,GAC7GxC,GAAK/B,EAAa,WAAW,CAC7B,OAAQI,EACR,SAAUC,GACV,mBAAoBzB,EACpB,cAAe2B,EACf,gBAAiBE,EACjB,gBAAiBD,GACjB,UAAWF,GACX,MAAOtB,EACP,QAASn1B,EACT,cAAeu1B,GACf,WAAYE,EACZ,kBAAmBoB,EAC3B,CAAK,EAAGG,GAAkBkB,GAAG,gBAAiBpB,GAAaoB,GAAG,WAAYnB,GAAWmB,GAAG,SACpF3D,EAAQ,gBAAgB,UAAY,CAChC,IAAIqG,GAAe,GACfC,GAAgB,UAAY,CAC5B,IAAIhrG,GAAIC,GACR,GAAIymG,GAAUqE,GAAc,CACxB,IAAI3F,IAAaplG,GAAK2mG,IAAa,KAA8B,OAASA,GAAS,WAAa,MAAQ3mG,KAAO,OAAS,OAASA,GAAG,wBAChIqlG,IAAeplG,GAAKgnG,IAAe,KAAgC,OAASA,GAAW,WAAa,MAAQhnG,KAAO,OAAS,OAASA,GAAG,wBACxImlG,IAAa,MACbC,IAAe,OACd,CAACe,EAAO,cAAchB,GAAW,CAC9B,IAAKyF,GAAa,UAAU,IAC5B,KAAMA,GAAa,UAAU,KAC7B,MAAOA,GAAa,UAAU,MAC9B,OAAQA,GAAa,UAAU,OAC/B,OAAQA,GAAa,UAAU,IAAMA,GAAa,UAAU,OAC5D,MAAOA,GAAa,UAAU,KAAOA,GAAa,UAAU,KACpF,CAAqB,GACGxF,GAAY,QAAUwF,GAAa,YAAY,OAC/CxF,GAAY,SAAWwF,GAAa,YAAY,QAChDA,GAAa,UAAY16B,GACzB06B,GAAa,QAAUvF,GACvBsB,KAAc8D,GAAc,SAC5B5D,KAAoB6D,EAAoB,SACxC/E,IAAegF,GAAe,UAClCzD,KAGAP,KAAc8D,GAAc,UAC5BA,GAAc,QAAU9D,IAExBE,KAAoB6D,EAAoB,UACxCA,EAAoB,QAAU7D,IAE9BlB,IAAegF,GAAe,UAC9BA,GAAe,QAAUhF,GAEzBmF,IACA,OAAO,sBAAsBC,EAAa,CAEjD,CACDP,GAAW,QAAU/D,CACjC,EACQ,cAAO,sBAAsBsE,EAAa,EACnC,UAAY,CACfD,GAAe,EAC3B,CACA,EAAO,CACCzF,EACAwB,GACAJ,EACAv2B,EACA82B,GACA4D,GAAa,MACbA,GAAa,UAAU,OACvBA,GAAa,UAAU,KACvBA,GAAa,UAAU,IACvBA,GAAa,UAAU,MACvBA,GAAa,QACbA,GAAa,YAAY,OACzBA,GAAa,YAAY,MACzB1D,GACAP,GACAhB,CACR,CAAK,EACDlB,EAAQ,UAAU,UAAY,CAC1B,IAAIuG,GAAiBhE,GAAW,QAChC,cAAO,OAAOgE,GAAe,MAAOhG,EAAc,EAC3C,UAAY,CACf,OAAO,KAAKA,IAAwE,CAAE,GAAE,QAAQ,SAAUxzF,GAAK,CAC3G,OAAO,OAAOw5F,GAAe,MAAMx5F,EAAG,CACtD,CAAa,CACb,CACK,EAAE,CAACwzF,GAAgByB,EAAQO,EAAU,CAAC,EACvC,IAAIiE,GAAuBxG,EAAQ,YAAY,SAAUzxF,GAAG,CACxD,IAAIjT,GAAIC,GACJymG,GACA,EAAG,GAAA1mG,GAAKinG,GAAW,WAAa,MAAQjnG,KAAO,SAAkBA,GAAG,SAASiT,GAAE,MAAM,IACrF,EAAG,GAAAhT,GAAK0mG,GAAS,WAAa,MAAQ1mG,KAAO,SAAkBA,GAAG,SAASgT,GAAE,MAAM,KACnFs3F,IAAmB,MAA6CA,GAAet3F,EAAC,EAEvF,EAAE,CAACyzF,EAAQ6D,GAAgBtD,EAAU,CAAC,EACnCkE,GAAqBzG,EAAQ,YAAY,UAAY,CACjDiC,GAAS,SACT,OAAO,sBAAsB,UAAY,CAAE,OAAOQ,GAAiB,CAAG,EAElF,EAAO,CAACA,EAAe,CAAC,EACpBzC,EAAQ,UAAU,UAAY,CAC1B,IAAIt/F,GAAOyhG,EAAc,cAAc,KACvC,OAAAzhG,GAAK,iBAAiB,QAAS8lG,GAAsBV,EAAmB,EACxEplG,GAAK,iBAAiB,cAAe8lG,GAAsBV,EAAmB,EAC9EplG,GAAK,iBAAiB,SAAU+lG,EAAkB,EAC3C,UAAY,CACf/lG,GAAK,oBAAoB,QAAS8lG,GAAsBV,EAAmB,EAC3EplG,GAAK,oBAAoB,cAAe8lG,GAAsBV,EAAmB,EACjFplG,GAAK,oBAAoB,SAAU+lG,EAAkB,CACjE,CACK,EAAE,CAACX,GAAqBU,GAAsBC,GAAoBtE,CAAa,CAAC,EACjF,IAAIuE,GAAY1G,EAAQ,YAAY,SAAUn8F,GAAM,CAChDo+F,GAAS,QAAUp+F,GACf8hG,GAAe,OACX,OAAOA,GAAgB,SACvBA,EAAY,QAAU9hG,GAEjB,OAAO8hG,GAAgB,YAC5BA,EAAY9hG,EAAI,EAGhC,EAAO,CAAC8hG,CAAW,CAAC,EACZgB,GAAc,UAAY,CAC1B,OAAO3G,EAAQ,aAAahjC,EAAU,CAClC,IAAK0pC,EACjB,CAAS,CACT,EACQE,GAAgB,UAAY,CAC5B,OAAK5E,EAEGkD,EAAc,IAAInF,EAAgB,cAAewE,EAAS,CAAE,QAAShC,GAAW,QAAS,aAAcC,GAAS,QAAS,UAAWL,GAAiB,CAAE,SAAU,OAAOjiG,GAAY,WAAaA,EAAQimG,EAAY,EAAIjmG,CAAO,CAAE,EAAG,MAAM,EADxO,IAEnB,EACI,OAAQglG,EAAc,KAAKA,EAAc,SAAU,CAAE,SAAU,CAACyB,GAAW,EAAIC,GAAe,IAAK,MAAM,CAC7G,CAAC,EACD9/D,EAAkB,QAAAk5D,EAAQ,WAAW,SAAUxxE,EAAOy5C,EAAK,CACvD,OAAI,OAAO,OAAW,IACXz5C,EAAM,SACV02E,EAAc,IAAIQ,EAAiBnB,EAAS,CAAE,EAAE/1E,EAAO,CAAE,IAAKy5C,CAAG,CAAE,EAAG,MAAM,CACvF,CAAC,QC5LD;AACA;AACA;AACA;AACA;AAEA,IAAI4+B,GAEJ,SAASz8E,IAAQ,CACb,OAAOy8E,GAAa,MAAM,KAAM,SAAS,CAC7C,CAIA,SAASC,IAAgBthG,EAAU,CAC/BqhG,GAAerhG,CACnB,CAEA,SAAS2oE,GAAQprE,EAAO,CACpB,OACIA,aAAiB,OACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,gBAElD,CAEA,SAASimD,GAASjmD,EAAO,CAGrB,OACIA,GAAS,MACT,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAElD,CAEA,SAASgkG,GAAWvsF,EAAGC,EAAG,CACtB,OAAO,OAAO,UAAU,eAAe,KAAKD,EAAGC,CAAC,CACpD,CAEA,SAASusF,GAAcrzF,EAAK,CACxB,GAAI,OAAO,oBACP,OAAO,OAAO,oBAAoBA,CAAG,EAAE,SAAW,EAElD,IAAIrB,EACJ,IAAKA,KAAKqB,EACN,GAAIozF,GAAWpzF,EAAKrB,CAAC,EACjB,MAAO,GAGf,MAAO,EAEf,CAEA,SAASg9D,GAAYvsE,EAAO,CACxB,OAAOA,IAAU,MACrB,CAEA,SAAS6sE,GAAS7sE,EAAO,CACrB,OACI,OAAOA,GAAU,UACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAElD,CAEA,SAAS+sE,GAAO/sE,EAAO,CACnB,OACIA,aAAiB,MACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAElD,CAEA,SAAS2f,GAAIzM,EAAKsH,EAAI,CAClB,IAAI0pF,EAAM,CAAE,EACRhoG,EACAioG,EAASjxF,EAAI,OACjB,IAAKhX,EAAI,EAAGA,EAAIioG,EAAQ,EAAEjoG,EACtBgoG,EAAI,KAAK1pF,EAAGtH,EAAIhX,CAAC,EAAGA,CAAC,CAAC,EAE1B,OAAOgoG,CACX,CAEA,SAASx2B,GAAOj2D,EAAGC,EAAG,CAClB,QAASxb,KAAKwb,EACNssF,GAAWtsF,EAAGxb,CAAC,IACfub,EAAEvb,CAAC,EAAIwb,EAAExb,CAAC,GAIlB,OAAI8nG,GAAWtsF,EAAG,UAAU,IACxBD,EAAE,SAAWC,EAAE,UAGfssF,GAAWtsF,EAAG,SAAS,IACvBD,EAAE,QAAUC,EAAE,SAGXD,CACX,CAEA,SAAS2sF,GAAUpkG,EAAO+uD,EAAQs1C,EAAQC,EAAQ,CAC9C,OAAOC,GAAiBvkG,EAAO+uD,EAAQs1C,EAAQC,EAAQ,EAAI,EAAE,KACjE,CAEA,SAASE,KAAsB,CAE3B,MAAO,CACH,MAAO,GACP,aAAc,CAAE,EAChB,YAAa,CAAE,EACf,SAAU,GACV,cAAe,EACf,UAAW,GACX,WAAY,KACZ,aAAc,KACd,cAAe,GACf,gBAAiB,GACjB,IAAK,GACL,gBAAiB,CAAE,EACnB,IAAK,KACL,SAAU,KACV,QAAS,GACT,gBAAiB,EACzB,CACA,CAEA,SAASC,GAAgBx0F,EAAG,CACxB,OAAIA,EAAE,KAAO,OACTA,EAAE,IAAMu0F,OAELv0F,EAAE,GACb,CAEA,IAAIy0F,GACA,MAAM,UAAU,KAChBA,GAAO,MAAM,UAAU,KAEvBA,GAAO,SAAUC,EAAK,CAClB,IAAI1zF,EAAI,OAAO,IAAI,EACf6D,EAAM7D,EAAE,SAAW,EACnB/U,EAEJ,IAAKA,EAAI,EAAGA,EAAI4Y,EAAK5Y,IACjB,GAAIA,KAAK+U,GAAK0zF,EAAI,KAAK,KAAM1zF,EAAE/U,CAAC,EAAGA,EAAG+U,CAAC,EACnC,MAAO,GAIf,MAAO,EACf,EAGA,SAAS2zF,GAAQ30F,EAAG,CAChB,GAAIA,EAAE,UAAY,KAAM,CACpB,IAAI40F,EAAQJ,GAAgBx0F,CAAC,EACzB60F,EAAcJ,GAAK,KAAKG,EAAM,gBAAiB,SAAU3oG,EAAG,CACxD,OAAOA,GAAK,IAC5B,CAAa,EACD6oG,EACI,CAAC,MAAM90F,EAAE,GAAG,QAAO,CAAE,GACrB40F,EAAM,SAAW,GACjB,CAACA,EAAM,OACP,CAACA,EAAM,YACP,CAACA,EAAM,cACP,CAACA,EAAM,gBACP,CAACA,EAAM,iBACP,CAACA,EAAM,WACP,CAACA,EAAM,eACP,CAACA,EAAM,kBACN,CAACA,EAAM,UAAaA,EAAM,UAAYC,GAU/C,GARI70F,EAAE,UACF80F,EACIA,GACAF,EAAM,gBAAkB,GACxBA,EAAM,aAAa,SAAW,GAC9BA,EAAM,UAAY,QAGtB,OAAO,UAAY,MAAQ,CAAC,OAAO,SAAS50F,CAAC,EAC7CA,EAAE,SAAW80F,MAEb,QAAOA,CAEd,CACD,OAAO90F,EAAE,QACb,CAEA,SAAS+0F,GAAcH,EAAO,CAC1B,IAAI50F,EAAIm0F,GAAU,GAAG,EACrB,OAAIS,GAAS,KACTn3B,GAAO+2B,GAAgBx0F,CAAC,EAAG40F,CAAK,EAEhCJ,GAAgBx0F,CAAC,EAAE,gBAAkB,GAGlCA,CACX,CAIA,IAAIg1F,GAAoB59E,GAAM,iBAAmB,GAC7C69E,GAAmB,GAEvB,SAASC,GAAW3xE,EAAIqO,EAAM,CAC1B,IAAI3lC,EACA2qB,EACAzS,EACAgxF,EAAsBH,GAAiB,OAiC3C,GA/BK14B,GAAY1qC,EAAK,gBAAgB,IAClCrO,EAAG,iBAAmBqO,EAAK,kBAE1B0qC,GAAY1qC,EAAK,EAAE,IACpBrO,EAAG,GAAKqO,EAAK,IAEZ0qC,GAAY1qC,EAAK,EAAE,IACpBrO,EAAG,GAAKqO,EAAK,IAEZ0qC,GAAY1qC,EAAK,EAAE,IACpBrO,EAAG,GAAKqO,EAAK,IAEZ0qC,GAAY1qC,EAAK,OAAO,IACzBrO,EAAG,QAAUqO,EAAK,SAEjB0qC,GAAY1qC,EAAK,IAAI,IACtBrO,EAAG,KAAOqO,EAAK,MAEd0qC,GAAY1qC,EAAK,MAAM,IACxBrO,EAAG,OAASqO,EAAK,QAEhB0qC,GAAY1qC,EAAK,OAAO,IACzBrO,EAAG,QAAUqO,EAAK,SAEjB0qC,GAAY1qC,EAAK,GAAG,IACrBrO,EAAG,IAAMixE,GAAgB5iE,CAAI,GAE5B0qC,GAAY1qC,EAAK,OAAO,IACzBrO,EAAG,QAAUqO,EAAK,SAGlBujE,EAAsB,EACtB,IAAKlpG,EAAI,EAAGA,EAAIkpG,EAAqBlpG,IACjC2qB,EAAOo+E,GAAiB/oG,CAAC,EACzBkY,EAAMytB,EAAKhb,CAAI,EACV0lD,GAAYn4D,CAAG,IAChBof,EAAG3M,CAAI,EAAIzS,GAKvB,OAAOof,CACX,CAGA,SAAS6xE,GAAO12B,EAAQ,CACpBw2B,GAAW,KAAMx2B,CAAM,EACvB,KAAK,GAAK,IAAI,KAAKA,EAAO,IAAM,KAAOA,EAAO,GAAG,QAAS,EAAG,GAAG,EAC3D,KAAK,YACN,KAAK,GAAK,IAAI,KAAK,GAAG,GAItBu2B,KAAqB,KACrBA,GAAmB,GACnB79E,GAAM,aAAa,IAAI,EACvB69E,GAAmB,GAE3B,CAEA,SAASI,GAAS10F,EAAK,CACnB,OACIA,aAAey0F,IAAWz0F,GAAO,MAAQA,EAAI,kBAAoB,IAEzE,CAEA,SAAS20F,GAAKrwF,EAAK,CAEXmS,GAAM,8BAAgC,IACtC,OAAO,QAAY,KACnB,QAAQ,MAER,QAAQ,KAAK,wBAA0BnS,CAAG,CAElD,CAEA,SAASswF,GAAUtwF,EAAKsF,EAAI,CACxB,IAAIirF,EAAY,GAEhB,OAAO/3B,GAAO,UAAY,CAItB,GAHIrmD,GAAM,oBAAsB,MAC5BA,GAAM,mBAAmB,KAAMnS,CAAG,EAElCuwF,EAAW,CACX,IAAI3nF,EAAO,CAAE,EACTjI,EACA,EACA7L,EACA07F,EAAS,UAAU,OACvB,IAAK,EAAI,EAAG,EAAIA,EAAQ,IAAK,CAEzB,GADA7vF,EAAM,GACF,OAAO,UAAU,CAAC,GAAM,SAAU,CAClCA,GAAO;AAAA,GAAQ,EAAI,KACnB,IAAK7L,KAAO,UAAU,CAAC,EACfg6F,GAAW,UAAU,CAAC,EAAGh6F,CAAG,IAC5B6L,GAAO7L,EAAM,KAAO,UAAU,CAAC,EAAEA,CAAG,EAAI,MAGhD6L,EAAMA,EAAI,MAAM,EAAG,EAAE,CACzC,MACoBA,EAAM,UAAU,CAAC,EAErBiI,EAAK,KAAKjI,CAAG,CAChB,CACD0vF,GACIrwF,EACI;AAAA,aACA,MAAM,UAAU,MAAM,KAAK4I,CAAI,EAAE,KAAK,EAAE,EACxC;AAAA,EACA,IAAI,MAAO,EAAC,KAChC,EACY2nF,EAAY,EACf,CACD,OAAOjrF,EAAG,MAAM,KAAM,SAAS,CAClC,EAAEA,CAAE,CACT,CAEA,IAAImrF,GAAe,GAEnB,SAASC,GAAgBjuG,EAAMud,EAAK,CAC5BmS,GAAM,oBAAsB,MAC5BA,GAAM,mBAAmB1vB,EAAMud,CAAG,EAEjCywF,GAAahuG,CAAI,IAClB4tG,GAAKrwF,CAAG,EACRywF,GAAahuG,CAAI,EAAI,GAE7B,CAEA0vB,GAAM,4BAA8B,GACpCA,GAAM,mBAAqB,KAE3B,SAASvT,GAAW9T,EAAO,CACvB,OACK,OAAO,SAAa,KAAeA,aAAiB,UACrD,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,mBAElD,CAEA,SAAS6sD,IAAI8hB,EAAQ,CACjB,IAAI9nD,EAAM3qB,EACV,IAAKA,KAAKyyE,EACFq1B,GAAWr1B,EAAQzyE,CAAC,IACpB2qB,EAAO8nD,EAAOzyE,CAAC,EACX4X,GAAW+S,CAAI,EACf,KAAK3qB,CAAC,EAAI2qB,EAEV,KAAK,IAAM3qB,CAAC,EAAI2qB,GAI5B,KAAK,QAAU8nD,EAIf,KAAK,+BAAiC,IAAI,QACrC,KAAK,wBAAwB,QAAU,KAAK,cAAc,QACvD,IACA,UAAU,MACtB,CACA,CAEA,SAASk3B,GAAaC,EAAcC,EAAa,CAC7C,IAAI7B,EAAMx2B,GAAO,CAAE,EAAEo4B,CAAY,EAC7Bj/E,EACJ,IAAKA,KAAQk/E,EACL/B,GAAW+B,EAAal/E,CAAI,IACxBo/B,GAAS6/C,EAAaj/E,CAAI,CAAC,GAAKo/B,GAAS8/C,EAAYl/E,CAAI,CAAC,GAC1Dq9E,EAAIr9E,CAAI,EAAI,GACZ6mD,GAAOw2B,EAAIr9E,CAAI,EAAGi/E,EAAaj/E,CAAI,CAAC,EACpC6mD,GAAOw2B,EAAIr9E,CAAI,EAAGk/E,EAAYl/E,CAAI,CAAC,GAC5Bk/E,EAAYl/E,CAAI,GAAK,KAC5Bq9E,EAAIr9E,CAAI,EAAIk/E,EAAYl/E,CAAI,EAE5B,OAAOq9E,EAAIr9E,CAAI,GAI3B,IAAKA,KAAQi/E,EAEL9B,GAAW8B,EAAcj/E,CAAI,GAC7B,CAACm9E,GAAW+B,EAAal/E,CAAI,GAC7Bo/B,GAAS6/C,EAAaj/E,CAAI,CAAC,IAG3Bq9E,EAAIr9E,CAAI,EAAI6mD,GAAO,CAAE,EAAEw2B,EAAIr9E,CAAI,CAAC,GAGxC,OAAOq9E,CACX,CAEA,SAAS8B,GAAOr3B,EAAQ,CAChBA,GAAU,MACV,KAAK,IAAIA,CAAM,CAEvB,CAEA,IAAIr0D,GAEA,OAAO,KACPA,GAAO,OAAO,KAEdA,GAAO,SAAU1J,EAAK,CAClB,IAAI1U,EACAgoG,EAAM,GACV,IAAKhoG,KAAK0U,EACFozF,GAAWpzF,EAAK1U,CAAC,GACjBgoG,EAAI,KAAKhoG,CAAC,EAGlB,OAAOgoG,CACf,EAGA,IAAI+B,IAAkB,CAClB,QAAS,gBACT,QAAS,mBACT,SAAU,eACV,QAAS,oBACT,SAAU,sBACV,SAAU,GACd,EAEA,SAASC,IAASl8F,EAAKm8F,EAAKC,EAAK,CAC7B,IAAI3vB,EAAS,KAAK,UAAUzsE,CAAG,GAAK,KAAK,UAAU,SACnD,OAAO8J,GAAW2iE,CAAM,EAAIA,EAAO,KAAK0vB,EAAKC,CAAG,EAAI3vB,CACxD,CAEA,SAAS4vB,GAASC,EAAQC,EAAcC,EAAW,CAC/C,IAAIC,EAAY,GAAK,KAAK,IAAIH,CAAM,EAChCI,EAAcH,EAAeE,EAAU,OACvCE,EAAOL,GAAU,EACrB,OACKK,EAAQH,EAAY,IAAM,GAAM,KACjC,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGE,CAAW,CAAC,EAAE,WAAW,OAAO,CAAC,EAC1DD,CAER,CAEA,IAAIG,GACI,yMACJC,GAAwB,6CACxBC,GAAkB,CAAE,EACpBC,GAAuB,GAM3B,SAASC,GAAepnG,EAAOqnG,EAAQC,EAASzkG,EAAU,CACtD,IAAIshB,EAAOthB,EACP,OAAOA,GAAa,WACpBshB,EAAO,UAAY,CACf,OAAO,KAAKthB,CAAQ,GAChC,GAEQ7C,IACAmnG,GAAqBnnG,CAAK,EAAImkB,GAE9BkjF,IACAF,GAAqBE,EAAO,CAAC,CAAC,EAAI,UAAY,CAC1C,OAAOZ,GAAStiF,EAAK,MAAM,KAAM,SAAS,EAAGkjF,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CAC7E,GAEQC,IACAH,GAAqBG,CAAO,EAAI,UAAY,CACxC,OAAO,KAAK,WAAU,EAAG,QACrBnjF,EAAK,MAAM,KAAM,SAAS,EAC1BnkB,CAChB,CACA,EAEA,CAEA,SAASunG,IAAuBnnG,EAAO,CACnC,OAAIA,EAAM,MAAM,UAAU,EACfA,EAAM,QAAQ,WAAY,EAAE,EAEhCA,EAAM,QAAQ,MAAO,EAAE,CAClC,CAEA,SAASonG,IAAmBr4C,EAAQ,CAChC,IAAIz7C,EAAQy7C,EAAO,MAAM63C,EAAgB,EACrC1qG,EACAqS,EAEJ,IAAKrS,EAAI,EAAGqS,EAAS+E,EAAM,OAAQpX,EAAIqS,EAAQrS,IACvC6qG,GAAqBzzF,EAAMpX,CAAC,CAAC,EAC7BoX,EAAMpX,CAAC,EAAI6qG,GAAqBzzF,EAAMpX,CAAC,CAAC,EAExCoX,EAAMpX,CAAC,EAAIirG,IAAuB7zF,EAAMpX,CAAC,CAAC,EAIlD,OAAO,SAAUiqG,EAAK,CAClB,IAAI1vB,EAAS,GACTv6E,EACJ,IAAKA,EAAI,EAAGA,EAAIqS,EAAQrS,IACpBu6E,GAAU3iE,GAAWR,EAAMpX,CAAC,CAAC,EACvBoX,EAAMpX,CAAC,EAAE,KAAKiqG,EAAKp3C,CAAM,EACzBz7C,EAAMpX,CAAC,EAEjB,OAAOu6E,CACf,CACA,CAGA,SAAS4wB,GAAap3F,EAAG8+C,EAAQ,CAC7B,OAAK9+C,EAAE,WAIP8+C,EAASu4C,GAAav4C,EAAQ9+C,EAAE,WAAY,GAC5C62F,GAAgB/3C,CAAM,EAClB+3C,GAAgB/3C,CAAM,GAAKq4C,IAAmBr4C,CAAM,EAEjD+3C,GAAgB/3C,CAAM,EAAE9+C,CAAC,GAPrBA,EAAE,aAAa,aAQ9B,CAEA,SAASq3F,GAAav4C,EAAQs1C,EAAQ,CAClC,IAAInoG,EAAI,EAER,SAASqrG,EAA4BvnG,EAAO,CACxC,OAAOqkG,EAAO,eAAerkG,CAAK,GAAKA,CAC1C,CAGD,IADA6mG,GAAsB,UAAY,EAC3B3qG,GAAK,GAAK2qG,GAAsB,KAAK93C,CAAM,GAC9CA,EAASA,EAAO,QACZ83C,GACAU,CACZ,EACQV,GAAsB,UAAY,EAClC3qG,GAAK,EAGT,OAAO6yD,CACX,CAEA,IAAIy4C,IAAwB,CACxB,IAAK,YACL,GAAI,SACJ,EAAG,aACH,GAAI,eACJ,IAAK,sBACL,KAAM,2BACV,EAEA,SAASC,IAAez9F,EAAK,CACzB,IAAI+kD,EAAS,KAAK,gBAAgB/kD,CAAG,EACjC09F,EAAc,KAAK,gBAAgB19F,EAAI,YAAa,GAExD,OAAI+kD,GAAU,CAAC24C,EACJ34C,GAGX,KAAK,gBAAgB/kD,CAAG,EAAI09F,EACvB,MAAMd,EAAgB,EACtB,IAAI,SAAUe,EAAK,CAChB,OACIA,IAAQ,QACRA,IAAQ,MACRA,IAAQ,MACRA,IAAQ,OAEDA,EAAI,MAAM,CAAC,EAEfA,CACnB,CAAS,EACA,KAAK,EAAE,EAEL,KAAK,gBAAgB39F,CAAG,EACnC,CAEA,IAAI49F,IAAqB,eAEzB,SAASC,KAAc,CACnB,OAAO,KAAK,YAChB,CAEA,IAAIC,IAAiB,KACjBC,IAAgC,UAEpC,SAASb,IAAQZ,EAAQ,CACrB,OAAO,KAAK,SAAS,QAAQ,KAAMA,CAAM,CAC7C,CAEA,IAAI0B,IAAsB,CACtB,OAAQ,QACR,KAAM,SACN,EAAG,gBACH,GAAI,aACJ,EAAG,WACH,GAAI,aACJ,EAAG,UACH,GAAI,WACJ,EAAG,QACH,GAAI,UACJ,EAAG,SACH,GAAI,WACJ,EAAG,UACH,GAAI,YACJ,EAAG,SACH,GAAI,UACR,EAEA,SAASC,IAAa3B,EAAQ4B,EAAejsG,EAAQksG,EAAU,CAC3D,IAAI1xB,EAAS,KAAK,cAAcx6E,CAAM,EACtC,OAAO6X,GAAW2iE,CAAM,EAClBA,EAAO6vB,EAAQ4B,EAAejsG,EAAQksG,CAAQ,EAC9C1xB,EAAO,QAAQ,MAAO6vB,CAAM,CACtC,CAEA,SAAS8B,IAAWptF,EAAMy7D,EAAQ,CAC9B,IAAI1nB,EAAS,KAAK,cAAc/zC,EAAO,EAAI,SAAW,MAAM,EAC5D,OAAOlH,GAAWi7C,CAAM,EAAIA,EAAO0nB,CAAM,EAAI1nB,EAAO,QAAQ,MAAO0nB,CAAM,CAC7E,CAEA,IAAI4xB,GAAU,GAEd,SAASC,GAAa//E,EAAMggF,EAAW,CACnC,IAAIC,EAAYjgF,EAAK,cACrB8/E,GAAQG,CAAS,EAAIH,GAAQG,EAAY,GAAG,EAAIH,GAAQE,CAAS,EAAIhgF,CACzE,CAEA,SAASkgF,GAAeC,EAAO,CAC3B,OAAO,OAAOA,GAAU,SAClBL,GAAQK,CAAK,GAAKL,GAAQK,EAAM,YAAW,CAAE,EAC7C,MACV,CAEA,SAASC,GAAqBC,EAAa,CACvC,IAAIC,EAAkB,CAAE,EACpBC,EACAjiF,EAEJ,IAAKA,KAAQ+hF,EACL5E,GAAW4E,EAAa/hF,CAAI,IAC5BiiF,EAAiBL,GAAe5hF,CAAI,EAChCiiF,IACAD,EAAgBC,CAAc,EAAIF,EAAY/hF,CAAI,IAK9D,OAAOgiF,CACX,CAEA,IAAIE,GAAa,GAEjB,SAASC,GAAgBzgF,EAAM0gF,EAAU,CACrCF,GAAWxgF,CAAI,EAAI0gF,CACvB,CAEA,SAASC,IAAoBC,EAAU,CACnC,IAAIT,EAAQ,CAAE,EACVznE,EACJ,IAAKA,KAAKkoE,EACFnF,GAAWmF,EAAUloE,CAAC,GACtBynE,EAAM,KAAK,CAAE,KAAMznE,EAAG,SAAU8nE,GAAW9nE,CAAC,CAAC,CAAE,EAGvD,OAAAynE,EAAM,KAAK,SAAUjxF,EAAGC,EAAG,CACvB,OAAOD,EAAE,SAAWC,EAAE,QAC9B,CAAK,EACMgxF,CACX,CAEA,SAASU,GAAWC,EAAM,CACtB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,CAClE,CAEA,SAASC,GAAShD,EAAQ,CACtB,OAAIA,EAAS,EAEF,KAAK,KAAKA,CAAM,GAAK,EAErB,KAAK,MAAMA,CAAM,CAEhC,CAEA,SAASiD,GAAMC,EAAqB,CAChC,IAAIC,EAAgB,CAACD,EACjBnxG,EAAQ,EAEZ,OAAIoxG,IAAkB,GAAK,SAASA,CAAa,IAC7CpxG,EAAQixG,GAASG,CAAa,GAG3BpxG,CACX,CAEA,SAASqxG,GAAWnhF,EAAMohF,EAAU,CAChC,OAAO,SAAUtxG,EAAO,CACpB,OAAIA,GAAS,MACTuxG,GAAM,KAAMrhF,EAAMlwB,CAAK,EACvBgvB,GAAM,aAAa,KAAMsiF,CAAQ,EAC1B,MAEAE,GAAI,KAAMthF,CAAI,CAEjC,CACA,CAEA,SAASshF,GAAI1D,EAAK59E,EAAM,CACpB,OAAO49E,EAAI,QAAS,EACdA,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM59E,CAAI,EAAG,EAClD,GACV,CAEA,SAASqhF,GAAMzD,EAAK59E,EAAMlwB,EAAO,CACzB8tG,EAAI,QAAO,GAAM,CAAC,MAAM9tG,CAAK,IAEzBkwB,IAAS,YACT6gF,GAAWjD,EAAI,MAAM,GACrBA,EAAI,MAAK,IAAO,GAChBA,EAAI,KAAI,IAAO,IAEf9tG,EAAQkxG,GAAMlxG,CAAK,EACnB8tG,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM59E,CAAI,EAC3ClwB,EACA8tG,EAAI,MAAO,EACX2D,GAAYzxG,EAAO8tG,EAAI,OAAO,CAC9C,GAEYA,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM59E,CAAI,EAAElwB,CAAK,EAGlE,CAIA,SAAS0xG,IAAUrB,EAAO,CAEtB,OADAA,EAAQD,GAAeC,CAAK,EACxB50F,GAAW,KAAK40F,CAAK,CAAC,EACf,KAAKA,CAAK,IAEd,IACX,CAEA,SAASsB,IAAUtB,EAAOrwG,EAAO,CAC7B,GAAI,OAAOqwG,GAAU,SAAU,CAC3BA,EAAQC,GAAqBD,CAAK,EAClC,IAAIuB,EAAcf,IAAoBR,CAAK,EACvCxsG,EACAguG,EAAiBD,EAAY,OACjC,IAAK/tG,EAAI,EAAGA,EAAIguG,EAAgBhuG,IAC5B,KAAK+tG,EAAY/tG,CAAC,EAAE,IAAI,EAAEwsG,EAAMuB,EAAY/tG,CAAC,EAAE,IAAI,CAAC,CAEhE,SACQwsG,EAAQD,GAAeC,CAAK,EACxB50F,GAAW,KAAK40F,CAAK,CAAC,EACtB,OAAO,KAAKA,CAAK,EAAErwG,CAAK,EAGhC,OAAO,IACX,CAEA,IAAI8xG,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,IAAc,qBACdC,GAAmB,0BACnBC,IAAiB,uBAGjBC,GACI,wJACJC,GAEJA,GAAU,GAEV,SAASC,GAAczrG,EAAO0rG,EAAOC,EAAa,CAC9CH,GAAQxrG,CAAK,EAAIkU,GAAWw3F,CAAK,EAC3BA,EACA,SAAUE,EAAUC,EAAY,CAC5B,OAAOD,GAAYD,EAAcA,EAAcD,CAC7D,CACA,CAEA,SAASI,IAAsB9rG,EAAO+uE,EAAQ,CAC1C,OAAKq1B,GAAWoH,GAASxrG,CAAK,EAIvBwrG,GAAQxrG,CAAK,EAAE+uE,EAAO,QAASA,EAAO,OAAO,EAHzC,IAAI,OAAOg9B,IAAe/rG,CAAK,CAAC,CAI/C,CAGA,SAAS+rG,IAAer6F,EAAG,CACvB,OAAOs6F,GACHt6F,EACK,QAAQ,KAAM,EAAE,EAChB,QACG,sCACA,SAAU0M,EAAS68D,EAAIC,EAAI+wB,EAAIC,EAAI,CAC/B,OAAOjxB,GAAMC,GAAM+wB,GAAMC,CAC5B,CACJ,CACb,CACA,CAEA,SAASF,GAAYt6F,EAAG,CACpB,OAAOA,EAAE,QAAQ,yBAA0B,MAAM,CACrD,CAEA,IAAIqN,GAAS,GAEb,SAASotF,GAAcnsG,EAAO6C,EAAU,CACpC,IAAIvG,EACA6nB,EAAOthB,EACPupG,EAUJ,IATI,OAAOpsG,GAAU,WACjBA,EAAQ,CAACA,CAAK,GAEditE,GAASpqE,CAAQ,IACjBshB,EAAO,SAAU/jB,EAAOsT,EAAO,CAC3BA,EAAM7Q,CAAQ,EAAI8mG,GAAMvpG,CAAK,CACzC,GAEIgsG,EAAWpsG,EAAM,OACZ1D,EAAI,EAAGA,EAAI8vG,EAAU9vG,IACtByiB,GAAO/e,EAAM1D,CAAC,CAAC,EAAI6nB,CAE3B,CAEA,SAASkoF,GAAkBrsG,EAAO6C,EAAU,CACxCspG,GAAcnsG,EAAO,SAAUI,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CACxD+uE,EAAO,GAAKA,EAAO,IAAM,GACzBlsE,EAASzC,EAAO2uE,EAAO,GAAIA,EAAQ/uE,CAAK,CAChD,CAAK,CACL,CAEA,SAASssG,IAAwBtsG,EAAOI,EAAO2uE,EAAQ,CAC/C3uE,GAAS,MAAQgkG,GAAWrlF,GAAQ/e,CAAK,GACzC+e,GAAO/e,CAAK,EAAEI,EAAO2uE,EAAO,GAAIA,EAAQ/uE,CAAK,CAErD,CAEA,IAAIusG,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,IAAO,EACPC,IAAU,EAEd,SAASC,IAAI58F,EAAG5O,EAAG,CACf,OAAS4O,EAAI5O,EAAKA,GAAKA,CAC3B,CAEA,IAAIoS,GAEA,MAAM,UAAU,QAChBA,GAAU,MAAM,UAAU,QAE1BA,GAAU,SAAUwtB,EAAG,CAEnB,IAAI9kC,EACJ,IAAKA,EAAI,EAAGA,EAAI,KAAK,OAAQ,EAAEA,EAC3B,GAAI,KAAKA,CAAC,IAAM8kC,EACZ,OAAO9kC,EAGf,MAAO,EACf,EAGA,SAAS4tG,GAAYT,EAAMwD,EAAO,CAC9B,GAAI,MAAMxD,CAAI,GAAK,MAAMwD,CAAK,EAC1B,MAAO,KAEX,IAAIC,EAAWF,IAAIC,EAAO,EAAE,EAC5B,OAAAxD,IAASwD,EAAQC,GAAY,GACtBA,IAAa,EACd1D,GAAWC,CAAI,EACX,GACA,GACJ,GAAOyD,EAAW,EAAK,CACjC,CAIA9F,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,UAAY,CAC7C,OAAO,KAAK,MAAO,EAAG,CAC1B,CAAC,EAEDA,GAAe,MAAO,EAAG,EAAG,SAAUj4C,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACrD,CAAC,EAEDi4C,GAAe,OAAQ,EAAG,EAAG,SAAUj4C,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,OAAO,KAAMA,CAAM,CAChD,CAAC,EAIDu5C,GAAa,QAAS,GAAG,EAIzBU,GAAgB,QAAS,CAAC,EAI1BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,MAAO,SAAUG,EAAUnH,EAAQ,CAC7C,OAAOA,EAAO,iBAAiBmH,CAAQ,CAC3C,CAAC,EACDH,GAAc,OAAQ,SAAUG,EAAUnH,EAAQ,CAC9C,OAAOA,EAAO,YAAYmH,CAAQ,CACtC,CAAC,EAEDO,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAO,CAC/CA,EAAM84F,EAAK,EAAI7C,GAAMvpG,CAAK,EAAI,CAClC,CAAC,EAED+rG,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CAClE,IAAIitG,EAAQl+B,EAAO,QAAQ,YAAY3uE,EAAOJ,EAAO+uE,EAAO,OAAO,EAE/Dk+B,GAAS,KACTv5F,EAAM84F,EAAK,EAAIS,EAEfpI,GAAgB91B,CAAM,EAAE,aAAe3uE,CAE/C,CAAC,EAID,IAAI+sG,IACI,wFAAwF,MACpF,GACH,EACLC,GACI,kDAAkD,MAAM,GAAG,EAC/DC,GAAmB,gCACnBC,IAA0B/B,GAC1BgC,IAAqBhC,GAEzB,SAASiC,IAAan9F,EAAG8+C,EAAQ,CAC7B,OAAK9+C,EAKEm7D,GAAQ,KAAK,OAAO,EACrB,KAAK,QAAQn7D,EAAE,OAAO,EACtB,KAAK,SACA,KAAK,QAAQ,UAAYg9F,IAAkB,KAAKl+C,CAAM,EACjD,SACA,YACpB,EAAY9+C,EAAE,MAAK,CAAE,EAVNm7D,GAAQ,KAAK,OAAO,EACrB,KAAK,QACL,KAAK,QAAQ,UAS3B,CAEA,SAASiiC,IAAkBp9F,EAAG8+C,EAAQ,CAClC,OAAK9+C,EAKEm7D,GAAQ,KAAK,YAAY,EAC1B,KAAK,aAAan7D,EAAE,OAAO,EAC3B,KAAK,aACDg9F,GAAiB,KAAKl+C,CAAM,EAAI,SAAW,YACzD,EAAY9+C,EAAE,MAAK,CAAE,EARNm7D,GAAQ,KAAK,YAAY,EAC1B,KAAK,aACL,KAAK,aAAa,UAOhC,CAEA,SAASkiC,IAAkBC,EAAWx+C,EAAQu1C,EAAQ,CAClD,IAAIpoG,EACAkiD,EACA+nD,EACAqH,EAAMD,EAAU,oBACpB,GAAI,CAAC,KAAK,aAKN,IAHA,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,GACpBrxG,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAClBiqG,EAAM/B,GAAU,CAAC,IAAMloG,CAAC,CAAC,EACzB,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BiqG,EACA,EACH,EAAC,kBAAiB,EACnB,KAAK,iBAAiBjqG,CAAC,EAAI,KAAK,OAAOiqG,EAAK,EAAE,EAAE,oBAIxD,OAAI7B,EACIv1C,IAAW,OACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACtCpvD,IAAO,GAAKA,EAAK,OAExBA,EAAK5qC,GAAQ,KAAK,KAAK,iBAAkBg6F,CAAG,EACrCpvD,IAAO,GAAKA,EAAK,MAGxB2Q,IAAW,OACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACzCpvD,IAAO,GACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,iBAAkBg6F,CAAG,EACrCpvD,IAAO,GAAKA,EAAK,QAExBA,EAAK5qC,GAAQ,KAAK,KAAK,iBAAkBg6F,CAAG,EACxCpvD,IAAO,GACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACtCpvD,IAAO,GAAKA,EAAK,MAGpC,CAEA,SAASqvD,IAAkBF,EAAWx+C,EAAQu1C,EAAQ,CAClD,IAAIpoG,EAAGiqG,EAAKmF,EAEZ,GAAI,KAAK,kBACL,OAAOgC,IAAkB,KAAK,KAAMC,EAAWx+C,EAAQu1C,CAAM,EAYjE,IATK,KAAK,eACN,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,IAMxBpoG,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBAiqG,EAAM/B,GAAU,CAAC,IAAMloG,CAAC,CAAC,EACrBooG,GAAU,CAAC,KAAK,iBAAiBpoG,CAAC,IAClC,KAAK,iBAAiBA,CAAC,EAAI,IAAI,OAC3B,IAAM,KAAK,OAAOiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IAC9C,GAChB,EACY,KAAK,kBAAkBjqG,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IACnD,GAChB,GAEY,CAAC7B,GAAU,CAAC,KAAK,aAAapoG,CAAC,IAC/BovG,EACI,IAAM,KAAK,OAAOnF,EAAK,EAAE,EAAI,KAAO,KAAK,YAAYA,EAAK,EAAE,EAChE,KAAK,aAAajqG,CAAC,EAAI,IAAI,OAAOovG,EAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI7DhH,GACAv1C,IAAW,QACX,KAAK,iBAAiB7yD,CAAC,EAAE,KAAKqxG,CAAS,EAEvC,OAAOrxG,EACJ,GACHooG,GACAv1C,IAAW,OACX,KAAK,kBAAkB7yD,CAAC,EAAE,KAAKqxG,CAAS,EAExC,OAAOrxG,EACJ,GAAI,CAACooG,GAAU,KAAK,aAAapoG,CAAC,EAAE,KAAKqxG,CAAS,EACrD,OAAOrxG,CAEd,CACL,CAIA,SAASwxG,GAASvH,EAAK9tG,EAAO,CAC1B,IAAIs1G,EAEJ,GAAI,CAACxH,EAAI,UAEL,OAAOA,EAGX,GAAI,OAAO9tG,GAAU,UACjB,GAAI,QAAQ,KAAKA,CAAK,EAClBA,EAAQkxG,GAAMlxG,CAAK,UAEnBA,EAAQ8tG,EAAI,WAAY,EAAC,YAAY9tG,CAAK,EAEtC,CAACw0E,GAASx0E,CAAK,EACf,OAAO8tG,EAKnB,OAAAwH,EAAa,KAAK,IAAIxH,EAAI,KAAI,EAAI2D,GAAY3D,EAAI,OAAQ9tG,CAAK,CAAC,EAChE8tG,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM,OAAO,EAAE9tG,EAAOs1G,CAAU,EAC9DxH,CACX,CAEA,SAASyH,GAAYv1G,EAAO,CACxB,OAAIA,GAAS,MACTq1G,GAAS,KAAMr1G,CAAK,EACpBgvB,GAAM,aAAa,KAAM,EAAI,EACtB,MAEAwiF,GAAI,KAAM,OAAO,CAEhC,CAEA,SAASgE,KAAiB,CACtB,OAAO/D,GAAY,KAAK,KAAM,EAAE,KAAK,MAAK,CAAE,CAChD,CAEA,SAASgE,IAAiBtC,EAAU,CAChC,OAAI,KAAK,mBACAxH,GAAW,KAAM,cAAc,GAChC+J,GAAmB,KAAK,IAAI,EAE5BvC,EACO,KAAK,wBAEL,KAAK,oBAGXxH,GAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBkJ,KAEtB,KAAK,yBAA2B1B,EACjC,KAAK,wBACL,KAAK,kBAEnB,CAEA,SAASwC,IAAYxC,EAAU,CAC3B,OAAI,KAAK,mBACAxH,GAAW,KAAM,cAAc,GAChC+J,GAAmB,KAAK,IAAI,EAE5BvC,EACO,KAAK,mBAEL,KAAK,eAGXxH,GAAW,KAAM,cAAc,IAChC,KAAK,aAAemJ,KAEjB,KAAK,oBAAsB3B,EAC5B,KAAK,mBACL,KAAK,aAEnB,CAEA,SAASuC,IAAqB,CAC1B,SAASE,EAAU,EAAGv2F,EAAG,CACrB,OAAOA,EAAE,OAAS,EAAE,MACvB,CAED,IAAIw2F,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChBlyG,EACAiqG,EACJ,IAAKjqG,EAAI,EAAGA,EAAI,GAAIA,IAEhBiqG,EAAM/B,GAAU,CAAC,IAAMloG,CAAC,CAAC,EACzBgyG,EAAY,KAAK,KAAK,YAAY/H,EAAK,EAAE,CAAC,EAC1CgI,EAAW,KAAK,KAAK,OAAOhI,EAAK,EAAE,CAAC,EACpCiI,EAAY,KAAK,KAAK,OAAOjI,EAAK,EAAE,CAAC,EACrCiI,EAAY,KAAK,KAAK,YAAYjI,EAAK,EAAE,CAAC,EAO9C,IAHA+H,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EACrB/xG,EAAI,EAAGA,EAAI,GAAIA,IAChBgyG,EAAYhyG,CAAC,EAAI0vG,GAAYsC,EAAYhyG,CAAC,CAAC,EAC3CiyG,EAAWjyG,CAAC,EAAI0vG,GAAYuC,EAAWjyG,CAAC,CAAC,EAE7C,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBkyG,EAAYlyG,CAAC,EAAI0vG,GAAYwC,EAAYlyG,CAAC,CAAC,EAG/C,KAAK,aAAe,IAAI,OAAO,KAAOkyG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACtE,KAAK,kBAAoB,KAAK,aAC9B,KAAK,mBAAqB,IAAI,OAC1B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACR,EACI,KAAK,wBAA0B,IAAI,OAC/B,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACR,CACA,CAIAlH,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,IAAI3lG,EAAI,KAAK,OACb,OAAOA,GAAK,KAAOglG,GAAShlG,EAAG,CAAC,EAAI,IAAMA,CAC9C,CAAC,EAED2lG,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,KAAM,EAAG,GACzB,CAAC,EAEDA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,MAAM,EACzCA,GAAe,EAAG,CAAC,SAAU,EAAG,EAAI,EAAG,EAAG,MAAM,EAIhDsB,GAAa,OAAQ,GAAG,EAIxBU,GAAgB,OAAQ,CAAC,EAIzBqC,GAAc,IAAKN,EAAW,EAC9BM,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,OAAQT,GAAWN,EAAM,EACvCe,GAAc,QAASR,GAAWN,EAAM,EACxCc,GAAc,SAAUR,GAAWN,EAAM,EAEzCwB,GAAc,CAAC,QAAS,QAAQ,EAAGI,EAAI,EACvCJ,GAAc,OAAQ,SAAU/rG,EAAOsT,EAAO,CAC1CA,EAAM64F,EAAI,EACNnsG,EAAM,SAAW,EAAIqnB,GAAM,kBAAkBrnB,CAAK,EAAIupG,GAAMvpG,CAAK,CACzE,CAAC,EACD+rG,GAAc,KAAM,SAAU/rG,EAAOsT,EAAO,CACxCA,EAAM64F,EAAI,EAAI9kF,GAAM,kBAAkBrnB,CAAK,CAC/C,CAAC,EACD+rG,GAAc,IAAK,SAAU/rG,EAAOsT,EAAO,CACvCA,EAAM64F,EAAI,EAAI,SAASnsG,EAAO,EAAE,CACpC,CAAC,EAID,SAASquG,GAAWhF,EAAM,CACtB,OAAOD,GAAWC,CAAI,EAAI,IAAM,GACpC,CAIAhiF,GAAM,kBAAoB,SAAUrnB,EAAO,CACvC,OAAOupG,GAAMvpG,CAAK,GAAKupG,GAAMvpG,CAAK,EAAI,GAAK,KAAO,IACtD,EAIA,IAAIsuG,GAAa5E,GAAW,WAAY,EAAI,EAE5C,SAAS6E,KAAgB,CACrB,OAAOnF,GAAW,KAAK,KAAI,CAAE,CACjC,CAEA,SAASoF,IAAWntG,EAAG4O,EAAGywB,EAAGG,EAAG8B,EAAGrxB,EAAGm9F,EAAI,CAGtC,IAAIC,EAEJ,OAAIrtG,EAAI,KAAOA,GAAK,GAEhBqtG,EAAO,IAAI,KAAKrtG,EAAI,IAAK4O,EAAGywB,EAAGG,EAAG8B,EAAGrxB,EAAGm9F,CAAE,EACtC,SAASC,EAAK,YAAW,CAAE,GAC3BA,EAAK,YAAYrtG,CAAC,GAGtBqtG,EAAO,IAAI,KAAKrtG,EAAG4O,EAAGywB,EAAGG,EAAG8B,EAAGrxB,EAAGm9F,CAAE,EAGjCC,CACX,CAEA,SAASC,GAActtG,EAAG,CACtB,IAAIqtG,EAAM5wF,EAEV,OAAIzc,EAAI,KAAOA,GAAK,GAChByc,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAE3CA,EAAK,CAAC,EAAIzc,EAAI,IACdqtG,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM5wF,CAAI,CAAC,EACtC,SAAS4wF,EAAK,eAAc,CAAE,GAC9BA,EAAK,eAAertG,CAAC,GAGzBqtG,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM,SAAS,CAAC,EAG5CA,CACX,CAGA,SAASE,GAAgBvF,EAAMwF,EAAKC,EAAK,CACrC,IACIC,EAAM,EAAIF,EAAMC,EAEhBE,GAAS,EAAIL,GAActF,EAAM,EAAG0F,CAAG,EAAE,UAAS,EAAKF,GAAO,EAElE,MAAO,CAACG,EAAQD,EAAM,CAC1B,CAGA,SAASE,GAAmB5F,EAAM6F,EAAMC,EAASN,EAAKC,EAAK,CACvD,IAAIM,GAAgB,EAAID,EAAUN,GAAO,EACrCQ,EAAaT,GAAgBvF,EAAMwF,EAAKC,CAAG,EAC3CQ,EAAY,EAAI,GAAKJ,EAAO,GAAKE,EAAeC,EAChDE,EACAC,EAEJ,OAAIF,GAAa,GACbC,EAAUlG,EAAO,EACjBmG,EAAenB,GAAWkB,CAAO,EAAID,GAC9BA,EAAYjB,GAAWhF,CAAI,GAClCkG,EAAUlG,EAAO,EACjBmG,EAAeF,EAAYjB,GAAWhF,CAAI,IAE1CkG,EAAUlG,EACVmG,EAAeF,GAGZ,CACH,KAAMC,EACN,UAAWC,CACnB,CACA,CAEA,SAASC,GAAWtJ,EAAK0I,EAAKC,EAAK,CAC/B,IAAIO,EAAaT,GAAgBzI,EAAI,KAAM,EAAE0I,EAAKC,CAAG,EACjDI,EAAO,KAAK,OAAO/I,EAAI,UAAW,EAAGkJ,EAAa,GAAK,CAAC,EAAI,EAC5DK,EACAH,EAEJ,OAAIL,EAAO,GACPK,EAAUpJ,EAAI,KAAM,EAAG,EACvBuJ,EAAUR,EAAOS,GAAYJ,EAASV,EAAKC,CAAG,GACvCI,EAAOS,GAAYxJ,EAAI,OAAQ0I,EAAKC,CAAG,GAC9CY,EAAUR,EAAOS,GAAYxJ,EAAI,OAAQ0I,EAAKC,CAAG,EACjDS,EAAUpJ,EAAI,KAAM,EAAG,IAEvBoJ,EAAUpJ,EAAI,OACduJ,EAAUR,GAGP,CACH,KAAMQ,EACN,KAAMH,CACd,CACA,CAEA,SAASI,GAAYtG,EAAMwF,EAAKC,EAAK,CACjC,IAAIO,EAAaT,GAAgBvF,EAAMwF,EAAKC,CAAG,EAC3Cc,EAAiBhB,GAAgBvF,EAAO,EAAGwF,EAAKC,CAAG,EACvD,OAAQT,GAAWhF,CAAI,EAAIgG,EAAaO,GAAkB,CAC9D,CAIA5I,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAC3CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,SAAS,EAI9CsB,GAAa,OAAQ,GAAG,EACxBA,GAAa,UAAW,GAAG,EAI3BU,GAAgB,OAAQ,CAAC,EACzBA,GAAgB,UAAW,CAAC,EAI5BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EAErC6B,GACI,CAAC,IAAK,KAAM,IAAK,IAAI,EACrB,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAClCsvG,EAAKtvG,EAAM,OAAO,EAAG,CAAC,CAAC,EAAI2pG,GAAMvpG,CAAK,CACzC,CACL,EAMA,SAAS6vG,IAAW1J,EAAK,CACrB,OAAOsJ,GAAWtJ,EAAK,KAAK,MAAM,IAAK,KAAK,MAAM,GAAG,EAAE,IAC3D,CAEA,IAAI2J,IAAoB,CACpB,IAAK,EACL,IAAK,CACT,EAEA,SAASC,KAAuB,CAC5B,OAAO,KAAK,MAAM,GACtB,CAEA,SAASC,KAAuB,CAC5B,OAAO,KAAK,MAAM,GACtB,CAIA,SAASC,IAAWjwG,EAAO,CACvB,IAAIkvG,EAAO,KAAK,WAAY,EAAC,KAAK,IAAI,EACtC,OAAOlvG,GAAS,KAAOkvG,EAAO,KAAK,KAAKlvG,EAAQkvG,GAAQ,EAAG,GAAG,CAClE,CAEA,SAASgB,IAAclwG,EAAO,CAC1B,IAAIkvG,EAAOO,GAAW,KAAM,EAAG,CAAC,EAAE,KAClC,OAAOzvG,GAAS,KAAOkvG,EAAO,KAAK,KAAKlvG,EAAQkvG,GAAQ,EAAG,GAAG,CAClE,CAIAlI,GAAe,IAAK,EAAG,KAAM,KAAK,EAElCA,GAAe,KAAM,EAAG,EAAG,SAAUj4C,EAAQ,CACzC,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACrD,CAAC,EAEDi4C,GAAe,MAAO,EAAG,EAAG,SAAUj4C,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,cAAc,KAAMA,CAAM,CACvD,CAAC,EAEDi4C,GAAe,OAAQ,EAAG,EAAG,SAAUj4C,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,SAAS,KAAMA,CAAM,CAClD,CAAC,EAEDi4C,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,IAAK,EAAG,EAAG,YAAY,EAItCsB,GAAa,MAAO,GAAG,EACvBA,GAAa,UAAW,GAAG,EAC3BA,GAAa,aAAc,GAAG,EAG9BU,GAAgB,MAAO,EAAE,EACzBA,GAAgB,UAAW,EAAE,EAC7BA,GAAgB,aAAc,EAAE,EAIhCqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAM,SAAUG,EAAUnH,EAAQ,CAC5C,OAAOA,EAAO,iBAAiBmH,CAAQ,CAC3C,CAAC,EACDH,GAAc,MAAO,SAAUG,EAAUnH,EAAQ,CAC7C,OAAOA,EAAO,mBAAmBmH,CAAQ,CAC7C,CAAC,EACDH,GAAc,OAAQ,SAAUG,EAAUnH,EAAQ,CAC9C,OAAOA,EAAO,cAAcmH,CAAQ,CACxC,CAAC,EAEDS,GAAkB,CAAC,KAAM,MAAO,MAAM,EAAG,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAC3E,IAAIuvG,EAAUxgC,EAAO,QAAQ,cAAc3uE,EAAOJ,EAAO+uE,EAAO,OAAO,EAEnEwgC,GAAW,KACXD,EAAK,EAAIC,EAET1K,GAAgB91B,CAAM,EAAE,eAAiB3uE,CAEjD,CAAC,EAEDisG,GAAkB,CAAC,IAAK,IAAK,GAAG,EAAG,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CACrEsvG,EAAKtvG,CAAK,EAAI2pG,GAAMvpG,CAAK,CAC7B,CAAC,EAID,SAASmwG,IAAanwG,EAAOqkG,EAAQ,CACjC,OAAI,OAAOrkG,GAAU,SACVA,EAGN,MAAMA,CAAK,GAIhBA,EAAQqkG,EAAO,cAAcrkG,CAAK,EAC9B,OAAOA,GAAU,SACVA,EAGJ,MARI,SAASA,EAAO,EAAE,CASjC,CAEA,SAASowG,IAAgBpwG,EAAOqkG,EAAQ,CACpC,OAAI,OAAOrkG,GAAU,SACVqkG,EAAO,cAAcrkG,CAAK,EAAI,GAAK,EAEvC,MAAMA,CAAK,EAAI,KAAOA,CACjC,CAGA,SAASqwG,GAAcC,EAAItgG,EAAG,CAC1B,OAAOsgG,EAAG,MAAMtgG,EAAG,CAAC,EAAE,OAAOsgG,EAAG,MAAM,EAAGtgG,CAAC,CAAC,CAC/C,CAEA,IAAIugG,IACI,2DAA2D,MAAM,GAAG,EACxEC,GAA6B,8BAA8B,MAAM,GAAG,EACpEC,IAA2B,uBAAuB,MAAM,GAAG,EAC3DC,IAAuBvF,GACvBwF,IAA4BxF,GAC5ByF,IAA0BzF,GAE9B,SAAS0F,IAAe5gG,EAAG8+C,EAAQ,CAC/B,IAAI+hD,EAAW1lC,GAAQ,KAAK,SAAS,EAC/B,KAAK,UACL,KAAK,UACDn7D,GAAKA,IAAM,IAAQ,KAAK,UAAU,SAAS,KAAK8+C,CAAM,EAChD,SACA,YACpB,EACI,OAAO9+C,IAAM,GACPogG,GAAcS,EAAU,KAAK,MAAM,GAAG,EACtC7gG,EACA6gG,EAAS7gG,EAAE,KAAK,EAChB6gG,CACV,CAEA,SAASC,IAAoB9gG,EAAG,CAC5B,OAAOA,IAAM,GACPogG,GAAc,KAAK,eAAgB,KAAK,MAAM,GAAG,EACjDpgG,EACA,KAAK,eAAeA,EAAE,KAAK,EAC3B,KAAK,cACf,CAEA,SAAS+gG,IAAkB/gG,EAAG,CAC1B,OAAOA,IAAM,GACPogG,GAAc,KAAK,aAAc,KAAK,MAAM,GAAG,EAC/CpgG,EACA,KAAK,aAAaA,EAAE,KAAK,EACzB,KAAK,YACf,CAEA,SAASghG,IAAoBC,EAAaniD,EAAQu1C,EAAQ,CACtD,IAAIpoG,EACAkiD,EACA+nD,EACAqH,EAAM0D,EAAY,oBACtB,GAAI,CAAC,KAAK,eAKN,IAJA,KAAK,eAAiB,GACtB,KAAK,oBAAsB,GAC3B,KAAK,kBAAoB,GAEpBh1G,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACjBiqG,EAAM/B,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIloG,CAAC,EAChC,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BiqG,EACA,EACH,EAAC,kBAAiB,EACnB,KAAK,oBAAoBjqG,CAAC,EAAI,KAAK,cAC/BiqG,EACA,EACH,EAAC,kBAAiB,EACnB,KAAK,eAAejqG,CAAC,EAAI,KAAK,SAASiqG,EAAK,EAAE,EAAE,oBAIxD,OAAI7B,EACIv1C,IAAW,QACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,CAAG,EACnCpvD,IAAO,GAAKA,EAAK,MACjB2Q,IAAW,OAClB3Q,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,CAAG,EACxCpvD,IAAO,GAAKA,EAAK,OAExBA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACtCpvD,IAAO,GAAKA,EAAK,MAGxB2Q,IAAW,QACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,CAAG,EACtCpvD,IAAO,KAGXA,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,CAAG,EAC3CpvD,IAAO,IACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACtCpvD,IAAO,GAAKA,EAAK,OACjB2Q,IAAW,OAClB3Q,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,CAAG,EAC3CpvD,IAAO,KAGXA,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,CAAG,EACtCpvD,IAAO,IACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACtCpvD,IAAO,GAAKA,EAAK,QAExBA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,CAAG,EACzCpvD,IAAO,KAGXA,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,CAAG,EACtCpvD,IAAO,IACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,CAAG,EACxCpvD,IAAO,GAAKA,EAAK,MAGpC,CAEA,SAAS+yD,IAAoBD,EAAaniD,EAAQu1C,EAAQ,CACtD,IAAIpoG,EAAGiqG,EAAKmF,EAEZ,GAAI,KAAK,oBACL,OAAO2F,IAAoB,KAAK,KAAMC,EAAaniD,EAAQu1C,CAAM,EAUrE,IAPK,KAAK,iBACN,KAAK,eAAiB,GACtB,KAAK,kBAAoB,GACzB,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,IAGzBpoG,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BAiqG,EAAM/B,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIloG,CAAC,EAC5BooG,GAAU,CAAC,KAAK,mBAAmBpoG,CAAC,IACpC,KAAK,mBAAmBA,CAAC,EAAI,IAAI,OAC7B,IAAM,KAAK,SAASiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACpD,GAChB,EACY,KAAK,oBAAoBjqG,CAAC,EAAI,IAAI,OAC9B,IAAM,KAAK,cAAciqG,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACzD,GAChB,EACY,KAAK,kBAAkBjqG,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACvD,GAChB,GAEa,KAAK,eAAejqG,CAAC,IACtBovG,EACI,IACA,KAAK,SAASnF,EAAK,EAAE,EACrB,KACA,KAAK,cAAcA,EAAK,EAAE,EAC1B,KACA,KAAK,YAAYA,EAAK,EAAE,EAC5B,KAAK,eAAejqG,CAAC,EAAI,IAAI,OAAOovG,EAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI/DhH,GACAv1C,IAAW,QACX,KAAK,mBAAmB7yD,CAAC,EAAE,KAAKg1G,CAAW,EAE3C,OAAOh1G,EACJ,GACHooG,GACAv1C,IAAW,OACX,KAAK,oBAAoB7yD,CAAC,EAAE,KAAKg1G,CAAW,EAE5C,OAAOh1G,EACJ,GACHooG,GACAv1C,IAAW,MACX,KAAK,kBAAkB7yD,CAAC,EAAE,KAAKg1G,CAAW,EAE1C,OAAOh1G,EACJ,GAAI,CAACooG,GAAU,KAAK,eAAepoG,CAAC,EAAE,KAAKg1G,CAAW,EACzD,OAAOh1G,CAEd,CACL,CAIA,SAASk1G,IAAgBpxG,EAAO,CAC5B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAIqxG,EAAM,KAAK,OAAS,KAAK,GAAG,UAAS,EAAK,KAAK,GAAG,SACtD,OAAIrxG,GAAS,MACTA,EAAQmwG,IAAanwG,EAAO,KAAK,WAAY,GACtC,KAAK,IAAIA,EAAQqxG,EAAK,GAAG,GAEzBA,CAEf,CAEA,SAASC,IAAsBtxG,EAAO,CAClC,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAImvG,GAAW,KAAK,MAAQ,EAAI,KAAK,WAAY,EAAC,MAAM,KAAO,EAC/D,OAAOnvG,GAAS,KAAOmvG,EAAU,KAAK,IAAInvG,EAAQmvG,EAAS,GAAG,CAClE,CAEA,SAASoC,IAAmBvxG,EAAO,CAC/B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAOlC,GAAIA,GAAS,KAAM,CACf,IAAImvG,EAAUiB,IAAgBpwG,EAAO,KAAK,WAAY,GACtD,OAAO,KAAK,IAAI,KAAK,IAAG,EAAK,EAAImvG,EAAUA,EAAU,CAAC,CAC9D,KACQ,QAAO,KAAK,IAAK,GAAI,CAE7B,CAEA,SAASqC,IAAchG,EAAU,CAC7B,OAAI,KAAK,qBACAxH,GAAW,KAAM,gBAAgB,GAClCyN,GAAqB,KAAK,IAAI,EAE9BjG,EACO,KAAK,qBAEL,KAAK,iBAGXxH,GAAW,KAAM,gBAAgB,IAClC,KAAK,eAAiB0M,KAEnB,KAAK,sBAAwBlF,EAC9B,KAAK,qBACL,KAAK,eAEnB,CAEA,SAASkG,IAAmBlG,EAAU,CAClC,OAAI,KAAK,qBACAxH,GAAW,KAAM,gBAAgB,GAClCyN,GAAqB,KAAK,IAAI,EAE9BjG,EACO,KAAK,0BAEL,KAAK,sBAGXxH,GAAW,KAAM,qBAAqB,IACvC,KAAK,oBAAsB2M,KAExB,KAAK,2BAA6BnF,EACnC,KAAK,0BACL,KAAK,oBAEnB,CAEA,SAASmG,IAAiBnG,EAAU,CAChC,OAAI,KAAK,qBACAxH,GAAW,KAAM,gBAAgB,GAClCyN,GAAqB,KAAK,IAAI,EAE9BjG,EACO,KAAK,wBAEL,KAAK,oBAGXxH,GAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoB4M,KAEtB,KAAK,yBAA2BpF,EACjC,KAAK,wBACL,KAAK,kBAEnB,CAEA,SAASiG,IAAuB,CAC5B,SAASxD,EAAUx2F,EAAGC,EAAG,CACrB,OAAOA,EAAE,OAASD,EAAE,MACvB,CAED,IAAIm6F,EAAY,CAAE,EACd1D,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChB,EACAjI,EACA0L,EACAC,EACAC,EACJ,IAAK,EAAI,EAAG,EAAI,EAAG,IAEf5L,EAAM/B,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAChCyN,EAAOjG,GAAY,KAAK,YAAYzF,EAAK,EAAE,CAAC,EAC5C2L,EAASlG,GAAY,KAAK,cAAczF,EAAK,EAAE,CAAC,EAChD4L,EAAQnG,GAAY,KAAK,SAASzF,EAAK,EAAE,CAAC,EAC1CyL,EAAU,KAAKC,CAAI,EACnB3D,EAAY,KAAK4D,CAAM,EACvB3D,EAAW,KAAK4D,CAAK,EACrB3D,EAAY,KAAKyD,CAAI,EACrBzD,EAAY,KAAK0D,CAAM,EACvB1D,EAAY,KAAK2D,CAAK,EAI1BH,EAAU,KAAK3D,CAAS,EACxBC,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,eAAiB,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACxE,KAAK,oBAAsB,KAAK,eAChC,KAAK,kBAAoB,KAAK,eAE9B,KAAK,qBAAuB,IAAI,OAC5B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACR,EACI,KAAK,0BAA4B,IAAI,OACjC,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACR,EACI,KAAK,wBAA0B,IAAI,OAC/B,KAAO0D,EAAU,KAAK,GAAG,EAAI,IAC7B,GACR,CACA,CAIA,SAASI,IAAU,CACf,OAAO,KAAK,QAAU,IAAM,EAChC,CAEA,SAASC,KAAU,CACf,OAAO,KAAK,MAAO,GAAI,EAC3B,CAEAjL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGgL,EAAO,EACzChL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGiL,GAAO,EAEzCjL,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAKgL,GAAQ,MAAM,IAAI,EAAI3L,GAAS,KAAK,UAAW,CAAC,CAChE,CAAC,EAEDW,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACAgL,GAAQ,MAAM,IAAI,EAClB3L,GAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,GAAS,KAAK,QAAS,EAAE,CAAC,CAElC,CAAC,EAEDW,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAK,KAAK,MAAO,EAAGX,GAAS,KAAK,UAAW,CAAC,CACzD,CAAC,EAEDW,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACA,KAAK,MAAO,EACZX,GAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,GAAS,KAAK,QAAS,EAAE,CAAC,CAElC,CAAC,EAED,SAAS6L,GAAStyG,EAAOuyG,EAAW,CAChCnL,GAAepnG,EAAO,EAAG,EAAG,UAAY,CACpC,OAAO,KAAK,WAAU,EAAG,SACrB,KAAK,MAAO,EACZ,KAAK,QAAS,EACduyG,CACZ,CACA,CAAK,CACL,CAEAD,GAAS,IAAK,EAAI,EAClBA,GAAS,IAAK,EAAK,EAInB5J,GAAa,OAAQ,GAAG,EAGxBU,GAAgB,OAAQ,EAAE,EAI1B,SAASoJ,GAAc5G,EAAUnH,EAAQ,CACrC,OAAOA,EAAO,cAClB,CAEAgH,GAAc,IAAK+G,EAAa,EAChC/G,GAAc,IAAK+G,EAAa,EAChC/G,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAMb,GAAWJ,EAAM,EAErCiB,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,QAASX,EAAS,EAChCW,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,QAASX,EAAS,EAEhCqB,GAAc,CAAC,IAAK,IAAI,EAAGO,EAAI,EAC/BP,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACvD,IAAI0jC,EAAS9I,GAAMvpG,CAAK,EACxBsT,EAAMg5F,EAAI,EAAI+F,IAAW,GAAK,EAAIA,CACtC,CAAC,EACDtG,GAAc,CAAC,IAAK,GAAG,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACtDA,EAAO,MAAQA,EAAO,QAAQ,KAAK3uE,CAAK,EACxC2uE,EAAO,UAAY3uE,CACvB,CAAC,EACD+rG,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACvDr7D,EAAMg5F,EAAI,EAAI/C,GAAMvpG,CAAK,EACzBykG,GAAgB91B,CAAM,EAAE,QAAU,EACtC,CAAC,EACDo9B,GAAc,MAAO,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACjD,IAAI2jC,EAAMtyG,EAAM,OAAS,EACzBsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGsyG,CAAG,CAAC,EACxCh/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOsyG,CAAG,CAAC,EACvC7N,GAAgB91B,CAAM,EAAE,QAAU,EACtC,CAAC,EACDo9B,GAAc,QAAS,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACnD,IAAI4jC,EAAOvyG,EAAM,OAAS,EACtBwyG,EAAOxyG,EAAM,OAAS,EAC1BsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGuyG,CAAI,CAAC,EACzCj/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOuyG,EAAM,CAAC,CAAC,EAC3Cj/F,EAAMk5F,EAAM,EAAIjD,GAAMvpG,EAAM,OAAOwyG,CAAI,CAAC,EACxC/N,GAAgB91B,CAAM,EAAE,QAAU,EACtC,CAAC,EACDo9B,GAAc,MAAO,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACjD,IAAI2jC,EAAMtyG,EAAM,OAAS,EACzBsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGsyG,CAAG,CAAC,EACxCh/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOsyG,CAAG,CAAC,CAC3C,CAAC,EACDvG,GAAc,QAAS,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACnD,IAAI4jC,EAAOvyG,EAAM,OAAS,EACtBwyG,EAAOxyG,EAAM,OAAS,EAC1BsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGuyG,CAAI,CAAC,EACzCj/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOuyG,EAAM,CAAC,CAAC,EAC3Cj/F,EAAMk5F,EAAM,EAAIjD,GAAMvpG,EAAM,OAAOwyG,CAAI,CAAC,CAC5C,CAAC,EAID,SAASC,IAAWzyG,EAAO,CAGvB,OAAQA,EAAQ,IAAI,YAAa,EAAC,OAAO,CAAC,IAAM,GACpD,CAEA,IAAI0yG,IAA6B,gBAK7BC,IAAajJ,GAAW,QAAS,EAAI,EAEzC,SAASkJ,IAAeC,EAAOC,EAASC,EAAS,CAC7C,OAAIF,EAAQ,GACDE,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,CAEA,IAAIC,GAAa,CACb,SAAU/M,IACV,eAAgBuB,IAChB,YAAaI,IACb,QAASE,IACT,uBAAwBC,IACxB,aAAcC,IAEd,OAAQ+E,IACR,YAAaC,GAEb,KAAM8C,IAEN,SAAUS,IACV,YAAaE,IACb,cAAeD,GAEf,cAAekC,GACnB,EAGIO,GAAU,CAAE,EACZC,GAAiB,CAAE,EACnBC,GAEJ,SAASC,IAAaC,EAAM5oB,EAAM,CAC9B,IAAIvuF,EACAo3G,EAAO,KAAK,IAAID,EAAK,OAAQ5oB,EAAK,MAAM,EAC5C,IAAKvuF,EAAI,EAAGA,EAAIo3G,EAAMp3G,GAAK,EACvB,GAAIm3G,EAAKn3G,CAAC,IAAMuuF,EAAKvuF,CAAC,EAClB,OAAOA,EAGf,OAAOo3G,CACX,CAEA,SAASC,GAAgBvpG,EAAK,CAC1B,OAAOA,GAAMA,EAAI,YAAa,EAAC,QAAQ,IAAK,GAAG,CACnD,CAKA,SAASwpG,IAAalpD,EAAO,CAOzB,QANIpuD,EAAI,EACJoT,EACA2C,EACAoyF,EACAoP,EAEGv3G,EAAIouD,EAAM,QAAQ,CAKrB,IAJAmpD,EAAQF,GAAgBjpD,EAAMpuD,CAAC,CAAC,EAAE,MAAM,GAAG,EAC3CoT,EAAImkG,EAAM,OACVxhG,EAAOshG,GAAgBjpD,EAAMpuD,EAAI,CAAC,CAAC,EACnC+V,EAAOA,EAAOA,EAAK,MAAM,GAAG,EAAI,KACzB3C,EAAI,GAAG,CAEV,GADA+0F,EAASqP,GAAWD,EAAM,MAAM,EAAGnkG,CAAC,EAAE,KAAK,GAAG,CAAC,EAC3C+0F,EACA,OAAOA,EAEX,GACIpyF,GACAA,EAAK,QAAU3C,GACf8jG,IAAaK,EAAOxhG,CAAI,GAAK3C,EAAI,EAGjC,MAEJA,GACH,CACDpT,GACH,CACD,OAAOi3G,EACX,CAEA,SAASQ,IAAiBh8G,EAAM,CAE5B,OAAOA,EAAK,MAAM,aAAa,GAAK,IACxC,CAEA,SAAS+7G,GAAW/7G,EAAM,CACtB,IAAIi8G,EAAY,KACZC,EAEJ,GACIZ,GAAQt7G,CAAI,IAAM,QAClB,OAAO,OAAW,KAClB,QACA,OAAO,SACPg8G,IAAiBh8G,CAAI,EAErB,GAAI,CACAi8G,EAAYT,GAAa,MACzBU,EAAiB,QACjBA,EAAe,YAAcl8G,CAAI,EACjCm8G,GAAmBF,CAAS,CAC/B,MAAW,CAGRX,GAAQt7G,CAAI,EAAI,IACnB,CAEL,OAAOs7G,GAAQt7G,CAAI,CACvB,CAKA,SAASm8G,GAAmB9pG,EAAKtO,EAAQ,CACrC,IAAIkrB,EACJ,OAAI5c,IACIuiE,GAAY7wE,CAAM,EAClBkrB,EAAOmtF,GAAU/pG,CAAG,EAEpB4c,EAAOotF,GAAahqG,EAAKtO,CAAM,EAG/BkrB,EAEAusF,GAAevsF,EAEX,OAAO,QAAY,KAAe,QAAQ,MAE1C,QAAQ,KACJ,UAAY5c,EAAM,wCACtC,GAKWmpG,GAAa,KACxB,CAEA,SAASa,GAAar8G,EAAMg3E,EAAQ,CAChC,GAAIA,IAAW,KAAM,CACjB,IAAI01B,EACAyB,EAAekN,GAEnB,GADArkC,EAAO,KAAOh3E,EACVs7G,GAAQt7G,CAAI,GAAK,KACjBiuG,GACI,uBACA,yOAIhB,EACYE,EAAemN,GAAQt7G,CAAI,EAAE,gBACtBg3E,EAAO,cAAgB,KAC9B,GAAIskC,GAAQtkC,EAAO,YAAY,GAAK,KAChCm3B,EAAemN,GAAQtkC,EAAO,YAAY,EAAE,gBAE5C01B,EAASqP,GAAW/kC,EAAO,YAAY,EACnC01B,GAAU,KACVyB,EAAezB,EAAO,YAEtB,QAAK6O,GAAevkC,EAAO,YAAY,IACnCukC,GAAevkC,EAAO,YAAY,EAAI,IAE1CukC,GAAevkC,EAAO,YAAY,EAAE,KAAK,CACrC,KAAMh3E,EACN,OAAQg3E,CAChC,CAAqB,EACM,KAInB,OAAAskC,GAAQt7G,CAAI,EAAI,IAAIquG,GAAOH,GAAaC,EAAcn3B,CAAM,CAAC,EAEzDukC,GAAev7G,CAAI,GACnBu7G,GAAev7G,CAAI,EAAE,QAAQ,SAAUyJ,EAAG,CACtC4yG,GAAa5yG,EAAE,KAAMA,EAAE,MAAM,CAC7C,CAAa,EAML0yG,GAAmBn8G,CAAI,EAEhBs7G,GAAQt7G,CAAI,CAC3B,KAEQ,eAAOs7G,GAAQt7G,CAAI,EACZ,IAEf,CAEA,SAASs8G,IAAat8G,EAAMg3E,EAAQ,CAChC,GAAIA,GAAU,KAAM,CAChB,IAAI01B,EACA6P,EACApO,EAAekN,GAEfC,GAAQt7G,CAAI,GAAK,MAAQs7G,GAAQt7G,CAAI,EAAE,cAAgB,KAEvDs7G,GAAQt7G,CAAI,EAAE,IAAIkuG,GAAaoN,GAAQt7G,CAAI,EAAE,QAASg3E,CAAM,CAAC,GAG7DulC,EAAYR,GAAW/7G,CAAI,EACvBu8G,GAAa,OACbpO,EAAeoO,EAAU,SAE7BvlC,EAASk3B,GAAaC,EAAcn3B,CAAM,EACtCulC,GAAa,OAIbvlC,EAAO,KAAOh3E,GAElB0sG,EAAS,IAAI2B,GAAOr3B,CAAM,EAC1B01B,EAAO,aAAe4O,GAAQt7G,CAAI,EAClCs7G,GAAQt7G,CAAI,EAAI0sG,GAIpByP,GAAmBn8G,CAAI,CAC/B,MAEYs7G,GAAQt7G,CAAI,GAAK,OACbs7G,GAAQt7G,CAAI,EAAE,cAAgB,MAC9Bs7G,GAAQt7G,CAAI,EAAIs7G,GAAQt7G,CAAI,EAAE,aAC1BA,IAASm8G,MACTA,GAAmBn8G,CAAI,GAEpBs7G,GAAQt7G,CAAI,GAAK,MACxB,OAAOs7G,GAAQt7G,CAAI,GAI/B,OAAOs7G,GAAQt7G,CAAI,CACvB,CAGA,SAASo8G,GAAU/pG,EAAK,CACpB,IAAIq6F,EAMJ,GAJIr6F,GAAOA,EAAI,SAAWA,EAAI,QAAQ,QAClCA,EAAMA,EAAI,QAAQ,OAGlB,CAACA,EACD,OAAOmpG,GAGX,GAAI,CAAC/nC,GAAQphE,CAAG,EAAG,CAGf,GADAq6F,EAASqP,GAAW1pG,CAAG,EACnBq6F,EACA,OAAOA,EAEXr6F,EAAM,CAACA,CAAG,CACb,CAED,OAAOwpG,IAAaxpG,CAAG,CAC3B,CAEA,SAASmqG,KAAc,CACnB,OAAO75F,GAAK24F,EAAO,CACvB,CAEA,SAASmB,GAAcnkG,EAAG,CACtB,IAAIokG,EACA58F,EAAIxH,EAAE,GAEV,OAAIwH,GAAKgtF,GAAgBx0F,CAAC,EAAE,WAAa,KACrCokG,EACI58F,EAAE20F,EAAK,EAAI,GAAK30F,EAAE20F,EAAK,EAAI,GACrBA,GACA30F,EAAE40F,EAAI,EAAI,GAAK50F,EAAE40F,EAAI,EAAIvC,GAAYryF,EAAE00F,EAAI,EAAG10F,EAAE20F,EAAK,CAAC,EACtDC,GACA50F,EAAE60F,EAAI,EAAI,GACV70F,EAAE60F,EAAI,EAAI,IACT70F,EAAE60F,EAAI,IAAM,KACR70F,EAAE80F,EAAM,IAAM,GACX90F,EAAE+0F,EAAM,IAAM,GACd/0F,EAAEg1F,EAAW,IAAM,GAC3BH,GACA70F,EAAE80F,EAAM,EAAI,GAAK90F,EAAE80F,EAAM,EAAI,GAC7BA,GACA90F,EAAE+0F,EAAM,EAAI,GAAK/0F,EAAE+0F,EAAM,EAAI,GAC7BA,GACA/0F,EAAEg1F,EAAW,EAAI,GAAKh1F,EAAEg1F,EAAW,EAAI,IACvCA,GACA,GAGNhI,GAAgBx0F,CAAC,EAAE,qBAClBokG,EAAWlI,IAAQkI,EAAWhI,MAE/BgI,EAAWhI,IAEX5H,GAAgBx0F,CAAC,EAAE,gBAAkBokG,IAAa,KAClDA,EAAW3H,KAEXjI,GAAgBx0F,CAAC,EAAE,kBAAoBokG,IAAa,KACpDA,EAAW1H,KAGflI,GAAgBx0F,CAAC,EAAE,SAAWokG,GAG3BpkG,CACX,CAIA,IAAIqkG,IACI,iJACJC,IACI,6IACJC,IAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,qBAAqB,EACtC,CAAC,aAAc,iBAAiB,EAChC,CAAC,eAAgB,gBAAgB,EACjC,CAAC,aAAc,cAAe,EAAK,EACnC,CAAC,WAAY,aAAa,EAC1B,CAAC,UAAW,aAAc,EAAK,EAC/B,CAAC,aAAc,YAAY,EAC3B,CAAC,WAAY,OAAO,EACpB,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,cAAe,EAAK,EAClC,CAAC,UAAW,OAAO,EACnB,CAAC,SAAU,QAAS,EAAK,EACzB,CAAC,OAAQ,QAAS,EAAK,CAC1B,EAEDC,GAAW,CACP,CAAC,gBAAiB,qBAAqB,EACvC,CAAC,gBAAiB,oBAAoB,EACtC,CAAC,WAAY,gBAAgB,EAC7B,CAAC,QAAS,WAAW,EACrB,CAAC,cAAe,mBAAmB,EACnC,CAAC,cAAe,kBAAkB,EAClC,CAAC,SAAU,cAAc,EACzB,CAAC,OAAQ,UAAU,EACnB,CAAC,KAAM,MAAM,CAChB,EACDC,IAAkB,qBAElBC,IACI,0LACJC,IAAa,CACT,GAAI,EACJ,IAAK,EACL,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,EAClB,EAGA,SAASC,GAAcnmC,EAAQ,CAC3B,IAAIzyE,EACAiV,EACAlV,EAAS0yE,EAAO,GAChB9yE,EAAQy4G,IAAiB,KAAKr4G,CAAM,GAAKs4G,IAAc,KAAKt4G,CAAM,EAClE84G,EACAC,EACAC,EACAC,EACAC,EAAcV,GAAS,OACvBW,EAAcV,GAAS,OAE3B,GAAI74G,EAAO,CAEP,IADA4oG,GAAgB91B,CAAM,EAAE,IAAM,GACzBzyE,EAAI,EAAGiV,EAAIgkG,EAAaj5G,EAAIiV,EAAGjV,IAChC,GAAIu4G,GAASv4G,CAAC,EAAE,CAAC,EAAE,KAAKL,EAAM,CAAC,CAAC,EAAG,CAC/Bm5G,EAAaP,GAASv4G,CAAC,EAAE,CAAC,EAC1B64G,EAAYN,GAASv4G,CAAC,EAAE,CAAC,IAAM,GAC/B,KACH,CAEL,GAAI84G,GAAc,KAAM,CACpBrmC,EAAO,SAAW,GAClB,MACH,CACD,GAAI9yE,EAAM,CAAC,EAAG,CACV,IAAKK,EAAI,EAAGiV,EAAIikG,EAAal5G,EAAIiV,EAAGjV,IAChC,GAAIw4G,GAASx4G,CAAC,EAAE,CAAC,EAAE,KAAKL,EAAM,CAAC,CAAC,EAAG,CAE/Bo5G,GAAcp5G,EAAM,CAAC,GAAK,KAAO64G,GAASx4G,CAAC,EAAE,CAAC,EAC9C,KACH,CAEL,GAAI+4G,GAAc,KAAM,CACpBtmC,EAAO,SAAW,GAClB,MACH,CACJ,CACD,GAAI,CAAComC,GAAaE,GAAc,KAAM,CAClCtmC,EAAO,SAAW,GAClB,MACH,CACD,GAAI9yE,EAAM,CAAC,EACP,GAAI24G,IAAQ,KAAK34G,EAAM,CAAC,CAAC,EACrBq5G,EAAW,QACR,CACHvmC,EAAO,SAAW,GAClB,MACH,CAELA,EAAO,GAAKqmC,GAAcC,GAAc,KAAOC,GAAY,IAC3DG,GAA0B1mC,CAAM,CACxC,MACQA,EAAO,SAAW,EAE1B,CAEA,SAAS2mC,IACLC,EACAC,EACAC,EACAC,EACAC,EACAC,EACF,CACE,IAAI55G,EAAS,CACT65G,IAAeN,CAAO,EACtBvI,GAAyB,QAAQwI,CAAQ,EACzC,SAASC,EAAQ,EAAE,EACnB,SAASC,EAAS,EAAE,EACpB,SAASC,EAAW,EAAE,CAC9B,EAEI,OAAIC,GACA55G,EAAO,KAAK,SAAS45G,EAAW,EAAE,CAAC,EAGhC55G,CACX,CAEA,SAAS65G,IAAeN,EAAS,CAC7B,IAAIlM,EAAO,SAASkM,EAAS,EAAE,EAC/B,OAAIlM,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACX,CAEA,SAASyM,IAAkBxkG,EAAG,CAE1B,OAAOA,EACF,QAAQ,qBAAsB,GAAG,EACjC,QAAQ,WAAY,GAAG,EACvB,QAAQ,SAAU,EAAE,EACpB,QAAQ,SAAU,EAAE,CAC7B,CAEA,SAASykG,IAAaC,EAAYC,EAAatnC,EAAQ,CACnD,GAAIqnC,EAAY,CAEZ,IAAIE,EAAkB1F,GAA2B,QAAQwF,CAAU,EAC/DG,EAAgB,IAAI,KAChBF,EAAY,CAAC,EACbA,EAAY,CAAC,EACbA,EAAY,CAAC,CAChB,EAAC,OAAM,EACZ,GAAIC,IAAoBC,EACpB,OAAA1R,GAAgB91B,CAAM,EAAE,gBAAkB,GAC1CA,EAAO,SAAW,GACX,EAEd,CACD,MAAO,EACX,CAEA,SAASynC,IAAgBC,EAAWC,EAAgBC,EAAW,CAC3D,GAAIF,EACA,OAAOxB,IAAWwB,CAAS,EACxB,GAAIC,EAEP,MAAO,GAEP,IAAIE,EAAK,SAASD,EAAW,EAAE,EAC3BtmG,EAAIumG,EAAK,IACT31E,GAAK21E,EAAKvmG,GAAK,IACnB,OAAO4wB,EAAI,GAAK5wB,CAExB,CAGA,SAASwmG,GAAkB9nC,EAAQ,CAC/B,IAAI9yE,EAAQ+4G,IAAQ,KAAKkB,IAAkBnnC,EAAO,EAAE,CAAC,EACjD+nC,EACJ,GAAI76G,EAAO,CASP,GARA66G,EAAcpB,IACVz5G,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,CACnB,EACY,CAACk6G,IAAal6G,EAAM,CAAC,EAAG66G,EAAa/nC,CAAM,EAC3C,OAGJA,EAAO,GAAK+nC,EACZ/nC,EAAO,KAAOynC,IAAgBv6G,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,EAAE,CAAC,EAE3D8yE,EAAO,GAAKggC,GAAc,MAAM,KAAMhgC,EAAO,EAAE,EAC/CA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAE/D81B,GAAgB91B,CAAM,EAAE,QAAU,EAC1C,MACQA,EAAO,SAAW,EAE1B,CAGA,SAASgoC,IAAiBhoC,EAAQ,CAC9B,IAAI3wD,EAAU22F,IAAgB,KAAKhmC,EAAO,EAAE,EAC5C,GAAI3wD,IAAY,KAAM,CAClB2wD,EAAO,GAAK,IAAI,KAAK,CAAC3wD,EAAQ,CAAC,CAAC,EAChC,MACH,CAGD,GADA82F,GAAcnmC,CAAM,EAChBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAIJ,GADA8nC,GAAkB9nC,CAAM,EACpBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAGAA,EAAO,QACPA,EAAO,SAAW,GAGlBtnD,GAAM,wBAAwBsnD,CAAM,CAE5C,CAEAtnD,GAAM,wBAA0Bm+E,GAC5B,gSAGA,SAAU72B,EAAQ,CACdA,EAAO,GAAK,IAAI,KAAKA,EAAO,IAAMA,EAAO,QAAU,OAAS,GAAG,CAClE,CACL,EAGA,SAAS7gE,GAAS2J,EAAGC,EAAGnK,EAAG,CACvB,OAAIkK,GAGAC,GAGGnK,CACX,CAEA,SAASqpG,IAAiBjoC,EAAQ,CAE9B,IAAIkoC,EAAW,IAAI,KAAKxvF,GAAM,IAAK,GACnC,OAAIsnD,EAAO,QACA,CACHkoC,EAAS,eAAgB,EACzBA,EAAS,YAAa,EACtBA,EAAS,WAAY,CACjC,EAEW,CAACA,EAAS,cAAeA,EAAS,WAAYA,EAAS,QAAO,CAAE,CAC3E,CAMA,SAASC,GAAgBnoC,EAAQ,CAC7B,IAAIzyE,EACAwyG,EACA1uG,EAAQ,CAAE,EACV+2G,EACAC,EACAC,EAEJ,GAAI,CAAAtoC,EAAO,GAgCX,KA5BAooC,EAAcH,IAAiBjoC,CAAM,EAGjCA,EAAO,IAAMA,EAAO,GAAG09B,EAAI,GAAK,MAAQ19B,EAAO,GAAGy9B,EAAK,GAAK,MAC5D8K,IAAsBvoC,CAAM,EAI5BA,EAAO,YAAc,OACrBsoC,EAAYnpG,GAAS6gE,EAAO,GAAGw9B,EAAI,EAAG4K,EAAY5K,EAAI,CAAC,GAGnDx9B,EAAO,WAAa0/B,GAAW4I,CAAS,GACxCtoC,EAAO,aAAe,KAEtB81B,GAAgB91B,CAAM,EAAE,mBAAqB,IAGjD+/B,EAAOC,GAAcsI,EAAW,EAAGtoC,EAAO,UAAU,EACpDA,EAAO,GAAGy9B,EAAK,EAAIsC,EAAK,YAAW,EACnC//B,EAAO,GAAG09B,EAAI,EAAIqC,EAAK,WAAU,GAQhCxyG,EAAI,EAAGA,EAAI,GAAKyyE,EAAO,GAAGzyE,CAAC,GAAK,KAAM,EAAEA,EACzCyyE,EAAO,GAAGzyE,CAAC,EAAI8D,EAAM9D,CAAC,EAAI66G,EAAY76G,CAAC,EAI3C,KAAOA,EAAI,EAAGA,IACVyyE,EAAO,GAAGzyE,CAAC,EAAI8D,EAAM9D,CAAC,EAClByyE,EAAO,GAAGzyE,CAAC,GAAK,KAAQA,IAAM,EAAI,EAAI,EAAKyyE,EAAO,GAAGzyE,CAAC,EAK1DyyE,EAAO,GAAG29B,EAAI,IAAM,IACpB39B,EAAO,GAAG49B,EAAM,IAAM,GACtB59B,EAAO,GAAG69B,EAAM,IAAM,GACtB79B,EAAO,GAAG89B,EAAW,IAAM,IAE3B99B,EAAO,SAAW,GAClBA,EAAO,GAAG29B,EAAI,EAAI,GAGtB39B,EAAO,IAAMA,EAAO,QAAUggC,GAAgBH,KAAY,MACtD,KACAxuG,CACR,EACIg3G,EAAkBroC,EAAO,QACnBA,EAAO,GAAG,UAAW,EACrBA,EAAO,GAAG,SAIZA,EAAO,MAAQ,MACfA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAG/DA,EAAO,WACPA,EAAO,GAAG29B,EAAI,EAAI,IAKlB39B,EAAO,IACP,OAAOA,EAAO,GAAG,EAAM,KACvBA,EAAO,GAAG,IAAMqoC,IAEhBvS,GAAgB91B,CAAM,EAAE,gBAAkB,IAElD,CAEA,SAASuoC,IAAsBvoC,EAAQ,CACnC,IAAIngE,EAAG2oG,EAAUjI,EAAMC,EAASN,EAAKC,EAAK1uF,EAAMg3F,EAAiBC,EAEjE7oG,EAAImgE,EAAO,GACPngE,EAAE,IAAM,MAAQA,EAAE,GAAK,MAAQA,EAAE,GAAK,MACtCqgG,EAAM,EACNC,EAAM,EAMNqI,EAAWrpG,GACPU,EAAE,GACFmgE,EAAO,GAAGw9B,EAAI,EACdsD,GAAW6H,GAAa,EAAE,EAAG,CAAC,EAAE,IAC5C,EACQpI,EAAOphG,GAASU,EAAE,EAAG,CAAC,EACtB2gG,EAAUrhG,GAASU,EAAE,EAAG,CAAC,GACrB2gG,EAAU,GAAKA,EAAU,KACzBiI,EAAkB,MAGtBvI,EAAMlgC,EAAO,QAAQ,MAAM,IAC3BmgC,EAAMngC,EAAO,QAAQ,MAAM,IAE3B0oC,EAAU5H,GAAW6H,GAAa,EAAEzI,EAAKC,CAAG,EAE5CqI,EAAWrpG,GAASU,EAAE,GAAImgE,EAAO,GAAGw9B,EAAI,EAAGkL,EAAQ,IAAI,EAGvDnI,EAAOphG,GAASU,EAAE,EAAG6oG,EAAQ,IAAI,EAE7B7oG,EAAE,GAAK,MAEP2gG,EAAU3gG,EAAE,GACR2gG,EAAU,GAAKA,EAAU,KACzBiI,EAAkB,KAEf5oG,EAAE,GAAK,MAEd2gG,EAAU3gG,EAAE,EAAIqgG,GACZrgG,EAAE,EAAI,GAAKA,EAAE,EAAI,KACjB4oG,EAAkB,KAItBjI,EAAUN,GAGdK,EAAO,GAAKA,EAAOS,GAAYwH,EAAUtI,EAAKC,CAAG,EACjDrK,GAAgB91B,CAAM,EAAE,eAAiB,GAClCyoC,GAAmB,KAC1B3S,GAAgB91B,CAAM,EAAE,iBAAmB,IAE3CvuD,EAAO6uF,GAAmBkI,EAAUjI,EAAMC,EAASN,EAAKC,CAAG,EAC3DngC,EAAO,GAAGw9B,EAAI,EAAI/rF,EAAK,KACvBuuD,EAAO,WAAavuD,EAAK,UAEjC,CAGAiH,GAAM,SAAW,UAAY,GAG7BA,GAAM,SAAW,UAAY,GAG7B,SAASguF,GAA0B1mC,EAAQ,CAEvC,GAAIA,EAAO,KAAOtnD,GAAM,SAAU,CAC9BytF,GAAcnmC,CAAM,EACpB,MACH,CACD,GAAIA,EAAO,KAAOtnD,GAAM,SAAU,CAC9BovF,GAAkB9nC,CAAM,EACxB,MACH,CACDA,EAAO,GAAK,GACZ81B,GAAgB91B,CAAM,EAAE,MAAQ,GAGhC,IAAI1yE,EAAS,GAAK0yE,EAAO,GACrBzyE,EACA+5G,EACAt3F,EACA/e,EACA23G,EACAC,EAAev7G,EAAO,OACtBw7G,EAAyB,EACzBC,EACA1L,EAKJ,IAHArtF,EACI2oF,GAAa34B,EAAO,GAAIA,EAAO,OAAO,EAAE,MAAMi4B,EAAgB,GAAK,GACvEoF,EAAWrtF,EAAO,OACbziB,EAAI,EAAGA,EAAI8vG,EAAU9vG,IACtB0D,EAAQ+e,EAAOziB,CAAC,EAChB+5G,GAAeh6G,EAAO,MAAMyvG,IAAsB9rG,EAAO+uE,CAAM,CAAC,GAC5D,CAAE,GAAE,CAAC,EACLsnC,IACAsB,EAAUt7G,EAAO,OAAO,EAAGA,EAAO,QAAQg6G,CAAW,CAAC,EAClDsB,EAAQ,OAAS,GACjB9S,GAAgB91B,CAAM,EAAE,YAAY,KAAK4oC,CAAO,EAEpDt7G,EAASA,EAAO,MACZA,EAAO,QAAQg6G,CAAW,EAAIA,EAAY,MAC1D,EACYwB,GAA0BxB,EAAY,QAGtClP,GAAqBnnG,CAAK,GACtBq2G,EACAxR,GAAgB91B,CAAM,EAAE,MAAQ,GAEhC81B,GAAgB91B,CAAM,EAAE,aAAa,KAAK/uE,CAAK,EAEnDssG,IAAwBtsG,EAAOq2G,EAAatnC,CAAM,GAC3CA,EAAO,SAAW,CAACsnC,GAC1BxR,GAAgB91B,CAAM,EAAE,aAAa,KAAK/uE,CAAK,EAKvD6kG,GAAgB91B,CAAM,EAAE,cACpB6oC,EAAeC,EACfx7G,EAAO,OAAS,GAChBwoG,GAAgB91B,CAAM,EAAE,YAAY,KAAK1yE,CAAM,EAK/C0yE,EAAO,GAAG29B,EAAI,GAAK,IACnB7H,GAAgB91B,CAAM,EAAE,UAAY,IACpCA,EAAO,GAAG29B,EAAI,EAAI,IAElB7H,GAAgB91B,CAAM,EAAE,QAAU,QAGtC81B,GAAgB91B,CAAM,EAAE,gBAAkBA,EAAO,GAAG,MAAM,CAAC,EAC3D81B,GAAgB91B,CAAM,EAAE,SAAWA,EAAO,UAE1CA,EAAO,GAAG29B,EAAI,EAAIqL,IACdhpC,EAAO,QACPA,EAAO,GAAG29B,EAAI,EACd39B,EAAO,SACf,EAGI+oC,EAAMjT,GAAgB91B,CAAM,EAAE,IAC1B+oC,IAAQ,OACR/oC,EAAO,GAAGw9B,EAAI,EAAIx9B,EAAO,QAAQ,gBAAgB+oC,EAAK/oC,EAAO,GAAGw9B,EAAI,CAAC,GAGzE2K,GAAgBnoC,CAAM,EACtBylC,GAAczlC,CAAM,CACxB,CAEA,SAASgpC,IAAgBtT,EAAQuT,EAAM1F,EAAU,CAC7C,IAAI2F,EAEJ,OAAI3F,GAAY,KAEL0F,EAEPvT,EAAO,cAAgB,KAChBA,EAAO,aAAauT,EAAM1F,CAAQ,GAClC7N,EAAO,MAAQ,OAEtBwT,EAAOxT,EAAO,KAAK6N,CAAQ,EACvB2F,GAAQD,EAAO,KACfA,GAAQ,IAER,CAACC,GAAQD,IAAS,KAClBA,EAAO,IAEJA,EAKf,CAGA,SAASE,IAAyBnpC,EAAQ,CACtC,IAAIopC,EACAC,EACAC,EACA/7G,EACAg8G,EACAC,EACAC,EAAoB,GACpBC,EAAa1pC,EAAO,GAAG,OAE3B,GAAI0pC,IAAe,EAAG,CAClB5T,GAAgB91B,CAAM,EAAE,cAAgB,GACxCA,EAAO,GAAK,IAAI,KAAK,GAAG,EACxB,MACH,CAED,IAAKzyE,EAAI,EAAGA,EAAIm8G,EAAYn8G,IACxBg8G,EAAe,EACfC,EAAmB,GACnBJ,EAAa5S,GAAW,GAAIx2B,CAAM,EAC9BA,EAAO,SAAW,OAClBopC,EAAW,QAAUppC,EAAO,SAEhCopC,EAAW,GAAKppC,EAAO,GAAGzyE,CAAC,EAC3Bm5G,GAA0B0C,CAAU,EAEhCnT,GAAQmT,CAAU,IAClBI,EAAmB,IAIvBD,GAAgBzT,GAAgBsT,CAAU,EAAE,cAG5CG,GAAgBzT,GAAgBsT,CAAU,EAAE,aAAa,OAAS,GAElEtT,GAAgBsT,CAAU,EAAE,MAAQG,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbbE,GAAe,MACfC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,EAAoB,KAWpC1qC,GAAOiB,EAAQqpC,GAAcD,CAAU,CAC3C,CAEA,SAASO,IAAiB3pC,EAAQ,CAC9B,GAAI,CAAAA,EAAO,GAIX,KAAIzyE,EAAIysG,GAAqBh6B,EAAO,EAAE,EAClC4pC,EAAYr8G,EAAE,MAAQ,OAAYA,EAAE,KAAOA,EAAE,IACjDyyE,EAAO,GAAKhvD,GACR,CAACzjB,EAAE,KAAMA,EAAE,MAAOq8G,EAAWr8G,EAAE,KAAMA,EAAE,OAAQA,EAAE,OAAQA,EAAE,WAAW,EACtE,SAAU0U,EAAK,CACX,OAAOA,GAAO,SAASA,EAAK,EAAE,CACjC,CACT,EAEIkmG,GAAgBnoC,CAAM,EAC1B,CAEA,SAAS6pC,IAAiB7pC,EAAQ,CAC9B,IAAIu1B,EAAM,IAAImB,GAAO+O,GAAcqE,GAAc9pC,CAAM,CAAC,CAAC,EACzD,OAAIu1B,EAAI,WAEJA,EAAI,IAAI,EAAG,GAAG,EACdA,EAAI,SAAW,QAGZA,CACX,CAEA,SAASuU,GAAc9pC,EAAQ,CAC3B,IAAI3uE,EAAQ2uE,EAAO,GACf5f,EAAS4f,EAAO,GAIpB,OAFAA,EAAO,QAAUA,EAAO,SAAWolC,GAAUplC,EAAO,EAAE,EAElD3uE,IAAU,MAAS+uD,IAAW,QAAa/uD,IAAU,GAC9CglG,GAAc,CAAE,UAAW,EAAM,IAGxC,OAAOhlG,GAAU,WACjB2uE,EAAO,GAAK3uE,EAAQ2uE,EAAO,QAAQ,SAAS3uE,CAAK,GAGjDslG,GAAStlG,CAAK,EACP,IAAIqlG,GAAO+O,GAAcp0G,CAAK,CAAC,GAC/B+sE,GAAO/sE,CAAK,EACnB2uE,EAAO,GAAK3uE,EACLorE,GAAQrc,CAAM,EACrB+oD,IAAyBnpC,CAAM,EACxB5f,EACPsmD,GAA0B1mC,CAAM,EAEhC+pC,IAAgB/pC,CAAM,EAGrBi2B,GAAQj2B,CAAM,IACfA,EAAO,GAAK,MAGTA,GACX,CAEA,SAAS+pC,IAAgB/pC,EAAQ,CAC7B,IAAI3uE,EAAQ2uE,EAAO,GACfpC,GAAYvsE,CAAK,EACjB2uE,EAAO,GAAK,IAAI,KAAKtnD,GAAM,IAAK,GACzB0lD,GAAO/sE,CAAK,EACnB2uE,EAAO,GAAK,IAAI,KAAK3uE,EAAM,QAAS,GAC7B,OAAOA,GAAU,SACxB22G,IAAiBhoC,CAAM,EAChBvD,GAAQprE,CAAK,GACpB2uE,EAAO,GAAKhvD,GAAI3f,EAAM,MAAM,CAAC,EAAG,SAAU4Q,EAAK,CAC3C,OAAO,SAASA,EAAK,EAAE,CACnC,CAAS,EACDkmG,GAAgBnoC,CAAM,GACf1oB,GAASjmD,CAAK,EACrBs4G,IAAiB3pC,CAAM,EAChB9B,GAAS7sE,CAAK,EAErB2uE,EAAO,GAAK,IAAI,KAAK3uE,CAAK,EAE1BqnB,GAAM,wBAAwBsnD,CAAM,CAE5C,CAEA,SAAS41B,GAAiBvkG,EAAO+uD,EAAQs1C,EAAQC,EAAQqU,EAAO,CAC5D,IAAIprG,EAAI,GAER,OAAIwhD,IAAW,IAAQA,IAAW,MAC9Bu1C,EAASv1C,EACTA,EAAS,SAGTs1C,IAAW,IAAQA,IAAW,MAC9BC,EAASD,EACTA,EAAS,SAIRp+C,GAASjmD,CAAK,GAAKikG,GAAcjkG,CAAK,GACtCorE,GAAQprE,CAAK,GAAKA,EAAM,SAAW,KAEpCA,EAAQ,QAIZuN,EAAE,iBAAmB,GACrBA,EAAE,QAAUA,EAAE,OAASorG,EACvBprG,EAAE,GAAK82F,EACP92F,EAAE,GAAKvN,EACPuN,EAAE,GAAKwhD,EACPxhD,EAAE,QAAU+2F,EAELkU,IAAiBjrG,CAAC,CAC7B,CAEA,SAAS+pG,GAAYt3G,EAAO+uD,EAAQs1C,EAAQC,EAAQ,CAChD,OAAOC,GAAiBvkG,EAAO+uD,EAAQs1C,EAAQC,EAAQ,EAAK,CAChE,CAEA,IAAIsU,IAAepT,GACX,qGACA,UAAY,CACR,IAAIqT,EAAQvB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMuB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtB7T,GAAa,CAE3B,CACJ,EACD8T,IAAetT,GACX,qGACA,UAAY,CACR,IAAIqT,EAAQvB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMuB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtB7T,GAAa,CAE3B,CACT,EAOA,SAAS+T,GAAOv+F,EAAIw+F,EAAS,CACzB,IAAI9U,EAAKhoG,EAIT,GAHI88G,EAAQ,SAAW,GAAK5tC,GAAQ4tC,EAAQ,CAAC,CAAC,IAC1CA,EAAUA,EAAQ,CAAC,GAEnB,CAACA,EAAQ,OACT,OAAO1B,GAAW,EAGtB,IADApT,EAAM8U,EAAQ,CAAC,EACV98G,EAAI,EAAGA,EAAI88G,EAAQ,OAAQ,EAAE98G,GAC1B,CAAC88G,EAAQ98G,CAAC,EAAE,QAAS,GAAI88G,EAAQ98G,CAAC,EAAEse,CAAE,EAAE0pF,CAAG,KAC3CA,EAAM8U,EAAQ98G,CAAC,GAGvB,OAAOgoG,CACX,CAGA,SAASj7C,KAAM,CACX,IAAInrC,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOi7F,GAAO,WAAYj7F,CAAI,CAClC,CAEA,SAASyX,KAAM,CACX,IAAIzX,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOi7F,GAAO,UAAWj7F,CAAI,CACjC,CAEA,IAAIsoF,IAAM,UAAY,CAClB,OAAO,KAAK,IAAM,KAAK,IAAG,EAAK,CAAC,IAAI,IACxC,EAEI6S,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,aACJ,EAEA,SAASC,IAAgBjpG,EAAG,CACxB,IAAIjG,EACAmvG,EAAiB,GACjBj9G,EACAk9G,EAAWH,GAAS,OACxB,IAAKjvG,KAAOiG,EACR,GACI+zF,GAAW/zF,EAAGjG,CAAG,GACjB,EACIwJ,GAAQ,KAAKylG,GAAUjvG,CAAG,IAAM,KAC/BiG,EAAEjG,CAAG,GAAK,MAAQ,CAAC,MAAMiG,EAAEjG,CAAG,CAAC,IAGpC,MAAO,GAIf,IAAK9N,EAAI,EAAGA,EAAIk9G,EAAU,EAAEl9G,EACxB,GAAI+T,EAAEgpG,GAAS/8G,CAAC,CAAC,EAAG,CAChB,GAAIi9G,EACA,MAAO,GAEP,WAAWlpG,EAAEgpG,GAAS/8G,CAAC,CAAC,CAAC,IAAMqtG,GAAMt5F,EAAEgpG,GAAS/8G,CAAC,CAAC,CAAC,IACnDi9G,EAAiB,GAExB,CAGL,MAAO,EACX,CAEA,SAASE,KAAY,CACjB,OAAO,KAAK,QAChB,CAEA,SAASC,KAAkB,CACvB,OAAOC,GAAe,GAAG,CAC7B,CAEA,SAASC,GAASl5E,EAAU,CACxB,IAAIuoE,EAAkBF,GAAqBroE,CAAQ,EAC/Cm5E,EAAQ5Q,EAAgB,MAAQ,EAChC6Q,EAAW7Q,EAAgB,SAAW,EACtC8Q,EAAS9Q,EAAgB,OAAS,EAClC+Q,EAAQ/Q,EAAgB,MAAQA,EAAgB,SAAW,EAC3DgR,EAAOhR,EAAgB,KAAO,EAC9BgK,EAAQhK,EAAgB,MAAQ,EAChCiK,EAAUjK,EAAgB,QAAU,EACpCiR,EAAUjR,EAAgB,QAAU,EACpCkR,EAAelR,EAAgB,aAAe,EAElD,KAAK,SAAWqQ,IAAgBrQ,CAAe,EAG/C,KAAK,cACD,CAACkR,EACDD,EAAU,IACVhH,EAAU,IACVD,EAAQ,IAAO,GAAK,GAGxB,KAAK,MAAQ,CAACgH,EAAOD,EAAQ,EAI7B,KAAK,QAAU,CAACD,EAASD,EAAW,EAAID,EAAQ,GAEhD,KAAK,MAAQ,GAEb,KAAK,QAAU1F,KAEf,KAAK,QAAO,CAChB,CAEA,SAASiG,GAAWppG,EAAK,CACrB,OAAOA,aAAe4oG,EAC1B,CAEA,SAASS,GAAS3T,EAAQ,CACtB,OAAIA,EAAS,EACF,KAAK,MAAM,GAAKA,CAAM,EAAI,GAE1B,KAAK,MAAMA,CAAM,CAEhC,CAGA,SAAS4T,IAAcC,EAAQC,EAAQC,EAAa,CAChD,IAAIvlG,EAAM,KAAK,IAAIqlG,EAAO,OAAQC,EAAO,MAAM,EAC3CE,EAAa,KAAK,IAAIH,EAAO,OAASC,EAAO,MAAM,EACnDG,EAAQ,EACRr+G,EACJ,IAAKA,EAAI,EAAGA,EAAI4Y,EAAK5Y,KAEZm+G,GAAeF,EAAOj+G,CAAC,IAAMk+G,EAAOl+G,CAAC,GACrC,CAACm+G,GAAe9Q,GAAM4Q,EAAOj+G,CAAC,CAAC,IAAMqtG,GAAM6Q,EAAOl+G,CAAC,CAAC,IAErDq+G,IAGR,OAAOA,EAAQD,CACnB,CAIA,SAASj+E,GAAOz8B,EAAO46G,EAAW,CAC9BxT,GAAepnG,EAAO,EAAG,EAAG,UAAY,CACpC,IAAIy8B,EAAS,KAAK,UAAW,EACzBsqE,EAAO,IACX,OAAItqE,EAAS,IACTA,EAAS,CAACA,EACVsqE,EAAO,KAGPA,EACAN,GAAS,CAAC,EAAEhqE,EAAS,IAAK,CAAC,EAC3Bm+E,EACAnU,GAAS,CAAC,CAAChqE,EAAS,GAAI,CAAC,CAErC,CAAK,CACL,CAEAA,GAAO,IAAK,GAAG,EACfA,GAAO,KAAM,EAAE,EAIfgvE,GAAc,IAAKJ,EAAgB,EACnCI,GAAc,KAAMJ,EAAgB,EACpCc,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACvDA,EAAO,QAAU,GACjBA,EAAO,KAAO8rC,GAAiBxP,GAAkBjrG,CAAK,CAC1D,CAAC,EAOD,IAAI06G,IAAc,kBAElB,SAASD,GAAiBx8F,EAAShiB,EAAQ,CACvC,IAAI0Z,GAAW1Z,GAAU,IAAI,MAAMgiB,CAAO,EACtC08F,EACAzpF,EACA4hF,EAEJ,OAAIn9F,IAAY,KACL,MAGXglG,EAAQhlG,EAAQA,EAAQ,OAAS,CAAC,GAAK,GACvCub,GAASypF,EAAQ,IAAI,MAAMD,GAAW,GAAK,CAAC,IAAK,EAAG,CAAC,EACrD5H,EAAU,EAAE5hF,EAAM,CAAC,EAAI,IAAMq4E,GAAMr4E,EAAM,CAAC,CAAC,EAEpC4hF,IAAY,EAAI,EAAI5hF,EAAM,CAAC,IAAM,IAAM4hF,EAAU,CAACA,EAC7D,CAGA,SAAS8H,GAAgB56G,EAAO66G,EAAO,CACnC,IAAI3W,EAAKlpF,EACT,OAAI6/F,EAAM,QACN3W,EAAM2W,EAAM,QACZ7/F,GACKsqF,GAAStlG,CAAK,GAAK+sE,GAAO/sE,CAAK,EAC1BA,EAAM,QAAS,EACfs3G,GAAYt3G,CAAK,EAAE,QAAS,GAAIkkG,EAAI,QAAO,EAErDA,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,EAAKlpF,CAAI,EACtCqM,GAAM,aAAa68E,EAAK,EAAK,EACtBA,GAEAoT,GAAYt3G,CAAK,EAAE,OAElC,CAEA,SAAS86G,GAAc7qG,EAAG,CAGtB,MAAO,CAAC,KAAK,MAAMA,EAAE,GAAG,kBAAiB,CAAE,CAC/C,CAMAoX,GAAM,aAAe,UAAY,GAcjC,SAAS0zF,IAAa/6G,EAAOg7G,EAAeC,EAAa,CACrD,IAAI5+E,EAAS,KAAK,SAAW,EACzB6+E,EACJ,GAAI,CAAC,KAAK,UACN,OAAOl7G,GAAS,KAAO,KAAO,IAElC,GAAIA,GAAS,KAAM,CACf,GAAI,OAAOA,GAAU,UAEjB,GADAA,EAAQy6G,GAAiBxP,GAAkBjrG,CAAK,EAC5CA,IAAU,KACV,OAAO,UAEJ,KAAK,IAAIA,CAAK,EAAI,IAAM,CAACi7G,IAChCj7G,EAAQA,EAAQ,IAEpB,MAAI,CAAC,KAAK,QAAUg7G,IAChBE,EAAcJ,GAAc,IAAI,GAEpC,KAAK,QAAU96G,EACf,KAAK,OAAS,GACVk7G,GAAe,MACf,KAAK,IAAIA,EAAa,GAAG,EAEzB7+E,IAAWr8B,IACP,CAACg7G,GAAiB,KAAK,kBACvBG,GACI,KACA5B,GAAev5G,EAAQq8B,EAAQ,GAAG,EAClC,EACA,EACpB,EACwB,KAAK,oBACb,KAAK,kBAAoB,GACzBhV,GAAM,aAAa,KAAM,EAAI,EAC7B,KAAK,kBAAoB,OAG1B,IACf,KACQ,QAAO,KAAK,OAASgV,EAASy+E,GAAc,IAAI,CAExD,CAEA,SAASM,IAAWp7G,EAAOg7G,EAAe,CACtC,OAAIh7G,GAAS,MACL,OAAOA,GAAU,WACjBA,EAAQ,CAACA,GAGb,KAAK,UAAUA,EAAOg7G,CAAa,EAE5B,MAEA,CAAC,KAAK,WAErB,CAEA,SAASK,IAAeL,EAAe,CACnC,OAAO,KAAK,UAAU,EAAGA,CAAa,CAC1C,CAEA,SAASM,IAAiBN,EAAe,CACrC,OAAI,KAAK,SACL,KAAK,UAAU,EAAGA,CAAa,EAC/B,KAAK,OAAS,GAEVA,GACA,KAAK,SAASF,GAAc,IAAI,EAAG,GAAG,GAGvC,IACX,CAEA,SAASS,KAA0B,CAC/B,GAAI,KAAK,MAAQ,KACb,KAAK,UAAU,KAAK,KAAM,GAAO,EAAI,UAC9B,OAAO,KAAK,IAAO,SAAU,CACpC,IAAIC,EAAQf,GAAiBzP,IAAa,KAAK,EAAE,EAC7CwQ,GAAS,KACT,KAAK,UAAUA,CAAK,EAEpB,KAAK,UAAU,EAAG,EAAI,CAE7B,CACD,OAAO,IACX,CAEA,SAASC,IAAqBz7G,EAAO,CACjC,OAAK,KAAK,WAGVA,EAAQA,EAAQs3G,GAAYt3G,CAAK,EAAE,UAAW,EAAG,GAEzC,KAAK,UAAS,EAAKA,GAAS,KAAO,GAJhC,EAKf,CAEA,SAAS07G,KAAuB,CAC5B,OACI,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,GACpD,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,CAE5D,CAEA,SAASC,KAA8B,CACnC,GAAI,CAACpvC,GAAY,KAAK,aAAa,EAC/B,OAAO,KAAK,cAGhB,IAAIh/D,EAAI,CAAE,EACNsrG,EAEJ,OAAA1T,GAAW53F,EAAG,IAAI,EAClBA,EAAIkrG,GAAclrG,CAAC,EAEfA,EAAE,IACFsrG,EAAQtrG,EAAE,OAAS62F,GAAU72F,EAAE,EAAE,EAAI+pG,GAAY/pG,EAAE,EAAE,EACrD,KAAK,cACD,KAAK,WAAa2sG,IAAc3sG,EAAE,GAAIsrG,EAAM,SAAS,EAAI,GAE7D,KAAK,cAAgB,GAGlB,KAAK,aAChB,CAEA,SAAS+C,KAAU,CACf,OAAO,KAAK,QAAS,EAAG,CAAC,KAAK,OAAS,EAC3C,CAEA,SAASC,KAAc,CACnB,OAAO,KAAK,QAAO,EAAK,KAAK,OAAS,EAC1C,CAEA,SAASC,IAAQ,CACb,OAAO,KAAK,QAAO,EAAK,KAAK,QAAU,KAAK,UAAY,EAAI,EAChE,CAGA,IAAIC,IAAc,wDAIdC,IACI,sKAER,SAASzC,GAAev5G,EAAOgK,EAAK,CAChC,IAAIs2B,EAAWtgC,EAEXnE,EAAQ,KACR8qG,EACAhyF,EACAsnG,EAEJ,OAAIjC,GAAWh6G,CAAK,EAChBsgC,EAAW,CACP,GAAItgC,EAAM,cACV,EAAGA,EAAM,MACT,EAAGA,EAAM,OACrB,EACe6sE,GAAS7sE,CAAK,GAAK,CAAC,MAAM,CAACA,CAAK,GACvCsgC,EAAW,GACPt2B,EACAs2B,EAASt2B,CAAG,EAAI,CAAChK,EAEjBsgC,EAAS,aAAe,CAACtgC,IAErBnE,EAAQkgH,IAAY,KAAK/7G,CAAK,IACtC2mG,EAAO9qG,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/BykC,EAAW,CACP,EAAG,EACH,EAAGipE,GAAM1tG,EAAMwwG,EAAI,CAAC,EAAI1F,EACxB,EAAG4C,GAAM1tG,EAAMywG,EAAI,CAAC,EAAI3F,EACxB,EAAG4C,GAAM1tG,EAAM0wG,EAAM,CAAC,EAAI5F,EAC1B,EAAG4C,GAAM1tG,EAAM2wG,EAAM,CAAC,EAAI7F,EAC1B,GAAI4C,GAAM0Q,GAASp+G,EAAM4wG,EAAW,EAAI,GAAI,CAAC,EAAI9F,CAC7D,IACgB9qG,EAAQmgH,IAAS,KAAKh8G,CAAK,IACnC2mG,EAAO9qG,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/BykC,EAAW,CACP,EAAG47E,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,CACtC,GACermE,GAAY,KAEnBA,EAAW,GAEX,OAAOA,GAAa,WACnB,SAAUA,GAAY,OAAQA,KAE/B27E,EAAUE,IACN7E,GAAYh3E,EAAS,IAAI,EACzBg3E,GAAYh3E,EAAS,EAAE,CACnC,EAEQA,EAAW,GACXA,EAAS,GAAK27E,EAAQ,aACtB37E,EAAS,EAAI27E,EAAQ,QAGzBtnG,EAAM,IAAI6kG,GAASl5E,CAAQ,EAEvB05E,GAAWh6G,CAAK,GAAKgkG,GAAWhkG,EAAO,SAAS,IAChD2U,EAAI,QAAU3U,EAAM,SAGpBg6G,GAAWh6G,CAAK,GAAKgkG,GAAWhkG,EAAO,UAAU,IACjD2U,EAAI,SAAW3U,EAAM,UAGlB2U,CACX,CAEA4kG,GAAe,GAAKC,GAAS,UAC7BD,GAAe,QAAUD,IAEzB,SAAS4C,GAASE,EAAKzV,EAAM,CAIzB,IAAIzC,EAAMkY,GAAO,WAAWA,EAAI,QAAQ,IAAK,GAAG,CAAC,EAEjD,OAAQ,MAAMlY,CAAG,EAAI,EAAIA,GAAOyC,CACpC,CAEA,SAAS0V,GAA0Br9F,EAAM65F,EAAO,CAC5C,IAAI3U,EAAM,GAEV,OAAAA,EAAI,OACA2U,EAAM,MAAK,EAAK75F,EAAK,MAAK,GAAM65F,EAAM,OAAS75F,EAAK,KAAI,GAAM,GAC9DA,EAAK,MAAO,EAAC,IAAIklF,EAAI,OAAQ,GAAG,EAAE,QAAQ2U,CAAK,GAC/C,EAAE3U,EAAI,OAGVA,EAAI,aAAe,CAAC2U,EAAQ,CAAC75F,EAAK,MAAO,EAAC,IAAIklF,EAAI,OAAQ,GAAG,EAEtDA,CACX,CAEA,SAASiY,IAAkBn9F,EAAM65F,EAAO,CACpC,IAAI3U,EACJ,OAAMllF,EAAK,QAAO,GAAM65F,EAAM,QAAS,GAIvCA,EAAQ+B,GAAgB/B,EAAO75F,CAAI,EAC/BA,EAAK,SAAS65F,CAAK,EACnB3U,EAAMmY,GAA0Br9F,EAAM65F,CAAK,GAE3C3U,EAAMmY,GAA0BxD,EAAO75F,CAAI,EAC3CklF,EAAI,aAAe,CAACA,EAAI,aACxBA,EAAI,OAAS,CAACA,EAAI,QAGfA,GAZI,CAAE,aAAc,EAAG,OAAQ,CAAC,CAa3C,CAGA,SAASoY,GAAYzlB,EAAWl/F,EAAM,CAClC,OAAO,SAAUyc,EAAKmoG,EAAQ,CAC1B,IAAIC,EAAK3gG,EAET,OAAI0gG,IAAW,MAAQ,CAAC,MAAM,CAACA,CAAM,IACjC3W,GACIjuG,EACA,YACIA,EACA,uDACAA,EACA,gGAEpB,EACYkkB,EAAMzH,EACNA,EAAMmoG,EACNA,EAAS1gG,GAGb2gG,EAAMjD,GAAenlG,EAAKmoG,CAAM,EAChCpB,GAAY,KAAMqB,EAAK3lB,CAAS,EACzB,IACf,CACA,CAEA,SAASskB,GAAYhV,EAAK7lE,EAAUm8E,EAAUC,EAAc,CACxD,IAAI3C,EAAez5E,EAAS,cACxBu5E,EAAOI,GAAS35E,EAAS,KAAK,EAC9Bq5E,EAASM,GAAS35E,EAAS,OAAO,EAEjC6lE,EAAI,YAKTuW,EAAeA,GAAuB,GAElC/C,GACAjM,GAASvH,EAAK0D,GAAI1D,EAAK,OAAO,EAAIwT,EAAS8C,CAAQ,EAEnD5C,GACAjQ,GAAMzD,EAAK,OAAQ0D,GAAI1D,EAAK,MAAM,EAAI0T,EAAO4C,CAAQ,EAErD1C,GACA5T,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAS,EAAG4T,EAAe0C,CAAQ,EAEzDC,GACAr1F,GAAM,aAAa8+E,EAAK0T,GAAQF,CAAM,EAE9C,CAEA,IAAIl2F,IAAM64F,GAAY,EAAG,KAAK,EAC1BrsF,IAAWqsF,GAAY,GAAI,UAAU,EAEzC,SAAS1vC,GAAS5sE,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,aAAiB,MACzD,CAGA,SAAS28G,IAAc38G,EAAO,CAC1B,OACIslG,GAAStlG,CAAK,GACd+sE,GAAO/sE,CAAK,GACZ4sE,GAAS5sE,CAAK,GACd6sE,GAAS7sE,CAAK,GACd48G,IAAsB58G,CAAK,GAC3B68G,IAAoB78G,CAAK,GACzBA,IAAU,MACVA,IAAU,MAElB,CAEA,SAAS68G,IAAoB78G,EAAO,CAChC,IAAI88G,EAAa72D,GAASjmD,CAAK,GAAK,CAACikG,GAAcjkG,CAAK,EACpD+8G,EAAe,GACf9pF,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,IACH,EACD/2B,EACA0S,EACAouG,EAAc/pF,EAAW,OAE7B,IAAK/2B,EAAI,EAAGA,EAAI8gH,EAAa9gH,GAAK,EAC9B0S,EAAWqkB,EAAW/2B,CAAC,EACvB6gH,EAAeA,GAAgB/Y,GAAWhkG,EAAO4O,CAAQ,EAG7D,OAAOkuG,GAAcC,CACzB,CAEA,SAASH,IAAsB58G,EAAO,CAClC,IAAIi9G,EAAY7xC,GAAQprE,CAAK,EACzBk9G,EAAe,GACnB,OAAID,IACAC,EACIl9G,EAAM,OAAO,SAAUqP,EAAM,CACzB,MAAO,CAACw9D,GAASx9D,CAAI,GAAKu9D,GAAS5sE,CAAK,CACxD,CAAa,EAAE,SAAW,GAEfi9G,GAAaC,CACxB,CAEA,SAASC,IAAen9G,EAAO,CAC3B,IAAI88G,EAAa72D,GAASjmD,CAAK,GAAK,CAACikG,GAAcjkG,CAAK,EACpD+8G,EAAe,GACf9pF,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,UACH,EACD/2B,EACA0S,EAEJ,IAAK1S,EAAI,EAAGA,EAAI+2B,EAAW,OAAQ/2B,GAAK,EACpC0S,EAAWqkB,EAAW/2B,CAAC,EACvB6gH,EAAeA,GAAgB/Y,GAAWhkG,EAAO4O,CAAQ,EAG7D,OAAOkuG,GAAcC,CACzB,CAEA,SAASK,IAAkBC,EAAUjX,EAAK,CACtC,IAAIprF,EAAOqiG,EAAS,KAAKjX,EAAK,OAAQ,EAAI,EAC1C,OAAOprF,EAAO,GACR,WACAA,EAAO,GACP,WACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,WACA,UACV,CAEA,SAASsiG,IAAWnpF,EAAMopF,EAAS,CAE3B,UAAU,SAAW,IAChB,UAAU,CAAC,EAGLZ,IAAc,UAAU,CAAC,CAAC,GACjCxoF,EAAO,UAAU,CAAC,EAClBopF,EAAU,QACHJ,IAAe,UAAU,CAAC,CAAC,IAClCI,EAAU,UAAU,CAAC,EACrBppF,EAAO,SAPPA,EAAO,OACPopF,EAAU,SAWlB,IAAInX,EAAMjyE,GAAQmjF,GAAa,EAC3BkG,EAAM5C,GAAgBxU,EAAK,IAAI,EAAE,QAAQ,KAAK,EAC9Cr3C,EAAS1nC,GAAM,eAAe,KAAMm2F,CAAG,GAAK,WAC5C/mC,EACI8mC,IACCzpG,GAAWypG,EAAQxuD,CAAM,CAAC,EACrBwuD,EAAQxuD,CAAM,EAAE,KAAK,KAAMq3C,CAAG,EAC9BmX,EAAQxuD,CAAM,GAE5B,OAAO,KAAK,OACR0nB,GAAU,KAAK,aAAa,SAAS1nB,EAAQ,KAAMuoD,GAAYlR,CAAG,CAAC,CAC3E,CACA,CAEA,SAAStjG,KAAQ,CACb,OAAO,IAAIuiG,GAAO,IAAI,CAC1B,CAEA,SAASoY,IAAQz9G,EAAO0oG,EAAO,CAC3B,IAAIgV,EAAapY,GAAStlG,CAAK,EAAIA,EAAQs3G,GAAYt3G,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM09G,EAAW,QAAS,GAG5ChV,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAKgV,EAAW,QAAO,EAEnCA,EAAW,QAAS,EAAG,KAAK,MAAO,EAAC,QAAQhV,CAAK,EAAE,WANnD,EAQf,CAEA,SAASiV,IAAS39G,EAAO0oG,EAAO,CAC5B,IAAIgV,EAAapY,GAAStlG,CAAK,EAAIA,EAAQs3G,GAAYt3G,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM09G,EAAW,QAAS,GAG5ChV,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAKgV,EAAW,QAAO,EAEnC,KAAK,MAAO,EAAC,MAAMhV,CAAK,EAAE,QAAS,EAAGgV,EAAW,WANjD,EAQf,CAEA,SAASE,IAAU/7E,EAAMrO,EAAIk1E,EAAOmV,EAAa,CAC7C,IAAIC,EAAYxY,GAASzjE,CAAI,EAAIA,EAAOy1E,GAAYz1E,CAAI,EACpDk8E,EAAUzY,GAAS9xE,CAAE,EAAIA,EAAK8jF,GAAY9jF,CAAE,EAChD,OAAM,KAAK,WAAasqF,EAAU,WAAaC,EAAQ,QAAO,GAG9DF,EAAcA,GAAe,MAExBA,EAAY,CAAC,IAAM,IACd,KAAK,QAAQC,EAAWpV,CAAK,EAC7B,CAAC,KAAK,SAASoV,EAAWpV,CAAK,KACpCmV,EAAY,CAAC,IAAM,IACd,KAAK,SAASE,EAASrV,CAAK,EAC5B,CAAC,KAAK,QAAQqV,EAASrV,CAAK,IAT3B,EAWf,CAEA,SAASsV,IAAOh+G,EAAO0oG,EAAO,CAC1B,IAAIgV,EAAapY,GAAStlG,CAAK,EAAIA,EAAQs3G,GAAYt3G,CAAK,EACxDi+G,EACJ,OAAM,KAAK,QAAO,GAAMP,EAAW,QAAS,GAG5ChV,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,IAAOgV,EAAW,QAAO,GAE5CO,EAAUP,EAAW,UAEjB,KAAK,MAAK,EAAG,QAAQhV,CAAK,EAAE,QAAO,GAAMuV,GACzCA,GAAW,KAAK,MAAK,EAAG,MAAMvV,CAAK,EAAE,QAAS,IAT3C,EAYf,CAEA,SAASwV,IAAcl+G,EAAO0oG,EAAO,CACjC,OAAO,KAAK,OAAO1oG,EAAO0oG,CAAK,GAAK,KAAK,QAAQ1oG,EAAO0oG,CAAK,CACjE,CAEA,SAASyV,IAAen+G,EAAO0oG,EAAO,CAClC,OAAO,KAAK,OAAO1oG,EAAO0oG,CAAK,GAAK,KAAK,SAAS1oG,EAAO0oG,CAAK,CAClE,CAEA,SAAS1tF,IAAKhb,EAAO0oG,EAAO0V,EAAS,CACjC,IAAIv5F,EAAMw5F,EAAW5nC,EAErB,GAAI,CAAC,KAAK,UACN,MAAO,KAKX,GAFA5xD,EAAO+1F,GAAgB56G,EAAO,IAAI,EAE9B,CAAC6kB,EAAK,UACN,MAAO,KAOX,OAJAw5F,GAAax5F,EAAK,UAAS,EAAK,KAAK,UAAW,GAAI,IAEpD6jF,EAAQD,GAAeC,CAAK,EAEpBA,EAAK,CACT,IAAK,OACDjyB,EAAS6nC,GAAU,KAAMz5F,CAAI,EAAI,GACjC,MACJ,IAAK,QACD4xD,EAAS6nC,GAAU,KAAMz5F,CAAI,EAC7B,MACJ,IAAK,UACD4xD,EAAS6nC,GAAU,KAAMz5F,CAAI,EAAI,EACjC,MACJ,IAAK,SACD4xD,GAAU,KAAO5xD,GAAQ,IACzB,MACJ,IAAK,SACD4xD,GAAU,KAAO5xD,GAAQ,IACzB,MACJ,IAAK,OACD4xD,GAAU,KAAO5xD,GAAQ,KACzB,MACJ,IAAK,MACD4xD,GAAU,KAAO5xD,EAAOw5F,GAAa,MACrC,MACJ,IAAK,OACD5nC,GAAU,KAAO5xD,EAAOw5F,GAAa,OACrC,MACJ,QACI5nC,EAAS,KAAO5xD,CACvB,CAED,OAAOu5F,EAAU3nC,EAAS6yB,GAAS7yB,CAAM,CAC7C,CAEA,SAAS6nC,GAAU7mG,EAAGC,EAAG,CACrB,GAAID,EAAE,KAAI,EAAKC,EAAE,KAAI,EAGjB,MAAO,CAAC4mG,GAAU5mG,EAAGD,CAAC,EAG1B,IAAI8mG,GAAkB7mG,EAAE,KAAI,EAAKD,EAAE,QAAU,IAAMC,EAAE,MAAO,EAAGD,EAAE,MAAK,GAElE7d,EAAS6d,EAAE,MAAK,EAAG,IAAI8mG,EAAgB,QAAQ,EAC/CC,EACAC,EAEJ,OAAI/mG,EAAI9d,EAAS,GACb4kH,EAAU/mG,EAAE,MAAO,EAAC,IAAI8mG,EAAiB,EAAG,QAAQ,EAEpDE,GAAU/mG,EAAI9d,IAAWA,EAAS4kH,KAElCA,EAAU/mG,EAAE,MAAO,EAAC,IAAI8mG,EAAiB,EAAG,QAAQ,EAEpDE,GAAU/mG,EAAI9d,IAAW4kH,EAAU5kH,IAIhC,EAAE2kH,EAAiBE,IAAW,CACzC,CAEAp3F,GAAM,cAAgB,uBACtBA,GAAM,iBAAmB,yBAEzB,SAAS3T,KAAW,CAChB,OAAO,KAAK,QAAQ,OAAO,IAAI,EAAE,OAAO,kCAAkC,CAC9E,CAEA,SAASgrG,IAAYC,EAAY,CAC7B,GAAI,CAAC,KAAK,UACN,OAAO,KAEX,IAAIC,EAAMD,IAAe,GACrB1uG,EAAI2uG,EAAM,KAAK,MAAK,EAAG,IAAK,EAAG,KACnC,OAAI3uG,EAAE,OAAS,GAAKA,EAAE,KAAM,EAAG,KACpBo3F,GACHp3F,EACA2uG,EACM,iCACA,8BAClB,EAEQ9qG,GAAW,KAAK,UAAU,WAAW,EAEjC8qG,EACO,KAAK,SAAS,cAEd,IAAI,KAAK,KAAK,QAAO,EAAK,KAAK,UAAS,EAAK,GAAK,GAAI,EACxD,YAAa,EACb,QAAQ,IAAKvX,GAAap3F,EAAG,GAAG,CAAC,EAGvCo3F,GACHp3F,EACA2uG,EAAM,+BAAiC,4BAC/C,CACA,CAQA,SAAS5mF,KAAU,CACf,GAAI,CAAC,KAAK,UACN,MAAO,qBAAuB,KAAK,GAAK,OAE5C,IAAIjU,EAAO,SACP86F,EAAO,GACPvlH,EACA+vG,EACAyV,EACA9tF,EACJ,OAAK,KAAK,YACNjN,EAAO,KAAK,UAAS,IAAO,EAAI,aAAe,mBAC/C86F,EAAO,KAEXvlH,EAAS,IAAMyqB,EAAO,MACtBslF,EAAO,GAAK,KAAK,KAAM,GAAI,KAAK,QAAU,KAAO,OAAS,SAC1DyV,EAAW,wBACX9tF,EAAS6tF,EAAO,OAET,KAAK,OAAOvlH,EAAS+vG,EAAOyV,EAAW9tF,CAAM,CACxD,CAEA,SAAS+9B,IAAOgwD,EAAa,CACpBA,IACDA,EAAc,KAAK,MAAO,EACpB13F,GAAM,iBACNA,GAAM,eAEhB,IAAIovD,EAAS4wB,GAAa,KAAM0X,CAAW,EAC3C,OAAO,KAAK,WAAU,EAAG,WAAWtoC,CAAM,CAC9C,CAEA,SAAS50C,IAAK1N,EAAM+zE,EAAe,CAC/B,OACI,KAAK,QAAS,IACZ5C,GAASnxE,CAAI,GAAKA,EAAK,QAAS,GAAKmjF,GAAYnjF,CAAI,EAAE,WAElDolF,GAAe,CAAE,GAAI,KAAM,KAAMplF,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC+zE,CAAa,EAErB,KAAK,aAAa,aAEjC,CAEA,SAAS8W,IAAQ9W,EAAe,CAC5B,OAAO,KAAK,KAAKoP,GAAa,EAAEpP,CAAa,CACjD,CAEA,SAAS10E,IAAGW,EAAM+zE,EAAe,CAC7B,OACI,KAAK,QAAS,IACZ5C,GAASnxE,CAAI,GAAKA,EAAK,QAAS,GAAKmjF,GAAYnjF,CAAI,EAAE,WAElDolF,GAAe,CAAE,KAAM,KAAM,GAAIplF,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC+zE,CAAa,EAErB,KAAK,aAAa,aAEjC,CAEA,SAAS+W,IAAM/W,EAAe,CAC1B,OAAO,KAAK,GAAGoP,GAAa,EAAEpP,CAAa,CAC/C,CAKA,SAAS7D,GAAOr6F,EAAK,CACjB,IAAIk1G,EAEJ,OAAIl1G,IAAQ,OACD,KAAK,QAAQ,OAEpBk1G,EAAgBnL,GAAU/pG,CAAG,EACzBk1G,GAAiB,OACjB,KAAK,QAAUA,GAEZ,KAEf,CAEA,IAAI9gG,GAAOonF,GACP,kJACA,SAAUx7F,EAAK,CACX,OAAIA,IAAQ,OACD,KAAK,aAEL,KAAK,OAAOA,CAAG,CAE7B,CACL,EAEA,SAASyhG,IAAa,CAClB,OAAO,KAAK,OAChB,CAEA,IAAI0T,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,IAAoB,IAAM,IAAM,IAAM,GAAKD,GAG/C,SAASE,GAAMC,EAAUC,EAAS,CAC9B,OAASD,EAAWC,EAAWA,GAAWA,CAC9C,CAEA,SAASC,GAAiBr+G,EAAG4O,EAAGywB,EAAG,CAE/B,OAAIr/B,EAAI,KAAOA,GAAK,EAET,IAAI,KAAKA,EAAI,IAAK4O,EAAGywB,CAAC,EAAI4+E,GAE1B,IAAI,KAAKj+G,EAAG4O,EAAGywB,CAAC,EAAE,SAEjC,CAEA,SAASi/E,GAAet+G,EAAG4O,EAAGywB,EAAG,CAE7B,OAAIr/B,EAAI,KAAOA,GAAK,EAET,KAAK,IAAIA,EAAI,IAAK4O,EAAGywB,CAAC,EAAI4+E,GAE1B,KAAK,IAAIj+G,EAAG4O,EAAGywB,CAAC,CAE/B,CAEA,SAASk/E,IAAQlX,EAAO,CACpB,IAAIv0E,EAAM0rF,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDv0E,EAAO0rF,EAAY,KAAK,KAAI,EAAI,EAAG,CAAC,EACpC,MACJ,IAAK,UACD1rF,EAAO0rF,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EAAI,KAAK,MAAK,EAAK,EAC/B,CAChB,EACY,MACJ,IAAK,QACD1rF,EAAO0rF,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,CAAC,EAC/C,MACJ,IAAK,OACD1rF,EAAO0rF,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,EAAK,KAAK,QAAS,CAC5C,EACY,MACJ,IAAK,UACD1rF,EAAO0rF,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,GAAI,KAAK,WAAU,EAAK,EACnD,EACY,MACJ,IAAK,MACL,IAAK,OACD1rF,EAAO0rF,EAAY,KAAK,KAAM,EAAE,KAAK,QAAS,KAAK,KAAI,CAAE,EACzD,MACJ,IAAK,OACD1rF,EAAO,KAAK,GAAG,UACfA,GAAQorF,GACJprF,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAGirF,IAC7CC,EAChB,EACY,MACJ,IAAK,SACDlrF,EAAO,KAAK,GAAG,UACfA,GAAQorF,GAAMprF,EAAMirF,EAAa,EACjC,MACJ,IAAK,SACDjrF,EAAO,KAAK,GAAG,UACfA,GAAQorF,GAAMprF,EAAMgrF,EAAa,EACjC,KACP,CAED,YAAK,GAAG,QAAQhrF,CAAI,EACpB9M,GAAM,aAAa,KAAM,EAAI,EACtB,IACX,CAEA,SAASy4F,IAAMpX,EAAO,CAClB,IAAIv0E,EAAM0rF,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDv0E,EAAO0rF,EAAY,KAAK,KAAI,EAAK,EAAG,EAAG,CAAC,EAAI,EAC5C,MACJ,IAAK,UACD1rF,EACI0rF,EACI,KAAK,KAAM,EACX,KAAK,MAAK,EAAM,KAAK,MAAO,EAAG,EAAK,EACpC,CACH,EAAG,EACR,MACJ,IAAK,QACD1rF,EAAO0rF,EAAY,KAAK,OAAQ,KAAK,MAAK,EAAK,EAAG,CAAC,EAAI,EACvD,MACJ,IAAK,OACD1rF,EACI0rF,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,EAAG,KAAK,QAAS,EAAG,CAClC,EAAG,EACR,MACJ,IAAK,UACD1rF,EACI0rF,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,GAAM,KAAK,WAAY,EAAG,GAAK,CAC3C,EAAG,EACR,MACJ,IAAK,MACL,IAAK,OACD1rF,EAAO0rF,EAAY,KAAK,KAAM,EAAE,KAAK,MAAO,EAAE,KAAK,KAAI,EAAK,CAAC,EAAI,EACjE,MACJ,IAAK,OACD1rF,EAAO,KAAK,GAAG,UACfA,GACIkrF,GACAE,GACIprF,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAGirF,IAC7CC,EACH,EACD,EACJ,MACJ,IAAK,SACDlrF,EAAO,KAAK,GAAG,UACfA,GAAQirF,GAAgBG,GAAMprF,EAAMirF,EAAa,EAAI,EACrD,MACJ,IAAK,SACDjrF,EAAO,KAAK,GAAG,UACfA,GAAQgrF,GAAgBI,GAAMprF,EAAMgrF,EAAa,EAAI,EACrD,KACP,CAED,YAAK,GAAG,QAAQhrF,CAAI,EACpB9M,GAAM,aAAa,KAAM,EAAI,EACtB,IACX,CAEA,SAAS04F,KAAU,CACf,OAAO,KAAK,GAAG,QAAS,GAAI,KAAK,SAAW,GAAK,GACrD,CAEA,SAASC,KAAO,CACZ,OAAO,KAAK,MAAM,KAAK,QAAS,EAAG,GAAI,CAC3C,CAEA,SAASC,KAAS,CACd,OAAO,IAAI,KAAK,KAAK,QAAS,EAClC,CAEA,SAASrjD,KAAU,CACf,IAAI3sD,EAAI,KACR,MAAO,CACHA,EAAE,KAAM,EACRA,EAAE,MAAO,EACTA,EAAE,KAAM,EACRA,EAAE,KAAM,EACRA,EAAE,OAAQ,EACVA,EAAE,OAAQ,EACVA,EAAE,YAAa,CACvB,CACA,CAEA,SAASqxB,KAAW,CAChB,IAAIrxB,EAAI,KACR,MAAO,CACH,MAAOA,EAAE,KAAM,EACf,OAAQA,EAAE,MAAO,EACjB,KAAMA,EAAE,KAAM,EACd,MAAOA,EAAE,MAAO,EAChB,QAASA,EAAE,QAAS,EACpB,QAASA,EAAE,QAAS,EACpB,aAAcA,EAAE,aAAc,CACtC,CACA,CAEA,SAASiwG,KAAS,CAEd,OAAO,KAAK,QAAS,EAAG,KAAK,YAAW,EAAK,IACjD,CAEA,SAASC,KAAY,CACjB,OAAOvb,GAAQ,IAAI,CACvB,CAEA,SAASwb,KAAe,CACpB,OAAO1yC,GAAO,CAAE,EAAE+2B,GAAgB,IAAI,CAAC,CAC3C,CAEA,SAAS4b,KAAY,CACjB,OAAO5b,GAAgB,IAAI,EAAE,QACjC,CAEA,SAAS6b,KAAe,CACpB,MAAO,CACH,MAAO,KAAK,GACZ,OAAQ,KAAK,GACb,OAAQ,KAAK,QACb,MAAO,KAAK,OACZ,OAAQ,KAAK,OACrB,CACA,CAEAtZ,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,KAAM,EAAG,EAAG,SAAS,EACpCA,GAAe,MAAO,EAAG,EAAG,SAAS,EACrCA,GAAe,OAAQ,EAAG,EAAG,SAAS,EACtCA,GAAe,QAAS,EAAG,EAAG,WAAW,EAEzCA,GAAe,IAAK,CAAC,IAAK,CAAC,EAAG,KAAM,SAAS,EAC7CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,SAAS,EAC3CA,GAAe,IAAK,CAAC,MAAO,CAAC,EAAG,EAAG,SAAS,EAC5CA,GAAe,IAAK,CAAC,OAAQ,CAAC,EAAG,EAAG,SAAS,EAE7CqE,GAAc,IAAKkV,EAAY,EAC/BlV,GAAc,KAAMkV,EAAY,EAChClV,GAAc,MAAOkV,EAAY,EACjClV,GAAc,OAAQmV,GAAY,EAClCnV,GAAc,QAASoV,GAAc,EAErC1U,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,OAAO,EAClC,SAAU/rG,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CACnC,IAAI83G,EAAM/oC,EAAO,QAAQ,UAAU3uE,EAAOJ,EAAO+uE,EAAO,OAAO,EAC3D+oC,EACAjT,GAAgB91B,CAAM,EAAE,IAAM+oC,EAE9BjT,GAAgB91B,CAAM,EAAE,WAAa3uE,CAE5C,CACL,EAEAqrG,GAAc,IAAKP,EAAa,EAChCO,GAAc,KAAMP,EAAa,EACjCO,GAAc,MAAOP,EAAa,EAClCO,GAAc,OAAQP,EAAa,EACnCO,GAAc,KAAMqV,GAAmB,EAEvC3U,GAAc,CAAC,IAAK,KAAM,MAAO,MAAM,EAAGI,EAAI,EAC9CJ,GAAc,CAAC,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CACzD,IAAI/D,EACA8yE,EAAO,QAAQ,uBACf9yE,EAAQmE,EAAM,MAAM2uE,EAAO,QAAQ,oBAAoB,GAGvDA,EAAO,QAAQ,oBACfr7D,EAAM64F,EAAI,EAAIx9B,EAAO,QAAQ,oBAAoB3uE,EAAOnE,CAAK,EAE7DyX,EAAM64F,EAAI,EAAI,SAASnsG,EAAO,EAAE,CAExC,CAAC,EAED,SAAS2gH,IAAW1wG,EAAG8+C,EAAQ,CAC3B,IAAI7yD,EACAiV,EACAu9F,EACAkS,EAAO,KAAK,OAAS7M,GAAU,IAAI,EAAE,MACzC,IAAK73G,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAAG,CACrC,OAAQ,OAAO0kH,EAAK1kH,CAAC,EAAE,MAAK,CACxB,IAAK,SAEDwyG,EAAOrnF,GAAMu5F,EAAK1kH,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EACzC0kH,EAAK1kH,CAAC,EAAE,MAAQwyG,EAAK,QAAO,EAC5B,KACP,CAED,OAAQ,OAAOkS,EAAK1kH,CAAC,EAAE,MAAK,CACxB,IAAK,YACD0kH,EAAK1kH,CAAC,EAAE,MAAQ,IAChB,MACJ,IAAK,SAEDwyG,EAAOrnF,GAAMu5F,EAAK1kH,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE,UAC3C0kH,EAAK1kH,CAAC,EAAE,MAAQwyG,EAAK,QAAO,EAC5B,KACP,CACJ,CACD,OAAOkS,CACX,CAEA,SAASC,IAAgBC,EAAS/xD,EAAQu1C,EAAQ,CAC9C,IAAIpoG,EACAiV,EACAyvG,EAAO,KAAK,KAAM,EAClBjpH,EACAopH,EACAC,EAGJ,IAFAF,EAAUA,EAAQ,cAEb5kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAKlC,GAJAvE,EAAOipH,EAAK1kH,CAAC,EAAE,KAAK,YAAW,EAC/B6kH,EAAOH,EAAK1kH,CAAC,EAAE,KAAK,YAAW,EAC/B8kH,EAASJ,EAAK1kH,CAAC,EAAE,OAAO,YAAW,EAE/BooG,EACA,OAAQv1C,EAAM,CACV,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIgyD,IAASD,EACT,OAAOF,EAAK1kH,CAAC,EAEjB,MAEJ,IAAK,OACD,GAAIvE,IAASmpH,EACT,OAAOF,EAAK1kH,CAAC,EAEjB,MAEJ,IAAK,QACD,GAAI8kH,IAAWF,EACX,OAAOF,EAAK1kH,CAAC,EAEjB,KACP,SACM,CAACvE,EAAMopH,EAAMC,CAAM,EAAE,QAAQF,CAAO,GAAK,EAChD,OAAOF,EAAK1kH,CAAC,CAGzB,CAEA,SAAS+kH,IAAsBvJ,EAAKrO,EAAM,CACtC,IAAI3rF,EAAMg6F,EAAI,OAASA,EAAI,MAAQ,EAAK,GACxC,OAAIrO,IAAS,OACFhiF,GAAMqwF,EAAI,KAAK,EAAE,KAAI,EAErBrwF,GAAMqwF,EAAI,KAAK,EAAE,QAAUrO,EAAOqO,EAAI,QAAUh6F,CAE/D,CAEA,SAASwjG,KAAa,CAClB,IAAIhlH,EACAiV,EACAiD,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAOlC,GALAkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OAGvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MACvC,OAAO0kH,EAAK1kH,CAAC,EAAE,KAIvB,MAAO,EACX,CAEA,SAASilH,KAAe,CACpB,IAAIjlH,EACAiV,EACAiD,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAOlC,GALAkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OAGvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MACvC,OAAO0kH,EAAK1kH,CAAC,EAAE,OAIvB,MAAO,EACX,CAEA,SAASklH,KAAa,CAClB,IAAIllH,EACAiV,EACAiD,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAOlC,GALAkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OAGvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MACvC,OAAO0kH,EAAK1kH,CAAC,EAAE,KAIvB,MAAO,EACX,CAEA,SAASmlH,KAAa,CAClB,IAAInlH,EACAiV,EACAuM,EACAtJ,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAMlC,GALAwhB,EAAMkjG,EAAK1kH,CAAC,EAAE,OAAS0kH,EAAK1kH,CAAC,EAAE,MAAQ,EAAK,GAG5CkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAG7BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OACvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MAExC,OACK,KAAK,KAAM,EAAGmrB,GAAMu5F,EAAK1kH,CAAC,EAAE,KAAK,EAAE,KAAI,GAAMwhB,EAC9CkjG,EAAK1kH,CAAC,EAAE,OAKpB,OAAO,KAAK,MAChB,CAEA,SAASolH,IAAc9V,EAAU,CAC7B,OAAKxH,GAAW,KAAM,gBAAgB,GAClCud,GAAiB,KAAK,IAAI,EAEvB/V,EAAW,KAAK,eAAiB,KAAK,UACjD,CAEA,SAASgW,IAAchW,EAAU,CAC7B,OAAKxH,GAAW,KAAM,gBAAgB,GAClCud,GAAiB,KAAK,IAAI,EAEvB/V,EAAW,KAAK,eAAiB,KAAK,UACjD,CAEA,SAASiW,IAAgBjW,EAAU,CAC/B,OAAKxH,GAAW,KAAM,kBAAkB,GACpCud,GAAiB,KAAK,IAAI,EAEvB/V,EAAW,KAAK,iBAAmB,KAAK,UACnD,CAEA,SAAS+U,GAAa/U,EAAUnH,EAAQ,CACpC,OAAOA,EAAO,cAAcmH,CAAQ,CACxC,CAEA,SAASgV,IAAahV,EAAUnH,EAAQ,CACpC,OAAOA,EAAO,cAAcmH,CAAQ,CACxC,CAEA,SAASiV,IAAejV,EAAUnH,EAAQ,CACtC,OAAOA,EAAO,gBAAgBmH,CAAQ,CAC1C,CAEA,SAASkV,IAAoBlV,EAAUnH,EAAQ,CAC3C,OAAOA,EAAO,sBAAwByG,EAC1C,CAEA,SAASyW,IAAmB,CACxB,IAAIG,EAAa,CAAE,EACfC,EAAa,CAAE,EACfC,EAAe,CAAE,EACjBxT,EAAc,CAAE,EAChBlyG,EACAiV,EACAyvG,EAAO,KAAK,OAEhB,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAClCylH,EAAW,KAAK/V,GAAYgV,EAAK1kH,CAAC,EAAE,IAAI,CAAC,EACzCwlH,EAAW,KAAK9V,GAAYgV,EAAK1kH,CAAC,EAAE,IAAI,CAAC,EACzC0lH,EAAa,KAAKhW,GAAYgV,EAAK1kH,CAAC,EAAE,MAAM,CAAC,EAE7CkyG,EAAY,KAAKxC,GAAYgV,EAAK1kH,CAAC,EAAE,IAAI,CAAC,EAC1CkyG,EAAY,KAAKxC,GAAYgV,EAAK1kH,CAAC,EAAE,IAAI,CAAC,EAC1CkyG,EAAY,KAAKxC,GAAYgV,EAAK1kH,CAAC,EAAE,MAAM,CAAC,EAGhD,KAAK,WAAa,IAAI,OAAO,KAAOkyG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACpE,KAAK,eAAiB,IAAI,OAAO,KAAOuT,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,eAAiB,IAAI,OAAO,KAAOD,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,iBAAmB,IAAI,OACxB,KAAOE,EAAa,KAAK,GAAG,EAAI,IAChC,GACR,CACA,CAIA5a,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,SAAU,EAAG,GAC7B,CAAC,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EAED,SAAS6a,GAAuBjiH,EAAO60B,EAAQ,CAC3CuyE,GAAe,EAAG,CAACpnG,EAAOA,EAAM,MAAM,EAAG,EAAG60B,CAAM,CACtD,CAEAotF,GAAuB,OAAQ,UAAU,EACzCA,GAAuB,QAAS,UAAU,EAC1CA,GAAuB,OAAQ,aAAa,EAC5CA,GAAuB,QAAS,aAAa,EAI7CvZ,GAAa,WAAY,IAAI,EAC7BA,GAAa,cAAe,IAAI,EAIhCU,GAAgB,WAAY,CAAC,EAC7BA,GAAgB,cAAe,CAAC,EAIhCqC,GAAc,IAAKN,EAAW,EAC9BM,GAAc,IAAKN,EAAW,EAC9BM,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,OAAQT,GAAWN,EAAM,EACvCe,GAAc,OAAQT,GAAWN,EAAM,EACvCe,GAAc,QAASR,GAAWN,EAAM,EACxCc,GAAc,QAASR,GAAWN,EAAM,EAExC0B,GACI,CAAC,OAAQ,QAAS,OAAQ,OAAO,EACjC,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAClCsvG,EAAKtvG,EAAM,OAAO,EAAG,CAAC,CAAC,EAAI2pG,GAAMvpG,CAAK,CACzC,CACL,EAEAisG,GAAkB,CAAC,KAAM,IAAI,EAAG,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAClEsvG,EAAKtvG,CAAK,EAAIynB,GAAM,kBAAkBrnB,CAAK,CAC/C,CAAC,EAID,SAAS8hH,IAAe9hH,EAAO,CAC3B,OAAO+hH,GAAqB,KACxB,KACA/hH,EACA,KAAK,KAAM,EACX,KAAK,QAAS,EACd,KAAK,aAAa,MAAM,IACxB,KAAK,aAAa,MAAM,GAChC,CACA,CAEA,SAASgiH,IAAkBhiH,EAAO,CAC9B,OAAO+hH,GAAqB,KACxB,KACA/hH,EACA,KAAK,QAAS,EACd,KAAK,WAAY,EACjB,EACA,CACR,CACA,CAEA,SAASiiH,KAAoB,CACzB,OAAOtS,GAAY,KAAK,KAAM,EAAE,EAAG,CAAC,CACxC,CAEA,SAASuS,KAA2B,CAChC,OAAOvS,GAAY,KAAK,YAAa,EAAE,EAAG,CAAC,CAC/C,CAEA,SAASwS,KAAiB,CACtB,IAAIC,EAAW,KAAK,WAAU,EAAG,MACjC,OAAOzS,GAAY,KAAK,KAAM,EAAEyS,EAAS,IAAKA,EAAS,GAAG,CAC9D,CAEA,SAASC,KAAqB,CAC1B,IAAID,EAAW,KAAK,WAAU,EAAG,MACjC,OAAOzS,GAAY,KAAK,SAAU,EAAEyS,EAAS,IAAKA,EAAS,GAAG,CAClE,CAEA,SAASL,GAAqB/hH,EAAOkvG,EAAMC,EAASN,EAAKC,EAAK,CAC1D,IAAIwT,EACJ,OAAItiH,GAAS,KACFyvG,GAAW,KAAMZ,EAAKC,CAAG,EAAE,MAElCwT,EAAc3S,GAAY3vG,EAAO6uG,EAAKC,CAAG,EACrCI,EAAOoT,IACPpT,EAAOoT,GAEJC,IAAW,KAAK,KAAMviH,EAAOkvG,EAAMC,EAASN,EAAKC,CAAG,EAEnE,CAEA,SAASyT,IAAWpL,EAAUjI,EAAMC,EAASN,EAAKC,EAAK,CACnD,IAAI0T,EAAgBvT,GAAmBkI,EAAUjI,EAAMC,EAASN,EAAKC,CAAG,EACpEJ,EAAOC,GAAc6T,EAAc,KAAM,EAAGA,EAAc,SAAS,EAEvE,YAAK,KAAK9T,EAAK,eAAgB,GAC/B,KAAK,MAAMA,EAAK,YAAa,GAC7B,KAAK,KAAKA,EAAK,WAAY,GACpB,IACX,CAIA1H,GAAe,IAAK,EAAG,KAAM,SAAS,EAItCsB,GAAa,UAAW,GAAG,EAI3BU,GAAgB,UAAW,CAAC,EAI5BqC,GAAc,IAAKlB,EAAM,EACzB4B,GAAc,IAAK,SAAU/rG,EAAOsT,EAAO,CACvCA,EAAM84F,EAAK,GAAK7C,GAAMvpG,CAAK,EAAI,GAAK,CACxC,CAAC,EAID,SAASyiH,IAAcziH,EAAO,CAC1B,OAAOA,GAAS,KACV,KAAK,MAAM,KAAK,MAAO,EAAG,GAAK,CAAC,EAChC,KAAK,OAAOA,EAAQ,GAAK,EAAK,KAAK,MAAK,EAAK,CAAE,CACzD,CAIAgnG,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAI3CsB,GAAa,OAAQ,GAAG,EAGxBU,GAAgB,OAAQ,CAAC,EAIzBqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAM,SAAUG,EAAUnH,EAAQ,CAE5C,OAAOmH,EACDnH,EAAO,yBAA2BA,EAAO,cACzCA,EAAO,8BACjB,CAAC,EAED0H,GAAc,CAAC,IAAK,IAAI,EAAGM,EAAI,EAC/BN,GAAc,KAAM,SAAU/rG,EAAOsT,EAAO,CACxCA,EAAM+4F,EAAI,EAAI9C,GAAMvpG,EAAM,MAAMwqG,EAAS,EAAE,CAAC,CAAC,CACjD,CAAC,EAID,IAAIkY,GAAmBhZ,GAAW,OAAQ,EAAI,EAI9C1C,GAAe,MAAO,CAAC,OAAQ,CAAC,EAAG,OAAQ,WAAW,EAItDsB,GAAa,YAAa,KAAK,EAG/BU,GAAgB,YAAa,CAAC,EAI9BqC,GAAc,MAAOV,EAAS,EAC9BU,GAAc,OAAQhB,EAAM,EAC5B0B,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CAC3DA,EAAO,WAAa46B,GAAMvpG,CAAK,CACnC,CAAC,EAMD,SAAS2iH,IAAgB3iH,EAAO,CAC5B,IAAIsvG,EACA,KAAK,OACA,KAAK,QAAQ,QAAQ,KAAK,EAAI,KAAK,MAAO,EAAC,QAAQ,MAAM,GAAK,KAClE,EAAG,EACR,OAAOtvG,GAAS,KAAOsvG,EAAY,KAAK,IAAItvG,EAAQsvG,EAAW,GAAG,CACtE,CAIAtI,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CsB,GAAa,SAAU,GAAG,EAI1BU,GAAgB,SAAU,EAAE,EAI5BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrC2B,GAAc,CAAC,IAAK,IAAI,EAAGQ,EAAM,EAIjC,IAAIqW,IAAelZ,GAAW,UAAW,EAAK,EAI9C1C,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CsB,GAAa,SAAU,GAAG,EAI1BU,GAAgB,SAAU,EAAE,EAI5BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrC2B,GAAc,CAAC,IAAK,IAAI,EAAGS,EAAM,EAIjC,IAAIqW,IAAenZ,GAAW,UAAW,EAAK,EAI9C1C,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,IACnC,CAAC,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,GACnC,CAAC,EAEDA,GAAe,EAAG,CAAC,MAAO,CAAC,EAAG,EAAG,aAAa,EAC9CA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,UAAY,CAC1C,OAAO,KAAK,YAAa,EAAG,EAChC,CAAC,EACDA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,UAAY,CAC3C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,SAAU,CAAC,EAAG,EAAG,UAAY,CAC5C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,UAAW,CAAC,EAAG,EAAG,UAAY,CAC7C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,WAAY,CAAC,EAAG,EAAG,UAAY,CAC9C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,YAAa,CAAC,EAAG,EAAG,UAAY,CAC/C,OAAO,KAAK,YAAa,EAAG,GAChC,CAAC,EAIDsB,GAAa,cAAe,IAAI,EAIhCU,GAAgB,cAAe,EAAE,EAIjCqC,GAAc,IAAKV,GAAWR,EAAM,EACpCkB,GAAc,KAAMV,GAAWP,EAAM,EACrCiB,GAAc,MAAOV,GAAWN,EAAM,EAEtC,IAAIzqG,GAAOkjH,GACX,IAAKljH,GAAQ,OAAQA,GAAM,QAAU,EAAGA,IAAS,IAC7CyrG,GAAczrG,GAAOkrG,EAAa,EAGtC,SAASiY,IAAQ/iH,EAAOsT,EAAO,CAC3BA,EAAMm5F,EAAW,EAAIlD,IAAO,KAAOvpG,GAAS,GAAI,CACpD,CAEA,IAAKJ,GAAQ,IAAKA,GAAM,QAAU,EAAGA,IAAS,IAC1CmsG,GAAcnsG,GAAOmjH,GAAO,EAGhCD,GAAoBpZ,GAAW,eAAgB,EAAK,EAIpD1C,GAAe,IAAK,EAAG,EAAG,UAAU,EACpCA,GAAe,KAAM,EAAG,EAAG,UAAU,EAIrC,SAASgc,KAAc,CACnB,OAAO,KAAK,OAAS,MAAQ,EACjC,CAEA,SAASC,KAAc,CACnB,OAAO,KAAK,OAAS,6BAA+B,EACxD,CAEA,IAAI9tG,GAAQkwF,GAAO,UAEnBlwF,GAAM,IAAMsO,IACZtO,GAAM,SAAWmoG,IACjBnoG,GAAM,MAAQrS,IACdqS,GAAM,KAAO6F,IACb7F,GAAM,MAAQ2qG,IACd3qG,GAAM,OAAS45C,IACf55C,GAAM,KAAO0sB,IACb1sB,GAAM,QAAU6pG,IAChB7pG,GAAM,GAAKqe,IACXre,GAAM,MAAQ8pG,IACd9pG,GAAM,IAAM40F,IACZ50F,GAAM,UAAYkrG,IAClBlrG,GAAM,QAAUsoG,IAChBtoG,GAAM,SAAWwoG,IACjBxoG,GAAM,UAAYyoG,IAClBzoG,GAAM,OAAS6oG,IACf7oG,GAAM,cAAgB+oG,IACtB/oG,GAAM,eAAiBgpG,IACvBhpG,GAAM,QAAUgrG,IAChBhrG,GAAM,KAAOiJ,GACbjJ,GAAM,OAASkvF,GACflvF,GAAM,WAAas2F,GACnBt2F,GAAM,IAAM2jG,IACZ3jG,GAAM,IAAMyjG,IACZzjG,GAAM,aAAeirG,IACrBjrG,GAAM,IAAM60F,IACZ70F,GAAM,QAAUyqG,IAChBzqG,GAAM,SAAW8a,IACjB9a,GAAM,QAAUynD,IAChBznD,GAAM,SAAWmsB,IACjBnsB,GAAM,OAAS8qG,IACf9qG,GAAM,YAAcupG,IACpBvpG,GAAM,QAAU6iB,IACZ,OAAO,OAAW,KAAe,OAAO,KAAO,OAC/C7iB,GAAM,OAAO,IAAI,4BAA4B,CAAC,EAAI,UAAY,CAC1D,MAAO,UAAY,KAAK,OAAM,EAAK,GAC3C,GAEAA,GAAM,OAAS+qG,IACf/qG,GAAM,SAAWzB,IACjByB,GAAM,KAAO6qG,IACb7qG,GAAM,QAAU4qG,IAChB5qG,GAAM,aAAemrG,IACrBnrG,GAAM,QAAU+rG,IAChB/rG,GAAM,UAAYgsG,IAClBhsG,GAAM,QAAUisG,IAChBjsG,GAAM,QAAUksG,IAChBlsG,GAAM,KAAOm5F,GACbn5F,GAAM,WAAao5F,IACnBp5F,GAAM,SAAW2sG,IACjB3sG,GAAM,YAAc6sG,IACpB7sG,GAAM,QAAUA,GAAM,SAAWstG,IACjCttG,GAAM,MAAQy4F,GACdz4F,GAAM,YAAc04F,IACpB14F,GAAM,KAAOA,GAAM,MAAQ86F,IAC3B96F,GAAM,QAAUA,GAAM,SAAW+6F,IACjC/6F,GAAM,YAAcgtG,IACpBhtG,GAAM,gBAAkBktG,IACxBltG,GAAM,eAAiB8sG,IACvB9sG,GAAM,sBAAwB+sG,IAC9B/sG,GAAM,KAAOutG,GACbvtG,GAAM,IAAMA,GAAM,KAAOi8F,IACzBj8F,GAAM,QAAUm8F,IAChBn8F,GAAM,WAAao8F,IACnBp8F,GAAM,UAAYwtG,IAClBxtG,GAAM,KAAOA,GAAM,MAAQw9F,IAC3Bx9F,GAAM,OAASA,GAAM,QAAUytG,IAC/BztG,GAAM,OAASA,GAAM,QAAU0tG,IAC/B1tG,GAAM,YAAcA,GAAM,aAAe2tG,GACzC3tG,GAAM,UAAY4lG,IAClB5lG,GAAM,IAAMkmG,IACZlmG,GAAM,MAAQmmG,IACdnmG,GAAM,UAAYomG,IAClBpmG,GAAM,qBAAuBsmG,IAC7BtmG,GAAM,MAAQumG,IACdvmG,GAAM,QAAUymG,IAChBzmG,GAAM,YAAc0mG,IACpB1mG,GAAM,MAAQ2mG,GACd3mG,GAAM,MAAQ2mG,GACd3mG,GAAM,SAAW6tG,IACjB7tG,GAAM,SAAW8tG,IACjB9tG,GAAM,MAAQqwF,GACV,kDACAkd,EACJ,EACAvtG,GAAM,OAASqwF,GACX,mDACAoI,EACJ,EACAz4F,GAAM,MAAQqwF,GACV,iDACA8I,EACJ,EACAn5F,GAAM,KAAOqwF,GACT,2GACA4V,GACJ,EACAjmG,GAAM,aAAeqwF,GACjB,0GACAmW,GACJ,EAEA,SAASuH,IAAWljH,EAAO,CACvB,OAAOs3G,GAAYt3G,EAAQ,GAAI,CACnC,CAEA,SAASmjH,KAAe,CACpB,OAAO7L,GAAY,MAAM,KAAM,SAAS,EAAE,UAAS,CACvD,CAEA,SAAS8L,GAAmBnnH,EAAQ,CAChC,OAAOA,CACX,CAEA,IAAIonH,GAAUrd,GAAO,UAErBqd,GAAQ,SAAWnd,IACnBmd,GAAQ,eAAiB5b,IACzB4b,GAAQ,YAAcxb,IACtBwb,GAAQ,QAAUnc,IAClBmc,GAAQ,SAAWD,GACnBC,GAAQ,WAAaD,GACrBC,GAAQ,aAAepb,IACvBob,GAAQ,WAAajb,IACrBib,GAAQ,IAAMx2D,IACdw2D,GAAQ,KAAO1C,IACf0C,GAAQ,UAAYxC,IACpBwC,GAAQ,gBAAkBpC,IAC1BoC,GAAQ,cAAgB7B,IACxB6B,GAAQ,cAAgB/B,IACxB+B,GAAQ,gBAAkB5B,IAE1B4B,GAAQ,OAASjW,IACjBiW,GAAQ,YAAchW,IACtBgW,GAAQ,YAAc5V,IACtB4V,GAAQ,YAAcrV,IACtBqV,GAAQ,iBAAmBvV,IAC3BuV,GAAQ,KAAOxT,IACfwT,GAAQ,eAAiBrT,IACzBqT,GAAQ,eAAiBtT,IAEzBsT,GAAQ,SAAWxS,IACnBwS,GAAQ,YAAcrS,IACtBqS,GAAQ,cAAgBtS,IACxBsS,GAAQ,cAAgBlS,IAExBkS,GAAQ,cAAgB7R,IACxB6R,GAAQ,mBAAqB3R,IAC7B2R,GAAQ,iBAAmB1R,IAE3B0R,GAAQ,KAAO5Q,IACf4Q,GAAQ,SAAWzQ,IAEnB,SAAS0Q,GAAMv0D,EAAQzpD,EAAOg5E,EAAOh3D,EAAQ,CACzC,IAAI+8E,EAAS0P,GAAW,EACpB6K,EAAMxa,GAAW,EAAC,IAAI98E,EAAQhiB,CAAK,EACvC,OAAO++F,EAAO/lB,CAAK,EAAEsgC,EAAK7vD,CAAM,CACpC,CAEA,SAASw0D,GAAex0D,EAAQzpD,EAAOg5E,EAAO,CAQ1C,GAPIzR,GAAS9d,CAAM,IACfzpD,EAAQypD,EACRA,EAAS,QAGbA,EAASA,GAAU,GAEfzpD,GAAS,KACT,OAAOg+G,GAAMv0D,EAAQzpD,EAAOg5E,EAAO,OAAO,EAG9C,IAAIpiF,EACAksD,EAAM,GACV,IAAKlsD,EAAI,EAAGA,EAAI,GAAIA,IAChBksD,EAAIlsD,CAAC,EAAIonH,GAAMv0D,EAAQ7yD,EAAGoiF,EAAO,OAAO,EAE5C,OAAOl2B,CACX,CAUA,SAASo7D,GAAiBC,EAAc10D,EAAQzpD,EAAOg5E,EAAO,CACtD,OAAOmlC,GAAiB,WACpB52C,GAAS9d,CAAM,IACfzpD,EAAQypD,EACRA,EAAS,QAGbA,EAASA,GAAU,KAEnBA,EAAS00D,EACTn+G,EAAQypD,EACR00D,EAAe,GAEX52C,GAAS9d,CAAM,IACfzpD,EAAQypD,EACRA,EAAS,QAGbA,EAASA,GAAU,IAGvB,IAAIs1C,EAAS0P,GAAW,EACpB2P,EAAQD,EAAepf,EAAO,MAAM,IAAM,EAC1CnoG,EACAksD,EAAM,GAEV,GAAI9iD,GAAS,KACT,OAAOg+G,GAAMv0D,GAASzpD,EAAQo+G,GAAS,EAAGplC,EAAO,KAAK,EAG1D,IAAKpiF,EAAI,EAAGA,EAAI,EAAGA,IACfksD,EAAIlsD,CAAC,EAAIonH,GAAMv0D,GAAS7yD,EAAIwnH,GAAS,EAAGplC,EAAO,KAAK,EAExD,OAAOl2B,CACX,CAEA,SAASu7D,IAAW50D,EAAQzpD,EAAO,CAC/B,OAAOi+G,GAAex0D,EAAQzpD,EAAO,QAAQ,CACjD,CAEA,SAASs+G,IAAgB70D,EAAQzpD,EAAO,CACpC,OAAOi+G,GAAex0D,EAAQzpD,EAAO,aAAa,CACtD,CAEA,SAASu+G,IAAaJ,EAAc10D,EAAQzpD,EAAO,CAC/C,OAAOk+G,GAAiBC,EAAc10D,EAAQzpD,EAAO,UAAU,CACnE,CAEA,SAASw+G,IAAkBL,EAAc10D,EAAQzpD,EAAO,CACpD,OAAOk+G,GAAiBC,EAAc10D,EAAQzpD,EAAO,eAAe,CACxE,CAEA,SAASy+G,IAAgBN,EAAc10D,EAAQzpD,EAAO,CAClD,OAAOk+G,GAAiBC,EAAc10D,EAAQzpD,EAAO,aAAa,CACtE,CAEAwuG,GAAmB,KAAM,CACrB,KAAM,CACF,CACI,MAAO,aACP,MAAO,IACP,OAAQ,EACR,KAAM,cACN,OAAQ,KACR,KAAM,IACT,EACD,CACI,MAAO,aACP,MAAO,KACP,OAAQ,EACR,KAAM,gBACN,OAAQ,KACR,KAAM,IACT,CACJ,EACD,uBAAwB,uBACxB,QAAS,SAAUxN,EAAQ,CACvB,IAAI5uF,EAAI4uF,EAAS,GACb7vB,EACI8yB,GAAOjD,EAAS,IAAO,EAAE,IAAM,EACzB,KACA5uF,IAAM,EACN,KACAA,IAAM,EACN,KACAA,IAAM,EACN,KACA,KACd,OAAO4uF,EAAS7vB,CACnB,CACL,CAAC,EAIDpvD,GAAM,KAAOm+E,GACT,wDACAsO,EACJ,EACAzsF,GAAM,SAAWm+E,GACb,gEACAuO,EACJ,EAEA,IAAIiQ,GAAU,KAAK,IAEnB,SAAS/vC,KAAM,CACX,IAAIrtD,EAAO,KAAK,MAEhB,YAAK,cAAgBo9F,GAAQ,KAAK,aAAa,EAC/C,KAAK,MAAQA,GAAQ,KAAK,KAAK,EAC/B,KAAK,QAAUA,GAAQ,KAAK,OAAO,EAEnCp9F,EAAK,aAAeo9F,GAAQp9F,EAAK,YAAY,EAC7CA,EAAK,QAAUo9F,GAAQp9F,EAAK,OAAO,EACnCA,EAAK,QAAUo9F,GAAQp9F,EAAK,OAAO,EACnCA,EAAK,MAAQo9F,GAAQp9F,EAAK,KAAK,EAC/BA,EAAK,OAASo9F,GAAQp9F,EAAK,MAAM,EACjCA,EAAK,MAAQo9F,GAAQp9F,EAAK,KAAK,EAExB,IACX,CAEA,SAASq9F,GAAc3jF,EAAUtgC,EAAO3H,EAAOw+F,EAAW,CACtD,IAAIgiB,EAAQU,GAAev5G,EAAO3H,CAAK,EAEvC,OAAAioC,EAAS,eAAiBu2D,EAAYgiB,EAAM,cAC5Cv4E,EAAS,OAASu2D,EAAYgiB,EAAM,MACpCv4E,EAAS,SAAWu2D,EAAYgiB,EAAM,QAE/Bv4E,EAAS,SACpB,CAGA,SAAS4jF,IAAMlkH,EAAO3H,EAAO,CACzB,OAAO4rH,GAAc,KAAMjkH,EAAO3H,EAAO,CAAC,CAC9C,CAGA,SAAS8rH,IAAWnkH,EAAO3H,EAAO,CAC9B,OAAO4rH,GAAc,KAAMjkH,EAAO3H,EAAO,EAAE,CAC/C,CAEA,SAAS+rH,GAAQ9d,EAAQ,CACrB,OAAIA,EAAS,EACF,KAAK,MAAMA,CAAM,EAEjB,KAAK,KAAKA,CAAM,CAE/B,CAEA,SAAS+d,KAAS,CACd,IAAItK,EAAe,KAAK,cACpBF,EAAO,KAAK,MACZF,EAAS,KAAK,QACd/yF,EAAO,KAAK,MACZkzF,EACAhH,EACAD,EACA4G,EACA6K,EAIJ,OAESvK,GAAgB,GAAKF,GAAQ,GAAKF,GAAU,GAC5CI,GAAgB,GAAKF,GAAQ,GAAKF,GAAU,IAGjDI,GAAgBqK,GAAQG,GAAa5K,CAAM,EAAIE,CAAI,EAAI,MACvDA,EAAO,EACPF,EAAS,GAKb/yF,EAAK,aAAemzF,EAAe,IAEnCD,EAAUxQ,GAASyQ,EAAe,GAAI,EACtCnzF,EAAK,QAAUkzF,EAAU,GAEzBhH,EAAUxJ,GAASwQ,EAAU,EAAE,EAC/BlzF,EAAK,QAAUksF,EAAU,GAEzBD,EAAQvJ,GAASwJ,EAAU,EAAE,EAC7BlsF,EAAK,MAAQisF,EAAQ,GAErBgH,GAAQvQ,GAASuJ,EAAQ,EAAE,EAG3ByR,EAAiBhb,GAASkb,GAAa3K,CAAI,CAAC,EAC5CF,GAAU2K,EACVzK,GAAQuK,GAAQG,GAAaD,CAAc,CAAC,EAG5C7K,EAAQnQ,GAASqQ,EAAS,EAAE,EAC5BA,GAAU,GAEV/yF,EAAK,KAAOizF,EACZjzF,EAAK,OAAS+yF,EACd/yF,EAAK,MAAQ6yF,EAEN,IACX,CAEA,SAAS+K,GAAa3K,EAAM,CAGxB,OAAQA,EAAO,KAAQ,MAC3B,CAEA,SAAS0K,GAAa5K,EAAQ,CAE1B,OAAQA,EAAS,OAAU,IAC/B,CAEA,SAAS8K,IAAG/b,EAAO,CACf,GAAI,CAAC,KAAK,UACN,MAAO,KAEX,IAAImR,EACAF,EACAI,EAAe,KAAK,cAIxB,GAFArR,EAAQD,GAAeC,CAAK,EAExBA,IAAU,SAAWA,IAAU,WAAaA,IAAU,OAGtD,OAFAmR,EAAO,KAAK,MAAQE,EAAe,MACnCJ,EAAS,KAAK,QAAU6K,GAAa3K,CAAI,EACjCnR,EAAK,CACT,IAAK,QACD,OAAOiR,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,EACvB,KAID,QADAE,EAAO,KAAK,MAAQ,KAAK,MAAM0K,GAAa,KAAK,OAAO,CAAC,EACjD7b,EAAK,CACT,IAAK,OACD,OAAOmR,EAAO,EAAIE,EAAe,OACrC,IAAK,MACD,OAAOF,EAAOE,EAAe,MACjC,IAAK,OACD,OAAOF,EAAO,GAAKE,EAAe,KACtC,IAAK,SACD,OAAOF,EAAO,KAAOE,EAAe,IACxC,IAAK,SACD,OAAOF,EAAO,MAAQE,EAAe,IAEzC,IAAK,cACD,OAAO,KAAK,MAAMF,EAAO,KAAK,EAAIE,EACtC,QACI,MAAM,IAAI,MAAM,gBAAkBrR,CAAK,CAC9C,CAET,CAGA,SAASgc,KAAY,CACjB,OAAK,KAAK,UAIN,KAAK,cACL,KAAK,MAAQ,MACZ,KAAK,QAAU,GAAM,OACtBnb,GAAM,KAAK,QAAU,EAAE,EAAI,QANpB,GAQf,CAEA,SAASob,GAAOC,EAAO,CACnB,OAAO,UAAY,CACf,OAAO,KAAK,GAAGA,CAAK,CAC5B,CACA,CAEA,IAAIC,IAAiBF,GAAO,IAAI,EAC5BG,IAAYH,GAAO,GAAG,EACtBI,IAAYJ,GAAO,GAAG,EACtBK,IAAUL,GAAO,GAAG,EACpBM,IAASN,GAAO,GAAG,EACnBO,IAAUP,GAAO,GAAG,EACpBQ,IAAWR,GAAO,GAAG,EACrBS,IAAaT,GAAO,GAAG,EACvBU,IAAUV,GAAO,GAAG,EAExB,SAASW,KAAU,CACf,OAAO/L,GAAe,IAAI,CAC9B,CAEA,SAASgM,IAAM7c,EAAO,CAClB,OAAAA,EAAQD,GAAeC,CAAK,EACrB,KAAK,UAAY,KAAKA,EAAQ,GAAG,EAAG,EAAG,GAClD,CAEA,SAAS8c,GAAW7tH,EAAM,CACtB,OAAO,UAAY,CACf,OAAO,KAAK,UAAY,KAAK,MAAMA,CAAI,EAAI,GACnD,CACA,CAEA,IAAIoiH,IAAeyL,GAAW,cAAc,EACxC1L,IAAU0L,GAAW,SAAS,EAC9B1S,IAAU0S,GAAW,SAAS,EAC9B3S,IAAQ2S,GAAW,OAAO,EAC1B3L,IAAO2L,GAAW,MAAM,EACxB7L,IAAS6L,GAAW,QAAQ,EAC5B/L,IAAQ+L,GAAW,OAAO,EAE9B,SAAS5L,KAAQ,CACb,OAAOtQ,GAAS,KAAK,KAAM,EAAG,CAAC,CACnC,CAEA,IAAImc,GAAQ,KAAK,MACbC,GAAa,CACT,GAAI,GACJ,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,KACH,EAAG,EACX,EAGA,SAASC,IAAkB1pH,EAAQqqG,EAAQ4B,EAAeC,EAAU9D,EAAQ,CACxE,OAAOA,EAAO,aAAaiC,GAAU,EAAG,CAAC,CAAC4B,EAAejsG,EAAQksG,CAAQ,CAC7E,CAEA,SAASyd,IAAeC,EAAgB3d,EAAewd,EAAYrhB,EAAQ,CACvE,IAAI/jE,EAAWi5E,GAAesM,CAAc,EAAE,IAAK,EAC/C/L,EAAU2L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAChCwyE,EAAU2S,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAChCuyE,EAAQ4S,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC9Bu5E,EAAO4L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC7Bq5E,EAAS8L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC/Bs5E,EAAQ6L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC9Bm5E,EAAQgM,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC9B7oB,EACKqiG,GAAW4L,EAAW,IAAM,CAAC,IAAK5L,CAAO,GACzCA,EAAU4L,EAAW,GAAK,CAAC,KAAM5L,CAAO,GACxChH,GAAW,GAAK,CAAC,GAAG,GACpBA,EAAU4S,EAAW,GAAK,CAAC,KAAM5S,CAAO,GACxCD,GAAS,GAAK,CAAC,GAAG,GAClBA,EAAQ6S,EAAW,GAAK,CAAC,KAAM7S,CAAK,GACpCgH,GAAQ,GAAK,CAAC,GAAG,GACjBA,EAAO6L,EAAW,GAAK,CAAC,KAAM7L,CAAI,EAE3C,OAAI6L,EAAW,GAAK,OAChBjuG,EACIA,GACCmiG,GAAS,GAAK,CAAC,GAAG,GAClBA,EAAQ8L,EAAW,GAAK,CAAC,KAAM9L,CAAK,GAE7CniG,EAAIA,GACCkiG,GAAU,GAAK,CAAC,GAAG,GACnBA,EAAS+L,EAAW,GAAK,CAAC,KAAM/L,CAAM,GACtCF,GAAS,GAAK,CAAC,GAAG,GAAM,CAAC,KAAMA,CAAK,EAEzChiG,EAAE,CAAC,EAAIywF,EACPzwF,EAAE,CAAC,EAAI,CAACouG,EAAiB,EACzBpuG,EAAE,CAAC,EAAI4sF,EACAshB,IAAkB,MAAM,KAAMluG,CAAC,CAC1C,CAGA,SAASquG,IAA2BC,EAAkB,CAClD,OAAIA,IAAqB,OACdN,GAEP,OAAOM,GAAqB,YAC5BN,GAAQM,EACD,IAEJ,EACX,CAGA,SAASC,IAA4BC,EAAWC,EAAO,CACnD,OAAIR,GAAWO,CAAS,IAAM,OACnB,GAEPC,IAAU,OACHR,GAAWO,CAAS,GAE/BP,GAAWO,CAAS,EAAIC,EACpBD,IAAc,MACdP,GAAW,GAAKQ,EAAQ,GAErB,GACX,CAEA,SAASC,IAASC,EAAeC,EAAe,CAC5C,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAIC,EAAa,GACb5qE,EAAKgqE,GACLrhB,EACA5tB,EAEJ,OAAI,OAAO2vC,GAAkB,WACzBC,EAAgBD,EAChBA,EAAgB,IAEhB,OAAOA,GAAkB,YACzBE,EAAaF,GAEb,OAAOC,GAAkB,WACzB3qE,EAAK,OAAO,OAAO,CAAE,EAAEgqE,GAAYW,CAAa,EAC5CA,EAAc,GAAK,MAAQA,EAAc,IAAM,OAC/C3qE,EAAG,GAAK2qE,EAAc,EAAI,IAIlChiB,EAAS,KAAK,aACd5tB,EAASmvC,IAAe,KAAM,CAACU,EAAY5qE,EAAI2oD,CAAM,EAEjDiiB,IACA7vC,EAAS4tB,EAAO,WAAW,CAAC,KAAM5tB,CAAM,GAGrC4tB,EAAO,WAAW5tB,CAAM,CACnC,CAEA,IAAI8vC,GAAQ,KAAK,IAEjB,SAAS5f,GAAKvlG,EAAG,CACb,OAAQA,EAAI,IAAMA,EAAI,IAAM,CAACA,CACjC,CAEA,SAASolH,IAAgB,CAQrB,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAI1M,EAAUyM,GAAM,KAAK,aAAa,EAAI,IACtC1M,EAAO0M,GAAM,KAAK,KAAK,EACvB5M,EAAS4M,GAAM,KAAK,OAAO,EAC3BzT,EACAD,EACA4G,EACAnoG,EACAm1G,EAAQ,KAAK,UAAW,EACxBC,EACAC,EACAC,EACAC,EAEJ,OAAKJ,GAOL3T,EAAUxJ,GAASwQ,EAAU,EAAE,EAC/BjH,EAAQvJ,GAASwJ,EAAU,EAAE,EAC7BgH,GAAW,GACXhH,GAAW,GAGX2G,EAAQnQ,GAASqQ,EAAS,EAAE,EAC5BA,GAAU,GAGVroG,EAAIwoG,EAAUA,EAAQ,QAAQ,CAAC,EAAE,QAAQ,SAAU,EAAE,EAAI,GAEzD4M,EAAYD,EAAQ,EAAI,IAAM,GAC9BE,EAAShgB,GAAK,KAAK,OAAO,IAAMA,GAAK8f,CAAK,EAAI,IAAM,GACpDG,EAAWjgB,GAAK,KAAK,KAAK,IAAMA,GAAK8f,CAAK,EAAI,IAAM,GACpDI,EAAUlgB,GAAK,KAAK,aAAa,IAAMA,GAAK8f,CAAK,EAAI,IAAM,GAGvDC,EACA,KACCjN,EAAQkN,EAASlN,EAAQ,IAAM,KAC/BE,EAASgN,EAAShN,EAAS,IAAM,KACjCE,EAAO+M,EAAW/M,EAAO,IAAM,KAC/BhH,GAASC,GAAWgH,EAAU,IAAM,KACpCjH,EAAQgU,EAAUhU,EAAQ,IAAM,KAChCC,EAAU+T,EAAU/T,EAAU,IAAM,KACpCgH,EAAU+M,EAAUv1G,EAAI,IAAM,KA9BxB,KAgCf,CAEA,IAAIw1G,GAAUtN,GAAS,UAEvBsN,GAAQ,QAAUzN,IAClByN,GAAQ,IAAM7yC,IACd6yC,GAAQ,IAAM5C,IACd4C,GAAQ,SAAW3C,IACnB2C,GAAQ,GAAKrC,IACbqC,GAAQ,eAAiBjC,IACzBiC,GAAQ,UAAYhC,IACpBgC,GAAQ,UAAY/B,IACpB+B,GAAQ,QAAU9B,IAClB8B,GAAQ,OAAS7B,IACjB6B,GAAQ,QAAU5B,IAClB4B,GAAQ,SAAW3B,IACnB2B,GAAQ,WAAa1B,IACrB0B,GAAQ,QAAUzB,IAClByB,GAAQ,QAAUpC,IAClBoC,GAAQ,QAAUzC,IAClByC,GAAQ,MAAQxB,IAChBwB,GAAQ,IAAMvB,IACduB,GAAQ,aAAe/M,IACvB+M,GAAQ,QAAUhN,IAClBgN,GAAQ,QAAUhU,IAClBgU,GAAQ,MAAQjU,IAChBiU,GAAQ,KAAOjN,IACfiN,GAAQ,MAAQlN,IAChBkN,GAAQ,OAASnN,IACjBmN,GAAQ,MAAQrN,IAChBqN,GAAQ,SAAWX,IACnBW,GAAQ,YAAcN,GACtBM,GAAQ,SAAWN,GACnBM,GAAQ,OAASN,GACjBM,GAAQ,OAASziB,GACjByiB,GAAQ,WAAarb,GAErBqb,GAAQ,YAActhB,GAClB,sFACAghB,EACJ,EACAM,GAAQ,KAAO1oG,GAIf4oF,GAAe,IAAK,EAAG,EAAG,MAAM,EAChCA,GAAe,IAAK,EAAG,EAAG,SAAS,EAInCqE,GAAc,IAAKN,EAAW,EAC9BM,GAAc,IAAKH,GAAc,EACjCa,GAAc,IAAK,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK,WAAW3uE,CAAK,EAAI,GAAI,CACjD,CAAC,EACD+rG,GAAc,IAAK,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK46B,GAAMvpG,CAAK,CAAC,CACrC,CAAC,EAED;AAEAqnB,GAAM,QAAU,SAEhB08E,IAAgBuT,EAAW,EAE3BjwF,GAAM,GAAKlS,GACXkS,GAAM,IAAM4hC,IACZ5hC,GAAM,IAAMkO,IACZlO,GAAM,IAAM++E,IACZ/+E,GAAM,IAAM+8E,GACZ/8E,GAAM,KAAO67F,IACb77F,GAAM,OAASs8F,IACft8F,GAAM,OAAS0lD,GACf1lD,GAAM,OAASysF,GACfzsF,GAAM,QAAU29E,GAChB39E,GAAM,SAAWkyF,GACjBlyF,GAAM,SAAWi+E,GACjBj+E,GAAM,SAAWw8F,IACjBx8F,GAAM,UAAY87F,IAClB97F,GAAM,WAAa0sF,GACnB1sF,GAAM,WAAa2yF,GACnB3yF,GAAM,YAAcu8F,IACpBv8F,GAAM,YAAc08F,IACpB18F,GAAM,aAAe2sF,GACrB3sF,GAAM,aAAe4sF,IACrB5sF,GAAM,QAAU8sF,IAChB9sF,GAAM,cAAgBy8F,IACtBz8F,GAAM,eAAiBohF,GACvBphF,GAAM,qBAAuBy+F,IAC7Bz+F,GAAM,sBAAwB2+F,IAC9B3+F,GAAM,eAAiB+1F,IACvB/1F,GAAM,UAAYlS,GAGlBkS,GAAM,UAAY,CACd,eAAgB,mBAChB,uBAAwB,sBACxB,kBAAmB,0BACnB,KAAM,aACN,KAAM,QACN,aAAc,WACd,QAAS,eACT,KAAM,aACN,MAAO,SACX,kHCviLM0/F,GAAcrY,GAASsY,GAAOtY,CAAI,EAAE,OAAO,iBAAiB,EAElEuY,IAAe,CAAC,CAAE,WAAAC,EAAY,cAAAC,KAAoB,CAChD,GAAI,CAACD,EAAmB,YAExB,KAAM,CAAE,UAAAE,EAAW,QAAAC,EAAS,MAAAxpF,CAAA,EAAUqpF,EAElC,IAAAzyG,EAAU,GAAGsyG,GAAWK,CAAS,CAAC,MAAML,GAAWM,CAAO,CAAC,GAC/D,OAAKL,GAAOI,CAAS,EAAE,OAAOC,CAAO,IAAc5yG,EAAA,GAAGsyG,GAAWK,CAAS,CAAC,IAGzEvqC,EAAC,UAAO,KAAK,SAAS,UAAU,gDAAgD,QAASsqC,EACtF,SACH1yG,CAAA,EAEJ,ECXO,IAAI6yG,IACV,SAAUA,EAAI,CAEXA,EAAG,eAAoB,kBAEvBA,EAAG,WAAgB,cAEnBA,EAAG,KAAU,OAEbA,EAAG,QAAa,UAKhBA,EAAG,IAAS,MAEZA,EAAG,UAAe,aAElBA,EAAG,aAAkB,gBAErBA,EAAG,UAAe,YAElBA,EAAG,SAAc,WAEjBA,EAAG,aAAkB,gBAErBA,EAAG,OAAY,SAEfA,EAAG,UAAe,aAElBA,EAAG,aAAkB,gBAErBA,EAAG,eAAoB,kBAEvBA,EAAG,MAAW,QAEdA,EAAG,OAAY,SAEfA,EAAG,IAAS,MAEZA,EAAG,KAAU,OAEbA,EAAG,MAAW,QAEdA,EAAG,QAAa,UAEhBA,EAAG,SAAc,WAEjBA,EAAG,WAAgB,cAEnBA,EAAG,iBAAsB,qBAEzBA,EAAG,cAAmB,gBAC1B,GAAGA,KAAOA,GAAK,CAAE,EAAC,EAEX,IAAIC,IACV,SAAUA,EAAS,CAEhBA,EAAQ,SAAc,WAEtBA,EAAQ,OAAY,SAEpBA,EAAQ,QAAa,UAErBA,EAAQ,QAAa,UAErBA,EAAQ,MAAW,OACvB,GAAGA,KAAYA,GAAU,CAAE,EAAC,EAKrB,IAAIC,IACV,SAAUA,EAAgB,CAEvBA,EAAe,UAAe,YAE9BA,EAAe,aAAkB,eAEjCA,EAAe,YAAiB,cAEhCA,EAAe,SAAc,UACjC,GAAGA,KAAmBA,GAAiB,GAAG,ECxFnC,SAASC,IAA0BC,EAAWzyF,EAAY0yF,EAAsB,GAAI,CAevF,OAd2B,OAAO,QAAQD,CAAS,EAC9C,OAAO,CAAC,CAAG,CAAA/yD,CAAM,IAAMA,IAAW,EAAI,EACtC,OAAO,CAACsqB,EAAe,CAACj1E,CAAG,KACxB29G,EAAoB39G,CAAG,EACvBi1E,EAAc,KAAK0oC,EAAoB39G,CAAG,CAAC,EAEtCirB,EAAWsyF,GAAQv9G,CAAG,CAAC,EAC5Bi1E,EAAc,KAAKhqD,EAAWsyF,GAAQv9G,CAAG,CAAC,CAAC,EAEtCirB,EAAWuyF,GAAex9G,CAAG,CAAC,GACnCi1E,EAAc,KAAKhqD,EAAWuyF,GAAex9G,CAAG,CAAC,CAAC,EAE/Ci1E,GACR,CAAChqD,EAAWqyF,GAAG,GAAG,CAAC,CAAC,CAE3B,CCVO,SAAS9yD,IAAO/oC,EAAO,CAC1B,OAAOwnC,GAAM,cAAc,SAAU,CAAE,GAAGxnC,CAAO,EACrD,CCFO,SAASm8F,IAAQn8F,EAAO,CAC3B,KAAM,CAAE,KAAA1hB,EAAO,GAAI,YAAA89G,EAAc,OAAQ,UAAA/rG,CAAW,EAAG2P,EACvD,OAAQwnC,GAAM,cAAc,MAAO,CAAE,UAAWn3C,EAAW,MAAO/R,EAAM,OAAQA,EAAM,QAAS,WAAa,EACxG89G,IAAgB,MAAS50D,GAAM,cAAc,UAAW,CAAE,OAAQ,qDAAqD,CAAE,EACzH40D,IAAgB,QAAW50D,GAAM,cAAc,UAAW,CAAE,OAAQ,kDAAkD,CAAE,EACxH40D,IAAgB,QAAW50D,GAAM,cAAc,UAAW,CAAE,OAAQ,uEAAuE,CAAE,EAC7I40D,IAAgB,SAAY50D,GAAM,cAAc,UAAW,CAAE,OAAQ,+EAAgF,CAAE,CAC/J,CCPO,SAAS60D,IAAar8F,EAAO,CAChC,OAAOwnC,GAAM,cAAc,OAAQ,CAAE,GAAGxnC,CAAO,EACnD,CCEO,SAASs8F,IAAIt8F,EAAO,CACvB,KAAM,CAAE,IAAA4lF,EAAK,UAAAqW,EAAW,GAAGM,CAAO,EAAKv8F,EACvC,OAAOwnC,GAAM,cAAc,KAAM,CAAE,GAAG+0D,CAAS,EACnD,CCJO,SAASC,IAAUx8F,EAAO,CAC7B,KAAM,CAAE,IAAA4lF,EAAK,UAAAqW,EAAW,GAAGQ,CAAW,EAAKz8F,EACrCy5C,EAAMjS,GAAM,OAAO,IAAI,EAC7BA,UAAM,UAAU,IAAM,OACdy0D,EAAU,WACVnvH,EAAA2sE,EAAI,UAAJ,MAAA3sE,EAAa,QACzB,EAAO,CAACmvH,EAAU,OAAO,CAAC,EACfz0D,GAAM,cAAc,SAAU,CAAE,IAAKiS,EAAK,GAAGgjD,CAAW,CAAE,CACrE,CCVO,SAASC,IAAS18F,EAAO,CAC5B,KAAM,CAAE,QAAA/pB,EAAS,UAAAoa,EAAW,WAAA4tE,EAAY,WAAAz0D,EAAY,GAAGyzD,CAAa,EAAGj9D,EACjE28F,EAAiB,CAACnzF,EAAWqyF,GAAG,QAAQ,EAAGxrG,CAAS,EAAE,KAAK,GAAG,EAC9DusG,EAAiB3mH,GAAA,YAAAA,EAAS,KAAK,CAAC,CAAE,MAAArJ,CAAK,IAAOA,IAAUqwF,EAAY,OAC1E,OAAQz1B,GAAM,cAAc,OAAQ,CAAE,gBAAiBy1B,EAAY,SAAU,UAAWzzD,EAAWqyF,GAAG,YAAY,CAAG,EACjHr0D,GAAM,cAAcy2B,EAAW,OAAQ,CAAE,UAAW0+B,EAAgB,GAAG1/B,CAAW,EAAIhnF,GAAA,YAAAA,EAAS,IAAI,CAAC,CAAE,MAAArJ,EAAO,MAAA06D,EAAO,SAAA33C,KAAgB63C,GAAM,cAAcy2B,EAAW,OAAQ,CAAE,IAAKrxF,EAAO,MAAOA,EAAO,SAAU+iB,CAAU,EAAE23C,CAAK,EAAG,EACrOE,GAAM,cAAc,OAAQ,CAAE,UAAWh+B,EAAWqyF,GAAG,YAAY,EAAG,cAAe,EAAM,EACvFe,GAAA,YAAAA,EAAgB,MAChBp1D,GAAM,cAAcy2B,EAAW,QAAS,CAAE,YAAa,OAAQ,KAAM,GAAI,UAAWz0D,EAAWqyF,GAAG,OAAO,CAAC,CAAE,CAAC,CAAC,CAC1H,CCVO,SAASgB,IAAY78F,EAAO,CAC/B,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGxnC,CAAO,EAClD,CCFO,SAAS+7C,IAAO/7C,EAAO,CAC1B,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGxnC,CAAO,EAClD,CCDO,SAAS88F,IAAM98F,EAAO,CACzB,KAAM,CAAE,cAAA+8F,EAAe,aAAAC,EAAc,GAAGC,CAAQ,EAAKj9F,EACrD,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGy1D,GAAYj9F,EAAM,QAAQ,CACrE,CCJO,SAASk9F,IAAal9F,EAAO,CAChC,KAAM,CAAE,cAAA+8F,EAAe,aAAAC,EAAc,GAAGC,CAAQ,EAAKj9F,EACrD,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGy1D,CAAU,EACrD,CCHO,SAASE,IAAUn9F,EAAO,CAC7B,OAAOwnC,GAAM,cAAc,QAAS,CAAE,GAAGxnC,CAAO,EACpD,CCFO,SAASo9F,IAAOp9F,EAAO,CAC1B,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGxnC,CAAO,EAClD,CCFO,SAASq9F,IAAIr9F,EAAO,CACvB,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGxnC,CAAO,EAClD,CCFO,SAASy+D,IAAOz+D,EAAO,CAC1B,OAAOwnC,GAAM,cAAc,SAAU,CAAE,GAAGxnC,CAAO,EACrD,CCFO,SAASs9F,IAAKt9F,EAAO,CACxB,OAAOwnC,GAAM,cAAc,MAAO,CAAE,GAAGxnC,CAAO,EAClD,CCFO,SAASwpE,IAAOxpE,EAAO,CAC1B,OAAOwnC,GAAM,cAAc,SAAU,CAAE,GAAGxnC,CAAO,EACrD,CCFO,SAASu9F,IAAMv9F,EAAO,CACzB,OAAOwnC,GAAM,cAAc,QAAS,CAAE,GAAGxnC,CAAO,EACpD,CCFO,SAASw9F,IAAKx9F,EAAO,CACxB,KAAM,CAAE,KAAAyjF,EAAM,GAAGga,CAAO,EAAKz9F,EAC7B,OAAOwnC,GAAM,cAAc,KAAM,CAAE,GAAGi2D,CAAS,EACnD,CCHO,SAASC,IAAQ19F,EAAO,CAC3B,OAAOwnC,GAAM,cAAc,KAAM,CAAE,GAAGxnC,CAAO,EACjD,CCFO,SAAS29F,IAAS39F,EAAO,CAC5B,OAAQwnC,GAAM,cAAc,QAAS,KACjCA,GAAM,cAAc,KAAM,CAAE,GAAGxnC,CAAK,CAAE,CAAC,CAC/C,CCHO,SAAS49F,IAAW59F,EAAO,CAC9B,KAAM,CAAE,KAAAyjF,EAAM,GAAG8Y,CAAO,EAAKv8F,EAC7B,OAAOwnC,GAAM,cAAc,KAAM,CAAE,GAAG+0D,CAAS,EACnD,CCHO,SAASsB,IAAiB79F,EAAO,CACpC,OAAOwnC,GAAM,cAAc,KAAM,CAAE,GAAGxnC,CAAO,EACjD,uXCRO,SAAS89F,IAAcC,EAAkB,CAC5C,MAAO,CACH,GAAG9/B,IACH,GAAG8/B,CACX,CACA,CCLO,SAASC,IAAkBh+F,EAAO,CACrC,MAAMi+F,EAAiB,CACnB,YAAaj+F,EAAM,MAAQ,OAC3B,gBAAiB,aAAcA,EAAQA,EAAM,SAAW,OACxD,uBAAyBA,EAAM,gBAAkBA,EAAM,eAAiB,GAAM,OAC9E,oBAAqBA,EAAM,gBAAkB,MACrD,EACI,cAAO,QAAQA,CAAK,EAAE,QAAQ,CAAC,CAACzhB,EAAKoK,CAAG,IAAM,CACtCpK,EAAI,WAAW,OAAO,IACtB0/G,EAAe1/G,CAAG,EAAIoK,EAElC,CAAK,EACMs1G,CACX,CCkBO,SAASzJ,GAAO3kG,EAAU,CAC/B,MAAMquG,EAAS,OAAO,UAAU,SAAS,KAAKruG,CAAQ,EAGtD,OACEA,aAAoB,MACnB,OAAOA,GAAa,UAAYquG,IAAW,gBAGrC,IAAIruG,EAAS,YAAY,CAACA,CAAQ,EAEzC,OAAOA,GAAa,UACpBquG,IAAW,mBACX,OAAOruG,GAAa,UACpBquG,IAAW,kBAGJ,IAAI,KAAKruG,CAAQ,EAGjB,IAAI,KAAK,GAAG,CAEvB,CCxBO,SAASsuG,GAAclb,EAAMr2G,EAAO,CACzC,OAAIq2G,aAAgB,KACX,IAAIA,EAAK,YAAYr2G,CAAK,EAE1B,IAAI,KAAKA,CAAK,CAEzB,CCbO,SAASwxH,GAAQnb,EAAMob,EAAQ,CACpC,MAAMC,EAAQ9J,GAAOvR,CAAI,EACzB,OAAI,MAAMob,CAAM,EAAUF,GAAclb,EAAM,GAAG,GAC5Cob,GAILC,EAAM,QAAQA,EAAM,QAAS,EAAGD,CAAM,EAC/BC,EACT,CCLO,SAASC,GAAUtb,EAAMob,EAAQ,CACtC,MAAMC,EAAQ9J,GAAOvR,CAAI,EACzB,GAAI,MAAMob,CAAM,EAAG,OAAOF,GAAclb,EAAM,GAAG,EACjD,GAAI,CAACob,EAEH,OAAOC,EAET,MAAMpc,EAAaoc,EAAM,UAUnBE,EAAoBL,GAAclb,EAAMqb,EAAM,QAAS,GAC7DE,EAAkB,SAASF,EAAM,SAAU,EAAGD,EAAS,EAAG,CAAC,EAC3D,MAAMhgB,EAAcmgB,EAAkB,UACtC,OAAItc,GAAc7D,EAGTmgB,GASPF,EAAM,YACJE,EAAkB,YAAa,EAC/BA,EAAkB,SAAU,EAC5Btc,CACN,EACWoc,EAEX,CC5CO,SAASG,IAASxb,EAAMob,EAAQ,CACrC,MAAMjQ,EAAOiQ,EAAS,EACtB,OAAOD,GAAQnb,EAAMmL,CAAI,CAC3B,CCHO,SAASsQ,IAASzb,EAAMob,EAAQ,CACrC,OAAOE,GAAUtb,EAAMob,EAAS,EAAE,CACpC,CCoDO,MAAMM,GAAqB,OAOrBC,IAAoB,MC7D1B,SAASC,GAAW5b,EAAM,CAC/B,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACzB,OAAAqb,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCbO,SAASQ,GAAgC7b,EAAM,CACpD,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACnB8b,EAAU,IAAI,KAClB,KAAK,IACHT,EAAM,YAAa,EACnBA,EAAM,SAAU,EAChBA,EAAM,QAAS,EACfA,EAAM,SAAU,EAChBA,EAAM,WAAY,EAClBA,EAAM,WAAY,EAClBA,EAAM,gBAAiB,CACxB,CACL,EACE,OAAAS,EAAQ,eAAeT,EAAM,YAAa,GACnC,CAACrb,EAAO,CAAC8b,CAClB,CCQO,SAASC,GAAyBC,EAAUC,EAAW,CAC5D,MAAMC,EAAiBN,GAAWI,CAAQ,EACpCG,EAAkBP,GAAWK,CAAS,EAEtCG,EACJ,CAACF,EAAiBL,GAAgCK,CAAc,EAC5DG,EACJ,CAACF,EAAkBN,GAAgCM,CAAe,EAKpE,OAAO,KAAK,OAAOC,EAAgBC,GAAkBV,GAAiB,CACxE,CCxBO,SAASW,IAA2BN,EAAUC,EAAW,CAC9D,MAAMM,EAAYhL,GAAOyK,CAAQ,EAC3BQ,EAAajL,GAAO0K,CAAS,EAE7BQ,EAAWF,EAAU,YAAa,EAAGC,EAAW,YAAW,EAC3D5M,EAAY2M,EAAU,SAAU,EAAGC,EAAW,SAAQ,EAE5D,OAAOC,EAAW,GAAK7M,CACzB,CCjCA,IAAIz4G,IAAiB,GAEd,SAASulH,IAAoB,CAClC,OAAOvlH,GACT,CC6BO,SAASwlH,GAAU3c,EAAMhtG,EAAS,aACvC,MAAMmE,EAAiBulH,KACjBE,GACJ5pH,GAAA,YAAAA,EAAS,iBACTlJ,GAAAD,EAAAmJ,GAAA,YAAAA,EAAS,SAAT,YAAAnJ,EAAiB,UAAjB,YAAAC,EAA0B,eAC1BqN,EAAe,gBACf+5F,GAAAD,EAAA95F,EAAe,SAAf,YAAA85F,EAAuB,UAAvB,YAAAC,EAAgC,eAChC,EAEImqB,EAAQ9J,GAAOvR,CAAI,EACnB2C,EAAM0Y,EAAM,SACZ/uG,GAAQq2F,EAAMia,EAAe,GAAK,GAAK,GAAKja,EAAMia,GAExD,OAAAvB,EAAM,QAAQA,EAAM,QAAS,EAAG/uG,CAAI,EACpC+uG,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCzBO,SAASwB,IAAa7c,EAAM,CACjC,OAAO2c,GAAU3c,EAAM,CAAE,aAAc,CAAG,EAC5C,CCJO,SAAS8c,IAAW9c,EAAM,CAC/B,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACnB7B,EAAQkd,EAAM,WACpB,OAAAA,EAAM,YAAYA,EAAM,YAAa,EAAEld,EAAQ,EAAG,CAAC,EACnDkd,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCNO,SAAS0B,IAAU/c,EAAM,CAC9B,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACnBrF,EAAO0gB,EAAM,cACnB,OAAAA,EAAM,YAAY1gB,EAAO,EAAG,EAAG,CAAC,EAChC0gB,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CC5BA,MAAM2B,IAAuB,CAC3B,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACR,EAED,SAAU,CACR,IAAK,WACL,MAAO,mBACR,EAED,YAAa,gBAEb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACR,EAED,SAAU,CACR,IAAK,WACL,MAAO,mBACR,EAED,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EAED,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EAED,MAAO,CACL,IAAK,QACL,MAAO,gBACR,EAED,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EAED,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EAED,aAAc,CACZ,IAAK,gBACL,MAAO,wBACR,EAED,QAAS,CACP,IAAK,UACL,MAAO,kBACR,EAED,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EAED,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EAED,WAAY,CACV,IAAK,cACL,MAAO,sBACR,EAED,aAAc,CACZ,IAAK,gBACL,MAAO,wBACR,CACH,EAEaC,IAAiB,CAAC/rH,EAAO2nB,EAAO7lB,IAAY,CACvD,IAAI1F,EAEJ,MAAM4vH,EAAaF,IAAqB9rH,CAAK,EAS7C,OARI,OAAOgsH,GAAe,SACxB5vH,EAAS4vH,EACArkG,IAAU,EACnBvrB,EAAS4vH,EAAW,IAEpB5vH,EAAS4vH,EAAW,MAAM,QAAQ,YAAarkG,EAAM,SAAQ,CAAE,EAG7D7lB,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQ1F,EAERA,EAAS,OAIbA,CACT,ECpGO,SAAS6vH,GAAkB/tG,EAAM,CACtC,MAAO,CAACpc,EAAU,KAAO,CAEvB,MAAMqtB,EAAQrtB,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAIoc,EAAK,aAE3D,OADeA,EAAK,QAAQiR,CAAK,GAAKjR,EAAK,QAAQA,EAAK,YAAY,CAExE,CACA,CCLA,MAAMguG,IAAc,CAClB,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EAEMC,IAAc,CAClB,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EAEMC,IAAkB,CACtB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAEaC,IAAa,CACxB,KAAMJ,GAAkB,CACtB,QAASC,IACT,aAAc,MAClB,CAAG,EAED,KAAMD,GAAkB,CACtB,QAASE,IACT,aAAc,MAClB,CAAG,EAED,SAAUF,GAAkB,CAC1B,QAASG,IACT,aAAc,MAClB,CAAG,CACH,ECtCME,IAAuB,CAC3B,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EAEaC,IAAiB,CAACvsH,EAAOmqH,EAAOqC,EAAWC,IACtDH,IAAqBtsH,CAAK,EC+BrB,SAAS0sH,GAAgBxuG,EAAM,CACpC,MAAO,CAACzlB,EAAOqJ,IAAY,CACzB,MAAM+S,EAAU/S,GAAA,MAAAA,EAAS,QAAU,OAAOA,EAAQ,OAAO,EAAI,aAE7D,IAAI6qH,EACJ,GAAI93G,IAAY,cAAgBqJ,EAAK,iBAAkB,CACrD,MAAM0uG,EAAe1uG,EAAK,wBAA0BA,EAAK,aACnDiR,EAAQrtB,GAAA,MAAAA,EAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAI8qH,EAEvDD,EACEzuG,EAAK,iBAAiBiR,CAAK,GAAKjR,EAAK,iBAAiB0uG,CAAY,CAC1E,KAAW,CACL,MAAMA,EAAe1uG,EAAK,aACpBiR,EAAQrtB,GAAA,MAAAA,EAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIoc,EAAK,aAE5DyuG,EAAczuG,EAAK,OAAOiR,CAAK,GAAKjR,EAAK,OAAO0uG,CAAY,CAC7D,CACD,MAAMlnH,EAAQwY,EAAK,iBAAmBA,EAAK,iBAAiBzlB,CAAK,EAAIA,EAGrE,OAAOk0H,EAAYjnH,CAAK,CAC5B,CACA,CC7DA,MAAMmnH,IAAY,CAChB,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EAEMC,IAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAMMC,IAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACD,EAED,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACD,CACH,EAEMC,IAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,UACD,CACH,EAEMC,IAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,EACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,EACD,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,CACH,EAEMC,IAA4B,CAChC,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,EACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,EACD,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,CACH,EAEMC,IAAgB,CAACC,EAAaX,IAAa,CAC/C,MAAM/lB,EAAS,OAAO0mB,CAAW,EAS3BC,EAAS3mB,EAAS,IACxB,GAAI2mB,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAE,CACjB,IAAK,GACH,OAAO3mB,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,IACnB,CAEH,OAAOA,EAAS,IAClB,EAEa4mB,IAAW,CACtB,cAAAH,IAEA,IAAKT,GAAgB,CACnB,OAAQG,IACR,aAAc,MAClB,CAAG,EAED,QAASH,GAAgB,CACvB,OAAQI,IACR,aAAc,OACd,iBAAmBS,GAAYA,EAAU,CAC7C,CAAG,EAED,MAAOb,GAAgB,CACrB,OAAQK,IACR,aAAc,MAClB,CAAG,EAED,IAAKL,GAAgB,CACnB,OAAQM,IACR,aAAc,MAClB,CAAG,EAED,UAAWN,GAAgB,CACzB,OAAQO,IACR,aAAc,OACd,iBAAkBC,IAClB,uBAAwB,MAC5B,CAAG,CACH,EC1LO,SAASM,GAAatvG,EAAM,CACjC,MAAO,CAAC7hB,EAAQyF,EAAU,KAAO,CAC/B,MAAMqtB,EAAQrtB,EAAQ,MAEhB2rH,EACHt+F,GAASjR,EAAK,cAAciR,CAAK,GAClCjR,EAAK,cAAcA,EAAK,iBAAiB,EACrCwvG,EAAcrxH,EAAO,MAAMoxH,CAAY,EAE7C,GAAI,CAACC,EACH,OAAO,KAET,MAAMC,EAAgBD,EAAY,CAAC,EAE7BE,EACHz+F,GAASjR,EAAK,cAAciR,CAAK,GAClCjR,EAAK,cAAcA,EAAK,iBAAiB,EAErC9T,EAAM,MAAM,QAAQwjH,CAAa,EACnCC,IAAUD,EAAgB5wG,GAAYA,EAAQ,KAAK2wG,CAAa,CAAC,EAEjEG,IAAQF,EAAgB5wG,GAAYA,EAAQ,KAAK2wG,CAAa,CAAC,EAEnE,IAAIl1H,EAEJA,EAAQylB,EAAK,cAAgBA,EAAK,cAAc9T,CAAG,EAAIA,EACvD3R,EAAQqJ,EAAQ,cAEZA,EAAQ,cAAcrJ,CAAK,EAC3BA,EAEJ,MAAMs1H,EAAO1xH,EAAO,MAAMsxH,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAAl1H,EAAO,KAAAs1H,EACpB,CACA,CAEA,SAASD,IAAQ1qG,EAAQ4qG,EAAW,CAClC,UAAW5jH,KAAOgZ,EAChB,GACE,OAAO,UAAU,eAAe,KAAKA,EAAQhZ,CAAG,GAChD4jH,EAAU5qG,EAAOhZ,CAAG,CAAC,EAErB,OAAOA,CAIb,CAEA,SAASyjH,IAAUn6G,EAAOs6G,EAAW,CACnC,QAAS5jH,EAAM,EAAGA,EAAMsJ,EAAM,OAAQtJ,IACpC,GAAI4jH,EAAUt6G,EAAMtJ,CAAG,CAAC,EACtB,OAAOA,CAIb,CCxDO,SAAS6jH,IAAoB/vG,EAAM,CACxC,MAAO,CAAC7hB,EAAQyF,EAAU,KAAO,CAC/B,MAAM4rH,EAAcrxH,EAAO,MAAM6hB,EAAK,YAAY,EAClD,GAAI,CAACwvG,EAAa,OAAO,KACzB,MAAMC,EAAgBD,EAAY,CAAC,EAE7BQ,EAAc7xH,EAAO,MAAM6hB,EAAK,YAAY,EAClD,GAAI,CAACgwG,EAAa,OAAO,KACzB,IAAIz1H,EAAQylB,EAAK,cACbA,EAAK,cAAcgwG,EAAY,CAAC,CAAC,EACjCA,EAAY,CAAC,EAGjBz1H,EAAQqJ,EAAQ,cAAgBA,EAAQ,cAAcrJ,CAAK,EAAIA,EAE/D,MAAMs1H,EAAO1xH,EAAO,MAAMsxH,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAAl1H,EAAO,KAAAs1H,EACpB,CACA,CChBA,MAAMI,IAA4B,wBAC5BC,IAA4B,OAE5BC,IAAmB,CACvB,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EACMC,IAAmB,CACvB,IAAK,CAAC,MAAO,SAAS,CACxB,EAEMC,IAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EACMC,IAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,IAAqB,CACzB,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EACMC,IAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACD,EAED,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACD,CACH,EAEMC,IAAmB,CACvB,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EACMC,IAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EAEMC,IAAyB,CAC7B,OAAQ,6DACR,IAAK,gFACP,EACMC,IAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACR,CACH,EAEa7yH,IAAQ,CACnB,cAAegyH,IAAoB,CACjC,aAAcE,IACd,aAAcC,IACd,cAAgB31H,GAAU,SAASA,EAAO,EAAE,CAChD,CAAG,EAED,IAAK+0H,GAAa,CAChB,cAAea,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EAED,QAASd,GAAa,CACpB,cAAee,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,MACnB,cAAgB9oH,GAAUA,EAAQ,CACtC,CAAG,EAED,MAAO8nH,GAAa,CAClB,cAAeiB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EAED,IAAKlB,GAAa,CAChB,cAAemB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EAED,UAAWpB,GAAa,CACtB,cAAeqB,IACf,kBAAmB,MACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,CACH,ECrHaC,GAAO,CAClB,KAAM,QACN,eAAgBhD,IAChB,WAAYM,IACZ,eAAgBE,IAChB,SAAUe,IACV,MAAOrxH,IACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACxB,CACH,ECFO,SAAS+yH,GAAYlgB,EAAM,CAChC,MAAMmgB,EAAY5O,GAAOvR,CAAI,EACvBqb,EAAQH,GAAclb,EAAM,CAAC,EACnC,OAAAqb,EAAM,YAAY8E,EAAU,YAAW,EAAI,EAAG,CAAC,EAC/C9E,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCNO,SAAS+E,IAAapgB,EAAM,CACjC,MAAMqb,EAAQ9J,GAAOvR,CAAI,EAGzB,OAFa+b,GAAyBV,EAAO6E,GAAY7E,CAAK,CAAC,EACtC,CAE3B,CCKO,SAASgF,GAAYrgB,EAAMhtG,EAAS,aACzC,MAAMmE,EAAiBulH,KACjBE,GACJ5pH,GAAA,YAAAA,EAAS,iBACTlJ,GAAAD,EAAAmJ,GAAA,YAAAA,EAAS,SAAT,YAAAnJ,EAAiB,UAAjB,YAAAC,EAA0B,eAC1BqN,EAAe,gBACf+5F,GAAAD,EAAA95F,EAAe,SAAf,YAAA85F,EAAuB,UAAvB,YAAAC,EAAgC,eAChC,EAEImqB,EAAQ9J,GAAOvR,CAAI,EACnB2C,EAAM0Y,EAAM,SACZ/uG,GAAQq2F,EAAMia,EAAe,EAAI,GAAKja,EAAMia,EAElD,OAAAvB,EAAM,QAAQA,EAAM,QAAS,EAAG/uG,CAAI,EACpC+uG,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCzBO,SAASiF,GAAetgB,EAAM,CACnC,OAAOqgB,GAAYrgB,EAAM,CAAE,aAAc,CAAG,EAC9C,CCAO,SAASugB,GAAevgB,EAAM,CACnC,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACnBrF,EAAO0gB,EAAM,cAEbmF,EAA4BtF,GAAclb,EAAM,CAAC,EACvDwgB,EAA0B,YAAY7lB,EAAO,EAAG,EAAG,CAAC,EACpD6lB,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBH,GAAeE,CAAyB,EAE1DE,EAA4BxF,GAAclb,EAAM,CAAC,EACvD0gB,EAA0B,YAAY/lB,EAAM,EAAG,CAAC,EAChD+lB,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBL,GAAeI,CAAyB,EAEhE,OAAIrF,EAAM,QAAO,GAAMoF,EAAgB,QAAO,EACrC9lB,EAAO,EACL0gB,EAAM,QAAS,GAAIsF,EAAgB,QAAO,EAC5ChmB,EAEAA,EAAO,CAElB,CCpBO,SAASimB,IAAmB5gB,EAAM,CACvC,MAAMrF,EAAO4lB,GAAevgB,CAAI,EAC1B6gB,EAAkB3F,GAAclb,EAAM,CAAC,EAC7C,OAAA6gB,EAAgB,YAAYlmB,EAAM,EAAG,CAAC,EACtCkmB,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BP,GAAeO,CAAe,CACvC,CCPO,SAASC,GAAW9gB,EAAM,CAC/B,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACnB1zF,EAAO,CAACg0G,GAAejF,CAAK,EAAI,CAACuF,IAAmBvF,CAAK,EAK/D,OAAO,KAAK,MAAM/uG,EAAOovG,EAAkB,EAAI,CACjD,CCWO,SAASqF,GAAY/gB,EAAMhtG,EAAS,aACzC,MAAMqoH,EAAQ9J,GAAOvR,CAAI,EACnBrF,EAAO0gB,EAAM,cAEblkH,EAAiBulH,KACjBsE,GACJhuH,GAAA,YAAAA,EAAS,0BACTlJ,GAAAD,EAAAmJ,GAAA,YAAAA,EAAS,SAAT,YAAAnJ,EAAiB,UAAjB,YAAAC,EAA0B,wBAC1BqN,EAAe,yBACf+5F,GAAAD,EAAA95F,EAAe,SAAf,YAAA85F,EAAuB,UAAvB,YAAAC,EAAgC,wBAChC,EAEI+vB,EAAsB/F,GAAclb,EAAM,CAAC,EACjDihB,EAAoB,YAAYtmB,EAAO,EAAG,EAAGqmB,CAAqB,EAClEC,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAMR,EAAkBJ,GAAYY,EAAqBjuH,CAAO,EAE1DkuH,EAAsBhG,GAAclb,EAAM,CAAC,EACjDkhB,EAAoB,YAAYvmB,EAAM,EAAGqmB,CAAqB,EAC9DE,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAMP,EAAkBN,GAAYa,EAAqBluH,CAAO,EAEhE,OAAIqoH,EAAM,QAAO,GAAMoF,EAAgB,QAAO,EACrC9lB,EAAO,EACL0gB,EAAM,QAAS,GAAIsF,EAAgB,QAAO,EAC5ChmB,EAEAA,EAAO,CAElB,CC7BO,SAASwmB,IAAgBnhB,EAAMhtG,EAAS,aAC7C,MAAMmE,EAAiBulH,KACjBsE,GACJhuH,GAAA,YAAAA,EAAS,0BACTlJ,GAAAD,EAAAmJ,GAAA,YAAAA,EAAS,SAAT,YAAAnJ,EAAiB,UAAjB,YAAAC,EAA0B,wBAC1BqN,EAAe,yBACf+5F,GAAAD,EAAA95F,EAAe,SAAf,YAAA85F,EAAuB,UAAvB,YAAAC,EAAgC,wBAChC,EAEIyJ,EAAOomB,GAAY/gB,EAAMhtG,CAAO,EAChCouH,EAAYlG,GAAclb,EAAM,CAAC,EACvC,OAAAohB,EAAU,YAAYzmB,EAAM,EAAGqmB,CAAqB,EACpDI,EAAU,SAAS,EAAG,EAAG,EAAG,CAAC,EACff,GAAYe,EAAWpuH,CAAO,CAE9C,CCdO,SAASquH,GAAQrhB,EAAMhtG,EAAS,CACrC,MAAMqoH,EAAQ9J,GAAOvR,CAAI,EACnB1zF,EAAO,CAAC+zG,GAAYhF,EAAOroH,CAAO,EAAI,CAACmuH,IAAgB9F,EAAOroH,CAAO,EAK3E,OAAO,KAAK,MAAMsZ,EAAOovG,EAAkB,EAAI,CACjD,CCtDO,SAAS4F,GAAgB1pB,EAAQC,EAAc,CACpD,MAAMI,EAAOL,EAAS,EAAI,IAAM,GAC1B7vB,EAAS,KAAK,IAAI6vB,CAAM,EAAE,SAAQ,EAAG,SAASC,EAAc,GAAG,EACrE,OAAOI,EAAOlwB,CAChB,CCWO,MAAMw5C,GAAkB,CAE7B,EAAEvhB,EAAM9uG,EAAO,CAUb,MAAMswH,EAAaxhB,EAAK,cAElBrF,EAAO6mB,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOF,GAAgBpwH,IAAU,KAAOypG,EAAO,IAAMA,EAAMzpG,EAAM,MAAM,CACxE,EAGD,EAAE8uG,EAAM9uG,EAAO,CACb,MAAMitG,EAAQ6B,EAAK,WACnB,OAAO9uG,IAAU,IAAM,OAAOitG,EAAQ,CAAC,EAAImjB,GAAgBnjB,EAAQ,EAAG,CAAC,CACxE,EAGD,EAAE6B,EAAM9uG,EAAO,CACb,OAAOowH,GAAgBthB,EAAK,QAAS,EAAE9uG,EAAM,MAAM,CACpD,EAGD,EAAE8uG,EAAM9uG,EAAO,CACb,MAAMuwH,EAAqBzhB,EAAK,SAAQ,EAAK,IAAM,EAAI,KAAO,KAE9D,OAAQ9uG,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOuwH,EAAmB,cAC5B,IAAK,MACH,OAAOA,EACT,IAAK,QACH,OAAOA,EAAmB,CAAC,EAC7B,IAAK,OACL,QACE,OAAOA,IAAuB,KAAO,OAAS,MACjD,CACF,EAGD,EAAEzhB,EAAM9uG,EAAO,CACb,OAAOowH,GAAgBthB,EAAK,SAAU,EAAG,IAAM,GAAI9uG,EAAM,MAAM,CAChE,EAGD,EAAE8uG,EAAM9uG,EAAO,CACb,OAAOowH,GAAgBthB,EAAK,SAAU,EAAE9uG,EAAM,MAAM,CACrD,EAGD,EAAE8uG,EAAM9uG,EAAO,CACb,OAAOowH,GAAgBthB,EAAK,WAAY,EAAE9uG,EAAM,MAAM,CACvD,EAGD,EAAE8uG,EAAM9uG,EAAO,CACb,OAAOowH,GAAgBthB,EAAK,WAAY,EAAE9uG,EAAM,MAAM,CACvD,EAGD,EAAE8uG,EAAM9uG,EAAO,CACb,MAAMwwH,EAAiBxwH,EAAM,OACvBm6G,EAAerL,EAAK,kBACpB2hB,EAAoB,KAAK,MAC7BtW,EAAe,KAAK,IAAI,GAAIqW,EAAiB,CAAC,CACpD,EACI,OAAOJ,GAAgBK,EAAmBzwH,EAAM,MAAM,CACvD,CACH,ECnFM0wH,GAAgB,CACpB,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EAgDaC,GAAa,CAExB,EAAG,SAAU7hB,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMxV,EAAMhJ,EAAK,YAAa,EAAG,EAAI,EAAI,EACzC,OAAQ9uG,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOstH,EAAS,IAAIxV,EAAK,CAAE,MAAO,aAAa,CAAE,EAEnD,IAAK,QACH,OAAOwV,EAAS,IAAIxV,EAAK,CAAE,MAAO,QAAQ,CAAE,EAE9C,IAAK,OACL,QACE,OAAOwV,EAAS,IAAIxV,EAAK,CAAE,MAAO,MAAM,CAAE,CAC7C,CACF,EAGD,EAAG,SAAUhJ,EAAM9uG,EAAOstH,EAAU,CAElC,GAAIttH,IAAU,KAAM,CAClB,MAAMswH,EAAaxhB,EAAK,cAElBrF,EAAO6mB,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOhD,EAAS,cAAc7jB,EAAM,CAAE,KAAM,MAAM,CAAE,CACrD,CAED,OAAO4mB,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAUxrH,EAAS,CAC3C,MAAM8uH,EAAiBf,GAAY/gB,EAAMhtG,CAAO,EAE1Cy1G,EAAWqZ,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,GAAI5wH,IAAU,KAAM,CAClB,MAAM6wH,EAAetZ,EAAW,IAChC,OAAO6Y,GAAgBS,EAAc,CAAC,CACvC,CAGD,OAAI7wH,IAAU,KACLstH,EAAS,cAAc/V,EAAU,CAAE,KAAM,MAAM,CAAE,EAInD6Y,GAAgB7Y,EAAUv3G,EAAM,MAAM,CAC9C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAO,CACxB,MAAM8wH,EAAczB,GAAevgB,CAAI,EAGvC,OAAOshB,GAAgBU,EAAa9wH,EAAM,MAAM,CACjD,EAWD,EAAG,SAAU8uG,EAAM9uG,EAAO,CACxB,MAAMypG,EAAOqF,EAAK,cAClB,OAAOshB,GAAgB3mB,EAAMzpG,EAAM,MAAM,CAC1C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAMze,EAAK,SAAU,EAAG,GAAK,CAAC,EACnD,OAAQ9uG,EAAK,CAEX,IAAK,IACH,OAAO,OAAOutH,CAAO,EAEvB,IAAK,KACH,OAAO6C,GAAgB7C,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUze,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAMze,EAAK,SAAU,EAAG,GAAK,CAAC,EACnD,OAAQ9uG,EAAK,CAEX,IAAK,IACH,OAAO,OAAOutH,CAAO,EAEvB,IAAK,KACH,OAAO6C,GAAgB7C,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUze,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMrgB,EAAQ6B,EAAK,WACnB,OAAQ9uG,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOqwH,GAAgB,EAAEvhB,EAAM9uG,CAAK,EAEtC,IAAK,KACH,OAAOstH,EAAS,cAAcrgB,EAAQ,EAAG,CAAE,KAAM,OAAO,CAAE,EAE5D,IAAK,MACH,OAAOqgB,EAAS,MAAMrgB,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOqgB,EAAS,MAAMrgB,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOqgB,EAAS,MAAMrgB,EAAO,CAAE,MAAO,OAAQ,QAAS,YAAY,CAAE,CACxE,CACF,EAGD,EAAG,SAAU6B,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMrgB,EAAQ6B,EAAK,WACnB,OAAQ9uG,EAAK,CAEX,IAAK,IACH,OAAO,OAAOitG,EAAQ,CAAC,EAEzB,IAAK,KACH,OAAOmjB,GAAgBnjB,EAAQ,EAAG,CAAC,EAErC,IAAK,KACH,OAAOqgB,EAAS,cAAcrgB,EAAQ,EAAG,CAAE,KAAM,OAAO,CAAE,EAE5D,IAAK,MACH,OAAOqgB,EAAS,MAAMrgB,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOqgB,EAAS,MAAMrgB,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOqgB,EAAS,MAAMrgB,EAAO,CAAE,MAAO,OAAQ,QAAS,YAAY,CAAE,CACxE,CACF,EAGD,EAAG,SAAU6B,EAAM9uG,EAAOstH,EAAUxrH,EAAS,CAC3C,MAAMwtG,EAAO6gB,GAAQrhB,EAAMhtG,CAAO,EAElC,OAAI9B,IAAU,KACLstH,EAAS,cAAche,EAAM,CAAE,KAAM,MAAM,CAAE,EAG/C8gB,GAAgB9gB,EAAMtvG,EAAM,MAAM,CAC1C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMyD,EAAUnB,GAAW9gB,CAAI,EAE/B,OAAI9uG,IAAU,KACLstH,EAAS,cAAcyD,EAAS,CAAE,KAAM,MAAM,CAAE,EAGlDX,GAAgBW,EAAS/wH,EAAM,MAAM,CAC7C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,OAAIttH,IAAU,KACLstH,EAAS,cAAcxe,EAAK,QAAS,EAAE,CAAE,KAAM,MAAM,CAAE,EAGzDuhB,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,MAAM5d,EAAYwf,IAAapgB,CAAI,EAEnC,OAAI9uG,IAAU,KACLstH,EAAS,cAAc5d,EAAW,CAAE,KAAM,WAAW,CAAE,EAGzD0gB,GAAgB1gB,EAAW1vG,EAAM,MAAM,CAC/C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,MAAM0D,EAAYliB,EAAK,SACvB,OAAQ9uG,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOstH,EAAS,IAAI0D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUliB,EAAM9uG,EAAOstH,EAAUxrH,EAAS,CAC3C,MAAMkvH,EAAYliB,EAAK,SACjBmiB,GAAkBD,EAAYlvH,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQ9B,EAAK,CAEX,IAAK,IACH,OAAO,OAAOixH,CAAc,EAE9B,IAAK,KACH,OAAOb,GAAgBa,EAAgB,CAAC,EAE1C,IAAK,KACH,OAAO3D,EAAS,cAAc2D,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAO3D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUliB,EAAM9uG,EAAOstH,EAAUxrH,EAAS,CAC3C,MAAMkvH,EAAYliB,EAAK,SACjBmiB,GAAkBD,EAAYlvH,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQ9B,EAAK,CAEX,IAAK,IACH,OAAO,OAAOixH,CAAc,EAE9B,IAAK,KACH,OAAOb,GAAgBa,EAAgBjxH,EAAM,MAAM,EAErD,IAAK,KACH,OAAOstH,EAAS,cAAc2D,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAO3D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUliB,EAAM9uG,EAAOstH,EAAU,CAClC,MAAM0D,EAAYliB,EAAK,SACjBoiB,EAAeF,IAAc,EAAI,EAAIA,EAC3C,OAAQhxH,EAAK,CAEX,IAAK,IACH,OAAO,OAAOkxH,CAAY,EAE5B,IAAK,KACH,OAAOd,GAAgBc,EAAclxH,EAAM,MAAM,EAEnD,IAAK,KACH,OAAOstH,EAAS,cAAc4D,EAAc,CAAE,KAAM,KAAK,CAAE,EAE7D,IAAK,MACH,OAAO5D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO1D,EAAS,IAAI0D,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUliB,EAAM9uG,EAAOstH,EAAU,CAElC,MAAMiD,EADQzhB,EAAK,WACgB,IAAM,EAAI,KAAO,KAEpD,OAAQ9uG,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOstH,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOjD,EACJ,UAAUiD,EAAoB,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,EACA,cACL,IAAK,QACH,OAAOjD,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOjD,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUzhB,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMra,EAAQnE,EAAK,WACnB,IAAIyhB,EASJ,OARItd,IAAU,GACZsd,EAAqBG,GAAc,KAC1Bzd,IAAU,EACnBsd,EAAqBG,GAAc,SAEnCH,EAAqBtd,EAAQ,IAAM,EAAI,KAAO,KAGxCjzG,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOstH,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOjD,EACJ,UAAUiD,EAAoB,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,EACA,cACL,IAAK,QACH,OAAOjD,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOjD,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUzhB,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMra,EAAQnE,EAAK,WACnB,IAAIyhB,EAWJ,OAVItd,GAAS,GACXsd,EAAqBG,GAAc,QAC1Bzd,GAAS,GAClBsd,EAAqBG,GAAc,UAC1Bzd,GAAS,EAClBsd,EAAqBG,GAAc,QAEnCH,EAAqBG,GAAc,MAG7B1wH,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOstH,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,QACH,OAAOjD,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOjD,EAAS,UAAUiD,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACJ,CACF,EAGD,EAAG,SAAUzhB,EAAM9uG,EAAOstH,EAAU,CAClC,GAAIttH,IAAU,KAAM,CAClB,IAAIizG,EAAQnE,EAAK,SAAQ,EAAK,GAC9B,OAAImE,IAAU,IAAGA,EAAQ,IAClBqa,EAAS,cAAcra,EAAO,CAAE,KAAM,MAAM,CAAE,CACtD,CAED,OAAOod,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,OAAIttH,IAAU,KACLstH,EAAS,cAAcxe,EAAK,SAAU,EAAE,CAAE,KAAM,MAAM,CAAE,EAG1DuhB,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,MAAMra,EAAQnE,EAAK,SAAQ,EAAK,GAEhC,OAAI9uG,IAAU,KACLstH,EAAS,cAAcra,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhDmd,GAAgBnd,EAAOjzG,EAAM,MAAM,CAC3C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,IAAIra,EAAQnE,EAAK,WAGjB,OAFImE,IAAU,IAAGA,EAAQ,IAErBjzG,IAAU,KACLstH,EAAS,cAAcra,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhDmd,GAAgBnd,EAAOjzG,EAAM,MAAM,CAC3C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,OAAIttH,IAAU,KACLstH,EAAS,cAAcxe,EAAK,WAAY,EAAE,CAAE,KAAM,QAAQ,CAAE,EAG9DuhB,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOstH,EAAU,CAClC,OAAIttH,IAAU,KACLstH,EAAS,cAAcxe,EAAK,WAAY,EAAE,CAAE,KAAM,QAAQ,CAAE,EAG9DuhB,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAO,CACxB,OAAOqwH,GAAgB,EAAEvhB,EAAM9uG,CAAK,CACrC,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOmxH,EAAW,CACnC,MAAMC,EAAiBtiB,EAAK,oBAE5B,GAAIsiB,IAAmB,EACrB,MAAO,IAGT,OAAQpxH,EAAK,CAEX,IAAK,IACH,OAAOqxH,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CAC5C,CACF,EAGD,EAAG,SAAUtiB,EAAM9uG,EAAOmxH,EAAW,CACnC,MAAMC,EAAiBtiB,EAAK,oBAE5B,OAAQ9uG,EAAK,CAEX,IAAK,IACH,OAAOqxH,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CAC5C,CACF,EAGD,EAAG,SAAUtiB,EAAM9uG,EAAOmxH,EAAW,CACnC,MAAMC,EAAiBtiB,EAAK,oBAE5B,OAAQ9uG,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQuxH,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACpD,CACF,EAGD,EAAG,SAAUtiB,EAAM9uG,EAAOmxH,EAAW,CACnC,MAAMC,EAAiBtiB,EAAK,oBAE5B,OAAQ9uG,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQuxH,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACpD,CACF,EAGD,EAAG,SAAUtiB,EAAM9uG,EAAOmxH,EAAW,CACnC,MAAMK,EAAY,KAAK,MAAM1iB,EAAK,QAAO,EAAK,GAAI,EAClD,OAAOshB,GAAgBoB,EAAWxxH,EAAM,MAAM,CAC/C,EAGD,EAAG,SAAU8uG,EAAM9uG,EAAOmxH,EAAW,CACnC,MAAMK,EAAY1iB,EAAK,UACvB,OAAOshB,GAAgBoB,EAAWxxH,EAAM,MAAM,CAC/C,CACH,EAEA,SAASuxH,GAAoB90F,EAAQi5C,EAAY,GAAI,CACnD,MAAMqxB,EAAOtqE,EAAS,EAAI,IAAM,IAC1Bg1F,EAAY,KAAK,IAAIh1F,CAAM,EAC3Bw2E,EAAQ,KAAK,MAAMwe,EAAY,EAAE,EACjCve,EAAUue,EAAY,GAC5B,OAAIve,IAAY,EACPnM,EAAO,OAAOkM,CAAK,EAErBlM,EAAO,OAAOkM,CAAK,EAAIv9B,EAAY06C,GAAgBld,EAAS,CAAC,CACtE,CAEA,SAASme,GAAkC50F,EAAQi5C,EAAW,CAC5D,OAAIj5C,EAAS,KAAO,GACLA,EAAS,EAAI,IAAM,KAClB2zF,GAAgB,KAAK,IAAI3zF,CAAM,EAAI,GAAI,CAAC,EAEjD60F,GAAe70F,EAAQi5C,CAAS,CACzC,CAEA,SAAS47C,GAAe70F,EAAQi5C,EAAY,GAAI,CAC9C,MAAMqxB,EAAOtqE,EAAS,EAAI,IAAM,IAC1Bg1F,EAAY,KAAK,IAAIh1F,CAAM,EAC3Bw2E,EAAQmd,GAAgB,KAAK,MAAMqB,EAAY,EAAE,EAAG,CAAC,EACrDve,EAAUkd,GAAgBqB,EAAY,GAAI,CAAC,EACjD,OAAO1qB,EAAOkM,EAAQv9B,EAAYw9B,CACpC,CCvwBA,MAAMwe,GAAoB,CAAC10G,EAASqvG,IAAe,CACjD,OAAQrvG,EAAO,CACb,IAAK,IACH,OAAOqvG,EAAW,KAAK,CAAE,MAAO,OAAS,GAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAU,GAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAQ,GAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAQ,EAC3C,CACH,EAEMsF,GAAoB,CAAC30G,EAASqvG,IAAe,CACjD,OAAQrvG,EAAO,CACb,IAAK,IACH,OAAOqvG,EAAW,KAAK,CAAE,MAAO,OAAS,GAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAU,GAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAQ,GAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAQ,EAC3C,CACH,EAEMuF,IAAwB,CAAC50G,EAASqvG,IAAe,CACrD,MAAMqB,EAAc1wG,EAAQ,MAAM,WAAW,GAAK,GAC5C60G,EAAcnE,EAAY,CAAC,EAC3BoE,EAAcpE,EAAY,CAAC,EAEjC,GAAI,CAACoE,EACH,OAAOJ,GAAkB10G,EAASqvG,CAAU,EAG9C,IAAI0F,EAEJ,OAAQF,EAAW,CACjB,IAAK,IACHE,EAAiB1F,EAAW,SAAS,CAAE,MAAO,OAAS,GACvD,MACF,IAAK,KACH0F,EAAiB1F,EAAW,SAAS,CAAE,MAAO,QAAU,GACxD,MACF,IAAK,MACH0F,EAAiB1F,EAAW,SAAS,CAAE,MAAO,MAAQ,GACtD,MACF,IAAK,OACL,QACE0F,EAAiB1F,EAAW,SAAS,CAAE,MAAO,MAAQ,GACtD,KACH,CAED,OAAO0F,EACJ,QAAQ,WAAYL,GAAkBG,EAAaxF,CAAU,CAAC,EAC9D,QAAQ,WAAYsF,GAAkBG,EAAazF,CAAU,CAAC,CACnE,EAEa2F,IAAiB,CAC5B,EAAGL,GACH,EAAGC,GACL,EC/DMK,IAAmB,OACnBC,IAAkB,OAElBC,IAAc,CAAC,IAAK,KAAM,KAAM,MAAM,EAErC,SAASC,IAA0BpyH,EAAO,CAC/C,OAAOiyH,IAAiB,KAAKjyH,CAAK,CACpC,CAEO,SAASqyH,IAAyBryH,EAAO,CAC9C,OAAOkyH,IAAgB,KAAKlyH,CAAK,CACnC,CAEO,SAASsyH,IAA0BtyH,EAAOmvD,EAAQ/uD,EAAO,CAC9D,MAAM25F,EAAWjiG,IAAQkI,EAAOmvD,EAAQ/uD,CAAK,EAE7C,GADA,QAAQ,KAAK25F,CAAQ,EACjBo4B,IAAY,SAASnyH,CAAK,EAAG,MAAM,IAAI,WAAW+5F,CAAQ,CAChE,CAEA,SAASjiG,IAAQkI,EAAOmvD,EAAQ/uD,EAAO,CACrC,MAAMmyH,EAAUvyH,EAAM,CAAC,IAAM,IAAM,QAAU,oBAC7C,MAAO,SAASA,EAAM,YAAa,oBAAmBA,CAAK,YAAYmvD,CAAM,sBAAsBojE,CAAO,mBAAmBnyH,CAAK,iFACpI,CCUO,SAAS+sE,GAAO10E,EAAO,CAC5B,OACEA,aAAiB,MAChB,OAAOA,GAAU,UAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEhD,CCFO,SAASusG,IAAQ8J,EAAM,CAC5B,GAAI,CAAC3hC,GAAO2hC,CAAI,GAAK,OAAOA,GAAS,SACnC,MAAO,GAET,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACzB,MAAO,CAAC,MAAM,OAAOqb,CAAK,CAAC,CAC7B,CCfA,MAAMqI,IACJ,wDAIIC,IAA6B,oCAE7BC,IAAsB,eACtBC,IAAoB,MACpBC,IAAgC,WAsS/B,SAASzjE,IAAO2/C,EAAM+jB,EAAW/wH,EAAS,qBAC/C,MAAMmE,EAAiBulH,KACjB/mB,GAAS3iG,GAAA,YAAAA,EAAS,SAAUmE,EAAe,QAAU6sH,GAErDhD,GACJhuH,GAAA,YAAAA,EAAS,0BACTlJ,GAAAD,EAAAmJ,GAAA,YAAAA,EAAS,SAAT,YAAAnJ,EAAiB,UAAjB,YAAAC,EAA0B,wBAC1BqN,EAAe,yBACf+5F,GAAAD,EAAA95F,EAAe,SAAf,YAAA85F,EAAuB,UAAvB,YAAAC,EAAgC,wBAChC,EAEI0rB,GACJ5pH,GAAA,YAAAA,EAAS,iBACTq+F,GAAAF,EAAAn+F,GAAA,YAAAA,EAAS,SAAT,YAAAm+F,EAAiB,UAAjB,YAAAE,EAA0B,eAC1Bl6F,EAAe,gBACfq6F,GAAAD,EAAAp6F,EAAe,SAAf,YAAAo6F,EAAuB,UAAvB,YAAAC,EAAgC,eAChC,EAEIyyB,EAAe1S,GAAOvR,CAAI,EAEhC,GAAI,CAAC9J,IAAQ+tB,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,IAAIzhG,EAAQuhG,EACT,MAAMJ,GAA0B,EAChC,IAAKO,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,KAAOA,IAAmB,IAAK,CACpD,MAAMC,EAAgBlB,IAAeiB,CAAc,EACnD,OAAOC,EAAcF,EAAWvuB,EAAO,UAAU,CAClD,CACD,OAAOuuB,CACb,CAAK,EACA,KAAK,EAAE,EACP,MAAMR,GAAsB,EAC5B,IAAKQ,GAAc,CAElB,GAAIA,IAAc,KAChB,MAAO,CAAE,QAAS,GAAO,MAAO,GAAG,EAGrC,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,IACrB,MAAO,CAAE,QAAS,GAAO,MAAOE,IAAmBH,CAAS,GAG9D,GAAIrC,GAAWsC,CAAc,EAC3B,MAAO,CAAE,QAAS,GAAM,MAAOD,CAAS,EAG1C,GAAIC,EAAe,MAAML,GAA6B,EACpD,MAAM,IAAI,WACR,iEACEK,EACA,GACZ,EAGM,MAAO,CAAE,QAAS,GAAO,MAAOD,CAAS,CAC/C,CAAK,EAGCvuB,EAAO,SAAS,eAClBnzE,EAAQmzE,EAAO,SAAS,aAAasuB,EAAczhG,CAAK,GAG1D,MAAM8hG,EAAmB,CACvB,sBAAAtD,EACA,aAAApE,EACA,OAAAjnB,CACJ,EAEE,OAAOnzE,EACJ,IAAK+hG,GAAS,CACb,GAAI,CAACA,EAAK,QAAS,OAAOA,EAAK,MAE/B,MAAMrzH,EAAQqzH,EAAK,OAGhB,EAACvxH,GAAA,MAAAA,EAAS,8BACTuwH,IAAyBryH,CAAK,GAC/B,EAAC8B,GAAA,MAAAA,EAAS,+BACTswH,IAA0BpyH,CAAK,IAEjCsyH,IAA0BtyH,EAAO6yH,EAAW,OAAO/jB,CAAI,CAAC,EAG1D,MAAMwkB,EAAY3C,GAAW3wH,EAAM,CAAC,CAAC,EACrC,OAAOszH,EAAUP,EAAc/yH,EAAOykG,EAAO,SAAU2uB,CAAgB,CAC7E,CAAK,EACA,KAAK,EAAE,CACZ,CAEA,SAASD,IAAmB/yH,EAAO,CACjC,MAAMge,EAAUhe,EAAM,MAAMsyH,GAAmB,EAE/C,OAAKt0G,EAIEA,EAAQ,CAAC,EAAE,QAAQu0G,IAAmB,GAAG,EAHvCvyH,CAIX,CC1ZO,SAASy9G,IAAQ/O,EAAMykB,EAAe,CAC3C,MAAMpJ,EAAQ9J,GAAOvR,CAAI,EACnB0kB,EAAiBnT,GAAOkT,CAAa,EAC3C,OAAOpJ,EAAM,QAAO,EAAKqJ,EAAe,QAAO,CACjD,CCJO,SAASzV,IAASjP,EAAMykB,EAAe,CAC5C,MAAMpJ,EAAQ9J,GAAOvR,CAAI,EACnB0kB,EAAiBnT,GAAOkT,CAAa,EAC3C,MAAO,CAACpJ,EAAQ,CAACqJ,CACnB,CCMO,SAASC,IAAU3I,EAAUC,EAAW,CAC7C,MAAM2I,EAAqBhJ,GAAWI,CAAQ,EACxC6I,EAAsBjJ,GAAWK,CAAS,EAEhD,MAAO,CAAC2I,GAAuB,CAACC,CAClC,CCVO,SAASC,IAAY9I,EAAUC,EAAW,CAC/C,MAAMM,EAAYhL,GAAOyK,CAAQ,EAC3BQ,EAAajL,GAAO0K,CAAS,EACnC,OACEM,EAAU,YAAW,IAAOC,EAAW,YAAa,GACpDD,EAAU,SAAQ,IAAOC,EAAW,SAAU,CAElD,CCZO,SAASuI,IAAW/I,EAAUC,EAAW,CAC9C,MAAMM,EAAYhL,GAAOyK,CAAQ,EAC3BQ,EAAajL,GAAO0K,CAAS,EACnC,OAAOM,EAAU,YAAW,IAAOC,EAAW,YAAW,CAC3D,CCAO,SAAS31F,IAAIm+F,EAAO,CACzB,IAAI13H,EACJ,OAAA03H,EAAM,QAAQ,SAAUC,EAAW,CACjC,MAAM5c,EAAckJ,GAAO0T,CAAS,GAGlC33H,IAAW,QACXA,EAAS+6G,GACT,MAAM,OAAOA,CAAW,CAAC,KAEzB/6G,EAAS+6G,EAEf,CAAG,EAEM/6G,GAAU,IAAI,KAAK,GAAG,CAC/B,CCfO,SAASitD,IAAIyqE,EAAO,CACzB,IAAI13H,EAEJ,OAAA03H,EAAM,QAASC,GAAc,CAC3B,MAAMjlB,EAAOuR,GAAO0T,CAAS,GACzB,CAAC33H,GAAUA,EAAS0yG,GAAQ,MAAM,CAACA,CAAI,KACzC1yG,EAAS0yG,EAEf,CAAG,EAEM1yG,GAAU,IAAI,KAAK,GAAG,CAC/B,CCfO,SAAS6xG,IAAea,EAAM,CACnC,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACnBrF,EAAO0gB,EAAM,cACb6J,EAAa7J,EAAM,WACnB8J,EAAiBjK,GAAclb,EAAM,CAAC,EAC5C,OAAAmlB,EAAe,YAAYxqB,EAAMuqB,EAAa,EAAG,CAAC,EAClDC,EAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3BA,EAAe,SACxB,CCNO,SAASnmB,IAASgB,EAAM7B,EAAO,CACpC,MAAMkd,EAAQ9J,GAAOvR,CAAI,EACnBrF,EAAO0gB,EAAM,cACb1Y,EAAM0Y,EAAM,UAEZ+J,EAAuBlK,GAAclb,EAAM,CAAC,EAClDolB,EAAqB,YAAYzqB,EAAMwD,EAAO,EAAE,EAChDinB,EAAqB,SAAS,EAAG,EAAG,EAAG,CAAC,EACxC,MAAMhqB,EAAc+D,IAAeimB,CAAoB,EAGvD,OAAA/J,EAAM,SAASld,EAAO,KAAK,IAAIwE,EAAKvH,CAAW,CAAC,EACzCigB,CACT,CCdO,SAASgK,IAAQrlB,EAAMrF,EAAM,CAClC,MAAM0gB,EAAQ9J,GAAOvR,CAAI,EAGzB,OAAI,MAAM,CAACqb,CAAK,EACPH,GAAclb,EAAM,GAAG,GAGhCqb,EAAM,YAAY1gB,CAAI,EACf0gB,EACT,CCXO,SAASiK,IAAatlB,EAAM,CACjC,MAAMqb,EAAQ9J,GAAOvR,CAAI,EACzB,OAAAqb,EAAM,QAAQ,CAAC,EACfA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCOO,MAAMkK,GAAU,CAEnB,KACA,QAAApK,GACA,UAAAG,GACA,SAAAE,IACA,SAAAC,IACA,yBAAAM,GACA,2BAAAO,IACA,aAAAO,IACA,WAAAC,IACA,UAAAH,GACA,UAAAI,IACA,OAAA18D,IACA,WAAAygE,GACA,QAAAO,GACA,QAAAtS,IACA,SAAAE,IACJ,OAAI5wC,GACA,UAAAsmD,IACA,YAAAG,IACA,WAAAC,IACJ,IAAIl+F,IACJ,IAAI0zB,IACA,SAAAykD,IACA,QAAAqmB,IACA,WAAAzJ,GACA,eAAA0E,GACA,aAAAgF,IACA,YAAAjF,GACA,YAAAH,EACJ,EChEO,SAASsF,IAAWC,EAAW,CAClC,MAAO,CACH,GAAGF,GACH,GAAGE,CACX,CACA,CCAO,SAASC,KAAuB,CACnC,MAAMn/F,EAAa,GACnB,UAAWjrB,KAAOs9G,GACdryF,EAAWqyF,GAAGt9G,CAAG,CAAC,EACd,OAAOs9G,GAAGt9G,CAAG,CAAC,GAEtB,UAAWA,KAAOu9G,GACdtyF,EAAWsyF,GAAQv9G,CAAG,CAAC,EACnB,OAAOu9G,GAAQv9G,CAAG,CAAC,GAE3B,UAAWA,KAAOw9G,GACdvyF,EAAWuyF,GAAex9G,CAAG,CAAC,EAC1B,OAAOw9G,GAAex9G,CAAG,CAAC,GAElC,OAAOirB,CACX,CCbO,SAASo/F,GAAcxnB,EAAOnrG,EAErCuyH,EAAUK,GAAgB,CACtB,OAAOL,EAAQ,OAAOpnB,EAAO,SAAUnrG,CAAO,CAClD,CAMO,MAAM6yH,IAAqBF,GCV3B,SAASG,IAAU9lB,EAAMhtG,EAEhCuyH,EAAUK,GAAgB,CACtB,OAAOL,EAAQ,OAAOvlB,EAAM,IAAKhtG,CAAO,CAC5C,CCJO,SAAS+yH,IAEhBC,EAEArwB,EAASsqB,GAAM,OACX,OAAOp2H,EAAA8rG,EAAO,WAAP,YAAA9rG,EAAiB,MAAMm8H,EAClC,CCPO,SAASC,IAAiBC,EAAY,CACzC,OAAIA,EAAa,GACN,IAAIA,EAAW,eAAc,CAAE,GAEnC,GAAGA,EAAW,eAAc,CAAE,EACzC,CCLO,SAASC,KAAyB,CACrC,MAAO,EACX,CCDO,SAASC,IAAkB3lB,EAASztG,EAE3CuyH,EAAUK,GAAgB,CACtB,OAAOL,EAAQ,OAAO9kB,EAAS,SAAUztG,CAAO,CACpD,CCLO,SAASqzH,GAAmB1rB,EAAM,CACrC,OAAOA,EAAK,UAChB,CAMO,MAAM2rB,IAAoBD,kSCb1B,SAASE,IAAcC,EAAkB,CAC5C,OAAIA,GAAA,MAAAA,EAAkB,oBAAsB,CAACA,EAAiB,gBAC1DA,EAAiB,cAAgBA,EAAiB,oBAElDA,GAAA,MAAAA,EAAkB,mBAClB,CAACA,EAAiB,qBAClBA,EAAiB,mBAAqBA,EAAiB,mBAEpD,CACH,GAAGC,IACH,GAAGD,CACX,CACA,CCbO,SAASE,IAAgBC,EAAcC,EAAUC,EAAQhF,EAAYlsB,EAAQ4vB,EAAS,CAGzF,GAFI,CAACqB,GAED,CAACC,EACD,OACJ,KAAM,CAAE,UAAAvL,EAAW,aAAAgK,EAAc,SAAArW,EAAU,KAAA6X,CAAI,EAAKvB,EAC9C5qB,EAAOgsB,EAAa,cACpB1b,EAAS,GACf,IAAI9M,EAAQyoB,EACZ,KAAO3b,EAAO,OAAS,IAAMgE,EAAS9Q,EAAOmd,EAAUuL,EAAQ,CAAC,CAAC,GAC7D5b,EAAO,KAAK9M,EAAM,SAAU,GAC5BA,EAAQmd,EAAUnd,EAAO,CAAC,EAY9B,OAVqB8M,EAAO,KAAK,CAACliG,EAAGC,IAC1BD,EAAIC,CACd,EAC4B,IAAKrf,GAAU,CACxC,MAAM06D,EAAQw9D,EAAW,oBAAoBl4H,EAAOgsG,CAAM,EACpDjpF,EAAYk6G,GAAY,IAAIE,EAAKnsB,EAAMhxG,CAAK,EAAI27H,EAAasB,CAAQ,GACtEC,GAAU,IAAIC,EAAKnsB,EAAMhxG,CAAK,EAAI27H,EAAauB,CAAM,GACtD,GACJ,MAAO,CAAE,MAAAl9H,EAAO,MAAA06D,EAAO,SAAA33C,EAC/B,CAAK,CAEL,CCxBO,SAASq6G,IAAqBC,EAAcplG,EAAS,GAAIqlG,EAAkB,GAAI,CAClF,IAAIl9H,EAAQ,CAAE,GAAG63B,GAAA,YAAAA,EAASg3F,GAAG,IAAI,EACjC,cAAO,QAAQoO,CAAY,EACtB,OAAO,CAAC,CAAG,CAAA/gE,CAAM,IAAMA,IAAW,EAAI,EACtC,QAAQ,CAAC,CAACihE,CAAQ,IAAM,CACzBn9H,EAAQ,CACJ,GAAGA,EACH,GAAGk9H,GAAA,YAAAA,EAAkBC,EACjC,CACA,CAAK,EACMn9H,CACX,CCPO,SAASo9H,IAAYxxB,EAE5BinB,EAEAwK,EAEA7B,EAAUK,GAAgB,CACtB,MAAM1oH,EAAQkqH,EACR7B,EAAQ,eAAe,IAAIA,EAAQ,IAAM,EACzCA,EAAQ,YAAY,IAAIA,EAAQ,KAAQ,CAAE,OAAA5vB,EAAQ,aAAAinB,CAAY,CAAE,EAChEzR,EAAO,GACb,QAAS39G,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,MAAMm1G,EAAM4iB,EAAQ,QAAQroH,EAAO1P,CAAC,EACpC29G,EAAK,KAAKxI,CAAG,CAChB,CACD,OAAOwI,CACX,CCpBO,SAASkc,IAAeV,EAAcW,EAAeC,EAAa1F,EAAY0D,EAAS,CAG1F,GAFI,CAAC+B,GAED,CAACC,EACD,OACJ,KAAM,CAAE,aAAAjC,EAAc,YAAApF,EAAa,UAAAnD,EAAW,SAAAtB,EAAU,SAAAxM,EAAU,WAAA8V,EAAY,KAAA+B,CAAM,EAAGvB,EACjFpnB,EAAQwoB,EAAa,WACrBa,EAAetH,EAAYoH,CAAa,EACxCG,EAAc1K,EAAUwK,CAAW,EACnCxc,EAAQ,GACd,IAAIpQ,EAAO6sB,EACX,KAAOvY,EAAStU,EAAM8sB,CAAW,GAAK1C,EAAWpqB,EAAM8sB,CAAW,GAC9D1c,EAAM,KAAKpQ,EAAK,YAAa,GAC7BA,EAAO8gB,EAAS9gB,EAAM,CAAC,EAE3B,OAAOoQ,EAAM,IAAKphH,GAAU,CACxB,MAAM+iB,EAAY46G,GAAiB,IAAIR,EAAKn9H,EAAOw0G,CAAK,EAAImnB,EAAagC,CAAa,GACjFnpB,GACGopB,GACA,IAAIT,EAAKn9H,EAAOw0G,CAAK,EAAImnB,EAAaiC,CAAW,GACrD,GACEljE,EAAQw9D,EAAW,mBAAmBl4H,CAAK,EACjD,MAAO,CACH,MAAAA,EACA,MAAA06D,EACA,SAAA33C,CACZ,CACA,CAAK,CACL,CCpBO,SAASg7G,GAAU1nB,EAAMhtG,EAEhCuyH,EAAUK,GAAgB,CACtB,OAAOL,EAAQ,OAAOvlB,EAAM,SAAUhtG,CAAO,CACjD,CAKO,MAAM20H,IAAeD,GCXrB,SAASE,IAAc5nB,EAE9BgZ,EAAWhmH,EAEXuyH,EAAUK,GAAgB,CACtB,IAAIvhE,EAAQkhE,EAAQ,OAAOvlB,EAAM,OAAQhtG,CAAO,EAChD,OAAIgmH,GAAA,MAAAA,EAAW,QACX30D,EAAQ,UAAUA,CAAK,IAEpBA,CACX,CCNO,SAASwjE,GAAe7nB,EAE/BgZ,EAAWhmH,EAEXuyH,EAAUK,GAAgB,CACtB,IAAIvhE,EAAQkhE,EAAQ,OAAOvlB,EAAM,OAAQhtG,CAAO,EAChD,OAAIgmH,EAAU,QACV30D,EAAQ,UAAUA,CAAK,IACvB20D,EAAU,WACV30D,EAAQ,GAAGA,CAAK,cACbA,CACX,CAEO,MAAMyjE,IAAWD,GCjBjB,SAASE,KAAW,CACvB,MAAO,EACX,CCFO,SAASC,IAAmBh1H,EAAS,CACxC,MAAO,kBACX,CCFO,SAASi1H,IAEhB9pB,EAAOnrG,EAAS,CACZ,MAAO,sBACX,CCJO,SAASk1H,IAEhB/pB,EAAOnrG,EAAS,CACZ,MAAO,0BACX,CCHO,SAASm1H,IAAanoB,EAAMhtG,EAEnCuyH,EAAUK,GAAgB,CACtB,OAAOL,EAAQ,OAAOvlB,EAAM,OAAQhtG,CAAO,CAC/C,CCLO,SAASo1H,IAAgBlC,EAAYlzH,EAAS,CACjD,MAAO,QAAQkzH,CAAU,EAC7B,CCFO,SAASmC,IAAsBr1H,EAAS,CAC3C,MAAO,aACX,CCFO,SAASs1H,IAAkBt1H,EAAS,CACvC,MAAO,iBACX,8UCRMu1H,IAAyB,GAExB,SAASC,IAASC,EAAeC,EAAS3rG,EAAOwoG,EAAS,CAC7D,MAAMoD,EAAaF,EAAc,CAAC,EAC5BG,EAAYH,EAAcA,EAAc,OAAS,CAAC,EAClD,CAAE,QAAArB,EAAS,WAAAyB,EAAY,OAAAlzB,EAAQ,aAAAinB,CAAc,EAAG7/F,GAAS,GACzD,CAAE,YAAAsjG,EAAa,UAAA1D,EAAW,eAAA2D,EAAgB,aAAAzD,EAAc,QAAA1B,EAAS,yBAAAY,EAA0B,2BAAAO,EAA4B,QAAAvN,EAAS,WAAA+N,EAAY,KAAAgK,CAAI,EAAKvB,EACrJuD,EAAqB1B,EACrB9G,EAAeqI,CAAU,EACzBtI,EAAYsI,EAAY,CACtB,aAAA/L,EACA,OAAAjnB,CACZ,CAAS,EACCozB,EAAkB3B,EAClBvK,EAAaC,EAAW8L,CAAS,CAAC,EAClCjM,EAAUG,EAAW8L,CAAS,EAAG,CAC/B,aAAAhM,EACA,OAAAjnB,CACZ,CAAS,EACCqzB,EAAUjN,EAAyBgN,EAAiBD,CAAkB,EACtEG,EAAY3M,EAA2BsM,EAAWD,CAAU,EAAI,EAChE3D,EAAQ,GACd,QAASx3H,EAAI,EAAGA,GAAKw7H,EAASx7H,IAAK,CAC/B,MAAMwyG,EAAOmb,EAAQ2N,EAAoBt7H,CAAC,EAC1C,GAAIk7H,GAAW3Z,EAAQ/O,EAAM0oB,CAAO,EAChC,MAEJ1D,EAAM,KAAK,IAAI8B,EAAK9mB,CAAI,CAAC,CAC5B,CAED,MAAMkpB,EAAaX,IAAyBU,EAC5C,GAAIJ,GAAc7D,EAAM,OAASkE,EAC7B,QAAS17H,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,MAAMwyG,EAAOmb,EAAQ6J,EAAMA,EAAM,OAAS,CAAC,EAAG,CAAC,EAC/CA,EAAM,KAAK,IAAI8B,EAAK9mB,CAAI,CAAC,CAC5B,CAEL,OAAOglB,CACX,CCnCO,SAASmE,IAAQC,EAAgB,CACpC,MAAMC,EAAc,GACpB,OAAOD,EAAe,OAAO,CAACje,EAAMhN,IAAU,CAC1C,MAAMkrB,EAAc,GACdC,EAAWnrB,EAAM,MAAM,OAAO,CAACmrB,EAAU9oB,IACpC,CAAC,GAAG8oB,EAAU,GAAG9oB,EAAK,IAAI,EAClC6oB,CAAW,EACd,MAAO,CAAC,GAAGle,EAAM,GAAGme,CAAQ,CAC/B,EAAED,CAAW,CAClB,CCbO,SAASE,IAAiBC,EAAqBC,EAAkB1sG,EAAOwoG,EAAS,CACpF,KAAM,CAAE,eAAAmE,EAAiB,CAAG,EAAG3sG,EACzBkuF,EAAS,GACf,QAASz9G,EAAI,EAAGA,EAAIk8H,EAAgBl8H,IAAK,CACrC,MAAM2wG,EAAQonB,EAAQ,UAAUiE,EAAqBh8H,CAAC,EACtD,GAAIi8H,GAAoBtrB,EAAQsrB,EAC5B,MAEJxe,EAAO,KAAK9M,CAAK,CACpB,CACD,OAAO8M,CACX,CCVO,SAAS0e,IAAgB5sG,EAAOwoG,EAAS,CAC5C,KAAM,CAAE,MAAApnB,EAAO,aAAAyrB,EAAc,MAAAC,EAAQ,IAAItE,EAAQ,KAAQ,eAAAmE,EAAiB,EAAG,SAAAI,EAAU,WAAAC,CAAU,EAAKhtG,EACtG,IAAIitG,EAAe7rB,GAASyrB,GAAgBC,EAC5C,KAAM,CAAE,2BAAAvN,EAA4B,UAAAhB,EAAW,aAAAgK,CAAY,EAAKC,EAEhE,GAAIuE,GAAYxN,EAA2BwN,EAAUE,CAAY,EAAI,EAAG,CACpE,MAAMr8F,EAAS,IAAM+7F,EAAiB,GACtCM,EAAe1O,EAAUwO,EAAUn8F,CAAM,CAC5C,CAED,OAAIo8F,GAAczN,EAA2B0N,EAAcD,CAAU,EAAI,IACrEC,EAAeD,GAEZzE,EAAa0E,CAAY,CACpC,CCPO,MAAMC,EAAY,CACrB,YAAYjqB,EAAM2mB,EAElBpB,EAAUK,GAAgB,CACtB,KAAK,KAAO5lB,EACZ,KAAK,aAAe2mB,EACpB,KAAK,QAAU,GAAQA,GAAgB,CAACpB,EAAQ,YAAYvlB,EAAM2mB,CAAY,GAC9E,KAAK,QAAUpB,CAClB,CAKD,UAAU5iB,EAAK,CACX,OAAQ,KAAK,QAAQ,UAAUA,EAAI,KAAM,KAAK,IAAI,GAC9C,KAAK,QAAQ,YAAYA,EAAI,aAAc,KAAK,YAAY,CACnE,CACL,CCxBO,MAAMunB,GAAc,CACvB,YAAY/rB,EAAO+M,EAAO,CACtB,KAAK,KAAO/M,EACZ,KAAK,MAAQ+M,CAChB,CACL,CCLO,MAAMif,GAAa,CACtB,YAAYjE,EAAY/a,EAAM,CAC1B,KAAK,KAAOA,EACZ,KAAK,WAAa+a,CACrB,CACL,CCJO,SAASkE,IAEhB3B,EAEAzD,EAEAjoG,EAAOwoG,EAAS,CACZ,KAAM,CAAE,YAAAlF,EAAa,UAAA1D,EAAW,eAAA2D,EAAgB,aAAAzD,EAAc,WAAAC,EAAY,QAAA3B,EAAS,QAAAkG,EAAS,WAAAP,CAAY,EAAGyE,EACrG8E,EAAkB5B,EAAc,OAAO,CAACxd,EAAQ9M,IAAU,CAC5D,MAAMmsB,EAAuBvtG,EAAM,QAC7BujG,EAAeniB,CAAK,EACpBkiB,EAAYliB,EAAO,CACjB,OAAQphF,EAAM,OACd,aAAcA,EAAM,YACpC,CAAa,EACCwtG,EAAqBxtG,EAAM,QAC3B8/F,EAAaC,EAAW3e,CAAK,CAAC,EAC9Bwe,EAAUG,EAAW3e,CAAK,EAAG,CAC3B,OAAQphF,EAAM,OACd,aAAcA,EAAM,YACpC,CAAa,EAECytG,EAAaxF,EAAM,OAAQhlB,GACtBA,GAAQsqB,GAAwBtqB,GAAQuqB,CAClD,EACD,GAAIxtG,EAAM,YAAcytG,EAAW,OAAS,GAAI,CAC5C,MAAMtB,EAAalE,EAAM,OAAQhlB,GACrBA,EAAOuqB,GAAsBvqB,GAAQmb,EAAQoP,EAAoB,CAAC,CAC7E,EACDC,EAAW,KAAK,GAAGtB,CAAU,CAChC,CACD,MAAMhe,EAAQsf,EAAW,OAAO,CAACtf,EAAOlL,IAAS,CAC7C,MAAMkmB,EAAanpG,EAAM,QACnB+jG,EAAW9gB,CAAI,EACfqhB,EAAQrhB,EAAM,CACZ,OAAQjjF,EAAM,OACd,aAAcA,EAAM,aACpB,sBAAuBA,EAAM,qBACjD,CAAiB,EACCyjF,EAAO0K,EAAM,KAAM1K,GAASA,EAAK,aAAe0lB,CAAU,EAC1DvjB,EAAM,IAAIsnB,GAAYjqB,EAAM7B,EAAOonB,CAAO,EAChD,OAAK/kB,EAIDA,EAAK,KAAK,KAAKmC,CAAG,EAHlBuI,EAAM,KAAK,IAAIif,IAAajE,EAAY,CAACvjB,CAAG,CAAC,CAAC,EAK3CuI,CACV,EAAE,CAAE,GACCuf,EAAiB,IAAIP,IAAc/rB,EAAO+M,CAAK,EACrD,OAAAD,EAAO,KAAKwf,CAAc,EACnBxf,CACV,EAAE,CAAE,GACL,OAAKluF,EAAM,cAIAstG,EAAgB,UAHhBA,CAKf,CC5DO,SAASK,IAAa3tG,EAAOwoG,EAAS,OACzC,GAAI,CAAE,WAAAwE,EAAY,SAAAD,CAAU,EAAG/sG,EAC/B,KAAM,CAAE,YAAAmjG,EAAa,WAAAtE,EAAY,aAAA0J,EAAc,WAAAxI,EAAY,SAAArB,EAAU,UAAAsB,EAAW,KAAA+J,CAAM,EAAGvB,EAEnF,CAAE,SAAAoF,EAAU,OAAAC,EAAQ,UAAAC,EAAW,QAAAC,CAAO,EAAK/tG,EAC7C,CAACgtG,GAAcc,IACfd,EAAac,GAEb,CAACd,GAAcY,IACfZ,EAAa,IAAIjD,EAAK6D,EAAU,EAAG,CAAC,GAEpC,CAACb,GAAYgB,IACbhB,EAAWgB,GAEX,CAAChB,GAAYc,IACbd,EAAW,IAAIhD,EAAK8D,EAAQ,GAAI,EAAE,GAEtC,MAAMG,GAAelhI,EAAAkzB,EAAM,gBAAN,YAAAlzB,EAAqB,WAAW,YACrD,OAAIkgI,EACAA,EAAazE,EAAayE,CAAU,EAE/BY,EACLZ,EAAa,IAAIjD,EAAK6D,EAAU,EAAG,CAAC,EAE/B,CAACZ,GAAcgB,IACpBhB,EAAa7J,EAAYzE,EAAS1+F,EAAM,OAAS,IAAI+pG,EAAQ,IAAI,CAAC,GAElEgD,EACAA,EAAWhN,EAAWgN,CAAQ,EAEzBc,EACLd,EAAW,IAAIhD,EAAK8D,EAAQ,GAAI,EAAE,EAE7B,CAACd,GAAYiB,IAClBjB,EAAW/M,EAAUhgG,EAAM,OAAS,IAAI+pG,CAAM,GAE3C,CACHiD,GAAanO,EAAWmO,CAAU,EAClCD,GAAWlO,EAAWkO,CAAQ,CACtC,CACA,CChCO,SAASkB,IAAaxB,EAAqBC,EAAkBz2H,EAASuyH,EAAS,CAClF,GAAIvyH,EAAQ,kBACR,OAEJ,KAAM,CAAE,gBAAAi4H,EAAiB,eAAAvB,EAAiB,CAAC,EAAK12H,EAC1C,CAAE,aAAAsyH,EAAc,UAAAhK,EAAW,2BAAAgB,CAA0B,EAAKiJ,EAC1D53F,EAASs9F,EAAkBvB,EAAiB,EAC5CvrB,EAAQmnB,EAAakE,CAAmB,EAC9C,GAAI,CAACC,EACD,OAAOnO,EAAUnd,EAAOxwE,CAAM,EAGlC,GAAI,EADe2uF,EAA2BmN,EAAkBD,CAAmB,EAClEE,GAIjB,OAAOpO,EAAUnd,EAAOxwE,CAAM,CAClC,CChBO,SAASu9F,IAAiB1B,EAAqB2B,EAAoBn4H,EAASuyH,EAAS,CACxF,GAAIvyH,EAAQ,kBACR,OAEJ,KAAM,CAAE,gBAAAi4H,EAAiB,eAAAvB,CAAgB,EAAG12H,EACtC,CAAE,aAAAsyH,EAAc,UAAAhK,EAAW,2BAAAgB,CAA0B,EAAKiJ,EAC1D53F,EAASs9F,EAAmBvB,GAAkB,EAAK,EACnDvrB,EAAQmnB,EAAakE,CAAmB,EAC9C,GAAI,CAAC2B,EACD,OAAO7P,EAAUnd,EAAO,CAACxwE,CAAM,EAGnC,GAAI,EADe2uF,EAA2Bne,EAAOgtB,CAAkB,GACrD,GAGlB,OAAO7P,EAAUnd,EAAO,CAACxwE,CAAM,CACnC,CCzBO,SAASy9F,IAASngB,EAAQ,CAC7B,MAAMogB,EAAe,GACrB,OAAOpgB,EAAO,OAAO,CAACC,EAAO/M,IAClB,CAAC,GAAG+M,EAAO,GAAG/M,EAAM,KAAK,EACjCktB,CAAY,CACnB,CCOO,SAASC,IAAmB/1H,EAAcg2H,EAAiB,CAC9D,KAAM,CAACC,EAAmB5iC,CAAQ,EAAI0D,EAAQ,SAAC/2F,CAAY,EAE3D,MAAO,CADOg2H,IAAoB,OAAYC,EAAoBD,EACnD3iC,CAAQ,CAC3B,CCNO,SAAS6iC,IAAY1uG,EAAOwoG,EAAS,CACxC,KAAM,CAACqB,EAAUC,CAAM,EAAI6D,IAAa3tG,EAAOwoG,CAAO,EAChD,CAAE,aAAAD,EAAc,WAAAxI,CAAY,EAAGyI,EAC/ByE,EAAeL,IAAgB5sG,EAAOwoG,CAAO,EAC7C,CAACoD,EAAY+C,CAAa,EAAIJ,IAAmBtB,EAAcjtG,EAAM,MAAQuoG,EAAavoG,EAAM,KAAK,EAAI,MAAS,EAElH0rG,EAAgBc,IAAiBZ,EAAY9B,EAAQ9pG,EAAOwoG,CAAO,EAEnEP,EAAQwD,IAASC,EAAe1rG,EAAM,SAAW+/F,EAAW//F,EAAM,QAAQ,EAAI,OAAWA,EAAOwoG,CAAO,EAEvGta,EAASmf,IAAU3B,EAAezD,EAAOjoG,EAAOwoG,CAAO,EAEvDra,EAAQkgB,IAASngB,CAAM,EAEvBE,EAAOge,IAAQle,CAAM,EACrB0gB,EAAgBT,IAAiBvC,EAAY/B,EAAU7pG,EAAOwoG,CAAO,EACrEqG,EAAYZ,IAAarC,EAAY9B,EAAQ9pG,EAAOwoG,CAAO,EAC3D,CAAE,kBAAAsG,EAAmB,cAAAC,CAAe,EAAG/uG,EACvCgvG,EAAmBppB,GAAQuI,EAAM,KAAM1K,GAASA,EAAK,KAAK,KAAMxuE,GAAMA,EAAE,UAAU2wE,CAAG,CAAC,CAAC,EACvFqpB,EAAahsB,GAAS,CACxB,GAAI6rB,EACA,OAEJ,IAAII,EAAW3G,EAAatlB,CAAI,EAE5B4mB,GAAYqF,EAAW3G,EAAasB,CAAQ,IAC5CqF,EAAW3G,EAAasB,CAAQ,GAGhCC,GAAUoF,EAAW3G,EAAauB,CAAM,IACxCoF,EAAW3G,EAAauB,CAAM,GAElC6E,EAAcO,CAAQ,EACtBH,GAAA,MAAAA,EAAgBG,EACxB,EAmBI,MAXiB,CACb,OAAAhhB,EACA,MAAAC,EACA,KAAAC,EACA,SAAAyb,EACA,OAAAC,EACA,cAAA8E,EACA,UAAAC,EACA,UAAAI,EACA,QAhBarpB,GAAQ,CAEjBopB,EAAgBppB,CAAG,GAGvBqpB,EAAUrpB,EAAI,IAAI,CAC1B,CAWA,CAEA,CC/DO,MAAMupB,IAAmB5+C,EAAa,cAAC,MAAS,ECDhD,SAAS6+C,IAAqBhhB,EAAMihB,EAAc7wC,EAAY8wC,EAAa,CAC9E,IAAIC,EACA11H,EAAQ,EACR23D,EAAQ,GACZ,KAAO33D,EAAQu0G,EAAK,QAAU,CAAC58C,GAAO,CAClC,MAAMo0C,EAAMwI,EAAKv0G,CAAK,EAChBoiH,EAAYoT,EAAazpB,CAAG,EAC9B,CAACqW,EAAUH,GAAQ,QAAQ,GAC3B,CAACG,EAAUH,GAAQ,MAAM,GACzB,CAACG,EAAUH,GAAQ,OAAO,IACtBG,EAAUH,GAAQ,OAAO,GAIpBwT,GAAA,MAAAA,EAAa,UAAU1pB,IAIvBpnB,EAAWonB,EAAI,IAAI,GAInBqW,EAAUH,GAAQ,KAAK,KAC5ByT,EAAc3pB,EACdp0C,EAAQ,IAGhB33D,GACH,CACD,OAAK01H,IAEDA,EAAcnhB,EAAK,KAAMxI,GAAQ,CAC7B,MAAMphG,EAAI6qH,EAAazpB,CAAG,EAC1B,MAAO,CAACphG,EAAEs3G,GAAQ,QAAQ,GAAK,CAACt3G,EAAEs3G,GAAQ,MAAM,GAAK,CAACt3G,EAAEs3G,GAAQ,OAAO,CACnF,CAAS,GAEEyT,CACX,CC/BO,SAASC,GAAkBC,EAAOxsB,EAEzCysB,EAAc,GAEdlH,EAAUK,GAAgB,CACtB,GAAI,CAAE,KAAAzyF,EAAM,GAAArO,CAAI,EAAG0nG,EACnB,KAAM,CAAE,yBAAAzQ,EAA0B,UAAA4I,CAAW,EAAGY,EAChD,OAAIpyF,GAAQrO,GACgBi3F,EAAyBj3F,EAAIqO,CAAI,EAAI,IAEzD,CAACA,EAAMrO,CAAE,EAAI,CAACA,EAAIqO,CAAI,GAER4oF,EAAyB/b,EAAM7sE,CAAI,IAAMs5F,EAAc,EAAI,IACzE1Q,EAAyBj3F,EAAIk7E,CAAI,IAAMysB,EAAc,EAAI,IAG7D,CAACA,GAAe3nG,EACT6/F,EAAU7/F,EAAIk7E,CAAI,EAEzB,CAACysB,GAAet5F,EACTwxF,EAAUxxF,EAAM6sE,CAAI,EAExB,EACX,CCzBO,SAAS0sB,IAAen9G,EAAS,CACpC,MAAO,GAAQA,GACX,OAAOA,GAAY,UACnB,WAAYA,GACZ,UAAWA,EACnB,CAMO,SAASo9G,GAAYhjI,EAAO,CAC/B,MAAO,GAAQA,GAAS,OAAOA,GAAU,UAAY,SAAUA,EACnE,CAMO,SAASijI,IAAgBjjI,EAAO,CACnC,MAAO,GAAQA,GAAS,OAAOA,GAAU,UAAY,UAAWA,EACpE,CAMO,SAASkjI,IAAiBljI,EAAO,CACpC,MAAO,GAAQA,GAAS,OAAOA,GAAU,UAAY,WAAYA,EACrE,CAMO,SAASmjI,IAAgBnjI,EAAO,CACnC,MAAO,GAAQA,GAAS,OAAOA,GAAU,UAAY,cAAeA,EACxE,CAMO,SAASojI,IAAapjI,EAAO47H,EAAS,CACzC,OAAO,MAAM,QAAQ57H,CAAK,GAAKA,EAAM,MAAM47H,EAAQ,MAAM,CAC7D,CC5BO,SAASyH,GAAmBhtB,EAAMnvF,EAAU00G,EAAUK,GAAgB,CACzE,MAAMqH,EAAe,MAAM,QAAQp8G,CAAQ,EAAiBA,EAAb,CAACA,CAAQ,EAClD,CAAE,UAAA8zG,EAAW,yBAAA5I,EAA0B,QAAAhN,CAAO,EAAKwW,EACzD,OAAO0H,EAAY,KAAM19G,GAAY,CACjC,GAAI,OAAOA,GAAY,UACnB,OAAOA,EAEX,GAAIg2G,EAAQ,OAAOh2G,CAAO,EACtB,OAAOo1G,EAAU3kB,EAAMzwF,CAAO,EAElC,GAAIw9G,IAAax9G,EAASg2G,CAAO,EAC7B,OAAOh2G,EAAQ,SAASywF,CAAI,EAEhC,GAAI2sB,GAAYp9G,CAAO,EACnB,OAAOg9G,GAAkBh9G,EAASywF,EAAM,GAAOulB,CAAO,EAE1D,GAAIuH,IAAgBv9G,CAAO,EACvB,OAAK,MAAM,QAAQA,EAAQ,SAAS,EAG7BA,EAAQ,UAAU,SAASywF,EAAK,OAAQ,GAFpCzwF,EAAQ,YAAcywF,EAAK,OAAM,EAIhD,GAAI0sB,IAAen9G,CAAO,EAAG,CACzB,MAAM29G,EAAanR,EAAyBxsG,EAAQ,OAAQywF,CAAI,EAC1DmtB,EAAYpR,EAAyBxsG,EAAQ,MAAOywF,CAAI,EACxDotB,EAAcF,EAAa,EAC3BG,EAAaF,EAAY,EAE/B,OADyBpe,EAAQx/F,EAAQ,OAAQA,EAAQ,KAAK,EAEnD89G,GAAcD,EAGdA,GAAeC,CAE7B,CACD,OAAIT,IAAgBr9G,CAAO,EAChBwsG,EAAyB/b,EAAMzwF,EAAQ,KAAK,EAAI,EAEvDs9G,IAAiBt9G,CAAO,EACjBwsG,EAAyBxsG,EAAQ,OAAQywF,CAAI,EAAI,EAExD,OAAOzwF,GAAY,WACZA,EAAQywF,CAAI,EAEhB,EACf,CAAK,CACL,CCnEO,SAASstB,IAAiBC,EAAQC,EAASC,EAAS7G,EAAUC,EAAQ9pG,EAAOwoG,EAAS,CACzF,KAAM,CAAE,aAAA3I,EAAc,OAAAjnB,EAAQ,QAAAyxB,CAAO,EAAKrqG,EACpC,CAAE,QAAAo+F,EAAS,UAAAG,EAAW,SAAAG,EAAU,SAAAD,EAAU,eAAA8E,EAAgB,aAAAzD,EAAc,YAAAwD,EAAa,UAAA1D,EAAW,IAAA91F,EAAK,IAAA0zB,CAAG,EAAKgrE,EAWnH,IAAImI,EAVY,CACZ,IAAKvS,EACL,KAAMK,EACN,MAAOF,EACP,KAAMG,EACN,YAAczb,GAASonB,EACjB9G,EAAetgB,CAAI,EACnBqgB,EAAYrgB,EAAM,CAAE,OAAArK,EAAQ,aAAAinB,CAAY,CAAE,EAChD,UAAY5c,GAASonB,EAAUvK,EAAa7c,CAAI,EAAI2c,EAAU3c,EAAM,CAAE,OAAArK,EAAQ,aAAAinB,CAAY,CAAE,CACpG,EACgC2Q,CAAM,EAAEE,EAASD,IAAY,QAAU,EAAI,EAAE,EACzE,OAAIA,IAAY,UAAY5G,EACxB8G,EAAgB7mG,EAAI,CAAC+/F,EAAU8G,CAAa,CAAC,EAExCF,IAAY,SAAW3G,IAC5B6G,EAAgBnzE,EAAI,CAACssE,EAAQ6G,CAAa,CAAC,GAExCA,CACX,CCnBO,SAASC,GAAaJ,EAAQC,EAErCI,EAAQzC,EAAoB1B,EAAkB1sG,EAAOwoG,EAASsI,EAAU,EAAG,CACvE,GAAIA,EAAU,IAEV,OAEJ,MAAMH,EAAgBJ,IAAiBC,EAAQC,EAASI,EAAO,KAC/DzC,EAAoB1B,EAAkB1sG,EAAOwoG,CAAO,EAC9CztC,EAAa,GAAQ/6D,EAAM,UAAYiwG,GAAmBU,EAAe3wG,EAAM,SAAUwoG,CAAO,GAChGlrC,EAAW,GAAQt9D,EAAM,QAAUiwG,GAAmBU,EAAe3wG,EAAM,OAAQwoG,CAAO,GAC1FuI,EAAcJ,EACdK,EAAW,IAAI9D,GAAYyD,EAAeI,EAAavI,CAAO,EACpE,MAAI,CAACztC,GAAc,CAACuC,EACT0zC,EAGJJ,GAAaJ,EAAQC,EAASO,EAAU5C,EAAoB1B,EAAkB1sG,EAAOwoG,EAASsI,EAAU,CAAC,CACpH,CCjBO,SAASG,IAASjxG,EAAOy6E,EAAU40B,EAAc7wC,EAAYgqC,EAAS,CACzE,KAAM,CAAE,UAAA0I,CAAW,EAAGlxG,EAChB,CAACsvG,EAAa6B,CAAc,EAAI5hC,EAAQ,WACxCggC,EAAcH,IAAqB30B,EAAS,KAAM40B,EAAc7wC,IAAe,IAAM,IAAQ8wC,CAAW,EACxG,CAAC8B,EAAYC,CAAU,EAAI9hC,EAAQ,SAAC2hC,EAAY3B,EAAc,MAAS,EAwB7E,MAPiB,CACb,cAJmB3pB,GACZ,GAAQ2pB,GAAA,MAAAA,EAAa,UAAU3pB,IAItC,WAAAyrB,EACA,QAASD,EACT,KApBS,IAAM,CACfD,EAAeC,CAAU,EACzBC,EAAW,MAAS,CAC5B,EAkBQ,UAjBc,CAACb,EAAQC,IAAY,CACnC,GAAI,CAACW,EACD,OACJ,MAAM5lC,EAAYolC,GAAaJ,EAAQC,EAASW,EAAY32B,EAAS,SAAUA,EAAS,OAAQz6E,EAAOwoG,CAAO,EACzGh9B,IAELiP,EAAS,QAAQjP,CAAS,EAC1B6lC,EAAW7lC,CAAS,EAC5B,CAUA,CAEA,CC1BO,SAAS8lC,IAAgBljB,EAAMpuF,EAAOwoG,EAAS,CAClD,KAAM,CAAE,SAAA74G,EAAU,OAAAyX,EAAQ,UAAA60F,EAAW,gBAAAsV,EAAiB,MAAAzE,CAAO,EAAG9sG,EAC1D,CAAE,UAAA4nG,EAAW,YAAAG,EAAa,KAAAgC,CAAI,EAAKvB,EACnCgJ,EAAuB,CACzB,CAAC1V,GAAQ,OAAO,EAAG,CAAE,EACrB,CAACA,GAAQ,OAAO,EAAG,CAAE,EACrB,CAACA,GAAQ,QAAQ,EAAG,CAAE,EACtB,CAACA,GAAQ,MAAM,EAAG,CAAE,EACpB,CAACA,GAAQ,KAAK,EAAG,CAAE,CAC3B,EACU2V,EAAqB,GACrBC,EAAwB,CAC1B,CAAC3V,GAAe,SAAS,EAAG,CAAE,EAC9B,CAACA,GAAe,YAAY,EAAG,CAAE,EACjC,CAACA,GAAe,WAAW,EAAG,CAAE,EAChC,CAACA,GAAe,QAAQ,EAAG,CAAE,CACrC,EACI,UAAWnW,KAAOwI,EAAM,CACpB,KAAM,CAAE,KAAAnL,EAAM,aAAA2mB,CAAc,EAAGhkB,EACzB+rB,EAAY,GAAQ/H,GAAgB,CAAC7B,EAAY9kB,EAAM2mB,CAAY,GACnE7uC,EAAa,GAAQprE,GAAYsgH,GAAmBhtB,EAAMtzF,EAAU64G,CAAO,GAC3ElrC,EAAW,GAAQl2D,GAAU6oG,GAAmBhtB,EAAM77E,EAAQohG,CAAO,IACtE,CAAC+I,GAAmBI,EACnBC,EAAUhK,EAAU3kB,EAAM6pB,GAAS,IAAI/C,CAAM,EAC/C4H,GACAH,EAAqB,QAAQ,KAAK5rB,CAAG,EACrC7qB,GACAy2C,EAAqB,SAAS,KAAK5rB,CAAG,EACtCtoB,GACAk0C,EAAqB,OAAO,KAAK5rB,CAAG,EACpCgsB,GACAJ,EAAqB,MAAM,KAAK5rB,CAAG,EAEnCqW,GACA,OAAO,KAAKA,CAAS,EAAE,QAAS/vH,GAAS,CACrC,MAAM2lI,EAAgB5V,GAAA,YAAAA,EAAY/vH,GAClB2lI,GACV5B,GAAmBhtB,EAAM4uB,EAAerJ,CAAO,IAIjDiJ,EAAmBvlI,CAAI,EACvBulI,EAAmBvlI,CAAI,EAAE,KAAK05G,CAAG,EAGjC6rB,EAAmBvlI,CAAI,EAAI,CAAC05G,CAAG,EAEnD,CAAa,CAER,CACD,OAAQA,GAAQ,CAEZ,MAAMksB,EAAW,CACb,CAAChW,GAAQ,OAAO,EAAG,GACnB,CAACA,GAAQ,QAAQ,EAAG,GACpB,CAACA,GAAQ,MAAM,EAAG,GAClB,CAACA,GAAQ,OAAO,EAAG,GACnB,CAACA,GAAQ,KAAK,EAAG,EAC7B,EACciW,EAAkB,CACpB,CAAChW,GAAe,SAAS,EAAG,GAC5B,CAACA,GAAe,YAAY,EAAG,GAC/B,CAACA,GAAe,WAAW,EAAG,GAC9B,CAACA,GAAe,QAAQ,EAAG,EACvC,EACciW,EAAkB,GAExB,UAAW9lI,KAAQslI,EAAsB,CACrC,MAAMpjB,EAAOojB,EAAqBtlI,CAAI,EACtC4lI,EAAS5lI,CAAI,EAAIkiH,EAAK,KAAMn5E,GAAMA,IAAM2wE,CAAG,CAC9C,CACD,UAAW15G,KAAQwlI,EAAuB,CACtC,MAAMtjB,EAAOsjB,EAAsBxlI,CAAI,EACvC6lI,EAAgB7lI,CAAI,EAAIkiH,EAAK,KAAMn5E,GAAMA,IAAM2wE,CAAG,CACrD,CACD,UAAW15G,KAAQulI,EACfO,EAAgB9lI,CAAI,EAAIulI,EAAmBvlI,CAAI,EAAE,KAAM+oC,GAAMA,IAAM2wE,CAAG,EAE1E,MAAO,CACH,GAAGmsB,EACH,GAAGD,EAEH,GAAGE,CACf,CACA,CACA,CC3FO,SAASC,IAASjyG,EAAOwoG,EAAS,CACrC,KAAM,CAAE,SAAU0J,EAAmB,SAAAC,EAAU,SAAAvkC,EAAU,KAAA5uF,CAAM,EAAGghB,EAC5D,CAACwM,EAAU4lG,CAAW,EAAI5qE,GAAM,SAAS0qE,CAAiB,EAC1D,CAAE,UAAAtK,CAAW,EAAGY,EAEtBhhE,GAAM,UAAU,IAAM,CAClB4qE,EAAYF,CAAiB,CACrC,EAAO,CAAClzH,EAAMkzH,CAAiB,CAAC,EAC5B,MAAM1zC,EAAcykB,IACTz2E,GAAA,YAAAA,EAAU,KAAMyI,GAAM2yF,EAAU3yF,EAAGguE,CAAI,KAAM,GAElD,CAAE,IAAAzlD,EAAK,IAAA1zB,CAAK,EAAG9J,EA4BrB,MAAO,CACH,SAAAwM,EACA,OA7BW,CAAC6lG,EAAapW,EAAWl8G,IAAM,CAC1C,IAAIuyH,EAAW,CAAC,GAAI9lG,GAAY,CAAE,GAClC,GAAIgyD,EAAW6zC,CAAW,EAAG,CAKzB,IAJI7lG,GAAA,YAAAA,EAAU,UAAWgxB,GAIrB20E,IAAY3lG,GAAA,YAAAA,EAAU,UAAW,EAEjC,OAEJ8lG,EAAW9lG,GAAA,YAAAA,EAAU,OAAQyI,GAAM,CAAC2yF,EAAU3yF,EAAGo9F,CAAW,EAC/D,MAEO7lG,GAAA,YAAAA,EAAU,UAAW1C,EAErBwoG,EAAW,CAACD,CAAW,EAIvBC,EAAW,CAAC,GAAGA,EAAUD,CAAW,EAG5C,OAAAzkC,GAAA,MAAAA,EAAW0kC,EAAUD,EAAapW,EAAWl8G,GAC7CqyH,EAAYE,CAAQ,EACbA,CACf,EAIQ,WAAA9zC,CACR,CACA,CCpCO,SAAS+zC,IAEhBtvB,EAEAuvB,EAAch1E,EAAM,EAAG1zB,EAAM,EAAGqoG,EAAW,GAE3C3J,EAAUK,GAAgB,CACtB,KAAM,CAAE,KAAAzyF,EAAM,GAAArO,GAAOyqG,GAAgB,GAC/B,CAAE,UAAA5K,EAAW,QAAA5V,EAAS,SAAAE,CAAQ,EAAKsW,EACzC,IAAIiH,EACJ,GAAI,CAACr5F,GAAQ,CAACrO,EAEV0nG,EAAQ,CAAE,KAAMxsB,EAAM,GAAIzlD,EAAM,EAAI,OAAYylD,WAE3C7sE,GAAQ,CAACrO,EAEV6/F,EAAUxxF,EAAM6sE,CAAI,EAEhBkvB,EACA1C,EAAQ,CAAE,KAAAr5F,EAAM,GAAI,MAAS,EAG7Bq5F,EAAQ,OAGPvd,EAASjP,EAAM7sE,CAAI,EAExBq5F,EAAQ,CAAE,KAAMxsB,EAAM,GAAI7sE,CAAI,EAI9Bq5F,EAAQ,CAAE,KAAAr5F,EAAM,GAAI6sE,CAAI,UAGvB7sE,GAAQrO,EAEb,GAAI6/F,EAAUxxF,EAAM6sE,CAAI,GAAK2kB,EAAU7/F,EAAIk7E,CAAI,EAEvCkvB,EACA1C,EAAQ,CAAE,KAAAr5F,EAAM,GAAArO,GAGhB0nG,EAAQ,eAGP7H,EAAUxxF,EAAM6sE,CAAI,EAEzBwsB,EAAQ,CAAE,KAAAr5F,EAAM,GAAIonB,EAAM,EAAI,OAAYylD,WAErC2kB,EAAU7/F,EAAIk7E,CAAI,EAEvBwsB,EAAQ,CAAE,KAAMxsB,EAAM,GAAIzlD,EAAM,EAAI,OAAYylD,WAE3CiP,EAASjP,EAAM7sE,CAAI,EAExBq5F,EAAQ,CAAE,KAAMxsB,EAAM,GAAIl7E,CAAE,UAEvBiqF,EAAQ/O,EAAM7sE,CAAI,EAEvBq5F,EAAQ,CAAE,KAAAr5F,EAAM,GAAI6sE,CAAI,UAEnB+O,EAAQ/O,EAAMl7E,CAAE,EAErB0nG,EAAQ,CAAE,KAAAr5F,EAAM,GAAI6sE,CAAI,MAGxB,OAAM,IAAI,MAAM,eAAe,EAIvC,GAAIwsB,GAAA,MAAAA,EAAO,OAAQA,GAAA,MAAAA,EAAO,IAAI,CAC1B,MAAMlgH,EAAOi5G,EAAQ,yBAAyBiH,EAAM,GAAIA,EAAM,IAAI,EAC9D3lG,EAAM,GAAKva,EAAOua,EAClB2lG,EAAQ,CAAE,KAAMxsB,EAAM,GAAI,MAAS,EAE9BzlD,EAAM,GAAKjuC,EAAOiuC,IACvBiyE,EAAQ,CAAE,KAAMxsB,EAAM,GAAI,MAAS,EAE1C,CACD,OAAOwsB,CACX,CCtFO,SAASgD,IAASzyG,EAAOwoG,EAAS,CACrC,KAAM,CAAE,SAAA74G,EAAU,gBAAA+iH,EAAiB,SAAUR,EAAmB,SAAAC,EAAU,SAAAvkC,CAAU,EAAG5tE,EACjF,CAACwM,EAAU4lG,CAAW,EAAI5qE,GAAM,SAAS0qE,CAAiB,EAEhE1qE,UAAM,UAAU,IAAM,CAClB4qE,EAAYF,CAAiB,CACrC,EAAO,CAACA,CAAiB,CAAC,EAyBf,CACH,SAAA1lG,EACA,OAzBW,CAAC6lG,EAAapW,EAAWl8G,IAAM,CAC1C,KAAM,CAAE,IAAAy9C,EAAK,IAAA1zB,CAAK,EAAG9J,EACf2yG,EAAWN,EACXE,IAAWF,EAAa7lG,EAAUgxB,EAAK1zB,EAAKqoG,EAAU3J,CAAO,EAC7D,OACN,GAAImK,GAAA,MAAAA,EAAU,MAAQA,EAAS,GAAI,CAC/B,IAAIC,EAAUD,EAAS,KACvB,KAAOnK,EAAQ,yBAAyBmK,EAAS,GAAIC,CAAO,EAAI,GAE5D,GADAA,EAAUpK,EAAQ,QAAQoK,EAAS,CAAC,EAChCF,GACA/iH,GACAsgH,GAAmB2C,EAASjjH,EAAU64G,CAAO,EAAG,CAEhDmK,EAAS,KAAON,EAChBM,EAAS,GAAK,OACd,KACH,CAER,CACD,OAAAP,EAAYO,CAAQ,EACpB/kC,GAAA,MAAAA,EAAW+kC,EAAUN,EAAapW,EAAWl8G,GACtC4yH,CACf,EAIQ,WA3BgB1vB,GAASz2E,GAAYgjG,GAAkBhjG,EAAUy2E,EAAM,GAAOulB,CAAO,CA4B7F,CACA,CCtCO,SAASqK,IAAU7yG,EAAOwoG,EAAS,CACtC,KAAM,CAAE,SAAU0J,EAAmB,SAAAC,EAAU,SAAAvkC,CAAQ,EAAK5tE,EACtD,CAACwM,EAAU4lG,CAAW,EAAI5qE,GAAM,SAAS0qE,CAAiB,EAC1D,CAAE,UAAAtK,CAAW,EAAGY,EAEtBhhE,UAAM,UAAU,IAAM,CAClB4qE,EAAYF,CAAiB,CACrC,EAAO,CAACA,CAAiB,CAAC,EAmBf,CACH,SAAA1lG,EACA,OAjBW,CAAC6lG,EAAapW,EAAWl8G,IAAM,CAC1C,IAAI6yH,EAAUP,EACd,MAAI,CAACF,GAAY3lG,GAAYA,GAAYo7F,EAAUyK,EAAa7lG,CAAQ,IAEpEomG,EAAU,QAEdR,EAAYQ,CAAO,EAEfhlC,GAAA,MAAAA,EAAWglC,EAASP,EAAapW,EAAWl8G,GAKzC6yH,CACf,EAIQ,WArBgBE,GACTtmG,EAAWo7F,EAAUp7F,EAAUsmG,CAAW,EAAI,EAqB7D,CACA,CC7BO,SAASC,IAAa/yG,EAAOwoG,EAAS,CACzC,MAAMwK,EAASH,IAAU7yG,EAAOwoG,CAAO,EACjCyK,EAAQhB,IAASjyG,EAAOwoG,CAAO,EAC/BiH,EAAQgD,IAASzyG,EAAOwoG,CAAO,EACrC,OAAQxoG,EAAM,KAAI,CACd,IAAK,SACD,OAAOgzG,EACX,IAAK,WACD,OAAOC,EACX,IAAK,QACD,OAAOxD,EACX,QACI,MACP,CACL,CCUO,SAASyD,IAAUlzG,EAAO,CAC7B,KAAM,CAAE,WAAAi+D,EAAY,WAAA6mC,EAAY,OAAAqO,EAAQ,QAAA3K,EAAS,OAAA5vB,EAAQ,WAAApvE,GAAe04D,UAAQ,KAAO,CACnF,QAASumC,IAAWzoG,EAAM,OAAO,EACjC,WAAY89F,IAAc99F,EAAM,UAAU,EAC1C,WAAYwpG,IAAcxpG,EAAM,UAAU,EAC1C,OAAQ,CAAE,GAAGozG,IAAe,GAAGpzG,EAAM,MAAQ,EAC7C,OAAQ,CAAE,GAAGkjG,GAAM,GAAGljG,EAAM,MAAQ,EACpC,WAAY,CAAE,GAAG2oG,IAAsB,EAAE,GAAG3oG,EAAM,UAAY,CACtE,GAAQ,CACAA,EAAM,WACNA,EAAM,WACNA,EAAM,QACNA,EAAM,WACNA,EAAM,OACNA,EAAM,MACd,CAAK,EACK,CAAE,cAAAqzG,EAAe,sBAAApP,EAAuB,KAAAjlH,EAAM,UAAAs0H,EAAW,WAAAC,EAAY,WAAAC,EAAY,aAAAC,EAAc,gBAAAC,EAAiB,gBAAAC,EAAiB,YAAAC,EAAa,YAAAC,EAAa,eAAAC,EAAgB,OAAAjvG,EAAQ,6BAAAkvG,EAA8B,4BAAAC,EAA6B,aAAAnU,CAAc,EAAG7/F,EAC/Pi0G,EAAgB,CAClB,OAAAr7B,EACA,aAAAinB,EACA,sBAAAoE,EACA,4BAAA+P,EACA,6BAAAD,CACR,EACUG,EAAeD,EACf,CAAE,cAAArL,EAAe,UAAAG,EAAW,oBAAAC,EAAqB,iBAAAE,EAAkB,uBAAAE,EAAwB,kBAAAC,EAAmB,mBAAAC,EAAoB,EAAGxE,EACrIrqB,GAAWi0B,IAAY1uG,EAAOwoG,CAAO,EACrC,CAAE,KAAApa,GAAM,OAAAF,GAAQ,SAAA2b,GAAU,OAAAC,GAAQ,cAAA8E,GAAe,UAAAC,GAAW,UAAAI,EAAW,EAAGx0B,GAC1E40B,GAAeiC,IAAgBljB,GAAMpuF,EAAOwoG,CAAO,EACnD,CAAE,WAAAhqC,EAAY,OAAA5zE,GAAQ,SAAUupH,IAAkBpB,IAAa/yG,EAAOwoG,CAAO,GAAK,GAClF,CAAE,KAAA4L,GAAM,QAAApzC,GAAS,cAAAqzC,GAAe,UAAAC,GAAW,WAAAjD,EAAU,EAAKJ,IAASjxG,EAAOy6E,GAAU40B,GAAc7wC,IAAe,IAAM,IAAQgqC,CAAO,EACtI,CAAE,eAAAsC,GAAgB,cAAAD,GAAe,UAAAF,GAAW,mBAAAM,GAAoB,SAAAD,GAAU,UAAAE,GAAW,cAAAC,GAAe,aAAAC,GAAc,gBAAAC,GAAiB,sBAAAC,GAAuB,kBAAAC,EAAiB,EAAK4H,EAChL9tB,GAAWnjB,UAAQ,IAAMkoC,IAAYxxB,EAAQ54E,EAAM,aAAcA,EAAM,QAASwoG,CAAO,EAAG,CAACA,EAAS5vB,EAAQ54E,EAAM,QAASA,EAAM,YAAY,CAAC,EAC9Iu0G,GAAgBv1H,IAAS,QAAau0H,IAAe,OACrDiB,GAAsB7vC,cAAY,IAAM,CACrCiqC,KAELK,GAAUL,EAAa,EACvBiF,GAAA,MAAAA,EAAcjF,IACjB,EAAE,CAACA,GAAeK,GAAW4E,CAAW,CAAC,EACpCY,GAAkB9vC,cAAY,IAAM,CACjCkqC,KAELI,GAAUJ,EAAS,EACnB+E,GAAA,MAAAA,EAAc/E,IACjB,EAAE,CAACI,GAAWJ,GAAW+E,CAAW,CAAC,EAChCc,GAAiB/vC,cAAY,CAACihB,GAAKphG,KAAOzE,IAAM,CAClDA,GAAE,eAAc,EAChBA,GAAE,gBAAe,EACjBsxH,GAAWzrB,EAAG,EACdh7F,IAAA,MAAAA,GAASg7F,GAAI,KAAMphG,GAAGzE,IACtBwzH,GAAA,MAAAA,EAAa3tB,GAAI,KAAMphG,GAAGzE,GAC7B,EAAE,CAAC6K,GAAQ2oH,EAAYlC,EAAU,CAAC,EAC7BsD,GAAiBhwC,cAAY,CAACihB,GAAKphG,KAAOzE,IAAM,CAClDsxH,GAAWzrB,EAAG,EACd4tB,GAAA,MAAAA,EAAa5tB,GAAI,KAAMphG,GAAGzE,GAClC,EAAO,CAACyzH,EAAYnC,EAAU,CAAC,EACrBuD,GAAgBjwC,cAAY,CAACihB,GAAKphG,KAAOzE,IAAM,CACjDq0H,KACAd,GAAA,MAAAA,EAAY1tB,GAAI,KAAMphG,GAAGzE,GACjC,EAAO,CAACq0H,GAAMd,CAAS,CAAC,EACduB,GAAmBlwC,cAAY,CAACihB,GAAKqW,KAAel8G,IAAM,CAC5D,MAAM+0H,GAAS,CACX,UAAW,CAAC,MAAO90G,EAAM,MAAQ,MAAQ,QAAU,QAAQ,EAC3D,WAAY,CAAC,MAAOA,EAAM,MAAQ,MAAQ,SAAW,OAAO,EAC5D,UAAW,CAAC,OAAQ,OAAO,EAC3B,QAAS,CAAC,OAAQ,QAAQ,EAC1B,OAAQ,CAACjgB,GAAE,SAAW,OAAS,QAAS,QAAQ,EAChD,SAAU,CAACA,GAAE,SAAW,OAAS,QAAS,OAAO,EACjD,KAAM,CAAC,cAAe,QAAQ,EAC9B,IAAK,CAAC,YAAa,OAAO,CACtC,EACQ,GAAI+0H,GAAO/0H,GAAE,GAAG,EAAG,CACfA,GAAE,eAAc,EAChBA,GAAE,gBAAe,EACjB,KAAM,CAACywH,GAAQC,EAAO,EAAIqE,GAAO/0H,GAAE,GAAG,EACtCu0H,GAAU9D,GAAQC,EAAO,CAC5B,CACDgD,GAAA,MAAAA,EAAe7tB,GAAI,KAAMqW,GAAWl8G,GACvC,EAAE,CAACu0H,GAAWb,EAAczzG,EAAM,GAAG,CAAC,EACjC+0G,GAAsBpwC,cAAY,CAACihB,GAAKqW,KAAel8G,IAAM,CAC/D2zH,GAAA,MAAAA,EAAkB9tB,GAAI,KAAMqW,GAAWl8G,GAC/C,EAAO,CAAC2zH,CAAe,CAAC,EACdsB,GAAsBrwC,cAAY,CAACihB,GAAKqW,KAAel8G,IAAM,CAC/D4zH,GAAA,MAAAA,EAAkB/tB,GAAI,KAAMqW,GAAWl8G,GAC/C,EAAO,CAAC4zH,CAAe,CAAC,EACd,CAAE,UAAAtjH,GAAW,MAAArjB,EAAO,EAAGk1F,EAAO,QAAC,KAAO,CACxC,UAAW,CAAC14D,EAAWqyF,GAAG,IAAI,EAAG77F,EAAM,SAAS,EAC3C,OAAO,OAAO,EACd,KAAK,GAAG,EACb,MAAO,CAAE,GAAG6E,GAAA,YAAAA,EAASg3F,GAAG,MAAO,GAAG77F,EAAM,KAAO,CACvD,GAAQ,CAACwJ,EAAYxJ,EAAM,UAAWA,EAAM,MAAO6E,CAAM,CAAC,EAChDo5F,GAAiBD,IAAkBh+F,CAAK,EACxCi1G,GAAe,CACjB,SAAUd,GACV,OAAQvpH,GACR,WAAA4zE,EACA,OAAA0vB,GACA,UAAA2gB,GACA,cAAAD,GACA,UAAAK,GACA,aAAAI,GACA,WAAApxC,EACA,WAAAz0D,EACA,OAAA3E,EACA,OAAAsuG,EACA,WAAArO,CACR,EACI,OAAQt9D,GAAM,cAAc2nE,IAAiB,SAAU,CAAE,MAAO8F,EAAc,EAC1EztE,GAAM,cAAcy2B,EAAW,KAAM,CAAE,UAAW5tE,GAAW,MAAOrjB,GAAO,IAAKgzB,EAAM,IAAK,GAAIA,EAAM,GAAI,KAAMA,EAAM,KAAM,MAAOA,EAAM,MAAO,MAAOA,EAAM,MAAO,GAAGi+F,EAAgB,EAClLz2D,GAAM,cAAcy2B,EAAW,OAAQ,CAAE,UAAWz0D,EAAWqyF,GAAG,MAAM,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,OAAS,EACnG,CAAC77F,EAAM,gBAAmBwnC,GAAM,cAAcy2B,EAAW,IAAK,CAAE,KAAM,aAAc,UAAWz0D,EAAWqyF,GAAG,GAAG,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,KAAM,aAAcmP,IAAY,EAClKxjE,GAAM,cAAcy2B,EAAW,OAAQ,CAAE,KAAM,SAAU,UAAWz0D,EAAWqyF,GAAG,cAAc,EAAG,SAAU+S,GAAgB,OAAY,GAAI,SAAUA,GAAgB,OAAY,GAAM,aAAczD,GAAcyD,GAAesF,CAAY,EAAG,QAASM,EAAqB,EAC7QhtE,GAAM,cAAcy2B,EAAW,QAAS,CAAE,SAAU2wC,GAAgB,OAAY,GAAM,UAAWplG,EAAWqyF,GAAG,OAAO,EAAG,YAAa,MAAM,CAAE,CAAC,EACnJr0D,GAAM,cAAcy2B,EAAW,OAAQ,CAAE,KAAM,SAAU,UAAWz0D,EAAWqyF,GAAG,UAAU,EAAG,SAAUgT,GAAY,OAAY,GAAI,SAAUA,GAAY,OAAY,GAAM,aAAc3D,GAAU2D,GAAWqF,CAAY,EAAG,QAASO,EAAiB,EACrPjtE,GAAM,cAAcy2B,EAAW,QAAS,CAAE,SAAU2wC,GAAgB,OAAY,GAAM,YAAa,QAAS,UAAWplG,EAAWqyF,GAAG,OAAO,CAAC,CAAE,CAAC,CAAC,EACzJ3N,GAAO,IAAI,CAAC6O,GAAeC,KAAiB,CACxC,MAAMkY,GAAqBn1H,IAAM,CAC7B,MAAMo1H,GAAgB,OAAOp1H,GAAE,OAAO,KAAK,EACrCqhG,GAAQonB,EAAQ,SAASA,EAAQ,aAAazL,GAAc,IAAI,EAAGoY,EAAa,EACtFlG,GAAU7tB,EAAK,CACvC,EAC0Bg0B,GAAoBr1H,IAAM,CAC5B,MAAMqhG,GAAQonB,EAAQ,QAAQA,EAAQ,aAAazL,GAAc,IAAI,EAAG,OAAOh9G,GAAE,OAAO,KAAK,CAAC,EAC9FkvH,GAAU7tB,EAAK,CACvC,EAC0Bi0B,GAAiB1L,IAAgB5M,GAAc,KAAM8M,GAAUC,GAAQhF,EAAYlsB,EAAQ4vB,CAAO,EAClG8M,GAAgBhL,IAAepc,GAAO,CAAC,EAAE,KAAM2b,GAAUC,GAAQhF,EAAY0D,CAAO,EAC1F,OAAQhhE,GAAM,cAAcy2B,EAAW,MAAO,CAAE,UAAWz0D,EAAWqyF,GAAG,KAAK,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,OAAQ,IAAKmB,GAAc,aAAcA,GAAc,cAAeD,EAAe,EACrLv1D,GAAM,cAAcy2B,EAAW,aAAc,CAAE,UAAWz0D,EAAWqyF,GAAG,YAAY,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,cAAe,cAAekB,GAAe,aAAcC,EAAc,EAAEqW,GAAA,MAAAA,EAAe,WAAW,YAAe7rE,GAAM,cAAcy2B,EAAW,YAAa,CAAE,UAAWz0D,EAAWqyF,GAAG,SAAS,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,UAAY,EAC5UwX,IAAkB,YACdA,IAAkB,kBAAqB7rE,GAAM,cAAcy2B,EAAW,SAAU,CAAE,UAAWz0D,EAAWqyF,GAAG,cAAc,EAAG,aAAcoP,GAAkB,EAAI,WAAYzhG,EAAY,WAAYy0D,EAAY,SAAU,EAAQj+D,EAAM,kBAAoB,SAAUk1G,GAAmB,QAASG,GAAgB,MAAOxwG,GAAA,YAAAA,EAASg3F,GAAG,UAAW,MAAOkB,GAAc,KAAK,SAAU,EAAE,EAAMv1D,GAAM,cAAc,OAAQ,CAAE,KAAM,SAAU,YAAa,QAAQ,EAAIwhE,EAAoBjM,GAAc,KAAK,SAAQ,CAAE,CAAC,EACzfsW,IAAkB,YACdA,IAAkB,iBAAoB7rE,GAAM,cAAcy2B,EAAW,SAAU,CAAE,UAAWz0D,EAAWqyF,GAAG,aAAa,EAAG,aAAc0P,GAAkB2I,CAAY,EAAG,WAAY1qG,EAAY,WAAYy0D,EAAY,SAAU,EAAQj+D,EAAM,kBAAoB,SAAUo1G,GAAkB,QAASE,GAAe,MAAOzwG,GAAA,YAAAA,EAASg3F,GAAG,UAAW,MAAOkB,GAAc,KAAK,YAAW,CAAI,GAAMv1D,GAAM,cAAc,OAAQ,CAAE,KAAM,SAAU,YAAa,QAAQ,EAAI8hE,GAAmBvM,GAAc,KAAK,YAAW,CAAE,CAAC,CAAE,EAAMv1D,GAAM,cAAcy2B,EAAW,aAAc,CAAE,UAAWz0D,EAAWqyF,GAAG,YAAY,EAAG,KAAM,SAAU,YAAa,QAAQ,EAAI+M,EAAc7L,GAAc,KAAMkX,EAAezL,CAAO,CAAC,CAAE,EAC5sBhhE,GAAM,cAAcy2B,EAAW,UAAW,CAAE,KAAM,OAAQ,uBAAwBj/E,IAAS,YAAcA,IAAS,QAAS,aAAc2rH,GAAU5N,GAAc,KAAMmX,EAAc1L,CAAO,GACpL,OAAW,UAAWh/F,EAAWqyF,GAAG,SAAS,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,UAAY,EACnF,CAAC77F,EAAM,cAAiBwnC,GAAM,cAAcy2B,EAAW,SAAU,CAAE,UAAWz0D,EAAWqyF,GAAG,QAAQ,EAAG,KAAM,MAAO,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,SAAW,EAC9IiY,GAAmBtsE,GAAM,cAAcy2B,EAAW,iBAAkB,CAAE,aAAcqtC,GAAsB4I,CAAY,EAAG,UAAW1qG,EAAWqyF,GAAG,gBAAgB,EAAG,KAAM,eAAgB,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,iBAAiB,EAAIuN,EAAsB,CAAE,EAC3P/jB,GAAS,IAAI,CAAC3B,GAASjzG,KAAO+2D,GAAM,cAAcy2B,EAAW,QAAS,CAAE,aAAcmtC,GAAa1nB,GAASwwB,EAAc1L,CAAO,EAAG,UAAWh/F,EAAWqyF,GAAG,OAAO,EAAG,IAAKprH,GAAG,KAAM,eAAgB,MAAOo0B,GAAA,YAAAA,EAASg3F,GAAG,QAAU,EAAEwN,EAAkB3lB,GAASuwB,EAAezL,CAAO,CAAC,CAAE,CAAC,EAC7RhhE,GAAM,cAAcy2B,EAAW,MAAO,CAAE,UAAWz0D,EAAWqyF,GAAG,KAAK,EAAG,KAAM,WAAY,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,MAAQ,EAAEkB,GAAc,MAAM,IAAI,CAACtZ,GAAM8xB,KAC3I/tE,GAAM,cAAcy2B,EAAW,KAAM,CAAE,UAAWz0D,EAAWqyF,GAAG,IAAI,EAAG,IAAKpY,GAAK,WAAY,KAAM,MAAO,MAAO5+E,GAAA,YAAAA,EAASg3F,GAAG,MAAO,KAAMpY,EAAM,EACpJqwB,GAAmBtsE,GAAM,cAAcy2B,EAAW,WAAY,CAAE,KAAMwlB,GAAM,KAAM,YAAa,MAAO5+E,GAAA,YAAAA,EAASg3F,GAAG,YAAa,aAAcwP,GAAgB5nB,GAAK,WAAY,CACtK,OAAA7K,CAC5C,CAAyC,EAAG,UAAWpvE,EAAWqyF,GAAG,UAAU,CAAG,EAAEqN,EAAiBzlB,GAAK,UAAU,CAAC,EACjFA,GAAK,KAAK,IAAKmC,IAAQ,CACnB,KAAM,CAAE,KAAA3C,EAAM,EAAG2C,GACXqW,GAAYoT,GAAazpB,EAAG,EAOlC,GANAqW,GAAUH,GAAQ,OAAO,EACrB,CAACG,GAAU,QACP,GAAQj7B,IAAA,MAAAA,GAAS,UAAU4kB,KACnCqW,GAAUF,GAAe,QAAQ,EAC7B,CAACE,GAAU,YACNz9B,GAAA,YAAAA,EAAaykB,MAASgZ,GAAU,UACrC2T,GAAYuE,EAAa,EAAG,CAE5B,KAAM,CAAE,KAAA/9F,GAAM,GAAArO,EAAI,EAAGosG,GACrBlY,GAAUF,GAAe,WAAW,EAAI,GAAQ3lF,IAAQrO,IAAMygG,EAAQ,UAAUvlB,GAAM7sE,EAAI,GAC1F6lF,GAAUF,GAAe,SAAS,EAAI,GAAQ3lF,IAAQrO,IAAMygG,EAAQ,UAAUvlB,GAAMl7E,EAAE,GACtFk0F,GAAUF,GAAe,YAAY,EACjCyT,GAAkB2E,GAAelxB,GAAM,GAAMulB,CAAO,CAC3D,CACD,MAAMx7H,GAAQg9H,IAAqB/N,GAAWp3F,EAAQ7E,EAAM,eAAe,EACrE3P,GAAY2rG,IAA0BC,GAAWzyF,EAAYxJ,EAAM,mBAAmB,EACtF+hE,GAAawyC,GAEb,OADA1J,GAAc5nB,GAAMgZ,GAAWiY,EAAc1L,CAAO,EAE1D,OAAQhhE,GAAM,cAAcy2B,EAAW,IAAK,CAAE,IAAK,GAAGuqC,EAAQ,OAAOvlB,GAAM,YAAY,CAAC,IAAIulB,EAAQ,OAAO5iB,GAAI,aAAc,SAAS,CAAC,GAAI,IAAKA,GAAK,UAAWqW,GAAW,KAAM,WAAY,UAAW5rG,GAAU,KAAK,GAAG,EAAG,MAAOrjB,GAAO,cAAeivH,GAAU,QAAU,OAAW,gBAAiBA,GAAU,UAAY,OAAW,aAAcl6B,GAAW,WAAYymC,EAAQ,OAAOvlB,GAAM,YAAY,EAAG,aAAc2C,GAAI,QAC5Z4iB,EAAQ,OAAOvlB,GAAM,SAAS,EAC9B,OAAW,gBAAiBgZ,GAAU,UAAY,OAAW,gBAAiBA,GAAU,UAAY,OAAW,cAAeA,GAAU,QAAU,OAAW,eAAgBrW,GAAI,SAAW,OAAW,eAAgBqW,GAAU,SAAW,OAAW,aAAcA,GAAU,OAAS,MAAW,EAAEsY,GAAiB/sE,GAAM,cAAcy2B,EAAW,UAAW,CAAE,UAAWz0D,EAAWqyF,GAAG,SAAS,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,WAAY,IAAKjW,GAAK,UAAWqW,GAAW,SAAUA,GAAU,UAAY,OAAW,SAAUoY,GAAczuB,EAAG,EAAI,EAAI,GAAI,aAAcklB,GAAe7nB,GAAMgZ,GAAWiY,EAAc1L,CAAO,EAAG,QAASkM,GAAe9uB,GAAKqW,EAAS,EAAG,OAAQ2Y,GAAchvB,GAAKqW,EAAS,EAAG,QAAS0Y,GAAe/uB,GAAKqW,EAAS,EAAG,UAAW4Y,GAAiBjvB,GAAKqW,EAAS,EAAG,aAAc8Y,GAAoBnvB,GAAKqW,EAAS,EAAG,aAAc+Y,GAAoBpvB,GAAKqW,EAAS,GAAK8M,EAAU9lB,GAAMgxB,EAAezL,CAAO,CAAC,EAAMO,EAAUnjB,GAAI,KAAMquB,EAAezL,CAAO,CAAE,CACl9B,EAAC,CACT,CAAC,CAAC,CAAC,CAChC,CAAiB,CAAC,EACNxoG,EAAM,QAAWwnC,GAAM,cAAcy2B,EAAW,OAAQ,CAAE,UAAWz0D,EAAWqyF,GAAG,MAAM,EAAG,MAAOh3F,GAAA,YAAAA,EAASg3F,GAAG,QAAS,KAAM,SAAU,YAAa,QAAQ,EAAI77F,EAAM,MAAM,CAAE,CAAC,CAC5L,sQClME,SAAU7Y,EAAQC,EAAS,CACsCC,EAAiB,QAAAD,GAGpF,GAAEE,GAAO,UAAY,CAEjB,IAAI+wF,EAEJ,SAASz8E,GAAQ,CACb,OAAOy8E,EAAa,MAAM,KAAM,SAAS,CAC5C,CAID,SAASC,EAAgBthG,EAAU,CAC/BqhG,EAAerhG,CAClB,CAED,SAAS2oE,EAAQprE,EAAO,CACpB,OACIA,aAAiB,OACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,gBAEjD,CAED,SAASimD,EAASjmD,EAAO,CAGrB,OACIA,GAAS,MACT,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAEjD,CAED,SAASgkG,EAAWvsF,EAAGC,EAAG,CACtB,OAAO,OAAO,UAAU,eAAe,KAAKD,EAAGC,CAAC,CACnD,CAED,SAASusF,EAAcrzF,EAAK,CACxB,GAAI,OAAO,oBACP,OAAO,OAAO,oBAAoBA,CAAG,EAAE,SAAW,EAElD,IAAIrB,EACJ,IAAKA,KAAKqB,EACN,GAAIozF,EAAWpzF,EAAKrB,CAAC,EACjB,MAAO,GAGf,MAAO,EAEd,CAED,SAASg9D,EAAYvsE,EAAO,CACxB,OAAOA,IAAU,MACpB,CAED,SAAS6sE,EAAS7sE,EAAO,CACrB,OACI,OAAOA,GAAU,UACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAEjD,CAED,SAAS+sE,EAAO/sE,EAAO,CACnB,OACIA,aAAiB,MACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEjD,CAED,SAAS2f,EAAIzM,EAAKsH,EAAI,CAClB,IAAI0pF,EAAM,CAAE,EACRhoG,EACAioG,EAASjxF,EAAI,OACjB,IAAKhX,EAAI,EAAGA,EAAIioG,EAAQ,EAAEjoG,EACtBgoG,EAAI,KAAK1pF,EAAGtH,EAAIhX,CAAC,EAAGA,CAAC,CAAC,EAE1B,OAAOgoG,CACV,CAED,SAASx2B,EAAOj2D,EAAGC,EAAG,CAClB,QAASxb,KAAKwb,EACNssF,EAAWtsF,EAAGxb,CAAC,IACfub,EAAEvb,CAAC,EAAIwb,EAAExb,CAAC,GAIlB,OAAI8nG,EAAWtsF,EAAG,UAAU,IACxBD,EAAE,SAAWC,EAAE,UAGfssF,EAAWtsF,EAAG,SAAS,IACvBD,EAAE,QAAUC,EAAE,SAGXD,CACV,CAED,SAAS2sF,EAAUpkG,EAAO+uD,EAAQs1C,EAAQC,EAAQ,CAC9C,OAAOC,GAAiBvkG,EAAO+uD,EAAQs1C,EAAQC,EAAQ,EAAI,EAAE,KAChE,CAED,SAASE,GAAsB,CAE3B,MAAO,CACH,MAAO,GACP,aAAc,CAAE,EAChB,YAAa,CAAE,EACf,SAAU,GACV,cAAe,EACf,UAAW,GACX,WAAY,KACZ,aAAc,KACd,cAAe,GACf,gBAAiB,GACjB,IAAK,GACL,gBAAiB,CAAE,EACnB,IAAK,KACL,SAAU,KACV,QAAS,GACT,gBAAiB,EAC7B,CACK,CAED,SAASC,EAAgBx0F,EAAG,CACxB,OAAIA,EAAE,KAAO,OACTA,EAAE,IAAMu0F,KAELv0F,EAAE,GACZ,CAED,IAAIy0F,EACA,MAAM,UAAU,KAChBA,EAAO,MAAM,UAAU,KAEvBA,EAAO,SAAUC,EAAK,CAClB,IAAI1zF,EAAI,OAAO,IAAI,EACf6D,EAAM7D,EAAE,SAAW,EACnB/U,EAEJ,IAAKA,EAAI,EAAGA,EAAI4Y,EAAK5Y,IACjB,GAAIA,KAAK+U,GAAK0zF,EAAI,KAAK,KAAM1zF,EAAE/U,CAAC,EAAGA,EAAG+U,CAAC,EACnC,MAAO,GAIf,MAAO,EACnB,EAGI,SAAS2zF,EAAQ30F,EAAG,CAChB,GAAIA,EAAE,UAAY,KAAM,CACpB,IAAI40F,EAAQJ,EAAgBx0F,CAAC,EACzB60F,EAAcJ,EAAK,KAAKG,EAAM,gBAAiB,SAAU3oG,EAAG,CACxD,OAAOA,GAAK,IAChC,CAAiB,EACD6oG,EACI,CAAC,MAAM90F,EAAE,GAAG,QAAO,CAAE,GACrB40F,EAAM,SAAW,GACjB,CAACA,EAAM,OACP,CAACA,EAAM,YACP,CAACA,EAAM,cACP,CAACA,EAAM,gBACP,CAACA,EAAM,iBACP,CAACA,EAAM,WACP,CAACA,EAAM,eACP,CAACA,EAAM,kBACN,CAACA,EAAM,UAAaA,EAAM,UAAYC,GAU/C,GARI70F,EAAE,UACF80F,EACIA,GACAF,EAAM,gBAAkB,GACxBA,EAAM,aAAa,SAAW,GAC9BA,EAAM,UAAY,QAGtB,OAAO,UAAY,MAAQ,CAAC,OAAO,SAAS50F,CAAC,EAC7CA,EAAE,SAAW80F,MAEb,QAAOA,CAEd,CACD,OAAO90F,EAAE,QACZ,CAED,SAAS+0F,EAAcH,EAAO,CAC1B,IAAI50F,EAAIm0F,EAAU,GAAG,EACrB,OAAIS,GAAS,KACTn3B,EAAO+2B,EAAgBx0F,CAAC,EAAG40F,CAAK,EAEhCJ,EAAgBx0F,CAAC,EAAE,gBAAkB,GAGlCA,CACV,CAID,IAAIg1F,EAAoB59E,EAAM,iBAAmB,GAC7C69E,EAAmB,GAEvB,SAASC,EAAW3xE,EAAIqO,EAAM,CAC1B,IAAI3lC,EACA2qB,EACAzS,EACAgxF,GAAsBH,EAAiB,OAiC3C,GA/BK14B,EAAY1qC,EAAK,gBAAgB,IAClCrO,EAAG,iBAAmBqO,EAAK,kBAE1B0qC,EAAY1qC,EAAK,EAAE,IACpBrO,EAAG,GAAKqO,EAAK,IAEZ0qC,EAAY1qC,EAAK,EAAE,IACpBrO,EAAG,GAAKqO,EAAK,IAEZ0qC,EAAY1qC,EAAK,EAAE,IACpBrO,EAAG,GAAKqO,EAAK,IAEZ0qC,EAAY1qC,EAAK,OAAO,IACzBrO,EAAG,QAAUqO,EAAK,SAEjB0qC,EAAY1qC,EAAK,IAAI,IACtBrO,EAAG,KAAOqO,EAAK,MAEd0qC,EAAY1qC,EAAK,MAAM,IACxBrO,EAAG,OAASqO,EAAK,QAEhB0qC,EAAY1qC,EAAK,OAAO,IACzBrO,EAAG,QAAUqO,EAAK,SAEjB0qC,EAAY1qC,EAAK,GAAG,IACrBrO,EAAG,IAAMixE,EAAgB5iE,CAAI,GAE5B0qC,EAAY1qC,EAAK,OAAO,IACzBrO,EAAG,QAAUqO,EAAK,SAGlBujE,GAAsB,EACtB,IAAKlpG,EAAI,EAAGA,EAAIkpG,GAAqBlpG,IACjC2qB,EAAOo+E,EAAiB/oG,CAAC,EACzBkY,EAAMytB,EAAKhb,CAAI,EACV0lD,EAAYn4D,CAAG,IAChBof,EAAG3M,CAAI,EAAIzS,GAKvB,OAAOof,CACV,CAGD,SAAS6xE,EAAO12B,EAAQ,CACpBw2B,EAAW,KAAMx2B,CAAM,EACvB,KAAK,GAAK,IAAI,KAAKA,EAAO,IAAM,KAAOA,EAAO,GAAG,QAAS,EAAG,GAAG,EAC3D,KAAK,YACN,KAAK,GAAK,IAAI,KAAK,GAAG,GAItBu2B,IAAqB,KACrBA,EAAmB,GACnB79E,EAAM,aAAa,IAAI,EACvB69E,EAAmB,GAE1B,CAED,SAASI,EAAS10F,EAAK,CACnB,OACIA,aAAey0F,GAAWz0F,GAAO,MAAQA,EAAI,kBAAoB,IAExE,CAED,SAAS20F,EAAKrwF,EAAK,CAEXmS,EAAM,8BAAgC,IACtC,OAAO,QAAY,KACnB,QAAQ,MAER,QAAQ,KAAK,wBAA0BnS,CAAG,CAEjD,CAED,SAASswF,EAAUtwF,EAAKsF,EAAI,CACxB,IAAIirF,EAAY,GAEhB,OAAO/3B,EAAO,UAAY,CAItB,GAHIrmD,EAAM,oBAAsB,MAC5BA,EAAM,mBAAmB,KAAMnS,CAAG,EAElCuwF,EAAW,CACX,IAAI3nF,EAAO,CAAE,EACTjI,EACA3Z,GACA8N,GACA07F,GAAS,UAAU,OACvB,IAAKxpG,GAAI,EAAGA,GAAIwpG,GAAQxpG,KAAK,CAEzB,GADA2Z,EAAM,GACF,OAAO,UAAU3Z,EAAC,GAAM,SAAU,CAClC2Z,GAAO;AAAA,GAAQ3Z,GAAI,KACnB,IAAK8N,MAAO,UAAU,CAAC,EACfg6F,EAAW,UAAU,CAAC,EAAGh6F,EAAG,IAC5B6L,GAAO7L,GAAM,KAAO,UAAU,CAAC,EAAEA,EAAG,EAAI,MAGhD6L,EAAMA,EAAI,MAAM,EAAG,EAAE,CAC7C,MACwBA,EAAM,UAAU3Z,EAAC,EAErB4hB,EAAK,KAAKjI,CAAG,CAChB,CACD0vF,EACIrwF,EACI;AAAA,aACA,MAAM,UAAU,MAAM,KAAK4I,CAAI,EAAE,KAAK,EAAE,EACxC;AAAA,EACA,IAAI,MAAO,EAAC,KACpC,EACgB2nF,EAAY,EACf,CACD,OAAOjrF,EAAG,MAAM,KAAM,SAAS,CAClC,EAAEA,CAAE,CACR,CAED,IAAImrF,EAAe,GAEnB,SAASC,EAAgBjuG,EAAMud,EAAK,CAC5BmS,EAAM,oBAAsB,MAC5BA,EAAM,mBAAmB1vB,EAAMud,CAAG,EAEjCywF,EAAahuG,CAAI,IAClB4tG,EAAKrwF,CAAG,EACRywF,EAAahuG,CAAI,EAAI,GAE5B,CAED0vB,EAAM,4BAA8B,GACpCA,EAAM,mBAAqB,KAE3B,SAASvT,EAAW9T,EAAO,CACvB,OACK,OAAO,SAAa,KAAeA,aAAiB,UACrD,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,mBAEjD,CAED,SAAS6sD,EAAI8hB,EAAQ,CACjB,IAAI9nD,EAAM3qB,EACV,IAAKA,KAAKyyE,EACFq1B,EAAWr1B,EAAQzyE,CAAC,IACpB2qB,EAAO8nD,EAAOzyE,CAAC,EACX4X,EAAW+S,CAAI,EACf,KAAK3qB,CAAC,EAAI2qB,EAEV,KAAK,IAAM3qB,CAAC,EAAI2qB,GAI5B,KAAK,QAAU8nD,EAIf,KAAK,+BAAiC,IAAI,QACrC,KAAK,wBAAwB,QAAU,KAAK,cAAc,QACvD,IACA,UAAU,MAC1B,CACK,CAED,SAASk3B,GAAaC,EAAcC,EAAa,CAC7C,IAAI7B,EAAMx2B,EAAO,CAAE,EAAEo4B,CAAY,EAC7Bj/E,EACJ,IAAKA,KAAQk/E,EACL/B,EAAW+B,EAAal/E,CAAI,IACxBo/B,EAAS6/C,EAAaj/E,CAAI,CAAC,GAAKo/B,EAAS8/C,EAAYl/E,CAAI,CAAC,GAC1Dq9E,EAAIr9E,CAAI,EAAI,GACZ6mD,EAAOw2B,EAAIr9E,CAAI,EAAGi/E,EAAaj/E,CAAI,CAAC,EACpC6mD,EAAOw2B,EAAIr9E,CAAI,EAAGk/E,EAAYl/E,CAAI,CAAC,GAC5Bk/E,EAAYl/E,CAAI,GAAK,KAC5Bq9E,EAAIr9E,CAAI,EAAIk/E,EAAYl/E,CAAI,EAE5B,OAAOq9E,EAAIr9E,CAAI,GAI3B,IAAKA,KAAQi/E,EAEL9B,EAAW8B,EAAcj/E,CAAI,GAC7B,CAACm9E,EAAW+B,EAAal/E,CAAI,GAC7Bo/B,EAAS6/C,EAAaj/E,CAAI,CAAC,IAG3Bq9E,EAAIr9E,CAAI,EAAI6mD,EAAO,CAAE,EAAEw2B,EAAIr9E,CAAI,CAAC,GAGxC,OAAOq9E,CACV,CAED,SAAS8B,GAAOr3B,EAAQ,CAChBA,GAAU,MACV,KAAK,IAAIA,CAAM,CAEtB,CAED,IAAIr0D,GAEA,OAAO,KACPA,GAAO,OAAO,KAEdA,GAAO,SAAU1J,EAAK,CAClB,IAAI1U,EACAgoG,EAAM,GACV,IAAKhoG,KAAK0U,EACFozF,EAAWpzF,EAAK1U,CAAC,GACjBgoG,EAAI,KAAKhoG,CAAC,EAGlB,OAAOgoG,CACnB,EAGI,IAAI+B,GAAkB,CAClB,QAAS,gBACT,QAAS,mBACT,SAAU,eACV,QAAS,oBACT,SAAU,sBACV,SAAU,GAClB,EAEI,SAASC,GAASl8F,EAAKm8F,EAAKC,EAAK,CAC7B,IAAI3vB,EAAS,KAAK,UAAUzsE,CAAG,GAAK,KAAK,UAAU,SACnD,OAAO8J,EAAW2iE,CAAM,EAAIA,EAAO,KAAK0vB,EAAKC,CAAG,EAAI3vB,CACvD,CAED,SAAS4vB,GAASC,EAAQC,EAAcC,EAAW,CAC/C,IAAIC,EAAY,GAAK,KAAK,IAAIH,CAAM,EAChCI,EAAcH,EAAeE,EAAU,OACvCE,GAAOL,GAAU,EACrB,OACKK,GAAQH,EAAY,IAAM,GAAM,KACjC,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGE,CAAW,CAAC,EAAE,WAAW,OAAO,CAAC,EAC1DD,CAEP,CAED,IAAIG,GACI,yMACJC,GAAwB,6CACxBC,GAAkB,CAAE,EACpBC,GAAuB,GAM3B,SAASC,EAAepnG,EAAOqnG,EAAQC,EAASzkG,EAAU,CACtD,IAAIshB,EAAOthB,EACP,OAAOA,GAAa,WACpBshB,EAAO,UAAY,CACf,OAAO,KAAKthB,CAAQ,GACpC,GAEY7C,IACAmnG,GAAqBnnG,CAAK,EAAImkB,GAE9BkjF,IACAF,GAAqBE,EAAO,CAAC,CAAC,EAAI,UAAY,CAC1C,OAAOZ,GAAStiF,EAAK,MAAM,KAAM,SAAS,EAAGkjF,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACjF,GAEYC,IACAH,GAAqBG,CAAO,EAAI,UAAY,CACxC,OAAO,KAAK,WAAU,EAAG,QACrBnjF,EAAK,MAAM,KAAM,SAAS,EAC1BnkB,CACpB,CACA,EAEK,CAED,SAASunG,GAAuBnnG,EAAO,CACnC,OAAIA,EAAM,MAAM,UAAU,EACfA,EAAM,QAAQ,WAAY,EAAE,EAEhCA,EAAM,QAAQ,MAAO,EAAE,CACjC,CAED,SAASonG,GAAmBr4C,EAAQ,CAChC,IAAIz7C,EAAQy7C,EAAO,MAAM63C,EAAgB,EACrC1qG,EACAqS,EAEJ,IAAKrS,EAAI,EAAGqS,EAAS+E,EAAM,OAAQpX,EAAIqS,EAAQrS,IACvC6qG,GAAqBzzF,EAAMpX,CAAC,CAAC,EAC7BoX,EAAMpX,CAAC,EAAI6qG,GAAqBzzF,EAAMpX,CAAC,CAAC,EAExCoX,EAAMpX,CAAC,EAAIirG,GAAuB7zF,EAAMpX,CAAC,CAAC,EAIlD,OAAO,SAAUiqG,EAAK,CAClB,IAAI1vB,GAAS,GACTv6E,GACJ,IAAKA,GAAI,EAAGA,GAAIqS,EAAQrS,KACpBu6E,IAAU3iE,EAAWR,EAAMpX,EAAC,CAAC,EACvBoX,EAAMpX,EAAC,EAAE,KAAKiqG,EAAKp3C,CAAM,EACzBz7C,EAAMpX,EAAC,EAEjB,OAAOu6E,EACnB,CACK,CAGD,SAAS4wB,GAAap3F,EAAG8+C,EAAQ,CAC7B,OAAK9+C,EAAE,WAIP8+C,EAASu4C,GAAav4C,EAAQ9+C,EAAE,WAAY,GAC5C62F,GAAgB/3C,CAAM,EAClB+3C,GAAgB/3C,CAAM,GAAKq4C,GAAmBr4C,CAAM,EAEjD+3C,GAAgB/3C,CAAM,EAAE9+C,CAAC,GAPrBA,EAAE,aAAa,aAQ7B,CAED,SAASq3F,GAAav4C,EAAQs1C,EAAQ,CAClC,IAAInoG,EAAI,EAER,SAASqrG,EAA4BvnG,EAAO,CACxC,OAAOqkG,EAAO,eAAerkG,CAAK,GAAKA,CAC1C,CAGD,IADA6mG,GAAsB,UAAY,EAC3B3qG,GAAK,GAAK2qG,GAAsB,KAAK93C,CAAM,GAC9CA,EAASA,EAAO,QACZ83C,GACAU,CAChB,EACYV,GAAsB,UAAY,EAClC3qG,GAAK,EAGT,OAAO6yD,CACV,CAED,IAAIy4C,GAAwB,CACxB,IAAK,YACL,GAAI,SACJ,EAAG,aACH,GAAI,eACJ,IAAK,sBACL,KAAM,2BACd,EAEI,SAASC,GAAez9F,EAAK,CACzB,IAAI+kD,EAAS,KAAK,gBAAgB/kD,CAAG,EACjC09F,EAAc,KAAK,gBAAgB19F,EAAI,YAAa,GAExD,OAAI+kD,GAAU,CAAC24C,EACJ34C,GAGX,KAAK,gBAAgB/kD,CAAG,EAAI09F,EACvB,MAAMd,EAAgB,EACtB,IAAI,SAAUe,EAAK,CAChB,OACIA,IAAQ,QACRA,IAAQ,MACRA,IAAQ,MACRA,IAAQ,OAEDA,EAAI,MAAM,CAAC,EAEfA,CACvB,CAAa,EACA,KAAK,EAAE,EAEL,KAAK,gBAAgB39F,CAAG,EAClC,CAED,IAAI49F,GAAqB,eAEzB,SAASC,IAAc,CACnB,OAAO,KAAK,YACf,CAED,IAAIC,GAAiB,KACjBC,GAAgC,UAEpC,SAASb,GAAQZ,EAAQ,CACrB,OAAO,KAAK,SAAS,QAAQ,KAAMA,CAAM,CAC5C,CAED,IAAI0B,GAAsB,CACtB,OAAQ,QACR,KAAM,SACN,EAAG,gBACH,GAAI,aACJ,EAAG,WACH,GAAI,aACJ,EAAG,UACH,GAAI,WACJ,EAAG,QACH,GAAI,UACJ,EAAG,SACH,GAAI,WACJ,EAAG,UACH,GAAI,YACJ,EAAG,SACH,GAAI,UACZ,EAEI,SAASC,GAAa3B,EAAQ4B,EAAejsG,EAAQksG,EAAU,CAC3D,IAAI1xB,EAAS,KAAK,cAAcx6E,CAAM,EACtC,OAAO6X,EAAW2iE,CAAM,EAClBA,EAAO6vB,EAAQ4B,EAAejsG,EAAQksG,CAAQ,EAC9C1xB,EAAO,QAAQ,MAAO6vB,CAAM,CACrC,CAED,SAAS8B,GAAWptF,EAAMy7D,EAAQ,CAC9B,IAAI1nB,EAAS,KAAK,cAAc/zC,EAAO,EAAI,SAAW,MAAM,EAC5D,OAAOlH,EAAWi7C,CAAM,EAAIA,EAAO0nB,CAAM,EAAI1nB,EAAO,QAAQ,MAAO0nB,CAAM,CAC5E,CAED,IAAI4xB,GAAU,GAEd,SAASC,GAAa//E,EAAMggF,EAAW,CACnC,IAAIC,EAAYjgF,EAAK,cACrB8/E,GAAQG,CAAS,EAAIH,GAAQG,EAAY,GAAG,EAAIH,GAAQE,CAAS,EAAIhgF,CACxE,CAED,SAASkgF,GAAeC,EAAO,CAC3B,OAAO,OAAOA,GAAU,SAClBL,GAAQK,CAAK,GAAKL,GAAQK,EAAM,YAAW,CAAE,EAC7C,MACT,CAED,SAASC,GAAqBC,EAAa,CACvC,IAAIC,EAAkB,CAAE,EACpBC,EACAjiF,EAEJ,IAAKA,KAAQ+hF,EACL5E,EAAW4E,EAAa/hF,CAAI,IAC5BiiF,EAAiBL,GAAe5hF,CAAI,EAChCiiF,IACAD,EAAgBC,CAAc,EAAIF,EAAY/hF,CAAI,IAK9D,OAAOgiF,CACV,CAED,IAAIE,GAAa,GAEjB,SAASC,GAAgBzgF,EAAM0gF,EAAU,CACrCF,GAAWxgF,CAAI,EAAI0gF,CACtB,CAED,SAASC,GAAoBC,EAAU,CACnC,IAAIT,EAAQ,CAAE,EACVznE,EACJ,IAAKA,KAAKkoE,EACFnF,EAAWmF,EAAUloE,CAAC,GACtBynE,EAAM,KAAK,CAAE,KAAMznE,EAAG,SAAU8nE,GAAW9nE,CAAC,CAAC,CAAE,EAGvD,OAAAynE,EAAM,KAAK,SAAUjxF,EAAGC,EAAG,CACvB,OAAOD,EAAE,SAAWC,EAAE,QAClC,CAAS,EACMgxF,CACV,CAED,SAASU,GAAWC,EAAM,CACtB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,CACjE,CAED,SAASC,GAAShD,EAAQ,CACtB,OAAIA,EAAS,EAEF,KAAK,KAAKA,CAAM,GAAK,EAErB,KAAK,MAAMA,CAAM,CAE/B,CAED,SAASiD,GAAMC,EAAqB,CAChC,IAAIC,EAAgB,CAACD,EACjBnxG,EAAQ,EAEZ,OAAIoxG,IAAkB,GAAK,SAASA,CAAa,IAC7CpxG,EAAQixG,GAASG,CAAa,GAG3BpxG,CACV,CAED,SAASqxG,GAAWnhF,EAAMohF,EAAU,CAChC,OAAO,SAAUtxG,EAAO,CACpB,OAAIA,GAAS,MACTuxG,GAAM,KAAMrhF,EAAMlwB,CAAK,EACvBgvB,EAAM,aAAa,KAAMsiF,CAAQ,EAC1B,MAEAE,GAAI,KAAMthF,CAAI,CAErC,CACK,CAED,SAASshF,GAAI1D,EAAK59E,EAAM,CACpB,OAAO49E,EAAI,QAAS,EACdA,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM59E,CAAI,EAAG,EAClD,GACT,CAED,SAASqhF,GAAMzD,EAAK59E,EAAMlwB,EAAO,CACzB8tG,EAAI,QAAO,GAAM,CAAC,MAAM9tG,CAAK,IAEzBkwB,IAAS,YACT6gF,GAAWjD,EAAI,MAAM,GACrBA,EAAI,MAAK,IAAO,GAChBA,EAAI,KAAI,IAAO,IAEf9tG,EAAQkxG,GAAMlxG,CAAK,EACnB8tG,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM59E,CAAI,EAC3ClwB,EACA8tG,EAAI,MAAO,EACX2D,GAAYzxG,EAAO8tG,EAAI,OAAO,CAClD,GAEgBA,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM59E,CAAI,EAAElwB,CAAK,EAGjE,CAID,SAAS0xG,GAAUrB,EAAO,CAEtB,OADAA,EAAQD,GAAeC,CAAK,EACxB50F,EAAW,KAAK40F,CAAK,CAAC,EACf,KAAKA,CAAK,IAEd,IACV,CAED,SAASsB,GAAUtB,EAAOrwG,EAAO,CAC7B,GAAI,OAAOqwG,GAAU,SAAU,CAC3BA,EAAQC,GAAqBD,CAAK,EAClC,IAAIuB,EAAcf,GAAoBR,CAAK,EACvCxsG,EACAguG,EAAiBD,EAAY,OACjC,IAAK/tG,EAAI,EAAGA,EAAIguG,EAAgBhuG,IAC5B,KAAK+tG,EAAY/tG,CAAC,EAAE,IAAI,EAAEwsG,EAAMuB,EAAY/tG,CAAC,EAAE,IAAI,CAAC,CAEpE,SACYwsG,EAAQD,GAAeC,CAAK,EACxB50F,EAAW,KAAK40F,CAAK,CAAC,EACtB,OAAO,KAAKA,CAAK,EAAErwG,CAAK,EAGhC,OAAO,IACV,CAED,IAAI8xG,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BACnBC,GAAiB,uBAGjBC,GACI,wJACJC,GAEJA,GAAU,GAEV,SAASC,GAAczrG,EAAO0rG,EAAOC,EAAa,CAC9CH,GAAQxrG,CAAK,EAAIkU,EAAWw3F,CAAK,EAC3BA,EACA,SAAUE,EAAUC,EAAY,CAC5B,OAAOD,GAAYD,EAAcA,EAAcD,CACjE,CACK,CAED,SAASI,GAAsB9rG,EAAO+uE,EAAQ,CAC1C,OAAKq1B,EAAWoH,GAASxrG,CAAK,EAIvBwrG,GAAQxrG,CAAK,EAAE+uE,EAAO,QAASA,EAAO,OAAO,EAHzC,IAAI,OAAOg9B,GAAe/rG,CAAK,CAAC,CAI9C,CAGD,SAAS+rG,GAAer6F,EAAG,CACvB,OAAOs6F,GACHt6F,EACK,QAAQ,KAAM,EAAE,EAChB,QACG,sCACA,SAAU0M,EAAS68D,EAAIC,EAAI+wB,EAAIC,GAAI,CAC/B,OAAOjxB,GAAMC,GAAM+wB,GAAMC,EAC5B,CACJ,CACjB,CACK,CAED,SAASF,GAAYt6F,EAAG,CACpB,OAAOA,EAAE,QAAQ,yBAA0B,MAAM,CACpD,CAED,IAAIqN,GAAS,GAEb,SAASotF,GAAcnsG,EAAO6C,EAAU,CACpC,IAAIvG,EACA6nB,EAAOthB,EACPupG,EAUJ,IATI,OAAOpsG,GAAU,WACjBA,EAAQ,CAACA,CAAK,GAEditE,EAASpqE,CAAQ,IACjBshB,EAAO,SAAU/jB,GAAOsT,GAAO,CAC3BA,GAAM7Q,CAAQ,EAAI8mG,GAAMvpG,EAAK,CAC7C,GAEQgsG,EAAWpsG,EAAM,OACZ1D,EAAI,EAAGA,EAAI8vG,EAAU9vG,IACtByiB,GAAO/e,EAAM1D,CAAC,CAAC,EAAI6nB,CAE1B,CAED,SAASkoF,GAAkBrsG,EAAO6C,EAAU,CACxCspG,GAAcnsG,EAAO,SAAUI,EAAOsT,EAAOq7D,EAAQ/uE,GAAO,CACxD+uE,EAAO,GAAKA,EAAO,IAAM,GACzBlsE,EAASzC,EAAO2uE,EAAO,GAAIA,EAAQ/uE,EAAK,CACpD,CAAS,CACJ,CAED,SAASssG,GAAwBtsG,EAAOI,EAAO2uE,EAAQ,CAC/C3uE,GAAS,MAAQgkG,EAAWrlF,GAAQ/e,CAAK,GACzC+e,GAAO/e,CAAK,EAAEI,EAAO2uE,EAAO,GAAIA,EAAQ/uE,CAAK,CAEpD,CAED,IAAIusG,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAEd,SAASC,GAAI58F,EAAG5O,EAAG,CACf,OAAS4O,EAAI5O,EAAKA,GAAKA,CAC1B,CAED,IAAIoS,GAEA,MAAM,UAAU,QAChBA,GAAU,MAAM,UAAU,QAE1BA,GAAU,SAAUwtB,EAAG,CAEnB,IAAI9kC,EACJ,IAAKA,EAAI,EAAGA,EAAI,KAAK,OAAQ,EAAEA,EAC3B,GAAI,KAAKA,CAAC,IAAM8kC,EACZ,OAAO9kC,EAGf,MAAO,EACnB,EAGI,SAAS4tG,GAAYT,EAAMwD,EAAO,CAC9B,GAAI,MAAMxD,CAAI,GAAK,MAAMwD,CAAK,EAC1B,MAAO,KAEX,IAAIC,EAAWF,GAAIC,EAAO,EAAE,EAC5B,OAAAxD,IAASwD,EAAQC,GAAY,GACtBA,IAAa,EACd1D,GAAWC,CAAI,EACX,GACA,GACJ,GAAOyD,EAAW,EAAK,CAChC,CAID9F,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,UAAY,CAC7C,OAAO,KAAK,MAAO,EAAG,CAC9B,CAAK,EAEDA,EAAe,MAAO,EAAG,EAAG,SAAUj4C,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACzD,CAAK,EAEDi4C,EAAe,OAAQ,EAAG,EAAG,SAAUj4C,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,OAAO,KAAMA,CAAM,CACpD,CAAK,EAIDu5C,GAAa,QAAS,GAAG,EAIzBU,GAAgB,QAAS,CAAC,EAI1BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,MAAO,SAAUG,EAAUnH,EAAQ,CAC7C,OAAOA,EAAO,iBAAiBmH,CAAQ,CAC/C,CAAK,EACDH,GAAc,OAAQ,SAAUG,EAAUnH,EAAQ,CAC9C,OAAOA,EAAO,YAAYmH,CAAQ,CAC1C,CAAK,EAEDO,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAO,CAC/CA,EAAM84F,EAAK,EAAI7C,GAAMvpG,CAAK,EAAI,CACtC,CAAK,EAED+rG,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CAClE,IAAIitG,EAAQl+B,EAAO,QAAQ,YAAY3uE,EAAOJ,EAAO+uE,EAAO,OAAO,EAE/Dk+B,GAAS,KACTv5F,EAAM84F,EAAK,EAAIS,EAEfpI,EAAgB91B,CAAM,EAAE,aAAe3uE,CAEnD,CAAK,EAID,IAAI+sG,GACI,wFAAwF,MACpF,GACH,EACLC,GACI,kDAAkD,MAAM,GAAG,EAC/DC,GAAmB,gCACnBC,GAA0B/B,GAC1BgC,GAAqBhC,GAEzB,SAASiC,GAAan9F,EAAG8+C,EAAQ,CAC7B,OAAK9+C,EAKEm7D,EAAQ,KAAK,OAAO,EACrB,KAAK,QAAQn7D,EAAE,OAAO,EACtB,KAAK,SACA,KAAK,QAAQ,UAAYg9F,IAAkB,KAAKl+C,CAAM,EACjD,SACA,YACxB,EAAgB9+C,EAAE,MAAK,CAAE,EAVNm7D,EAAQ,KAAK,OAAO,EACrB,KAAK,QACL,KAAK,QAAQ,UAS1B,CAED,SAASiiC,GAAkBp9F,EAAG8+C,EAAQ,CAClC,OAAK9+C,EAKEm7D,EAAQ,KAAK,YAAY,EAC1B,KAAK,aAAan7D,EAAE,OAAO,EAC3B,KAAK,aACDg9F,GAAiB,KAAKl+C,CAAM,EAAI,SAAW,YAC7D,EAAgB9+C,EAAE,MAAK,CAAE,EARNm7D,EAAQ,KAAK,YAAY,EAC1B,KAAK,aACL,KAAK,aAAa,UAO/B,CAED,SAASkiC,GAAkBC,EAAWx+C,EAAQu1C,EAAQ,CAClD,IAAIpoG,EACAkiD,EACA+nD,GACAqH,GAAMD,EAAU,oBACpB,GAAI,CAAC,KAAK,aAKN,IAHA,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,GACpBrxG,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAClBiqG,GAAM/B,EAAU,CAAC,IAAMloG,CAAC,CAAC,EACzB,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BiqG,GACA,EACH,EAAC,kBAAiB,EACnB,KAAK,iBAAiBjqG,CAAC,EAAI,KAAK,OAAOiqG,GAAK,EAAE,EAAE,oBAIxD,OAAI7B,EACIv1C,IAAW,OACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACtCpvD,IAAO,GAAKA,EAAK,OAExBA,EAAK5qC,GAAQ,KAAK,KAAK,iBAAkBg6F,EAAG,EACrCpvD,IAAO,GAAKA,EAAK,MAGxB2Q,IAAW,OACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACzCpvD,IAAO,GACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,iBAAkBg6F,EAAG,EACrCpvD,IAAO,GAAKA,EAAK,QAExBA,EAAK5qC,GAAQ,KAAK,KAAK,iBAAkBg6F,EAAG,EACxCpvD,IAAO,GACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACtCpvD,IAAO,GAAKA,EAAK,MAGnC,CAED,SAASqvD,GAAkBF,EAAWx+C,EAAQu1C,EAAQ,CAClD,IAAIpoG,EAAGiqG,EAAKmF,GAEZ,GAAI,KAAK,kBACL,OAAOgC,GAAkB,KAAK,KAAMC,EAAWx+C,EAAQu1C,CAAM,EAYjE,IATK,KAAK,eACN,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,IAMxBpoG,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBAiqG,EAAM/B,EAAU,CAAC,IAAMloG,CAAC,CAAC,EACrBooG,GAAU,CAAC,KAAK,iBAAiBpoG,CAAC,IAClC,KAAK,iBAAiBA,CAAC,EAAI,IAAI,OAC3B,IAAM,KAAK,OAAOiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IAC9C,GACpB,EACgB,KAAK,kBAAkBjqG,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IACnD,GACpB,GAEgB,CAAC7B,GAAU,CAAC,KAAK,aAAapoG,CAAC,IAC/BovG,GACI,IAAM,KAAK,OAAOnF,EAAK,EAAE,EAAI,KAAO,KAAK,YAAYA,EAAK,EAAE,EAChE,KAAK,aAAajqG,CAAC,EAAI,IAAI,OAAOovG,GAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI7DhH,GACAv1C,IAAW,QACX,KAAK,iBAAiB7yD,CAAC,EAAE,KAAKqxG,CAAS,EAEvC,OAAOrxG,EACJ,GACHooG,GACAv1C,IAAW,OACX,KAAK,kBAAkB7yD,CAAC,EAAE,KAAKqxG,CAAS,EAExC,OAAOrxG,EACJ,GAAI,CAACooG,GAAU,KAAK,aAAapoG,CAAC,EAAE,KAAKqxG,CAAS,EACrD,OAAOrxG,CAEd,CACJ,CAID,SAASwxG,GAASvH,EAAK9tG,EAAO,CAC1B,IAAIs1G,EAEJ,GAAI,CAACxH,EAAI,UAEL,OAAOA,EAGX,GAAI,OAAO9tG,GAAU,UACjB,GAAI,QAAQ,KAAKA,CAAK,EAClBA,EAAQkxG,GAAMlxG,CAAK,UAEnBA,EAAQ8tG,EAAI,WAAY,EAAC,YAAY9tG,CAAK,EAEtC,CAACw0E,EAASx0E,CAAK,EACf,OAAO8tG,EAKnB,OAAAwH,EAAa,KAAK,IAAIxH,EAAI,KAAI,EAAI2D,GAAY3D,EAAI,OAAQ9tG,CAAK,CAAC,EAChE8tG,EAAI,GAAG,OAASA,EAAI,OAAS,MAAQ,IAAM,OAAO,EAAE9tG,EAAOs1G,CAAU,EAC9DxH,CACV,CAED,SAASyH,GAAYv1G,EAAO,CACxB,OAAIA,GAAS,MACTq1G,GAAS,KAAMr1G,CAAK,EACpBgvB,EAAM,aAAa,KAAM,EAAI,EACtB,MAEAwiF,GAAI,KAAM,OAAO,CAE/B,CAED,SAASgE,IAAiB,CACtB,OAAO/D,GAAY,KAAK,KAAM,EAAE,KAAK,MAAK,CAAE,CAC/C,CAED,SAASgE,GAAiBtC,EAAU,CAChC,OAAI,KAAK,mBACAxH,EAAW,KAAM,cAAc,GAChC+J,GAAmB,KAAK,IAAI,EAE5BvC,EACO,KAAK,wBAEL,KAAK,oBAGXxH,EAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBkJ,IAEtB,KAAK,yBAA2B1B,EACjC,KAAK,wBACL,KAAK,kBAElB,CAED,SAASwC,GAAYxC,EAAU,CAC3B,OAAI,KAAK,mBACAxH,EAAW,KAAM,cAAc,GAChC+J,GAAmB,KAAK,IAAI,EAE5BvC,EACO,KAAK,mBAEL,KAAK,eAGXxH,EAAW,KAAM,cAAc,IAChC,KAAK,aAAemJ,IAEjB,KAAK,oBAAsB3B,EAC5B,KAAK,mBACL,KAAK,aAElB,CAED,SAASuC,IAAqB,CAC1B,SAASE,EAAUx2F,GAAGC,GAAG,CACrB,OAAOA,GAAE,OAASD,GAAE,MACvB,CAED,IAAIy2F,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChBlyG,EACAiqG,GACJ,IAAKjqG,EAAI,EAAGA,EAAI,GAAIA,IAEhBiqG,GAAM/B,EAAU,CAAC,IAAMloG,CAAC,CAAC,EACzBgyG,EAAY,KAAK,KAAK,YAAY/H,GAAK,EAAE,CAAC,EAC1CgI,EAAW,KAAK,KAAK,OAAOhI,GAAK,EAAE,CAAC,EACpCiI,EAAY,KAAK,KAAK,OAAOjI,GAAK,EAAE,CAAC,EACrCiI,EAAY,KAAK,KAAK,YAAYjI,GAAK,EAAE,CAAC,EAO9C,IAHA+H,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EACrB/xG,EAAI,EAAGA,EAAI,GAAIA,IAChBgyG,EAAYhyG,CAAC,EAAI0vG,GAAYsC,EAAYhyG,CAAC,CAAC,EAC3CiyG,EAAWjyG,CAAC,EAAI0vG,GAAYuC,EAAWjyG,CAAC,CAAC,EAE7C,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChBkyG,EAAYlyG,CAAC,EAAI0vG,GAAYwC,EAAYlyG,CAAC,CAAC,EAG/C,KAAK,aAAe,IAAI,OAAO,KAAOkyG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACtE,KAAK,kBAAoB,KAAK,aAC9B,KAAK,mBAAqB,IAAI,OAC1B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACZ,EACQ,KAAK,wBAA0B,IAAI,OAC/B,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACZ,CACK,CAIDlH,EAAe,IAAK,EAAG,EAAG,UAAY,CAClC,IAAI3lG,EAAI,KAAK,OACb,OAAOA,GAAK,KAAOglG,GAAShlG,EAAG,CAAC,EAAI,IAAMA,CAClD,CAAK,EAED2lG,EAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,KAAM,EAAG,GAC7B,CAAK,EAEDA,EAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,MAAM,EACxCA,EAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,MAAM,EACzCA,EAAe,EAAG,CAAC,SAAU,EAAG,EAAI,EAAG,EAAG,MAAM,EAIhDsB,GAAa,OAAQ,GAAG,EAIxBU,GAAgB,OAAQ,CAAC,EAIzBqC,GAAc,IAAKN,EAAW,EAC9BM,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,OAAQT,GAAWN,EAAM,EACvCe,GAAc,QAASR,GAAWN,EAAM,EACxCc,GAAc,SAAUR,GAAWN,EAAM,EAEzCwB,GAAc,CAAC,QAAS,QAAQ,EAAGI,EAAI,EACvCJ,GAAc,OAAQ,SAAU/rG,EAAOsT,EAAO,CAC1CA,EAAM64F,EAAI,EACNnsG,EAAM,SAAW,EAAIqnB,EAAM,kBAAkBrnB,CAAK,EAAIupG,GAAMvpG,CAAK,CAC7E,CAAK,EACD+rG,GAAc,KAAM,SAAU/rG,EAAOsT,EAAO,CACxCA,EAAM64F,EAAI,EAAI9kF,EAAM,kBAAkBrnB,CAAK,CACnD,CAAK,EACD+rG,GAAc,IAAK,SAAU/rG,EAAOsT,EAAO,CACvCA,EAAM64F,EAAI,EAAI,SAASnsG,EAAO,EAAE,CACxC,CAAK,EAID,SAASquG,GAAWhF,EAAM,CACtB,OAAOD,GAAWC,CAAI,EAAI,IAAM,GACnC,CAIDhiF,EAAM,kBAAoB,SAAUrnB,EAAO,CACvC,OAAOupG,GAAMvpG,CAAK,GAAKupG,GAAMvpG,CAAK,EAAI,GAAK,KAAO,IAC1D,EAII,IAAIsuG,GAAa5E,GAAW,WAAY,EAAI,EAE5C,SAAS6E,IAAgB,CACrB,OAAOnF,GAAW,KAAK,KAAI,CAAE,CAChC,CAED,SAASoF,GAAWntG,EAAG4O,EAAGywB,EAAGG,EAAG8B,EAAGrxB,GAAGm9F,GAAI,CAGtC,IAAIC,GAEJ,OAAIrtG,EAAI,KAAOA,GAAK,GAEhBqtG,GAAO,IAAI,KAAKrtG,EAAI,IAAK4O,EAAGywB,EAAGG,EAAG8B,EAAGrxB,GAAGm9F,EAAE,EACtC,SAASC,GAAK,YAAW,CAAE,GAC3BA,GAAK,YAAYrtG,CAAC,GAGtBqtG,GAAO,IAAI,KAAKrtG,EAAG4O,EAAGywB,EAAGG,EAAG8B,EAAGrxB,GAAGm9F,EAAE,EAGjCC,EACV,CAED,SAASC,GAActtG,EAAG,CACtB,IAAIqtG,EAAM5wF,EAEV,OAAIzc,EAAI,KAAOA,GAAK,GAChByc,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAE3CA,EAAK,CAAC,EAAIzc,EAAI,IACdqtG,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM5wF,CAAI,CAAC,EACtC,SAAS4wF,EAAK,eAAc,CAAE,GAC9BA,EAAK,eAAertG,CAAC,GAGzBqtG,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM,SAAS,CAAC,EAG5CA,CACV,CAGD,SAASE,GAAgBvF,EAAMwF,EAAKC,EAAK,CACrC,IACIC,EAAM,EAAIF,EAAMC,EAEhBE,GAAS,EAAIL,GAActF,EAAM,EAAG0F,CAAG,EAAE,UAAS,EAAKF,GAAO,EAElE,MAAO,CAACG,EAAQD,EAAM,CACzB,CAGD,SAASE,GAAmB5F,EAAM6F,EAAMC,EAASN,EAAKC,EAAK,CACvD,IAAIM,IAAgB,EAAID,EAAUN,GAAO,EACrCQ,GAAaT,GAAgBvF,EAAMwF,EAAKC,CAAG,EAC3CQ,GAAY,EAAI,GAAKJ,EAAO,GAAKE,GAAeC,GAChDE,GACAC,GAEJ,OAAIF,IAAa,GACbC,GAAUlG,EAAO,EACjBmG,GAAenB,GAAWkB,EAAO,EAAID,IAC9BA,GAAYjB,GAAWhF,CAAI,GAClCkG,GAAUlG,EAAO,EACjBmG,GAAeF,GAAYjB,GAAWhF,CAAI,IAE1CkG,GAAUlG,EACVmG,GAAeF,IAGZ,CACH,KAAMC,GACN,UAAWC,EACvB,CACK,CAED,SAASC,GAAWtJ,EAAK0I,EAAKC,EAAK,CAC/B,IAAIO,EAAaT,GAAgBzI,EAAI,KAAM,EAAE0I,EAAKC,CAAG,EACjDI,EAAO,KAAK,OAAO/I,EAAI,UAAW,EAAGkJ,EAAa,GAAK,CAAC,EAAI,EAC5DK,GACAH,GAEJ,OAAIL,EAAO,GACPK,GAAUpJ,EAAI,KAAM,EAAG,EACvBuJ,GAAUR,EAAOS,GAAYJ,GAASV,EAAKC,CAAG,GACvCI,EAAOS,GAAYxJ,EAAI,OAAQ0I,EAAKC,CAAG,GAC9CY,GAAUR,EAAOS,GAAYxJ,EAAI,OAAQ0I,EAAKC,CAAG,EACjDS,GAAUpJ,EAAI,KAAM,EAAG,IAEvBoJ,GAAUpJ,EAAI,OACduJ,GAAUR,GAGP,CACH,KAAMQ,GACN,KAAMH,EAClB,CACK,CAED,SAASI,GAAYtG,EAAMwF,EAAKC,EAAK,CACjC,IAAIO,EAAaT,GAAgBvF,EAAMwF,EAAKC,CAAG,EAC3Cc,EAAiBhB,GAAgBvF,EAAO,EAAGwF,EAAKC,CAAG,EACvD,OAAQT,GAAWhF,CAAI,EAAIgG,EAAaO,GAAkB,CAC7D,CAID5I,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAC3CA,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,SAAS,EAI9CsB,GAAa,OAAQ,GAAG,EACxBA,GAAa,UAAW,GAAG,EAI3BU,GAAgB,OAAQ,CAAC,EACzBA,GAAgB,UAAW,CAAC,EAI5BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EAErC6B,GACI,CAAC,IAAK,KAAM,IAAK,IAAI,EACrB,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAClCsvG,EAAKtvG,EAAM,OAAO,EAAG,CAAC,CAAC,EAAI2pG,GAAMvpG,CAAK,CACzC,CACT,EAMI,SAAS6vG,GAAW1J,EAAK,CACrB,OAAOsJ,GAAWtJ,EAAK,KAAK,MAAM,IAAK,KAAK,MAAM,GAAG,EAAE,IAC1D,CAED,IAAI2J,GAAoB,CACpB,IAAK,EACL,IAAK,CACb,EAEI,SAASC,IAAuB,CAC5B,OAAO,KAAK,MAAM,GACrB,CAED,SAASC,IAAuB,CAC5B,OAAO,KAAK,MAAM,GACrB,CAID,SAASC,GAAWjwG,EAAO,CACvB,IAAIkvG,EAAO,KAAK,WAAY,EAAC,KAAK,IAAI,EACtC,OAAOlvG,GAAS,KAAOkvG,EAAO,KAAK,KAAKlvG,EAAQkvG,GAAQ,EAAG,GAAG,CACjE,CAED,SAASgB,GAAclwG,EAAO,CAC1B,IAAIkvG,EAAOO,GAAW,KAAM,EAAG,CAAC,EAAE,KAClC,OAAOzvG,GAAS,KAAOkvG,EAAO,KAAK,KAAKlvG,EAAQkvG,GAAQ,EAAG,GAAG,CACjE,CAIDlI,EAAe,IAAK,EAAG,KAAM,KAAK,EAElCA,EAAe,KAAM,EAAG,EAAG,SAAUj4C,EAAQ,CACzC,OAAO,KAAK,WAAY,EAAC,YAAY,KAAMA,CAAM,CACzD,CAAK,EAEDi4C,EAAe,MAAO,EAAG,EAAG,SAAUj4C,EAAQ,CAC1C,OAAO,KAAK,WAAY,EAAC,cAAc,KAAMA,CAAM,CAC3D,CAAK,EAEDi4C,EAAe,OAAQ,EAAG,EAAG,SAAUj4C,EAAQ,CAC3C,OAAO,KAAK,WAAY,EAAC,SAAS,KAAMA,CAAM,CACtD,CAAK,EAEDi4C,EAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,EAAe,IAAK,EAAG,EAAG,YAAY,EAItCsB,GAAa,MAAO,GAAG,EACvBA,GAAa,UAAW,GAAG,EAC3BA,GAAa,aAAc,GAAG,EAG9BU,GAAgB,MAAO,EAAE,EACzBA,GAAgB,UAAW,EAAE,EAC7BA,GAAgB,aAAc,EAAE,EAIhCqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAM,SAAUG,EAAUnH,EAAQ,CAC5C,OAAOA,EAAO,iBAAiBmH,CAAQ,CAC/C,CAAK,EACDH,GAAc,MAAO,SAAUG,EAAUnH,EAAQ,CAC7C,OAAOA,EAAO,mBAAmBmH,CAAQ,CACjD,CAAK,EACDH,GAAc,OAAQ,SAAUG,EAAUnH,EAAQ,CAC9C,OAAOA,EAAO,cAAcmH,CAAQ,CAC5C,CAAK,EAEDS,GAAkB,CAAC,KAAM,MAAO,MAAM,EAAG,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAC3E,IAAIuvG,EAAUxgC,EAAO,QAAQ,cAAc3uE,EAAOJ,EAAO+uE,EAAO,OAAO,EAEnEwgC,GAAW,KACXD,EAAK,EAAIC,EAET1K,EAAgB91B,CAAM,EAAE,eAAiB3uE,CAErD,CAAK,EAEDisG,GAAkB,CAAC,IAAK,IAAK,GAAG,EAAG,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CACrEsvG,EAAKtvG,CAAK,EAAI2pG,GAAMvpG,CAAK,CACjC,CAAK,EAID,SAASmwG,GAAanwG,EAAOqkG,EAAQ,CACjC,OAAI,OAAOrkG,GAAU,SACVA,EAGN,MAAMA,CAAK,GAIhBA,EAAQqkG,EAAO,cAAcrkG,CAAK,EAC9B,OAAOA,GAAU,SACVA,EAGJ,MARI,SAASA,EAAO,EAAE,CAShC,CAED,SAASowG,GAAgBpwG,EAAOqkG,EAAQ,CACpC,OAAI,OAAOrkG,GAAU,SACVqkG,EAAO,cAAcrkG,CAAK,EAAI,GAAK,EAEvC,MAAMA,CAAK,EAAI,KAAOA,CAChC,CAGD,SAASqwG,GAAcC,EAAItgG,EAAG,CAC1B,OAAOsgG,EAAG,MAAMtgG,EAAG,CAAC,EAAE,OAAOsgG,EAAG,MAAM,EAAGtgG,CAAC,CAAC,CAC9C,CAED,IAAIugG,GACI,2DAA2D,MAAM,GAAG,EACxEC,GAA6B,8BAA8B,MAAM,GAAG,EACpEC,GAA2B,uBAAuB,MAAM,GAAG,EAC3DC,GAAuBvF,GACvBwF,GAA4BxF,GAC5ByF,GAA0BzF,GAE9B,SAAS0F,GAAe5gG,EAAG8+C,EAAQ,CAC/B,IAAI+hD,EAAW1lC,EAAQ,KAAK,SAAS,EAC/B,KAAK,UACL,KAAK,UACDn7D,GAAKA,IAAM,IAAQ,KAAK,UAAU,SAAS,KAAK8+C,CAAM,EAChD,SACA,YACxB,EACQ,OAAO9+C,IAAM,GACPogG,GAAcS,EAAU,KAAK,MAAM,GAAG,EACtC7gG,EACA6gG,EAAS7gG,EAAE,KAAK,EAChB6gG,CACT,CAED,SAASC,GAAoB9gG,EAAG,CAC5B,OAAOA,IAAM,GACPogG,GAAc,KAAK,eAAgB,KAAK,MAAM,GAAG,EACjDpgG,EACA,KAAK,eAAeA,EAAE,KAAK,EAC3B,KAAK,cACd,CAED,SAAS+gG,GAAkB/gG,EAAG,CAC1B,OAAOA,IAAM,GACPogG,GAAc,KAAK,aAAc,KAAK,MAAM,GAAG,EAC/CpgG,EACA,KAAK,aAAaA,EAAE,KAAK,EACzB,KAAK,YACd,CAED,SAASghG,GAAoBC,EAAaniD,EAAQu1C,EAAQ,CACtD,IAAIpoG,EACAkiD,EACA+nD,GACAqH,GAAM0D,EAAY,oBACtB,GAAI,CAAC,KAAK,eAKN,IAJA,KAAK,eAAiB,GACtB,KAAK,oBAAsB,GAC3B,KAAK,kBAAoB,GAEpBh1G,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACjBiqG,GAAM/B,EAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIloG,CAAC,EAChC,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BiqG,GACA,EACH,EAAC,kBAAiB,EACnB,KAAK,oBAAoBjqG,CAAC,EAAI,KAAK,cAC/BiqG,GACA,EACH,EAAC,kBAAiB,EACnB,KAAK,eAAejqG,CAAC,EAAI,KAAK,SAASiqG,GAAK,EAAE,EAAE,oBAIxD,OAAI7B,EACIv1C,IAAW,QACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,EAAG,EACnCpvD,IAAO,GAAKA,EAAK,MACjB2Q,IAAW,OAClB3Q,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,EAAG,EACxCpvD,IAAO,GAAKA,EAAK,OAExBA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACtCpvD,IAAO,GAAKA,EAAK,MAGxB2Q,IAAW,QACX3Q,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,EAAG,EACtCpvD,IAAO,KAGXA,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,EAAG,EAC3CpvD,IAAO,IACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACtCpvD,IAAO,GAAKA,EAAK,OACjB2Q,IAAW,OAClB3Q,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,EAAG,EAC3CpvD,IAAO,KAGXA,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,EAAG,EACtCpvD,IAAO,IACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACtCpvD,IAAO,GAAKA,EAAK,QAExBA,EAAK5qC,GAAQ,KAAK,KAAK,kBAAmBg6F,EAAG,EACzCpvD,IAAO,KAGXA,EAAK5qC,GAAQ,KAAK,KAAK,eAAgBg6F,EAAG,EACtCpvD,IAAO,IACAA,GAEXA,EAAK5qC,GAAQ,KAAK,KAAK,oBAAqBg6F,EAAG,EACxCpvD,IAAO,GAAKA,EAAK,MAGnC,CAED,SAAS+yD,GAAoBD,EAAaniD,EAAQu1C,EAAQ,CACtD,IAAIpoG,EAAGiqG,EAAKmF,GAEZ,GAAI,KAAK,oBACL,OAAO2F,GAAoB,KAAK,KAAMC,EAAaniD,EAAQu1C,CAAM,EAUrE,IAPK,KAAK,iBACN,KAAK,eAAiB,GACtB,KAAK,kBAAoB,GACzB,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,IAGzBpoG,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BAiqG,EAAM/B,EAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIloG,CAAC,EAC5BooG,GAAU,CAAC,KAAK,mBAAmBpoG,CAAC,IACpC,KAAK,mBAAmBA,CAAC,EAAI,IAAI,OAC7B,IAAM,KAAK,SAASiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACpD,GACpB,EACgB,KAAK,oBAAoBjqG,CAAC,EAAI,IAAI,OAC9B,IAAM,KAAK,cAAciqG,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACzD,GACpB,EACgB,KAAK,kBAAkBjqG,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYiqG,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACvD,GACpB,GAEiB,KAAK,eAAejqG,CAAC,IACtBovG,GACI,IACA,KAAK,SAASnF,EAAK,EAAE,EACrB,KACA,KAAK,cAAcA,EAAK,EAAE,EAC1B,KACA,KAAK,YAAYA,EAAK,EAAE,EAC5B,KAAK,eAAejqG,CAAC,EAAI,IAAI,OAAOovG,GAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI/DhH,GACAv1C,IAAW,QACX,KAAK,mBAAmB7yD,CAAC,EAAE,KAAKg1G,CAAW,EAE3C,OAAOh1G,EACJ,GACHooG,GACAv1C,IAAW,OACX,KAAK,oBAAoB7yD,CAAC,EAAE,KAAKg1G,CAAW,EAE5C,OAAOh1G,EACJ,GACHooG,GACAv1C,IAAW,MACX,KAAK,kBAAkB7yD,CAAC,EAAE,KAAKg1G,CAAW,EAE1C,OAAOh1G,EACJ,GAAI,CAACooG,GAAU,KAAK,eAAepoG,CAAC,EAAE,KAAKg1G,CAAW,EACzD,OAAOh1G,CAEd,CACJ,CAID,SAASk1G,GAAgBpxG,EAAO,CAC5B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAIqxG,EAAM,KAAK,OAAS,KAAK,GAAG,UAAS,EAAK,KAAK,GAAG,SACtD,OAAIrxG,GAAS,MACTA,EAAQmwG,GAAanwG,EAAO,KAAK,WAAY,GACtC,KAAK,IAAIA,EAAQqxG,EAAK,GAAG,GAEzBA,CAEd,CAED,SAASC,GAAsBtxG,EAAO,CAClC,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAImvG,GAAW,KAAK,MAAQ,EAAI,KAAK,WAAY,EAAC,MAAM,KAAO,EAC/D,OAAOnvG,GAAS,KAAOmvG,EAAU,KAAK,IAAInvG,EAAQmvG,EAAS,GAAG,CACjE,CAED,SAASoC,GAAmBvxG,EAAO,CAC/B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAOlC,GAAIA,GAAS,KAAM,CACf,IAAImvG,EAAUiB,GAAgBpwG,EAAO,KAAK,WAAY,GACtD,OAAO,KAAK,IAAI,KAAK,IAAG,EAAK,EAAImvG,EAAUA,EAAU,CAAC,CAClE,KACY,QAAO,KAAK,IAAK,GAAI,CAE5B,CAED,SAASqC,GAAchG,EAAU,CAC7B,OAAI,KAAK,qBACAxH,EAAW,KAAM,gBAAgB,GAClCyN,GAAqB,KAAK,IAAI,EAE9BjG,EACO,KAAK,qBAEL,KAAK,iBAGXxH,EAAW,KAAM,gBAAgB,IAClC,KAAK,eAAiB0M,IAEnB,KAAK,sBAAwBlF,EAC9B,KAAK,qBACL,KAAK,eAElB,CAED,SAASkG,GAAmBlG,EAAU,CAClC,OAAI,KAAK,qBACAxH,EAAW,KAAM,gBAAgB,GAClCyN,GAAqB,KAAK,IAAI,EAE9BjG,EACO,KAAK,0BAEL,KAAK,sBAGXxH,EAAW,KAAM,qBAAqB,IACvC,KAAK,oBAAsB2M,IAExB,KAAK,2BAA6BnF,EACnC,KAAK,0BACL,KAAK,oBAElB,CAED,SAASmG,GAAiBnG,EAAU,CAChC,OAAI,KAAK,qBACAxH,EAAW,KAAM,gBAAgB,GAClCyN,GAAqB,KAAK,IAAI,EAE9BjG,EACO,KAAK,wBAEL,KAAK,oBAGXxH,EAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoB4M,IAEtB,KAAK,yBAA2BpF,EACjC,KAAK,wBACL,KAAK,kBAElB,CAED,SAASiG,IAAuB,CAC5B,SAASxD,EAAUx2F,GAAGC,GAAG,CACrB,OAAOA,GAAE,OAASD,GAAE,MACvB,CAED,IAAIm6F,EAAY,CAAE,EACd1D,EAAc,CAAE,EAChBC,EAAa,CAAE,EACfC,EAAc,CAAE,EAChBlyG,GACAiqG,GACA0L,GACAC,GACAC,GACJ,IAAK71G,GAAI,EAAGA,GAAI,EAAGA,KAEfiqG,GAAM/B,EAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIloG,EAAC,EAChC21G,GAAOjG,GAAY,KAAK,YAAYzF,GAAK,EAAE,CAAC,EAC5C2L,GAASlG,GAAY,KAAK,cAAczF,GAAK,EAAE,CAAC,EAChD4L,GAAQnG,GAAY,KAAK,SAASzF,GAAK,EAAE,CAAC,EAC1CyL,EAAU,KAAKC,EAAI,EACnB3D,EAAY,KAAK4D,EAAM,EACvB3D,EAAW,KAAK4D,EAAK,EACrB3D,EAAY,KAAKyD,EAAI,EACrBzD,EAAY,KAAK0D,EAAM,EACvB1D,EAAY,KAAK2D,EAAK,EAI1BH,EAAU,KAAK3D,CAAS,EACxBC,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,eAAiB,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACxE,KAAK,oBAAsB,KAAK,eAChC,KAAK,kBAAoB,KAAK,eAE9B,KAAK,qBAAuB,IAAI,OAC5B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACZ,EACQ,KAAK,0BAA4B,IAAI,OACjC,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACZ,EACQ,KAAK,wBAA0B,IAAI,OAC/B,KAAO0D,EAAU,KAAK,GAAG,EAAI,IAC7B,GACZ,CACK,CAID,SAASI,IAAU,CACf,OAAO,KAAK,QAAU,IAAM,EAC/B,CAED,SAASC,IAAU,CACf,OAAO,KAAK,MAAO,GAAI,EAC1B,CAEDjL,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,MAAM,EACxCA,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGgL,EAAO,EACzChL,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGiL,EAAO,EAEzCjL,EAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAKgL,GAAQ,MAAM,IAAI,EAAI3L,GAAS,KAAK,UAAW,CAAC,CACpE,CAAK,EAEDW,EAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACAgL,GAAQ,MAAM,IAAI,EAClB3L,GAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,GAAS,KAAK,QAAS,EAAE,CAAC,CAEtC,CAAK,EAEDW,EAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAK,KAAK,MAAO,EAAGX,GAAS,KAAK,UAAW,CAAC,CAC7D,CAAK,EAEDW,EAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACA,KAAK,MAAO,EACZX,GAAS,KAAK,QAAS,EAAE,CAAC,EAC1BA,GAAS,KAAK,QAAS,EAAE,CAAC,CAEtC,CAAK,EAED,SAAS6L,GAAStyG,EAAOuyG,EAAW,CAChCnL,EAAepnG,EAAO,EAAG,EAAG,UAAY,CACpC,OAAO,KAAK,WAAU,EAAG,SACrB,KAAK,MAAO,EACZ,KAAK,QAAS,EACduyG,CAChB,CACA,CAAS,CACJ,CAEDD,GAAS,IAAK,EAAI,EAClBA,GAAS,IAAK,EAAK,EAInB5J,GAAa,OAAQ,GAAG,EAGxBU,GAAgB,OAAQ,EAAE,EAI1B,SAASoJ,GAAc5G,EAAUnH,EAAQ,CACrC,OAAOA,EAAO,cACjB,CAEDgH,GAAc,IAAK+G,EAAa,EAChC/G,GAAc,IAAK+G,EAAa,EAChC/G,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAMb,GAAWJ,EAAM,EAErCiB,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,QAASX,EAAS,EAChCW,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,QAASX,EAAS,EAEhCqB,GAAc,CAAC,IAAK,IAAI,EAAGO,EAAI,EAC/BP,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACvD,IAAI0jC,EAAS9I,GAAMvpG,CAAK,EACxBsT,EAAMg5F,EAAI,EAAI+F,IAAW,GAAK,EAAIA,CAC1C,CAAK,EACDtG,GAAc,CAAC,IAAK,GAAG,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACtDA,EAAO,MAAQA,EAAO,QAAQ,KAAK3uE,CAAK,EACxC2uE,EAAO,UAAY3uE,CAC3B,CAAK,EACD+rG,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACvDr7D,EAAMg5F,EAAI,EAAI/C,GAAMvpG,CAAK,EACzBykG,EAAgB91B,CAAM,EAAE,QAAU,EAC1C,CAAK,EACDo9B,GAAc,MAAO,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACjD,IAAI2jC,EAAMtyG,EAAM,OAAS,EACzBsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGsyG,CAAG,CAAC,EACxCh/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOsyG,CAAG,CAAC,EACvC7N,EAAgB91B,CAAM,EAAE,QAAU,EAC1C,CAAK,EACDo9B,GAAc,QAAS,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACnD,IAAI4jC,EAAOvyG,EAAM,OAAS,EACtBwyG,EAAOxyG,EAAM,OAAS,EAC1BsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGuyG,CAAI,CAAC,EACzCj/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOuyG,EAAM,CAAC,CAAC,EAC3Cj/F,EAAMk5F,EAAM,EAAIjD,GAAMvpG,EAAM,OAAOwyG,CAAI,CAAC,EACxC/N,EAAgB91B,CAAM,EAAE,QAAU,EAC1C,CAAK,EACDo9B,GAAc,MAAO,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACjD,IAAI2jC,EAAMtyG,EAAM,OAAS,EACzBsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGsyG,CAAG,CAAC,EACxCh/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOsyG,CAAG,CAAC,CAC/C,CAAK,EACDvG,GAAc,QAAS,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACnD,IAAI4jC,EAAOvyG,EAAM,OAAS,EACtBwyG,EAAOxyG,EAAM,OAAS,EAC1BsT,EAAMg5F,EAAI,EAAI/C,GAAMvpG,EAAM,OAAO,EAAGuyG,CAAI,CAAC,EACzCj/F,EAAMi5F,EAAM,EAAIhD,GAAMvpG,EAAM,OAAOuyG,EAAM,CAAC,CAAC,EAC3Cj/F,EAAMk5F,EAAM,EAAIjD,GAAMvpG,EAAM,OAAOwyG,CAAI,CAAC,CAChD,CAAK,EAID,SAASC,GAAWzyG,EAAO,CAGvB,OAAQA,EAAQ,IAAI,YAAa,EAAC,OAAO,CAAC,IAAM,GACnD,CAED,IAAI0yG,GAA6B,gBAK7BC,GAAajJ,GAAW,QAAS,EAAI,EAEzC,SAASkJ,EAAeC,EAAOC,EAASC,EAAS,CAC7C,OAAIF,EAAQ,GACDE,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAE/B,CAED,IAAIC,EAAa,CACb,SAAU/M,GACV,eAAgBuB,GAChB,YAAaI,GACb,QAASE,GACT,uBAAwBC,GACxB,aAAcC,GAEd,OAAQ+E,GACR,YAAaC,GAEb,KAAM8C,GAEN,SAAUS,GACV,YAAaE,GACb,cAAeD,GAEf,cAAekC,EACvB,EAGQO,EAAU,CAAE,EACZC,EAAiB,CAAE,EACnBC,EAEJ,SAASC,EAAaC,EAAM5oB,EAAM,CAC9B,IAAIvuF,EACAo3G,EAAO,KAAK,IAAID,EAAK,OAAQ5oB,EAAK,MAAM,EAC5C,IAAKvuF,EAAI,EAAGA,EAAIo3G,EAAMp3G,GAAK,EACvB,GAAIm3G,EAAKn3G,CAAC,IAAMuuF,EAAKvuF,CAAC,EAClB,OAAOA,EAGf,OAAOo3G,CACV,CAED,SAASC,EAAgBvpG,EAAK,CAC1B,OAAOA,GAAMA,EAAI,YAAa,EAAC,QAAQ,IAAK,GAAG,CAClD,CAKD,SAASwpG,GAAalpD,EAAO,CAOzB,QANIpuD,EAAI,EACJoT,EACA2C,EACAoyF,EACAoP,GAEGv3G,EAAIouD,EAAM,QAAQ,CAKrB,IAJAmpD,GAAQF,EAAgBjpD,EAAMpuD,CAAC,CAAC,EAAE,MAAM,GAAG,EAC3CoT,EAAImkG,GAAM,OACVxhG,EAAOshG,EAAgBjpD,EAAMpuD,EAAI,CAAC,CAAC,EACnC+V,EAAOA,EAAOA,EAAK,MAAM,GAAG,EAAI,KACzB3C,EAAI,GAAG,CAEV,GADA+0F,EAASqP,GAAWD,GAAM,MAAM,EAAGnkG,CAAC,EAAE,KAAK,GAAG,CAAC,EAC3C+0F,EACA,OAAOA,EAEX,GACIpyF,GACAA,EAAK,QAAU3C,GACf8jG,EAAaK,GAAOxhG,CAAI,GAAK3C,EAAI,EAGjC,MAEJA,GACH,CACDpT,GACH,CACD,OAAOi3G,CACV,CAED,SAASQ,GAAiBh8G,EAAM,CAE5B,OAAOA,EAAK,MAAM,aAAa,GAAK,IACvC,CAED,SAAS+7G,GAAW/7G,EAAM,CACtB,IAAIi8G,EAAY,KACZC,EAEJ,GACIZ,EAAQt7G,CAAI,IAAM,QAElBmb,GACAA,EAAO,SACP6gG,GAAiBh8G,CAAI,EAErB,GAAI,CACAi8G,EAAYT,EAAa,MACzBU,EAAiBotB,IACjBptB,EAAe,YAAcl8G,CAAI,EACjCm8G,GAAmBF,CAAS,CAC/B,MAAW,CAGRX,EAAQt7G,CAAI,EAAI,IACnB,CAEL,OAAOs7G,EAAQt7G,CAAI,CACtB,CAKD,SAASm8G,GAAmB9pG,EAAKtO,EAAQ,CACrC,IAAIkrB,EACJ,OAAI5c,IACIuiE,EAAY7wE,CAAM,EAClBkrB,EAAOmtF,GAAU/pG,CAAG,EAEpB4c,EAAOotF,GAAahqG,EAAKtO,CAAM,EAG/BkrB,EAEAusF,EAAevsF,EAEX,OAAO,QAAY,KAAe,QAAQ,MAE1C,QAAQ,KACJ,UAAY5c,EAAM,wCAC1C,GAKempG,EAAa,KACvB,CAED,SAASa,GAAar8G,EAAMg3E,EAAQ,CAChC,GAAIA,IAAW,KAAM,CACjB,IAAI01B,EACAyB,EAAekN,EAEnB,GADArkC,EAAO,KAAOh3E,EACVs7G,EAAQt7G,CAAI,GAAK,KACjBiuG,EACI,uBACA,yOAIpB,EACgBE,EAAemN,EAAQt7G,CAAI,EAAE,gBACtBg3E,EAAO,cAAgB,KAC9B,GAAIskC,EAAQtkC,EAAO,YAAY,GAAK,KAChCm3B,EAAemN,EAAQtkC,EAAO,YAAY,EAAE,gBAE5C01B,EAASqP,GAAW/kC,EAAO,YAAY,EACnC01B,GAAU,KACVyB,EAAezB,EAAO,YAEtB,QAAK6O,EAAevkC,EAAO,YAAY,IACnCukC,EAAevkC,EAAO,YAAY,EAAI,IAE1CukC,EAAevkC,EAAO,YAAY,EAAE,KAAK,CACrC,KAAMh3E,EACN,OAAQg3E,CACpC,CAAyB,EACM,KAInB,OAAAskC,EAAQt7G,CAAI,EAAI,IAAIquG,GAAOH,GAAaC,EAAcn3B,CAAM,CAAC,EAEzDukC,EAAev7G,CAAI,GACnBu7G,EAAev7G,CAAI,EAAE,QAAQ,SAAUyJ,EAAG,CACtC4yG,GAAa5yG,EAAE,KAAMA,EAAE,MAAM,CACjD,CAAiB,EAML0yG,GAAmBn8G,CAAI,EAEhBs7G,EAAQt7G,CAAI,CAC/B,KAEY,eAAOs7G,EAAQt7G,CAAI,EACZ,IAEd,CAED,SAASs8G,GAAat8G,EAAMg3E,EAAQ,CAChC,GAAIA,GAAU,KAAM,CAChB,IAAI01B,EACA6P,EACApO,EAAekN,EAEfC,EAAQt7G,CAAI,GAAK,MAAQs7G,EAAQt7G,CAAI,EAAE,cAAgB,KAEvDs7G,EAAQt7G,CAAI,EAAE,IAAIkuG,GAAaoN,EAAQt7G,CAAI,EAAE,QAASg3E,CAAM,CAAC,GAG7DulC,EAAYR,GAAW/7G,CAAI,EACvBu8G,GAAa,OACbpO,EAAeoO,EAAU,SAE7BvlC,EAASk3B,GAAaC,EAAcn3B,CAAM,EACtCulC,GAAa,OAIbvlC,EAAO,KAAOh3E,GAElB0sG,EAAS,IAAI2B,GAAOr3B,CAAM,EAC1B01B,EAAO,aAAe4O,EAAQt7G,CAAI,EAClCs7G,EAAQt7G,CAAI,EAAI0sG,GAIpByP,GAAmBn8G,CAAI,CACnC,MAEgBs7G,EAAQt7G,CAAI,GAAK,OACbs7G,EAAQt7G,CAAI,EAAE,cAAgB,MAC9Bs7G,EAAQt7G,CAAI,EAAIs7G,EAAQt7G,CAAI,EAAE,aAC1BA,IAASm8G,MACTA,GAAmBn8G,CAAI,GAEpBs7G,EAAQt7G,CAAI,GAAK,MACxB,OAAOs7G,EAAQt7G,CAAI,GAI/B,OAAOs7G,EAAQt7G,CAAI,CACtB,CAGD,SAASo8G,GAAU/pG,EAAK,CACpB,IAAIq6F,EAMJ,GAJIr6F,GAAOA,EAAI,SAAWA,EAAI,QAAQ,QAClCA,EAAMA,EAAI,QAAQ,OAGlB,CAACA,EACD,OAAOmpG,EAGX,GAAI,CAAC/nC,EAAQphE,CAAG,EAAG,CAGf,GADAq6F,EAASqP,GAAW1pG,CAAG,EACnBq6F,EACA,OAAOA,EAEXr6F,EAAM,CAACA,CAAG,CACb,CAED,OAAOwpG,GAAaxpG,CAAG,CAC1B,CAED,SAASmqG,IAAc,CACnB,OAAO75F,GAAK24F,CAAO,CACtB,CAED,SAASmB,GAAcnkG,EAAG,CACtB,IAAIokG,EACA58F,EAAIxH,EAAE,GAEV,OAAIwH,GAAKgtF,EAAgBx0F,CAAC,EAAE,WAAa,KACrCokG,EACI58F,EAAE20F,EAAK,EAAI,GAAK30F,EAAE20F,EAAK,EAAI,GACrBA,GACA30F,EAAE40F,EAAI,EAAI,GAAK50F,EAAE40F,EAAI,EAAIvC,GAAYryF,EAAE00F,EAAI,EAAG10F,EAAE20F,EAAK,CAAC,EACtDC,GACA50F,EAAE60F,EAAI,EAAI,GACV70F,EAAE60F,EAAI,EAAI,IACT70F,EAAE60F,EAAI,IAAM,KACR70F,EAAE80F,EAAM,IAAM,GACX90F,EAAE+0F,EAAM,IAAM,GACd/0F,EAAEg1F,EAAW,IAAM,GAC3BH,GACA70F,EAAE80F,EAAM,EAAI,GAAK90F,EAAE80F,EAAM,EAAI,GAC7BA,GACA90F,EAAE+0F,EAAM,EAAI,GAAK/0F,EAAE+0F,EAAM,EAAI,GAC7BA,GACA/0F,EAAEg1F,EAAW,EAAI,GAAKh1F,EAAEg1F,EAAW,EAAI,IACvCA,GACA,GAGNhI,EAAgBx0F,CAAC,EAAE,qBAClBokG,EAAWlI,IAAQkI,EAAWhI,MAE/BgI,EAAWhI,IAEX5H,EAAgBx0F,CAAC,EAAE,gBAAkBokG,IAAa,KAClDA,EAAW3H,IAEXjI,EAAgBx0F,CAAC,EAAE,kBAAoBokG,IAAa,KACpDA,EAAW1H,IAGflI,EAAgBx0F,CAAC,EAAE,SAAWokG,GAG3BpkG,CACV,CAID,IAAIqkG,GACI,iJACJC,GACI,6IACJC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,qBAAqB,EACtC,CAAC,aAAc,iBAAiB,EAChC,CAAC,eAAgB,gBAAgB,EACjC,CAAC,aAAc,cAAe,EAAK,EACnC,CAAC,WAAY,aAAa,EAC1B,CAAC,UAAW,aAAc,EAAK,EAC/B,CAAC,aAAc,YAAY,EAC3B,CAAC,WAAY,OAAO,EACpB,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,cAAe,EAAK,EAClC,CAAC,UAAW,OAAO,EACnB,CAAC,SAAU,QAAS,EAAK,EACzB,CAAC,OAAQ,QAAS,EAAK,CAC1B,EAEDC,GAAW,CACP,CAAC,gBAAiB,qBAAqB,EACvC,CAAC,gBAAiB,oBAAoB,EACtC,CAAC,WAAY,gBAAgB,EAC7B,CAAC,QAAS,WAAW,EACrB,CAAC,cAAe,mBAAmB,EACnC,CAAC,cAAe,kBAAkB,EAClC,CAAC,SAAU,cAAc,EACzB,CAAC,OAAQ,UAAU,EACnB,CAAC,KAAM,MAAM,CAChB,EACDC,GAAkB,qBAElBC,GACI,0LACJC,GAAa,CACT,GAAI,EACJ,IAAK,EACL,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,EACtB,EAGI,SAASC,GAAcnmC,EAAQ,CAC3B,IAAIzyE,EACAiV,EACAlV,EAAS0yE,EAAO,GAChB9yE,EAAQy4G,GAAiB,KAAKr4G,CAAM,GAAKs4G,GAAc,KAAKt4G,CAAM,EAClE84G,GACAC,GACAC,GACAC,GACAC,GAAcV,GAAS,OACvBW,GAAcV,GAAS,OAE3B,GAAI74G,EAAO,CAEP,IADA4oG,EAAgB91B,CAAM,EAAE,IAAM,GACzBzyE,EAAI,EAAGiV,EAAIgkG,GAAaj5G,EAAIiV,EAAGjV,IAChC,GAAIu4G,GAASv4G,CAAC,EAAE,CAAC,EAAE,KAAKL,EAAM,CAAC,CAAC,EAAG,CAC/Bm5G,GAAaP,GAASv4G,CAAC,EAAE,CAAC,EAC1B64G,GAAYN,GAASv4G,CAAC,EAAE,CAAC,IAAM,GAC/B,KACH,CAEL,GAAI84G,IAAc,KAAM,CACpBrmC,EAAO,SAAW,GAClB,MACH,CACD,GAAI9yE,EAAM,CAAC,EAAG,CACV,IAAKK,EAAI,EAAGiV,EAAIikG,GAAal5G,EAAIiV,EAAGjV,IAChC,GAAIw4G,GAASx4G,CAAC,EAAE,CAAC,EAAE,KAAKL,EAAM,CAAC,CAAC,EAAG,CAE/Bo5G,IAAcp5G,EAAM,CAAC,GAAK,KAAO64G,GAASx4G,CAAC,EAAE,CAAC,EAC9C,KACH,CAEL,GAAI+4G,IAAc,KAAM,CACpBtmC,EAAO,SAAW,GAClB,MACH,CACJ,CACD,GAAI,CAAComC,IAAaE,IAAc,KAAM,CAClCtmC,EAAO,SAAW,GAClB,MACH,CACD,GAAI9yE,EAAM,CAAC,EACP,GAAI24G,GAAQ,KAAK34G,EAAM,CAAC,CAAC,EACrBq5G,GAAW,QACR,CACHvmC,EAAO,SAAW,GAClB,MACH,CAELA,EAAO,GAAKqmC,IAAcC,IAAc,KAAOC,IAAY,IAC3DG,GAA0B1mC,CAAM,CAC5C,MACYA,EAAO,SAAW,EAEzB,CAED,SAAS2mC,GACLC,EACAC,EACAC,EACAC,EACAC,EACAC,GACF,CACE,IAAI55G,GAAS,CACT65G,GAAeN,CAAO,EACtBvI,GAAyB,QAAQwI,CAAQ,EACzC,SAASC,EAAQ,EAAE,EACnB,SAASC,EAAS,EAAE,EACpB,SAASC,EAAW,EAAE,CAClC,EAEQ,OAAIC,IACA55G,GAAO,KAAK,SAAS45G,GAAW,EAAE,CAAC,EAGhC55G,EACV,CAED,SAAS65G,GAAeN,EAAS,CAC7B,IAAIlM,EAAO,SAASkM,EAAS,EAAE,EAC/B,OAAIlM,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACV,CAED,SAASyM,GAAkBxkG,EAAG,CAE1B,OAAOA,EACF,QAAQ,qBAAsB,GAAG,EACjC,QAAQ,WAAY,GAAG,EACvB,QAAQ,SAAU,EAAE,EACpB,QAAQ,SAAU,EAAE,CAC5B,CAED,SAASykG,GAAaC,EAAYC,EAAatnC,EAAQ,CACnD,GAAIqnC,EAAY,CAEZ,IAAIE,EAAkB1F,GAA2B,QAAQwF,CAAU,EAC/DG,EAAgB,IAAI,KAChBF,EAAY,CAAC,EACbA,EAAY,CAAC,EACbA,EAAY,CAAC,CAChB,EAAC,OAAM,EACZ,GAAIC,IAAoBC,EACpB,OAAA1R,EAAgB91B,CAAM,EAAE,gBAAkB,GAC1CA,EAAO,SAAW,GACX,EAEd,CACD,MAAO,EACV,CAED,SAASynC,GAAgBC,EAAWC,EAAgBC,EAAW,CAC3D,GAAIF,EACA,OAAOxB,GAAWwB,CAAS,EACxB,GAAIC,EAEP,MAAO,GAEP,IAAIE,EAAK,SAASD,EAAW,EAAE,EAC3BtmG,EAAIumG,EAAK,IACT31E,IAAK21E,EAAKvmG,GAAK,IACnB,OAAO4wB,GAAI,GAAK5wB,CAEvB,CAGD,SAASwmG,GAAkB9nC,EAAQ,CAC/B,IAAI9yE,EAAQ+4G,GAAQ,KAAKkB,GAAkBnnC,EAAO,EAAE,CAAC,EACjD+nC,EACJ,GAAI76G,EAAO,CASP,GARA66G,EAAcpB,GACVz5G,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,CACvB,EACgB,CAACk6G,GAAal6G,EAAM,CAAC,EAAG66G,EAAa/nC,CAAM,EAC3C,OAGJA,EAAO,GAAK+nC,EACZ/nC,EAAO,KAAOynC,GAAgBv6G,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,EAAE,CAAC,EAE3D8yE,EAAO,GAAKggC,GAAc,MAAM,KAAMhgC,EAAO,EAAE,EAC/CA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAE/D81B,EAAgB91B,CAAM,EAAE,QAAU,EAC9C,MACYA,EAAO,SAAW,EAEzB,CAGD,SAASgoC,GAAiBhoC,EAAQ,CAC9B,IAAI3wD,EAAU22F,GAAgB,KAAKhmC,EAAO,EAAE,EAC5C,GAAI3wD,IAAY,KAAM,CAClB2wD,EAAO,GAAK,IAAI,KAAK,CAAC3wD,EAAQ,CAAC,CAAC,EAChC,MACH,CAGD,GADA82F,GAAcnmC,CAAM,EAChBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAIJ,GADA8nC,GAAkB9nC,CAAM,EACpBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAGAA,EAAO,QACPA,EAAO,SAAW,GAGlBtnD,EAAM,wBAAwBsnD,CAAM,CAE3C,CAEDtnD,EAAM,wBAA0Bm+E,EAC5B,gSAGA,SAAU72B,EAAQ,CACdA,EAAO,GAAK,IAAI,KAAKA,EAAO,IAAMA,EAAO,QAAU,OAAS,GAAG,CAClE,CACT,EAGI,SAAS7gE,GAAS2J,EAAGC,EAAGnK,EAAG,CACvB,OAAIkK,GAGAC,GAGGnK,CACV,CAED,SAASqpG,GAAiBjoC,EAAQ,CAE9B,IAAIkoC,EAAW,IAAI,KAAKxvF,EAAM,IAAK,GACnC,OAAIsnD,EAAO,QACA,CACHkoC,EAAS,eAAgB,EACzBA,EAAS,YAAa,EACtBA,EAAS,WAAY,CACrC,EAEe,CAACA,EAAS,cAAeA,EAAS,WAAYA,EAAS,QAAO,CAAE,CAC1E,CAMD,SAASC,GAAgBnoC,EAAQ,CAC7B,IAAIzyE,EACAwyG,EACA1uG,EAAQ,CAAE,EACV+2G,EACAC,GACAC,GAEJ,GAAI,CAAAtoC,EAAO,GAgCX,KA5BAooC,EAAcH,GAAiBjoC,CAAM,EAGjCA,EAAO,IAAMA,EAAO,GAAG09B,EAAI,GAAK,MAAQ19B,EAAO,GAAGy9B,EAAK,GAAK,MAC5D8K,GAAsBvoC,CAAM,EAI5BA,EAAO,YAAc,OACrBsoC,GAAYnpG,GAAS6gE,EAAO,GAAGw9B,EAAI,EAAG4K,EAAY5K,EAAI,CAAC,GAGnDx9B,EAAO,WAAa0/B,GAAW4I,EAAS,GACxCtoC,EAAO,aAAe,KAEtB81B,EAAgB91B,CAAM,EAAE,mBAAqB,IAGjD+/B,EAAOC,GAAcsI,GAAW,EAAGtoC,EAAO,UAAU,EACpDA,EAAO,GAAGy9B,EAAK,EAAIsC,EAAK,YAAW,EACnC//B,EAAO,GAAG09B,EAAI,EAAIqC,EAAK,WAAU,GAQhCxyG,EAAI,EAAGA,EAAI,GAAKyyE,EAAO,GAAGzyE,CAAC,GAAK,KAAM,EAAEA,EACzCyyE,EAAO,GAAGzyE,CAAC,EAAI8D,EAAM9D,CAAC,EAAI66G,EAAY76G,CAAC,EAI3C,KAAOA,EAAI,EAAGA,IACVyyE,EAAO,GAAGzyE,CAAC,EAAI8D,EAAM9D,CAAC,EAClByyE,EAAO,GAAGzyE,CAAC,GAAK,KAAQA,IAAM,EAAI,EAAI,EAAKyyE,EAAO,GAAGzyE,CAAC,EAK1DyyE,EAAO,GAAG29B,EAAI,IAAM,IACpB39B,EAAO,GAAG49B,EAAM,IAAM,GACtB59B,EAAO,GAAG69B,EAAM,IAAM,GACtB79B,EAAO,GAAG89B,EAAW,IAAM,IAE3B99B,EAAO,SAAW,GAClBA,EAAO,GAAG29B,EAAI,EAAI,GAGtB39B,EAAO,IAAMA,EAAO,QAAUggC,GAAgBH,IAAY,MACtD,KACAxuG,CACZ,EACQg3G,GAAkBroC,EAAO,QACnBA,EAAO,GAAG,UAAW,EACrBA,EAAO,GAAG,SAIZA,EAAO,MAAQ,MACfA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAe,EAAGA,EAAO,IAAI,EAG/DA,EAAO,WACPA,EAAO,GAAG29B,EAAI,EAAI,IAKlB39B,EAAO,IACP,OAAOA,EAAO,GAAG,EAAM,KACvBA,EAAO,GAAG,IAAMqoC,KAEhBvS,EAAgB91B,CAAM,EAAE,gBAAkB,IAEjD,CAED,SAASuoC,GAAsBvoC,EAAQ,CACnC,IAAIngE,EAAG2oG,EAAUjI,EAAMC,EAASN,GAAKC,GAAK1uF,GAAMg3F,GAAiBC,GAEjE7oG,EAAImgE,EAAO,GACPngE,EAAE,IAAM,MAAQA,EAAE,GAAK,MAAQA,EAAE,GAAK,MACtCqgG,GAAM,EACNC,GAAM,EAMNqI,EAAWrpG,GACPU,EAAE,GACFmgE,EAAO,GAAGw9B,EAAI,EACdsD,GAAW6H,GAAa,EAAE,EAAG,CAAC,EAAE,IAChD,EACYpI,EAAOphG,GAASU,EAAE,EAAG,CAAC,EACtB2gG,EAAUrhG,GAASU,EAAE,EAAG,CAAC,GACrB2gG,EAAU,GAAKA,EAAU,KACzBiI,GAAkB,MAGtBvI,GAAMlgC,EAAO,QAAQ,MAAM,IAC3BmgC,GAAMngC,EAAO,QAAQ,MAAM,IAE3B0oC,GAAU5H,GAAW6H,GAAa,EAAEzI,GAAKC,EAAG,EAE5CqI,EAAWrpG,GAASU,EAAE,GAAImgE,EAAO,GAAGw9B,EAAI,EAAGkL,GAAQ,IAAI,EAGvDnI,EAAOphG,GAASU,EAAE,EAAG6oG,GAAQ,IAAI,EAE7B7oG,EAAE,GAAK,MAEP2gG,EAAU3gG,EAAE,GACR2gG,EAAU,GAAKA,EAAU,KACzBiI,GAAkB,KAEf5oG,EAAE,GAAK,MAEd2gG,EAAU3gG,EAAE,EAAIqgG,IACZrgG,EAAE,EAAI,GAAKA,EAAE,EAAI,KACjB4oG,GAAkB,KAItBjI,EAAUN,IAGdK,EAAO,GAAKA,EAAOS,GAAYwH,EAAUtI,GAAKC,EAAG,EACjDrK,EAAgB91B,CAAM,EAAE,eAAiB,GAClCyoC,IAAmB,KAC1B3S,EAAgB91B,CAAM,EAAE,iBAAmB,IAE3CvuD,GAAO6uF,GAAmBkI,EAAUjI,EAAMC,EAASN,GAAKC,EAAG,EAC3DngC,EAAO,GAAGw9B,EAAI,EAAI/rF,GAAK,KACvBuuD,EAAO,WAAavuD,GAAK,UAEhC,CAGDiH,EAAM,SAAW,UAAY,GAG7BA,EAAM,SAAW,UAAY,GAG7B,SAASguF,GAA0B1mC,EAAQ,CAEvC,GAAIA,EAAO,KAAOtnD,EAAM,SAAU,CAC9BytF,GAAcnmC,CAAM,EACpB,MACH,CACD,GAAIA,EAAO,KAAOtnD,EAAM,SAAU,CAC9BovF,GAAkB9nC,CAAM,EACxB,MACH,CACDA,EAAO,GAAK,GACZ81B,EAAgB91B,CAAM,EAAE,MAAQ,GAGhC,IAAI1yE,EAAS,GAAK0yE,EAAO,GACrBzyE,EACA+5G,EACAt3F,EACA/e,GACA23G,GACAC,GAAev7G,EAAO,OACtBw7G,GAAyB,EACzBC,GACA1L,GAKJ,IAHArtF,EACI2oF,GAAa34B,EAAO,GAAIA,EAAO,OAAO,EAAE,MAAMi4B,EAAgB,GAAK,GACvEoF,GAAWrtF,EAAO,OACbziB,EAAI,EAAGA,EAAI8vG,GAAU9vG,IACtB0D,GAAQ+e,EAAOziB,CAAC,EAChB+5G,GAAeh6G,EAAO,MAAMyvG,GAAsB9rG,GAAO+uE,CAAM,CAAC,GAC5D,CAAE,GAAE,CAAC,EACLsnC,IACAsB,GAAUt7G,EAAO,OAAO,EAAGA,EAAO,QAAQg6G,CAAW,CAAC,EAClDsB,GAAQ,OAAS,GACjB9S,EAAgB91B,CAAM,EAAE,YAAY,KAAK4oC,EAAO,EAEpDt7G,EAASA,EAAO,MACZA,EAAO,QAAQg6G,CAAW,EAAIA,EAAY,MAC9D,EACgBwB,IAA0BxB,EAAY,QAGtClP,GAAqBnnG,EAAK,GACtBq2G,EACAxR,EAAgB91B,CAAM,EAAE,MAAQ,GAEhC81B,EAAgB91B,CAAM,EAAE,aAAa,KAAK/uE,EAAK,EAEnDssG,GAAwBtsG,GAAOq2G,EAAatnC,CAAM,GAC3CA,EAAO,SAAW,CAACsnC,GAC1BxR,EAAgB91B,CAAM,EAAE,aAAa,KAAK/uE,EAAK,EAKvD6kG,EAAgB91B,CAAM,EAAE,cACpB6oC,GAAeC,GACfx7G,EAAO,OAAS,GAChBwoG,EAAgB91B,CAAM,EAAE,YAAY,KAAK1yE,CAAM,EAK/C0yE,EAAO,GAAG29B,EAAI,GAAK,IACnB7H,EAAgB91B,CAAM,EAAE,UAAY,IACpCA,EAAO,GAAG29B,EAAI,EAAI,IAElB7H,EAAgB91B,CAAM,EAAE,QAAU,QAGtC81B,EAAgB91B,CAAM,EAAE,gBAAkBA,EAAO,GAAG,MAAM,CAAC,EAC3D81B,EAAgB91B,CAAM,EAAE,SAAWA,EAAO,UAE1CA,EAAO,GAAG29B,EAAI,EAAIqL,GACdhpC,EAAO,QACPA,EAAO,GAAG29B,EAAI,EACd39B,EAAO,SACnB,EAGQ+oC,GAAMjT,EAAgB91B,CAAM,EAAE,IAC1B+oC,KAAQ,OACR/oC,EAAO,GAAGw9B,EAAI,EAAIx9B,EAAO,QAAQ,gBAAgB+oC,GAAK/oC,EAAO,GAAGw9B,EAAI,CAAC,GAGzE2K,GAAgBnoC,CAAM,EACtBylC,GAAczlC,CAAM,CACvB,CAED,SAASgpC,GAAgBtT,EAAQuT,EAAM1F,EAAU,CAC7C,IAAI2F,EAEJ,OAAI3F,GAAY,KAEL0F,EAEPvT,EAAO,cAAgB,KAChBA,EAAO,aAAauT,EAAM1F,CAAQ,GAClC7N,EAAO,MAAQ,OAEtBwT,EAAOxT,EAAO,KAAK6N,CAAQ,EACvB2F,GAAQD,EAAO,KACfA,GAAQ,IAER,CAACC,GAAQD,IAAS,KAClBA,EAAO,IAEJA,EAKd,CAGD,SAASE,GAAyBnpC,EAAQ,CACtC,IAAIopC,EACAC,EACAC,EACA/7G,EACAg8G,GACAC,GACAC,GAAoB,GACpBC,GAAa1pC,EAAO,GAAG,OAE3B,GAAI0pC,KAAe,EAAG,CAClB5T,EAAgB91B,CAAM,EAAE,cAAgB,GACxCA,EAAO,GAAK,IAAI,KAAK,GAAG,EACxB,MACH,CAED,IAAKzyE,EAAI,EAAGA,EAAIm8G,GAAYn8G,IACxBg8G,GAAe,EACfC,GAAmB,GACnBJ,EAAa5S,EAAW,GAAIx2B,CAAM,EAC9BA,EAAO,SAAW,OAClBopC,EAAW,QAAUppC,EAAO,SAEhCopC,EAAW,GAAKppC,EAAO,GAAGzyE,CAAC,EAC3Bm5G,GAA0B0C,CAAU,EAEhCnT,EAAQmT,CAAU,IAClBI,GAAmB,IAIvBD,IAAgBzT,EAAgBsT,CAAU,EAAE,cAG5CG,IAAgBzT,EAAgBsT,CAAU,EAAE,aAAa,OAAS,GAElEtT,EAAgBsT,CAAU,EAAE,MAAQG,GAE/BE,GAaGF,GAAeD,IACfA,EAAcC,GACdF,EAAaD,IAbbE,GAAe,MACfC,GAAeD,GACfE,MAEAF,EAAcC,GACdF,EAAaD,EACTI,KACAC,GAAoB,KAWpC1qC,EAAOiB,EAAQqpC,GAAcD,CAAU,CAC1C,CAED,SAASO,GAAiB3pC,EAAQ,CAC9B,GAAI,CAAAA,EAAO,GAIX,KAAIzyE,EAAIysG,GAAqBh6B,EAAO,EAAE,EAClC4pC,EAAYr8G,EAAE,MAAQ,OAAYA,EAAE,KAAOA,EAAE,IACjDyyE,EAAO,GAAKhvD,EACR,CAACzjB,EAAE,KAAMA,EAAE,MAAOq8G,EAAWr8G,EAAE,KAAMA,EAAE,OAAQA,EAAE,OAAQA,EAAE,WAAW,EACtE,SAAU0U,EAAK,CACX,OAAOA,GAAO,SAASA,EAAK,EAAE,CACjC,CACb,EAEQkmG,GAAgBnoC,CAAM,EACzB,CAED,SAAS6pC,GAAiB7pC,EAAQ,CAC9B,IAAIu1B,EAAM,IAAImB,EAAO+O,GAAcqE,GAAc9pC,CAAM,CAAC,CAAC,EACzD,OAAIu1B,EAAI,WAEJA,EAAI,IAAI,EAAG,GAAG,EACdA,EAAI,SAAW,QAGZA,CACV,CAED,SAASuU,GAAc9pC,EAAQ,CAC3B,IAAI3uE,EAAQ2uE,EAAO,GACf5f,EAAS4f,EAAO,GAIpB,OAFAA,EAAO,QAAUA,EAAO,SAAWolC,GAAUplC,EAAO,EAAE,EAElD3uE,IAAU,MAAS+uD,IAAW,QAAa/uD,IAAU,GAC9CglG,EAAc,CAAE,UAAW,EAAM,IAGxC,OAAOhlG,GAAU,WACjB2uE,EAAO,GAAK3uE,EAAQ2uE,EAAO,QAAQ,SAAS3uE,CAAK,GAGjDslG,EAAStlG,CAAK,EACP,IAAIqlG,EAAO+O,GAAcp0G,CAAK,CAAC,GAC/B+sE,EAAO/sE,CAAK,EACnB2uE,EAAO,GAAK3uE,EACLorE,EAAQrc,CAAM,EACrB+oD,GAAyBnpC,CAAM,EACxB5f,EACPsmD,GAA0B1mC,CAAM,EAEhC+pC,GAAgB/pC,CAAM,EAGrBi2B,EAAQj2B,CAAM,IACfA,EAAO,GAAK,MAGTA,GACV,CAED,SAAS+pC,GAAgB/pC,EAAQ,CAC7B,IAAI3uE,EAAQ2uE,EAAO,GACfpC,EAAYvsE,CAAK,EACjB2uE,EAAO,GAAK,IAAI,KAAKtnD,EAAM,IAAK,GACzB0lD,EAAO/sE,CAAK,EACnB2uE,EAAO,GAAK,IAAI,KAAK3uE,EAAM,QAAS,GAC7B,OAAOA,GAAU,SACxB22G,GAAiBhoC,CAAM,EAChBvD,EAAQprE,CAAK,GACpB2uE,EAAO,GAAKhvD,EAAI3f,EAAM,MAAM,CAAC,EAAG,SAAU4Q,EAAK,CAC3C,OAAO,SAASA,EAAK,EAAE,CACvC,CAAa,EACDkmG,GAAgBnoC,CAAM,GACf1oB,EAASjmD,CAAK,EACrBs4G,GAAiB3pC,CAAM,EAChB9B,EAAS7sE,CAAK,EAErB2uE,EAAO,GAAK,IAAI,KAAK3uE,CAAK,EAE1BqnB,EAAM,wBAAwBsnD,CAAM,CAE3C,CAED,SAAS41B,GAAiBvkG,EAAO+uD,EAAQs1C,EAAQC,EAAQqU,EAAO,CAC5D,IAAIprG,GAAI,GAER,OAAIwhD,IAAW,IAAQA,IAAW,MAC9Bu1C,EAASv1C,EACTA,EAAS,SAGTs1C,IAAW,IAAQA,IAAW,MAC9BC,EAASD,EACTA,EAAS,SAIRp+C,EAASjmD,CAAK,GAAKikG,EAAcjkG,CAAK,GACtCorE,EAAQprE,CAAK,GAAKA,EAAM,SAAW,KAEpCA,EAAQ,QAIZuN,GAAE,iBAAmB,GACrBA,GAAE,QAAUA,GAAE,OAASorG,EACvBprG,GAAE,GAAK82F,EACP92F,GAAE,GAAKvN,EACPuN,GAAE,GAAKwhD,EACPxhD,GAAE,QAAU+2F,EAELkU,GAAiBjrG,EAAC,CAC5B,CAED,SAAS+pG,GAAYt3G,EAAO+uD,EAAQs1C,EAAQC,EAAQ,CAChD,OAAOC,GAAiBvkG,EAAO+uD,EAAQs1C,EAAQC,EAAQ,EAAK,CAC/D,CAED,IAAIsU,GAAepT,EACX,qGACA,UAAY,CACR,IAAIqT,EAAQvB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMuB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtB7T,EAAa,CAE3B,CACJ,EACD8T,GAAetT,EACX,qGACA,UAAY,CACR,IAAIqT,EAAQvB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMuB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtB7T,EAAa,CAE3B,CACb,EAOI,SAAS+T,GAAOv+F,EAAIw+F,EAAS,CACzB,IAAI9U,EAAKhoG,EAIT,GAHI88G,EAAQ,SAAW,GAAK5tC,EAAQ4tC,EAAQ,CAAC,CAAC,IAC1CA,EAAUA,EAAQ,CAAC,GAEnB,CAACA,EAAQ,OACT,OAAO1B,GAAW,EAGtB,IADApT,EAAM8U,EAAQ,CAAC,EACV98G,EAAI,EAAGA,EAAI88G,EAAQ,OAAQ,EAAE98G,GAC1B,CAAC88G,EAAQ98G,CAAC,EAAE,QAAS,GAAI88G,EAAQ98G,CAAC,EAAEse,CAAE,EAAE0pF,CAAG,KAC3CA,EAAM8U,EAAQ98G,CAAC,GAGvB,OAAOgoG,CACV,CAGD,SAASj7C,IAAM,CACX,IAAInrC,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOi7F,GAAO,WAAYj7F,CAAI,CACjC,CAED,SAASyX,IAAM,CACX,IAAIzX,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOi7F,GAAO,UAAWj7F,CAAI,CAChC,CAED,IAAIsoF,GAAM,UAAY,CAClB,OAAO,KAAK,IAAM,KAAK,IAAG,EAAK,CAAC,IAAI,IAC5C,EAEQ6S,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,aACR,EAEI,SAASC,GAAgBjpG,EAAG,CACxB,IAAIjG,EACAmvG,EAAiB,GACjBj9G,EACAk9G,EAAWH,GAAS,OACxB,IAAKjvG,KAAOiG,EACR,GACI+zF,EAAW/zF,EAAGjG,CAAG,GACjB,EACIwJ,GAAQ,KAAKylG,GAAUjvG,CAAG,IAAM,KAC/BiG,EAAEjG,CAAG,GAAK,MAAQ,CAAC,MAAMiG,EAAEjG,CAAG,CAAC,IAGpC,MAAO,GAIf,IAAK9N,EAAI,EAAGA,EAAIk9G,EAAU,EAAEl9G,EACxB,GAAI+T,EAAEgpG,GAAS/8G,CAAC,CAAC,EAAG,CAChB,GAAIi9G,EACA,MAAO,GAEP,WAAWlpG,EAAEgpG,GAAS/8G,CAAC,CAAC,CAAC,IAAMqtG,GAAMt5F,EAAEgpG,GAAS/8G,CAAC,CAAC,CAAC,IACnDi9G,EAAiB,GAExB,CAGL,MAAO,EACV,CAED,SAASE,IAAY,CACjB,OAAO,KAAK,QACf,CAED,SAASC,IAAkB,CACvB,OAAOC,GAAe,GAAG,CAC5B,CAED,SAASC,GAASl5E,EAAU,CACxB,IAAIuoE,EAAkBF,GAAqBroE,CAAQ,EAC/Cm5E,EAAQ5Q,EAAgB,MAAQ,EAChC6Q,EAAW7Q,EAAgB,SAAW,EACtC8Q,EAAS9Q,EAAgB,OAAS,EAClC+Q,GAAQ/Q,EAAgB,MAAQA,EAAgB,SAAW,EAC3DgR,GAAOhR,EAAgB,KAAO,EAC9BgK,GAAQhK,EAAgB,MAAQ,EAChCiK,GAAUjK,EAAgB,QAAU,EACpCiR,GAAUjR,EAAgB,QAAU,EACpCkR,GAAelR,EAAgB,aAAe,EAElD,KAAK,SAAWqQ,GAAgBrQ,CAAe,EAG/C,KAAK,cACD,CAACkR,GACDD,GAAU,IACVhH,GAAU,IACVD,GAAQ,IAAO,GAAK,GAGxB,KAAK,MAAQ,CAACgH,GAAOD,GAAQ,EAI7B,KAAK,QAAU,CAACD,EAASD,EAAW,EAAID,EAAQ,GAEhD,KAAK,MAAQ,GAEb,KAAK,QAAU1F,KAEf,KAAK,QAAO,CACf,CAED,SAASiG,GAAWppG,EAAK,CACrB,OAAOA,aAAe4oG,EACzB,CAED,SAASS,GAAS3T,EAAQ,CACtB,OAAIA,EAAS,EACF,KAAK,MAAM,GAAKA,CAAM,EAAI,GAE1B,KAAK,MAAMA,CAAM,CAE/B,CAGD,SAAS4T,GAAcC,EAAQC,EAAQC,EAAa,CAChD,IAAIvlG,EAAM,KAAK,IAAIqlG,EAAO,OAAQC,EAAO,MAAM,EAC3CE,EAAa,KAAK,IAAIH,EAAO,OAASC,EAAO,MAAM,EACnDG,GAAQ,EACRr+G,GACJ,IAAKA,GAAI,EAAGA,GAAI4Y,EAAK5Y,MAEZm+G,GAAeF,EAAOj+G,EAAC,IAAMk+G,EAAOl+G,EAAC,GACrC,CAACm+G,GAAe9Q,GAAM4Q,EAAOj+G,EAAC,CAAC,IAAMqtG,GAAM6Q,EAAOl+G,EAAC,CAAC,IAErDq+G,KAGR,OAAOA,GAAQD,CAClB,CAID,SAASj+E,GAAOz8B,EAAO46G,EAAW,CAC9BxT,EAAepnG,EAAO,EAAG,EAAG,UAAY,CACpC,IAAIy8B,EAAS,KAAK,UAAW,EACzBsqE,EAAO,IACX,OAAItqE,EAAS,IACTA,EAAS,CAACA,EACVsqE,EAAO,KAGPA,EACAN,GAAS,CAAC,EAAEhqE,EAAS,IAAK,CAAC,EAC3Bm+E,EACAnU,GAAS,CAAC,CAAChqE,EAAS,GAAI,CAAC,CAEzC,CAAS,CACJ,CAEDA,GAAO,IAAK,GAAG,EACfA,GAAO,KAAM,EAAE,EAIfgvE,GAAc,IAAKJ,EAAgB,EACnCI,GAAc,KAAMJ,EAAgB,EACpCc,GAAc,CAAC,IAAK,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CACvDA,EAAO,QAAU,GACjBA,EAAO,KAAO8rC,GAAiBxP,GAAkBjrG,CAAK,CAC9D,CAAK,EAOD,IAAI06G,GAAc,kBAElB,SAASD,GAAiBx8F,EAAShiB,EAAQ,CACvC,IAAI0Z,GAAW1Z,GAAU,IAAI,MAAMgiB,CAAO,EACtC08F,EACAzpF,EACA4hF,GAEJ,OAAIn9F,IAAY,KACL,MAGXglG,EAAQhlG,EAAQA,EAAQ,OAAS,CAAC,GAAK,GACvCub,GAASypF,EAAQ,IAAI,MAAMD,EAAW,GAAK,CAAC,IAAK,EAAG,CAAC,EACrD5H,GAAU,EAAE5hF,EAAM,CAAC,EAAI,IAAMq4E,GAAMr4E,EAAM,CAAC,CAAC,EAEpC4hF,KAAY,EAAI,EAAI5hF,EAAM,CAAC,IAAM,IAAM4hF,GAAU,CAACA,GAC5D,CAGD,SAAS8H,GAAgB56G,EAAO66G,EAAO,CACnC,IAAI3W,EAAKlpF,EACT,OAAI6/F,EAAM,QACN3W,EAAM2W,EAAM,QACZ7/F,GACKsqF,EAAStlG,CAAK,GAAK+sE,EAAO/sE,CAAK,EAC1BA,EAAM,QAAS,EACfs3G,GAAYt3G,CAAK,EAAE,QAAS,GAAIkkG,EAAI,QAAO,EAErDA,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,EAAKlpF,CAAI,EACtCqM,EAAM,aAAa68E,EAAK,EAAK,EACtBA,GAEAoT,GAAYt3G,CAAK,EAAE,OAEjC,CAED,SAAS86G,GAAc7qG,EAAG,CAGtB,MAAO,CAAC,KAAK,MAAMA,EAAE,GAAG,kBAAiB,CAAE,CAC9C,CAMDoX,EAAM,aAAe,UAAY,GAcjC,SAAS0zF,GAAa/6G,EAAOg7G,EAAeC,EAAa,CACrD,IAAI5+E,EAAS,KAAK,SAAW,EACzB6+E,EACJ,GAAI,CAAC,KAAK,UACN,OAAOl7G,GAAS,KAAO,KAAO,IAElC,GAAIA,GAAS,KAAM,CACf,GAAI,OAAOA,GAAU,UAEjB,GADAA,EAAQy6G,GAAiBxP,GAAkBjrG,CAAK,EAC5CA,IAAU,KACV,OAAO,UAEJ,KAAK,IAAIA,CAAK,EAAI,IAAM,CAACi7G,IAChCj7G,EAAQA,EAAQ,IAEpB,MAAI,CAAC,KAAK,QAAUg7G,IAChBE,EAAcJ,GAAc,IAAI,GAEpC,KAAK,QAAU96G,EACf,KAAK,OAAS,GACVk7G,GAAe,MACf,KAAK,IAAIA,EAAa,GAAG,EAEzB7+E,IAAWr8B,IACP,CAACg7G,GAAiB,KAAK,kBACvBG,GACI,KACA5B,GAAev5G,EAAQq8B,EAAQ,GAAG,EAClC,EACA,EACxB,EAC4B,KAAK,oBACb,KAAK,kBAAoB,GACzBhV,EAAM,aAAa,KAAM,EAAI,EAC7B,KAAK,kBAAoB,OAG1B,IACnB,KACY,QAAO,KAAK,OAASgV,EAASy+E,GAAc,IAAI,CAEvD,CAED,SAASM,GAAWp7G,EAAOg7G,EAAe,CACtC,OAAIh7G,GAAS,MACL,OAAOA,GAAU,WACjBA,EAAQ,CAACA,GAGb,KAAK,UAAUA,EAAOg7G,CAAa,EAE5B,MAEA,CAAC,KAAK,WAEpB,CAED,SAASK,GAAeL,EAAe,CACnC,OAAO,KAAK,UAAU,EAAGA,CAAa,CACzC,CAED,SAASM,GAAiBN,EAAe,CACrC,OAAI,KAAK,SACL,KAAK,UAAU,EAAGA,CAAa,EAC/B,KAAK,OAAS,GAEVA,GACA,KAAK,SAASF,GAAc,IAAI,EAAG,GAAG,GAGvC,IACV,CAED,SAASS,IAA0B,CAC/B,GAAI,KAAK,MAAQ,KACb,KAAK,UAAU,KAAK,KAAM,GAAO,EAAI,UAC9B,OAAO,KAAK,IAAO,SAAU,CACpC,IAAIC,EAAQf,GAAiBzP,GAAa,KAAK,EAAE,EAC7CwQ,GAAS,KACT,KAAK,UAAUA,CAAK,EAEpB,KAAK,UAAU,EAAG,EAAI,CAE7B,CACD,OAAO,IACV,CAED,SAASC,GAAqBz7G,EAAO,CACjC,OAAK,KAAK,WAGVA,EAAQA,EAAQs3G,GAAYt3G,CAAK,EAAE,UAAW,EAAG,GAEzC,KAAK,UAAS,EAAKA,GAAS,KAAO,GAJhC,EAKd,CAED,SAAS07G,IAAuB,CAC5B,OACI,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,GACpD,KAAK,UAAW,EAAG,KAAK,MAAO,EAAC,MAAM,CAAC,EAAE,UAAW,CAE3D,CAED,SAASC,IAA8B,CACnC,GAAI,CAACpvC,EAAY,KAAK,aAAa,EAC/B,OAAO,KAAK,cAGhB,IAAIh/D,EAAI,CAAE,EACNsrG,EAEJ,OAAA1T,EAAW53F,EAAG,IAAI,EAClBA,EAAIkrG,GAAclrG,CAAC,EAEfA,EAAE,IACFsrG,EAAQtrG,EAAE,OAAS62F,EAAU72F,EAAE,EAAE,EAAI+pG,GAAY/pG,EAAE,EAAE,EACrD,KAAK,cACD,KAAK,WAAa2sG,GAAc3sG,EAAE,GAAIsrG,EAAM,SAAS,EAAI,GAE7D,KAAK,cAAgB,GAGlB,KAAK,aACf,CAED,SAAS+C,IAAU,CACf,OAAO,KAAK,QAAS,EAAG,CAAC,KAAK,OAAS,EAC1C,CAED,SAASC,IAAc,CACnB,OAAO,KAAK,QAAO,EAAK,KAAK,OAAS,EACzC,CAED,SAASC,IAAQ,CACb,OAAO,KAAK,QAAO,EAAK,KAAK,QAAU,KAAK,UAAY,EAAI,EAC/D,CAGD,IAAIC,GAAc,wDAIdC,GACI,sKAER,SAASzC,GAAev5G,EAAOgK,EAAK,CAChC,IAAIs2B,EAAWtgC,EAEXnE,EAAQ,KACR8qG,EACAhyF,GACAsnG,GAEJ,OAAIjC,GAAWh6G,CAAK,EAChBsgC,EAAW,CACP,GAAItgC,EAAM,cACV,EAAGA,EAAM,MACT,EAAGA,EAAM,OACzB,EACmB6sE,EAAS7sE,CAAK,GAAK,CAAC,MAAM,CAACA,CAAK,GACvCsgC,EAAW,GACPt2B,EACAs2B,EAASt2B,CAAG,EAAI,CAAChK,EAEjBsgC,EAAS,aAAe,CAACtgC,IAErBnE,EAAQkgH,GAAY,KAAK/7G,CAAK,IACtC2mG,EAAO9qG,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/BykC,EAAW,CACP,EAAG,EACH,EAAGipE,GAAM1tG,EAAMwwG,EAAI,CAAC,EAAI1F,EACxB,EAAG4C,GAAM1tG,EAAMywG,EAAI,CAAC,EAAI3F,EACxB,EAAG4C,GAAM1tG,EAAM0wG,EAAM,CAAC,EAAI5F,EAC1B,EAAG4C,GAAM1tG,EAAM2wG,EAAM,CAAC,EAAI7F,EAC1B,GAAI4C,GAAM0Q,GAASp+G,EAAM4wG,EAAW,EAAI,GAAI,CAAC,EAAI9F,CACjE,IACoB9qG,EAAQmgH,GAAS,KAAKh8G,CAAK,IACnC2mG,EAAO9qG,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/BykC,EAAW,CACP,EAAG47E,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,EAC1B,EAAGuV,GAASrgH,EAAM,CAAC,EAAG8qG,CAAI,CAC1C,GACmBrmE,GAAY,KAEnBA,EAAW,GAEX,OAAOA,GAAa,WACnB,SAAUA,GAAY,OAAQA,KAE/B27E,GAAUE,GACN7E,GAAYh3E,EAAS,IAAI,EACzBg3E,GAAYh3E,EAAS,EAAE,CACvC,EAEYA,EAAW,GACXA,EAAS,GAAK27E,GAAQ,aACtB37E,EAAS,EAAI27E,GAAQ,QAGzBtnG,GAAM,IAAI6kG,GAASl5E,CAAQ,EAEvB05E,GAAWh6G,CAAK,GAAKgkG,EAAWhkG,EAAO,SAAS,IAChD2U,GAAI,QAAU3U,EAAM,SAGpBg6G,GAAWh6G,CAAK,GAAKgkG,EAAWhkG,EAAO,UAAU,IACjD2U,GAAI,SAAW3U,EAAM,UAGlB2U,EACV,CAED4kG,GAAe,GAAKC,GAAS,UAC7BD,GAAe,QAAUD,GAEzB,SAAS4C,GAASE,EAAKzV,EAAM,CAIzB,IAAIzC,EAAMkY,GAAO,WAAWA,EAAI,QAAQ,IAAK,GAAG,CAAC,EAEjD,OAAQ,MAAMlY,CAAG,EAAI,EAAIA,GAAOyC,CACnC,CAED,SAAS0V,GAA0Br9F,EAAM65F,EAAO,CAC5C,IAAI3U,EAAM,GAEV,OAAAA,EAAI,OACA2U,EAAM,MAAK,EAAK75F,EAAK,MAAK,GAAM65F,EAAM,OAAS75F,EAAK,KAAI,GAAM,GAC9DA,EAAK,MAAO,EAAC,IAAIklF,EAAI,OAAQ,GAAG,EAAE,QAAQ2U,CAAK,GAC/C,EAAE3U,EAAI,OAGVA,EAAI,aAAe,CAAC2U,EAAQ,CAAC75F,EAAK,MAAO,EAAC,IAAIklF,EAAI,OAAQ,GAAG,EAEtDA,CACV,CAED,SAASiY,GAAkBn9F,EAAM65F,EAAO,CACpC,IAAI3U,EACJ,OAAMllF,EAAK,QAAO,GAAM65F,EAAM,QAAS,GAIvCA,EAAQ+B,GAAgB/B,EAAO75F,CAAI,EAC/BA,EAAK,SAAS65F,CAAK,EACnB3U,EAAMmY,GAA0Br9F,EAAM65F,CAAK,GAE3C3U,EAAMmY,GAA0BxD,EAAO75F,CAAI,EAC3CklF,EAAI,aAAe,CAACA,EAAI,aACxBA,EAAI,OAAS,CAACA,EAAI,QAGfA,GAZI,CAAE,aAAc,EAAG,OAAQ,CAAC,CAa1C,CAGD,SAASoY,EAAYzlB,EAAWl/F,EAAM,CAClC,OAAO,SAAUyc,EAAKmoG,EAAQ,CAC1B,IAAIC,EAAK3gG,GAET,OAAI0gG,IAAW,MAAQ,CAAC,MAAM,CAACA,CAAM,IACjC3W,EACIjuG,EACA,YACIA,EACA,uDACAA,EACA,gGAExB,EACgBkkB,GAAMzH,EACNA,EAAMmoG,EACNA,EAAS1gG,IAGb2gG,EAAMjD,GAAenlG,EAAKmoG,CAAM,EAChCpB,GAAY,KAAMqB,EAAK3lB,CAAS,EACzB,IACnB,CACK,CAED,SAASskB,GAAYhV,EAAK7lE,EAAUm8E,EAAUC,EAAc,CACxD,IAAI3C,EAAez5E,EAAS,cACxBu5E,GAAOI,GAAS35E,EAAS,KAAK,EAC9Bq5E,GAASM,GAAS35E,EAAS,OAAO,EAEjC6lE,EAAI,YAKTuW,EAAeA,GAAuB,GAElC/C,IACAjM,GAASvH,EAAK0D,GAAI1D,EAAK,OAAO,EAAIwT,GAAS8C,CAAQ,EAEnD5C,IACAjQ,GAAMzD,EAAK,OAAQ0D,GAAI1D,EAAK,MAAM,EAAI0T,GAAO4C,CAAQ,EAErD1C,GACA5T,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAS,EAAG4T,EAAe0C,CAAQ,EAEzDC,GACAr1F,EAAM,aAAa8+E,EAAK0T,IAAQF,EAAM,EAE7C,CAED,IAAIl2F,GAAM64F,EAAY,EAAG,KAAK,EAC1BrsF,GAAWqsF,EAAY,GAAI,UAAU,EAEzC,SAAS1vC,GAAS5sE,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,aAAiB,MACxD,CAGD,SAAS28G,GAAc38G,EAAO,CAC1B,OACIslG,EAAStlG,CAAK,GACd+sE,EAAO/sE,CAAK,GACZ4sE,GAAS5sE,CAAK,GACd6sE,EAAS7sE,CAAK,GACd48G,GAAsB58G,CAAK,GAC3B68G,GAAoB78G,CAAK,GACzBA,IAAU,MACVA,IAAU,MAEjB,CAED,SAAS68G,GAAoB78G,EAAO,CAChC,IAAI88G,EAAa72D,EAASjmD,CAAK,GAAK,CAACikG,EAAcjkG,CAAK,EACpD+8G,EAAe,GACf9pF,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,IACH,EACD/2B,EACA0S,GACAouG,GAAc/pF,EAAW,OAE7B,IAAK/2B,EAAI,EAAGA,EAAI8gH,GAAa9gH,GAAK,EAC9B0S,GAAWqkB,EAAW/2B,CAAC,EACvB6gH,EAAeA,GAAgB/Y,EAAWhkG,EAAO4O,EAAQ,EAG7D,OAAOkuG,GAAcC,CACxB,CAED,SAASH,GAAsB58G,EAAO,CAClC,IAAIi9G,EAAY7xC,EAAQprE,CAAK,EACzBk9G,EAAe,GACnB,OAAID,IACAC,EACIl9G,EAAM,OAAO,SAAUqP,EAAM,CACzB,MAAO,CAACw9D,EAASx9D,CAAI,GAAKu9D,GAAS5sE,CAAK,CAC5D,CAAiB,EAAE,SAAW,GAEfi9G,GAAaC,CACvB,CAED,SAASC,GAAen9G,EAAO,CAC3B,IAAI88G,EAAa72D,EAASjmD,CAAK,GAAK,CAACikG,EAAcjkG,CAAK,EACpD+8G,EAAe,GACf9pF,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,UACH,EACD/2B,EACA0S,GAEJ,IAAK1S,EAAI,EAAGA,EAAI+2B,EAAW,OAAQ/2B,GAAK,EACpC0S,GAAWqkB,EAAW/2B,CAAC,EACvB6gH,EAAeA,GAAgB/Y,EAAWhkG,EAAO4O,EAAQ,EAG7D,OAAOkuG,GAAcC,CACxB,CAED,SAASK,GAAkBC,EAAUjX,EAAK,CACtC,IAAIprF,EAAOqiG,EAAS,KAAKjX,EAAK,OAAQ,EAAI,EAC1C,OAAOprF,EAAO,GACR,WACAA,EAAO,GACP,WACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,UACAA,EAAO,EACP,WACA,UACT,CAED,SAASsiG,GAAWnpF,EAAMopF,EAAS,CAE3B,UAAU,SAAW,IAChB,UAAU,CAAC,EAGLZ,GAAc,UAAU,CAAC,CAAC,GACjCxoF,EAAO,UAAU,CAAC,EAClBopF,EAAU,QACHJ,GAAe,UAAU,CAAC,CAAC,IAClCI,EAAU,UAAU,CAAC,EACrBppF,EAAO,SAPPA,EAAO,OACPopF,EAAU,SAWlB,IAAInX,EAAMjyE,GAAQmjF,GAAa,EAC3BkG,EAAM5C,GAAgBxU,EAAK,IAAI,EAAE,QAAQ,KAAK,EAC9Cr3C,EAAS1nC,EAAM,eAAe,KAAMm2F,CAAG,GAAK,WAC5C/mC,GACI8mC,IACCzpG,EAAWypG,EAAQxuD,CAAM,CAAC,EACrBwuD,EAAQxuD,CAAM,EAAE,KAAK,KAAMq3C,CAAG,EAC9BmX,EAAQxuD,CAAM,GAE5B,OAAO,KAAK,OACR0nB,IAAU,KAAK,aAAa,SAAS1nB,EAAQ,KAAMuoD,GAAYlR,CAAG,CAAC,CAC/E,CACK,CAED,SAAStjG,IAAQ,CACb,OAAO,IAAIuiG,EAAO,IAAI,CACzB,CAED,SAASoY,GAAQz9G,EAAO0oG,EAAO,CAC3B,IAAIgV,EAAapY,EAAStlG,CAAK,EAAIA,EAAQs3G,GAAYt3G,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM09G,EAAW,QAAS,GAG5ChV,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAKgV,EAAW,QAAO,EAEnCA,EAAW,QAAS,EAAG,KAAK,MAAO,EAAC,QAAQhV,CAAK,EAAE,WANnD,EAQd,CAED,SAASiV,GAAS39G,EAAO0oG,EAAO,CAC5B,IAAIgV,EAAapY,EAAStlG,CAAK,EAAIA,EAAQs3G,GAAYt3G,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM09G,EAAW,QAAS,GAG5ChV,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,EAAKgV,EAAW,QAAO,EAEnC,KAAK,MAAO,EAAC,MAAMhV,CAAK,EAAE,QAAS,EAAGgV,EAAW,WANjD,EAQd,CAED,SAASE,GAAU/7E,EAAMrO,EAAIk1E,EAAOmV,EAAa,CAC7C,IAAIC,EAAYxY,EAASzjE,CAAI,EAAIA,EAAOy1E,GAAYz1E,CAAI,EACpDk8E,GAAUzY,EAAS9xE,CAAE,EAAIA,EAAK8jF,GAAY9jF,CAAE,EAChD,OAAM,KAAK,WAAasqF,EAAU,WAAaC,GAAQ,QAAO,GAG9DF,EAAcA,GAAe,MAExBA,EAAY,CAAC,IAAM,IACd,KAAK,QAAQC,EAAWpV,CAAK,EAC7B,CAAC,KAAK,SAASoV,EAAWpV,CAAK,KACpCmV,EAAY,CAAC,IAAM,IACd,KAAK,SAASE,GAASrV,CAAK,EAC5B,CAAC,KAAK,QAAQqV,GAASrV,CAAK,IAT3B,EAWd,CAED,SAASsV,GAAOh+G,EAAO0oG,EAAO,CAC1B,IAAIgV,EAAapY,EAAStlG,CAAK,EAAIA,EAAQs3G,GAAYt3G,CAAK,EACxDi+G,EACJ,OAAM,KAAK,QAAO,GAAMP,EAAW,QAAS,GAG5ChV,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,QAAO,IAAOgV,EAAW,QAAO,GAE5CO,EAAUP,EAAW,UAEjB,KAAK,MAAK,EAAG,QAAQhV,CAAK,EAAE,QAAO,GAAMuV,GACzCA,GAAW,KAAK,MAAK,EAAG,MAAMvV,CAAK,EAAE,QAAS,IAT3C,EAYd,CAED,SAASwV,GAAcl+G,EAAO0oG,EAAO,CACjC,OAAO,KAAK,OAAO1oG,EAAO0oG,CAAK,GAAK,KAAK,QAAQ1oG,EAAO0oG,CAAK,CAChE,CAED,SAASyV,GAAen+G,EAAO0oG,EAAO,CAClC,OAAO,KAAK,OAAO1oG,EAAO0oG,CAAK,GAAK,KAAK,SAAS1oG,EAAO0oG,CAAK,CACjE,CAED,SAAS1tF,GAAKhb,EAAO0oG,EAAO0V,EAAS,CACjC,IAAIv5F,EAAMw5F,EAAW5nC,GAErB,GAAI,CAAC,KAAK,UACN,MAAO,KAKX,GAFA5xD,EAAO+1F,GAAgB56G,EAAO,IAAI,EAE9B,CAAC6kB,EAAK,UACN,MAAO,KAOX,OAJAw5F,GAAax5F,EAAK,UAAS,EAAK,KAAK,UAAW,GAAI,IAEpD6jF,EAAQD,GAAeC,CAAK,EAEpBA,EAAK,CACT,IAAK,OACDjyB,GAAS6nC,GAAU,KAAMz5F,CAAI,EAAI,GACjC,MACJ,IAAK,QACD4xD,GAAS6nC,GAAU,KAAMz5F,CAAI,EAC7B,MACJ,IAAK,UACD4xD,GAAS6nC,GAAU,KAAMz5F,CAAI,EAAI,EACjC,MACJ,IAAK,SACD4xD,IAAU,KAAO5xD,GAAQ,IACzB,MACJ,IAAK,SACD4xD,IAAU,KAAO5xD,GAAQ,IACzB,MACJ,IAAK,OACD4xD,IAAU,KAAO5xD,GAAQ,KACzB,MACJ,IAAK,MACD4xD,IAAU,KAAO5xD,EAAOw5F,GAAa,MACrC,MACJ,IAAK,OACD5nC,IAAU,KAAO5xD,EAAOw5F,GAAa,OACrC,MACJ,QACI5nC,GAAS,KAAO5xD,CACvB,CAED,OAAOu5F,EAAU3nC,GAAS6yB,GAAS7yB,EAAM,CAC5C,CAED,SAAS6nC,GAAU7mG,EAAGC,EAAG,CACrB,GAAID,EAAE,KAAI,EAAKC,EAAE,KAAI,EAGjB,MAAO,CAAC4mG,GAAU5mG,EAAGD,CAAC,EAG1B,IAAI8mG,GAAkB7mG,EAAE,KAAI,EAAKD,EAAE,QAAU,IAAMC,EAAE,MAAO,EAAGD,EAAE,MAAK,GAElE7d,EAAS6d,EAAE,MAAK,EAAG,IAAI8mG,EAAgB,QAAQ,EAC/CC,EACAC,GAEJ,OAAI/mG,EAAI9d,EAAS,GACb4kH,EAAU/mG,EAAE,MAAO,EAAC,IAAI8mG,EAAiB,EAAG,QAAQ,EAEpDE,IAAU/mG,EAAI9d,IAAWA,EAAS4kH,KAElCA,EAAU/mG,EAAE,MAAO,EAAC,IAAI8mG,EAAiB,EAAG,QAAQ,EAEpDE,IAAU/mG,EAAI9d,IAAW4kH,EAAU5kH,IAIhC,EAAE2kH,EAAiBE,KAAW,CACxC,CAEDp3F,EAAM,cAAgB,uBACtBA,EAAM,iBAAmB,yBAEzB,SAAS3T,IAAW,CAChB,OAAO,KAAK,QAAQ,OAAO,IAAI,EAAE,OAAO,kCAAkC,CAC7E,CAED,SAASgrG,GAAYC,EAAY,CAC7B,GAAI,CAAC,KAAK,UACN,OAAO,KAEX,IAAIC,EAAMD,IAAe,GACrB1uG,EAAI2uG,EAAM,KAAK,MAAK,EAAG,IAAK,EAAG,KACnC,OAAI3uG,EAAE,OAAS,GAAKA,EAAE,KAAM,EAAG,KACpBo3F,GACHp3F,EACA2uG,EACM,iCACA,8BACtB,EAEY9qG,EAAW,KAAK,UAAU,WAAW,EAEjC8qG,EACO,KAAK,SAAS,cAEd,IAAI,KAAK,KAAK,QAAO,EAAK,KAAK,UAAS,EAAK,GAAK,GAAI,EACxD,YAAa,EACb,QAAQ,IAAKvX,GAAap3F,EAAG,GAAG,CAAC,EAGvCo3F,GACHp3F,EACA2uG,EAAM,+BAAiC,4BACnD,CACK,CAQD,SAAS5mF,IAAU,CACf,GAAI,CAAC,KAAK,UACN,MAAO,qBAAuB,KAAK,GAAK,OAE5C,IAAIjU,EAAO,SACP86F,EAAO,GACPvlH,EACA+vG,EACAyV,EACA9tF,GACJ,OAAK,KAAK,YACNjN,EAAO,KAAK,UAAS,IAAO,EAAI,aAAe,mBAC/C86F,EAAO,KAEXvlH,EAAS,IAAMyqB,EAAO,MACtBslF,EAAO,GAAK,KAAK,KAAM,GAAI,KAAK,QAAU,KAAO,OAAS,SAC1DyV,EAAW,wBACX9tF,GAAS6tF,EAAO,OAET,KAAK,OAAOvlH,EAAS+vG,EAAOyV,EAAW9tF,EAAM,CACvD,CAED,SAAS+9B,GAAOgwD,EAAa,CACpBA,IACDA,EAAc,KAAK,MAAO,EACpB13F,EAAM,iBACNA,EAAM,eAEhB,IAAIovD,EAAS4wB,GAAa,KAAM0X,CAAW,EAC3C,OAAO,KAAK,WAAU,EAAG,WAAWtoC,CAAM,CAC7C,CAED,SAAS50C,GAAK1N,EAAM+zE,EAAe,CAC/B,OACI,KAAK,QAAS,IACZ5C,EAASnxE,CAAI,GAAKA,EAAK,QAAS,GAAKmjF,GAAYnjF,CAAI,EAAE,WAElDolF,GAAe,CAAE,GAAI,KAAM,KAAMplF,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC+zE,CAAa,EAErB,KAAK,aAAa,aAEhC,CAED,SAAS8W,GAAQ9W,EAAe,CAC5B,OAAO,KAAK,KAAKoP,GAAa,EAAEpP,CAAa,CAChD,CAED,SAAS10E,GAAGW,EAAM+zE,EAAe,CAC7B,OACI,KAAK,QAAS,IACZ5C,EAASnxE,CAAI,GAAKA,EAAK,QAAS,GAAKmjF,GAAYnjF,CAAI,EAAE,WAElDolF,GAAe,CAAE,KAAM,KAAM,GAAIplF,CAAI,CAAE,EACzC,OAAO,KAAK,QAAQ,EACpB,SAAS,CAAC+zE,CAAa,EAErB,KAAK,aAAa,aAEhC,CAED,SAAS+W,GAAM/W,EAAe,CAC1B,OAAO,KAAK,GAAGoP,GAAa,EAAEpP,CAAa,CAC9C,CAKD,SAAS7D,GAAOr6F,EAAK,CACjB,IAAIk1G,EAEJ,OAAIl1G,IAAQ,OACD,KAAK,QAAQ,OAEpBk1G,EAAgBnL,GAAU/pG,CAAG,EACzBk1G,GAAiB,OACjB,KAAK,QAAUA,GAEZ,KAEd,CAED,IAAI9gG,GAAOonF,EACP,kJACA,SAAUx7F,EAAK,CACX,OAAIA,IAAQ,OACD,KAAK,aAEL,KAAK,OAAOA,CAAG,CAE7B,CACT,EAEI,SAASyhG,IAAa,CAClB,OAAO,KAAK,OACf,CAED,IAAI0T,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,IAAoB,IAAM,IAAM,IAAM,GAAKD,GAG/C,SAASE,GAAMC,EAAUC,EAAS,CAC9B,OAASD,EAAWC,EAAWA,GAAWA,CAC7C,CAED,SAASC,GAAiBr+G,EAAG4O,EAAGywB,EAAG,CAE/B,OAAIr/B,EAAI,KAAOA,GAAK,EAET,IAAI,KAAKA,EAAI,IAAK4O,EAAGywB,CAAC,EAAI4+E,GAE1B,IAAI,KAAKj+G,EAAG4O,EAAGywB,CAAC,EAAE,SAEhC,CAED,SAASi/E,GAAet+G,EAAG4O,EAAGywB,EAAG,CAE7B,OAAIr/B,EAAI,KAAOA,GAAK,EAET,KAAK,IAAIA,EAAI,IAAK4O,EAAGywB,CAAC,EAAI4+E,GAE1B,KAAK,IAAIj+G,EAAG4O,EAAGywB,CAAC,CAE9B,CAED,SAASk/E,GAAQlX,EAAO,CACpB,IAAIv0E,EAAM0rF,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDv0E,EAAO0rF,EAAY,KAAK,KAAI,EAAI,EAAG,CAAC,EACpC,MACJ,IAAK,UACD1rF,EAAO0rF,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EAAI,KAAK,MAAK,EAAK,EAC/B,CACpB,EACgB,MACJ,IAAK,QACD1rF,EAAO0rF,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,CAAC,EAC/C,MACJ,IAAK,OACD1rF,EAAO0rF,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,EAAK,KAAK,QAAS,CAChD,EACgB,MACJ,IAAK,UACD1rF,EAAO0rF,EACH,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,GAAI,KAAK,WAAU,EAAK,EACvD,EACgB,MACJ,IAAK,MACL,IAAK,OACD1rF,EAAO0rF,EAAY,KAAK,KAAM,EAAE,KAAK,QAAS,KAAK,KAAI,CAAE,EACzD,MACJ,IAAK,OACD1rF,EAAO,KAAK,GAAG,UACfA,GAAQorF,GACJprF,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAGirF,IAC7CC,EACpB,EACgB,MACJ,IAAK,SACDlrF,EAAO,KAAK,GAAG,UACfA,GAAQorF,GAAMprF,EAAMirF,EAAa,EACjC,MACJ,IAAK,SACDjrF,EAAO,KAAK,GAAG,UACfA,GAAQorF,GAAMprF,EAAMgrF,EAAa,EACjC,KACP,CAED,YAAK,GAAG,QAAQhrF,CAAI,EACpB9M,EAAM,aAAa,KAAM,EAAI,EACtB,IACV,CAED,SAASy4F,GAAMpX,EAAO,CAClB,IAAIv0E,EAAM0rF,EAEV,GADAnX,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAmX,EAAc,KAAK,OAASF,GAAiBD,GAErChX,EAAK,CACT,IAAK,OACDv0E,EAAO0rF,EAAY,KAAK,KAAI,EAAK,EAAG,EAAG,CAAC,EAAI,EAC5C,MACJ,IAAK,UACD1rF,EACI0rF,EACI,KAAK,KAAM,EACX,KAAK,MAAK,EAAM,KAAK,MAAO,EAAG,EAAK,EACpC,CACH,EAAG,EACR,MACJ,IAAK,QACD1rF,EAAO0rF,EAAY,KAAK,OAAQ,KAAK,MAAK,EAAK,EAAG,CAAC,EAAI,EACvD,MACJ,IAAK,OACD1rF,EACI0rF,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAM,EAAG,KAAK,QAAS,EAAG,CAClC,EAAG,EACR,MACJ,IAAK,UACD1rF,EACI0rF,EACI,KAAK,KAAM,EACX,KAAK,MAAO,EACZ,KAAK,KAAI,GAAM,KAAK,WAAY,EAAG,GAAK,CAC3C,EAAG,EACR,MACJ,IAAK,MACL,IAAK,OACD1rF,EAAO0rF,EAAY,KAAK,KAAM,EAAE,KAAK,MAAO,EAAE,KAAK,KAAI,EAAK,CAAC,EAAI,EACjE,MACJ,IAAK,OACD1rF,EAAO,KAAK,GAAG,UACfA,GACIkrF,GACAE,GACIprF,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAW,EAAGirF,IAC7CC,EACH,EACD,EACJ,MACJ,IAAK,SACDlrF,EAAO,KAAK,GAAG,UACfA,GAAQirF,GAAgBG,GAAMprF,EAAMirF,EAAa,EAAI,EACrD,MACJ,IAAK,SACDjrF,EAAO,KAAK,GAAG,UACfA,GAAQgrF,GAAgBI,GAAMprF,EAAMgrF,EAAa,EAAI,EACrD,KACP,CAED,YAAK,GAAG,QAAQhrF,CAAI,EACpB9M,EAAM,aAAa,KAAM,EAAI,EACtB,IACV,CAED,SAAS04F,IAAU,CACf,OAAO,KAAK,GAAG,QAAS,GAAI,KAAK,SAAW,GAAK,GACpD,CAED,SAASC,IAAO,CACZ,OAAO,KAAK,MAAM,KAAK,QAAS,EAAG,GAAI,CAC1C,CAED,SAASC,IAAS,CACd,OAAO,IAAI,KAAK,KAAK,QAAS,EACjC,CAED,SAASrjD,IAAU,CACf,IAAI3sD,EAAI,KACR,MAAO,CACHA,EAAE,KAAM,EACRA,EAAE,MAAO,EACTA,EAAE,KAAM,EACRA,EAAE,KAAM,EACRA,EAAE,OAAQ,EACVA,EAAE,OAAQ,EACVA,EAAE,YAAa,CAC3B,CACK,CAED,SAASqxB,IAAW,CAChB,IAAIrxB,EAAI,KACR,MAAO,CACH,MAAOA,EAAE,KAAM,EACf,OAAQA,EAAE,MAAO,EACjB,KAAMA,EAAE,KAAM,EACd,MAAOA,EAAE,MAAO,EAChB,QAASA,EAAE,QAAS,EACpB,QAASA,EAAE,QAAS,EACpB,aAAcA,EAAE,aAAc,CAC1C,CACK,CAED,SAASiwG,IAAS,CAEd,OAAO,KAAK,QAAS,EAAG,KAAK,YAAW,EAAK,IAChD,CAED,SAASC,IAAY,CACjB,OAAOvb,EAAQ,IAAI,CACtB,CAED,SAASwb,IAAe,CACpB,OAAO1yC,EAAO,CAAE,EAAE+2B,EAAgB,IAAI,CAAC,CAC1C,CAED,SAAS4b,IAAY,CACjB,OAAO5b,EAAgB,IAAI,EAAE,QAChC,CAED,SAAS6b,IAAe,CACpB,MAAO,CACH,MAAO,KAAK,GACZ,OAAQ,KAAK,GACb,OAAQ,KAAK,QACb,MAAO,KAAK,OACZ,OAAQ,KAAK,OACzB,CACK,CAEDtZ,EAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,EAAe,KAAM,EAAG,EAAG,SAAS,EACpCA,EAAe,MAAO,EAAG,EAAG,SAAS,EACrCA,EAAe,OAAQ,EAAG,EAAG,SAAS,EACtCA,EAAe,QAAS,EAAG,EAAG,WAAW,EAEzCA,EAAe,IAAK,CAAC,IAAK,CAAC,EAAG,KAAM,SAAS,EAC7CA,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,SAAS,EAC3CA,EAAe,IAAK,CAAC,MAAO,CAAC,EAAG,EAAG,SAAS,EAC5CA,EAAe,IAAK,CAAC,OAAQ,CAAC,EAAG,EAAG,SAAS,EAE7CqE,GAAc,IAAKkV,EAAY,EAC/BlV,GAAc,KAAMkV,EAAY,EAChClV,GAAc,MAAOkV,EAAY,EACjClV,GAAc,OAAQmV,EAAY,EAClCnV,GAAc,QAASoV,EAAc,EAErC1U,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,OAAO,EAClC,SAAU/rG,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CACnC,IAAI83G,EAAM/oC,EAAO,QAAQ,UAAU3uE,EAAOJ,EAAO+uE,EAAO,OAAO,EAC3D+oC,EACAjT,EAAgB91B,CAAM,EAAE,IAAM+oC,EAE9BjT,EAAgB91B,CAAM,EAAE,WAAa3uE,CAE5C,CACT,EAEIqrG,GAAc,IAAKP,EAAa,EAChCO,GAAc,KAAMP,EAAa,EACjCO,GAAc,MAAOP,EAAa,EAClCO,GAAc,OAAQP,EAAa,EACnCO,GAAc,KAAMqV,EAAmB,EAEvC3U,GAAc,CAAC,IAAK,KAAM,MAAO,MAAM,EAAGI,EAAI,EAC9CJ,GAAc,CAAC,IAAI,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ/uE,EAAO,CACzD,IAAI/D,EACA8yE,EAAO,QAAQ,uBACf9yE,EAAQmE,EAAM,MAAM2uE,EAAO,QAAQ,oBAAoB,GAGvDA,EAAO,QAAQ,oBACfr7D,EAAM64F,EAAI,EAAIx9B,EAAO,QAAQ,oBAAoB3uE,EAAOnE,CAAK,EAE7DyX,EAAM64F,EAAI,EAAI,SAASnsG,EAAO,EAAE,CAE5C,CAAK,EAED,SAAS2gH,GAAW1wG,EAAG8+C,EAAQ,CAC3B,IAAI7yD,EACAiV,EACAu9F,EACAkS,GAAO,KAAK,OAAS7M,GAAU,IAAI,EAAE,MACzC,IAAK73G,EAAI,EAAGiV,EAAIyvG,GAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAAG,CACrC,OAAQ,OAAO0kH,GAAK1kH,CAAC,EAAE,MAAK,CACxB,IAAK,SAEDwyG,EAAOrnF,EAAMu5F,GAAK1kH,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EACzC0kH,GAAK1kH,CAAC,EAAE,MAAQwyG,EAAK,QAAO,EAC5B,KACP,CAED,OAAQ,OAAOkS,GAAK1kH,CAAC,EAAE,MAAK,CACxB,IAAK,YACD0kH,GAAK1kH,CAAC,EAAE,MAAQ,IAChB,MACJ,IAAK,SAEDwyG,EAAOrnF,EAAMu5F,GAAK1kH,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE,UAC3C0kH,GAAK1kH,CAAC,EAAE,MAAQwyG,EAAK,QAAO,EAC5B,KACP,CACJ,CACD,OAAOkS,EACV,CAED,SAASC,GAAgBC,EAAS/xD,EAAQu1C,EAAQ,CAC9C,IAAIpoG,EACAiV,EACAyvG,GAAO,KAAK,KAAM,EAClBjpH,GACAopH,GACAC,GAGJ,IAFAF,EAAUA,EAAQ,cAEb5kH,EAAI,EAAGiV,EAAIyvG,GAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAKlC,GAJAvE,GAAOipH,GAAK1kH,CAAC,EAAE,KAAK,YAAW,EAC/B6kH,GAAOH,GAAK1kH,CAAC,EAAE,KAAK,YAAW,EAC/B8kH,GAASJ,GAAK1kH,CAAC,EAAE,OAAO,YAAW,EAE/BooG,EACA,OAAQv1C,EAAM,CACV,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIgyD,KAASD,EACT,OAAOF,GAAK1kH,CAAC,EAEjB,MAEJ,IAAK,OACD,GAAIvE,KAASmpH,EACT,OAAOF,GAAK1kH,CAAC,EAEjB,MAEJ,IAAK,QACD,GAAI8kH,KAAWF,EACX,OAAOF,GAAK1kH,CAAC,EAEjB,KACP,SACM,CAACvE,GAAMopH,GAAMC,EAAM,EAAE,QAAQF,CAAO,GAAK,EAChD,OAAOF,GAAK1kH,CAAC,CAGxB,CAED,SAAS+kH,GAAsBvJ,EAAKrO,EAAM,CACtC,IAAI3rF,EAAMg6F,EAAI,OAASA,EAAI,MAAQ,EAAK,GACxC,OAAIrO,IAAS,OACFhiF,EAAMqwF,EAAI,KAAK,EAAE,KAAI,EAErBrwF,EAAMqwF,EAAI,KAAK,EAAE,QAAUrO,EAAOqO,EAAI,QAAUh6F,CAE9D,CAED,SAASwjG,IAAa,CAClB,IAAIhlH,EACAiV,EACAiD,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAOlC,GALAkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OAGvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MACvC,OAAO0kH,EAAK1kH,CAAC,EAAE,KAIvB,MAAO,EACV,CAED,SAASilH,IAAe,CACpB,IAAIjlH,EACAiV,EACAiD,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAOlC,GALAkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OAGvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MACvC,OAAO0kH,EAAK1kH,CAAC,EAAE,OAIvB,MAAO,EACV,CAED,SAASklH,GAAa,CAClB,IAAIllH,EACAiV,EACAiD,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAOlC,GALAkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAE9BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OAGvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MACvC,OAAO0kH,EAAK1kH,CAAC,EAAE,KAIvB,MAAO,EACV,CAED,SAASmlH,GAAa,CAClB,IAAInlH,EACAiV,EACAuM,EACAtJ,EACAwsG,EAAO,KAAK,WAAY,EAAC,KAAI,EACjC,IAAK1kH,EAAI,EAAGiV,EAAIyvG,EAAK,OAAQ1kH,EAAIiV,EAAG,EAAEjV,EAMlC,GALAwhB,EAAMkjG,EAAK1kH,CAAC,EAAE,OAAS0kH,EAAK1kH,CAAC,EAAE,MAAQ,EAAK,GAG5CkY,EAAM,KAAK,MAAO,EAAC,QAAQ,KAAK,EAAE,UAG7BwsG,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,OACvC0kH,EAAK1kH,CAAC,EAAE,OAASkY,GAAOA,GAAOwsG,EAAK1kH,CAAC,EAAE,MAExC,OACK,KAAK,KAAM,EAAGmrB,EAAMu5F,EAAK1kH,CAAC,EAAE,KAAK,EAAE,KAAI,GAAMwhB,EAC9CkjG,EAAK1kH,CAAC,EAAE,OAKpB,OAAO,KAAK,MACf,CAED,SAASolH,EAAc9V,EAAU,CAC7B,OAAKxH,EAAW,KAAM,gBAAgB,GAClCud,GAAiB,KAAK,IAAI,EAEvB/V,EAAW,KAAK,eAAiB,KAAK,UAChD,CAED,SAASgW,EAAchW,EAAU,CAC7B,OAAKxH,EAAW,KAAM,gBAAgB,GAClCud,GAAiB,KAAK,IAAI,EAEvB/V,EAAW,KAAK,eAAiB,KAAK,UAChD,CAED,SAASiW,GAAgBjW,EAAU,CAC/B,OAAKxH,EAAW,KAAM,kBAAkB,GACpCud,GAAiB,KAAK,IAAI,EAEvB/V,EAAW,KAAK,iBAAmB,KAAK,UAClD,CAED,SAAS+U,GAAa/U,EAAUnH,EAAQ,CACpC,OAAOA,EAAO,cAAcmH,CAAQ,CACvC,CAED,SAASgV,GAAahV,EAAUnH,EAAQ,CACpC,OAAOA,EAAO,cAAcmH,CAAQ,CACvC,CAED,SAASiV,GAAejV,EAAUnH,EAAQ,CACtC,OAAOA,EAAO,gBAAgBmH,CAAQ,CACzC,CAED,SAASkV,GAAoBlV,EAAUnH,EAAQ,CAC3C,OAAOA,EAAO,sBAAwByG,EACzC,CAED,SAASyW,IAAmB,CACxB,IAAIG,EAAa,CAAE,EACfC,EAAa,CAAE,EACfC,EAAe,CAAE,EACjBxT,EAAc,CAAE,EAChBlyG,EACAiV,GACAyvG,GAAO,KAAK,OAEhB,IAAK1kH,EAAI,EAAGiV,GAAIyvG,GAAK,OAAQ1kH,EAAIiV,GAAG,EAAEjV,EAClCylH,EAAW,KAAK/V,GAAYgV,GAAK1kH,CAAC,EAAE,IAAI,CAAC,EACzCwlH,EAAW,KAAK9V,GAAYgV,GAAK1kH,CAAC,EAAE,IAAI,CAAC,EACzC0lH,EAAa,KAAKhW,GAAYgV,GAAK1kH,CAAC,EAAE,MAAM,CAAC,EAE7CkyG,EAAY,KAAKxC,GAAYgV,GAAK1kH,CAAC,EAAE,IAAI,CAAC,EAC1CkyG,EAAY,KAAKxC,GAAYgV,GAAK1kH,CAAC,EAAE,IAAI,CAAC,EAC1CkyG,EAAY,KAAKxC,GAAYgV,GAAK1kH,CAAC,EAAE,MAAM,CAAC,EAGhD,KAAK,WAAa,IAAI,OAAO,KAAOkyG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACpE,KAAK,eAAiB,IAAI,OAAO,KAAOuT,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,eAAiB,IAAI,OAAO,KAAOD,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,iBAAmB,IAAI,OACxB,KAAOE,EAAa,KAAK,GAAG,EAAI,IAChC,GACZ,CACK,CAID5a,EAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,SAAU,EAAG,GACjC,CAAK,EAEDA,EAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EAED,SAAS6a,GAAuBjiH,EAAO60B,EAAQ,CAC3CuyE,EAAe,EAAG,CAACpnG,EAAOA,EAAM,MAAM,EAAG,EAAG60B,CAAM,CACrD,CAEDotF,GAAuB,OAAQ,UAAU,EACzCA,GAAuB,QAAS,UAAU,EAC1CA,GAAuB,OAAQ,aAAa,EAC5CA,GAAuB,QAAS,aAAa,EAI7CvZ,GAAa,WAAY,IAAI,EAC7BA,GAAa,cAAe,IAAI,EAIhCU,GAAgB,WAAY,CAAC,EAC7BA,GAAgB,cAAe,CAAC,EAIhCqC,GAAc,IAAKN,EAAW,EAC9BM,GAAc,IAAKN,EAAW,EAC9BM,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,OAAQT,GAAWN,EAAM,EACvCe,GAAc,OAAQT,GAAWN,EAAM,EACvCe,GAAc,QAASR,GAAWN,EAAM,EACxCc,GAAc,QAASR,GAAWN,EAAM,EAExC0B,GACI,CAAC,OAAQ,QAAS,OAAQ,OAAO,EACjC,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAClCsvG,EAAKtvG,EAAM,OAAO,EAAG,CAAC,CAAC,EAAI2pG,GAAMvpG,CAAK,CACzC,CACT,EAEIisG,GAAkB,CAAC,KAAM,IAAI,EAAG,SAAUjsG,EAAOkvG,EAAMvgC,EAAQ/uE,EAAO,CAClEsvG,EAAKtvG,CAAK,EAAIynB,EAAM,kBAAkBrnB,CAAK,CACnD,CAAK,EAID,SAAS8hH,GAAe9hH,EAAO,CAC3B,OAAO+hH,GAAqB,KACxB,KACA/hH,EACA,KAAK,KAAM,EACX,KAAK,QAAS,EACd,KAAK,aAAa,MAAM,IACxB,KAAK,aAAa,MAAM,GACpC,CACK,CAED,SAASgiH,GAAkBhiH,EAAO,CAC9B,OAAO+hH,GAAqB,KACxB,KACA/hH,EACA,KAAK,QAAS,EACd,KAAK,WAAY,EACjB,EACA,CACZ,CACK,CAED,SAASiiH,IAAoB,CACzB,OAAOtS,GAAY,KAAK,KAAM,EAAE,EAAG,CAAC,CACvC,CAED,SAASuS,IAA2B,CAChC,OAAOvS,GAAY,KAAK,YAAa,EAAE,EAAG,CAAC,CAC9C,CAED,SAASwS,IAAiB,CACtB,IAAIC,EAAW,KAAK,WAAU,EAAG,MACjC,OAAOzS,GAAY,KAAK,KAAM,EAAEyS,EAAS,IAAKA,EAAS,GAAG,CAC7D,CAED,SAASC,IAAqB,CAC1B,IAAID,EAAW,KAAK,WAAU,EAAG,MACjC,OAAOzS,GAAY,KAAK,SAAU,EAAEyS,EAAS,IAAKA,EAAS,GAAG,CACjE,CAED,SAASL,GAAqB/hH,EAAOkvG,EAAMC,EAASN,EAAKC,EAAK,CAC1D,IAAIwT,GACJ,OAAItiH,GAAS,KACFyvG,GAAW,KAAMZ,EAAKC,CAAG,EAAE,MAElCwT,GAAc3S,GAAY3vG,EAAO6uG,EAAKC,CAAG,EACrCI,EAAOoT,KACPpT,EAAOoT,IAEJC,GAAW,KAAK,KAAMviH,EAAOkvG,EAAMC,EAASN,EAAKC,CAAG,EAElE,CAED,SAASyT,GAAWpL,EAAUjI,EAAMC,EAASN,EAAKC,EAAK,CACnD,IAAI0T,GAAgBvT,GAAmBkI,EAAUjI,EAAMC,EAASN,EAAKC,CAAG,EACpEJ,GAAOC,GAAc6T,GAAc,KAAM,EAAGA,GAAc,SAAS,EAEvE,YAAK,KAAK9T,GAAK,eAAgB,GAC/B,KAAK,MAAMA,GAAK,YAAa,GAC7B,KAAK,KAAKA,GAAK,WAAY,GACpB,IACV,CAID1H,EAAe,IAAK,EAAG,KAAM,SAAS,EAItCsB,GAAa,UAAW,GAAG,EAI3BU,GAAgB,UAAW,CAAC,EAI5BqC,GAAc,IAAKlB,EAAM,EACzB4B,GAAc,IAAK,SAAU/rG,EAAOsT,EAAO,CACvCA,EAAM84F,EAAK,GAAK7C,GAAMvpG,CAAK,EAAI,GAAK,CAC5C,CAAK,EAID,SAASyiH,GAAcziH,EAAO,CAC1B,OAAOA,GAAS,KACV,KAAK,MAAM,KAAK,MAAO,EAAG,GAAK,CAAC,EAChC,KAAK,OAAOA,EAAQ,GAAK,EAAK,KAAK,MAAK,EAAK,CAAE,CACxD,CAIDgnG,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAI3CsB,GAAa,OAAQ,GAAG,EAGxBU,GAAgB,OAAQ,CAAC,EAIzBqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrCiB,GAAc,KAAM,SAAUG,EAAUnH,EAAQ,CAE5C,OAAOmH,EACDnH,EAAO,yBAA2BA,EAAO,cACzCA,EAAO,8BACrB,CAAK,EAED0H,GAAc,CAAC,IAAK,IAAI,EAAGM,EAAI,EAC/BN,GAAc,KAAM,SAAU/rG,EAAOsT,EAAO,CACxCA,EAAM+4F,EAAI,EAAI9C,GAAMvpG,EAAM,MAAMwqG,EAAS,EAAE,CAAC,CAAC,CACrD,CAAK,EAID,IAAIkY,GAAmBhZ,GAAW,OAAQ,EAAI,EAI9C1C,EAAe,MAAO,CAAC,OAAQ,CAAC,EAAG,OAAQ,WAAW,EAItDsB,GAAa,YAAa,KAAK,EAG/BU,GAAgB,YAAa,CAAC,EAI9BqC,GAAc,MAAOV,EAAS,EAC9BU,GAAc,OAAQhB,EAAM,EAC5B0B,GAAc,CAAC,MAAO,MAAM,EAAG,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CAC3DA,EAAO,WAAa46B,GAAMvpG,CAAK,CACvC,CAAK,EAMD,SAAS2iH,GAAgB3iH,EAAO,CAC5B,IAAIsvG,EACA,KAAK,OACA,KAAK,QAAQ,QAAQ,KAAK,EAAI,KAAK,MAAO,EAAC,QAAQ,MAAM,GAAK,KAClE,EAAG,EACR,OAAOtvG,GAAS,KAAOsvG,EAAY,KAAK,IAAItvG,EAAQsvG,EAAW,GAAG,CACrE,CAIDtI,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CsB,GAAa,SAAU,GAAG,EAI1BU,GAAgB,SAAU,EAAE,EAI5BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrC2B,GAAc,CAAC,IAAK,IAAI,EAAGQ,EAAM,EAIjC,IAAIqW,GAAelZ,GAAW,UAAW,EAAK,EAI9C1C,EAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CsB,GAAa,SAAU,GAAG,EAI1BU,GAAgB,SAAU,EAAE,EAI5BqC,GAAc,IAAKb,EAAS,EAC5Ba,GAAc,KAAMb,GAAWJ,EAAM,EACrC2B,GAAc,CAAC,IAAK,IAAI,EAAGS,EAAM,EAIjC,IAAIqW,GAAenZ,GAAW,UAAW,EAAK,EAI9C1C,EAAe,IAAK,EAAG,EAAG,UAAY,CAClC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,IACvC,CAAK,EAEDA,EAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,MAAO,CAAC,EAAE,KAAK,YAAa,EAAG,GACvC,CAAK,EAEDA,EAAe,EAAG,CAAC,MAAO,CAAC,EAAG,EAAG,aAAa,EAC9CA,EAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,UAAY,CAC1C,OAAO,KAAK,YAAa,EAAG,EACpC,CAAK,EACDA,EAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,UAAY,CAC3C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,EAAe,EAAG,CAAC,SAAU,CAAC,EAAG,EAAG,UAAY,CAC5C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,EAAe,EAAG,CAAC,UAAW,CAAC,EAAG,EAAG,UAAY,CAC7C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,EAAe,EAAG,CAAC,WAAY,CAAC,EAAG,EAAG,UAAY,CAC9C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EACDA,EAAe,EAAG,CAAC,YAAa,CAAC,EAAG,EAAG,UAAY,CAC/C,OAAO,KAAK,YAAa,EAAG,GACpC,CAAK,EAIDsB,GAAa,cAAe,IAAI,EAIhCU,GAAgB,cAAe,EAAE,EAIjCqC,GAAc,IAAKV,GAAWR,EAAM,EACpCkB,GAAc,KAAMV,GAAWP,EAAM,EACrCiB,GAAc,MAAOV,GAAWN,EAAM,EAEtC,IAAIzqG,GAAOkjH,GACX,IAAKljH,GAAQ,OAAQA,GAAM,QAAU,EAAGA,IAAS,IAC7CyrG,GAAczrG,GAAOkrG,EAAa,EAGtC,SAASiY,GAAQ/iH,EAAOsT,EAAO,CAC3BA,EAAMm5F,EAAW,EAAIlD,IAAO,KAAOvpG,GAAS,GAAI,CACnD,CAED,IAAKJ,GAAQ,IAAKA,GAAM,QAAU,EAAGA,IAAS,IAC1CmsG,GAAcnsG,GAAOmjH,EAAO,EAGhCD,GAAoBpZ,GAAW,eAAgB,EAAK,EAIpD1C,EAAe,IAAK,EAAG,EAAG,UAAU,EACpCA,EAAe,KAAM,EAAG,EAAG,UAAU,EAIrC,SAASgc,IAAc,CACnB,OAAO,KAAK,OAAS,MAAQ,EAChC,CAED,SAASC,IAAc,CACnB,OAAO,KAAK,OAAS,6BAA+B,EACvD,CAED,IAAI9tG,GAAQkwF,EAAO,UAEnBlwF,GAAM,IAAMsO,GACZtO,GAAM,SAAWmoG,GACjBnoG,GAAM,MAAQrS,GACdqS,GAAM,KAAO6F,GACb7F,GAAM,MAAQ2qG,GACd3qG,GAAM,OAAS45C,GACf55C,GAAM,KAAO0sB,GACb1sB,GAAM,QAAU6pG,GAChB7pG,GAAM,GAAKqe,GACXre,GAAM,MAAQ8pG,GACd9pG,GAAM,IAAM40F,GACZ50F,GAAM,UAAYkrG,GAClBlrG,GAAM,QAAUsoG,GAChBtoG,GAAM,SAAWwoG,GACjBxoG,GAAM,UAAYyoG,GAClBzoG,GAAM,OAAS6oG,GACf7oG,GAAM,cAAgB+oG,GACtB/oG,GAAM,eAAiBgpG,GACvBhpG,GAAM,QAAUgrG,GAChBhrG,GAAM,KAAOiJ,GACbjJ,GAAM,OAASkvF,GACflvF,GAAM,WAAas2F,GACnBt2F,GAAM,IAAM2jG,GACZ3jG,GAAM,IAAMyjG,GACZzjG,GAAM,aAAeirG,GACrBjrG,GAAM,IAAM60F,GACZ70F,GAAM,QAAUyqG,GAChBzqG,GAAM,SAAW8a,GACjB9a,GAAM,QAAUynD,GAChBznD,GAAM,SAAWmsB,GACjBnsB,GAAM,OAAS8qG,GACf9qG,GAAM,YAAcupG,GACpBvpG,GAAM,QAAU6iB,GACZ,OAAO,OAAW,KAAe,OAAO,KAAO,OAC/C7iB,GAAM,OAAO,IAAI,4BAA4B,CAAC,EAAI,UAAY,CAC1D,MAAO,UAAY,KAAK,OAAM,EAAK,GAC/C,GAEIA,GAAM,OAAS+qG,GACf/qG,GAAM,SAAWzB,GACjByB,GAAM,KAAO6qG,GACb7qG,GAAM,QAAU4qG,GAChB5qG,GAAM,aAAemrG,GACrBnrG,GAAM,QAAU+rG,GAChB/rG,GAAM,UAAYgsG,GAClBhsG,GAAM,QAAUisG,EAChBjsG,GAAM,QAAUksG,EAChBlsG,GAAM,KAAOm5F,GACbn5F,GAAM,WAAao5F,GACnBp5F,GAAM,SAAW2sG,GACjB3sG,GAAM,YAAc6sG,GACpB7sG,GAAM,QAAUA,GAAM,SAAWstG,GACjCttG,GAAM,MAAQy4F,GACdz4F,GAAM,YAAc04F,GACpB14F,GAAM,KAAOA,GAAM,MAAQ86F,GAC3B96F,GAAM,QAAUA,GAAM,SAAW+6F,GACjC/6F,GAAM,YAAcgtG,GACpBhtG,GAAM,gBAAkBktG,GACxBltG,GAAM,eAAiB8sG,GACvB9sG,GAAM,sBAAwB+sG,GAC9B/sG,GAAM,KAAOutG,GACbvtG,GAAM,IAAMA,GAAM,KAAOi8F,GACzBj8F,GAAM,QAAUm8F,GAChBn8F,GAAM,WAAao8F,GACnBp8F,GAAM,UAAYwtG,GAClBxtG,GAAM,KAAOA,GAAM,MAAQw9F,GAC3Bx9F,GAAM,OAASA,GAAM,QAAUytG,GAC/BztG,GAAM,OAASA,GAAM,QAAU0tG,GAC/B1tG,GAAM,YAAcA,GAAM,aAAe2tG,GACzC3tG,GAAM,UAAY4lG,GAClB5lG,GAAM,IAAMkmG,GACZlmG,GAAM,MAAQmmG,GACdnmG,GAAM,UAAYomG,GAClBpmG,GAAM,qBAAuBsmG,GAC7BtmG,GAAM,MAAQumG,GACdvmG,GAAM,QAAUymG,GAChBzmG,GAAM,YAAc0mG,GACpB1mG,GAAM,MAAQ2mG,GACd3mG,GAAM,MAAQ2mG,GACd3mG,GAAM,SAAW6tG,GACjB7tG,GAAM,SAAW8tG,GACjB9tG,GAAM,MAAQqwF,EACV,kDACAkd,EACR,EACIvtG,GAAM,OAASqwF,EACX,mDACAoI,EACR,EACIz4F,GAAM,MAAQqwF,EACV,iDACA8I,EACR,EACIn5F,GAAM,KAAOqwF,EACT,2GACA4V,EACR,EACIjmG,GAAM,aAAeqwF,EACjB,0GACAmW,EACR,EAEI,SAASuH,GAAWljH,EAAO,CACvB,OAAOs3G,GAAYt3G,EAAQ,GAAI,CAClC,CAED,SAASmjH,IAAe,CACpB,OAAO7L,GAAY,MAAM,KAAM,SAAS,EAAE,UAAS,CACtD,CAED,SAAS8L,GAAmBnnH,EAAQ,CAChC,OAAOA,CACV,CAED,IAAIonH,GAAUrd,GAAO,UAErBqd,GAAQ,SAAWnd,GACnBmd,GAAQ,eAAiB5b,GACzB4b,GAAQ,YAAcxb,GACtBwb,GAAQ,QAAUnc,GAClBmc,GAAQ,SAAWD,GACnBC,GAAQ,WAAaD,GACrBC,GAAQ,aAAepb,GACvBob,GAAQ,WAAajb,GACrBib,GAAQ,IAAMx2D,EACdw2D,GAAQ,KAAO1C,GACf0C,GAAQ,UAAYxC,GACpBwC,GAAQ,gBAAkBpC,GAC1BoC,GAAQ,cAAgB7B,EACxB6B,GAAQ,cAAgB/B,EACxB+B,GAAQ,gBAAkB5B,GAE1B4B,GAAQ,OAASjW,GACjBiW,GAAQ,YAAchW,GACtBgW,GAAQ,YAAc5V,GACtB4V,GAAQ,YAAcrV,GACtBqV,GAAQ,iBAAmBvV,GAC3BuV,GAAQ,KAAOxT,GACfwT,GAAQ,eAAiBrT,GACzBqT,GAAQ,eAAiBtT,GAEzBsT,GAAQ,SAAWxS,GACnBwS,GAAQ,YAAcrS,GACtBqS,GAAQ,cAAgBtS,GACxBsS,GAAQ,cAAgBlS,GAExBkS,GAAQ,cAAgB7R,GACxB6R,GAAQ,mBAAqB3R,GAC7B2R,GAAQ,iBAAmB1R,GAE3B0R,GAAQ,KAAO5Q,GACf4Q,GAAQ,SAAWzQ,EAEnB,SAAS0Q,GAAMv0D,EAAQzpD,EAAOg5E,EAAOh3D,EAAQ,CACzC,IAAI+8E,EAAS0P,GAAW,EACpB6K,GAAMxa,EAAW,EAAC,IAAI98E,EAAQhiB,CAAK,EACvC,OAAO++F,EAAO/lB,CAAK,EAAEsgC,GAAK7vD,CAAM,CACnC,CAED,SAASw0D,GAAex0D,EAAQzpD,EAAOg5E,EAAO,CAQ1C,GAPIzR,EAAS9d,CAAM,IACfzpD,EAAQypD,EACRA,EAAS,QAGbA,EAASA,GAAU,GAEfzpD,GAAS,KACT,OAAOg+G,GAAMv0D,EAAQzpD,EAAOg5E,EAAO,OAAO,EAG9C,IAAIpiF,EACAksD,EAAM,GACV,IAAKlsD,EAAI,EAAGA,EAAI,GAAIA,IAChBksD,EAAIlsD,CAAC,EAAIonH,GAAMv0D,EAAQ7yD,EAAGoiF,EAAO,OAAO,EAE5C,OAAOl2B,CACV,CAUD,SAASo7D,GAAiBC,EAAc10D,EAAQzpD,EAAOg5E,EAAO,CACtD,OAAOmlC,GAAiB,WACpB52C,EAAS9d,CAAM,IACfzpD,EAAQypD,EACRA,EAAS,QAGbA,EAASA,GAAU,KAEnBA,EAAS00D,EACTn+G,EAAQypD,EACR00D,EAAe,GAEX52C,EAAS9d,CAAM,IACfzpD,EAAQypD,EACRA,EAAS,QAGbA,EAASA,GAAU,IAGvB,IAAIs1C,EAAS0P,GAAW,EACpB2P,GAAQD,EAAepf,EAAO,MAAM,IAAM,EAC1CnoG,GACAksD,GAAM,GAEV,GAAI9iD,GAAS,KACT,OAAOg+G,GAAMv0D,GAASzpD,EAAQo+G,IAAS,EAAGplC,EAAO,KAAK,EAG1D,IAAKpiF,GAAI,EAAGA,GAAI,EAAGA,KACfksD,GAAIlsD,EAAC,EAAIonH,GAAMv0D,GAAS7yD,GAAIwnH,IAAS,EAAGplC,EAAO,KAAK,EAExD,OAAOl2B,EACV,CAED,SAASu7D,GAAW50D,EAAQzpD,EAAO,CAC/B,OAAOi+G,GAAex0D,EAAQzpD,EAAO,QAAQ,CAChD,CAED,SAASs+G,GAAgB70D,EAAQzpD,EAAO,CACpC,OAAOi+G,GAAex0D,EAAQzpD,EAAO,aAAa,CACrD,CAED,SAASu+G,GAAaJ,EAAc10D,EAAQzpD,EAAO,CAC/C,OAAOk+G,GAAiBC,EAAc10D,EAAQzpD,EAAO,UAAU,CAClE,CAED,SAASw+G,GAAkBL,EAAc10D,EAAQzpD,EAAO,CACpD,OAAOk+G,GAAiBC,EAAc10D,EAAQzpD,EAAO,eAAe,CACvE,CAED,SAASy+G,GAAgBN,EAAc10D,EAAQzpD,EAAO,CAClD,OAAOk+G,GAAiBC,EAAc10D,EAAQzpD,EAAO,aAAa,CACrE,CAEDwuG,GAAmB,KAAM,CACrB,KAAM,CACF,CACI,MAAO,aACP,MAAO,IACP,OAAQ,EACR,KAAM,cACN,OAAQ,KACR,KAAM,IACT,EACD,CACI,MAAO,aACP,MAAO,KACP,OAAQ,EACR,KAAM,gBACN,OAAQ,KACR,KAAM,IACT,CACJ,EACD,uBAAwB,uBACxB,QAAS,SAAUxN,EAAQ,CACvB,IAAI5uF,EAAI4uF,EAAS,GACb7vB,EACI8yB,GAAOjD,EAAS,IAAO,EAAE,IAAM,EACzB,KACA5uF,IAAM,EACN,KACAA,IAAM,EACN,KACAA,IAAM,EACN,KACA,KACd,OAAO4uF,EAAS7vB,CACnB,CACT,CAAK,EAIDpvD,EAAM,KAAOm+E,EACT,wDACAsO,EACR,EACIzsF,EAAM,SAAWm+E,EACb,gEACAuO,EACR,EAEI,IAAIiQ,GAAU,KAAK,IAEnB,SAAS/vC,IAAM,CACX,IAAIrtD,EAAO,KAAK,MAEhB,YAAK,cAAgBo9F,GAAQ,KAAK,aAAa,EAC/C,KAAK,MAAQA,GAAQ,KAAK,KAAK,EAC/B,KAAK,QAAUA,GAAQ,KAAK,OAAO,EAEnCp9F,EAAK,aAAeo9F,GAAQp9F,EAAK,YAAY,EAC7CA,EAAK,QAAUo9F,GAAQp9F,EAAK,OAAO,EACnCA,EAAK,QAAUo9F,GAAQp9F,EAAK,OAAO,EACnCA,EAAK,MAAQo9F,GAAQp9F,EAAK,KAAK,EAC/BA,EAAK,OAASo9F,GAAQp9F,EAAK,MAAM,EACjCA,EAAK,MAAQo9F,GAAQp9F,EAAK,KAAK,EAExB,IACV,CAED,SAASq9F,GAAc3jF,EAAUtgC,EAAO3H,EAAOw+F,EAAW,CACtD,IAAIgiB,EAAQU,GAAev5G,EAAO3H,CAAK,EAEvC,OAAAioC,EAAS,eAAiBu2D,EAAYgiB,EAAM,cAC5Cv4E,EAAS,OAASu2D,EAAYgiB,EAAM,MACpCv4E,EAAS,SAAWu2D,EAAYgiB,EAAM,QAE/Bv4E,EAAS,SACnB,CAGD,SAAS4jF,GAAMlkH,EAAO3H,EAAO,CACzB,OAAO4rH,GAAc,KAAMjkH,EAAO3H,EAAO,CAAC,CAC7C,CAGD,SAAS8rH,GAAWnkH,EAAO3H,EAAO,CAC9B,OAAO4rH,GAAc,KAAMjkH,EAAO3H,EAAO,EAAE,CAC9C,CAED,SAAS+rH,GAAQ9d,EAAQ,CACrB,OAAIA,EAAS,EACF,KAAK,MAAMA,CAAM,EAEjB,KAAK,KAAKA,CAAM,CAE9B,CAED,SAAS+d,IAAS,CACd,IAAItK,EAAe,KAAK,cACpBF,EAAO,KAAK,MACZF,EAAS,KAAK,QACd/yF,EAAO,KAAK,MACZkzF,EACAhH,GACAD,GACA4G,GACA6K,GAIJ,OAESvK,GAAgB,GAAKF,GAAQ,GAAKF,GAAU,GAC5CI,GAAgB,GAAKF,GAAQ,GAAKF,GAAU,IAGjDI,GAAgBqK,GAAQG,GAAa5K,CAAM,EAAIE,CAAI,EAAI,MACvDA,EAAO,EACPF,EAAS,GAKb/yF,EAAK,aAAemzF,EAAe,IAEnCD,EAAUxQ,GAASyQ,EAAe,GAAI,EACtCnzF,EAAK,QAAUkzF,EAAU,GAEzBhH,GAAUxJ,GAASwQ,EAAU,EAAE,EAC/BlzF,EAAK,QAAUksF,GAAU,GAEzBD,GAAQvJ,GAASwJ,GAAU,EAAE,EAC7BlsF,EAAK,MAAQisF,GAAQ,GAErBgH,GAAQvQ,GAASuJ,GAAQ,EAAE,EAG3ByR,GAAiBhb,GAASkb,GAAa3K,CAAI,CAAC,EAC5CF,GAAU2K,GACVzK,GAAQuK,GAAQG,GAAaD,EAAc,CAAC,EAG5C7K,GAAQnQ,GAASqQ,EAAS,EAAE,EAC5BA,GAAU,GAEV/yF,EAAK,KAAOizF,EACZjzF,EAAK,OAAS+yF,EACd/yF,EAAK,MAAQ6yF,GAEN,IACV,CAED,SAAS+K,GAAa3K,EAAM,CAGxB,OAAQA,EAAO,KAAQ,MAC1B,CAED,SAAS0K,GAAa5K,EAAQ,CAE1B,OAAQA,EAAS,OAAU,IAC9B,CAED,SAAS8K,GAAG/b,EAAO,CACf,GAAI,CAAC,KAAK,UACN,MAAO,KAEX,IAAImR,EACAF,EACAI,EAAe,KAAK,cAIxB,GAFArR,EAAQD,GAAeC,CAAK,EAExBA,IAAU,SAAWA,IAAU,WAAaA,IAAU,OAGtD,OAFAmR,EAAO,KAAK,MAAQE,EAAe,MACnCJ,EAAS,KAAK,QAAU6K,GAAa3K,CAAI,EACjCnR,EAAK,CACT,IAAK,QACD,OAAOiR,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,EACvB,KAID,QADAE,EAAO,KAAK,MAAQ,KAAK,MAAM0K,GAAa,KAAK,OAAO,CAAC,EACjD7b,EAAK,CACT,IAAK,OACD,OAAOmR,EAAO,EAAIE,EAAe,OACrC,IAAK,MACD,OAAOF,EAAOE,EAAe,MACjC,IAAK,OACD,OAAOF,EAAO,GAAKE,EAAe,KACtC,IAAK,SACD,OAAOF,EAAO,KAAOE,EAAe,IACxC,IAAK,SACD,OAAOF,EAAO,MAAQE,EAAe,IAEzC,IAAK,cACD,OAAO,KAAK,MAAMF,EAAO,KAAK,EAAIE,EACtC,QACI,MAAM,IAAI,MAAM,gBAAkBrR,CAAK,CAC9C,CAER,CAGD,SAASgc,IAAY,CACjB,OAAK,KAAK,UAIN,KAAK,cACL,KAAK,MAAQ,MACZ,KAAK,QAAU,GAAM,OACtBnb,GAAM,KAAK,QAAU,EAAE,EAAI,QANpB,GAQd,CAED,SAASob,GAAOC,EAAO,CACnB,OAAO,UAAY,CACf,OAAO,KAAK,GAAGA,CAAK,CAChC,CACK,CAED,IAAIC,GAAiBF,GAAO,IAAI,EAC5BG,GAAYH,GAAO,GAAG,EACtBI,GAAYJ,GAAO,GAAG,EACtBK,GAAUL,GAAO,GAAG,EACpBM,GAASN,GAAO,GAAG,EACnBO,GAAUP,GAAO,GAAG,EACpBQ,GAAWR,GAAO,GAAG,EACrBS,GAAaT,GAAO,GAAG,EACvBU,GAAUV,GAAO,GAAG,EAExB,SAASW,IAAU,CACf,OAAO/L,GAAe,IAAI,CAC7B,CAED,SAASgM,GAAM7c,EAAO,CAClB,OAAAA,EAAQD,GAAeC,CAAK,EACrB,KAAK,UAAY,KAAKA,EAAQ,GAAG,EAAG,EAAG,GACjD,CAED,SAAS8c,GAAW7tH,EAAM,CACtB,OAAO,UAAY,CACf,OAAO,KAAK,UAAY,KAAK,MAAMA,CAAI,EAAI,GACvD,CACK,CAED,IAAIoiH,GAAeyL,GAAW,cAAc,EACxC1L,GAAU0L,GAAW,SAAS,EAC9B1S,GAAU0S,GAAW,SAAS,EAC9B3S,GAAQ2S,GAAW,OAAO,EAC1B3L,GAAO2L,GAAW,MAAM,EACxB7L,GAAS6L,GAAW,QAAQ,EAC5B/L,GAAQ+L,GAAW,OAAO,EAE9B,SAAS5L,IAAQ,CACb,OAAOtQ,GAAS,KAAK,KAAM,EAAG,CAAC,CAClC,CAED,IAAImc,GAAQ,KAAK,MACbC,GAAa,CACT,GAAI,GACJ,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,KACH,EAAG,EACf,EAGI,SAASC,GAAkB1pH,EAAQqqG,EAAQ4B,EAAeC,EAAU9D,EAAQ,CACxE,OAAOA,EAAO,aAAaiC,GAAU,EAAG,CAAC,CAAC4B,EAAejsG,EAAQksG,CAAQ,CAC5E,CAED,SAASyd,GAAeC,EAAgB3d,EAAewd,EAAYrhB,EAAQ,CACvE,IAAI/jE,EAAWi5E,GAAesM,CAAc,EAAE,IAAK,EAC/C/L,GAAU2L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAChCwyE,GAAU2S,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAChCuyE,GAAQ4S,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC9Bu5E,GAAO4L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC7Bq5E,GAAS8L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC/Bs5E,GAAQ6L,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC9Bm5E,GAAQgM,GAAMnlF,EAAS,GAAG,GAAG,CAAC,EAC9B7oB,GACKqiG,IAAW4L,EAAW,IAAM,CAAC,IAAK5L,EAAO,GACzCA,GAAU4L,EAAW,GAAK,CAAC,KAAM5L,EAAO,GACxChH,IAAW,GAAK,CAAC,GAAG,GACpBA,GAAU4S,EAAW,GAAK,CAAC,KAAM5S,EAAO,GACxCD,IAAS,GAAK,CAAC,GAAG,GAClBA,GAAQ6S,EAAW,GAAK,CAAC,KAAM7S,EAAK,GACpCgH,IAAQ,GAAK,CAAC,GAAG,GACjBA,GAAO6L,EAAW,GAAK,CAAC,KAAM7L,EAAI,EAE3C,OAAI6L,EAAW,GAAK,OAChBjuG,GACIA,IACCmiG,IAAS,GAAK,CAAC,GAAG,GAClBA,GAAQ8L,EAAW,GAAK,CAAC,KAAM9L,EAAK,GAE7CniG,GAAIA,IACCkiG,IAAU,GAAK,CAAC,GAAG,GACnBA,GAAS+L,EAAW,GAAK,CAAC,KAAM/L,EAAM,GACtCF,IAAS,GAAK,CAAC,GAAG,GAAM,CAAC,KAAMA,EAAK,EAEzChiG,GAAE,CAAC,EAAIywF,EACPzwF,GAAE,CAAC,EAAI,CAACouG,EAAiB,EACzBpuG,GAAE,CAAC,EAAI4sF,EACAshB,GAAkB,MAAM,KAAMluG,EAAC,CACzC,CAGD,SAASquG,GAA2BC,EAAkB,CAClD,OAAIA,IAAqB,OACdN,GAEP,OAAOM,GAAqB,YAC5BN,GAAQM,EACD,IAEJ,EACV,CAGD,SAASC,GAA4BC,EAAWC,EAAO,CACnD,OAAIR,GAAWO,CAAS,IAAM,OACnB,GAEPC,IAAU,OACHR,GAAWO,CAAS,GAE/BP,GAAWO,CAAS,EAAIC,EACpBD,IAAc,MACdP,GAAW,GAAKQ,EAAQ,GAErB,GACV,CAED,SAASC,GAASC,EAAeC,EAAe,CAC5C,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAIC,EAAa,GACb5qE,EAAKgqE,GACLrhB,EACA5tB,GAEJ,OAAI,OAAO2vC,GAAkB,WACzBC,EAAgBD,EAChBA,EAAgB,IAEhB,OAAOA,GAAkB,YACzBE,EAAaF,GAEb,OAAOC,GAAkB,WACzB3qE,EAAK,OAAO,OAAO,CAAE,EAAEgqE,GAAYW,CAAa,EAC5CA,EAAc,GAAK,MAAQA,EAAc,IAAM,OAC/C3qE,EAAG,GAAK2qE,EAAc,EAAI,IAIlChiB,EAAS,KAAK,aACd5tB,GAASmvC,GAAe,KAAM,CAACU,EAAY5qE,EAAI2oD,CAAM,EAEjDiiB,IACA7vC,GAAS4tB,EAAO,WAAW,CAAC,KAAM5tB,EAAM,GAGrC4tB,EAAO,WAAW5tB,EAAM,CAClC,CAED,IAAI8vC,GAAQ,KAAK,IAEjB,SAAS5f,GAAKvlG,EAAG,CACb,OAAQA,EAAI,IAAMA,EAAI,IAAM,CAACA,CAChC,CAED,SAASolH,IAAgB,CAQrB,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,aAAa,cAG7B,IAAI1M,EAAUyM,GAAM,KAAK,aAAa,EAAI,IACtC1M,EAAO0M,GAAM,KAAK,KAAK,EACvB5M,EAAS4M,GAAM,KAAK,OAAO,EAC3BzT,EACAD,EACA4G,GACAnoG,GACAm1G,GAAQ,KAAK,UAAW,EACxBC,GACAC,GACAC,GACAC,GAEJ,OAAKJ,IAOL3T,EAAUxJ,GAASwQ,EAAU,EAAE,EAC/BjH,EAAQvJ,GAASwJ,EAAU,EAAE,EAC7BgH,GAAW,GACXhH,GAAW,GAGX2G,GAAQnQ,GAASqQ,EAAS,EAAE,EAC5BA,GAAU,GAGVroG,GAAIwoG,EAAUA,EAAQ,QAAQ,CAAC,EAAE,QAAQ,SAAU,EAAE,EAAI,GAEzD4M,GAAYD,GAAQ,EAAI,IAAM,GAC9BE,GAAShgB,GAAK,KAAK,OAAO,IAAMA,GAAK8f,EAAK,EAAI,IAAM,GACpDG,GAAWjgB,GAAK,KAAK,KAAK,IAAMA,GAAK8f,EAAK,EAAI,IAAM,GACpDI,GAAUlgB,GAAK,KAAK,aAAa,IAAMA,GAAK8f,EAAK,EAAI,IAAM,GAGvDC,GACA,KACCjN,GAAQkN,GAASlN,GAAQ,IAAM,KAC/BE,EAASgN,GAAShN,EAAS,IAAM,KACjCE,EAAO+M,GAAW/M,EAAO,IAAM,KAC/BhH,GAASC,GAAWgH,EAAU,IAAM,KACpCjH,EAAQgU,GAAUhU,EAAQ,IAAM,KAChCC,EAAU+T,GAAU/T,EAAU,IAAM,KACpCgH,EAAU+M,GAAUv1G,GAAI,IAAM,KA9BxB,KAgCd,CAED,IAAIw1G,GAAUtN,GAAS,UAEvBsN,GAAQ,QAAUzN,GAClByN,GAAQ,IAAM7yC,GACd6yC,GAAQ,IAAM5C,GACd4C,GAAQ,SAAW3C,GACnB2C,GAAQ,GAAKrC,GACbqC,GAAQ,eAAiBjC,GACzBiC,GAAQ,UAAYhC,GACpBgC,GAAQ,UAAY/B,GACpB+B,GAAQ,QAAU9B,GAClB8B,GAAQ,OAAS7B,GACjB6B,GAAQ,QAAU5B,GAClB4B,GAAQ,SAAW3B,GACnB2B,GAAQ,WAAa1B,GACrB0B,GAAQ,QAAUzB,GAClByB,GAAQ,QAAUpC,GAClBoC,GAAQ,QAAUzC,GAClByC,GAAQ,MAAQxB,GAChBwB,GAAQ,IAAMvB,GACduB,GAAQ,aAAe/M,GACvB+M,GAAQ,QAAUhN,GAClBgN,GAAQ,QAAUhU,GAClBgU,GAAQ,MAAQjU,GAChBiU,GAAQ,KAAOjN,GACfiN,GAAQ,MAAQlN,GAChBkN,GAAQ,OAASnN,GACjBmN,GAAQ,MAAQrN,GAChBqN,GAAQ,SAAWX,GACnBW,GAAQ,YAAcN,GACtBM,GAAQ,SAAWN,GACnBM,GAAQ,OAASN,GACjBM,GAAQ,OAASziB,GACjByiB,GAAQ,WAAarb,GAErBqb,GAAQ,YAActhB,EAClB,sFACAghB,EACR,EACIM,GAAQ,KAAO1oG,GAIf4oF,EAAe,IAAK,EAAG,EAAG,MAAM,EAChCA,EAAe,IAAK,EAAG,EAAG,SAAS,EAInCqE,GAAc,IAAKN,EAAW,EAC9BM,GAAc,IAAKH,EAAc,EACjCa,GAAc,IAAK,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK,WAAW3uE,CAAK,EAAI,GAAI,CACrD,CAAK,EACD+rG,GAAc,IAAK,SAAU/rG,EAAOsT,EAAOq7D,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK46B,GAAMvpG,CAAK,CAAC,CACzC,CAAK,EAEL;AAEI,OAAAqnB,EAAM,QAAU,SAEhB08E,EAAgBuT,EAAW,EAE3BjwF,EAAM,GAAKlS,GACXkS,EAAM,IAAM4hC,GACZ5hC,EAAM,IAAMkO,GACZlO,EAAM,IAAM++E,GACZ/+E,EAAM,IAAM+8E,EACZ/8E,EAAM,KAAO67F,GACb77F,EAAM,OAASs8F,GACft8F,EAAM,OAAS0lD,EACf1lD,EAAM,OAASysF,GACfzsF,EAAM,QAAU29E,EAChB39E,EAAM,SAAWkyF,GACjBlyF,EAAM,SAAWi+E,EACjBj+E,EAAM,SAAWw8F,GACjBx8F,EAAM,UAAY87F,GAClB97F,EAAM,WAAa0sF,GACnB1sF,EAAM,WAAa2yF,GACnB3yF,EAAM,YAAcu8F,GACpBv8F,EAAM,YAAc08F,GACpB18F,EAAM,aAAe2sF,GACrB3sF,EAAM,aAAe4sF,GACrB5sF,EAAM,QAAU8sF,GAChB9sF,EAAM,cAAgBy8F,GACtBz8F,EAAM,eAAiBohF,GACvBphF,EAAM,qBAAuBy+F,GAC7Bz+F,EAAM,sBAAwB2+F,GAC9B3+F,EAAM,eAAiB+1F,GACvB/1F,EAAM,UAAYlS,GAGlBkS,EAAM,UAAY,CACd,eAAgB,mBAChB,uBAAwB,sBACxB,kBAAmB,0BACnB,KAAM,aACN,KAAM,QACN,aAAc,WACd,QAAS,eACT,KAAM,aACN,MAAO,SACf,EAEWA,CAEX,6CCpjLa65G,GAAa,CAAC5tH,EAAO6tH,IAAc,CAC5C,MAAMC,EAAS,GACf,QAASllI,EAAI,EAAGA,EAAIoX,EAAM,OAAQpX,GAAKilI,EACnCC,EAAO,KAAK9tH,EAAM,MAAMpX,EAAGA,EAAIilI,CAAS,CAAC,EAE7C,OAAOC,CACX,ECDeC,IAAA,CAAC,CAAE,UAAAC,EAAW,UAAAla,EAAW,QAAAC,EAAS,cAAAmT,KAAoB,CAC7D,MAAA7gB,EAASqN,GAAO,SAEhBua,EAAgBL,GAAWvnB,EAAQ,CAAC,EAGxC,OAAA98B,EAAC,QAAM,WAAU,gBACf,SAAAA,EAAC,SAAM,UAAU,eAAe,KAAK,WAEpC,SAAc0kD,EAAA,IAAI,CAAC5mB,EAAO6mB,IACxB3kD,EAAA,MAAG,UAAU,cAAc,KAAK,MAC9B,SAAM89B,EAAA,IAAI,CAAC9N,EAAO+mB,IAAe,CAC1B,MAAAtuH,EAAS,EAAIk8H,EAAgB5N,EAE7B6N,EAAgBza,GAAOsa,CAAS,EAAE,OAAO,MAAM,EAC/ClgI,EAAI4lH,GAAOsa,CAAS,EAAE,MAAMh8H,CAAK,EAEjCmzH,EAAarR,EAAU,QAAQ,OAAO,EACtCoR,EAAWnR,EAAQ,MAAM,OAAO,EAChC2M,EAAehN,GAAO5lH,CAAC,EAAE,QAAQ,QAAQ,OAAO,EAChDoqH,EAAaxE,GAAO5lH,CAAC,EAAE,QAAQ,MAAM,OAAO,EAC5Cga,EAAW44G,EAAeyE,GAAcjN,EAAagN,EAGzD,OAAA37C,EAAC,MAAoB,KAAK,WACtB,UAAW5nD,GAAW,YAAa,CAAE,eAAgB7Z,EAAU,EAC/D,aAAY9V,EACd,SAAAu3E,EAAC,UAAO,UAAU,mBACV,SAAS,KACT,SAAAzhE,EACA,aAAY,GAAGyxF,CAAK,IAAI40B,CAAa,GACrC,QAAS,IAAMjH,EAAcl1H,CAAK,EACvC,SAAAunG,CAAA,CACH,GATO+mB,CAAA,CAWX,IAzBwC4N,CA0B5C,CACD,CAED,EACF,EAEJ,EC5CeE,IAAA,CAAC,CAAE,UAAAta,EAAW,QAAAC,EAAS,aAAAsa,KAAmB,CACnD,IAAAC,EAAcxa,EAAU,OACxB3N,EAAQ,GAEL,KAAAmoB,GAAeva,EAAQ,QAC5B5N,EAAM,KAAKmoB,CAAW,EACtBA,IAGI,MAAAC,EAAeX,GAAWznB,EAAO,CAAC,EAExC,OACG58B,EAAA,SAAM,UAAU,gBACf,WAAC,QAAM,WAAU,eAAe,KAAK,WAEpC,SAAAglD,EAAa,IAAI,CAAClnB,EAAOr1G,IACxBu3E,EAAC,KAAG,WAAU,cAAc,KAAK,MAC9B,SAAA89B,EAAM,IAAI,CAACtR,EAAMy4B,IAChBjlD,EAAC,MAAmB,KAAK,WAAW,UAAU,YAAY,YAAWwsB,EACnE,SAAAxsB,EAAC,UAAO,UAAU,mBACV,SAAS,KACT,aAAYwsB,EACZ,QAAS,IAAMs4B,EAAat4B,CAAI,EACrC,SAAAA,CAAA,IALIy4B,CAOT,CACD,GAVyCx8H,CAW5C,CACD,EAED,CACF,EAEJ,EC7BAy8H,GAAe,CAAC,CAAE,cAAAC,EAAe,WAAAhD,EAAY,UAAAsC,EAAW,aAAAW,EAAc,QAAAC,EAAS,QAAA9K,KAAc,CAC3F,KAAM,CAAC+K,EAAcC,CAAe,EAAIpnC,WAAS,IAAI,EAE/CqnC,EAAWH,EACXjiB,EAASmX,EAETqB,EAAa9qC,UAAQ,IAClB00C,EAAS,QAAQ,QAAQ,OAAO,EACtC,CAACA,CAAQ,CAAC,EAEP7J,EAAW7qC,UAAQ,IAChBsyB,EAAO,QAAQ,MAAM,OAAO,EAClC,CAACA,CAAM,CAAC,EAELqiB,EAAqBlhI,GAAM,CAE/B,MAAMmhI,EADevb,GAAOsa,CAAS,EACH,IAAI,QAASlgI,CAAC,EAEhDghI,EAAgB,IAAI,EACPH,EAAAM,EAAa,QAAQ,GAG9BC,EAAkB,IAAM,CAC5B,MAAMD,EAAevb,GAAOsa,CAAS,EAAE,SAAS,EAAG,OAAO,EAC7CW,EAAAM,EAAa,QAAQ,GAG9BE,EAAkB,IAAM,CAC5B,MAAMF,EAAevb,GAAOsa,CAAS,EAAE,IAAK,EAAG,OAAO,EACzCW,EAAAM,EAAa,QAAQ,GAG9BG,EAAoBthI,GAAM,CAE9B,MAAMmhI,EADevb,GAAOsa,CAAS,EACH,IAAI,OAAQlgI,CAAC,EAE/CghI,EAAgB,QAAQ,EACXH,EAAAM,EAAa,QAAQ,GAG9B74C,EAAaiE,UAAQ,IAAM,CAC/B,MAAMz/E,EAAW,CAAE,IAAK,IAAM,IAAK,EAC7B+B,EAAI+2G,GAAOsa,CAAS,EAE1B,OAAQa,EAAc,CACpB,IAAK,QAAS,CACZj0H,EAAS,UAAY,IACnB2uE,EAAC6kD,IAAA,CACC,UAAWW,EAAS,MAAM,EAC1B,QAASpiB,EAAO,MAAM,EACtB,aAAcyiB,CAAA,GAGlBx0H,EAAS,aAAe,IAAO2uE,EAAAD,GAAA,CAAE,WAAC,MAAI,WAAU,OAAO,EAAE,GACzD,KACF,CACA,IAAK,SAAU,CACP,MAAA+lD,EAAgB1yH,EAAE,OAAO,MAAM,EAErC/B,EAAS,UAAY,IACnB2uE,EAACwkD,IAAA,CACC,UAAWgB,EAAS,MAAM,EAC1B,QAASpiB,EAAO,MAAM,EACtB,UAAAqhB,EACA,cAAegB,CAAA,GAGnBp0H,EAAS,aAAe,IACtB2uE,EAAAD,GAAA,CACE,WAAC,MAAI,WAAU,QACb,SAACC,EAAA,UAAO,QAAS,IAAMulD,EAAgB,OAAO,EAAG,UAAU,cACxD,SAAAO,CAAA,CACH,CACF,EACF,GAEF,KACF,CACA,QAAS,CACD,MAAAA,EAAgB1yH,EAAE,OAAO,WAAW,EACpC+jH,EAAehN,GAAOsa,CAAS,EAAE,QAAQ,QAAQ,OAAO,EACxD9V,EAAaxE,GAAOsa,CAAS,EAAE,QAAQ,MAAM,OAAO,EACpDsB,EAAe5O,GAAgByE,EAC/BoK,EAAerX,GAAcgN,EAE1BtqH,EAAA,aAAe,IAEpB4tF,GAAAlf,GAAA,WAAAC,EAAC,MAAI,WAAU,aACZ,UAAC+lD,GAAgB/lD,EAAC,SAAO,SAAS2lD,EAAiB,UAAU,eAAe,YAAC,GAChF,EACC3lD,EAAA,OAAI,UAAU,QACb,WAAC,SAAO,SAAS,IAAMulD,EAAgB,QAAQ,EAAG,UAAU,eACzD,UACH,GACF,EACCvlD,EAAA,OAAI,UAAU,cACZ,SAAC,CAAAgmD,GAAiBhmD,EAAA,UAAO,QAAS4lD,EAAiB,UAAU,eAAe,YAAC,GAChF,CACF,GAEJ,CACF,CAEO,OAAAv0H,CAAA,EACN,CAACi0H,EAAcb,CAAS,CAAC,EAG1B,OAAAzkD,EAAC8hD,IAAA,CACC,aAAc,EACd,UAAW,CAAE,OAAQ,CAACqD,CAAa,CAAE,EACrC,oBAAqB,CAAE,OAAQ,iBAAkB,EACjD,MAAOV,EACP,SAAU,CAAE,OAAQe,EAAS,OAAU,QAAOpiB,EAAO,QAAS,EAC9D,WAAA+e,EACA,WAAAt1C,CAAA,EAGN,ECvHMq9B,GAAcrY,GAASsY,GAAOtY,CAAI,EAAE,MAAQ,SAAO,iBAAiB,EAE3Do0B,IAAA,CAAC,CAAE,WAAAC,EAAY,WAAA7b,EAAY,aAAA8b,KAAmB,CAC3D,KAAM,CAAChB,EAAeiB,CAAgB,EAAIjoC,WAAS,CACjD,KAAMksB,EAAW,UACjB,GAAIA,EAAW,QAChB,EAEK,CAACgc,EAAgBC,CAAiB,EAAInoC,WAAS,IAAI,IAAM,EACzD,CAACooC,EAAcC,CAAe,EAAKroC,WAAS,IAAI,IAAM,EAEtDsoC,EAAgBlc,GAAc,CAClC,MAAM8T,EAAQ,CAAE,GAAG8G,EAAe,KAAM5a,CAAU,EAG9C,GAFA8T,EAAM,GAAKA,EAAM,OAAMA,EAAM,GAAK,MAElCA,EAAM,MAAQA,EAAM,GAAI,CACpB,MAAAqI,EAAavc,GAAOkU,EAAM,IAAI,EACnBlU,GAAOkU,EAAM,EAAE,EAEnB,KAAKqI,EAAY,MAAM,EAAIR,IACtC7H,EAAM,GAAKqI,EAAW,IAAIR,EAAY,KAAK,EAAE,SAEjD,CAEI7H,EAAM,KAAO,KACMlU,GAAOkc,CAAc,EAAE,QAAQlc,GAAOoc,CAAY,EAAG,OAAO,GAC/DC,EAAgBnI,EAAM,IAAI,EAExBlU,GAAOkU,EAAM,EAAE,EAAE,OAAOlU,GAAOoc,CAAY,EAAG,OAAO,GACvDC,EAAgBnI,EAAM,EAAE,EAG5C+H,EAAiB/H,CAAK,GAGlBsI,EAAcnc,GAAY,CAC9B,MAAM6T,EAAQ,CAAC,GAAG8G,EAAe,GAAI3a,CAAO,EAGxC,GAFA6T,EAAM,GAAKA,EAAM,OAAMA,EAAM,KAAO,MAEpCA,EAAM,MAAQA,EAAM,GAAI,CACtB,IAAAqI,EAAavc,GAAOkU,EAAM,IAAI,EAC9BuI,EAAWzc,GAAOkU,EAAM,EAAE,EAE1BuI,EAAS,KAAKF,EAAY,MAAM,EAAIR,IACtC7H,EAAM,KAAOuI,EAAS,SAASV,EAAY,KAAK,EAAE,SAEtD,CAEI7H,EAAM,OAAS,KACKlU,GAAOoc,CAAY,EAAE,SAASpc,GAAOkc,CAAc,EAAG,OAAO,GAChEC,EAAkBjI,EAAM,EAAE,EAEzBlU,GAAOkU,EAAM,IAAI,EAAE,OAAOlU,GAAOkc,CAAc,EAAG,OAAO,GAC3DC,EAAkBjI,EAAM,IAAI,EAGhD+H,EAAiB/H,CAAK,GAGlBwI,EAAgB/1C,UAAQ,IAAM,CAC5B,MAAE,KAAA9rD,EAAM,GAAArO,CAAO,EAAAwuG,EAEf2B,EADS,CAAC9hG,EAAMrO,CAAE,EACK,OAAOn7B,GAASA,IAAU,IAAI,EAEvD,OAAAsrI,EAAc,SAAW,EACpB,KACEA,EAAc,SAAW,GAAM3c,GAAOnlF,CAAI,EAAE,OAAOmlF,GAAOxzF,CAAE,EAAG,KAAK,EACtE,CAAE,KAAMmwG,EAAc,CAAC,EAAG,GAAIA,EAAc,CAAC,GAE7C3B,GAER,CAACA,EAAc,KAAMA,EAAc,EAAE,CAAC,EAEnC4B,EAAUj2C,UAAQ,IAClB+1C,IAAkB,KACb,KACEA,EAAc,OAASA,EAAc,GACvC,GAAG3c,GAAW2c,EAAc,IAAI,CAAC,GAEjC,GAAG3c,GAAW2c,EAAc,IAAI,CAAC,MAAM3c,GAAW2c,EAAc,EAAE,CAAC,GAE3E,CAACA,CAAa,CAAC,EAEZG,EAAgBl2C,UAAQ,IAAMi2C,IAAY,KAAM,CAACA,CAAO,CAAC,EAEzD7sB,EAAciQ,KACdqb,EAAW10C,UAAQ,IAAMopB,EAAY,MAAM,EAAE,SAAS,EAAG,OAAO,EAAG,CAACA,CAAW,CAAC,EAChFkJ,EAAStyB,UAAQ,IAAOopB,EAAY,MAAM,EAAE,IAAI,EAAG,OAAO,EAAG,CAACA,CAAW,CAAC,EAEhF,OAEIjb,GAAAlf,GAAA,WAACkf,GAAA,OAAI,UAAU,mBACb,UAACjf,EAAA,OAAI,UAAU,qBACb,SAAAA,EAACinD,GAAA,CACC,UAAWZ,EACX,aAAcC,EACd,WAAaziG,GAAM4iG,EAAa5iG,CAAC,EACjC,cAAAshG,EACA,QAASK,EACT,QAASpiB,CAAA,GAEb,EAECpjC,EAAA,OAAI,UAAU,uBAAuB,SAAE,OAExCA,EAAC,MAAI,WAAU,sBACb,SAAAA,EAACinD,GAAA,CACC,UAAWV,EACX,aAAcC,EACd,WAAa3iG,GAAM8iG,EAAW9iG,CAAC,EAC/B,cAAAshG,EACA,QAASK,EACT,QAASpiB,CAAA,GAEb,GACF,EAECpjC,EAAA,OAAI,UAAU,iCACZ,SACH+mD,EAAA,IAEC,MAAI,OAAO,CAAC,OAAQ,sBACnB,SAAA/mD,EAAC,UAAO,UAAW5nD,GAAW,CAAC,4BAA6B,CAAC,WAAY,CAAC4uG,CAAa,CAAC,CAAC,EACjF,SAAU,CAACA,EACX,QAAS,IAAM,CAAE,QAAQ,IAAIH,CAAa,EAAGV,EAAaU,CAAa,CAAC,EAAI,mBAGtF,CACF,GAEJ,ECrIMhiI,GAAU,CACd,SAAY,CACV,OAAQ,CAAC,MAAO,KAAK,EACrB,YAAa,CACd,EACD,UAAa,CACX,OAAQ,CAAC,MAAO,KAAK,EACrB,YAAa,CACd,CACH,EAGMqiI,GAAc,aAEb,SAASC,GAAkBC,EAAU,CAE1C,GAAI,CAACviI,GAAQuiI,CAAQ,EACnB,MAAM,IAAI,MAAM,qBAAqBA,CAAQ,EAAE,EAGjD,MAAMltB,EAAciQ,KACdkd,EAAcntB,EAAY,MAAK,EAAG,SAAS,EAAG,OAAO,EACrD4C,EAASj4G,GAAQuiI,CAAQ,EAAE,OAC3BE,EAAcziI,GAAQuiI,CAAQ,EAAE,YAEhCG,EAAYrtB,EAAY,MAAK,EAAKotB,EAAcptB,EAAY,OAASA,EAAY,KAAI,EAAK,EAE1FstB,EAAY,GAGlB,QAASh7B,EAAO+6B,EAAW/6B,GAAQ,KAAMA,IAAQ,CAC/C,MAAMi7B,EAAej7B,EAAO,EACtB,CAACovB,EAAYD,CAAQ,EAAI7e,EAEzB93E,EAAOmlF,GAAO,GAAGsd,CAAY,IAAI7L,CAAU,KAAMsL,EAAW,EAC5DvwG,EAAKwzF,GAAO,GAAG3d,CAAI,IAAImvB,CAAQ,KAAMuL,EAAW,EAAE,MAAM,OAAO,EAEjEvwG,EAAG,SAAS0wG,CAAW,GACzBG,EAAU,KAAK,CACb,IAAK,WAAWh7B,CAAI,GACpB,MAAO,GAAGovB,CAAU,IAAI6L,CAAY,OAAO9L,CAAQ,IAAInvB,CAAI,GAC3D,KAAMxnE,EAAK,OAAQ,EACnB,GAAIrO,EAAG,OAAQ,CACvB,CAAO,CAEJ,CAED,OAAO6wG,CACT,CC/CA,MAAME,GAAO,CAAC,CAAE,MAAAC,EAAO,QAAAxxE,KAAc,CAC7B,MAAAyxE,EAAc,CAACj5H,EAAG6D,IAAS,CAC/B7D,EAAE,eAAe,EACjBwnD,EAAQ3jD,CAAI,GAGd,OACGwtE,EAAA,OAAI,UAAU,QACZ,SAAM2nD,EAAA,IAAKn1H,GACTwtE,EAAA,OAAmB,UAAW,mBAC7B,SAACA,EAAA,KAAE,KAAK,IAAI,QAAUrxE,GAAMi5H,EAAYj5H,EAAG6D,CAAI,EAC5C,SAAAA,EAAK,KACR,IAHQA,EAAK,GAIf,CACD,CACH,EAEJ,EAEAq1H,IAAe,CAAC,CAAE,aAAA1B,CAAA,IAAmB,CAC7B,MAAA2B,EAAsBt1H,GAAS,CAC7B,MAAE,KAAAwyB,EAAM,GAAArO,CAAO,EAAAnkB,EACR2zH,EAAA,CAAE,KAAAnhG,EAAM,GAAArO,CAAA,CAAI,GAIzB,OAAAsoE,GAAC,MAAI,WAAU,qBACb,UAACA,GAAA,OAAI,UAAU,iCACb,UAAAjf,EAAC,OAAI,UAAU,cAAc,SAACA,EAAA,MAAG,yBAAa,CAAK,KAClD0nD,GAAK,OAAOP,GAAkB,UAAU,EAAI,QAASW,EAAmB,GAC3E,EAEA7oC,GAAC,MAAI,WAAU,kCACb,UAAAjf,EAAC,OAAI,UAAU,cAAc,SAACA,EAAA,MAAG,0BAAc,CAAK,KACnD0nD,GAAK,OAAOP,GAAkB,WAAW,EAAG,QAASW,EAAmB,GAC3E,EAEA9nD,EAAC,MAAI,WAAU,UAAU,EAC3B,GAEJ,ECnCM+nD,IAAe,CAAC,CAAE,SAAA3qE,EAAU,QAAAjH,CAChC,IAAA6pB,EAAC,SAAO,WAAU,yBAAyB,QAAA7pB,EACxC,SAAAiH,CACH,GAGagS,IAAA,CAAC,CAAE,WAAA82D,EAAY,YAAA8B,EAAa,WAAA3d,EAAY,cAAA4d,KAAoB,CACzE,KAAM,CAACC,EAAcC,CAAe,EAAIhqC,WAAS,EAAK,EAChD,CAACiqC,EAAgBC,CAAiB,EAAIlqC,WAAS,EAAK,EACpD,CAACmqC,EAAeC,CAAgB,EAAIpqC,WAAS,EAAK,EAClD,CAACqqC,EAAoBC,CAAqB,EAAItqC,EAAA,SAAS,CAAE,GACzD,CAACuqC,EAAsBC,CAAuB,EAAIxqC,EAAA,SAAS,CAAE,GAE7DmsB,EAAgB,IAAMie,EAAiB,CAACD,CAAa,EACrDjgE,EAAM6qB,WAEN01C,EAAiBp2H,GAAS,CAC1BA,EAAK,MAAQ,UACf21H,EAAgB,EAAI,EACpBE,EAAkB,EAAK,EACvBI,EAAsB,CAAC,UAAW,KAAM,QAAS,IAAK,GACpD,EAAApgE,EAAI,QAAQ,UAAU,EAAE,IAAI,CAAC,KAAM,EAAE,GAC9B71D,EAAK,MAAQ,cACtB21H,EAAgB,EAAK,EACrBE,EAAkB,EAAI,EACtBM,EAAwB,CAAE,UAAW,KAAM,QAAS,IAAM,GACxD,EAAAtgE,EAAI,QAAQ,UAAU,EAAE,IAAI,CAAE,KAAM,EAAG,IAEzC4/D,EAAc,CAAC,GAAGz1H,EAAM,UAAW23G,GAAO33G,EAAK,SAAS,EAAE,OAAO,YAAY,EAAG,QAAS23G,GAAO33G,EAAK,OAAO,EAAE,OAAO,YAAY,EAAG,EACpI+1H,EAAiB,EAAK,EACtBJ,EAAgB,EAAK,EACrBE,EAAkB,EAAK,EACzB,EAGIlC,EAAgBhB,GAAkB,CACtC,QAAQ,IAAIA,CAAa,EAEX8C,EAAA,CACZ,GAAG9C,EACH,UAAWhb,GAAOgb,EAAc,IAAI,EACpC,QAAShb,GAAOgb,EAAc,EAAE,EACjC,EAEDoD,EAAiB,EAAK,GAGxB,OAAKP,EAGHhoD,EAAC5Q,GAAA,SACC,OAAQk5D,EACR,UAAW,CAAC,QAAQ,EACpB,MAAO,SACP,kBAAmB,GACnB,eAAgB,IAAMC,EAAiB,CAACD,CAAa,EACrD,IAAAjgE,EACA,QAAS,EACT,QACE42B,GAAC,MAAI,WAAW7mE,GAAW,CAAC,mBAAoB,CAAE,0BAA2B8vG,EAAa,CAAC,EACzF,UAAAloD,EAAC,OAAI,UAAU,OACb,WAAC,KAAG,WAAU,SACX,SAAYgoD,EAAA,IACXx1H,GAAAwtE,EAAC,KACC,UAAAA,EAAC+nD,KAAa,QAAS,IAAMa,EAAcp2H,CAAI,EAAI,SAAAA,EAAK,KAAM,IADvDA,EAAK,GAEd,GAEJ,CACF,GACC01H,GACDloD,EAAC,MAAI,WAAU,WACb,SAAAA,EAACimD,IAAA,CACC,WAAAC,EACA,WAAYsC,EACZ,aAAArC,CAAA,GAEJ,EAECiC,GACCpoD,EAAC,MAAI,WAAU,aACb,SAAAA,EAAC6nD,IAAA,CACC,WAAA3B,EACA,WAAYwC,EACZ,aAAAvC,CAAA,GAEJ,EAEFnmD,EAAC,MAAI,WAAU,UAAU,IAC3B,EAGF,WAAC,MAAI,OAAO,CAAE,SAAU,YACtB,SAAAA,EAACoqC,IAAA,CACC,YAAA4d,EACA,WAAA3d,EACA,cAAAC,CAAA,GAEJ,IAlDqB,IAqD3B,ECtGeue,IAAA,CAAC,CAAE,KAAAr2H,EAAM,QAAA3N,EAAS,UAAA85F,KAAgB,CACzC,MAAE,WAAAunC,EAAY,YAAA8B,EAAa,WAAA3d,EAAY,cAAA4d,EAAe,QAAA7pC,CAAQ,EAAI0qC,IAAet2H,EAAM3N,CAAO,EAEpGuvF,mBAAU,IAAM,CACd,MAAMz1D,EAAS0rF,EAAa,CAC1B,UAAWF,GAAOE,EAAW,SAAS,EAAE,OAAO,YAAY,EAC3D,QAASF,GAAOE,EAAW,OAAO,EAAE,OAAO,YAAY,CACrD,OAEJ1rB,EAAU,CAAE,MAAO0rB,EAAY,QAAAjsB,EAAS,OAAAz/D,CAAQ,IAC/C,CAAC0rF,EAAYjsB,CAAO,CAAC,KAGrB,MAAI,WAAWhmE,GAAW,CAAC,kCAAkC,CAAC,EAC7D,UAAC4nD,EAAA,SAAM,QAAQ,sBAAsB,SAAO,YAC3CA,EAAA,OAAI,UAAU,YACZ,UAACoe,GACFpe,EAAC5Q,IAAA,CACC,WAAA82D,EACA,SAAU+B,EACV,WAAA5d,EACA,cAAA4d,EACA,YAAAD,CAAA,GAGJ,CACF,GAEJ,EAEac,IAAiB,CAACt2H,EAAM3N,IAAY,CAC/C,KAAM,CAACs6F,EAAeC,CAAgB,EAAIjB,EAAA,SAAS,CAAE,GAC/C,CAACksB,EAAY4d,CAAa,EAAI9pC,WAAS,IAAI,EAC3C,CAAE,QAAAC,EAAS,OAAAj/F,EAAQ,MAAA8B,CAAM,EAAI+8F,GAAS,kCAAkC,EAGxEqB,EAAYvO,UAAQ,KAAOt+E,GAAQ,CAAC,GAAG,MAAQ2sF,EAAc,IAAK,CAAC3sF,EAAM2sF,CAAa,CAAC,EAGvF6oC,EAAcl3C,UAAQ,IAAM,CAChC,GAAIsN,GAAWn9F,EAAO,MAAO,GAEvB,MAAE,qBAAA8nI,CAAyB,EAAAv2H,EAE1B,OAAArT,EAAO,YAAY,OAAOkrH,GAAc0e,EAAqB,SAAS1e,EAAW,EAAE,CAAC,CAC1F,GAACjsB,EAAS5rF,EAAM6sF,CAAS,CAAC,EAG7BjL,YAAU,IAAM,CACd,GAAI,CAACgK,GAAW,CAACn9F,GAAS,CAACo+F,EAAW,CAEpC,MAAMH,EAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACtD,CAAE,qBAAA6pC,EAAsB,kBAAAC,CAAsB,EAAAx2H,EAC9Cy2H,EAAsB/pC,EAAU,IAAI,YAAY,EAChDgqC,EAAoBhqC,EAAU,IAAI,UAAU,EAE9C,IAAAiqC,EAAgBnB,EAAY,OAAO3d,GAAcA,EAAW,KAAO2e,CAAiB,EAAE,CAAC,EACvFI,EAAgB/e,EAEfA,IACC4e,GAAuBC,EACTE,EAAA,CAAE,UAAWjf,GAAO8e,CAAmB,EAAG,QAAS9e,GAAO+e,CAAiB,GAClFC,EACOC,EAAAD,EACPtkI,EAAQ,WAAaA,EAAQ,QACtBukI,EAAA,CAAE,UAAWjf,GAAOtlH,EAAQ,SAAS,EAAG,QAASslH,GAAOtlH,EAAQ,OAAO,CAAE,EAEzFukI,EAAgBpB,EAAY,CAAC,GAI7B7d,GAAOif,EAAc,OAAO,EAAE,KAAKjf,GAAOif,EAAc,SAAS,EAAG,MAAM,EAAI52H,EAAK,aACrF42H,EAAgBpB,EAAY,CAAC,GAG/BC,EAAcmB,CAAa,EAC3BhqC,EAAiB5sF,CAAI,CACvB,GACC,CAAC4rF,EAASiB,CAAS,CAAC,EAEvB,MAAM6mC,EAAap1C,UAAQ,IAAMqO,EAAc,WAAY,CAACA,CAAa,CAAC,EAEnE,OACL,YAAA6oC,EACA,WAAA3d,EACA,cAAA4d,EACA,MAAAhnI,EACA,WAAAilI,EACA,QAAS,CAAC7mC,CAAA,CAEd,EC3FegqC,IAAA,CAAC,CAAE,KAAA72H,EAAM,QAAA3N,EAAS,gBAAA66F,EAAiB,UAAAf,KAAe,CACzD,MAAE,kBAAA2qC,EAAmB,gBAAAC,EAAiB,mBAAAC,EAAoB,QAAAprC,GAAYqrC,IAAqBj3H,EAAM3N,EAAS66F,CAAe,EAE/HtL,YAAU,IAAM,CACd,MAAMz1D,EAAS4qG,EAAkB,CAAE,kBAAmBA,EAAgB,EAAO,OAC7E5qC,EAAU,CAAE,MAAO4qC,EAAiB,QAAAnrC,EAAS,OAAAz/D,CAAQ,IACpD,CAAC4qG,EAAiBnrC,CAAO,CAAC,EAEvB,MAAApoE,EAASszG,GAAqBA,EAAkB,OAAS,EAG7D,OAAArqC,GAAC,MAAI,WAAW7mE,GAAW,CAAC,yCAA0C,CAAE,OAAUpC,EAAQ,CAAC,EACzF,UAACipE,GAAA,SAAM,QAAQ,4BAA4B,UAAAjf,EAAC,QAAK,SAAO,YAAO,cAAU,EACzEA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAO8qC,EACP,QAASD,EACT,SAAUE,EACV,UAAWprC,EACX,WAAYA,EACZ,kBAAuB1nE,EAAI,MAC3B,kBAAuBA,EAAI,KAE/B,CACF,GAEJ,EAEMqpE,IAAc,CAAE,GAAI,KAAM,MAAO,SAAU,EAEpC0pC,IAAuB,CAACj3H,EAAM3N,EAAS66F,IAAoB,CAChE,MAAAxpB,GAAWwpB,GAAmB,IAAI,QAClC1jG,EAAMk6E,EAAU,yBAAyBA,CAAO,2BAA6B,KAC7E,CAAC8pB,EAAkBC,CAAmB,EAAI9B,WAAS,IAAI,EACvD,CAACorC,EAAiBC,CAAkB,EAAIrrC,WAASniG,CAAG,EACpD,CAAE,QAAAoiG,EAAS,OAAAj/F,EAAQ,MAAA8B,CAAM,EAAI+8F,GAAShiG,CAAG,EAGzCqjG,EAAYvO,UAAQ,IAAM5a,IAAW8pB,EAAkB,CAAC9pB,EAAS8pB,CAAgB,CAAC,EAGlFspC,EAAoBx4C,UAAQ,IAC5BsN,GAAWn9F,EAAc,GACtB,CAAC8+F,IAAa,GAAG5gG,EAAO,iBAAiB,EAC/C,CAACi/F,EAAS5rF,EAAM6sF,CAAS,CAAC,EAG7BjL,mBAAU,IAAM,CACd,GAAI,CAACgK,GAAW,CAACn9F,GAAS,CAACo+F,EAAW,CACpC,MAAMqqC,EAA4BJ,EAAkB,KAAKC,GAChDA,EAAgB,KAAO1kI,EAAQ,iBACvC,EAEkB2kI,EAAAE,GAA6BJ,EAAkB,CAAC,CAAC,EACpErpC,EAAoB/pB,CAAO,CAC7B,GACC,CAACkoB,EAASiB,CAAS,CAAC,EAEhB,CACL,kBAAAiqC,EACA,gBAAAC,EACA,mBAAAC,EACA,MAAAvoI,EACA,QAAS,CAACo+F,CAAA,CAEd,ECtEMt8F,GAAQ,eACR4mI,GAAgB,IAAI,OAAO,IAAM5mI,GAAQ,aAAc,IAAI,EAC3D6mI,GAAe,IAAI,OAAO,IAAM7mI,GAAQ,KAAM,IAAI,EAExD,SAAS8mI,GAAiBh9C,EAAY+pB,EAAO,CAC5C,GAAI,CAEH,MAAO,CAAC,mBAAmB/pB,EAAW,KAAK,EAAE,CAAC,CAAC,CACjD,MAAS,CAEP,CAED,GAAIA,EAAW,SAAW,EACzB,OAAOA,EAGR+pB,EAAQA,GAAS,EAGjB,MAAM15G,EAAO2vF,EAAW,MAAM,EAAG+pB,CAAK,EAChCz5G,EAAQ0vF,EAAW,MAAM+pB,CAAK,EAEpC,OAAO,MAAM,UAAU,OAAO,KAAK,GAAIizB,GAAiB3sI,CAAI,EAAG2sI,GAAiB1sI,CAAK,CAAC,CACvF,CAEA,SAAS2sI,IAAO3mI,EAAO,CACtB,GAAI,CACH,OAAO,mBAAmBA,CAAK,CACjC,MAAS,CACP,IAAI2e,EAAS3e,EAAM,MAAMwmI,EAAa,GAAK,GAE3C,QAAStqI,EAAI,EAAGA,EAAIyiB,EAAO,OAAQziB,IAClC8D,EAAQ0mI,GAAiB/nH,EAAQziB,CAAC,EAAE,KAAK,EAAE,EAE3CyiB,EAAS3e,EAAM,MAAMwmI,EAAa,GAAK,GAGxC,OAAOxmI,CACP,CACF,CAEA,SAAS4mI,IAAyB5mI,EAAO,CAExC,MAAM6mI,EAAa,CAClB,SAAU,KACV,SAAU,IACZ,EAEC,IAAIhrI,EAAQ4qI,GAAa,KAAKzmI,CAAK,EACnC,KAAOnE,GAAO,CACb,GAAI,CAEHgrI,EAAWhrI,EAAM,CAAC,CAAC,EAAI,mBAAmBA,EAAM,CAAC,CAAC,CACrD,MAAU,CACP,MAAMG,EAAS2qI,IAAO9qI,EAAM,CAAC,CAAC,EAE1BG,IAAWH,EAAM,CAAC,IACrBgrI,EAAWhrI,EAAM,CAAC,CAAC,EAAIG,EAExB,CAEDH,EAAQ4qI,GAAa,KAAKzmI,CAAK,CAC/B,CAGD6mI,EAAW,KAAK,EAAI,IAEpB,MAAM1oI,EAAU,OAAO,KAAK0oI,CAAU,EAEtC,UAAW78H,KAAO7L,EAEjB6B,EAAQA,EAAM,QAAQ,IAAI,OAAOgK,EAAK,GAAG,EAAG68H,EAAW78H,CAAG,CAAC,EAG5D,OAAOhK,CACR,CAEe,SAAS8mI,IAAmBC,EAAY,CACtD,GAAI,OAAOA,GAAe,SACzB,MAAM,IAAI,UAAU,sDAAwD,OAAOA,EAAa,GAAG,EAGpG,GAAI,CAEH,OAAO,mBAAmBA,CAAU,CACtC,MAAS,CAEP,OAAOH,IAAyBG,CAAU,CAC1C,CACF,CCzFe,SAASC,GAAa/qI,EAAQu+G,EAAW,CACvD,GAAI,EAAE,OAAOv+G,GAAW,UAAY,OAAOu+G,GAAc,UACxD,MAAM,IAAI,UAAU,+CAA+C,EAGpE,GAAIv+G,IAAW,IAAMu+G,IAAc,GAClC,MAAO,GAGR,MAAMysB,EAAiBhrI,EAAO,QAAQu+G,CAAS,EAE/C,OAAIysB,IAAmB,GACf,GAGD,CACNhrI,EAAO,MAAM,EAAGgrI,CAAc,EAC9BhrI,EAAO,MAAMgrI,EAAiBzsB,EAAU,MAAM,CAChD,CACA,CCnBO,SAAS0sB,IAAYlkH,EAAQ4qG,EAAW,CAC9C,MAAM5xH,EAAS,GAEf,GAAI,MAAM,QAAQ4xH,CAAS,EAC1B,UAAW5jH,KAAO4jH,EAAW,CAC5B,MAAMl0C,EAAa,OAAO,yBAAyB12D,EAAQhZ,CAAG,EAC1D0vE,GAAA,MAAAA,EAAY,YACf,OAAO,eAAe19E,EAAQgO,EAAK0vE,CAAU,CAE9C,KAGD,WAAW1vE,KAAO,QAAQ,QAAQgZ,CAAM,EAAG,CAC1C,MAAM02D,EAAa,OAAO,yBAAyB12D,EAAQhZ,CAAG,EAC9D,GAAI0vE,EAAW,WAAY,CAC1B,MAAMrhF,EAAQ2qB,EAAOhZ,CAAG,EACpB4jH,EAAU5jH,EAAK3R,EAAO2qB,CAAM,GAC/B,OAAO,eAAehnB,EAAQgO,EAAK0vE,CAAU,CAE9C,CACD,CAGF,OAAO19E,CACR,CCpBA,MAAMmrI,IAAoB9uI,GAASA,GAAU,KAGvC+uI,IAAkBnrI,GAAU,mBAAmBA,CAAM,EAAE,WAAW,WAAYmF,GAAK,IAAIA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAW,CAAE,EAAE,EAEnIimI,GAA2B,OAAO,0BAA0B,EAElE,SAASC,IAAsB5lI,EAAS,CACvC,OAAQA,EAAQ,YAAW,CAC1B,IAAK,QACJ,OAAOsI,GAAO,CAAChO,EAAQ3D,IAAU,CAChC,MAAMiN,EAAQtJ,EAAO,OAErB,OACC3D,IAAU,QACNqJ,EAAQ,UAAYrJ,IAAU,MAC9BqJ,EAAQ,iBAAmBrJ,IAAU,GAElC2D,EAGJ3D,IAAU,KACN,CACN,GAAG2D,EAAQ,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,IAAK4D,EAAO,GAAG,EAAE,KAAK,EAAE,CAChE,EAGW,CACN,GAAGtJ,EACH,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,IAAKmsE,GAAOvoE,EAAO5D,CAAO,EAAG,KAAMmsE,GAAOx1E,EAAOqJ,CAAO,CAAC,EAAE,KAAK,EAAE,CAC9F,CACA,EAGE,IAAK,UACJ,OAAOsI,GAAO,CAAChO,EAAQ3D,IAErBA,IAAU,QACNqJ,EAAQ,UAAYrJ,IAAU,MAC9BqJ,EAAQ,iBAAmBrJ,IAAU,GAElC2D,EAGJ3D,IAAU,KACN,CACN,GAAG2D,EACH,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,IAAI,EAAE,KAAK,EAAE,CAC1C,EAGW,CACN,GAAG1F,EACH,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,MAAOmsE,GAAOx1E,EAAOqJ,CAAO,CAAC,EAAE,KAAK,EAAE,CAClE,EAIE,IAAK,uBACJ,OAAOsI,GAAO,CAAChO,EAAQ3D,IAErBA,IAAU,QACNqJ,EAAQ,UAAYrJ,IAAU,MAC9BqJ,EAAQ,iBAAmBrJ,IAAU,GAElC2D,EAGJ3D,IAAU,KACN,CACN,GAAG2D,EACH,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,QAAQ,EAAE,KAAK,EAAE,CAC9C,EAGW,CACN,GAAG1F,EACH,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,SAAUmsE,GAAOx1E,EAAOqJ,CAAO,CAAC,EAAE,KAAK,EAAE,CACrE,EAIE,IAAK,QACL,IAAK,YACL,IAAK,oBAAqB,CACzB,MAAM6lI,EAAoB7lI,EAAQ,cAAgB,oBAC/C,MACA,IAEH,OAAOsI,GAAO,CAAChO,EAAQ3D,IAErBA,IAAU,QACNqJ,EAAQ,UAAYrJ,IAAU,MAC9BqJ,EAAQ,iBAAmBrJ,IAAU,GAElC2D,GAIR3D,EAAQA,IAAU,KAAO,GAAKA,EAE1B2D,EAAO,SAAW,EACd,CAAC,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG6lI,EAAmB15D,GAAOx1E,EAAOqJ,CAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAG5E,CAAC,CAAC1F,EAAQ6xE,GAAOx1E,EAAOqJ,CAAO,CAAC,EAAE,KAAKA,EAAQ,oBAAoB,CAAC,EAE5E,CAED,QACC,OAAOsI,GAAO,CAAChO,EAAQ3D,IAErBA,IAAU,QACNqJ,EAAQ,UAAYrJ,IAAU,MAC9BqJ,EAAQ,iBAAmBrJ,IAAU,GAElC2D,EAGJ3D,IAAU,KACN,CACN,GAAG2D,EACH6xE,GAAO7jE,EAAKtI,CAAO,CACzB,EAGW,CACN,GAAG1F,EACH,CAAC6xE,GAAO7jE,EAAKtI,CAAO,EAAG,IAAKmsE,GAAOx1E,EAAOqJ,CAAO,CAAC,EAAE,KAAK,EAAE,CAChE,CAGE,CACF,CAEA,SAAS8lI,IAAqB9lI,EAAS,CACtC,IAAI1F,EAEJ,OAAQ0F,EAAQ,YAAW,CAC1B,IAAK,QACJ,MAAO,CAACsI,EAAK3R,EAAOovI,IAAgB,CAKnC,GAJAzrI,EAAS,YAAY,KAAKgO,CAAG,EAE7BA,EAAMA,EAAI,QAAQ,UAAW,EAAE,EAE3B,CAAChO,EAAQ,CACZyrI,EAAYz9H,CAAG,EAAI3R,EACnB,MACA,CAEGovI,EAAYz9H,CAAG,IAAM,SACxBy9H,EAAYz9H,CAAG,EAAI,IAGpBy9H,EAAYz9H,CAAG,EAAEhO,EAAO,CAAC,CAAC,EAAI3D,CAClC,EAGE,IAAK,UACJ,MAAO,CAAC2R,EAAK3R,EAAOovI,IAAgB,CAInC,GAHAzrI,EAAS,SAAS,KAAKgO,CAAG,EAC1BA,EAAMA,EAAI,QAAQ,OAAQ,EAAE,EAExB,CAAChO,EAAQ,CACZyrI,EAAYz9H,CAAG,EAAI3R,EACnB,MACA,CAED,GAAIovI,EAAYz9H,CAAG,IAAM,OAAW,CACnCy9H,EAAYz9H,CAAG,EAAI,CAAC3R,CAAK,EACzB,MACA,CAEDovI,EAAYz9H,CAAG,EAAI,CAAC,GAAGy9H,EAAYz9H,CAAG,EAAG3R,CAAK,CAClD,EAGE,IAAK,uBACJ,MAAO,CAAC2R,EAAK3R,EAAOovI,IAAgB,CAInC,GAHAzrI,EAAS,WAAW,KAAKgO,CAAG,EAC5BA,EAAMA,EAAI,QAAQ,SAAU,EAAE,EAE1B,CAAChO,EAAQ,CACZyrI,EAAYz9H,CAAG,EAAI3R,EACnB,MACA,CAED,GAAIovI,EAAYz9H,CAAG,IAAM,OAAW,CACnCy9H,EAAYz9H,CAAG,EAAI,CAAC3R,CAAK,EACzB,MACA,CAEDovI,EAAYz9H,CAAG,EAAI,CAAC,GAAGy9H,EAAYz9H,CAAG,EAAG3R,CAAK,CAClD,EAGE,IAAK,QACL,IAAK,YACJ,MAAO,CAAC2R,EAAK3R,EAAOovI,IAAgB,CACnC,MAAMr8D,EAAU,OAAO/yE,GAAU,UAAYA,EAAM,SAASqJ,EAAQ,oBAAoB,EAClFgmI,EAAkB,OAAOrvI,GAAU,UAAY,CAAC+yE,GAAWu7D,GAAOtuI,EAAOqJ,CAAO,EAAE,SAASA,EAAQ,oBAAoB,EAC7HrJ,EAAQqvI,EAAiBf,GAAOtuI,EAAOqJ,CAAO,EAAIrJ,EAClD,MAAM68F,EAAW9pB,GAAWs8D,EAAiBrvI,EAAM,MAAMqJ,EAAQ,oBAAoB,EAAE,IAAI2N,GAAQs3H,GAAOt3H,EAAM3N,CAAO,CAAC,EAAKrJ,IAAU,KAAOA,EAAQsuI,GAAOtuI,EAAOqJ,CAAO,EAC3K+lI,EAAYz9H,CAAG,EAAIkrF,CACvB,EAGE,IAAK,oBACJ,MAAO,CAAClrF,EAAK3R,EAAOovI,IAAgB,CACnC,MAAMr8D,EAAU,SAAS,KAAKphE,CAAG,EAGjC,GAFAA,EAAMA,EAAI,QAAQ,OAAQ,EAAE,EAExB,CAACohE,EAAS,CACbq8D,EAAYz9H,CAAG,EAAI3R,GAAQsuI,GAAOtuI,EAAOqJ,CAAO,EAChD,MACA,CAED,MAAMimI,EAAatvI,IAAU,KAC1B,CAAE,EACFA,EAAM,MAAMqJ,EAAQ,oBAAoB,EAAE,IAAI2N,GAAQs3H,GAAOt3H,EAAM3N,CAAO,CAAC,EAE9E,GAAI+lI,EAAYz9H,CAAG,IAAM,OAAW,CACnCy9H,EAAYz9H,CAAG,EAAI29H,EACnB,MACA,CAEDF,EAAYz9H,CAAG,EAAI,CAAC,GAAGy9H,EAAYz9H,CAAG,EAAG,GAAG29H,CAAU,CAC1D,EAGE,QACC,MAAO,CAAC39H,EAAK3R,EAAOovI,IAAgB,CACnC,GAAIA,EAAYz9H,CAAG,IAAM,OAAW,CACnCy9H,EAAYz9H,CAAG,EAAI3R,EACnB,MACA,CAEDovI,EAAYz9H,CAAG,EAAI,CAAC,GAAG,CAACy9H,EAAYz9H,CAAG,CAAC,EAAE,OAAQ3R,CAAK,CAC3D,CAEE,CACF,CAEA,SAASuvI,GAA6BvvI,EAAO,CAC5C,GAAI,OAAOA,GAAU,UAAYA,EAAM,SAAW,EACjD,MAAM,IAAI,UAAU,sDAAsD,CAE5E,CAEA,SAASw1E,GAAOx1E,EAAOqJ,EAAS,CAC/B,OAAIA,EAAQ,OACJA,EAAQ,OAAS0lI,IAAgB/uI,CAAK,EAAI,mBAAmBA,CAAK,EAGnEA,CACR,CAEA,SAASsuI,GAAOtuI,EAAOqJ,EAAS,CAC/B,OAAIA,EAAQ,OACJmmI,IAAgBxvI,CAAK,EAGtBA,CACR,CAEA,SAASyvI,GAAW9nI,EAAO,CAC1B,OAAI,MAAM,QAAQA,CAAK,EACfA,EAAM,OAGV,OAAOA,GAAU,SACb8nI,GAAW,OAAO,KAAK9nI,CAAK,CAAC,EAClC,KAAK,CAACyX,EAAGC,IAAM,OAAOD,CAAC,EAAI,OAAOC,CAAC,CAAC,EACpC,IAAI1N,GAAOhK,EAAMgK,CAAG,CAAC,EAGjBhK,CACR,CAEA,SAAS+nI,GAAW/nI,EAAO,CAC1B,MAAMgoI,EAAYhoI,EAAM,QAAQ,GAAG,EACnC,OAAIgoI,IAAc,KACjBhoI,EAAQA,EAAM,MAAM,EAAGgoI,CAAS,GAG1BhoI,CACR,CAEA,SAASioI,IAAQpvI,EAAK,CACrB,IAAIylB,EAAO,GACX,MAAM0pH,EAAYnvI,EAAI,QAAQ,GAAG,EACjC,OAAImvI,IAAc,KACjB1pH,EAAOzlB,EAAI,MAAMmvI,CAAS,GAGpB1pH,CACR,CAEA,SAAS4pH,GAAW7vI,EAAOqJ,EAAS,CACnC,OAAIA,EAAQ,cAAgB,CAAC,OAAO,MAAM,OAAOrJ,CAAK,CAAC,GAAM,OAAOA,GAAU,UAAYA,EAAM,KAAM,IAAK,GAC1GA,EAAQ,OAAOA,CAAK,EACVqJ,EAAQ,eAAiBrJ,IAAU,OAASA,EAAM,YAAa,IAAK,QAAUA,EAAM,YAAa,IAAK,WAChHA,EAAQA,EAAM,YAAa,IAAK,QAG1BA,CACR,CAEO,SAAS8vI,GAAQnoI,EAAO,CAC9BA,EAAQ+nI,GAAW/nI,CAAK,EACxB,MAAMooI,EAAapoI,EAAM,QAAQ,GAAG,EACpC,OAAIooI,IAAe,GACX,GAGDpoI,EAAM,MAAMooI,EAAa,CAAC,CAClC,CAEO,SAAS3yD,GAAM4yD,EAAO3mI,EAAS,CACrCA,EAAU,CACT,OAAQ,GACR,KAAM,GACN,YAAa,OACb,qBAAsB,IACtB,aAAc,GACd,cAAe,GACf,GAAGA,CACL,EAECkmI,GAA6BlmI,EAAQ,oBAAoB,EAEzD,MAAMwxH,EAAYsU,IAAqB9lI,CAAO,EAGxC4mI,EAAc,OAAO,OAAO,IAAI,EAQtC,GANI,OAAOD,GAAU,WAIrBA,EAAQA,EAAM,KAAI,EAAG,QAAQ,SAAU,EAAE,EAErC,CAACA,GACJ,OAAOC,EAGR,UAAWC,KAAaF,EAAM,MAAM,GAAG,EAAG,CACzC,GAAIE,IAAc,GACjB,SAGD,MAAMC,EAAa9mI,EAAQ,OAAS6mI,EAAU,WAAW,IAAK,GAAG,EAAIA,EAErE,GAAI,CAACv+H,EAAK3R,CAAK,EAAI2uI,GAAawB,EAAY,GAAG,EAE3Cx+H,IAAQ,SACXA,EAAMw+H,GAKPnwI,EAAQA,IAAU,OAAY,KAAQ,CAAC,QAAS,YAAa,mBAAmB,EAAE,SAASqJ,EAAQ,WAAW,EAAIrJ,EAAQsuI,GAAOtuI,EAAOqJ,CAAO,EAC/IwxH,EAAUyT,GAAO38H,EAAKtI,CAAO,EAAGrJ,EAAOiwI,CAAW,CAClD,CAED,SAAW,CAACt+H,EAAK3R,CAAK,IAAK,OAAO,QAAQiwI,CAAW,EACpD,GAAI,OAAOjwI,GAAU,UAAYA,IAAU,KAC1C,SAAW,CAACowI,EAAMC,CAAM,IAAK,OAAO,QAAQrwI,CAAK,EAChDA,EAAMowI,CAAI,EAAIP,GAAWQ,EAAQhnI,CAAO,OAGzC4mI,EAAYt+H,CAAG,EAAIk+H,GAAW7vI,EAAOqJ,CAAO,EAI9C,OAAIA,EAAQ,OAAS,GACb4mI,GAKA5mI,EAAQ,OAAS,GAAO,OAAO,KAAK4mI,CAAW,EAAE,OAAS,OAAO,KAAKA,CAAW,EAAE,KAAK5mI,EAAQ,IAAI,GAAG,OAAO,CAAC1F,EAAQgO,IAAQ,CACtI,MAAM3R,EAAQiwI,EAAYt+H,CAAG,EAC7B,OAAAhO,EAAOgO,CAAG,EAAY3R,GAAU,OAAOA,GAAU,UAAY,CAAC,MAAM,QAAQA,CAAK,EAAIyvI,GAAWzvI,CAAK,EAAIA,EAClG2D,CACP,EAAE,OAAO,OAAO,IAAI,CAAC,CACvB,CAEO,SAAS06E,GAAU1zD,EAAQthB,EAAS,CAC1C,GAAI,CAACshB,EACJ,MAAO,GAGRthB,EAAU,CACT,OAAQ,GACR,OAAQ,GACR,YAAa,OACb,qBAAsB,IACtB,GAAGA,CACL,EAECkmI,GAA6BlmI,EAAQ,oBAAoB,EAEzD,MAAMinI,EAAe3+H,GACnBtI,EAAQ,UAAYylI,IAAkBnkH,EAAOhZ,CAAG,CAAC,GAC9CtI,EAAQ,iBAAmBshB,EAAOhZ,CAAG,IAAM,GAG1CkpH,EAAYoU,IAAsB5lI,CAAO,EAEzCknI,EAAa,GAEnB,SAAW,CAAC5+H,EAAK3R,CAAK,IAAK,OAAO,QAAQ2qB,CAAM,EAC1C2lH,EAAa3+H,CAAG,IACpB4+H,EAAW5+H,CAAG,EAAI3R,GAIpB,MAAMiiB,EAAO,OAAO,KAAKsuH,CAAU,EAEnC,OAAIlnI,EAAQ,OAAS,IACpB4Y,EAAK,KAAK5Y,EAAQ,IAAI,EAGhB4Y,EAAK,IAAItQ,GAAO,CACtB,MAAM3R,EAAQ2qB,EAAOhZ,CAAG,EAExB,OAAI3R,IAAU,OACN,GAGJA,IAAU,KACNw1E,GAAO7jE,EAAKtI,CAAO,EAGvB,MAAM,QAAQrJ,CAAK,EAClBA,EAAM,SAAW,GAAKqJ,EAAQ,cAAgB,oBAC1CmsE,GAAO7jE,EAAKtI,CAAO,EAAI,KAGxBrJ,EACL,OAAO66H,EAAUlpH,CAAG,EAAG,EAAE,EACzB,KAAK,GAAG,EAGJ6jE,GAAO7jE,EAAKtI,CAAO,EAAI,IAAMmsE,GAAOx1E,EAAOqJ,CAAO,CAC3D,CAAE,EAAE,OAAON,GAAKA,EAAE,OAAS,CAAC,EAAE,KAAK,GAAG,CACtC,CAEO,SAASynI,GAAShwI,EAAK6I,EAAS,OACtCA,EAAU,CACT,OAAQ,GACR,GAAGA,CACL,EAEC,GAAI,CAAConI,EAAMxqH,CAAI,EAAI0oH,GAAanuI,EAAK,GAAG,EAExC,OAAIiwI,IAAS,SACZA,EAAOjwI,GAGD,CACN,MAAKN,EAAAuwI,GAAA,YAAAA,EAAM,MAAM,OAAZ,YAAAvwI,EAAmB,KAAM,GAC9B,MAAOk9E,GAAM0yD,GAAQtvI,CAAG,EAAG6I,CAAO,EAClC,GAAIA,GAAWA,EAAQ,yBAA2B4c,EAAO,CAAC,mBAAoBqoH,GAAOroH,EAAM5c,CAAO,CAAC,EAAI,CAAE,CAC3G,CACA,CAEO,SAASqnI,GAAa/lH,EAAQthB,EAAS,CAC7CA,EAAU,CACT,OAAQ,GACR,OAAQ,GACR,CAAC2lI,EAAwB,EAAG,GAC5B,GAAG3lI,CACL,EAEC,MAAM7I,EAAMkvI,GAAW/kH,EAAO,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,GAAK,GAC9CgmH,EAAeb,GAAQnlH,EAAO,GAAG,EAEjCqlH,EAAQ,CACb,GAAG5yD,GAAMuzD,EAAc,CAAC,KAAM,EAAK,CAAC,EACpC,GAAGhmH,EAAO,KACZ,EAEC,IAAIimH,EAAcvyD,GAAU2xD,EAAO3mI,CAAO,EAC1CunI,MAAgB,IAAIA,CAAW,IAE/B,IAAI3qH,EAAO2pH,IAAQjlH,EAAO,GAAG,EAC7B,GAAI,OAAOA,EAAO,oBAAuB,SAAU,CAClD,MAAMkmH,EAA6B,IAAI,IAAIrwI,CAAG,EAC9CqwI,EAA2B,KAAOlmH,EAAO,mBACzC1E,EAAO5c,EAAQ2lI,EAAwB,EAAI6B,EAA2B,KAAO,IAAIlmH,EAAO,kBAAkB,EAC1G,CAED,MAAO,GAAGnqB,CAAG,GAAGowI,CAAW,GAAG3qH,CAAI,EACnC,CAEO,SAAS6qH,GAAKnpI,EAAO4f,EAAQle,EAAS,CAC5CA,EAAU,CACT,wBAAyB,GACzB,CAAC2lI,EAAwB,EAAG,GAC5B,GAAG3lI,CACL,EAEC,KAAM,CAAC,IAAA7I,EAAK,MAAAwvI,EAAO,mBAAAe,CAAkB,EAAIP,GAAS7oI,EAAO0B,CAAO,EAEhE,OAAOqnI,GAAa,CACnB,IAAAlwI,EACA,MAAOquI,IAAYmB,EAAOzoH,CAAM,EAChC,mBAAAwpH,CACA,EAAE1nI,CAAO,CACX,CAEO,SAAS2nI,IAAQrpI,EAAO4f,EAAQle,EAAS,CAC/C,MAAM4nI,EAAkB,MAAM,QAAQ1pH,CAAM,EAAI5V,GAAO,CAAC4V,EAAO,SAAS5V,CAAG,EAAI,CAACA,EAAK3R,IAAU,CAACunB,EAAO5V,EAAK3R,CAAK,EAEjH,OAAO8wI,GAAKnpI,EAAOspI,EAAiB5nI,CAAO,CAC5C,uLCpgBMmE,GAAiB,CACrB,CAAE,MAAO,iBAAkB,MAAO,EAAM,EACxC,CAAE,MAAO,gBAAiB,MAAO,EAAK,CACxC,EAEA,SAAS0jI,IAAWl6H,EAAMktF,EAAiBitC,EAAa,SACtD,IAAIjxI,EAAAixI,EAAY,QAAZ,MAAAjxI,EAAmB,UAAWC,EAAAgxI,EAAY,mBAAZ,MAAAhxI,EAA8B,QAAgB,YAEhF,MAAMy2E,EAAO,oCACPw6D,EAAUp6H,EAAK,IACf0jE,GAAWwpB,GAAmB,IAAI,QAClCmtC,GAAoBntC,GAAmB,IAAI,iBAE3CotC,EAAc,GAChB,OAAAF,IAAqBE,EAAA,SAAct6H,EAAK,KACxC0jE,IAAS42D,EAAY,SAAc52D,GACnC22D,IAAkBC,EAAY,sBAAsB,EAAID,GAErD,GAAGz6D,CAAI,IAAIg6D,IAAY,UAAUU,CAAW,CAAC,EACtD,CAEO,MAAMC,IAAkB,CAACv6H,EAAM3N,EAAS66F,EAAiBitC,IAAgB,CAC9E,MAAM3wI,EAAM0wI,IAAWl6H,EAAMktF,EAAiBitC,CAAW,EACnD,CAAE,QAAAvuC,EAAS,OAAAj/F,EAAQ,MAAA8B,CAAM,EAAI+8F,GAAShiG,CAAG,EACzC,CAACgxI,EAA+BC,CAAgC,EAAI9uC,WAAS,EAAK,EAElFjH,EADuB,KAAK,MAAM,IAAI,gBAAgB,SAAS,MAAM,EAAE,IAAI,cAAc,CAAC,GACnD,CAAC81C,EAAiC,EAAG,EAC5E,CAACrkI,EAAQukI,CAAS,EAAI/uC,EAAS,SAAAn1F,GAAekuF,CAAW,CAAC,EAG1Di2C,EAAer8C,UAAQ,IACvBsN,EAAgB,GAChBn9F,EAAc,GACb9B,EAAO,kBAEL6J,GAF+B,GAGrC,CAACo1F,CAAO,CAAC,EAEZhK,mBAAU,IAAM,CACV,CAACgK,GAAW,CAACn9F,IACX+rI,EACQE,EAAAlkI,GAAe,CAAC,CAAC,EAE3BikI,EAAiC,EAAI,EAEzC,EACC,CAAC7uC,CAAO,CAAC,EAEL,CACL,aAAA+uC,EACA,YAAaxkI,EACb,eAAgBukI,EAChB,QAAA9uC,CAAA,CAEJ,ECtDMgvC,IAAa,cAEnBC,IAAe,CAAC,CAAE,KAAA76H,EAAM,QAAA3N,EAAS,gBAAA66F,EAAiB,UAAAf,EAAW,YAAAguC,KAAkB,CACvE,MACJ,aAAAQ,EACA,YAAAG,EACA,eAAAC,EACA,QAAAnvC,CACE,EAAA2uC,IAAgBv6H,EAAM3N,EAAS66F,EAAiBitC,CAAW,EAE/Dv4C,YAAU,IAAM,CACR,MAAAz1D,EAAS2uG,EAAc,CAAE,CAACF,GAAU,EAAGE,EAAY,KAAU,OACnE3uC,EAAU,CAAE,MAAO2uC,EAAa,QAAAlvC,EAAS,OAAAz/D,CAAQ,IAChD,CAACy/D,EAASkvC,CAAW,CAAC,EAEnB,MAAAt3G,EAASm3G,GAAgBA,EAAa,OAAS,EAGnD,OAAAluC,GAAC,MAAI,WAAW7mE,GAAW,CAAC,oCAAqC,CAAE,OAAUpC,EAAQ,CAAC,EACpF,UAACgqD,EAAA,SAAM,QAAQ,4BAA4B,SAAkB,uBAC7DA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAO6uC,EACP,QAASH,EACT,SAAUI,EACV,UAAWnvC,EACX,WAAYA,EACZ,kBAAuB1nE,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EClCM82G,GAAgB,CACpB,CAAE,MAAO,gBAAiB,MAAO,KAAM,EACvC,CAAE,MAAO,6BAA8B,MAAO,SAAU,CAC1D,EAEAC,IAAe,CAAC,CAAE,UAAA9uC,EAAW,QAAA95F,KAAc,CACzC,MAAM6oI,EAAoB7oI,EAAQ,eAAiB,UAAY,EAAI,EAC7D,CAAC8oI,EAAcC,CAAe,EAAIzvC,EAAS,SAAAqvC,GAAcE,CAAiB,CAAC,EAE3EtvC,EAAU,GAEhBhK,mBAAU,IAAM,CACd,MAAMz1D,EAASgvG,EAAe,CAAE,aAAcA,EAAa,KAAU,OACrEhvC,EAAU,CAAE,MAAOgvC,EAAc,QAAAvvC,EAAS,OAAAz/D,CAAQ,IACjD,CAACgvG,CAAY,CAAC,KAGd,MAAI,WAAWv1G,GAAW,CAAC,oCAAoC,CAAC,EAC/D,UAAC4nD,EAAA,SAAM,QAAQ,wBAAwB,SAAU,eACjDA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOkvC,EACP,QAASH,GACT,SAAUI,EACV,UAAWxvC,EACX,WAAYA,EACZ,kBAAuB1nE,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EChCMm3G,GAAc,CAClB,CAAE,MAAO,WAAY,MAAO,UAAW,EACvC,CAAE,MAAO,WAAY,MAAO,UAAW,EACvC,CAAE,MAAO,UAAW,MAAO,SAAU,CACvC,EAEAC,IAAe,CAAC,CAAE,UAAAnvC,CAAA,IAAgB,CAChC,KAAM,CAACovC,EAAYC,CAAa,EAAI7vC,EAAS,SAAA0vC,GAAY,CAAC,CAAC,EAE3Dz5C,mBAAU,IAAM,CACd,MAAMz1D,EAASovG,EAAa,CAAE,WAAYA,EAAW,KAAU,OAC/DpvC,EAAU,CAAE,MAAOovC,EAAY,QAAS,GAAO,OAAApvG,EAAQ,GACtD,CAACovG,CAAU,CAAC,KAGZ,MAAI,WAAW31G,GAAW,CAAC,kCAAkC,CAAC,EAC7D,UAAC4nD,EAAA,SAAM,QAAQ,sBAAsB,SAAK,UAC1CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOsvC,EACP,QAASF,GACT,SAAUG,EACV,kBAAuBt3G,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EC3BMu3G,GAAkB,CACtB,CAAE,MAAO,MAAO,MAAO,KAAM,EAC7B,CAAE,MAAO,cAAe,MAAO,aAAc,EAC7C,CAAE,MAAO,cAAe,MAAO,aAAc,EAC7C,CAAE,MAAO,UAAW,MAAO,SAAU,EACrC,CAAE,MAAO,WAAY,MAAO,UAAW,EACvC,CAAE,MAAO,OAAQ,MAAO,MAAO,CACjC,EAEAC,IAAe,CAAC,CAAE,UAAAvvC,CAAA,IAAgB,CAChC,KAAM,CAACwvC,EAAeC,CAAgB,EAAIjwC,EAAS,SAAA8vC,GAAgB,CAAC,CAAC,EAErE75C,mBAAU,IAAM,CACd,MAAMz1D,EAASwvG,EAAgB,CAAE,cAAeA,EAAc,KAAU,OAExExvC,EAAU,CAAE,MAAOwvC,EAAe,QAAS,GAAO,OAAAxvG,EAAQ,GACzD,CAACwvG,CAAa,CAAC,KAGf,MAAI,WAAW/1G,GAAW,CAAC,kCAAkC,CAAC,EAC7D,UAAC4nD,EAAA,SAAM,QAAQ,sBAAsB,SAAO,YAC5CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAO0vC,EACP,QAASF,GACT,SAAUG,EACV,kBAAuB13G,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,ECjCM23G,GAAiB,CACrB,CAAE,MAAO,MAAO,MAAO,KAAM,EAC7B,CAAE,MAAO,aAAc,MAAO,YAAa,CAC7C,EAEAC,IAAe,CAAC,CAAE,UAAA3vC,CAAA,IAAgB,CAChC,KAAM,CAAC4vC,EAAeC,CAAgB,EAAIrwC,EAAS,SAAAkwC,GAAe,CAAC,CAAC,EAEpEj6C,mBAAU,IAAM,CACd,MAAMz1D,EAAS4vG,EAAgB,CAAE,cAAeA,EAAc,KAAU,OACxE5vC,EAAU,CAAE,MAAO4vC,EAAe,QAAS,GAAO,OAAA5vG,EAAQ,GACzD,CAAC4vG,CAAa,CAAC,KAGf,MAAI,WAAWn2G,GAAW,CAAC,kCAAkC,CAAC,EAC7D,UAAC4nD,EAAA,SAAM,QAAQ,sBAAsB,SAAQ,aAC7CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAO8vC,EACP,QAASF,GACT,SAAUG,EACV,kBAAuB93G,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EC3BM+3G,GAAgB,CACpB,CAAE,MAAO,yBAA0B,MAAO,CAAE,EAC5C,CAAE,MAAO,yBAA0B,MAAO,CAAE,EAC5C,CAAE,MAAO,oBAAqB,MAAO,CAAE,CACzC,EAEAC,IAAe,CAAC,CAAE,UAAA/vC,EAAW,QAAA95F,KAAc,CACzC,MAAM2mH,EAAiB,SAAS3mH,EAAQ,cAAc,GAAK,EACrD,CAAC8pI,EAAgBC,CAAiB,EAAIzwC,EAAS,SAAAswC,GAAcjjB,CAAc,CAAC,EAElFp3B,mBAAU,IAAM,CACd,MAAMz1D,EAASgwG,EAAiB,CAAE,eAAgBA,EAAe,KAAU,OAC3EhwC,EAAU,CAAE,MAAOgwC,EAAgB,QAAS,GAAO,OAAAhwG,EAAQ,GAC1D,CAACgwG,CAAc,CAAC,KAGhB,MAAI,WAAWv2G,GAAW,CAAC,mCAAmC,CAAC,EAC9D,UAAC4nD,EAAA,SAAM,QAAQ,uBAAuB,SAAS,cAC/CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOkwC,EACP,QAASF,GACT,SAAUG,EACV,kBAAuBl4G,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EC7BM82G,GAAgB,CACpB,CAAE,MAAO,gBAAiB,MAAO,KAAM,EACvC,CAAE,MAAO,6BAA8B,MAAO,SAAU,CAC1D,EAEAqB,IAAe,CAAC,CAAE,UAAAlwC,CAAA,IAAgB,CAChC,KAAM,CAACgvC,EAAcC,CAAe,EAAIzvC,EAAS,SAAAqvC,GAAc,CAAC,CAAC,EAE3DpvC,EAAU,GAEhBhK,mBAAU,IAAM,CACd,MAAMz1D,EAASgvG,EAAe,CAAE,aAAcA,EAAa,KAAU,OACrEhvC,EAAU,CAAE,MAAOgvC,EAAc,QAAAvvC,EAAS,OAAAz/D,CAAQ,IACjD,CAACgvG,CAAY,CAAC,KAGd,MAAI,WAAWv1G,GAAW,CAAC,oCAAoC,CAAC,EAC/D,UAAC4nD,EAAA,SAAM,QAAQ,wBAAwB,SAAK,UAC5CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOkvC,EACP,QAASH,GACT,SAAUI,EACV,UAAWxvC,EACX,WAAYA,EACZ,kBAAuB1nE,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EC/BM82G,GAAgB,CACpB,CAAE,MAAO,gBAAiB,MAAO,KAAM,EACvC,CAAE,MAAO,6BAA8B,MAAO,SAAU,CAC1D,EAEAsB,IAAe,CAAC,CAAE,UAAAnwC,CAAA,IAAgB,CAChC,KAAM,CAACgvC,EAAcC,CAAe,EAAIzvC,EAAS,SAAAqvC,GAAc,CAAC,CAAC,EAE3DpvC,EAAU,GAEhBhK,mBAAU,IAAM,CACd,MAAMz1D,EAASgvG,EAAe,CAAE,aAAcA,EAAa,KAAU,OACrEhvC,EAAU,CAAE,MAAOgvC,EAAc,QAAAvvC,EAAS,OAAAz/D,CAAQ,IACjD,CAACgvG,CAAY,CAAC,KAGd,MAAI,WAAWv1G,GAAW,CAAC,oCAAoC,CAAC,EAC/D,UAAC4nD,EAAA,SAAM,QAAQ,wBAAwB,SAAU,eACjDA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOkvC,EACP,QAASH,GACT,SAAUI,EACV,UAAWxvC,EACX,WAAYA,EACZ,kBAAuB1nE,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,EC9BM22D,IAAUz+D,GAEXqwE,GAAApS,GAAW,OAAX,CAAmB,GAAGj+D,EACrB,UAAAoxD,EAAC,SACC,KAAK,WACL,QAASpxD,EAAM,WACf,SAAU,IAAM,KAClB,EAAG,IACFA,EAAM,KACT,IAIEm7D,IAAiB,CAAC,CAAE,SAAA3sB,EAAU,GAAGxuC,KAAY,CAC7C,IAAC/vB,EAAQsE,CAAK,EAAIi6D,EAElB,aAAM,QAAQv+D,CAAM,IAClBA,EAAO,OAAS,EACTA,EAAA,GAAGA,EAAO,MAAM,aAEhBA,IAAO,CAAC,EAAE,MAAM,SACrBA,EAAO,QAAU,KAAIA,EAASA,EAAO,UAAU,EAAG,EAAE,EAAI,SAK7DogG,GAAApS,GAAW,eAAX,CAA2B,GAAGj+D,EAC5B,UAAA/vB,EACAsE,CACH,GAEJ,EAEe4rI,GAACngH,GAAU,CAClB,MAAAy5C,EAAM6qB,SAAO,IAAI,EAGrB,OAAAlT,EAACoY,GAAA,CACE,GAAGxpE,EACJ,QAAO,GACP,kBAAmB,GACnB,oBAAqB,GACrB,WAAY,QAAEy+D,IAAA,eAAQtD,GAAe,EACrC,eAAgB,GAChB,IAAA1hB,EACA,YAAY,OAGlB,ECjDe2mE,IAAA,CAAC,CAAE,KAAAx8H,EAAM,QAAA3N,EAAS,UAAA85F,KAAgB,CAC/C,KAAM,CAAE,KAAAqe,EAAM,aAAAiyB,EAAc,QAAAC,GAAYC,IAAqB,EAE7D/6C,mBAAU,IAAM,CACR,MAAAz1D,EAASswG,EAAe,CAAE,KAAMA,EAAa,IAAIz6B,GAAOA,EAAI,EAAE,CAAE,EAAI,GAC1E7V,EAAU,CAAE,MAAOswC,EAAc,OAAAtwG,CAAQ,IACxC,CAACswG,CAAY,CAAC,KAGd,MAAI,WAAW72G,GAAW,CAAC,0BAA0B,CAAC,EACrD,UAAC4nD,EAAA,SAAM,QAAQ,cAAc,SAAK,UAClCA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAAC+uD,GAAA,CACC,MAAOE,EACP,UAAW,GACX,WAAY,GACZ,QAASjyB,EACT,SAAUkyB,EACV,kBAAuBx4G,EAAI,kBAC3B,kBAAuBA,EAAI,KAE/B,CACF,GAEJ,EAEay4G,IAAU,CAAC38H,EAAM3N,IAAY,CAExC,MAAMm4G,EADW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3C,IAAI,CAACxI,EAAK/rG,KACvB,CAAE,IAAKA,EAAM,GAAG,EAAG,kBAAmB+rG,GAC9C,EACK,CAACy6B,EAAcC,CAAO,EAAI/wC,EAAA,SAAS,CAAE,GAEpC,OACL,KAAA6e,EACA,aAAAiyB,EACA,QAAAC,CAAA,CAEJ,ECrCeE,IAAA,CAAC,CAAE,KAAA58H,EAAM,QAAA3N,EAAS,UAAA85F,EAAW,gBAAAe,KAAsB,CAC1D,MAAE,WAAAC,EAAY,mBAAA0vC,EAAoB,cAAAC,EAAe,SAAA/wH,EAAU,QAAA6/E,CAAY,EAAA0B,IAActtF,EAAM3N,EAAS66F,CAAe,EAEzHtL,mBAAU,IAAM,CACR,MAAAz1D,EAAS0wG,EAAqB,CAAE,iBAAkBA,EAAmB,IAAIzvC,GAAYA,EAAS,EAAE,CAAE,EAAI,GAC5GjB,EAAU,CAAE,MAAO0wC,EAAoB,QAAAjxC,EAAS,OAAAz/D,CAAQ,IACvD,CAAC0wG,EAAoBjxC,CAAO,CAAC,KAG7B,MAAI,WAAWhmE,GAAW,CAAC,gCAAgC,CAAC,EAC3D,UAAC4nD,EAAA,SAAM,QAAQ,oBAAoB,SAAS,cAC5CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAAC+uD,GAAA,CACC,MAAOM,EACP,UAAWjxC,EACX,WAAYA,GAAW7/E,EACvB,QAASohF,EACT,SAAU2vC,EACV,kBAAuB,GAAG54G,EAAI,iBAAiB,GAAGA,EAAI,YAAc,aAAe,EAAE,GACrF,kBAAuBA,EAAI,KAE/B,CACF,GAEJ,EAEaopE,IAAgB,CAACttF,EAAM3N,EAAS66F,IAAoB,CAC/D,MAAMxpB,EAAUwpB,EAAgB,QAC1BR,EAAY,gCAAgC1sF,EAAK,0BAA0B,GAC3ExW,EAAMk6E,EAAU,qBAAqBA,CAAO,oBAAoBgpB,CAAS,GAAK,KAC9E,CAACc,EAAkBC,CAAmB,EAAI9B,WAAS,IAAI,EACvD,CAACkxC,EAAoBC,CAAa,EAAInxC,EAAA,SAAS,CAAE,GACjD,CAAE,QAAAC,EAAS,OAAAj/F,EAAQ,MAAA8B,CAAM,EAAI+8F,GAAShiG,CAAG,EAEzCuiB,EAAW/L,EAAK,MAAQ,eAAkB0jE,GAAW,IAAI,WAAY,WAAW,aAAa,EAG7FmpB,EAAYvO,UAAQ,IAAM5a,IAAY8pB,EAAkB,CAAC9pB,EAAS8pB,CAAgB,CAAC,EAGnFL,EAAa7O,UAAQ,IACrBsN,GAAWn9F,EAAc,GACtB9B,EAAO,WACb,CAACi/F,EAAS5rF,EAAM6sF,CAAS,CAAC,EAG7BjL,mBAAU,IAAM,CACV,CAACgK,GAAW,CAACn9F,GAAS,CAACo+F,IACtBx6F,EAAQ,iBACKyqI,EAAA3vC,EAAW,OAAmBC,GAAA/6F,EAAQ,iBAAiB,SAAS+6F,EAAS,EAAE,CAAC,CAAC,EAE3F0vC,EAAc,CAAE,GAElBrvC,EAAoB/pB,CAAO,EAC7B,EACC,CAACkoB,EAASiB,CAAS,CAAC,EAEhB,CACL,WAAAM,EACA,mBAAA0vC,EACA,cAAAC,EACA,MAAAruI,EACA,SAAAsd,EACA,QAAS,CAAC8gF,CAAA,CAEd,EClEMkwC,GAAc,CAClB,CAAE,MAAO,cAAe,MAAO,WAAY,EAC3C,CAAE,MAAO,cAAe,MAAO,aAAc,CAC/C,EAEAC,IAAe,CAAC,CAAE,UAAA7wC,CAAA,IAAgB,CAChC,KAAM,CAAC8wC,EAAYC,CAAa,EAAIvxC,EAAS,SAAAoxC,GAAY,CAAC,CAAC,EAE3Dn7C,mBAAU,IAAM,CACd,MAAMz1D,EAAS8wG,EAAa,CAAE,WAAYA,EAAW,KAAU,OAC/D9wC,EAAU,CAAE,MAAO8wC,EAAY,QAAS,GAAO,OAAA9wG,EAAQ,GACtD,CAAC8wG,CAAU,CAAC,KAGZ,MAAI,WAAWr3G,GAAW,CAAC,kCAAkC,CAAC,EAC7D,UAAC4nD,EAAA,SAAM,QAAQ,sBAAsB,SAAK,UAC1CA,EAAC,MAAI,WAAU,mCACb,SAAAA,EAACye,GAAA,CACC,MAAOgxC,EACP,QAASF,GACT,SAAUG,EACV,kBAAuBh5G,EAAI,MAC3B,kBAAuBA,EAAI,QAE/B,CACF,GAEJ,ECfai5G,IAAU,CACrB,CAAE,IAAK,SAAU,UAAWC,GAAO,EACnC,CAAE,IAAK,aAAc,UAAWC,GAAW,EAC3C,CAAE,IAAK,mBAAoB,UAAWT,GAAgB,EACtD,CAAE,IAAK,eAAgB,UAAWU,GAAY,EAC9C,CAAE,IAAK,qBAAsB,UAAWzG,GAAkB,EAC1D,CAAE,IAAK,OAAQ,UAAW0G,GAAK,EAC/B,CAAE,IAAK,oBAAqB,UAAWrB,GAAiB,EACxD,CAAE,IAAK,eAAgB,UAAWrB,GAAa,EAC/C,CAAE,IAAK,iBAAkB,UAAWI,GAAc,EAClD,CAAE,IAAK,eAAgB,UAAWuC,GAAY,EAC9C,CAAE,IAAK,mBAAoB,UAAW9B,GAAgB,EACtD,CAAE,IAAK,iBAAkB,UAAWI,GAAc,EAClD,CAAE,IAAK,OAAQ,UAAW3V,GAAK,EAC/B,CAAE,IAAK,WAAY,UAAWmW,GAAS,EACvC,CAAE,IAAK,eAAgB,UAAWU,GAAY,CAChD,EC7BA,SAASS,IAAWz9H,EAAM09H,EAAe,CACvC,IAAIC,EAAa,GAEjB,QAASptH,KAAUmtH,EACNC,EAAAptH,EAAO,GAAG,EAAI,CAAE,MAAO,KAAM,QAAS,GAAM,OAAQ,MAG1D,OAAAotH,CACT,CAEa,MAAAC,IAAsB59H,GAAS,CAC1C,MAAM69H,GAAW79H,GAAQ,IAAI,SAAW,GAClC09H,EAAgBp/C,EAAA,QAAQ,IAAM6+C,IAAQ,OAAiB5sH,GAAAstH,EAAQ,SAASttH,EAAO,GAAG,CAAC,EAAG,CAACvQ,CAAI,CAAC,EAC5F,CAACktF,EAAiB4wC,CAAkB,EAAInyC,WAAS8xC,IAAWz9H,EAAM09H,CAAa,CAAC,EAE7E,SAAAK,EAAaz1I,EAAMU,EAAO,CACd80I,EAAA5wC,IAAoB,CAAE,GAAGA,EAAiB,CAAC5kG,CAAI,EAAGU,CAAQ,GAC/E,CAEA,MAAM6a,EAAMqpF,EAAkB,OAAO,OAAOA,CAAe,EAAI,GACzDtB,EAAUsB,EAAkBrpF,EAAI,KAAU9R,KAAE,OAAO,EAAI,GAE7D,IAAIisI,EAAe,GAEnB,GAAI9wC,EACF,QAASpsF,KAAK,OAAO,OAAOosF,CAAe,EACzC8wC,EAAe,OAAO,OAAO,GAAIA,EAAcl9H,EAAE,MAAM,EAI3D,MAAO,CAACi9H,EAAcL,EAAe9xC,EAASoyC,EAAc9wC,CAAe,CAC7E,sBChCA,MAAMt2C,GAAW5tD,GAAS,OAAOA,GAAU,UAAYA,IAAU,KAC3Di1I,GAAgB,OAAO,MAAM,EAG7BC,GAAiBl1I,GACtB4tD,GAAS5tD,CAAK,GACd,EAAEA,aAAiB,SACnB,EAAEA,aAAiB,QACnB,EAAEA,aAAiB,MAEdm1I,GAAY,CAACxqH,EAAQyqH,EAAQ/rI,EAASgsI,EAAS,IAAI,UAAc,CAOtE,GANAhsI,EAAU,CACT,KAAM,GACN,OAAQ,CAAE,EACV,GAAGA,CACL,EAEKgsI,EAAO,IAAI1qH,CAAM,EACpB,OAAO0qH,EAAO,IAAI1qH,CAAM,EAGzB0qH,EAAO,IAAI1qH,EAAQthB,EAAQ,MAAM,EAEjC,KAAM,CAAC,OAAA5J,CAAM,EAAI4J,EACjB,OAAOA,EAAQ,OAEf,MAAMisI,EAAWr6H,GAASA,EAAM,IAAIvb,GAAWw1I,GAAex1I,CAAO,EAAIy1I,GAAUz1I,EAAS01I,EAAQ/rI,EAASgsI,CAAM,EAAI31I,CAAO,EAC9H,GAAI,MAAM,QAAQirB,CAAM,EACvB,OAAO2qH,EAAS3qH,CAAM,EAGvB,SAAW,CAAChZ,EAAK3R,CAAK,IAAK,OAAO,QAAQ2qB,CAAM,EAAG,CAClD,MAAM4qH,EAAYH,EAAOzjI,EAAK3R,EAAO2qB,CAAM,EAE3C,GAAI4qH,IAAcN,GACjB,SAGD,GAAI,CAACO,EAAQ34C,EAAU,CAAC,cAAA44C,EAAgB,EAAI,EAAI,EAAE,EAAIF,EAGlDC,IAAW,cAIXnsI,EAAQ,MAAQosI,GAAiBP,GAAer4C,CAAQ,IAC3DA,EAAW,MAAM,QAAQA,CAAQ,EAChCy4C,EAASz4C,CAAQ,EACjBs4C,GAAUt4C,EAAUu4C,EAAQ/rI,EAASgsI,CAAM,GAG7C51I,EAAO+1I,CAAM,EAAI34C,EACjB,CAED,OAAOp9F,CACR,EAEAi2I,GAAA,QAAiB,CAAC/qH,EAAQyqH,EAAQ/rI,IAAY,CAC7C,GAAI,CAACukD,GAASjjC,CAAM,EACnB,MAAM,IAAI,UAAU,6BAA6BA,CAAM,OAAO,OAAOA,CAAM,GAAG,EAG/E,OAAOwqH,GAAUxqH,EAAQyqH,EAAQ/rI,CAAO,CACzC,EAEAqsI,GAAA,sBAA+BT,sBC9D/BU,IAAiBC,IAMbC,IAAW,KACXC,IAAe,aACfC,IAAW,0BAUf,SAASH,IAAShyI,EAAQ,CACxB,OAAIiyI,IAAS,KAAKjyI,CAAM,EAAUA,EAAO,YAAa,EAClDkyI,IAAa,KAAKlyI,CAAM,GAAWoyI,IAAWpyI,CAAM,GAAKA,GAAQ,YAAa,EAC9EmyI,IAAS,KAAKnyI,CAAM,EAAUqyI,IAAWryI,CAAM,EAAE,YAAa,EAC3DA,EAAO,YAAa,CAC7B,CAMA,IAAIsyI,IAAoB,eASxB,SAASF,IAAWpyI,EAAQ,CAC1B,OAAOA,EAAO,QAAQsyI,IAAmB,SAAUt+H,EAAGgC,EAAM,CAC1D,OAAOA,EAAO,IAAMA,EAAO,EAC/B,CAAG,CACH,CAMA,IAAIu8H,IAAgB,eASpB,SAASF,IAAWryI,EAAQ,CAC1B,OAAOA,EAAO,QAAQuyI,IAAe,SAAUv+H,EAAG8lE,EAAU04D,EAAQ,CAClE,OAAO14D,EAAW,IAAM04D,EAAO,YAAW,EAAG,MAAM,EAAE,EAAE,KAAK,GAAG,CACnE,CAAG,CACH,CCjEA,IAAIC,IAAQjuG,IAMZkuG,IAAiBC,IASjB,SAASA,IAAY3yI,EAAQ,CAC3B,OAAOyyI,IAAMzyI,CAAM,EAAE,QAAQ,eAAgB,SAAU0Z,EAAS9Z,EAAO,CACrE,OAAOA,EAAQ,IAAMA,EAAQ,EAC9B,GAAE,KAAM,CACX,CCnBA,IAAIgzI,IAAUpuG,IAMdquG,IAAiBC,IASjB,SAASA,IAAY9yI,EAAQ,CAC3B,OAAO4yI,IAAQ5yI,CAAM,EAAE,QAAQ,MAAO,GAAG,CAC3C,CChBA,MAAM0jB,IAAM8gB,IACNuuG,IAAY/qG,IAElB,IAAAgrG,IAAiB,SAAUr+H,EAAKlP,EAAS,CACvC,OAAAA,EAAU,OAAO,OAAO,CAAE,KAAM,GAAM,QAAS,EAAI,EAAEA,CAAO,EAErDie,IAAI/O,EAAK,SAAU5G,EAAKoK,EAAK,CAClC,MAAO,CACLuB,IAAQjU,EAAQ,QAASsI,CAAG,EAAIA,EAAMglI,IAAUhlI,CAAG,EACnDoK,CACD,CACF,EAAE1S,CAAO,CACZ,EAEA,SAASiU,IAASu5H,EAAU72I,EAAO,CACjC,OAAO62I,EAAS,KAAK,SAAUtyH,EAAS,CACtC,OAAO,OAAOA,GAAY,SACtBA,IAAYvkB,EACZukB,EAAQ,KAAKvkB,CAAK,CAC1B,CAAG,CACH,mBCpBa82I,GAAkBvvH,GACtB,OACJ,QAAQwvH,IAAcxvH,CAAM,CAAC,EAC7B,OAAO,CAAC,CAACsG,EAAM9R,CAAG,IAA4BA,GAAQ,IAAK,EAC3D,IAAI,CAAC,CAACpK,EAAKoK,CAAG,IACT,MAAM,QAAQA,CAAG,EACZA,EAAI,IAAKA,GAAQ,GAAGpK,CAAG,MAAMoK,CAAG,EAAE,EAAE,KAAK,GAAG,EAE5C,GAAGpK,CAAG,IAAIoK,CAAG,EAEvB,EAAE,KAAK,GAAG,EAGFi7H,IAAe,CAAChgI,EAAMuQ,EAAQ0vH,IAAS,CAC5C,MAAArG,EAAckG,GAAevvH,CAAM,EAEzC,MAAO,kBAAkBvQ,EAAK,GAAG,SAAS45H,CAAW,SAASqG,CAAI,EACpE,EAEaC,IAAY12I,GAChB,MAAMA,CAAG,EAAE,KAAYqrG,KAAI,MAAM,ECf3BsrC,IAAA,CAAC,CAAE,KAAAngI,EAAM,QAAA3N,EAAS,OAAA5J,EAAQ,UAAA23I,KAAgB,CACjD,MACJrC,EACAL,EACA9xC,EACAoyC,EACA7D,CAAA,EACEyD,IAAmB59H,CAAI,EACrB45H,EAAckG,GAAe9B,CAAY,EAE/Cp8C,mBAAU,IAAM,CAAOgK,GAASw0C,EAAUpC,CAAY,GAAK,CAACpyC,EAASguC,CAAW,CAAC,KAG9E,MAAI,WAAW,2BAA2B55H,EAAK,GAAG,GAChD,UAAc09H,EAAA,IAAI,CAAC,CAAE,IAAA/iI,EAAK,KAAArS,EAAM,UAAAg4D,CAC/B,IAAAktB,EAACltB,EAAA,CAEC,KAAAtgD,EACA,QAAA3N,EACA,OAAA5J,EACA,gBAAiBu1I,EACjB,YAAA7D,EACA,UAAYnxI,GAAU+0I,EAAapjI,EAAK3R,CAAK,GANxC2R,CAOP,CACF,EACA6yE,EAAC,MAAI,WAAU,UAAU,EAC3B,GAEJ,ECnCe,SAAS6yD,IAAkB,CACxC,OAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAAE,OAAO,SAAUC,EAAW95H,EAAK,CAC5E,OAAO85H,EAAU,OAAO95H,CAAG,CAC5B,EAAE,EAAE,EAAE,OAAO,SAAUA,EAAK,CAC3B,OAAO,OAAOA,GAAQ,QAC1B,CAAG,EAAE,KAAK,GAAG,CACb,CCIA,IAAI+5H,IAAkB,sBAGlBC,GAAiB,4BAGjBC,IAAU,oBACVC,IAAS,6BAMTC,IAAe,sBAGfC,IAAe,8BAGfC,IAAa,OAAOt9H,IAAU,UAAYA,IAAUA,GAAO,SAAW,QAAUA,GAGhFu9H,IAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEzqI,GAAOwqI,KAAcC,KAAY,SAAS,aAAa,EAAC,EAU5D,SAAS/4C,IAASp0E,EAAQhZ,EAAK,CAC7B,OAAOgZ,GAAU,KAAO,OAAYA,EAAOhZ,CAAG,CAChD,CASA,SAASomI,IAAa/3I,EAAO,CAG3B,IAAI2D,EAAS,GACb,GAAI3D,GAAS,MAAQ,OAAOA,EAAM,UAAY,WAC5C,GAAI,CACF2D,EAAS,CAAC,EAAE3D,EAAQ,GAC1B,MAAgB,CAAE,CAEhB,OAAO2D,CACT,CAGA,IAAIq0I,IAAa,MAAM,UACnBC,IAAY,SAAS,UACrBC,GAAc,OAAO,UAGrBC,GAAa9qI,GAAK,oBAAoB,EAGtC+qI,GAAc,UAAW,CAC3B,IAAIxmF,EAAM,SAAS,KAAKumF,IAAcA,GAAW,MAAQA,GAAW,KAAK,UAAY,EAAE,EACvF,OAAOvmF,EAAO,iBAAmBA,EAAO,EAC1C,EAAC,EAGGymF,GAAeJ,IAAU,SAGzBlvG,GAAiBmvG,GAAY,eAO7BI,IAAiBJ,GAAY,SAG7BK,IAAa,OAAO,IACtBF,GAAa,KAAKtvG,EAAc,EAAE,QAAQ4uG,IAAc,MAAM,EAC7D,QAAQ,yDAA0D,OAAO,EAAI,GAChF,EAGIa,IAASR,IAAW,OAGpBS,IAAMC,GAAUrrI,GAAM,KAAK,EAC3BsrI,GAAeD,GAAU,OAAQ,QAAQ,EAS7C,SAASE,GAAK9yI,EAAS,CACrB,IAAImH,EAAQ,GACRiJ,EAASpQ,EAAUA,EAAQ,OAAS,EAGxC,IADA,KAAK,MAAK,EACH,EAAEmH,EAAQiJ,GAAQ,CACvB,IAAI2iI,EAAQ/yI,EAAQmH,CAAK,EACzB,KAAK,IAAI4rI,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC5B,CACH,CASA,SAASC,KAAY,CACnB,KAAK,SAAWH,GAAeA,GAAa,IAAI,EAAI,EACtD,CAYA,SAASI,IAAWpnI,EAAK,CACvB,OAAO,KAAK,IAAIA,CAAG,GAAK,OAAO,KAAK,SAASA,CAAG,CAClD,CAWA,SAASqnI,IAAQrnI,EAAK,CACpB,IAAI4c,EAAO,KAAK,SAChB,GAAIoqH,GAAc,CAChB,IAAIh1I,EAAS4qB,EAAK5c,CAAG,EACrB,OAAOhO,IAAW6zI,GAAiB,OAAY7zI,CAChD,CACD,OAAOolC,GAAe,KAAKxa,EAAM5c,CAAG,EAAI4c,EAAK5c,CAAG,EAAI,MACtD,CAWA,SAASsnI,IAAQtnI,EAAK,CACpB,IAAI4c,EAAO,KAAK,SAChB,OAAOoqH,GAAepqH,EAAK5c,CAAG,IAAM,OAAYo3B,GAAe,KAAKxa,EAAM5c,CAAG,CAC/E,CAYA,SAASunI,IAAQvnI,EAAK3R,EAAO,CAC3B,IAAIuuB,EAAO,KAAK,SAChB,OAAAA,EAAK5c,CAAG,EAAKgnI,IAAgB34I,IAAU,OAAaw3I,GAAiBx3I,EAC9D,IACT,CAGA44I,GAAK,UAAU,MAAQE,IACvBF,GAAK,UAAU,OAAYG,IAC3BH,GAAK,UAAU,IAAMI,IACrBJ,GAAK,UAAU,IAAMK,IACrBL,GAAK,UAAU,IAAMM,IASrB,SAASC,GAAUrzI,EAAS,CAC1B,IAAImH,EAAQ,GACRiJ,EAASpQ,EAAUA,EAAQ,OAAS,EAGxC,IADA,KAAK,MAAK,EACH,EAAEmH,EAAQiJ,GAAQ,CACvB,IAAI2iI,EAAQ/yI,EAAQmH,CAAK,EACzB,KAAK,IAAI4rI,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC5B,CACH,CASA,SAASO,KAAiB,CACxB,KAAK,SAAW,EAClB,CAWA,SAASC,IAAgB1nI,EAAK,CAC5B,IAAI4c,EAAO,KAAK,SACZthB,EAAQqsI,GAAa/qH,EAAM5c,CAAG,EAElC,GAAI1E,EAAQ,EACV,MAAO,GAET,IAAI0xF,EAAYpwE,EAAK,OAAS,EAC9B,OAAIthB,GAAS0xF,EACXpwE,EAAK,IAAG,EAERiqH,IAAO,KAAKjqH,EAAMthB,EAAO,CAAC,EAErB,EACT,CAWA,SAASssI,IAAa5nI,EAAK,CACzB,IAAI4c,EAAO,KAAK,SACZthB,EAAQqsI,GAAa/qH,EAAM5c,CAAG,EAElC,OAAO1E,EAAQ,EAAI,OAAYshB,EAAKthB,CAAK,EAAE,CAAC,CAC9C,CAWA,SAASusI,IAAa7nI,EAAK,CACzB,OAAO2nI,GAAa,KAAK,SAAU3nI,CAAG,EAAI,EAC5C,CAYA,SAAS8nI,IAAa9nI,EAAK3R,EAAO,CAChC,IAAIuuB,EAAO,KAAK,SACZthB,EAAQqsI,GAAa/qH,EAAM5c,CAAG,EAElC,OAAI1E,EAAQ,EACVshB,EAAK,KAAK,CAAC5c,EAAK3R,CAAK,CAAC,EAEtBuuB,EAAKthB,CAAK,EAAE,CAAC,EAAIjN,EAEZ,IACT,CAGAm5I,GAAU,UAAU,MAAQC,IAC5BD,GAAU,UAAU,OAAYE,IAChCF,GAAU,UAAU,IAAMI,IAC1BJ,GAAU,UAAU,IAAMK,IAC1BL,GAAU,UAAU,IAAMM,IAS1B,SAASC,GAAS5zI,EAAS,CACzB,IAAImH,EAAQ,GACRiJ,EAASpQ,EAAUA,EAAQ,OAAS,EAGxC,IADA,KAAK,MAAK,EACH,EAAEmH,EAAQiJ,GAAQ,CACvB,IAAI2iI,EAAQ/yI,EAAQmH,CAAK,EACzB,KAAK,IAAI4rI,EAAM,CAAC,EAAGA,EAAM,CAAC,CAAC,CAC5B,CACH,CASA,SAASc,KAAgB,CACvB,KAAK,SAAW,CACd,KAAQ,IAAIf,GACZ,IAAO,IAAKH,KAAOU,IACnB,OAAU,IAAIP,EAClB,CACA,CAWA,SAASgB,IAAejoI,EAAK,CAC3B,OAAOkoI,GAAW,KAAMloI,CAAG,EAAE,OAAUA,CAAG,CAC5C,CAWA,SAASmoI,IAAYnoI,EAAK,CACxB,OAAOkoI,GAAW,KAAMloI,CAAG,EAAE,IAAIA,CAAG,CACtC,CAWA,SAASooI,IAAYpoI,EAAK,CACxB,OAAOkoI,GAAW,KAAMloI,CAAG,EAAE,IAAIA,CAAG,CACtC,CAYA,SAASqoI,IAAYroI,EAAK3R,EAAO,CAC/B,OAAA65I,GAAW,KAAMloI,CAAG,EAAE,IAAIA,EAAK3R,CAAK,EAC7B,IACT,CAGA05I,GAAS,UAAU,MAAQC,IAC3BD,GAAS,UAAU,OAAYE,IAC/BF,GAAS,UAAU,IAAMI,IACzBJ,GAAS,UAAU,IAAMK,IACzBL,GAAS,UAAU,IAAMM,IAUzB,SAASV,GAAar+H,EAAOtJ,EAAK,CAEhC,QADIuE,EAAS+E,EAAM,OACZ/E,KACL,GAAI+jI,IAAGh/H,EAAM/E,CAAM,EAAE,CAAC,EAAGvE,CAAG,EAC1B,OAAOuE,EAGX,MAAO,EACT,CAUA,SAASgkI,IAAal6I,EAAO,CAC3B,GAAI,CAAC4tD,GAAS5tD,CAAK,GAAKm6I,IAASn6I,CAAK,EACpC,MAAO,GAET,IAAIukB,EAAW9I,IAAWzb,CAAK,GAAK+3I,IAAa/3I,CAAK,EAAKu4I,IAAaX,IACxE,OAAOrzH,EAAQ,KAAK61H,IAASp6I,CAAK,CAAC,CACrC,CAUA,SAAS65I,GAAWvyH,EAAK3V,EAAK,CAC5B,IAAI4c,EAAOjH,EAAI,SACf,OAAO+yH,IAAU1oI,CAAG,EAChB4c,EAAK,OAAO5c,GAAO,SAAW,SAAW,MAAM,EAC/C4c,EAAK,GACX,CAUA,SAASmqH,GAAU/tH,EAAQhZ,EAAK,CAC9B,IAAI3R,EAAQ++F,IAASp0E,EAAQhZ,CAAG,EAChC,OAAOuoI,IAAal6I,CAAK,EAAIA,EAAQ,MACvC,CASA,SAASq6I,IAAUr6I,EAAO,CACxB,IAAI+J,EAAO,OAAO/J,EAClB,OAAQ+J,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UAAYA,GAAQ,UACvE/J,IAAU,YACVA,IAAU,IACjB,CASA,SAASm6I,IAASzuH,EAAM,CACtB,MAAO,CAAC,CAAC0sH,IAAeA,MAAc1sH,CACxC,CASA,SAAS0uH,IAAS1uH,EAAM,CACtB,GAAIA,GAAQ,KAAM,CAChB,GAAI,CACF,OAAO2sH,GAAa,KAAK3sH,CAAI,CACnC,MAAgB,CAAE,CACd,GAAI,CACF,OAAQA,EAAO,EACrB,MAAgB,CAAE,CACf,CACD,MAAO,EACT,CA8CA,SAAS+yD,GAAQ/yD,EAAM4uH,EAAU,CAC/B,GAAI,OAAO5uH,GAAQ,YAAe4uH,GAAY,OAAOA,GAAY,WAC/D,MAAM,IAAI,UAAU/C,GAAe,EAErC,IAAI3jD,EAAW,UAAW,CACxB,IAAInuE,EAAO,UACP9T,EAAM2oI,EAAWA,EAAS,MAAM,KAAM70H,CAAI,EAAIA,EAAK,CAAC,EACpDpS,EAAQugF,EAAS,MAErB,GAAIvgF,EAAM,IAAI1B,CAAG,EACf,OAAO0B,EAAM,IAAI1B,CAAG,EAEtB,IAAIhO,EAAS+nB,EAAK,MAAM,KAAMjG,CAAI,EAClC,OAAAmuE,EAAS,MAAQvgF,EAAM,IAAI1B,EAAKhO,CAAM,EAC/BA,CACX,EACE,OAAAiwF,EAAS,MAAQ,IAAKnV,GAAQ,OAASi7D,IAChC9lD,CACT,CAGAnV,GAAQ,MAAQi7D,GAkChB,SAASO,IAAGj6I,EAAOwgH,EAAO,CACxB,OAAOxgH,IAAUwgH,GAAUxgH,IAAUA,GAASwgH,IAAUA,CAC1D,CAmBA,SAAS/kG,IAAWzb,EAAO,CAGzB,IAAIujB,EAAMqqC,GAAS5tD,CAAK,EAAIs4I,IAAe,KAAKt4I,CAAK,EAAI,GACzD,OAAOujB,GAAOk0H,KAAWl0H,GAAOm0H,GAClC,CA2BA,SAAS9pF,GAAS5tD,EAAO,CACvB,IAAI+J,EAAO,OAAO/J,EAClB,MAAO,CAAC,CAACA,IAAU+J,GAAQ,UAAYA,GAAQ,WACjD,CAEA,IAAAwwI,IAAiB97D,oBCjqBjB,SAAS67D,GAASjxI,EAAS,CACzB,OAAO,KAAK,UAAUA,CAAO,CAC/B,CAEA,SAASmxI,IAAY3/H,EAAK,CACxB,OAAOA,EAAI,OAAO,SAAUwH,EAAIpV,EAAO,CACrC,OAAOoV,GAAMxH,EAAI,QAAQwH,CAAE,IAAMpV,CACrC,CAAG,CACH,CAEA,SAASwtI,IAAiB5/H,EAAK,CAC7B,OAAOA,EAAI,IAAI,SAAUwH,EAAI,CAC3B,GAAI,CAACA,GAAMA,EAAG,QAAQ,GAAG,IAAM,IAAMA,EAAG,YAAa,IAAKA,EACxD,OAAOA,EAGT,IAAIq4H,EAAUr4H,EAAG,MAAM,GAAG,EAC1B,OAAOq4H,EAAQ,CAAC,EAAI,IAAMA,EAAQ,CAAC,EAAE,aACzC,CAAG,CACH,CAEA,SAASC,IAAuBzxE,EAAO,CACrC,IAAItP,EAAOsP,IAAU,OAAS,CAAE,EAAGA,EAC/B0xE,EAAwBhhF,EAAK,kBAC7BihF,EAAoBD,IAA0B,OAAS,GAAOA,EAC9DE,EAAsBlhF,EAAK,eAC3BmhF,EAAiBD,IAAwB,OAAS,QAAUA,EAE5DE,EAAe,GAEnB,GAAI,OAAO,OAAW,IAAa,CACjC,IAAIC,EAAU,OACVC,EAAYD,EAAQ,UACxBD,EAAeA,EAAa,OAAOE,EAAU,UAAWA,EAAU,SAAUA,EAAU,aAAcA,EAAU,gBAAiBA,EAAU,cAAc,CACxJ,CAED,OAAIL,GACFG,EAAa,KAAKD,CAAc,EAG3BN,IAAiBD,IAAYQ,CAAY,CAAC,CACnD,CAEO,IAAIG,IAAiB18D,GAAQk8D,IAAwBL,EAAQ,EAEpE,SAASc,IAAsB/xI,EAAS,CACtC,OAAO8xI,IAAe9xI,CAAO,EAAE,CAAC,GAAK,IACvC,CAEO,IAAIgyI,GAAgB58D,GAAQ28D,IAAuBd,EAAQ,EChDlE,SAASgB,GAAsBC,EAAWC,EAAiBC,EAAe,CACxE,OAAO,SAAuCplC,EAAM,CAClD,IAAIryE,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIy3G,EAC7EC,EAAiBH,EAAUllC,CAAI,EAAIryE,EACvC,OAAOw3G,EAAgBE,CAAc,CACzC,CACA,CAEA,SAASC,GAAWC,EAAsB,CACxC,OAAO,SAA4BvlC,EAAM,CACvC,OAAO,IAAI,KAAKulC,EAAqBvlC,CAAI,EAAE,QAAO,EAAK,CAAC,CAC5D,CACA,CAEA,SAASwlC,GAAaC,EAAW,CAC/B,OAAO,SAA8BzlC,EAAM,CACzC,OAAOylC,EAAU,IAAI,SAAU35H,EAAI,CACjC,OAAOA,EAAGk0F,CAAI,CACpB,CAAK,CACL,CACA,CAYO,SAAS0lC,GAAQ1lC,EAAM,CAC5B,GAAIA,aAAgB,KAClB,OAAOA,EAAK,cAGd,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAGT,IAAIrF,EAAO,SAASqF,EAAM,EAAE,EAE5B,GAAI,OAAOA,GAAS,UAAY,CAAC,MAAMrF,CAAI,EACzC,OAAOA,EAGT,MAAM,IAAI,MAAM,iCAAiC,OAAOqF,EAAM,GAAG,CAAC,CACpE,CAOO,SAAS2lC,GAAS3lC,EAAM,CAC7B,GAAIA,aAAgB,KAClB,OAAOA,EAAK,WAGd,MAAM,IAAI,MAAM,kCAAkC,OAAOA,EAAM,GAAG,CAAC,CACrE,CAoBO,SAAS4lC,GAAQ5lC,EAAM,CAC5B,GAAIA,aAAgB,KAClB,OAAOA,EAAK,UAGd,MAAM,IAAI,MAAM,iCAAiC,OAAOA,EAAM,GAAG,CAAC,CACpE,CAmFO,SAAS6lC,GAAgB7lC,EAAM,CACpC,IAAIrF,EAAO+qC,GAAQ1lC,CAAI,EACnB8lC,EAAmBnrC,GAAQ,CAACA,EAAO,GAAK,IACxCorC,EAAmB,IAAI,KAC3B,OAAAA,EAAiB,YAAYD,EAAkB,EAAG,CAAC,EACnDC,EAAiB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7BA,CACT,CACO,IAAIC,IAA0Bf,GAAsBS,GAASG,GAAiB,IAAI,EAC9EI,GAAsBhB,GAAsBS,GAASG,GAAiB,GAAG,EACzEK,GAAgBZ,GAAWW,EAAmB,EAC9CE,IAAwBlB,GAAsBS,GAASQ,GAAe,IAAI,EAE1EE,GAAkBZ,GAAa,CAACK,GAAiBK,EAAa,CAAC,EAKnE,SAASG,GAAermC,EAAM,CACnC,IAAIrF,EAAO+qC,GAAQ1lC,CAAI,EACnBsmC,EAAkB3rC,GAAQ,CAACA,EAAO,GAAK,GACvC4rC,EAAkB,IAAI,KAC1B,OAAAA,EAAgB,YAAYD,EAAiB,EAAG,CAAC,EACjDC,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BA,CACT,CACO,IAAIC,GAAyBvB,GAAsBS,GAASW,GAAgB,GAAG,EAC3EI,GAAqBxB,GAAsBS,GAASW,GAAgB,EAAE,EACtEK,GAAepB,GAAWmB,EAAkB,EAC5CE,GAAuB1B,GAAsBS,GAASgB,GAAc,GAAG,EAEvEE,GAAiBpB,GAAa,CAACa,GAAgBK,EAAY,CAAC,EAKhE,SAASG,GAAa7mC,EAAM,CACjC,IAAIrF,EAAO+qC,GAAQ1lC,CAAI,EACnB8mC,EAAgB,IAAI,KACxB,OAAAA,EAAc,YAAYnsC,EAAM,EAAG,CAAC,EACpCmsC,EAAc,SAAS,EAAG,EAAG,EAAG,CAAC,EAC1BA,CACT,CACO,IAAIC,GAAuB9B,GAAsBS,GAASmB,GAAc,EAAE,EACtEG,GAAmB/B,GAAsBS,GAASmB,GAAc,CAAC,EACjEI,GAAa3B,GAAW0B,EAAgB,EACxCE,GAAqBjC,GAAsBS,GAASuB,GAAY,EAAE,EAElEE,IAAe3B,GAAa,CAACqB,GAAcI,EAAU,CAAC,EAKjE,SAASG,GAA2BjC,EAAiBC,EAAe,CAClE,OAAO,SAA4CplC,EAAM,CACvD,IAAIryE,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIy3G,EAC7EzqC,EAAO+qC,GAAQ1lC,CAAI,EACnB7B,EAAQwnC,GAAS3lC,CAAI,EAAIryE,EACzB03G,EAAiB,IAAI,KACzB,OAAAA,EAAe,YAAY1qC,EAAMwD,EAAO,CAAC,EACzCknC,EAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3BF,EAAgBE,CAAc,CACzC,CACA,CAEO,SAASgC,GAAcrnC,EAAM,CAClC,IAAIrF,EAAO+qC,GAAQ1lC,CAAI,EACnB7B,EAAQwnC,GAAS3lC,CAAI,EACrBsnC,EAAiB,IAAI,KACzB,OAAAA,EAAe,YAAY3sC,EAAMwD,EAAO,CAAC,EACzCmpC,EAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3BA,CACT,CACO,IAAIC,GAAwBH,GAA2BC,GAAe,EAAE,EACpEG,GAAoBJ,GAA2BC,GAAe,CAAC,EAC/DI,GAAcnC,GAAWkC,EAAiB,EAC1CE,GAAsBN,GAA2BK,GAAa,EAAE,EAEhEE,IAAgBnC,GAAa,CAAC6B,GAAeI,EAAW,CAAC,EAKpE,SAASG,IAAyBzC,EAAiBC,EAAe,CAChE,OAAO,SAA0CplC,EAAM,CACrD,IAAIryE,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIy3G,EAC7EzqC,EAAO+qC,GAAQ1lC,CAAI,EACnB7B,EAAQwnC,GAAS3lC,CAAI,EACrB2C,EAAMijC,GAAQ5lC,CAAI,EAAIryE,EACtB03G,EAAiB,IAAI,KACzB,OAAAA,EAAe,YAAY1qC,EAAMwD,EAAOwE,CAAG,EAC3C0iC,EAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3BF,EAAgBE,CAAc,CACzC,CACA,CAEO,SAASwC,GAAY7nC,EAAM,CAChC,IAAIrF,EAAO+qC,GAAQ1lC,CAAI,EACnB7B,EAAQwnC,GAAS3lC,CAAI,EACrB2C,EAAMijC,GAAQ5lC,CAAI,EAClB8nC,EAAe,IAAI,KACvB,OAAAA,EAAa,YAAYntC,EAAMwD,EAAOwE,CAAG,EACzCmlC,EAAa,SAAS,EAAG,EAAG,EAAG,CAAC,EACzBA,CACT,CAEO,IAAIC,IAAkBH,IAAyBC,GAAa,CAAC,EACzDG,GAAY1C,GAAWyC,GAAe,EAGtCE,IAAczC,GAAa,CAACqC,GAAaG,EAAS,CAAC,EAWvD,SAAS7oC,GAAea,EAAM,CACnC,OAAO4lC,GAAQ6B,GAAYznC,CAAI,CAAC,CAClC,CCxSA,IAAIkoC,GAEJ,SAAS3rD,IAAmB/3E,EAAK,CAAE,OAAOw3E,IAAmBx3E,CAAG,GAAK03E,IAAiB13E,CAAG,GAAK43E,IAA4B53E,CAAG,GAAK83E,IAAoB,CAAG,CAEzJ,SAASA,KAAqB,CAAE,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAAI,CAE9L,SAASF,IAA4B9pD,EAAG+pD,EAAQ,CAAE,GAAK/pD,EAAW,IAAI,OAAOA,GAAM,SAAU,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAAG,IAAI,EAAI,OAAO,UAAU,SAAS,KAAK/pD,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzD,IAAM,UAAYA,EAAE,cAAa,EAAIA,EAAE,YAAY,MAAU,IAAM,OAAS,IAAM,MAAO,OAAO,MAAM,KAAKA,CAAC,EAAG,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAAI,CAEha,SAASH,IAAiBC,EAAM,CAAE,GAAI,OAAO,OAAW,KAAeA,EAAK,OAAO,QAAQ,GAAK,MAAQA,EAAK,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAI,CAAI,CAE9J,SAASH,IAAmBx3E,EAAK,CAAE,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOs3E,GAAkBt3E,CAAG,CAAI,CAE3F,SAASs3E,GAAkBt3E,EAAK4B,EAAK,EAAMA,GAAO,MAAQA,EAAM5B,EAAI,UAAQ4B,EAAM5B,EAAI,QAAQ,QAAShX,EAAI,EAAGuuF,EAAO,IAAI,MAAM31E,CAAG,EAAG5Y,EAAI4Y,EAAK5Y,IAAOuuF,EAAKvuF,CAAC,EAAIgX,EAAIhX,CAAC,EAAK,OAAOuuF,CAAO,CAEvL,SAASpL,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAE1M,IAAIimI,GAAiB,CAC1B,OAAQ,SACR,OAAQ,SACR,SAAU,WACV,GAAI,IACN,EACWC,IAAyBF,GAAwB,CAAE,EAAEv3D,GAAgBu3D,GAAuBC,GAAe,GAAI,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,OAAO,CAAC,EAAGx3D,GAAgBu3D,GAAuBC,GAAe,OAAQ,CACtW,KAAM,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,KAAM,QAAS,KAAM,OAAO,CAAC,EAAGx3D,GAAgBu3D,GAAuBC,GAAe,OAAQ,CAAC,KAAM,OAAO,CAAC,EAAGD,IACzOG,GAAW9rD,IAAmB,MAAM,CAAC,CAAC,EAAE,IAAI,SAAUvwE,EAAIpV,EAAO,CAC1E,OAAOA,CACT,CAAC,ECzBG0xI,GAAiB,IAAI,IAEzB,SAASC,IAAav1I,EAAS,CAC7B,OAAO,SAAU2iG,EAAQqK,EAAM,CAC7B,IAAIwoC,EAAoB7yC,GAAUqvC,KAE7BsD,GAAe,IAAIE,CAAiB,GACvCF,GAAe,IAAIE,EAAmB,IAAI,GAAK,EAGjD,IAAIC,EAAuBH,GAAe,IAAIE,CAAiB,EAE/D,OAAKC,EAAqB,IAAIz1I,CAAO,GACnCy1I,EAAqB,IAAIz1I,EAAS,IAAI,KAAK,eAAew1I,EAAmBx1I,CAAO,EAAE,MAAM,EAGvFy1I,EAAqB,IAAIz1I,CAAO,EAAEgtG,CAAI,CACjD,CACA,CAYA,SAAS0oC,IAAW1oC,EAAM,CACxB,IAAI2oC,EAAW,IAAI,KAAK3oC,CAAI,EAC5B,OAAO,IAAI,KAAK2oC,EAAS,SAAS,EAAE,CAAC,CACvC,CAEA,SAASC,GAAiB51I,EAAS,CACjC,OAAO,SAAU2iG,EAAQqK,EAAM,CAC7B,OAAOuoC,IAAav1I,CAAO,EAAE2iG,EAAQ+yC,IAAW1oC,CAAI,CAAC,CACzD,CACA,CAOA,IAAI6oC,IAAmB,CACrB,IAAK,SACP,EACIC,IAAwB,CAC1B,IAAK,UACL,MAAO,OACP,KAAM,SACR,EACIC,IAAqB,CACvB,MAAO,MACT,EACIC,IAAyB,CAC3B,MAAO,OACP,KAAM,SACR,EACIC,IAA4B,CAC9B,QAAS,OACX,EACIC,IAAuB,CACzB,QAAS,MACX,EACIC,IAAoB,CACtB,KAAM,SACR,EAEWrjB,IAAY8iB,GAAiBC,GAAgB,EAC7CO,IAAiBR,GAAiBE,GAAqB,EACvDO,IAAcT,GAAiBG,GAAkB,EACjDO,GAAkBV,GAAiBI,GAAsB,EACzDO,IAAqBX,GAAiBK,GAAyB,EAC/DO,IAAgBZ,GAAiBM,GAAoB,EACrDO,GAAab,GAAiBO,GAAiB,EC3EtDO,IAASrB,GAAS,CAAC,EACnBsB,IAAStB,GAAS,CAAC,EACnBuB,GAAWvB,GAAS,CAAC,EAGlB,SAASwB,GAAa7pC,EAAM,CACjC,IAAI8pC,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI3B,GAAe,SAClG1nC,EAAUT,EAAK,SAEnB,OAAQ8pC,EAAY,CAClB,KAAK3B,GAAe,SAElB,OAAQ1nC,EAAU,GAAK,EAEzB,KAAK0nC,GAAe,OAClB,OAAQ1nC,EAAU,GAAK,EAEzB,KAAK0nC,GAAe,OACpB,KAAKA,GAAe,GAClB,OAAO1nC,EAET,QACE,MAAM,IAAI,MAAM,4BAA4B,CAC/C,CACH,CAKO,SAASspC,IAAsB/pC,EAAM,CAC1C,IAAIgqC,EAAiBnE,GAAgB7lC,CAAI,EACzC,OAAO0lC,GAAQsE,CAAc,CAC/B,CAKO,SAASC,IAAqBjqC,EAAM,CACzC,IAAIkqC,EAAgB7D,GAAermC,CAAI,EACvC,OAAO0lC,GAAQwE,CAAa,CAC9B,CAYO,SAASC,GAAenqC,EAAM,CACnC,IAAI8pC,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI3B,GAAe,SAClGxtC,EAAO+qC,GAAQ1lC,CAAI,EACnBklB,EAAaklB,GAAcpqC,CAAI,EAC/B2C,EAAM3C,EAAK,QAAO,EAAK6pC,GAAa7pC,EAAM8pC,CAAY,EAC1D,OAAO,IAAI,KAAKnvC,EAAMuqB,EAAYviB,CAAG,CACvC,CAUO,SAAS0nC,IAAcrqC,EAAM,CAClC,IAAI8pC,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI3B,GAAe,SAClGmC,EAA4BR,IAAiB3B,GAAe,GAAKA,GAAe,GAAKA,GAAe,SACpGoC,EAAcJ,GAAenqC,EAAM8pC,CAAY,EAC/CnvC,EAAO+qC,GAAQ1lC,CAAI,EAAI,EACvBwqC,EACAC,EAEJ,GACED,EAAe,IAAI,KAAK7vC,EAAM,EAAG2vC,IAA8BnC,GAAe,SAAW,EAAI,CAAC,EAC9FsC,EAAmBN,GAAeK,EAAcV,CAAY,EAC5DnvC,GAAQ,QACDqF,EAAOyqC,GAEhB,OAAO,KAAK,OAAOF,EAAcE,IAAqB,MAAS,EAAE,EAAI,CACvE,CAYO,SAASC,GAASC,EAAW3qC,EAAM,CACxC,OAAQ2qC,EAAS,CACf,IAAK,UACH,OAAO9E,GAAgB7lC,CAAI,EAE7B,IAAK,SACH,OAAOqmC,GAAermC,CAAI,EAE5B,IAAK,OACH,OAAO6mC,GAAa7mC,CAAI,EAE1B,IAAK,QACH,OAAOqnC,GAAcrnC,CAAI,EAE3B,IAAK,MACH,OAAO6nC,GAAY7nC,CAAI,EAEzB,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,CACO,SAASC,IAAiBD,EAAW3qC,EAAM,CAChD,OAAQ2qC,EAAS,CACf,IAAK,UACH,OAAO3E,IAAwBhmC,CAAI,EAErC,IAAK,SACH,OAAOwmC,GAAuBxmC,CAAI,EAEpC,IAAK,OACH,OAAO+mC,GAAqB/mC,CAAI,EAElC,IAAK,QACH,OAAOunC,GAAsBvnC,CAAI,EAEnC,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,CACO,SAASE,GAAaF,EAAW3qC,EAAM,CAC5C,OAAQ2qC,EAAS,CACf,IAAK,UACH,OAAO1E,GAAoBjmC,CAAI,EAEjC,IAAK,SACH,OAAOymC,GAAmBzmC,CAAI,EAEhC,IAAK,OACH,OAAOgnC,GAAiBhnC,CAAI,EAE9B,IAAK,QACH,OAAOwnC,GAAkBxnC,CAAI,EAE/B,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,CACO,IAAIG,IAAoB,SAA2BH,EAAW3qC,EAAM,CACzE,OAAQ2qC,EAAS,CACf,IAAK,SACH,OAAOnE,GAAuBxmC,EAAM,IAAI,EAE1C,IAAK,OACH,OAAO+mC,GAAqB/mC,EAAM,GAAG,EAEvC,IAAK,QACH,OAAOunC,GAAsBvnC,EAAM,GAAG,EAExC,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,EACWI,IAAgB,SAAuBJ,EAAW3qC,EAAM,CACjE,OAAQ2qC,EAAS,CACf,IAAK,SACH,OAAOlE,GAAmBzmC,EAAM,GAAG,EAErC,IAAK,OACH,OAAOgnC,GAAiBhnC,EAAM,EAAE,EAElC,IAAK,QACH,OAAOwnC,GAAkBxnC,EAAM,EAAE,EAEnC,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,EAQO,SAASK,GAAOL,EAAW3qC,EAAM,CACtC,OAAQ2qC,EAAS,CACf,IAAK,UACH,OAAOzE,GAAclmC,CAAI,EAE3B,IAAK,SACH,OAAO0mC,GAAa1mC,CAAI,EAE1B,IAAK,OACH,OAAOinC,GAAWjnC,CAAI,EAExB,IAAK,QACH,OAAOynC,GAAYznC,CAAI,EAEzB,IAAK,MACH,OAAOgoC,GAAUhoC,CAAI,EAEvB,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,CACO,SAASM,IAAeN,EAAW3qC,EAAM,CAC9C,OAAQ2qC,EAAS,CACf,IAAK,UACH,OAAOxE,IAAsBnmC,CAAI,EAEnC,IAAK,SACH,OAAO2mC,GAAqB3mC,CAAI,EAElC,IAAK,OACH,OAAOknC,GAAmBlnC,CAAI,EAEhC,IAAK,QACH,OAAO0nC,GAAoB1nC,CAAI,EAEjC,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,CACO,IAAIO,IAAkB,SAAyBP,EAAW3qC,EAAM,CACrE,OAAQ2qC,EAAS,CACf,IAAK,SACH,OAAOhE,GAAqB3mC,EAAM,IAAI,EAExC,IAAK,OACH,OAAOknC,GAAmBlnC,EAAM,GAAG,EAErC,IAAK,QACH,OAAO0nC,GAAoB1nC,EAAM,GAAG,EAEtC,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,EAQO,SAASQ,GAASR,EAAW3qC,EAAM,CACxC,OAAQ2qC,EAAS,CACf,IAAK,UACH,OAAOvE,GAAgBpmC,CAAI,EAE7B,IAAK,SACH,OAAO4mC,GAAe5mC,CAAI,EAE5B,IAAK,OACH,OAAOmnC,IAAannC,CAAI,EAE1B,IAAK,QACH,OAAO2nC,IAAc3nC,CAAI,EAE3B,IAAK,MACH,OAAOioC,IAAYjoC,CAAI,EAEzB,QACE,MAAM,IAAI,MAAM,sBAAsB,OAAO2qC,CAAS,CAAC,CAC1D,CACH,CASO,SAASS,IAAcT,EAAWU,EAAOC,EAAO,CACrD,IAAIC,EAAe,CAACF,EAAOC,CAAK,EAAE,KAAK,SAAUviI,EAAGC,EAAG,CACrD,OAAOD,EAAIC,CACf,CAAG,EACD,MAAO,CAAC0hI,GAASC,EAAWY,EAAa,CAAC,CAAC,EAAGP,GAAOL,EAAWY,EAAa,CAAC,CAAC,CAAC,CAClF,CAEA,SAASC,GAAY71C,EAAQ,CAC3B,IAAI8zC,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIgC,GACjFzmB,EAAQ,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OAClD,OAAOA,EAAM,IAAI,SAAUhlB,EAAM,CAC/B,OAAOypC,EAAW9zC,EAAQqK,CAAI,CAClC,CAAG,EAAE,KAAK,KAAK,CACf,CASO,SAAS0rC,IAAgB/1C,EAAQ8zC,EAAYzpC,EAAM,CACxD,OAAOwrC,GAAY71C,EAAQ8zC,EAAYrD,GAAgBpmC,CAAI,CAAC,CAC9D,CAQO,SAAS2rC,GAAeh2C,EAAQ8zC,EAAYzpC,EAAM,CACvD,OAAOwrC,GAAY71C,EAAQ8zC,EAAY7C,GAAe5mC,CAAI,CAAC,CAC7D,CAOO,SAAS4rC,GAAU5rC,EAAM,CAC9B,IAAI8pC,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI3B,GAAe,SAClG1nC,EAAUT,EAAK,SAEnB,OAAQ8pC,EAAY,CAClB,KAAK3B,GAAe,OACpB,KAAKA,GAAe,OAClB,OAAO1nC,IAAYkpC,KAAUlpC,IAAYmpC,GAE3C,KAAKzB,GAAe,SACpB,KAAKA,GAAe,GAClB,OAAO1nC,IAAYmpC,IAAYnpC,IAAYipC,IAE7C,QACE,MAAM,IAAI,MAAM,4BAA4B,CAC/C,CACH,CCnVA,SAAS16E,GAAQ9sD,EAAK,CAAE,0BAA2B,OAAO8sD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU9sD,EAAK,CAAE,OAAO,OAAOA,GAAS,SAAUA,EAAK,CAAE,OAAOA,GAAqB,OAAO,QAArB,YAA+BA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAI,EAAI8sD,GAAQ9sD,CAAG,CAAI,CAIhV,IAAI2pI,IAAgB,OAAO,OAAO1D,EAAc,EAC5C2D,GAAW,CAAC,UAAW,SAAU,OAAQ,OAAO,EACzCC,GAAiBzpF,EAAU,MAAMupF,GAAa,EAC9CG,GAAc1pF,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,QAAQA,EAAU,MAAM,CAAC,CAAC,EACzF2pF,GAAY,SAAmBlvH,EAAO6iC,EAAUC,EAAe,CACxE,IAAI2zE,EAAUz2G,EAAM6iC,CAAQ,EAE5B,GAAI,CAAC4zE,EACH,OAAO,KAGT,GAAI,EAAEA,aAAmB,MACvB,OAAO,IAAI,MAAM,iBAAiB,OAAO5zE,EAAU,aAAa,EAAE,OAAOoP,GAAQwkE,CAAO,EAAG,iBAAiB,EAAE,OAAO3zE,EAAe,iCAAiC,CAAC,EAGxK,IAAI6oE,EAAU3rG,EAAM,QAEpB,OAAI2rG,GAAW8K,EAAU9K,EAChB,IAAI,MAAM,iBAAiB,OAAO9oE,EAAU,aAAa,EAAE,OAAOoP,GAAQwkE,CAAO,EAAG,iBAAiB,EAAE,OAAO3zE,EAAe,2CAA2C,CAAC,EAG3K,IACT,EACWqsF,GAAY,SAAmBnvH,EAAO6iC,EAAUC,EAAe,CACxE,IAAI6oE,EAAU3rG,EAAM6iC,CAAQ,EAE5B,GAAI,CAAC8oE,EACH,OAAO,KAGT,GAAI,EAAEA,aAAmB,MACvB,OAAO,IAAI,MAAM,iBAAiB,OAAO9oE,EAAU,aAAa,EAAE,OAAOoP,GAAQ05D,CAAO,EAAG,iBAAiB,EAAE,OAAO7oE,EAAe,iCAAiC,CAAC,EAGxK,IAAI2zE,EAAUz2G,EAAM,QAEpB,OAAIy2G,GAAW9K,EAAU8K,EAChB,IAAI,MAAM,iBAAiB,OAAO5zE,EAAU,aAAa,EAAE,OAAOoP,GAAQ05D,CAAO,EAAG,iBAAiB,EAAE,OAAO7oE,EAAe,4CAA4C,CAAC,EAG5K,IACT,EACWssF,IAAQ7pF,EAAU,UAAU,CAACA,EAAU,KAAMA,EAAU,MAAM,CACtE,QAASA,EAAU,GACrB,CAAC,CAAC,CAAC,EACQ8pF,GAAU9pF,EAAU,UAAU,CAACA,EAAU,WAAW,IAAI,EAAGA,EAAU,QAAQA,EAAU,WAAW,IAAI,CAAC,CAAC,CAAC,EACzG+pF,IAAU/pF,EAAU,QAAQA,EAAU,MAAMwpF,EAAQ,CAAC,EACrDQ,GAAS,SAAgBvvH,EAAO6iC,EAAUC,EAAe,CAClE,IAAI7gC,EAAOjC,EAAM6iC,CAAQ,EACrB2sF,EAAQxvH,EAAM,MACdyvH,EAAeD,GAAST,GAE5B,OAAI9sH,IAAS,QAAawtH,EAAa,QAAQxtH,CAAI,IAAM,GAChD,IAAI,MAAM,iBAAiB,OAAO4gC,EAAU,cAAc,EAAE,OAAO5gC,EAAM,iBAAiB,EAAE,OAAO6gC,EAAe,sBAAsB,EAAE,OAAO2sF,EAAa,IAAI,SAAUzjI,EAAG,CACpL,MAAO,IAAK,OAAOA,EAAG,GAAI,CAC3B,GAAE,KAAK,IAAI,EAAG,IAAI,CAAC,EAIf,IACT,EAEAujI,GAAO,WAAa,SAAUvvH,EAAO6iC,EAAUC,EAAe,CAC5D,IAAI7gC,EAAOjC,EAAM6iC,CAAQ,EAEzB,OAAK5gC,EAIEstH,GAAOvvH,EAAO6iC,EAAUC,CAAa,EAHnC,IAAI,MAAM,aAAa,OAAOD,EAAU,8BAA8B,EAAE,OAAOC,EAAe,uBAAuB,EAAE,OAAO7gC,EAAM,IAAI,CAAC,CAIpJ,EAEO,IAAIytH,GAAiB,CAC1B,gBAAiBnqF,EAAU,WAAW,IAAI,EAAE,WAC5C,MAAOA,EAAU,WAAW,IAAI,EAChC,OAAQA,EAAU,OAClB,QAAS4pF,GACT,QAASD,GACT,QAAS3pF,EAAU,KACnB,YAAaA,EAAU,KACvB,cAAeA,EAAU,UAAU,CAACA,EAAU,KAAM0pF,EAAW,CAAC,EAChE,YAAa1pF,EAAU,UAAU,CAACA,EAAU,KAAMA,EAAU,IAAI,CAAC,EACjE,MAAO8pF,GACP,UAAW9pF,EAAU,MACvB,EACWoqF,GAAY,CACrB,gBAAiBpqF,EAAU,WAAW,IAAI,EAAE,WAC5C,QAASA,EAAU,QAAQA,EAAU,MAAM,EAAE,WAC7C,KAAMA,EAAU,WAAW,IAAI,EAAE,WACjC,OAAQA,EAAU,OAClB,QAAS4pF,GACT,QAASD,GACT,QAAS3pF,EAAU,KACnB,YAAaA,EAAU,KACvB,MAAOA,EAAU,SAASA,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,MAAM,CAAC,CAAC,EACnF,cAAeA,EAAU,UAAU,CAACA,EAAU,KAAM0pF,EAAW,CAAC,EAChE,YAAa1pF,EAAU,UAAU,CAACA,EAAU,KAAMA,EAAU,IAAI,CAAC,EACjE,aAAcA,EAAU,IAC1B,EChGIl1C,GAAY,6BACD,SAASu/H,GAAWppF,EAAM,CACvC,IAAIqpF,EAAkBrpF,EAAK,gBACvBspF,EAAUtpF,EAAK,QACfupF,EAAuBvpF,EAAK,gBAC5B+lF,EAAkBwD,IAAyB,OAASC,GAAyBD,EAC7EE,EAAkBzpF,EAAK,WACvBkmF,EAAauD,IAAoB,OAASvB,GAAoBuB,EAC9Dr3C,EAASpyC,EAAK,OACdmlE,EAAUnlE,EAAK,QACfiwE,EAAUjwE,EAAK,QACf0pF,EAAwB1pF,EAAK,oBAC7B2pF,EAAsBD,IAA0B,OAAS,GAAKA,EAC9DE,EAAqB5pF,EAAK,mBAC1B6pF,EAAkB7pF,EAAK,gBACvB8pF,EAAsB9pF,EAAK,eAC3B+pF,EAAiBD,IAAwB,OAAS,GAAKA,EACvDE,EAAkBhqF,EAAK,WACvBiqF,EAAaD,IAAoB,OAAS,IAAMA,EAChDE,EAAqBlqF,EAAK,cAC1BmqF,EAAgBD,IAAuB,OAAS,GAAKA,EACrDE,EAAiBpqF,EAAK,UACtBqqF,EAAYD,IAAmB,OAAS,IAAMA,EAC9CE,EAAsBtqF,EAAK,eAC3BuqF,EAAiBD,IAAwB,OAAS,GAAKA,EACvDE,EAAkBxqF,EAAK,WACvByqF,EAAaD,IAAoB,OAAS,IAAMA,EAChDE,EAAqB1qF,EAAK,cAC1B2qF,EAAgBD,IAAuB,OAAS,GAAKA,EACrDE,EAAiB5qF,EAAK,UACtB6qF,EAAYD,IAAmB,OAAS,IAAMA,EAC9CE,EAAqB9qF,EAAK,mBAC1B+qF,GAAiB/qF,EAAK,eACtBvkC,GAAOukC,EAAK,KACZgpF,GAAQhpF,EAAK,MACbgrF,GAAmBhC,GAAM,QAAQvtH,EAAI,EAAI,EACzCwvH,GAA6BxvH,KAAS,UACtCyvH,GAA0B7D,IAAiB5rH,GAAM4tH,CAAe,EAChE8B,GAA2BF,IAA8B1D,IAAkB9rH,GAAM4tH,CAAe,EAChG+B,GAAsB9D,GAAa7rH,GAAM4tH,CAAe,EACxDgC,GAAuBJ,IAA8BzD,IAAc/rH,GAAM4tH,CAAe,EAExFiC,GAAqB,UAAY,CACnC,GAAIJ,GAAwB,YAAa,EAAG,EAC1C,MAAO,GAGT,IAAIK,GAAwB7D,IAAejsH,GAAM4tH,CAAe,EAChE,OAAOpZ,GAAWA,GAAWsb,EACjC,IAEMC,EAAsBP,IAA8B,UAAY,CAClE,GAAIE,GAAyB,YAAa,EAAG,EAC3C,MAAO,GAGT,IAAII,GAAwB5D,IAAgBlsH,GAAM4tH,CAAe,EACjE,OAAOpZ,GAAWA,GAAWsb,EACjC,IAEME,GAAqBtmB,GAAWA,EAAUimB,GAC1CM,GAAsBT,IAA8B9lB,GAAWA,EAAUkmB,GAE7E,SAASM,IAAkB,CACzBb,EAAmBI,GAAyB,MAAM,CACnD,CAED,SAASU,IAAmB,CAC1Bd,EAAmBK,GAA0B,OAAO,CACrD,CAED,SAASU,IAAc,CACrBf,EAAmBM,GAAqB,MAAM,CAC/C,CAED,SAASU,IAAe,CACtBhB,EAAmBO,GAAsB,OAAO,CACjD,CAED,SAASU,GAAYtvC,GAAM,CACzB,IAAI37C,GAAQ,UAAY,CACtB,OAAQrlC,GAAI,CACV,IAAK,UACH,OAAO0sH,IAAgB/1C,EAAQ8zC,EAAYzpC,EAAI,EAEjD,IAAK,SACH,OAAO2rC,GAAeh2C,EAAQ8zC,EAAYzpC,EAAI,EAEhD,IAAK,OACH,OAAOypC,EAAW9zC,EAAQqK,EAAI,EAEhC,IAAK,QACH,OAAOspC,EAAgB3zC,EAAQqK,EAAI,EAErC,QACE,MAAM,IAAI,MAAM,iBAAiB,OAAOhhF,GAAM,GAAG,CAAC,CACrD,CACP,IAEI,OAAOouH,EAAkBA,EAAgB,CACvC,KAAMptC,GACN,MAAO37C,GACP,OAAQsxC,GAAUqvC,GAAe,EACjC,KAAMhmH,EACP,GAAIqlC,EACN,CAED,SAASkrF,IAAe,CACtB,IAAIC,GAAiB,GAAG,OAAOpiI,GAAW,SAAS,EACnD,OAAoBm3C,GAAM,cAAc,SAAU,CAChD,aAAc2oF,EACd,YAAaC,EACb,UAAWqC,GACX,SAAU,CAACjB,GACX,QAAS1B,EACT,MAAO,CACL,SAAU,CACX,EACD,KAAM,QACZ,EAAoBtoF,GAAM,cAAc,OAAQ,CAC1C,UAAW,GAAG,OAAOirF,GAAgB,cAAc,EAAE,OAAOA,GAAgB,mBAAmB,CAChG,EAAEF,GAAY1C,CAAe,CAAC,EAAG0B,IAA+B/pF,GAAM,cAAcA,GAAM,SAAU,KAAmBA,GAAM,cAAc,OAAQ,CAClJ,UAAW,GAAG,OAAOirF,GAAgB,WAAW,CACjD,EAAE,KAAU,EAAgBjrF,GAAM,cAAc,OAAQ,CACvD,UAAW,GAAG,OAAOirF,GAAgB,cAAc,EAAE,OAAOA,GAAgB,iBAAiB,CAC9F,EAAEF,GAAYX,EAAmB,CAAC,CAAC,CAAC,CACtC,CAED,OAAoBpqF,GAAM,cAAc,MAAO,CAC7C,UAAWn3C,EACf,EAAK4gI,IAAe,MAAQQ,IAA2CjqF,GAAM,cAAc,SAAU,CACjG,aAAcupF,EACd,UAAW,GAAG,OAAO1gI,GAAW,UAAU,EAAE,OAAOA,GAAW,gBAAgB,EAC9E,SAAU2hI,EACV,QAASI,GACT,KAAM,QACV,EAAKnB,CAAU,EAAGI,IAAc,MAAqB7pF,GAAM,cAAc,SAAU,CAC/E,aAAc2pF,EACd,UAAW,GAAG,OAAO9gI,GAAW,UAAU,EAAE,OAAOA,GAAW,eAAe,EAC7E,SAAUyhI,GACV,QAASK,GACT,KAAM,QACV,EAAKd,CAAS,EAAGmB,KAAgB3B,IAAc,MAAqBrpF,GAAM,cAAc,SAAU,CAC9F,aAAcmpF,EACd,UAAW,GAAG,OAAOtgI,GAAW,UAAU,EAAE,OAAOA,GAAW,eAAe,EAC7E,SAAU4hI,GACV,QAASI,GACT,KAAM,QACV,EAAKxB,CAAS,EAAGJ,IAAe,MAAQgB,IAA2CjqF,GAAM,cAAc,SAAU,CAC7G,aAAc+oF,EACd,UAAW,GAAG,OAAOlgI,GAAW,UAAU,EAAE,OAAOA,GAAW,gBAAgB,EAC9E,SAAU6hI,GACV,QAASI,GACT,KAAM,QACV,EAAK7B,CAAU,CAAC,CAChB,CACAb,GAAW,UAAY,CACrB,gBAAiBrqF,EAAU,WAAW,IAAI,EAAE,WAC5C,QAASA,EAAU,KAAK,WACxB,gBAAiBA,EAAU,KAC3B,WAAYA,EAAU,KACtB,OAAQA,EAAU,OAClB,QAASA,EAAU,WAAW,IAAI,EAClC,QAASA,EAAU,WAAW,IAAI,EAClC,oBAAqBA,EAAU,OAC/B,mBAAoBA,EAAU,OAC9B,gBAAiBA,EAAU,KAC3B,eAAgBA,EAAU,OAC1B,WAAYA,EAAU,KACtB,cAAeA,EAAU,OACzB,UAAWA,EAAU,KACrB,eAAgBA,EAAU,OAC1B,WAAYA,EAAU,KACtB,cAAeA,EAAU,OACzB,UAAWA,EAAU,KACrB,mBAAoBA,EAAU,KAAK,WACnC,eAAgBA,EAAU,KAC1B,KAAMgqF,GAAO,WACb,MAAOD,IAAQ,UACjB,ECzLA,IAAIoD,IAAY,CAAC,WAAY,YAAa,YAAa,QAAS,SAAU,QAAS,MAAM,EAEzF,SAASzyF,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAAS4zB,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAASu5D,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAKnT,SAASumJ,GAAUjsI,EAAK,CACtB,MAAO,GAAG,OAAOA,EAAK,GAAG,CAC3B,CAEe,SAASksI,GAAKrsF,EAAM,CACjC,IAAIgI,EAAWhI,EAAK,SAChBn2C,EAAYm2C,EAAK,UACjB4kC,EAAY5kC,EAAK,UACjB1qC,EAAQ0qC,EAAK,MACb51B,EAAS41B,EAAK,OACdx5D,EAAQw5D,EAAK,MACbvoC,EAAOuoC,EAAK,KACZssF,EAAap0E,IAAyBlY,EAAMksF,GAAS,EAEzD,OAAoBlrF,GAAM,cAAc,MAAOvH,GAAS,CACtD,UAAW5vC,EACX,MAAOsiI,GAAc,CACnB,QAAS,OACT,cAAevnD,EACf,SAAUntE,EAAO,OAAS,SAC3B,EAAEjxB,CAAK,CACZ,EAAK8lJ,CAAU,EAAGtrF,GAAM,SAAS,IAAIgH,EAAU,SAAUE,EAAO70D,EAAO,CACnE,OAAoB2tD,GAAM,aAAakH,EAAOikF,GAAcA,GAAc,GAAIjkF,EAAM,KAAK,EAAG,GAAI,CAC9F,MAAO,CACL,UAAWkkF,GAAU,IAAM92H,CAAK,EAChC,WAAY,EACZ,SAAU,EACV,SAAU,SACV,WAAY8U,GAAU/2B,IAAU,EAAI+4I,GAAU,IAAMhiH,EAAS9U,CAAK,EAAI,IACvE,CACF,EAAC,CACH,EAAC,CACJ,CACA+2H,GAAK,UAAY,CACf,SAAUttF,EAAU,KACpB,UAAWA,EAAU,OACrB,MAAOA,EAAU,OAAO,WACxB,UAAWA,EAAU,OACrB,OAAQA,EAAU,OAClB,MAAOA,EAAU,SAASA,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,MAAM,CAAC,CAAC,EACnF,KAAMA,EAAU,IAClB,EC1DA,SAASi6B,GAAmB/3E,EAAK,CAAE,OAAOw3E,IAAmBx3E,CAAG,GAAK03E,IAAiB13E,CAAG,GAAK43E,IAA4B53E,CAAG,GAAK83E,IAAoB,CAAG,CAEzJ,SAASA,KAAqB,CAAE,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAAI,CAE9L,SAASF,IAA4B9pD,EAAG+pD,EAAQ,CAAE,GAAK/pD,EAAW,IAAI,OAAOA,GAAM,SAAU,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAAG,IAAI,EAAI,OAAO,UAAU,SAAS,KAAK/pD,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzD,IAAM,UAAYA,EAAE,cAAa,EAAIA,EAAE,YAAY,MAAU,IAAM,OAAS,IAAM,MAAO,OAAO,MAAM,KAAKA,CAAC,EAAG,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAAI,CAEha,SAASH,IAAiBC,EAAM,CAAE,GAAI,OAAO,OAAW,KAAeA,EAAK,OAAO,QAAQ,GAAK,MAAQA,EAAK,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAI,CAAI,CAE9J,SAASH,IAAmBx3E,EAAK,CAAE,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOs3E,GAAkBt3E,CAAG,CAAI,CAE3F,SAASs3E,GAAkBt3E,EAAK4B,EAAK,EAAMA,GAAO,MAAQA,EAAM5B,EAAI,UAAQ4B,EAAM5B,EAAI,QAAQ,QAAShX,EAAI,EAAGuuF,EAAO,IAAI,MAAM31E,CAAG,EAAG5Y,EAAI4Y,EAAK5Y,IAAOuuF,EAAKvuF,CAAC,EAAIgX,EAAIhX,CAAC,EAAK,OAAOuuF,CAAO,CAWhL,SAAS+zD,IAAQnmJ,EAAO4wD,EAAK1zB,EAAK,CACvC,OAAI0zB,GAAOA,EAAM5wD,EACR4wD,EAGL1zB,GAAOA,EAAMl9B,EACRk9B,EAGFl9B,CACT,CACO,SAASomJ,GAAmBpmJ,EAAO6iI,EAAO,CAC/C,OAAOA,EAAM,CAAC,GAAK7iI,GAAS6iI,EAAM,CAAC,GAAK7iI,CAC1C,CACO,SAASqmJ,IAAmBC,EAAcC,EAAc,CAC7D,OAAOD,EAAa,CAAC,GAAKC,EAAa,CAAC,GAAKD,EAAa,CAAC,GAAKC,EAAa,CAAC,CAChF,CACO,SAASC,GAAgBC,EAAQC,EAAQ,CAC9C,OAAON,GAAmBK,EAAO,CAAC,EAAGC,CAAM,GAAKN,GAAmBK,EAAO,CAAC,EAAGC,CAAM,CACtF,CAEA,SAASC,GAAmBC,EAAYC,EAAWC,EAAe,CAChE,IAAIC,EAAUP,GAAgBK,EAAWD,CAAU,EAC/CpxF,EAAU,GAEd,GAAIuxF,EAAS,CACXvxF,EAAQ,KAAKsxF,CAAa,EAC1B,IAAIE,EAAeZ,GAAmBQ,EAAW,CAAC,EAAGC,CAAS,EAC1DI,EAAab,GAAmBQ,EAAW,CAAC,EAAGC,CAAS,EAExDG,GACFxxF,EAAQ,KAAK,GAAG,OAAOsxF,EAAe,OAAO,CAAC,EAG5CG,GACFzxF,EAAQ,KAAK,GAAG,OAAOsxF,EAAe,KAAK,CAAC,EAG1CE,GAAgBC,GAClBzxF,EAAQ,KAAK,GAAG,OAAOsxF,EAAe,UAAU,CAAC,CAEpD,CAED,OAAOtxF,CACT,CAEO,SAAS0xF,KAAiB,CAC/B,IAAIttF,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAC7E55D,EAAQ45D,EAAK,MACbutF,EAAYvtF,EAAK,UACjBy8C,EAAOz8C,EAAK,KACZwtF,EAAWxtF,EAAK,SAChBytF,EAAQztF,EAAK,MAEbn2C,EAAY,uBACZ+xC,EAAU,CAAC/xC,CAAS,EAExB,GAAI,CAAC4yF,EACH,OAAO7gD,EAGT,GAAI,CAAC,MAAM,QAAQ6gD,CAAI,GAAK,CAAC+wC,EAC3B,MAAM,IAAI,MAAM,+GAA+G,EAGjI,IAAIr5C,EAAM,IAAI,KACV84C,EAAY,MAAM,QAAQxwC,CAAI,EAAIA,EAAOmrC,GAAS4F,EAAU/wC,CAAI,EAMpE,GAJI+vC,GAAmBr4C,EAAK84C,CAAS,GACnCrxF,EAAQ,KAAK,GAAG,OAAO/xC,EAAW,OAAO,CAAC,EAGxC,CAACzjB,EACH,OAAOw1D,EAGT,GAAI,CAAC,MAAM,QAAQx1D,CAAK,GAAK,CAACmnJ,EAC5B,MAAM,IAAI,MAAM,+GAA+G,EAGjI,IAAIP,EAAa,MAAM,QAAQ5mJ,CAAK,EAAIA,EAAQwhJ,GAAS2F,EAAWnnJ,CAAK,EAErEqmJ,IAAmBO,EAAYC,CAAS,EAC1CrxF,EAAQ,KAAK,GAAG,OAAO/xC,EAAW,UAAU,CAAC,EACpC+iI,GAAgBI,EAAYC,CAAS,GAC9CrxF,EAAQ,KAAK,GAAG,OAAO/xC,EAAW,aAAa,CAAC,EAGlD,IAAI6jI,EAAuBX,GAAmBC,EAAYC,EAAW,GAAG,OAAOpjI,EAAW,SAAS,CAAC,EACpG+xC,EAAQ,KAAK,MAAMA,EAASo9B,GAAmB00D,CAAoB,CAAC,EACpE,IAAIC,EAAa,GAAG,OAAOvnJ,CAAK,EAEhC,GAAIqnJ,GAASE,EAAW,SAAW,EAAG,CACpC,IAAIC,EAAaH,EAAQT,EAAW,CAAC,EAAI,CAACA,EAAW,CAAC,EAAGS,CAAK,EAAI,CAACA,EAAOT,EAAW,CAAC,CAAC,EACnFa,EAAuBd,GAAmBa,EAAYX,EAAW,GAAG,OAAOpjI,EAAW,SAAS,CAAC,EACpG+xC,EAAQ,KAAK,MAAMA,EAASo9B,GAAmB60D,CAAoB,CAAC,CACrE,CAED,OAAOjyF,CACT,CCxHA,IAAIswF,IAAY,CAAC,YAAa,QAAS,gBAAiB,WAAY,MAAO,QAAS,SAAU,QAAS,OAAQ,OAAQ,QAAS,WAAW,EAE3I,SAAS7+D,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAOpS,SAASioJ,GAAU9tF,EAAM,CAmBtC,QAlBIn2C,EAAYm2C,EAAK,UACjB+tF,EAAa/tF,EAAK,MAClB1qC,EAAQy4H,IAAe,OAAS,EAAIA,EACpCC,EAAgBhuF,EAAK,cACrBwtF,EAAWxtF,EAAK,SAChB7gC,EAAM6gC,EAAK,IACXytF,EAAQztF,EAAK,MACb51B,EAAS41B,EAAK,OACdrmD,EAAQqmD,EAAK,MACbiuF,EAAYjuF,EAAK,KACjBkuF,EAAOD,IAAc,OAAS,EAAIA,EAClCE,EAAOnuF,EAAK,KACZ55D,EAAQ45D,EAAK,MACbutF,EAAYvtF,EAAK,UACjBmpF,EAAYjxE,IAAyBlY,EAAMksF,GAAS,EAEpDkC,EAAQ,GAEHC,EAAQ10I,EAAO00I,GAASlvH,EAAKkvH,GAASH,EAAM,CACnD,IAAIzxC,EAAOuxC,EAAcK,CAAK,EAC9BD,EAAM,KAAmBptF,GAAM,cAAcmtF,EAAM10F,GAAS,CAC1D,IAAKgjD,EAAK,QAAS,EACnB,QAAS6wC,IAAe,CACtB,MAAOlnJ,EACP,UAAWmnJ,EACX,KAAM9wC,EACN,SAAU+wC,EACV,MAAOC,CACf,CAAO,EACD,KAAMhxC,EACN,MAAO4xC,CACb,EAAOlF,CAAS,CAAC,CAAC,CACf,CAED,OAAoBnoF,GAAM,cAAcqrF,GAAM,CAC5C,UAAWxiI,EACX,MAAOyL,EACP,OAAQ8U,EACR,KAAM,EACP,EAAEgkH,CAAK,CACV,CACAN,GAAU,UAAY3B,GAAcA,GAAc,GAAIjD,EAAc,EAAG,GAAI,CACzE,gBAAiBnqF,EAAU,WAAW,IAAI,EAC1C,MAAOA,EAAU,OACjB,cAAeA,EAAU,KAAK,WAC9B,SAAUA,EAAU,OACpB,OAAQA,EAAU,OAClB,KAAMA,EAAU,OAChB,KAAMA,EAAU,KAAK,UACvB,CAAC,ECrED,SAAS0M,GAAQ9sD,EAAK,CAAE,0BAA2B,OAAO8sD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU9sD,EAAK,CAAE,OAAO,OAAOA,GAAS,SAAUA,EAAK,CAAE,OAAOA,GAAqB,OAAO,QAArB,YAA+BA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAI,EAAI8sD,GAAQ9sD,CAAG,CAAI,CAEhV,SAAS0uE,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,GAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAAS0jE,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAG,OAAO,eAAeviB,EAAa,YAAa,CAAE,SAAU,EAAO,GAAUA,CAAc,CAE7R,SAASG,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAI,EAAI,EAAG,OAAO,eAAeA,EAAU,YAAa,CAAE,SAAU,EAAK,CAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEpc,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAI,EAAS+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAExM,SAASouD,IAAaC,EAAS,CAAE,IAAIC,EAA4BH,IAAyB,EAAI,OAAO,UAAgC,CAAE,IAAII,EAAQL,GAAgBG,CAAO,EAAG7jF,EAAQ,GAAI8jF,EAA2B,CAAE,IAAIE,EAAYN,GAAgB,IAAI,EAAE,YAAa1jF,EAAS,QAAQ,UAAU+jF,EAAO,UAAWC,CAAS,OAAYhkF,EAAS+jF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOpkB,IAA2B,KAAM3/D,CAAM,CAAE,CAAK,CAEza,SAAS2/D,IAA2Br5C,EAAMs5C,EAAM,CAAE,GAAIA,IAAS8B,GAAQ9B,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAe,OAAOA,EAAa,GAAIA,IAAS,OAAU,MAAM,IAAI,UAAU,0DAA0D,EAAK,OAAOzI,GAAuB7wC,CAAI,CAAI,CAEhS,SAAS6wC,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASq9D,KAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAEzU,SAASD,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAe,OAAS,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAE,EAAW0+C,GAAgB1+C,CAAC,CAAI,CAEpN,SAASq+C,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAOjN,SAAS2vI,GAAkBxG,EAAOC,EAAO,CACvC,OAAOD,GAAS,CAACC,GAAS,CAACD,GAASC,GAASD,GAASC,GAASD,EAAM,QAAO,IAAOC,EAAM,QAAO,CAClG,CAEA,SAAS5iD,GAAShoC,EAAWvoC,EAAM,CACjC,IAAIy0H,EAAkBlsF,EAAU,gBAC5Bs/C,EAAOt/C,EAAU,KACjB1hC,EAAO0hC,EAAU,KACrB,OAAO,OAAOvoC,GAAS,WAAaA,EAAK,CACvC,gBAAiBy0H,EACjB,KAAM5sC,EACN,KAAMhhF,CACP,GAAI7G,CACP,CAEA,IAAIu5H,GAAoB,SAAUzhE,EAAY,CAC5C9iB,IAAUukF,EAAMzhE,CAAU,EAE1B,IAAI0F,EAASzE,IAAawgE,CAAI,EAE9B,SAASA,GAAO,CACd,IAAIhsF,EAEJoH,IAAgB,KAAM4kF,CAAI,EAE1B,QAAS1vF,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAAkuC,EAAQiwB,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOvmE,CAAI,CAAC,EAErDuhE,GAAgBlsB,GAAuBiB,CAAK,EAAG,QAAS,CAAE,GAEnDA,CACR,CAED0pB,WAAasiE,EAAM,CAAC,CAClB,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIttF,EAAc,KAAK,MACnBwoF,EAAkBxoF,EAAY,gBAC9BmH,EAAWnH,EAAY,SACvBjF,EAAUiF,EAAY,QACtB47C,EAAO57C,EAAY,KACnB0tF,EAAa1tF,EAAY,WACzBuxC,EAASvxC,EAAY,OACrBskE,EAAUtkE,EAAY,QACtB2tF,EAAmB3tF,EAAY,iBAC/BovE,EAAUpvE,EAAY,QACtB4tF,EAAmB5tF,EAAY,iBAC/BE,EAAUF,EAAY,QACtBgZ,EAAchZ,EAAY,YAC1Br6D,EAAQq6D,EAAY,MACpB6tF,EAAe7tF,EAAY,aAC3BplC,EAAOolC,EAAY,KACnByjC,EAAc,KAAK,MACnBqqD,EAAgBrqD,EAAY,cAC5BsqD,EAActqD,EAAY,YAC9B,OAAoBtjC,GAAM,cAAc,SAAU,CAChD,UAAWy8E,GAAgB7hF,EAAS+yF,CAAa,EACjD,SAAU1e,GAAWwe,EAAiBxe,CAAO,EAAIxzB,GAAQ0oB,GAAWqpB,EAAiBrpB,CAAO,EAAI1oB,GAAQiyC,GAAgBA,EAAa,CACnI,gBAAiBrF,EACjB,KAAM5sC,EACN,KAAMhhF,CAChB,CAAS,EACD,QAASslC,GAAW,SAAU96D,EAAO,CACnC,OAAO86D,EAAQ07C,EAAMx2G,CAAK,CAC3B,EACD,QAAS4zE,GAAe,UAAY,CAClC,OAAOA,EAAY4iC,CAAI,CACxB,EACD,YAAa5iC,GAAe,UAAY,CACtC,OAAOA,EAAY4iC,CAAI,CACxB,EACD,MAAOj2G,EACP,KAAM,QACP,EAAE+nJ,EAA0BvtF,GAAM,cAAc,OAAQ,CACvD,aAAcutF,EAAWn8C,EAAQqK,CAAI,CACtC,EAAEz0C,CAAQ,EAAIA,EAAU4mF,CAAW,CACrC,CACF,GAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkCzxF,EAAWE,EAAW,CAC7D,IAAIgsF,EAAkBlsF,EAAU,gBAC5BwxF,EAAgBxxF,EAAU,cAC1ByxF,EAAczxF,EAAU,YACxBI,EAAY,GAEhB,OAAIoxF,IAAkBtxF,EAAU,oBAAsBixF,GAAkBjF,EAAiBhsF,EAAU,oBAAoB,KACrHE,EAAU,cAAgB4nC,GAAShoC,EAAWwxF,CAAa,EAC3DpxF,EAAU,mBAAqBoxF,IAG7BC,IAAgBvxF,EAAU,kBAAoBixF,GAAkBjF,EAAiBhsF,EAAU,oBAAoB,KACjHE,EAAU,YAAc4nC,GAAShoC,EAAWyxF,CAAW,EACvDrxF,EAAU,iBAAmBqxF,GAG/BrxF,EAAU,qBAAuB8rF,EAC1B9rF,CACR,CACF,EAAC,EAEK4wF,CACT,EAAEzwF,EAAS,WAGXywF,GAAK,UAAYhC,GAAcA,GAAc,GAAIhD,EAAS,EAAG,GAAI,CAC/D,SAAUpqF,EAAU,KAAK,WACzB,WAAYA,EAAU,KACtB,iBAAkBA,EAAU,KAAK,WACjC,iBAAkBA,EAAU,KAAK,UACnC,CAAC,ECjJD,IAAImtF,IAAY,CAAC,UAAW,YAAY,EAExC,SAAS7+D,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CASnT,IAAIgkB,IAAY,gDACD,SAASglI,GAAO7uF,EAAM,CACnC,IAAIpE,EAAUoE,EAAK,QACfypF,EAAkBzpF,EAAK,WACvBkmF,EAAauD,IAAoB,OAASvB,GAAoBuB,EAC9D6C,EAAap0E,IAAyBlY,EAAMksF,GAAS,EAErDzvC,EAAO6vC,EAAW,KAClBl6C,EAASk6C,EAAW,OACxB,OAAoBtrF,GAAM,cAAcmtF,GAAM10F,GAAS,GAAI6yF,EAAY,CACrE,QAAS,CAAE,EAAC,OAAO1wF,EAAS/xC,GAAS,EACrC,iBAAkBs5H,GAClB,iBAAkBL,GAClB,KAAM,SACP,GAAGsF,GAAeh2C,EAAQ8zC,EAAYzpC,CAAI,CAAC,CAC9C,CACAoyC,GAAO,UAAY1C,GAAcA,GAAc,GAAIhD,EAAS,EAAG,GAAI,CACjE,WAAYpqF,EAAU,IACxB,CAAC,ECvCD,SAASsuB,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,IAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAQpU,SAASq1F,GAAQt1H,EAAO,CACrC,IAAI6vH,EAAkB7vH,EAAM,gBACxB7f,EAAQ6sI,IAAsB6C,CAAe,EAC7ClqH,EAAMxlB,EAAQ,GAClB,OAAoBqnD,GAAM,cAAc8sF,GAAWr0F,GAAS,GAAIjgC,EAAO,CACrE,UAAW,wCACX,cAAespH,GACf,SAAU,SACV,IAAK3jH,EACL,MAAOxlB,EACP,KAAM,GACN,KAAMk1I,EACP,EAAC,CACJ,CACAC,GAAQ,UAAY3C,IAAc,CAAE,EAAEjD,EAAc,EC1BrC,SAAS6F,IAAYv1H,EAAO,CACzC,SAASw1H,GAAgB,CACvB,OAAoBhuF,GAAM,cAAc8tF,GAASt1H,CAAK,CACvD,CAED,OAAoBwnC,GAAM,cAAc,MAAO,CAC7C,UAAW,8BACf,EAAKguF,EAAe,EACpB,CCVA,IAAI9C,IAAY,CAAC,UAAW,YAAY,EAExC,SAAS7+D,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAQnT,IAAIgkB,IAAY,2CACD,SAASolI,GAAKjvF,EAAM,CACjC,IAAIpE,EAAUoE,EAAK,QACfypF,EAAkBzpF,EAAK,WACvBkmF,EAAauD,IAAoB,OAASvB,GAAoBuB,EAC9D6C,EAAap0E,IAAyBlY,EAAMksF,GAAS,EAErDzvC,EAAO6vC,EAAW,KAClBl6C,EAASk6C,EAAW,OACxB,OAAoBtrF,GAAM,cAAcmtF,GAAM10F,GAAS,GAAI6yF,EAAY,CACrE,QAAS,CAAE,EAAC,OAAO1wF,EAAS/xC,GAAS,EACrC,iBAAkB65H,GAClB,iBAAkBJ,GAClB,KAAM,QACP,GAAG4C,EAAW9zC,EAAQqK,CAAI,CAAC,CAC9B,CACAwyC,GAAK,UAAY9C,GAAcA,GAAc,GAAIhD,EAAS,EAAG,GAAI,CAC/D,WAAYpqF,EAAU,IACxB,CAAC,ECtCD,SAASsuB,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,IAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAOpU,SAASy1F,GAAM11H,EAAO,CACnC,IAAI6vH,EAAkB7vH,EAAM,gBACxB7f,EAAQ+sI,IAAqB2C,CAAe,EAC5ClqH,EAAMxlB,EAAQ,EAClB,OAAoBqnD,GAAM,cAAc8sF,GAAWr0F,GAAS,GAAIjgC,EAAO,CACrE,UAAW,qCACX,cAAe,SAAuB49E,EAAM,CAC1C,IAAIqF,EAAO,IAAI,KACf,OAAAA,EAAK,YAAYrF,EAAM,EAAG,CAAC,EAC3BqF,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACR,EACD,SAAU,OACV,IAAKt9E,EACL,MAAOxlB,EACP,KAAMs1I,EACP,EAAC,CACJ,CACAC,GAAM,UAAY/C,IAAc,CAAE,EAAEjD,EAAc,EC7BnC,SAASiG,IAAW31H,EAAO,CACxC,SAAS41H,GAAc,CACrB,OAAoBpuF,GAAM,cAAckuF,GAAO11H,CAAK,CACrD,CAED,OAAoBwnC,GAAM,cAAc,MAAO,CAC7C,UAAW,6BACf,EAAKouF,EAAa,EAClB,CCVA,IAAIlD,IAAY,CAAC,UAAW,cAAe,iBAAiB,EAE5D,SAAS7+D,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAQnT,IAAIgkB,IAAY,2CACD,SAASysG,GAAMt2D,EAAM,CAClC,IAAIpE,EAAUoE,EAAK,QACfqvF,EAAmBrvF,EAAK,YACxB8lF,EAAcuJ,IAAqB,OAASC,IAAqBD,EACjE9F,EAAuBvpF,EAAK,gBAC5B+lF,EAAkBwD,IAAyB,OAASC,GAAyBD,EAC7E+C,EAAap0E,IAAyBlY,EAAMksF,GAAS,EAErDzvC,EAAO6vC,EAAW,KAClBl6C,EAASk6C,EAAW,OACxB,OAAoBtrF,GAAM,cAAcmtF,GAAM10F,GAAS,GAAI6yF,EAAY,CACrE,QAAS,CAAE,EAAC,OAAO1wF,EAAS/xC,GAAS,EACrC,WAAYk8H,EACZ,iBAAkB7B,GAClB,iBAAkBJ,GAClB,KAAM,MACP,GAAGgC,EAAY1zC,EAAQqK,CAAI,CAAC,CAC/B,CACA6Z,GAAM,UAAY61B,GAAcA,GAAc,GAAIhD,EAAS,EAAG,GAAI,CAChE,YAAapqF,EAAU,KACvB,gBAAiBA,EAAU,IAC7B,CAAC,EC1CD,SAASsuB,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAQpU,SAASm9D,GAAOp9F,EAAO,CACpC,IAAI6vH,EAAkB7vH,EAAM,gBACxB7f,EAAQ,EACRwlB,EAAM,GACNi4E,EAAO+qC,GAAQkH,CAAe,EAClC,OAAoBroF,GAAM,cAAc8sF,GAAWr0F,GAAS,GAAIjgC,EAAO,CACrE,UAAW,oCACX,cAAe,SAAuBmoG,EAAY,CAChD,IAAIllB,EAAO,IAAI,KACf,OAAAA,EAAK,YAAYrF,EAAMuqB,EAAY,CAAC,EACpCllB,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACR,EACD,SAAU,QACV,IAAKt9E,EACL,MAAOxlB,EACP,KAAM28G,EACP,EAAC,CACJ,CACAM,GAAO,UAAYu1B,GAAcA,GAAc,GAAIjD,EAAc,EAAG,GAAI,CACtE,OAAQnqF,EAAU,MACpB,CAAC,ECjCc,SAASwwF,IAAS/1H,EAAO,CACtC,SAASg2H,GAAe,CACtB,OAAoBxuF,GAAM,cAAc41D,GAAQp9F,CAAK,CACtD,CAED,OAAoBwnC,GAAM,cAAc,MAAO,CAC7C,UAAW,2BACf,EAAKwuF,EAAc,EACnB,CCVA,IAAItD,IAAY,CAAC,YAAa,iBAAkB,eAAgB,UAAW,mBAAmB,EAE9F,SAAS7+D,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CASnT,IAAIgkB,GAAY,wCACD,SAASisG,GAAI91D,EAAM,CAChC,IAAIyvF,EAAiBzvF,EAAK,UACtBuiE,EAAYktB,IAAmB,OAASC,IAAmBD,EAC3DE,EAAsB3vF,EAAK,eAC3B6lF,EAAiB8J,IAAwB,OAASC,IAAwBD,EAC1EpJ,EAAevmF,EAAK,aACpBpE,EAAUoE,EAAK,QACf6vF,EAAoB7vF,EAAK,kBACzBssF,EAAap0E,IAAyBlY,EAAMksF,GAAS,EAErDzvC,EAAO6vC,EAAW,KAClBl6C,EAASk6C,EAAW,OACxB,OAAoBtrF,GAAM,cAAcmtF,GAAM10F,GAAS,GAAI6yF,EAAY,CACrE,QAAS,CAAE,EAAC,OAAO1wF,EAAS/xC,GAAWw+H,GAAU5rC,EAAM8pC,CAAY,EAAI,GAAG,OAAO18H,GAAW,WAAW,EAAI,KAAM4yF,EAAK,aAAeozC,EAAoB,GAAG,OAAOhmI,GAAW,oBAAoB,EAAI,IAAI,EAC1M,WAAYg8H,EACZ,iBAAkBpB,GAClB,iBAAkBH,GAClB,KAAM,OACP,GAAG/hB,EAAUnwB,EAAQqK,CAAI,CAAC,CAC7B,CACAqZ,GAAI,UAAYq2B,GAAcA,GAAc,GAAIhD,EAAS,EAAG,GAAI,CAC9D,kBAAmBpqF,EAAU,OAAO,WACpC,UAAWA,EAAU,KACrB,eAAgBA,EAAU,IAC5B,CAAC,EC9CD,IAAImtF,IAAY,CAAC,yBAA0B,sBAAsB,EAEjE,SAAS7+D,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,IAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAAS86C,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CASpS,SAAS80I,GAAKnhH,EAAO,CAClC,IAAI6vH,EAAkB7vH,EAAM,gBACxB+sH,EAAe/sH,EAAM,aAErBs2H,EAAyBt2H,EAAM,uBAC/Bu2H,EAAuBv2H,EAAM,qBAC7B8yH,EAAap0E,IAAyB1+C,EAAO0yH,GAAS,EAEtD90C,EAAO+qC,GAAQkH,CAAe,EAC9B1nB,EAAaygB,GAASiH,CAAe,EACrC2G,EAAwBF,GAA0BC,EAClDpxB,EAAY2nB,GAAa+C,EAAiB9C,CAAY,EACtDn8G,EAAS4lH,EAAwB,EAAIrxB,EAOrChlH,GAASq2I,EAAwB,CAACrxB,EAAY,GAAK,EAOnDx/F,EAAM,UAAY,CACpB,GAAI2wH,EAEF,OAAOn2I,EAAQ,EAAI,EAAI,EAGzB,IAAIk+F,EAAc+D,GAAeytC,CAAe,EAEhD,GAAI0G,EAAsB,CACxB,IAAIE,EAAgB,IAAI,KACxBA,EAAc,YAAY74C,EAAMuqB,EAAY9pB,CAAW,EACvDo4C,EAAc,SAAS,EAAG,EAAG,EAAG,CAAC,EACjC,IAAIC,EAAwB,EAAI5J,GAAa2J,EAAe1J,CAAY,EAAI,EAC5E,OAAO1uC,EAAcq4C,CACtB,CAED,OAAOr4C,CACX,IAEE,OAAoB72C,GAAM,cAAc8sF,GAAWr0F,GAAS,GAAI6yF,EAAY,CAC1E,UAAW,mCACX,MAAO,EACP,kBAAmB3qB,EACnB,cAAe,SAAuBviB,EAAK,CACzC,IAAI3C,EAAO,IAAI,KACf,OAAAA,EAAK,YAAYrF,EAAMuqB,EAAYviB,CAAG,EACtC3C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACR,EACD,SAAU,MACV,IAAKt9E,EACL,OAAQiL,EACR,MAAOzwB,EACP,KAAMm8G,EACP,EAAC,CACJ,CACA6kB,GAAK,UAAYwR,IAAc,CAC7B,aAAc3D,GAAe,WAC7B,uBAAwBzpF,EAAU,KAClC,qBAAsBA,EAAU,IAClC,EAAGmqF,EAAc,EC/EjB,IAAIr/H,GAAY,uCACZsmI,GAAmB,GAAG,OAAOtmI,GAAW,WAAW,EACxC,SAASstG,GAAS39F,EAAO,CActC,QAbI+sH,EAAe/sH,EAAM,aACrB42H,EAAwB52H,EAAM,mBAC9BwsH,EAAqBoK,IAA0B,OAASC,IAA4BD,EACpFE,EAAuB92H,EAAM,cAC7BysH,EAAgBqK,IAAyB,OAASC,IAAuBD,EACzEl+C,EAAS54E,EAAM,OACfg3H,EAAeh3H,EAAM,aACrBi3H,EAAU,IAAI,KACdC,EAAe5M,GAAc2M,CAAO,EACpCr5C,EAAO+qC,GAAQuO,CAAY,EAC3B/uB,EAAaygB,GAASsO,CAAY,EAClC7xC,EAAW,GAEN3B,EAAU,EAAGA,GAAW,EAAGA,GAAW,EAAG,CAChD,IAAIyzC,EAAc,IAAI,KAAKv5C,EAAMuqB,EAAYzkB,EAAUopC,GAAaoK,EAAcnK,CAAY,CAAC,EAC3Fz3B,EAAOm3B,EAAc7zC,EAAQu+C,CAAW,EAC5C9xC,EAAS,KAAmB79C,GAAM,cAAc,MAAO,CACrD,IAAKk8C,EACL,UAAWugC,GAAgB0S,GAAkB9H,GAAUsI,EAAapK,CAAY,GAAK,GAAG,OAAO4J,GAAkB,WAAW,CAAC,CACnI,EAAoBnvF,GAAM,cAAc,OAAQ,CAC1C,aAAc8tD,EACd,MAAOA,CACb,EAAOk3B,EAAmB5zC,EAAQu+C,CAAW,EAAE,QAAQ,IAAK,EAAE,CAAC,CAAC,CAAC,CAC9D,CAED,OAAoB3vF,GAAM,cAAcqrF,GAAM,CAC5C,UAAWxiI,GACX,MAAO,EACP,QAAS2mI,EACT,YAAaA,CACd,EAAE3xC,CAAQ,CACb,CACAsY,GAAS,UAAY,CACnB,aAAcqxB,GAAe,WAC7B,mBAAoBzpF,EAAU,KAC9B,cAAeA,EAAU,KACzB,OAAQA,EAAU,OAClB,aAAcA,EAAU,IAC1B,ECjDA,IAAImtF,IAAY,CAAC,OAAQ,oBAAqB,YAAY,EAE1D,SAASzyF,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAAS4zB,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,IAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAASu5D,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAInT,IAAIgkB,IAAY,uBACD,SAASutG,GAAWp3D,EAAM,CACvC,IAAIy8C,EAAOz8C,EAAK,KACZ4wF,EAAoB5wF,EAAK,kBACzB2iE,EAAa3iE,EAAK,WAClBssF,EAAap0E,IAAyBlY,EAAMksF,GAAS,EAErD1yH,EAAQ2yH,IAAc,CACxB,UAAWtiI,GACZ,EAAEyiI,CAAU,EAETtkF,EAAwBhH,GAAM,cAAc,OAAQ,KAAM2hE,CAAU,EACxE,OAAOiuB,EAAiC5vF,GAAM,cAAc,SAAUvH,GAAS,CAAE,EAAEjgC,EAAO,CACxF,QAAS,SAAiBvzB,EAAO,CAC/B,OAAO2qJ,EAAkBjuB,EAAYlmB,EAAMx2G,CAAK,CACjD,EACD,KAAM,QACV,CAAG,EAAG+hE,CAAQ,EAAiBhH,GAAM,cAAc,MAAOxnC,EAAOwuC,CAAQ,CACzE,CACAovD,GAAW,UAAY,CACrB,KAAMr4D,EAAU,WAAW,IAAI,EAAE,WACjC,kBAAmBA,EAAU,KAC7B,WAAYA,EAAU,KAAK,UAC7B,EChCe,SAAS8xF,GAAYr3H,EAAO,CACzC,IAAI6vH,EAAkB7vH,EAAM,gBACxB+sH,EAAe/sH,EAAM,aACrBo3H,EAAoBp3H,EAAM,kBAC1Bg3H,EAAeh3H,EAAM,aACrBs2H,EAAyBt2H,EAAM,uBAE/Bs3H,EAAgB,UAAY,CAC9B,GAAIhB,EACF,MAAO,GAGT,IAAIiB,EAAen1C,GAAeytC,CAAe,EAC7C2H,EAAe1K,GAAa+C,EAAiB9C,CAAY,EACzD3+B,EAAOmpC,GAAgB,EAAIC,GAC/B,MAAO,GAAI,KAAK,KAAKppC,EAAO,CAAC,CACjC,IAEM6Z,EAAQ,UAAY,CAMtB,QALIrqB,EAAO+qC,GAAQkH,CAAe,EAC9B1nB,EAAaygB,GAASiH,CAAe,EACrCjqC,EAAMijC,GAAQgH,CAAe,EAC7Bt/I,EAAS,GAEJsJ,EAAQ,EAAGA,EAAQy9I,EAAez9I,GAAS,EAClDtJ,EAAO,KAAK68I,GAAe,IAAI,KAAKxvC,EAAMuqB,EAAYviB,EAAM/rG,EAAQ,CAAC,EAAGkzI,CAAY,CAAC,EAGvF,OAAOx8I,CACX,IAEMknJ,EAAcxvB,EAAM,IAAI,SAAUhlB,EAAM,CAC1C,OAAOqqC,IAAcrqC,EAAM8pC,CAAY,CAC3C,CAAG,EACD,OAAoBvlF,GAAM,cAAcqrF,GAAM,CAC5C,UAAW,0CACX,MAAOyE,EACP,UAAW,SACX,QAASN,EACT,YAAaA,EACb,MAAO,CACL,UAAW,sBACX,WAAY,CACb,CACF,EAAES,EAAY,IAAI,SAAUtuB,EAAYoM,EAAW,CAClD,OAAoB/tE,GAAM,cAAco2D,GAAY,CAClD,IAAKuL,EACL,KAAMlB,EAAMsN,CAAS,EACrB,kBAAmB6hB,EACnB,WAAYjuB,CAClB,CAAK,CACF,EAAC,CACJ,CACAkuB,GAAY,UAAY,CACtB,gBAAiB9xF,EAAU,WAAW,IAAI,EAAE,WAC5C,aAAcypF,GAAe,WAC7B,kBAAmBzpF,EAAU,KAC7B,aAAcA,EAAU,KACxB,uBAAwBA,EAAU,IACpC,EClEA,IAAImtF,IAAY,CAAC,eAAgB,qBAAsB,gBAAiB,oBAAqB,iBAAiB,EAE9G,SAASzyF,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASye,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAWnT,SAASqrJ,IAA0B9+C,EAAQ,CACzC,OAAO,OAAO,KAAKyyC,EAAqB,EAAE,KAAK,SAAU0B,EAAc,CACrE,OAAO1B,GAAsB0B,CAAY,EAAE,SAASn0C,CAAM,CAC9D,CAAG,GAAKwyC,GAAe,QACvB,CAEe,SAASuM,GAAU33H,EAAO,CACvC,IAAI6vH,EAAkB7vH,EAAM,gBACxB44E,EAAS54E,EAAM,OACfg3H,EAAeh3H,EAAM,aACrBs2H,EAAyBt2H,EAAM,uBAE/B43H,EAAsB53H,EAAM,aAC5B+sH,EAAe6K,IAAwB,OAASF,IAA0B9+C,CAAM,EAAIg/C,EACpFpL,EAAqBxsH,EAAM,mBAC3BysH,EAAgBzsH,EAAM,cACtBo3H,EAAoBp3H,EAAM,kBAC1B63H,EAAkB73H,EAAM,gBACxByuC,EAAaiQ,IAAyB1+C,EAAO0yH,GAAS,EAE1D,SAASoF,GAAiB,CACxB,OAAoBtwF,GAAM,cAAcm2D,GAAU,CAChD,aAAcovB,EACd,mBAAoBP,EACpB,cAAeC,EACf,OAAQ7zC,EACR,aAAco+C,CACpB,CAAK,CACF,CAED,SAASe,GAAoB,CAC3B,OAAKF,EAIerwF,GAAM,cAAc6vF,GAAa,CACnD,gBAAiBxH,EACjB,aAAc9C,EACd,kBAAmBqK,EACnB,aAAcJ,EACd,uBAAwBV,CAC9B,CAAK,EATQ,IAUV,CAED,SAAS0B,GAAa,CACpB,OAAoBxwF,GAAM,cAAc25E,GAAMlhF,GAAS,CACrD,aAAc8sF,CACpB,EAAOt+E,CAAU,CAAC,CACf,CAED,IAAIp+C,EAAY,6BAChB,OAAoBm3C,GAAM,cAAc,MAAO,CAC7C,UAAWy8E,GAAgB5zH,EAAWwnI,EAAkB,GAAG,OAAOxnI,EAAW,eAAe,EAAI,EAAE,CACtG,EAAkBm3C,GAAM,cAAc,MAAO,CACzC,MAAO,CACL,QAAS,OACT,WAAY,UACb,CACF,EAAEuwF,EAAmB,EAAevwF,GAAM,cAAc,MAAO,CAC9D,MAAO,CACL,SAAU,EACV,MAAO,MACR,CACF,EAAEswF,EAAgB,EAAEE,EAAY,EAAC,CAAC,CACrC,CACAL,GAAU,UAAY,CACpB,gBAAiBpyF,EAAU,WAAW,IAAI,EAAE,WAC5C,aAAcypF,GACd,mBAAoBzpF,EAAU,KAC9B,cAAeA,EAAU,KACzB,OAAQA,EAAU,OAClB,kBAAmBA,EAAU,KAC7B,aAAcA,EAAU,KACxB,uBAAwBA,EAAU,KAClC,gBAAiBA,EAAU,IAC7B,EC5FA,IAAImtF,IAAY,CAAC,kBAAmB,yBAA0B,eAAgB,cAAe,YAAa,YAAa,QAAS,MAAM,EAEtI,SAASzyF,IAAW,CAAEA,UAAW,OAAO,OAAS,OAAO,OAAO,KAAM,EAAG,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,CAAS,EAAS4zD,GAAS,MAAM,KAAM,SAAS,CAAI,CAEnV,SAASgS,GAAQ9sD,EAAK,CAAE,0BAA2B,OAAO8sD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU9sD,EAAK,CAAE,OAAO,OAAOA,GAAS,SAAUA,EAAK,CAAE,OAAOA,GAAqB,OAAO,QAArB,YAA+BA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAI,EAAI8sD,GAAQ9sD,CAAG,CAAI,CAEhV,SAAS4qD,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAG,OAAO,eAAeviB,EAAa,YAAa,CAAE,SAAU,EAAO,GAAUA,CAAc,CAE7R,SAASG,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAI,EAAI,EAAG,OAAO,eAAeA,EAAU,YAAa,CAAE,SAAU,EAAK,CAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEpc,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAI,EAAS+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAExM,SAASouD,IAAaC,EAAS,CAAE,IAAIC,EAA4BH,IAAyB,EAAI,OAAO,UAAgC,CAAE,IAAII,EAAQL,GAAgBG,CAAO,EAAG7jF,EAAQ,GAAI8jF,EAA2B,CAAE,IAAIE,EAAYN,GAAgB,IAAI,EAAE,YAAa1jF,EAAS,QAAQ,UAAU+jF,EAAO,UAAWC,CAAS,OAAYhkF,EAAS+jF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOpkB,IAA2B,KAAM3/D,CAAM,CAAE,CAAK,CAEza,SAAS2/D,IAA2Br5C,EAAMs5C,EAAM,CAAE,GAAIA,IAAS8B,GAAQ9B,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAe,OAAOA,EAAa,GAAIA,IAAS,OAAU,MAAM,IAAI,UAAU,0DAA0D,EAAK,OAAOzI,GAAuB7wC,CAAI,CAAI,CAEhS,SAAS6wC,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASq9D,KAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAEzU,SAASD,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAe,OAAS,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAE,EAAW0+C,GAAgB1+C,CAAC,CAAI,CAEpN,SAASs+C,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,GAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAASunF,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,SAASu5D,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAEnT,SAASmzF,IAAmB/3E,EAAK,CAAE,OAAOw3E,IAAmBx3E,CAAG,GAAK03E,IAAiB13E,CAAG,GAAK43E,IAA4B53E,CAAG,GAAK83E,IAAoB,CAAG,CAEzJ,SAASA,KAAqB,CAAE,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAAI,CAE9L,SAASF,IAA4B9pD,EAAG+pD,EAAQ,CAAE,GAAK/pD,EAAW,IAAI,OAAOA,GAAM,SAAU,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAAG,IAAI,EAAI,OAAO,UAAU,SAAS,KAAK/pD,CAAC,EAAE,MAAM,EAAG,EAAE,EAAgE,GAAzD,IAAM,UAAYA,EAAE,cAAa,EAAIA,EAAE,YAAY,MAAU,IAAM,OAAS,IAAM,MAAO,OAAO,MAAM,KAAKA,CAAC,EAAG,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAAI,CAEha,SAASH,IAAiBC,EAAM,CAAE,GAAI,OAAO,OAAW,KAAeA,EAAK,OAAO,QAAQ,GAAK,MAAQA,EAAK,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAI,CAAI,CAE9J,SAASH,IAAmBx3E,EAAK,CAAE,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOs3E,GAAkBt3E,CAAG,CAAI,CAE3F,SAASs3E,GAAkBt3E,EAAK4B,EAAK,EAAMA,GAAO,MAAQA,EAAM5B,EAAI,UAAQ4B,EAAM5B,EAAI,QAAQ,QAAShX,EAAI,EAAGuuF,EAAO,IAAI,MAAM31E,CAAG,EAAG5Y,EAAI4Y,EAAK5Y,IAAOuuF,EAAKvuF,CAAC,EAAIgX,EAAIhX,CAAC,EAAK,OAAOuuF,CAAO,CAavL,IAAIi5D,GAAiB,IAAI,KACzBA,GAAe,YAAY,EAAG,EAAG,CAAC,EAClCA,GAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAClC,IAAIC,IAAiB,IAAI,KAAK,MAAO,EACjCxE,GAAgB,iBAChB3E,GAAW,CAAC,UAAW,SAAU,OAAQ,OAAO,EAChDoJ,IAAgB,CAAE,EAAC,OAAO34D,IAAmBuvD,GAAS,MAAM,CAAC,CAAC,EAAG,CAAC,KAAK,CAAC,EAE5E,SAASv6B,IAAO5nH,EAAO,CACrB,OAAIA,aAAiB,KACZA,EAGF,IAAI,KAAKA,CAAK,CACvB,CAMA,SAASwrJ,GAAgBC,EAAWC,EAAW,CAC7C,OAAOvJ,GAAS,MAAMA,GAAS,QAAQsJ,CAAS,EAAGtJ,GAAS,QAAQuJ,CAAS,EAAI,CAAC,CACpF,CAMA,SAASC,IAAct2H,EAAMo2H,EAAWC,EAAW,CACjD,IAAI9I,EAAQ4I,GAAgBC,EAAWC,CAAS,EAChD,OAAO9I,EAAM,QAAQvtH,CAAI,IAAM,EACjC,CAOA,SAASu2H,GAAQv2H,EAAMo2H,EAAWC,EAAW,CAC3C,OAAIC,IAAct2H,EAAMo2H,EAAWC,CAAS,EACnCr2H,EAGFq2H,CACT,CAMA,SAASG,GAAaH,EAAW,CAC/B,OAAOH,IAAcpJ,GAAS,QAAQuJ,CAAS,CAAC,CAClD,CAEA,SAAS3sD,IAAS/+F,EAAOiN,EAAO,CAC9B,GAAI,CAACjN,EACH,OAAO,KAGT,IAAI8rJ,EAAW,MAAM,QAAQ9rJ,CAAK,GAAKA,EAAM,SAAW,EAAIA,EAAMiN,CAAK,EAAIjN,EAE3E,GAAI,CAAC8rJ,EACH,OAAO,KAGT,IAAIC,EAAYnkC,IAAOkkC,CAAQ,EAE/B,GAAI,MAAMC,EAAU,QAAO,CAAE,EAC3B,MAAM,IAAI,MAAM,iBAAiB,OAAO/rJ,CAAK,CAAC,EAGhD,OAAO+rJ,CACT,CAEA,SAASC,GAAepyF,EAAM3sD,EAAO,CACnC,IAAIjN,EAAQ45D,EAAK,MACbiwE,EAAUjwE,EAAK,QACfmlE,EAAUnlE,EAAK,QACf8xF,EAAY9xF,EAAK,UACjBqyF,EAAaltD,IAAS/+F,EAAOiN,CAAK,EAEtC,GAAI,CAACg/I,EACH,OAAO,KAGT,IAAI9E,EAAY0E,GAAaH,CAAS,EAClCQ,EAAkB,CAACnL,GAAUM,EAAM,EAAEp0I,CAAK,EAAEk6I,EAAW8E,CAAU,EACrE,OAAO9F,IAAQ+F,EAAiBriB,EAAS9K,CAAO,CAClD,CAEA,IAAIotB,GAAqB,SAA4B1mI,EAAM,CACzD,OAAOumI,GAAevmI,EAAM,CAAC,CAC/B,EAEI2mI,GAAmB,SAA0B3mI,EAAM,CACrD,OAAOumI,GAAevmI,EAAM,CAAC,CAC/B,EAEI4mI,IAAsB,SAA6B5mI,EAAM,CAC3D,IAAIzlB,EAAQylB,EAAK,MAEjB,OAAI,MAAM,QAAQzlB,CAAK,EACdA,EAGF,CAACmsJ,GAAoBC,EAAgB,EAAE,IAAI,SAAUjqI,EAAI,CAC9D,OAAOA,EAAGsD,CAAI,CAClB,CAAG,CACH,EAEA,SAAS6mI,GAAmBl5H,EAAO,CACjC,IAAI2rG,EAAU3rG,EAAM,QAChBs4H,EAAYt4H,EAAM,UAClBy2G,EAAUz2G,EAAM,QAChBq4H,EAAYr4H,EAAM,UAClBpzB,EAAQozB,EAAM,MACdiC,EAAOjC,EAAM,KACb4tH,EAAY4K,GAAQv2H,EAAMo2H,EAAWC,CAAS,EAC9Ca,EAAYJ,GAAmB,CACjC,MAAOnsJ,EACP,QAAS6pI,EACT,QAAS9K,EACT,UAAW2sB,CACf,CAAG,GAAK,IAAI,KACV,OAAO3K,GAASC,EAAWuL,CAAS,CACtC,CAEA,SAASC,IAA0Bp5H,EAAO,CACxC,IAAI6vH,EAAkB7vH,EAAM,gBACxBq5H,EAAyBr5H,EAAM,uBAC/BxnB,EAAewnB,EAAM,aACrBs5H,EAAct5H,EAAM,YACpBs4H,EAAYt4H,EAAM,UAClBq4H,EAAYr4H,EAAM,UAClBpzB,EAAQozB,EAAM,MACdiC,EAAOjC,EAAM,KACb8yH,EAAap0E,IAAyB1+C,EAAO0yH,GAAS,EAEtD9E,EAAY4K,GAAQv2H,EAAMo2H,EAAWC,CAAS,EAC9Ca,EAAYtJ,GAAmBwJ,EAEnC,OAAIF,EACKxL,GAASC,EAAWuL,CAAS,EAG/BD,GAAmBvG,GAAc,CACtC,UAAW2F,EACX,UAAWD,EACX,MAAOzrJ,GAAS4L,EAChB,KAAMypB,GAAQq3H,CAClB,EAAKxG,CAAU,CAAC,CAChB,CAEA,IAAIyG,GAAmB,SAA0B3sJ,EAAO,CACtD,OAAOA,GAAS,GAAG,OAAOA,CAAK,EAAE,SAAW,CAC9C,EAEIyrI,GAAwB,SAAUnlD,EAAY,CAChD9iB,IAAUioE,EAAUnlD,CAAU,EAE9B,IAAI0F,EAASzE,IAAakkD,CAAQ,EAElC,SAASA,GAAW,CAClB,IAAI1vE,EAEJoH,IAAgB,KAAMsoE,CAAQ,EAE9B,QAASpzE,EAAO,UAAU,OAAQu0F,EAAQ,IAAI,MAAMv0F,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAChF++H,EAAM/+H,CAAI,EAAI,UAAUA,CAAI,EAG9B,OAAAkuC,EAAQiwB,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAO4gE,CAAK,CAAC,EAEtD5lE,GAAgBlsB,GAAuBiB,CAAK,EAAG,QAAS,CACtD,gBAAiBA,EAAM,MAAM,uBAC7B,MAAOA,EAAM,MAAM,aACnB,KAAMA,EAAM,MAAM,WACxB,CAAK,EAEDirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,2BAA4B,SAAU5E,EAAWt3D,EAAOuK,EAAU,CAC/G,IAAIyiJ,EAAwB/xF,GAAuBiB,CAAK,EACpD+oF,EAA0B+H,EAAsB,gBAChDC,EAAeD,EAAsB,KAErCpyF,EAAcsB,EAAM,MACpBgxF,EAAoBtyF,EAAY,kBAChCuyF,EAA0BvyF,EAAY,wBACtCsiC,EAAWtiC,EAAY,SACvBwyF,EAAexyF,EAAY,aAC3ByyF,EAAczyF,EAAY,YAC1B0yF,EAAW,CACb,gBAAiBrI,EACjB,KAAMgI,CACd,EAEM/wF,EAAM,SAAS5E,EAAW,UAAY,CACpC,IAAI1xC,EAAO,CACT,OAAQ0xC,EAAU,OAClB,gBAAiBA,EAAU,iBAAmB4E,EAAM,gBACpD,MAAO5E,EAAU,OAAS4E,EAAM,MAChC,KAAM5E,EAAU,MAAQ4E,EAAM,IACxC,EAEQ,SAASkvC,EAAat5F,EAAK,CACzB,OACEA,KAAOwlD,IACPkO,GAAQlO,EAAUxlD,CAAG,CAAC,IAAM0zD,GAAQ8nF,EAASx7I,CAAG,CAAC,IACjDwlD,EAAUxlD,CAAG,YAAa,KAAOwlD,EAAUxlD,CAAG,EAAE,YAAcw7I,EAASx7I,CAAG,EAAE,QAAO,EAAKwlD,EAAUxlD,CAAG,IAAMw7I,EAASx7I,CAAG,GAE1H,CAUD,GARIs5F,EAAa,iBAAiB,GAC5B+hD,GAAyBA,EAAwBvnI,CAAI,EAGvDwlF,EAAa,MAAM,GACjBgiD,GAAcA,EAAaxnI,CAAI,EAGjCwlF,EAAa,OAAO,GAClBlO,EACF,GAAImwD,EAAa,CACf,IAAIE,EAAgBT,GAAiBx1F,EAAU,KAAK,EAE/Ci2F,EAEML,GACThwD,EAAS,CAAC5lC,EAAU,KAAK,EAAGt3D,CAAK,EAFjCk9F,EAAS5lC,EAAU,MAAOt3D,CAAK,CAI/C,MACck9F,EAAS5lC,EAAU,MAAOt3D,CAAK,EAKjCuK,GAAUA,EAASqb,CAAI,CACnC,CAAO,CACP,CAAK,EAEDuhE,GAAgBlsB,GAAuBiB,CAAK,EAAG,qBAAsB,SAAUipF,EAAqBrkJ,EAAQ,CAC1Go7D,EAAM,yBAAyB,CAC7B,OAAQp7D,EACR,gBAAiBqkJ,CACzB,CAAO,CACP,CAAK,EAEDh+D,GAAgBlsB,GAAuBiB,CAAK,EAAG,YAAa,SAAUipF,EAAqBnlJ,EAAO,CAChG,GAAKk8D,EAAM,mBAIX,CAAAA,EAAM,YAAYipF,EAAqBnlJ,CAAK,EAE5C,IAAIwtJ,EAAyBvyF,GAAuBiB,CAAK,EACrD1mC,EAAOg4H,EAAuB,KAC9BzK,EAAQyK,EAAuB,MAE/BC,EAAcvxF,EAAM,MAAM,YAC1BwxF,EAAW3K,EAAMA,EAAM,QAAQvtH,CAAI,EAAI,CAAC,EAE5C0mC,EAAM,yBAAyB,CAC7B,OAAQ,YACR,gBAAiBipF,EACjB,KAAMuI,CACd,EAAS,OAAWD,CAAW,EAC/B,CAAK,EAEDtmE,GAAgBlsB,GAAuBiB,CAAK,EAAG,UAAW,UAAY,CACpE,GAAKA,EAAM,iBAIX,KAAIyxF,EAAyB1yF,GAAuBiB,CAAK,EACrDknF,EAAkBuK,EAAuB,gBACzCn4H,EAAOm4H,EAAuB,KAC9B5K,EAAQ4K,EAAuB,MAE/BC,EAAY1xF,EAAM,MAAM,UACxBwxF,EAAW3K,EAAMA,EAAM,QAAQvtH,CAAI,EAAI,CAAC,EACxC2vH,EAAsBjE,GAASwM,EAAUtK,CAAe,EAE5DlnF,EAAM,yBAAyB,CAC7B,OAAQ,UACR,gBAAiBipF,EACjB,KAAMuI,CACd,EAAS,OAAWE,CAAS,EAC7B,CAAK,EAEDzmE,GAAgBlsB,GAAuBiB,CAAK,EAAG,WAAY,SAAU/7D,EAAOH,EAAO,CACjF,IAAI6tJ,EAAyB5yF,GAAuBiB,CAAK,EACrD6qB,EAAgB8mE,EAAuB,MAEvC1xF,EAAeD,EAAM,MACrB4xF,EAAyB3xF,EAAa,uBACtCkxF,EAAclxF,EAAa,YAE/BD,EAAM,YAAY/7D,EAAOH,CAAK,EAE9B,IAAI+tJ,EAAsBV,GAAe,CAACP,GAAiB/lE,CAAa,EACpEinE,EAEJ,GAAIX,EAAa,CAEf,IAAIY,EAAyBhzF,GAAuBiB,CAAK,EACrDorF,EAAY2G,EAAuB,UAEnCF,EAGFC,EAAY9M,GAASoG,EAAWnnJ,CAAK,EAGrC6tJ,EAAYpM,IAAc0F,EAAWvgE,EAAe5mF,CAAK,CAEnE,MAEQ6tJ,EAAY9xF,EAAM,kBAAkB/7D,CAAK,EAG3C,IAAIglJ,EACJ,CAACkI,GACDU,GACAD,EAAyBrB,GAAmBvG,GAAcA,GAAc,CAAE,EAAEhqF,EAAM,KAAK,EAAG,GAAI,CAC5F,MAAO8xF,CACf,CAAO,CAAC,EAAI,KACNhuJ,EAAM,QAAO,EAEbk8D,EAAM,yBAAyB,CAC7B,OAAQ,WACR,gBAAiBipF,EACjB,MAAO6I,CACR,EAAEhuJ,CAAK,CACd,CAAK,EAEDmnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,cAAe,SAAU/7D,EAAOH,EAAO,CACpF,IAAIkuJ,EAAyBjzF,GAAuBiB,CAAK,EACrD1mC,EAAO04H,EAAuB,KAE9B9wD,EAAelhC,EAAM,MACrBiyF,EAAa/wD,EAAa,WAC1BgxD,EAAgBhxD,EAAa,cAC7BixD,EAAejxD,EAAa,aAC5BkxD,EAAclxD,EAAa,YAE3B7yF,EAAW,UAAY,CACzB,OAAQirB,EAAI,CACV,IAAK,UACH,OAAO44H,EAET,IAAK,SACH,OAAOE,EAET,IAAK,OACH,OAAOD,EAET,IAAK,QACH,OAAOF,EAET,QACE,MAAM,IAAI,MAAM,iBAAiB,OAAO34H,EAAM,GAAG,CAAC,CACrD,CACT,IAEUjrB,GAAUA,EAASpK,EAAOH,CAAK,CACzC,CAAK,EAEDmnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,cAAe,SAAU/7D,EAAO,CAC7E+7D,EAAM,SAAS,SAAU9E,EAAW,CAClC,OAAIA,EAAU,OAASA,EAAU,MAAM,YAAcj3D,EAAM,UAClD,KAGF,CACL,MAAOA,CACjB,CACA,CAAO,CACP,CAAK,EAEDgnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,eAAgB,UAAY,CACzEA,EAAM,SAAS,CACb,MAAO,IACf,CAAO,CACP,CAAK,EAEMA,CACR,CAED0pB,WAAagmD,EAAU,CAAC,CACtB,IAAK,kBACL,IAAK,UAAe,CAClB,IAAI2iB,EAAuB,KAAK,MAAM,gBAClCC,EAAuB,KAAK,MAAM,gBACtC,OAAOD,GAAwBC,GAAwB7B,IAA0B,KAAK,KAAK,CAC5F,CACL,EAAK,CACD,IAAK,QACL,IAAK,UAAe,CAClB,IAAIhvD,EAAe,KAAK,MACpB0vD,EAAc1vD,EAAa,YAC3B8wD,EAAa9wD,EAAa,MAC1B+wD,EAAa,KAAK,MAAM,MAE5B,OAAIrB,GAAeP,GAAiB4B,CAAU,EACrCA,EAGFD,IAAe,OAAYA,EAAaC,CAChD,CACL,EAAK,CACD,IAAK,YACL,IAAK,UAAe,CAClB,IAAI7C,EAAY,KAAK,MAAM,UAC3B,OAAOG,GAAaH,CAAS,CAC9B,CACL,EAAK,CACD,IAAK,OACL,IAAK,UAAe,CAClB,IAAI7tD,EAAe,KAAK,MACpB4tD,EAAY5tD,EAAa,UACzB6tD,EAAY7tD,EAAa,UACzB2wD,EAAY3wD,EAAa,KACzB4wD,EAAY,KAAK,MAAM,KAC3B,OAAO7C,GAAQ4C,GAAaC,EAAWhD,EAAWC,CAAS,CAC5D,CACL,EAAK,CACD,IAAK,QACL,IAAK,UAAe,CAClB,IAAIvtD,EAAe,KAAK,MACpBstD,EAAYttD,EAAa,UACzButD,EAAYvtD,EAAa,UAC7B,OAAOqtD,GAAgBC,EAAWC,CAAS,CAC5C,CACL,EAAK,CACD,IAAK,QACL,IAAK,UAAe,CAClB,IAAIwB,EAAc,KAAK,MAAM,YACzB7F,EAAQ,KAAK,MAAM,MACvB,OAAO6F,EAAc7F,EAAQ,IAC9B,CACL,EAAK,CACD,IAAK,qBACL,IAAK,UAAe,CAClB,IAAIhyH,EAAO,KAAK,KACZutH,EAAQ,KAAK,MACjB,OAAOA,EAAM,QAAQvtH,CAAI,EAAIutH,EAAM,OAAS,CAC7C,CACL,EAAK,CACD,IAAK,mBACL,IAAK,UAAe,CAClB,IAAIvtH,EAAO,KAAK,KACZutH,EAAQ,KAAK,MACjB,OAAOA,EAAM,QAAQvtH,CAAI,EAAI,CAC9B,CAKL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2Br1B,EAAO,CACvC,IAAIk/F,EAAe,KAAK,MACpB2qC,EAAU3qC,EAAa,QACvB6/B,EAAU7/B,EAAa,QACvBwsD,EAAYxsD,EAAa,UACzB+wC,EAAc/wC,EAAa,YAE3BwvD,EAAkB,UAAY,CAChC,OAAQze,EAAW,CACjB,IAAK,QACH,OAAOkc,GAET,IAAK,MACH,OAAOC,GAET,IAAK,QACH,OAAOC,IAET,QACE,MAAM,IAAI,MAAM,sBAAsB,CACzC,CACT,IAEM,OAAOqC,EAAgB,CACrB,MAAO1uJ,EACP,QAAS6pI,EACT,QAAS9K,EACT,UAAW2sB,CACnB,CAAO,CACF,CACL,EAAK,CACD,IAAK,gBACL,MAAO,SAAuB9xI,EAAM,CAClC,IAAI+0I,EAAyB,KAAK,gBAC9Bl7E,EAAc,KAAK,YACnB0zE,EAAY,KAAK,UACjBnnJ,EAAQ,KAAK,MACbq1B,EAAO,KAAK,KACZ8pE,EAAe,KAAK,MACpBghD,EAAehhD,EAAa,aAC5B6M,EAAS7M,EAAa,OACtB4/B,EAAU5/B,EAAa,QACvB0qC,EAAU1qC,EAAa,QACvB+tD,EAAc/tD,EAAa,YAC3BopD,EAAgBppD,EAAa,cAC7BqpD,EAAcrpD,EAAa,YAC3BmpD,EAAenpD,EAAa,aAC5BkoD,EAAQ,KAAK,MACbpE,EAAkBrpI,EAAOsnI,GAAa7rH,EAAMs5H,CAAsB,EAAI5N,GAAS1rH,EAAMs5H,CAAsB,EAC3Gh0F,EAAU,KAAK,mBAAqB,KAAK,UAAY,KAAK,SAC1D4kC,EAAc,CAChB,gBAAiB0jD,EACjB,MAAOoE,EACP,OAAQr7C,EACR,QAAS+yB,EACT,QAAS8K,EACT,QAASlvE,EACT,YAAauyF,EAAcz5E,EAAc,KACzC,cAAe80E,EACf,YAAaC,EACb,aAAcF,EACd,MAAOtoJ,EACP,UAAWmnJ,CACnB,EAEM,OAAQ9xH,EAAI,CACV,IAAK,UACH,CACE,IAAIyqH,EAAa,KAAK,MAAM,WAC5B,OAAoBllF,GAAM,cAAc+tF,IAAat1F,GAAS,CAC5D,WAAYysF,CAC1B,EAAevgD,CAAW,CAAC,CAChB,CAEH,IAAK,SACH,CACE,IAAIqvD,EAAc,KAAK,MAAM,WAC7B,OAAoBh0F,GAAM,cAAcmuF,IAAY11F,GAAS,CAC3D,WAAYu7F,CAC1B,EAAervD,CAAW,CAAC,CAChB,CAEH,IAAK,OACH,CACE,IAAIG,EAAe,KAAK,MACpBggD,EAAchgD,EAAa,YAC3BigD,EAAkBjgD,EAAa,gBACnC,OAAoB9kC,GAAM,cAAcuuF,IAAU91F,GAAS,CACzD,YAAaqsF,EACb,gBAAiBC,CAC/B,EAAepgD,CAAW,CAAC,CAChB,CAEH,IAAK,QACH,CACE,IAAIS,EAAgB,KAAK,MACrBm8B,EAAYn8B,EAAc,UAC1By/C,EAAiBz/C,EAAc,eAC/B4/C,GAAqB5/C,EAAc,mBACnC6/C,GAAgB7/C,EAAc,cAC9BwqD,GAAoBxqD,EAAc,kBAClC2kD,GAAiB3kD,EAAc,eAC/B0pD,GAAyB1pD,EAAc,uBACvC2pD,GAAuB3pD,EAAc,qBACrCirD,GAAkBjrD,EAAc,gBAChCoqD,GAAe,KAAK,aACxB,OAAoBxvF,GAAM,cAAcmwF,GAAW13F,GAAS,CAC1D,aAAc8sF,EACd,UAAWhkB,EACX,eAAgBsjB,EAChB,mBAAoBG,GACpB,cAAeC,GACf,kBAAmB2K,GACnB,aAAc0C,EAAc9C,GAAe,KAC3C,uBAAwB,OAAOV,GAA2B,IAAcA,GAAyB/E,GACjG,qBAAsBgF,GACtB,gBAAiBsB,EAC/B,EAAe1rD,CAAW,CAAC,CAChB,CAEH,QACE,MAAM,IAAI,MAAM,iBAAiB,OAAOlqE,EAAM,GAAG,CAAC,CACrD,CACF,CACL,EAAK,CACD,IAAK,mBACL,MAAO,UAA4B,CACjC,IAAIw5H,EAAiB,KAAK,MAAM,eAEhC,GAAI,CAACA,EACH,OAAO,KAGT,IAAI5L,EAAkB,KAAK,gBACvB5tH,EAAO,KAAK,KACZutH,EAAQ,KAAK,MACbziD,EAAgB,KAAK,MACrBw/C,EAAkBx/C,EAAc,gBAChC2/C,EAAa3/C,EAAc,WAC3B6L,EAAS7L,EAAc,OACvB4+B,EAAU5+B,EAAc,QACxB0pC,EAAU1pC,EAAc,QACxBojD,EAAsBpjD,EAAc,oBACpCqjD,EAAqBrjD,EAAc,mBACnCsjD,EAAkBtjD,EAAc,gBAChCwjD,EAAiBxjD,EAAc,eAC/B0jD,EAAa1jD,EAAc,WAC3B4jD,EAAgB5jD,EAAc,cAC9B8jD,EAAY9jD,EAAc,UAC1BgkD,EAAiBhkD,EAAc,eAC/BkkD,EAAalkD,EAAc,WAC3BokD,EAAgBpkD,EAAc,cAC9BskD,EAAYtkD,EAAc,UAC1BwkD,EAAiBxkD,EAAc,eACnC,OAAoBvlC,GAAM,cAAcooF,GAAY,CAClD,gBAAiBC,EACjB,QAAS,KAAK,QACd,gBAAiBtD,EACjB,WAAYG,EACZ,OAAQ9zC,EACR,QAAS+yB,EACT,QAAS8K,EACT,oBAAqB0Z,EACrB,mBAAoBC,EACpB,gBAAiBC,EACjB,eAAgBE,EAChB,WAAYE,EACZ,cAAeE,EACf,UAAWE,EACX,eAAgBE,EAChB,WAAYE,EACZ,cAAeE,EACf,UAAWE,EACX,mBAAoB,KAAK,mBACzB,eAAgBE,EAChB,KAAMtvH,EACN,MAAOutH,CACf,CAAO,CACF,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIriD,EAAgB,KAAK,MACrB98E,EAAY88E,EAAc,UAC1BuuD,EAAWvuD,EAAc,SACzB2sD,EAAc3sD,EAAc,YAC5BokD,EAAiBpkD,EAAc,eAC/B6pD,EAAe,KAAK,aACpBpqJ,EAAQ,KAAK,MACbunJ,EAAa,GAAG,OAAOvnJ,CAAK,EAChC,OAAoB46D,GAAM,cAAc,MAAO,CAC7C,UAAWy8E,GAAgByP,GAAeoG,GAAe3F,EAAW,SAAW,GAAK,GAAG,OAAOT,GAAe,eAAe,EAAGnC,GAAkB,GAAG,OAAOmC,GAAe,cAAc,EAAGrjI,CAAS,EACpM,IAAKqrI,CACN,EAAE,KAAK,iBAAgB,EAAiBl0F,GAAM,cAAc,MAAO,CAClE,UAAW,GAAG,OAAOksF,GAAe,iBAAiB,EACrD,OAAQoG,EAAc9C,EAAe,KACrC,aAAc8C,EAAc9C,EAAe,IACnD,EAAS,KAAK,cAAa,EAAIzF,GAAkB,KAAK,cAAc,EAAI,CAAC,CAAC,CACrE,CACF,EAAC,EAEKlZ,CACT,EAAEn0E,EAAS,WAGXm0E,GAAS,aAAe,CACtB,uBAAwB,GACxB,QAAS6f,IACT,UAAW,QACX,QAASD,GACT,UAAW,UACX,YAAa,QACb,eAAgB,GAChB,qBAAsB,EACxB,EACA,IAAI0D,GAAoBp2F,EAAU,WAAW,IAAI,EAC7Cq2F,GAAer2F,EAAU,UAAU,CAACA,EAAU,OAAQ8pF,EAAO,CAAC,EAClEhX,GAAS,UAAY,CACnB,gBAAiBsjB,GACjB,kBAAmBp2F,EAAU,KAC7B,aAAcypF,GACd,UAAWC,GACX,uBAAwB0M,GACxB,aAAcC,GACd,YAAarM,GACb,UAAWhqF,EAAU,KACrB,eAAgBA,EAAU,KAC1B,YAAaA,EAAU,KACvB,gBAAiBA,EAAU,KAC3B,mBAAoBA,EAAU,KAC9B,cAAeA,EAAU,KACzB,WAAYA,EAAU,KACtB,uBAAwBA,EAAU,KAClC,SAAU6pF,IACV,OAAQ7pF,EAAU,OAClB,QAAS4pF,GACT,UAAW5pF,EAAU,MAAMwpF,EAAQ,EACnC,QAASG,GACT,UAAW3pF,EAAU,MAAMwpF,EAAQ,EACnC,oBAAqBxpF,EAAU,OAC/B,mBAAoBA,EAAU,MAAM,CAAC,MAAO,SAAU,WAAW,CAAC,EAClE,gBAAiBA,EAAU,KAC3B,eAAgBA,EAAU,OAC1B,WAAYA,EAAU,KACtB,cAAeA,EAAU,OACzB,UAAWA,EAAU,KACrB,wBAAyBA,EAAU,KACnC,SAAUA,EAAU,KACpB,WAAYA,EAAU,KACtB,cAAeA,EAAU,KACzB,aAAcA,EAAU,KACxB,kBAAmBA,EAAU,KAC7B,YAAaA,EAAU,KACvB,YAAaA,EAAU,KACvB,UAAWA,EAAU,KACrB,aAAcA,EAAU,KACxB,eAAgBA,EAAU,OAC1B,WAAYA,EAAU,KACtB,cAAeA,EAAU,OACzB,UAAWA,EAAU,KACrB,YAAaA,EAAU,MAAM,CAAC,QAAS,MAAO,OAAO,CAAC,EACtD,YAAaA,EAAU,KACvB,eAAgBA,EAAU,KAC1B,uBAAwBA,EAAU,KAClC,eAAgBA,EAAU,KAC1B,qBAAsBA,EAAU,KAChC,gBAAiBA,EAAU,KAC3B,cAAeA,EAAU,UAAU,CAACA,EAAU,KAAM0pF,EAAW,CAAC,EAChE,YAAa1pF,EAAU,UAAU,CAACA,EAAU,KAAMA,EAAU,IAAI,CAAC,EACjE,aAAcA,EAAU,KACxB,MAAOq2F,GACP,KAAMrM,EACR,EC/wBA,MAAMsM,IAAiB,kBAEvBC,GAAe,CAAC,CAAE,MAAAlvJ,EAAO,SAAA+8F,EAAU,OAAArmC,EAAQ,QAAAqoE,EAAS,QAAA8K,EAAS,UAAA/iC,EAAW,GAAG1zE,KAAY,CACrF,KAAM,CAAC05G,EAAeC,CAAgB,EAAIpqC,WAAS,EAAK,EAElD91B,EAAM6qB,WACNo3B,EAAgB,IAAMie,EAAiB,CAACD,CAAa,EACrDqiB,EAAW75D,EAAA,QAAQ,IAAMt1F,GAAS2uH,GAAO3uH,CAAK,EAAE,OAAO02D,GAAUu4F,GAAc,EAAG,CAACjvJ,CAAK,CAAC,EAEzFovJ,EAAgBpvJ,GAAU,CAC9B+sI,EAAiB,EAAK,EACtBhwC,EAAS/8F,CAAK,GAId,OAAAwkF,EAAC5Q,GAAA,SACC,OAAQk5D,EACR,UAAWhmC,GAAwB,CAAC,QAAQ,EAC5C,MAAM,SACN,kBAAmB,GACnB,eAAgB,IAAMimC,EAAiB,CAACD,CAAa,EACrD,IAAAjgE,EACA,QACE2X,EAAC,MAAI,WAAU,WACb,SAAAA,EAACinD,GAAS,UAAU2jB,EAAc,MAAApvJ,EAAc,QAAA++H,EAAkB,QAAA8K,CAAkB,GACtF,EAGF,SAAArlD,EAAC,SACC,UAAU,sCACV,MAAO2qE,EACP,SAAeh8I,KAAE,eAAe,EAChC,QAAS27G,EACR,GAAG17F,CAAA,CACN,GAGN,EC1CMi8H,GAAQ,CAAC,CAAE,OAAAC,EAAQ,KAAAhwJ,KAAW,CAE9B,GADAgwJ,IAAW,QACX,CAACA,EAAO,eAAehwJ,CAAI,EAAU,YAEzC,MAAMD,EAAUiwJ,EAAOhwJ,CAAI,EAAE,KAAK,IAAI,EAGpC,OAAAklF,EAAC,OAAI,UAAU,YACb,WAAC,OAAK,WAAU,aACb,SAAAnlF,CACH,EACF,EAEJ,ECZAkwJ,GAAe,CAAC,CAAE,OAAAD,EAAQ,KAAAhwJ,KACpB,CAAC,OAAO,KAAKgwJ,CAAM,EAAE,SAAShwJ,CAAI,GAClC,CAAC,MAAM,QAAQgwJ,EAAOhwJ,CAAI,CAAC,GAC3BgwJ,EAAOhwJ,CAAI,EAAE,OAAS,EAAU,KAGjCklF,EAAA,OAAI,UAAU,YACb,WAAC,MAAI,WAAU,aACZ,SAAA8qE,EAAOhwJ,CAAI,EAAE,KAAK,IAAI,EACzB,CACF,GCXWk1I,IAAA,CAAC,CAAE,YAAAnC,EAAa,cAAA13D,EAAe,mBAAA60E,CAC5C,IAAAhrE,EAAC,UAAO,KAAK,SACL,UAAU,+BACV,MAAO7J,GAAiB,GACxB,SAAWxnE,GAAMq8I,EAAmBr8I,EAAE,OAAO,KAAK,EACvD,SAAYk/H,EAAA,IAAIr7H,KACd,SAAsB,OAAOA,EAAK,IAAM,SAAAA,EAAK,OAAjCA,EAAK,GAAkC,CACtD,EACF,ECVK,SAASy4I,IAAsB7rJ,EAAQ,CAC5C,OAAOA,EAAO,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAO,MAAM,CAAC,CACxD,CAEO,SAAS8rJ,GAAa9rJ,EAAQ,CACnC,OAAOA,EAAO,QAAQ,OAAQ,CAACG,EAAG44E,IAASA,EAAK,aAAa,EACpD,QAAQ,YAAa,CAAC54E,EAAG44E,IAAS,IAAIA,EAAK,YAAa,GAAE,CACrE,CAEO,SAASgzE,IAAY/rJ,EAAQ,CAChC,MAAMgsJ,EAAU,CAAC,IAAK,IAAI,IAAK,KAAK,EAAG,KAAK,IAAK,KAAK,IAAK,IAAI,GAAI,IAAI,EAAG,EAAE,EACtEC,EAAS,IAAI,OAAO,IAAI,OAAO,KAAKD,CAAO,EAAE,KAAK,GAAG,CAAC,IAAI,EAEhE,OAAOhsJ,EAAO,QAAQisJ,EAAQC,GAAaF,EAAQE,CAAS,CAAC,CACjE,CCZA,MAAMC,IAAmB,CAAE,MAAO,QAAS,UAAW,SAAU,WAAY,SAAW,EAExE,SAAQC,GAACC,EAAkB,CACxC,OAAOF,IAAiBE,CAAgB,GAAKP,GAAaO,CAAgB,CAC5E,CCHA,MAAeC,IAAA,CAAC,CAAE,yBAAAC,EAA0B,eAAAC,EAAgB,kBAAAC,CAC1D,IAAA7rE,EAAC,UAAO,UAAU,+BACV,MAAO4rE,GAAkB,GACzB,SAAUj9I,GAAKk9I,EAAkBl9I,EAAE,OAAO,KAAK,EACpD,SAAAg9I,EAAyB,IAAIn5I,GAC3BwtE,EAAA,UAAkB,MAAOxtE,EAAO,SAAuBg5I,GAAAh5I,CAAI,CAA/C,EAAAA,CAAiD,CAAS,EAE3E,ECRas5I,IAAA,CAAC,CAAE,uBAAAC,EAAwB,WAAAC,EAAY,cAAAC,KAElDjsE,EAAC,UAAO,KAAK,mBACL,UAAU,+BACV,MAAOgsE,GAAc,GACrB,SAAUr9I,GAAKs9I,EAAct9I,EAAE,OAAO,KAAK,EAChD,SAAAo9I,EAAuB,IAAoBG,GAAAlsE,EAAC,UAA0B,MAAOksE,EAAe,SAApCA,CAAA,EAAAA,CAAiD,CAAS,ICJnH7+D,IAAUz+D,GAEXqwE,GAAApS,GAAW,OAAX,CAAmB,GAAGj+D,EACrB,UAAAoxD,EAAC,SACC,KAAK,WACL,QAASpxD,EAAM,WACf,SAAU,IAAM,KAClB,EAAG,IACFA,EAAM,KACT,IAIEm7D,IAAiB,CAAC,CAAE,SAAA3sB,EAAU,GAAGxuC,KAAY,CAC7C,IAAC/vB,EAAQsE,CAAK,EAAIi6D,EAElB,SAAM,QAAQv+D,CAAM,EAAG,CACzB,IAAIowI,EAAepwI,EAAO,OAAarD,EAAM,MAAM,KAAK,KAAK,EACzD2wJ,EAAuB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM33C,GAAOy6B,EAAa,SAASz6B,CAAG,CAAC,EAC1E43C,EAAsB,CAAC,EAAE,CAAC,EAAE,MAAa53C,GAAAy6B,EAAa,SAASz6B,CAAG,CAAC,EAEnE31G,EAAO,SAAW,EACXA,EAAA,YACDstJ,GAAwBttJ,EAAO,SAAW,EACzCA,EAAA,WACDutJ,GAAuBvtJ,EAAO,SAAW,EACxCA,EAAA,WACDA,EAAO,OACNA,EAAA,GAAGA,EAAO,MAAM,YAEhBA,IAAO,CAAC,EAAE,MAAM,QAE7B,CAEA,OACGogG,GAAApS,GAAW,eAAX,CAA2B,GAAGj+D,EAC5B,UAAA/vB,EACAsE,CACH,GAEJ,EAEekpJ,IAACz9H,GAAU,CAClB,MAAAy5C,EAAM6qB,SAAO,IAAI,EAGrB,OAAAlT,EAACoY,GAAA,CACE,GAAGxpE,EACJ,QAAO,GACP,kBAAmB,GACnB,oBAAqB,GACrB,WAAY,QAAEy+D,IAAA,eAAQtD,GAAe,EACrC,eAAgB,GAChB,IAAA1hB,EACA,YAAY,aAGlB,EC1DMikF,IAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAAE,IAAI,CAAC93C,EAAK/rG,KACpE,CAAE,MAAO+rG,EAAK,MAAO/rG,CAAM,EACnC,EAED8jJ,IAAe,CAAC,CAAE,SAAApxB,EAAU,YAAAqxB,KAExBxsE,EAACqsE,IAAA,CACC,UAAU,oBACV,MAAOlxB,EACP,UAAW,GACX,WAAY,GACZ,QAASmxB,IACT,SAAUE,CAAA,uBCdZz2I,IAAS6yC,GAAc,QAAG,OAAO,OAAU,KAAe,OAAO,MAAQ,KACzE,OAAS,OAAO,KAAQ,KAAe,KAAK,MAAQ,KAAO,KAE3D,SAAS,aAAa,IACtB,OAAO,KAAO,WAAU,IAAM7yC,uCCL9B8yC,IAAOC,GAAc,QAAG,CAAE,QAAS,QAAQ,EAC3C,OAAO,KAAO,WAAU,IAAMD,uBCDlCE,IAAiB,SAAUC,EAAI,CAC7B,GAAI,OAAOA,GAAM,WAAY,MAAM,UAAUA,EAAK,qBAAqB,EACvE,OAAOA,CACT,ECFIC,IAAYrlB,IAChBslB,GAAiB,SAAUvrC,EAAIqK,EAAMtW,EAAQ,CAE3C,GADAu3C,IAAUtrC,CAAE,EACRqK,IAAS,OAAW,OAAOrK,EAC/B,OAAQjM,EAAM,CACZ,IAAK,GAAG,OAAO,SAAUkJ,EAAG,CAC1B,OAAO+C,EAAG,KAAKqK,EAAMpN,CAAC,CAC5B,EACI,IAAK,GAAG,OAAO,SAAUA,EAAGC,EAAG,CAC7B,OAAO8C,EAAG,KAAKqK,EAAMpN,EAAGC,CAAC,CAC/B,EACI,IAAK,GAAG,OAAO,SAAUD,EAAGC,EAAGnK,EAAG,CAChC,OAAOiN,EAAG,KAAKqK,EAAMpN,EAAGC,EAAGnK,CAAC,CAClC,CACG,CACD,OAAO,UAAyB,CAC9B,OAAOiN,EAAG,MAAMqK,EAAM,SAAS,CACnC,CACA,QCnBAmhC,GAAiB,SAAUH,EAAI,CAC7B,OAAO,OAAOA,GAAO,SAAWA,IAAO,KAAO,OAAOA,GAAO,UAC9D,ECFII,IAAWxlB,GACfylB,GAAiB,SAAUL,EAAI,CAC7B,GAAI,CAACI,IAASJ,CAAE,EAAG,MAAM,UAAUA,EAAK,oBAAoB,EAC5D,OAAOA,CACT,ECJAM,GAAiB,SAAUC,EAAM,CAC/B,GAAI,CACF,MAAO,CAAC,CAACA,GACV,MAAW,CACV,MAAO,EACR,CACH,ECLAC,GAAiB,CAAC5lB,GAAoB,UAAY,CAChD,OAAO,OAAO,eAAe,GAAI,IAAK,CAAE,IAAK,UAAY,CAAE,MAAO,EAAI,EAAE,EAAE,GAAK,CACjF,CAAC,2CCHD,IAAIwlB,EAAWxlB,GACX9zB,EAAWs3B,GAAqB,SAEhCqiB,EAAKL,EAASt5C,CAAQ,GAAKs5C,EAASt5C,EAAS,aAAa,EAChD,OAAA45C,GAAG,SAAUV,EAAI,CAC7B,OAAOS,EAAK35C,EAAS,cAAck5C,CAAE,EAAI,OCL3C,IAAAW,GAAiB,CAAC/lB,IAA6B,CAACyD,GAAoB,UAAY,CAC9E,OAAO,OAAO,eAAeD,GAAwB,EAAC,KAAK,EAAG,IAAK,CAAE,IAAK,UAAY,CAAE,MAAO,EAAE,CAAI,GAAE,GAAK,CAC9G,CAAC,ECDGgiB,GAAWxlB,GAGfgmB,GAAiB,SAAUZ,EAAI5iB,EAAG,CAChC,GAAI,CAACgjB,GAASJ,CAAE,EAAG,OAAOA,EAC1B,IAAIrrC,EAAIpG,EAGR,GAFI6uB,GAAK,OAAQzoB,EAAKqrC,EAAG,WAAa,YAAc,CAACI,GAAS7xC,EAAMoG,EAAG,KAAKqrC,CAAE,CAAC,GAC3E,OAAQrrC,EAAKqrC,EAAG,UAAY,YAAc,CAACI,GAAS7xC,EAAMoG,EAAG,KAAKqrC,CAAE,CAAC,GACrE,CAAC5iB,GAAK,OAAQzoB,EAAKqrC,EAAG,WAAa,YAAc,CAACI,GAAS7xC,EAAMoG,EAAG,KAAKqrC,CAAE,CAAC,EAAG,OAAOzxC,EAC1F,MAAM,UAAU,yCAAyC,CAC3D,ECXIsyC,GAAWjmB,GACXkmB,IAAiB1iB,GACjB2iB,IAAc1iB,GACd2iB,IAAK,OAAO,eAEhBC,GAAA,EAAYC,GAA4B,OAAO,eAAiB,SAAwBlkB,EAAGC,EAAGkkB,EAAY,CAIxG,GAHAN,GAAS7jB,CAAC,EACVC,EAAI8jB,IAAY9jB,EAAG,EAAI,EACvB4jB,GAASM,CAAU,EACfL,IAAgB,GAAI,CACtB,OAAOE,IAAGhkB,EAAGC,EAAGkkB,CAAU,CAC9B,MAAc,CAAe,CAC3B,GAAI,QAASA,GAAc,QAASA,EAAY,MAAM,UAAU,0BAA0B,EAC1F,MAAI,UAAWA,IAAYnkB,EAAEC,CAAC,EAAIkkB,EAAW,OACtCnkB,CACT,ECfA,IAAAokB,GAAiB,SAAUC,EAAQ7uD,EAAO,CACxC,MAAO,CACL,WAAY,EAAE6uD,EAAS,GACvB,aAAc,EAAEA,EAAS,GACzB,SAAU,EAAEA,EAAS,GACrB,MAAO7uD,CACX,CACA,ECPIwuD,IAAKpmB,GACL0mB,IAAaljB,GACjBmjB,GAAiBljB,GAA4B,SAAUlhB,EAAQhZ,EAAK3R,EAAO,CACzE,OAAOwuD,IAAG,EAAE7jC,EAAQhZ,EAAKm9C,IAAW,EAAG9uD,CAAK,CAAC,CAC/C,EAAI,SAAU2qB,EAAQhZ,EAAK3R,EAAO,CAChC,OAAA2qB,EAAOhZ,CAAG,EAAI3R,EACP2qB,CACT,ECPIoe,IAAiB,CAAE,EAAC,eACxBimB,GAAiB,SAAUxB,EAAI77C,EAAK,CAClC,OAAOo3B,IAAe,KAAKykB,EAAI77C,CAAG,CACpC,ECHI4I,GAAS6tB,GACTilB,GAAOzhB,GACPqjB,GAAMpjB,GACNqjB,IAAOR,GACPS,IAAMC,GACNC,GAAY,YAEZC,GAAU,SAAUvlD,EAAMzK,EAAM4N,EAAQ,CAC1C,IAAIqiD,EAAYxlD,EAAOulD,GAAQ,EAC3BE,EAAYzlD,EAAOulD,GAAQ,EAC3BG,EAAY1lD,EAAOulD,GAAQ,EAC3BI,EAAW3lD,EAAOulD,GAAQ,EAC1BK,EAAU5lD,EAAOulD,GAAQ,EACzBM,EAAU7lD,EAAOulD,GAAQ,EACzB5jB,EAAU8jB,EAAYnC,GAAOA,GAAK/tD,CAAI,IAAM+tD,GAAK/tD,CAAI,EAAI,IACzDuwD,EAAWnkB,EAAQ2jB,EAAS,EAC5B5vD,EAAS+vD,EAAYj1C,GAASk1C,EAAYl1C,GAAOjb,CAAI,GAAKib,GAAOjb,CAAI,GAAK,CAAE,GAAE+vD,EAAS,EACvF19C,EAAKm+C,EAAKC,EACVP,IAAWtiD,EAAS5N,GACxB,IAAKqS,KAAOzE,EAEV4iD,EAAM,CAACP,GAAa9vD,GAAUA,EAAOkS,CAAG,IAAM,OAC1C,EAAAm+C,GAAOX,IAAIzjB,EAAS/5B,CAAG,KAE3Bo+C,EAAMD,EAAMrwD,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAEpC+5B,EAAQ/5B,CAAG,EAAI69C,GAAa,OAAO/vD,EAAOkS,CAAG,GAAK,WAAazE,EAAOyE,CAAG,EAEvEg+C,GAAWG,EAAMb,GAAIc,EAAKx1C,EAAM,EAEhCq1C,GAAWnwD,EAAOkS,CAAG,GAAKo+C,EAAO,SAAUnmB,EAAG,CAC9C,IAAIG,EAAI,SAAU3qB,EAAGC,EAAGnK,EAAG,CACzB,GAAI,gBAAgB00B,EAAG,CACrB,OAAQ,UAAU,OAAM,CACtB,IAAK,GAAG,OAAO,IAAIA,EACnB,IAAK,GAAG,OAAO,IAAIA,EAAExqB,CAAC,EACtB,IAAK,GAAG,OAAO,IAAIwqB,EAAExqB,EAAGC,CAAC,CAC1B,CAAC,OAAO,IAAIuqB,EAAExqB,EAAGC,EAAGnK,CAAC,CACvB,CAAC,OAAO00B,EAAE,MAAM,KAAM,SAAS,CACxC,EACM,OAAAG,EAAEslB,EAAS,EAAIzlB,EAAEylB,EAAS,EACnBtlB,CAER,EAAEgmB,CAAG,EAAIL,GAAY,OAAOK,GAAO,WAAad,GAAI,SAAS,KAAMc,CAAG,EAAIA,EAEvEL,KACDhkB,EAAQ,UAAYA,EAAQ,QAAU,KAAK/5B,CAAG,EAAIo+C,EAE/ChmD,EAAOulD,GAAQ,GAAKO,GAAY,CAACA,EAASl+C,CAAG,GAAGu9C,IAAKW,EAAUl+C,EAAKo+C,CAAG,GAGjF,EAEAT,GAAQ,EAAI,EACZA,GAAQ,EAAI,EACZA,GAAQ,EAAI,EACZA,GAAQ,EAAI,EACZA,GAAQ,EAAI,GACZA,GAAQ,EAAI,GACZA,GAAQ,EAAI,GACZA,GAAQ,EAAI,IACZ,IAAAU,GAAiBV,GC7Dbj0C,IAAW,CAAE,EAAC,SAElB40C,GAAiB,SAAUzC,EAAI,CAC7B,OAAOnyC,IAAS,KAAKmyC,CAAE,EAAE,MAAM,EAAG,EAAE,CACtC,2CCHA,IAAI0C,EAAM9nB,GAEV,OAAA+nB,GAAiB,OAAO,GAAG,EAAE,qBAAqB,CAAC,EAAI,OAAS,SAAU3C,EAAI,CAC5E,OAAO0C,EAAI1C,CAAE,GAAK,SAAWA,EAAG,MAAM,EAAE,EAAI,OAAOA,CAAE,UCHvD4C,GAAiB,SAAU5C,EAAI,CAC7B,GAAIA,GAAM,KAAW,MAAM,UAAU,yBAA2BA,CAAE,EAClE,OAAOA,CACT,ECHI6C,IAAUjoB,GAAA,EACVkoB,IAAU1kB,GACd2kB,GAAiB,SAAU/C,EAAI,CAC7B,OAAO6C,IAAQC,IAAQ9C,CAAE,CAAC,CAC5B,ECJIgD,IAAO,KAAK,KACZC,IAAQ,KAAK,MACjBC,GAAiB,SAAUlD,EAAI,CAC7B,OAAO,MAAMA,EAAK,CAACA,CAAE,EAAI,GAAKA,EAAK,EAAIiD,IAAQD,KAAMhD,CAAE,CACzD,ECJImD,IAAYvoB,GACZwoB,IAAM,KAAK,IACfC,IAAiB,SAAUrD,EAAI,CAC7B,OAAOA,EAAK,EAAIoD,IAAID,IAAUnD,CAAE,EAAG,gBAAgB,EAAI,CACzD,ECLImD,IAAYvoB,GACZlL,IAAM,KAAK,IACX0zB,IAAM,KAAK,IACfE,IAAiB,SAAU7jD,EAAOiJ,EAAQ,CACxC,OAAAjJ,EAAQ0jD,IAAU1jD,CAAK,EAChBA,EAAQ,EAAIiwB,IAAIjwB,EAAQiJ,EAAQ,CAAC,EAAI06C,IAAI3jD,EAAOiJ,CAAM,CAC/D,ECJI66C,IAAY3oB,GACZ4oB,IAAWplB,IACXqlB,IAAkBplB,IACtBqlB,IAAiB,SAAUC,EAAa,CACtC,OAAO,SAAU55C,EAAO8K,EAAI+uC,EAAW,CACrC,IAAI5mB,EAAIumB,IAAUx5C,CAAK,EACnBrB,EAAS86C,IAASxmB,EAAE,MAAM,EAC1Bv9B,EAAQgkD,IAAgBG,EAAWl7C,CAAM,EACzClW,EAGJ,GAAImxD,GAAe9uC,GAAMA,GAAI,KAAOnM,EAASjJ,GAG3C,GAFAjN,EAAQwqC,EAAEv9B,GAAO,EAEbjN,GAASA,EAAO,MAAO,OAEtB,MAAMkW,EAASjJ,EAAOA,IAAS,IAAIkkD,GAAelkD,KAASu9B,IAC5DA,EAAEv9B,CAAK,IAAMoV,EAAI,OAAO8uC,GAAelkD,GAAS,EACpD,MAAO,CAACkkD,GAAe,EAC7B,CACA,kBCtBAE,IAAiB,GCAbhE,IAAOjlB,GACP7tB,GAASqxB,GACT0lB,GAAS,qBACTC,GAAQh3C,GAAO+2C,EAAM,IAAM/2C,GAAO+2C,EAAM,EAAI,KAE/CE,WAAiB,SAAU7/C,EAAK3R,EAAO,CACtC,OAAOuxD,GAAM5/C,CAAG,IAAM4/C,GAAM5/C,CAAG,EAAI3R,IAAU,OAAYA,EAAQ,GACnE,GAAG,WAAY,EAAE,EAAE,KAAK,CACtB,QAASqtD,IAAK,QACd,KAA8B,OAC9B,UAAW,sCACb,CAAC,oBCXGllD,IAAK,EACLspD,IAAK,KAAK,SACdC,GAAiB,SAAU//C,EAAK,CAC9B,MAAO,UAAU,OAAOA,IAAQ,OAAY,GAAKA,EAAK,MAAO,EAAExJ,IAAKspD,KAAI,SAAS,EAAE,CAAC,CACtF,ECJIE,GAASvpB,GAAqB,MAAM,EACpCwpB,IAAMhmB,GACVimB,GAAiB,SAAUlgD,EAAK,CAC9B,OAAOggD,GAAOhgD,CAAG,IAAMggD,GAAOhgD,CAAG,EAAIigD,IAAIjgD,CAAG,EAC9C,ECJIw9C,GAAM/mB,GACN2oB,IAAYnlB,GACZkmB,IAAejmB,IAA6B,EAAK,EACjDkmB,IAAWrD,GAAyB,UAAU,EAElDsD,GAAiB,SAAUrnC,EAAQsnC,EAAO,CACxC,IAAIznB,EAAIumB,IAAUpmC,CAAM,EACpB9mB,EAAI,EACJF,EAAS,GACTgO,EACJ,IAAKA,KAAO64B,EAAO74B,GAAOogD,KAAU5C,GAAI3kB,EAAG74B,CAAG,GAAKhO,EAAO,KAAKgO,CAAG,EAElE,KAAOsgD,EAAM,OAASpuD,GAAOsrD,GAAI3kB,EAAG74B,EAAMsgD,EAAMpuD,GAAG,CAAC,IAClD,CAACiuD,IAAanuD,EAAQgO,CAAG,GAAKhO,EAAO,KAAKgO,CAAG,GAE/C,OAAOhO,CACT,ECfAuuD,GACE,gGACA,MAAM,GAAG,ECFPC,IAAQ/pB,GACRgqB,IAAcxmB,GAElBymB,GAAiB,OAAO,MAAQ,SAAc7nB,EAAG,CAC/C,OAAO2nB,IAAM3nB,EAAG4nB,GAAW,CAC7B,QCNSE,GAAA,EAAG,OAAO,kECAVC,GAAA,EAAG,CAAE,EAAC,yBCCf,IAAIjC,IAAUloB,GACdoqB,GAAiB,SAAUhF,EAAI,CAC7B,OAAO,OAAO8C,IAAQ9C,CAAE,CAAC,CAC3B,4CCFA,IAAIiF,EAAcrqB,GACdsqB,EAAU9mB,GACV+mB,EAAO9mB,GACP+mB,EAAMlE,KACNzlB,EAAWmmB,GACXiB,EAAUwC,KACVC,EAAU,OAAO,OAGrB,OAAAC,GAAiB,CAACD,GAAWE,GAAoB,UAAY,CAC3D,IAAItpB,EAAI,GACJC,EAAI,GAEJiB,EAAI,SACJR,EAAI,uBACR,OAAAV,EAAEkB,CAAC,EAAI,EACPR,EAAE,MAAM,EAAE,EAAE,QAAQ,SAAUlzB,EAAG,CAAEyyB,EAAEzyB,CAAC,EAAIA,CAAI,GACvC47C,EAAQ,GAAIppB,CAAC,EAAEkB,CAAC,GAAK,GAAK,OAAO,KAAKkoB,EAAQ,CAAE,EAAEnpB,CAAC,CAAC,EAAE,KAAK,EAAE,GAAKS,CAC1E,GAAI,SAAgB3qC,EAAQyN,EAAQ,CAMnC,QALI29B,EAAI5B,EAASxpC,CAAM,EACnBwzD,EAAO,UAAU,OACjBhmD,EAAQ,EACRimD,EAAaP,EAAK,EAClBQ,EAASP,EAAI,EACVK,EAAOhmD,GAMZ,QALI29B,EAAIylB,EAAQ,UAAUpjD,GAAO,CAAC,EAC9BgV,EAAOixC,EAAaR,EAAQ9nB,CAAC,EAAE,OAAOsoB,EAAWtoB,CAAC,CAAC,EAAI8nB,EAAQ9nB,CAAC,EAChE10B,EAAS+L,EAAK,OACdhL,EAAI,EACJtF,EACGuE,EAASe,GACdtF,EAAMsQ,EAAKhL,GAAG,GACV,CAACw7C,GAAeU,EAAO,KAAKvoB,EAAGj5B,CAAG,KAAGk5B,EAAEl5B,CAAG,EAAIi5B,EAAEj5B,CAAG,GAEzD,OAAOk5B,CACV,EAAGioB,KCpCJ,IAAIxD,GAAUlnB,GAEdknB,GAAQA,GAAQ,EAAIA,GAAQ,EAAG,SAAU,CAAE,OAAQ1jB,IAAA,EAA6B,ECFhF,IAAAwnB,IAAiBxnB,GAA+B,OAAO,OCDvDwnB,IAAiB,CAAE,QAAWhrB,IAA6C,WAAY,EAAM,ECIzF6oH,IAAU7oH,IAEV8oH,IAAW/1F,IAAuB81F,GAAO,EAE7C,SAAS91F,IAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,IAAA6kD,GAAkB8zF,IAAS,SAAW,SAAUzxJ,EAAQ,CACtD,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIqJ,EAAS,UAAUrJ,CAAC,EAExB,QAAS8N,KAAOzE,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAClDlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAG7B,CAED,OAAOlS,CACT,EClBA29D,GAAkB,SAAUgG,EAAUC,EAAa,CACjD,GAAI,EAAED,aAAoBC,GACxB,MAAM,IAAI,UAAU,mCAAmC,CAE3D,QCRI1S,IAAYvoB,GACZkoB,IAAU1kB,GAGdulH,IAAiB,SAAUC,EAAW,CACpC,OAAO,SAAU5kI,EAAMytF,EAAK,CAC1B,IAAIhhG,EAAI,OAAOq3C,IAAQ9jC,CAAI,CAAC,EACxB3oB,EAAI8sD,IAAUspD,CAAG,EACjBnhG,EAAIG,EAAE,OACN,EAAGoG,EACP,OAAIxb,EAAI,GAAKA,GAAKiV,EAAUs4I,EAAY,GAAK,QAC7C,EAAIn4I,EAAE,WAAWpV,CAAC,EACX,EAAI,OAAU,EAAI,OAAUA,EAAI,IAAMiV,IAAMuG,EAAIpG,EAAE,WAAWpV,EAAI,CAAC,GAAK,OAAUwb,EAAI,MACxF+xI,EAAYn4I,EAAE,OAAOpV,CAAC,EAAI,EAC1ButJ,EAAYn4I,EAAE,MAAMpV,EAAGA,EAAI,CAAC,GAAK,EAAI,OAAU,KAAOwb,EAAI,OAAU,MAC5E,CACA,EChBAgyI,GAAiBjpH,GCAjBkpH,GAAiB,CAAE,ECAf9iG,IAAKpmB,GACLimB,IAAWziB,GACX8mB,IAAU7mB,GAEd0nB,IAAiB7E,GAA4B,OAAO,iBAAmB,SAA0BlkB,EAAGgpB,EAAY,CAC9GnF,IAAS7jB,CAAC,EAKV,QAJIvoB,EAAOywC,IAAQc,CAAU,EACzBt9C,EAAS+L,EAAK,OACd,EAAI,EACJwoB,EACGv0B,EAAS,GAAGs4C,IAAG,EAAEhkB,EAAGC,EAAIxoB,EAAK,GAAG,EAAGuxC,EAAW/oB,CAAC,CAAC,EACvD,OAAOD,CACT,4CCZA,IAAIl2B,EAAW8zB,GAAqB,SACpC,OAAAqrB,GAAiBn/C,GAAYA,EAAS,mBCAtC,IAAI+5C,IAAWjmB,GACXsrB,IAAM9nB,IACNwmB,GAAcvmB,GACdkmB,IAAWrD,GAAyB,UAAU,EAC9CiF,GAAQ,UAAY,GACpBtE,GAAY,YAGZuE,GAAa,UAAY,CAE3B,IAAIC,EAASzE,KAAyB,QAAQ,EAC1CvrD,EAAIuuD,GAAY,OAChB0B,EAAK,IACLC,EAAK,IACLC,EAWJ,IAVAH,EAAO,MAAM,QAAU,OACvBhB,IAAkB,EAAC,YAAYgB,CAAM,EACrCA,EAAO,IAAM,cAGbG,EAAiBH,EAAO,cAAc,SACtCG,EAAe,KAAI,EACnBA,EAAe,MAAMF,EAAK,SAAWC,EAAK,oBAAsBD,EAAK,UAAYC,CAAE,EACnFC,EAAe,MAAK,EACpBJ,GAAaI,EAAe,EACrBnwD,KAAK,OAAO+vD,GAAWvE,EAAS,EAAE+C,GAAYvuD,CAAC,CAAC,EACvD,OAAO+vD,GAAU,CACnB,EAEAK,GAAiB,OAAO,QAAU,SAAgBzpB,EAAGgpB,EAAY,CAC/D,IAAI7vD,EACJ,OAAI6mC,IAAM,MACRmpB,GAAMtE,EAAS,EAAIhB,IAAS7jB,CAAC,EAC7B7mC,EAAS,IAAIgwD,GACbA,GAAMtE,EAAS,EAAI,KAEnB1rD,EAAOouD,GAAQ,EAAIvnB,GACd7mC,EAASiwD,KACTJ,IAAe,OAAY7vD,EAAS+vD,IAAI/vD,EAAQ6vD,CAAU,CACnE,kBCxCIjC,GAAQnpB,GAAqB,KAAK,EAClCwpB,IAAMhmB,GACN2lH,GAAS1lH,GAAqB,OAC9B2lH,GAAa,OAAOD,IAAU,WAE9BE,IAAWC,GAAA,QAAiB,SAAUpyJ,EAAM,CAC9C,OAAOiyD,GAAMjyD,CAAI,IAAMiyD,GAAMjyD,CAAI,EAC/BkyJ,IAAcD,GAAOjyJ,CAAI,IAAMkyJ,GAAaD,GAAS3/F,KAAK,UAAYtyD,CAAI,EAC9E,EAEAmyJ,IAAS,MAAQlgG,qBCVbogG,IAAMvpH,GAAwB,EAC9B+mB,IAAMvjB,GACNgmH,GAAM/lH,GAAkB,aAAa,EAEzCgmH,GAAiB,SAAUrkG,EAAIjqC,EAAKuuI,EAAM,CACpCtkG,GAAM,CAAC2B,IAAI3B,EAAKskG,EAAOtkG,EAAKA,EAAG,UAAWokG,EAAG,GAAGD,IAAInkG,EAAIokG,GAAK,CAAE,aAAc,GAAM,MAAOruI,CAAG,CAAE,CACrG,4CCLA,IAAIqiB,EAASwC,GACTi5C,EAAaz1C,GACbmmH,EAAiBlmH,GACjBmmH,EAAoB,GAGxB5iG,UAAmB4iG,EAAmBtjG,GAAkB,UAAU,EAAG,UAAY,CAAE,OAAO,IAAK,CAAE,EAEjGujG,GAAiB,SAAU5uF,EAAa6uF,EAAMt4I,EAAM,CAClDypD,EAAY,UAAYz9B,EAAOosH,EAAmB,CAAE,KAAM3wE,EAAW,EAAGznE,CAAI,CAAC,CAAE,EAC/Em4I,EAAe1uF,EAAa6uF,EAAO,WAAW,oDCVhD,IAAI/iG,EAAM/mB,GACNa,EAAW2C,GACXmmB,EAAWlmB,GAAyB,UAAU,EAC9CsmH,EAAc,OAAO,UAEzB,OAAAC,GAAiB,OAAO,gBAAkB,SAAU5nH,EAAG,CAErD,OADAA,EAAIvB,EAASuB,CAAC,EACV2kB,EAAI3kB,EAAGunB,CAAQ,EAAUvnB,EAAEunB,CAAQ,EACnC,OAAOvnB,EAAE,aAAe,YAAcA,aAAaA,EAAE,YAChDA,EAAE,YAAY,UACdA,aAAa,OAAS2nH,EAAc,sDCT/C,IAAI7iG,EAAU1jB,GACVymH,EAAWxmH,GACXqjB,EAAOR,GACP4jG,EAAYljG,GACZmjG,EAAc1/F,MACdk/F,EAAiB/+F,GACjB4tB,EAAiBpX,MACjBgpF,EAAWroF,GAAkB,UAAU,EACvCsoF,EAAQ,EAAE,GAAG,MAAQ,QAAU,CAAE,EAAC,KAAI,GACtCC,EAAc,aACdC,EAAO,OACPC,EAAS,SAETC,EAAa,UAAY,CAAE,OAAO,IAAK,EAE3C,OAAAC,GAAiB,SAAUC,EAAMb,EAAM7uF,EAAazpD,EAAMo5I,EAASC,EAAQC,EAAQ,CACjFX,EAAYlvF,EAAa6uF,EAAMt4I,CAAI,EACnC,IAAIu5I,EAAY,SAAUC,GAAM,CAC9B,GAAI,CAACX,GAASW,MAAQt2I,EAAO,OAAOA,EAAMs2I,EAAI,EAC9C,OAAQA,GAAI,CACV,KAAKT,EAAM,OAAO,UAAgB,CAAE,OAAO,IAAItvF,EAAY,KAAM+vF,EAAI,GACrE,KAAKR,EAAQ,OAAO,UAAkB,CAAE,OAAO,IAAIvvF,EAAY,KAAM+vF,EAAI,EAC/E,CAAM,OAAO,UAAmB,CAAE,OAAO,IAAI/vF,EAAY,KAAM+vF,EAAI,EACnE,EACMxB,EAAMM,EAAO,YACbmB,EAAaL,GAAWJ,EACxBU,EAAa,GACbx2I,EAAQi2I,EAAK,UACbQ,EAAUz2I,EAAM01I,CAAQ,GAAK11I,EAAM41I,CAAW,GAAKM,GAAWl2I,EAAMk2I,CAAO,EAC3EQ,EAAWD,GAAWJ,EAAUH,CAAO,EACvCj7F,EAAWi7F,EAAWK,EAAwBF,EAAU,SAAS,EAA9BK,EAAkC,OACrEC,EAAavB,GAAQ,SAAUp1I,EAAM,SAAWy2I,EAChDG,EAAS/hJ,EAAKqgJ,GAuBlB,GArBIyB,IACFzB,GAAoBpxE,EAAe6yE,EAAW,KAAK,IAAIV,CAAM,CAAC,EAC1Df,KAAsB,OAAO,WAAaA,GAAkB,MAE9DD,EAAeC,GAAmBJ,EAAK,EAAI,GAM3CyB,GAAcE,GAAWA,EAAQ,OAASX,IAC5CU,EAAa,GACbE,EAAW,UAAkB,CAAE,OAAOD,EAAQ,KAAK,IAAI,IAGxCL,IAAYT,GAASa,GAAc,CAACx2I,EAAM01I,CAAQ,IACjEtjG,EAAKpyC,EAAO01I,EAAUgB,CAAQ,EAGhClB,EAAUJ,CAAI,EAAIsB,EAClBlB,EAAUV,CAAG,EAAIiB,EACbG,EAMF,GALAU,EAAU,CACR,OAAQL,EAAaG,EAAWL,EAAUP,CAAM,EAChD,KAAMK,EAASO,EAAWL,EAAUR,CAAI,EACxC,QAAS56F,CACf,EACQm7F,EAAQ,IAAKvhJ,KAAO+hJ,EAChB/hJ,KAAOmL,GAAQu1I,EAASv1I,EAAOnL,EAAK+hJ,EAAQ/hJ,CAAG,CAAC,OACjD29C,EAAQA,EAAQ,EAAIA,EAAQ,GAAKmjG,GAASa,GAAapB,EAAMwB,CAAO,EAE7E,OAAOA,MClET,IAAIC,IAAMvrH,IAAwB,EAAI,EAGtCwD,GAAA,EAA0B,OAAQ,SAAU,SAAUgoH,EAAU,CAC9D,KAAK,GAAK,OAAOA,CAAQ,EACzB,KAAK,GAAK,CAEZ,EAAG,UAAY,CACb,IAAIppH,EAAI,KAAK,GACTv9B,EAAQ,KAAK,GACbg7I,EACJ,OAAIh7I,GAASu9B,EAAE,OAAe,CAAE,MAAO,OAAW,KAAM,KACxDy9G,EAAQ0L,IAAInpH,EAAGv9B,CAAK,EACpB,KAAK,IAAMg7I,EAAM,OACV,CAAE,MAAOA,EAAO,KAAM,EAAK,EACpC,CAAC,EChBD,IAAA4L,IAAiB,SAAUh1I,EAAM7e,EAAO,CACtC,MAAO,CAAE,MAAOA,EAAO,KAAM,CAAC,CAAC6e,CAAI,CACrC,ECAIipI,GAAOl8G,IACP0mH,GAAYzmH,GACZklB,IAAYrC,GAMCU,GAAyB,EAAC,MAAO,QAAS,SAAUwkG,EAAUR,EAAM,CACnF,KAAK,GAAKriG,IAAU6iG,CAAQ,EAC5B,KAAK,GAAK,EACV,KAAK,GAAKR,CAEZ,EAAG,UAAY,CACb,IAAI5oH,EAAI,KAAK,GACT4oH,EAAO,KAAK,GACZnmJ,EAAQ,KAAK,KACjB,MAAI,CAACu9B,GAAKv9B,GAASu9B,EAAE,QACnB,KAAK,GAAK,OACHs9G,GAAK,CAAC,GAEXsL,GAAQ,OAAetL,GAAK,EAAG76I,CAAK,EACpCmmJ,GAAQ,SAAiBtL,GAAK,EAAGt9G,EAAEv9B,CAAK,CAAC,EACtC66I,GAAK,EAAG,CAAC76I,EAAOu9B,EAAEv9B,CAAK,CAAC,CAAC,CAClC,EAAG,QAAQ,EAGXqlJ,GAAU,UAAYA,GAAU,MC5BhC,IAAI/3I,IAASqxB,GACTsjB,IAAOrjB,GACPymH,GAAY5jG,GACZolG,GAAgB1kG,GAAkB,aAAa,EAE/C2kG,GAAgB,wbAIS,MAAM,GAAG,EAEtC,QAASlwJ,GAAI,EAAGA,GAAIkwJ,GAAa,OAAQlwJ,KAAK,CAC5C,IAAIquJ,GAAO6B,GAAalwJ,EAAC,EACrBmwJ,GAAaz5I,IAAO23I,EAAI,EACxBp1I,GAAQk3I,IAAcA,GAAW,UACjCl3I,IAAS,CAACA,GAAMg3I,EAAa,GAAG5kG,IAAKpyC,GAAOg3I,GAAe5B,EAAI,EACnEI,GAAUJ,EAAI,EAAII,GAAU,KAC9B,WClBA2B,GAAA,EAAY7rH,GCEZ,IAAA8rH,IAAiBroH,GAAkC,EAAE,UAAU,ECF/DqoH,IAAiB,CAAE,QAAW9rH,IAA+C,WAAY,EAAM,kBCA3F+rH,GAAO/rH,GAAkB,MAAM,EAC/BwlB,IAAWhiB,GACXujB,GAAMtjB,GACNuoH,IAAU1lG,GAAwB,EAClCvmD,IAAK,EACLksJ,GAAe,OAAO,cAAgB,UAAY,CACpD,MAAO,EACT,EACIC,IAAS,CAACllG,GAAoB,UAAY,CAC5C,OAAOilG,GAAa,OAAO,kBAAkB,EAAE,CAAC,CAClD,CAAC,EACGE,GAAU,SAAU/mG,EAAI,CAC1B4mG,IAAQ5mG,EAAI2mG,GAAM,CAAE,MAAO,CACzB,EAAG,KAAM,EAAEhsJ,IACX,EAAG,CAAE,CACN,EAAE,CACL,EACIqsJ,IAAU,SAAUhnG,EAAI5nB,EAAQ,CAElC,GAAI,CAACgoB,IAASJ,CAAE,EAAG,OAAO,OAAOA,GAAM,SAAWA,GAAM,OAAOA,GAAM,SAAW,IAAM,KAAOA,EAC7F,GAAI,CAAC2B,GAAI3B,EAAI2mG,EAAI,EAAG,CAElB,GAAI,CAACE,GAAa7mG,CAAE,EAAG,MAAO,IAE9B,GAAI,CAAC5nB,EAAQ,MAAO,IAEpB2uH,GAAQ/mG,CAAE,CAEX,CAAC,OAAOA,EAAG2mG,EAAI,EAAE,CACpB,EACIM,IAAU,SAAUjnG,EAAI5nB,EAAQ,CAClC,GAAI,CAACupB,GAAI3B,EAAI2mG,EAAI,EAAG,CAElB,GAAI,CAACE,GAAa7mG,CAAE,EAAG,MAAO,GAE9B,GAAI,CAAC5nB,EAAQ,MAAO,GAEpB2uH,GAAQ/mG,CAAE,CAEX,CAAC,OAAOA,EAAG2mG,EAAI,EAAE,CACpB,EAEIO,IAAW,SAAUlnG,EAAI,CAC3B,OAAI8mG,KAAUjlJ,IAAK,MAAQglJ,GAAa7mG,CAAE,GAAK,CAAC2B,GAAI3B,EAAI2mG,EAAI,GAAGI,GAAQ/mG,CAAE,EAClEA,CACT,EACIn+C,IAAOslJ,GAAA,QAAiB,CAC1B,IAAKR,GACL,KAAM,GACN,QAASK,IACT,QAASC,IACT,SAAUC,GACZ,iBCnDIrnG,GAAOzhB,GAEPgpH,IAASlmG,GACT+xB,IAAiBrxB,GAAwB,EAC7CylG,GAAiB,SAAUv1J,EAAM,CAC/B,IAAIw1J,EAAUznG,GAAK,SAAWA,GAAK,OAAmB,CAAE,GACpD/tD,EAAK,OAAO,CAAC,GAAK,KAAO,EAAEA,KAAQw1J,IAAUr0E,IAAeq0E,EAASx1J,EAAM,CAAE,MAAOs1J,IAAO,EAAEt1J,CAAI,CAAC,CAAE,CAC1G,ECPIozD,IAAUtqB,GACVuqB,IAAO/mB,GACPgnB,IAAM/mB,GAAA,EACVkpH,IAAiB,SAAUvnG,EAAI,CAC7B,IAAI7pD,EAAS+uD,IAAQlF,CAAE,EACnB0F,EAAaP,IAAK,EACtB,GAAIO,EAKF,QAJIzpB,EAAUypB,EAAW1F,CAAE,EACvB2F,EAASP,IAAI,EACb,EAAI,EACJjhD,EACG83B,EAAQ,OAAS,GAAO0pB,EAAO,KAAK3F,EAAI77C,EAAM83B,EAAQ,GAAG,CAAC,GAAG9lC,EAAO,KAAKgO,CAAG,EACnF,OAAOhO,CACX,ECbIusD,IAAM9nB,GACV0qC,IAAiB,MAAM,SAAW,SAAiBt1D,EAAK,CACtD,OAAO0yC,IAAI1yC,CAAG,GAAK,OACrB,cCHI20C,IAAQ/pB,GACR4sH,IAAappH,GAA4B,OAAO,SAAU,WAAW,EAEhEqpH,GAAA,EAAG,OAAO,qBAAuB,SAA6BzqH,EAAG,CACxE,OAAO2nB,IAAM3nB,EAAGwqH,GAAU,CAC5B,ECLA,IAAIjkG,IAAY3oB,GACZ8sH,GAAOtpH,GAA0B,EACjCvwB,IAAW,CAAE,EAAC,SAEd85I,GAAc,OAAO,QAAU,UAAY,QAAU,OAAO,oBAC5D,OAAO,oBAAoB,MAAM,EAAI,GAErCC,IAAiB,SAAU5nG,EAAI,CACjC,GAAI,CACF,OAAO0nG,GAAK1nG,CAAE,CACf,MAAW,CACV,OAAO2nG,GAAY,OACpB,CACH,EAEAE,GAAA,EAAmB,SAA6B7nG,EAAI,CAClD,OAAO2nG,IAAe95I,IAAS,KAAKmyC,CAAE,GAAK,kBAAoB4nG,IAAe5nG,CAAE,EAAI0nG,GAAKnkG,IAAUvD,CAAE,CAAC,CACxG,YClBIoF,IAAMxqB,GAAA,EACN0mB,IAAaljB,GACbmlB,IAAYllB,GACZ0iB,IAAcG,GACdS,IAAMC,GACNd,IAAiBuE,GACjBsB,GAAO,OAAO,yBAETC,GAAA,EAAGpB,GAA4BmB,GAAO,SAAkC3pB,EAAGC,EAAG,CAGrF,GAFAD,EAAIumB,IAAUvmB,CAAC,EACfC,EAAI8jB,IAAY9jB,EAAG,EAAI,EACnB6jB,IAAgB,GAAI,CACtB,OAAO6F,GAAK3pB,EAAGC,CAAC,CACpB,MAAc,CAAe,CAC3B,GAAI0kB,IAAI3kB,EAAGC,CAAC,EAAG,OAAOqkB,IAAW,CAAC8D,IAAI,EAAE,KAAKpoB,EAAGC,CAAC,EAAGD,EAAEC,CAAC,CAAC,CAC1D,ECbA,IAAIlwB,GAAS6tB,GACT+mB,GAAMvjB,GACN6mB,GAAc5mB,GACdyjB,GAAUZ,GACV2jG,GAAWjjG,GACX+kG,IAAOthG,IAAmB,IAC1ByiG,GAAStiG,GACTrB,GAAS6X,GACTuoF,GAAiB5nF,GACjBvY,IAAMwY,GACNmrF,GAAMjrF,GACNsqF,IAASnqF,GACT+qF,IAAY5qF,GACZ6qF,IAAW3qF,IACXiI,IAAU/H,IACV3c,GAAW6c,GACXtd,IAAWud,GACXliC,IAAWysH,GACX3kG,GAAY4kG,GACZpnG,GAAcqnG,GACd9mG,GAAa+mG,GACbC,GAAUC,GACVC,GAAUC,GACVC,GAAQC,GACRC,GAAQC,GACRC,GAAMC,GACNpkG,IAAQqkG,GACRriG,GAAO+hG,GAAM,EACb1nG,GAAK8nG,GAAI,EACTpB,GAAOc,GAAQ,EACflB,GAAUv6I,GAAO,OACjBk8I,GAAQl8I,GAAO,KACfm8I,GAAaD,IAASA,GAAM,UAC5BpnG,GAAY,YACZsnG,GAASpB,GAAI,SAAS,EACtBqB,GAAerB,GAAI,aAAa,EAChCpiG,IAAS,CAAE,EAAC,qBACZ0jG,GAAiBllG,GAAO,iBAAiB,EACzCmlG,GAAanlG,GAAO,SAAS,EAC7BolG,GAAYplG,GAAO,YAAY,EAC/BwgG,GAAc,OAAO9iG,EAAS,EAC9B2nG,GAAa,OAAOlC,IAAW,YAAc,CAAC,CAACsB,GAAM,EACrDa,GAAU18I,GAAO,QAEjB0U,GAAS,CAACgoI,IAAW,CAACA,GAAQ5nG,EAAS,GAAK,CAAC4nG,GAAQ5nG,EAAS,EAAE,UAGhE6nG,GAAgBzkG,IAAe6iG,GAAO,UAAY,CACpD,OAAOQ,GAAQtnG,GAAG,CAAE,EAAE,IAAK,CACzB,IAAK,UAAY,CAAE,OAAOA,GAAG,KAAM,IAAK,CAAE,MAAO,CAAC,CAAE,EAAE,CAAI,CAC9D,CAAG,CAAC,EAAE,GAAK,CACX,CAAC,EAAI,SAAUhB,EAAI77C,EAAKk4B,EAAG,CACzB,IAAIstH,EAAYhjG,GAAKg+F,GAAaxgJ,CAAG,EACjCwlJ,GAAW,OAAOhF,GAAYxgJ,CAAG,EACrC68C,GAAGhB,EAAI77C,EAAKk4B,CAAC,EACTstH,GAAa3pG,IAAO2kG,IAAa3jG,GAAG2jG,GAAaxgJ,EAAKwlJ,CAAS,CACrE,EAAI3oG,GAEAn9B,GAAO,SAAU9N,EAAK,CACxB,IAAI4jE,EAAM2vE,GAAWvzI,CAAG,EAAIuyI,GAAQhB,GAAQzlG,EAAS,CAAC,EACtD,OAAA83B,EAAI,GAAK5jE,EACF4jE,CACT,EAEIiwE,GAAWJ,IAAc,OAAOlC,GAAQ,UAAY,SAAW,SAAUtnG,EAAI,CAC/E,OAAO,OAAOA,GAAM,QACtB,EAAI,SAAUA,EAAI,CAChB,OAAOA,aAAcsnG,EACvB,EAEIuC,GAAkB,SAAwB7pG,EAAI77C,EAAKk4B,EAAG,CAKxD,OAJI2jB,IAAO2kG,IAAakF,GAAgBN,GAAWplJ,EAAKk4B,CAAC,EACzDwkB,GAASb,CAAE,EACX77C,EAAM48C,GAAY58C,EAAK,EAAI,EAC3B08C,GAASxkB,CAAC,EACNslB,GAAI2nG,GAAYnlJ,CAAG,GAChBk4B,EAAE,YAIDslB,GAAI3B,EAAImpG,EAAM,GAAKnpG,EAAGmpG,EAAM,EAAEhlJ,CAAG,IAAG67C,EAAGmpG,EAAM,EAAEhlJ,CAAG,EAAI,IAC1Dk4B,EAAIisH,GAAQjsH,EAAG,CAAE,WAAYilB,GAAW,EAAG,EAAK,CAAC,CAAE,IAJ9CK,GAAI3B,EAAImpG,EAAM,GAAGnoG,GAAGhB,EAAImpG,GAAQ7nG,GAAW,EAAG,EAAE,CAAC,EACtDtB,EAAGmpG,EAAM,EAAEhlJ,CAAG,EAAI,IAIXulJ,GAAc1pG,EAAI77C,EAAKk4B,CAAC,GAC1B2kB,GAAGhB,EAAI77C,EAAKk4B,CAAC,CACxB,EACIytH,GAAoB,SAA0B9pG,EAAI/iB,EAAG,CACvD4jB,GAASb,CAAE,EAKX,QAJIvrC,EAAOwzI,IAAShrH,EAAIsmB,GAAUtmB,CAAC,CAAC,EAChC5mC,EAAI,EACJiV,EAAImJ,EAAK,OACTtQ,EACGmH,EAAIjV,GAAGwzJ,GAAgB7pG,EAAI77C,EAAMsQ,EAAKpe,GAAG,EAAG4mC,EAAE94B,CAAG,CAAC,EACzD,OAAO67C,CACT,EACI+pG,IAAU,SAAgB/pG,EAAI/iB,EAAG,CACnC,OAAOA,IAAM,OAAYqrH,GAAQtoG,CAAE,EAAI8pG,GAAkBxB,GAAQtoG,CAAE,EAAG/iB,CAAC,CACzE,EACI+sH,GAAwB,SAA8B7lJ,EAAK,CAC7D,IAAIm4B,EAAIqpB,IAAO,KAAK,KAAMxhD,EAAM48C,GAAY58C,EAAK,EAAI,CAAC,EACtD,OAAI,OAASwgJ,IAAehjG,GAAI2nG,GAAYnlJ,CAAG,GAAK,CAACw9C,GAAI4nG,GAAWplJ,CAAG,EAAU,GAC1Em4B,GAAK,CAACqlB,GAAI,KAAMx9C,CAAG,GAAK,CAACw9C,GAAI2nG,GAAYnlJ,CAAG,GAAKw9C,GAAI,KAAMwnG,EAAM,GAAK,KAAKA,EAAM,EAAEhlJ,CAAG,EAAIm4B,EAAI,EACvG,EACI2tH,GAA4B,SAAkCjqG,EAAI77C,EAAK,CAGzE,GAFA67C,EAAKuD,GAAUvD,CAAE,EACjB77C,EAAM48C,GAAY58C,EAAK,EAAI,EACvB,EAAA67C,IAAO2kG,IAAehjG,GAAI2nG,GAAYnlJ,CAAG,GAAK,CAACw9C,GAAI4nG,GAAWplJ,CAAG,GACrE,KAAIk4B,EAAIsqB,GAAK3G,EAAI77C,CAAG,EACpB,OAAIk4B,GAAKslB,GAAI2nG,GAAYnlJ,CAAG,GAAK,EAAEw9C,GAAI3B,EAAImpG,EAAM,GAAKnpG,EAAGmpG,EAAM,EAAEhlJ,CAAG,KAAIk4B,EAAE,WAAa,IAChFA,EACT,EACI6tH,GAAuB,SAA6BlqG,EAAI,CAK1D,QAJIyE,EAAQijG,GAAKnkG,GAAUvD,CAAE,CAAC,EAC1B7pD,EAAS,GACTE,EAAI,EACJ8N,EACGsgD,EAAM,OAASpuD,GAChB,CAACsrD,GAAI2nG,GAAYnlJ,EAAMsgD,EAAMpuD,GAAG,CAAC,GAAK8N,GAAOglJ,IAAUhlJ,GAAOwiJ,KAAMxwJ,EAAO,KAAKgO,CAAG,EACvF,OAAOhO,CACX,EACIg0J,GAAyB,SAA+BnqG,EAAI,CAM9D,QALIoqG,EAAQpqG,IAAO2kG,GACflgG,EAAQijG,GAAK0C,EAAQb,GAAYhmG,GAAUvD,CAAE,CAAC,EAC9C7pD,EAAS,GACT,EAAI,EACJgO,EACGsgD,EAAM,OAAS,GAChB9C,GAAI2nG,GAAYnlJ,EAAMsgD,EAAM,GAAG,CAAC,IAAM,CAAA2lG,GAAQzoG,GAAIgjG,GAAaxgJ,CAAG,IAAWhO,EAAO,KAAKmzJ,GAAWnlJ,CAAG,CAAC,EAC5G,OAAOhO,CACX,EAGKqzJ,KACHlC,GAAU,UAAkB,CAC1B,GAAI,gBAAgBA,GAAS,MAAM,UAAU,8BAA8B,EAC3E,IAAIvxI,EAAMquC,IAAI,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,MAAS,EACzDimG,EAAO,SAAU73J,EAAO,CACtB,OAASmyJ,IAAa0F,EAAK,KAAKd,GAAW/2J,CAAK,EAChDmvD,GAAI,KAAMwnG,EAAM,GAAKxnG,GAAI,KAAKwnG,EAAM,EAAGpzI,CAAG,IAAG,KAAKozI,EAAM,EAAEpzI,CAAG,EAAI,IACrE2zI,GAAc,KAAM3zI,EAAKurC,GAAW,EAAG9uD,CAAK,CAAC,CACnD,EACI,OAAIyyD,IAAexjC,IAAQioI,GAAc/E,GAAa5uI,EAAK,CAAE,aAAc,GAAM,IAAKs0I,CAAM,GACrFxmI,GAAK9N,CAAG,CACnB,EACE8uI,GAASyC,GAAQzlG,EAAS,EAAG,WAAY,UAAoB,CAC3D,OAAO,KAAK,EAChB,CAAG,EAED6mG,GAAM,EAAIuB,GACVnB,GAAI,EAAIe,GACRS,GAA0B,EAAI9B,GAAQ,EAAI0B,GAC1CK,GAAwB,EAAC,EAAIP,GAC7BpB,GAAM,EAAIuB,GAENllG,IAAe,CAACulG,KAClB3F,GAASF,GAAa,uBAAwBqF,EAA2B,EAG3E5C,IAAO,EAAI,SAAUt1J,EAAM,CACzB,OAAO+xB,GAAKkkI,GAAIj2J,CAAI,CAAC,CACzB,GAGAgwD,GAAQA,GAAQ,EAAIA,GAAQ,EAAIA,GAAQ,EAAI,CAAC0nG,GAAY,CAAE,OAAQlC,EAAS,GAE5E,QAASmD,GAEP,iHACA,MAAM,GAAG,EAAGhhJ,GAAI,EAAGghJ,GAAW,OAAShhJ,IAAGs+I,GAAI0C,GAAWhhJ,IAAG,CAAC,EAE/D,QAASihJ,GAAmB/lG,IAAMojG,GAAI,KAAK,EAAGr+I,GAAI,EAAGghJ,GAAiB,OAAShhJ,IAAIs+I,IAAU0C,GAAiBhhJ,IAAG,CAAC,EAElHo4C,GAAQA,GAAQ,EAAIA,GAAQ,EAAI,CAAC0nG,GAAY,SAAU,CAErD,IAAO,SAAUrlJ,EAAK,CACpB,OAAOw9C,GAAI0nG,GAAgBllJ,GAAO,EAAE,EAChCklJ,GAAellJ,CAAG,EAClBklJ,GAAellJ,CAAG,EAAImjJ,GAAQnjJ,CAAG,CACtC,EAED,OAAQ,SAAgBw1E,EAAK,CAC3B,GAAI,CAACiwE,GAASjwE,CAAG,EAAG,MAAM,UAAUA,EAAM,mBAAmB,EAC7D,QAASx1E,KAAOklJ,GAAgB,GAAIA,GAAellJ,CAAG,IAAMw1E,EAAK,OAAOx1E,CACzE,EACD,UAAW,UAAY,CAAEsd,GAAS,EAAO,EACzC,UAAW,UAAY,CAAEA,GAAS,EAAQ,CAC5C,CAAC,EAEDqgC,GAAQA,GAAQ,EAAIA,GAAQ,EAAI,CAAC0nG,GAAY,SAAU,CAErD,OAAQO,IAER,eAAgBF,GAEhB,iBAAkBC,GAElB,yBAA0BG,GAE1B,oBAAqBC,GAErB,sBAAuBC,EACzB,CAAC,EAID,IAAIQ,IAAsB7C,GAAO,UAAY,CAAEc,GAAM,EAAE,CAAC,CAAE,CAAE,EAE5D9mG,GAAQA,GAAQ,EAAIA,GAAQ,EAAI6oG,IAAqB,SAAU,CAC7D,sBAAuB,SAA+B3qG,EAAI,CACxD,OAAO4oG,GAAM,EAAEntH,IAASukB,CAAE,CAAC,CAC5B,CACH,CAAC,EAGDipG,IAASnnG,GAAQA,GAAQ,EAAIA,GAAQ,GAAK,CAAC0nG,IAAc1B,GAAO,UAAY,CAC1E,IAAI1qH,EAAIkqH,KAIR,OAAO4B,GAAW,CAAC9rH,CAAC,CAAC,GAAK,UAAY8rH,GAAW,CAAE,EAAG9rH,CAAC,CAAE,GAAK,MAAQ8rH,GAAW,OAAO9rH,CAAC,CAAC,GAAK,IACjG,CAAC,GAAI,OAAQ,CACX,UAAW,SAAmB4iB,EAAI,CAIhC,QAHI/nC,EAAO,CAAC+nC,CAAE,EACV3pD,EAAI,EACJu0J,EAAUC,EACP,UAAU,OAASx0J,GAAG4hB,EAAK,KAAK,UAAU5hB,GAAG,CAAC,EAErD,GADAw0J,EAAYD,EAAW3yI,EAAK,CAAC,EACzB,GAACmoC,IAASwqG,CAAQ,GAAK5qG,IAAO,QAAa4pG,GAAS5pG,CAAE,GAC1D,OAAKulB,IAAQqlF,CAAQ,IAAGA,EAAW,SAAUzmJ,EAAK3R,EAAO,CAEvD,GADI,OAAOq4J,GAAa,aAAYr4J,EAAQq4J,EAAU,KAAK,KAAM1mJ,EAAK3R,CAAK,GACvE,CAACo3J,GAASp3J,CAAK,EAAG,OAAOA,CACnC,GACIylB,EAAK,CAAC,EAAI2yI,EACH1B,GAAW,MAAMD,GAAOhxI,CAAI,CACpC,CACH,CAAC,EAGDqvI,GAAQzlG,EAAS,EAAEunG,EAAY,GAAK0B,GAAmBxD,GAAQzlG,EAAS,EAAGunG,GAAc9B,GAAQzlG,EAAS,EAAE,OAAO,EAEnH0iG,GAAe+C,GAAS,QAAQ,EAEhC/C,GAAe,KAAM,OAAQ,EAAI,EAEjCA,GAAex3I,GAAO,KAAM,OAAQ,EAAI,ECrPxC6tB,GAAyB,eAAe,ECAxCA,GAAyB,YAAY,MCIrCmwH,IAAiBnpG,GAA+B,OCJhDmpG,IAAiB,CAAE,QAAWnwH,IAAsC,WAAY,EAAM,ECEtFowH,GAAO,WAAc,GAErB,IAAIC,IAAYrwH,IAEZswH,GAAav9F,GAAuBs9F,GAAS,EAE7CE,IAAU/sH,IAEVgtH,GAAWz9F,GAAuBw9F,GAAO,EAEzCtzF,GAAU,OAAOuzF,GAAS,SAAY,YAAc,OAAOF,GAAW,SAAY,SAAW,SAAUngJ,EAAK,CAAE,OAAO,OAAOA,CAAM,EAAG,SAAUA,EAAK,CAAE,OAAOA,GAAO,OAAOqgJ,GAAS,SAAY,YAAcrgJ,EAAI,cAAgBqgJ,GAAS,SAAWrgJ,IAAQqgJ,GAAS,QAAQ,UAAY,SAAW,OAAOrgJ,GAEjT,SAAS4iD,GAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,IAAA6kD,IAAAo7F,GAAA,QAAkB,OAAOI,GAAS,SAAY,YAAcvzF,GAAQqzF,GAAW,OAAO,IAAM,SAAW,SAAUngJ,EAAK,CACpH,OAAO,OAAOA,EAAQ,IAAc,YAAc8sD,GAAQ9sD,CAAG,CAC/D,EAAI,SAAUA,EAAK,CACjB,OAAOA,GAAO,OAAOqgJ,GAAS,SAAY,YAAcrgJ,EAAI,cAAgBqgJ,GAAS,SAAWrgJ,IAAQqgJ,GAAS,QAAQ,UAAY,SAAW,OAAOrgJ,EAAQ,IAAc,YAAc8sD,GAAQ9sD,CAAG,CACxM,EChBIsgJ,IAAWzwH,GAEX0wH,IAAW39F,IAAuB09F,GAAQ,EAE9C,SAAS19F,IAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,IAAA6kD,GAAkB,SAAUnzC,EAAMs5C,EAAM,CACtC,GAAI,CAACt5C,EACH,MAAM,IAAI,eAAe,2DAA2D,EAGtF,OAAOs5C,KAAU,OAAOA,EAAS,IAAc,eAAkBu1F,IAAS,SAASv1F,CAAI,KAAO,UAAY,OAAOA,GAAS,YAAcA,EAAOt5C,CACjJ,4CCdA,IAAI2jC,EAAWxlB,GACXimB,EAAWziB,GACXnnB,EAAQ,SAAU+lB,EAAG1tB,EAAO,CAE9B,GADAuxC,EAAS7jB,CAAC,EACN,CAACojB,EAAS9wC,CAAK,GAAKA,IAAU,KAAM,MAAM,UAAUA,EAAQ,2BAA2B,CAC7F,EACA,OAAAu3C,GAAiB,CACf,IAAK,OAAO,iBAAmB,aAAe,CAAE,EAC9C,SAAUC,EAAMC,EAAOC,EAAK,CAC1B,GAAI,CACFA,EAAM9F,GAAkB,SAAS,KAAM7iB,GAA0B,EAAE,OAAO,UAAW,WAAW,EAAE,IAAK,CAAC,EACxG2oB,EAAIF,EAAM,EAAE,EACZC,EAAQ,EAAED,aAAgB,MAC3B,MAAW,CAAEC,EAAQ,EAAO,CAC7B,OAAO,SAAwB/pB,EAAG1tB,EAAO,CACvC,OAAA2H,EAAM+lB,EAAG1tB,CAAK,EACVy3C,EAAO/pB,EAAE,UAAY1tB,EACpB03C,EAAIhqB,EAAG1tB,CAAK,EACV0tB,CACf,CACA,EAAM,CAAE,EAAE,EAAK,EAAI,QACjB,MAAO/lB,MCtBT,IAAI6qC,GAAUlnB,GACdknB,GAAQA,GAAQ,EAAG,SAAU,CAAE,eAAgB1jB,IAAA,EAAwB,IAAK,ECD5E,IAAA6oB,IAAiB7oB,GAA+B,OAAO,eCDvD6oB,IAAiB,CAAE,QAAWrsB,IAAuD,WAAY,EAAM,ECAnGknB,GAAUlnB,GAEdknB,GAAQA,GAAQ,EAAG,SAAU,CAAE,OAAQ1jB,EAA2B,CAAE,ECDpE,IAAIsoB,IAAUtoB,GAA+B,OAC7ChG,IAAiB,SAAgB6E,EAAGZ,EAAG,CACrC,OAAOqqB,IAAQ,OAAOzpB,EAAGZ,CAAC,CAC5B,ECJAjE,IAAiB,CAAE,QAAWwC,IAA6C,WAAY,EAAM,ECIzFssB,IAAkBtsB,IAElB2wH,GAAmB59F,GAAuBzG,GAAe,EAEzDohG,IAAUlqH,IAEVotH,IAAW79F,GAAuB26F,GAAO,EAEzC+C,IAAWhtH,GAEXitH,IAAW39F,GAAuB09F,GAAQ,EAE9C,SAAS19F,GAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,IAAA6kD,GAAkB,SAAUvI,EAAUC,EAAY,CAChD,GAAI,OAAOA,GAAe,YAAcA,IAAe,KACrD,MAAM,IAAI,UAAU,4DAA8D,OAAOA,EAAe,IAAc,eAAkBgkG,IAAS,SAAShkG,CAAU,EAAE,EAGxKD,EAAS,aAAgBmkG,IAAS,SAASlkG,GAAcA,EAAW,UAAW,CAC7E,YAAa,CACX,MAAOD,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACf,CACL,CAAG,EACGC,IAAYikG,GAAiB,WAAcA,GAAiB,SAASlkG,EAAUC,CAAU,EAAID,EAAS,UAAYC,EACxH,EChCe,SAASr2C,GAASpR,EAAMsK,EAAG,CAGxC,QAFIlP,EAAOkP,EAEJlP,GAAM,CACX,GAAIA,IAAS4E,EACX,MAAO,GAGT5E,EAAOA,EAAK,UACb,CAED,MAAO,EACT,oECJA,OAAO,eAAwBijC,EAAA,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,SAASha,GAAc,CACrB,MAAO,EACR,CAED,SAASD,GAAa,CACpB,MAAO,EACR,CAED,SAASwnI,GAAkB,CACzB,KAAK,UAAY,KAAK,MACtB,KAAK,OAAS,OACd,KAAK,cAAgB,MACtB,CAEDA,EAAgB,UAAY,CAC1B,cAAe,EAEf,YAAaA,EAEb,mBAAoBvnI,EAEpB,qBAAsBA,EAEtB,8BAA+BA,EAE/B,eAAgB,UAA0B,CACxC,KAAK,mBAAqBD,CAC3B,EAED,gBAAiB,UAA2B,CAC1C,KAAK,qBAAuBA,CAC7B,EAED,yBAA0B,UAAoC,CAC5D,KAAK,8BAAgCA,EAGrC,KAAK,gBAAe,CACrB,EAED,KAAM,SAAcynI,EAAW,CACzBA,EACF,KAAK,yBAAwB,EAE7B,KAAK,gBAAe,EAEtB,KAAK,eAAc,CACpB,CACH,EAEAxtH,EAAQ,QAAautH,EACrBx+I,EAAiB,QAAAixB,EAAQ,2DCtDzB,OAAO,eAAwBA,EAAA,aAAc,CAC3C,MAAO,EACT,CAAC,EAED,SAASyvB,EAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAAWA,CAAK,CAAG,CAEjG,IAAI4gJ,EAAmB/wH,IAEnBgxH,EAAoBj+F,EAAuBg+F,CAAgB,EAE3DpmG,EAAgBnnB,GAEhBytH,EAAiBl+F,EAAuBpI,CAAa,EAErDumG,EAAO,GACPC,EAAQ,GACRh6D,EAAc,CAAC,SAAU,UAAW,aAAc,UAAW,gBAAiB,aAAc,UAAW,WAAY,SAAU,YAAa,OAAQ,MAAM,EAE5J,SAASuvC,EAAkB34H,EAAG,CAC5B,OAAOA,GAAM,IACd,CAED,IAAIqjJ,EAAmB,CAAC,CACtB,IAAK,OACL,MAAO,CAAC,OAAQ,WAAY,MAAO,UAAW,OAAO,EACrD,IAAK,SAAa35J,EAAO6yB,EAAa,CAChCo8G,EAAkBjvI,EAAM,KAAK,IAC/BA,EAAM,MAASivI,EAAkBp8G,EAAY,QAAQ,EAA2BA,EAAY,QAAnCA,EAAY,UAInE7yB,EAAM,UAAY,SACpBA,EAAM,QAAUA,EAAM,QAEzB,CACH,EAAG,CACD,IAAK,SACL,MAAO,CAAC,UAAW,iBAAkB,eAAe,CACtD,EAAG,CACD,IAAK,eACL,MAAO,CAAC,SAAU,QAAQ,CAC5B,EAAG,CACD,IAAK,mBACL,MAAO,CAAC,WAAY,OAAO,CAC7B,EAAG,CACD,IAAK,gCACL,MAAO,CAAE,EACT,IAAK,SAAaA,EAAO6yB,EAAa,CACpC,IAAIirE,EAAS,OACTnF,EAAS,OACTpgE,EAAQ,OACRqhI,EAAa/mI,EAAY,WACzBgnI,EAAOhnI,EAAY,KACnBinI,EAAcjnI,EAAY,YAC1BknI,EAAclnI,EAAY,YAC1B7vB,EAAS6vB,EAAY,OAGrB+mI,IACFrhI,EAAQqhI,EAAa,KAInB52J,IAEFu1B,EAAQ,GAAKv1B,EAAS,IAAM,EAAIA,EAAS,EAAIA,IAI3C62J,IAAS,SACPA,IAAS75J,EAAM,iBACjB24F,EAAS,EACTmF,EAAS,EAAIvlE,GACJshI,IAAS75J,EAAM,gBACxB89F,EAAS,EACTnF,EAASpgE,IAKTuhI,IAAgB,SAClBnhE,EAASmhE,EAAc,KAErBC,IAAgB,SAClBj8D,EAAS,GAAKi8D,EAAc,KAI1B,CAACj8D,GAAU,CAACnF,IACdA,EAASpgE,GAGPulE,IAAW,SAMb99F,EAAM,OAAS89F,GAGbnF,IAAW,SAMb34F,EAAM,OAAS24F,GAGbpgE,IAAU,SAMZv4B,EAAM,MAAQu4B,EAEjB,CACH,EAAG,CACD,IAAK,yDACL,MAAO,CAAC,UAAW,UAAW,UAAW,SAAU,UAAW,gBAAiB,QAAS,cAAe,YAAa,UAAW,QAAS,QAAS,UAAW,SAAS,EACrK,IAAK,SAAav4B,EAAO6yB,EAAa,CACpC,IAAImnI,EAAW,OACX/9I,EAAM,OACNxW,EAAO,OACP7F,EAASI,EAAM,OACfi6J,EAASpnI,EAAY,OAGzB,OAAIjzB,GAAUqvI,EAAkBjvI,EAAM,KAAK,GAAK,CAACivI,EAAkBp8G,EAAY,OAAO,IACpFmnI,EAAWp6J,EAAO,eAAiB,SACnCqc,EAAM+9I,EAAS,gBACfv0J,EAAOu0J,EAAS,KAChBh6J,EAAM,MAAQ6yB,EAAY,SAAW5W,GAAOA,EAAI,YAAcxW,GAAQA,EAAK,YAAc,IAAMwW,GAAOA,EAAI,YAAcxW,GAAQA,EAAK,YAAc,GACnJzF,EAAM,MAAQ6yB,EAAY,SAAW5W,GAAOA,EAAI,WAAaxW,GAAQA,EAAK,WAAa,IAAMwW,GAAOA,EAAI,WAAaxW,GAAQA,EAAK,WAAa,IAK7I,CAACzF,EAAM,OAASi6J,IAAW,SACzBA,EAAS,EACXj6J,EAAM,MAAQ,EACLi6J,EAAS,EAClBj6J,EAAM,MAAQ,EACLi6J,EAAS,EAClBj6J,EAAM,MAAQ,EAEdA,EAAM,MAAQ,GAKd,CAACA,EAAM,eAAiBA,EAAM,cAChCA,EAAM,cAAgBA,EAAM,cAAgBJ,EAASI,EAAM,UAAYA,EAAM,aAGxEA,CACR,CACH,CAAC,EAED,SAASk6J,GAAU,CACjB,OAAOT,CACR,CAED,SAASU,GAAW,CAClB,OAAOT,CACR,CAED,SAASU,EAAevnI,EAAa,CACnC,IAAI3oB,EAAO2oB,EAAY,KAEnBwnI,EAAW,OAAOxnI,EAAY,iBAAoB,YAAc,OAAOA,EAAY,cAAiB,UAExG0mI,EAAkB,QAAW,KAAK,IAAI,EAEtC,KAAK,YAAc1mI,EAGnB,IAAIynI,EAAqBH,EACrB,qBAAsBtnI,EACxBynI,EAAqBznI,EAAY,iBAAmBqnI,EAAUC,EACrD,sBAAuBtnI,EAEhCynI,EAAqBznI,EAAY,oBAAsBqnI,EAAUC,EACxD,gBAAiBtnI,IAC1BynI,EAAqBznI,EAAY,cAAgB6mI,EAAQQ,EAAUC,GAGrE,KAAK,mBAAqBG,EAE1B,IAAIC,EAAS,GACTC,EAAQ,OACRvhJ,EAAI,OACJ0V,EAAO,OACP4E,EAAQmsE,EAAY,SAcxB,IAZAi6D,EAAiB,QAAQ,SAAUc,EAAY,CACzCvwJ,EAAK,MAAMuwJ,EAAW,GAAG,IAC3BlnI,EAAQA,EAAM,OAAOknI,EAAW,KAAK,EACjCA,EAAW,KACbF,EAAO,KAAKE,EAAW,GAAG,EAGlC,CAAG,EAEDxhJ,EAAIsa,EAAM,OAGHta,GACL0V,EAAO4E,EAAM,EAAEta,CAAC,EAChB,KAAK0V,CAAI,EAAIkE,EAAYlE,CAAI,EAe/B,IAXI,CAAC,KAAK,QAAU0rI,IAClB,KAAK,OAASxnI,EAAY,YAAc,UAItC,KAAK,QAAU,KAAK,OAAO,WAAa,IAC1C,KAAK,OAAS,KAAK,OAAO,YAG5B5Z,EAAIshJ,EAAO,OAEJthJ,GACLuhJ,EAAQD,EAAO,EAAEthJ,CAAC,EAClBuhJ,EAAM,KAAM3nI,CAAW,EAGzB,KAAK,UAAYA,EAAY,WAAa,KAAK,IAAG,CACnD,CAED,IAAI6nI,EAAuBnB,EAAkB,QAAW,aAEpDC,EAAe,SAAYY,EAAe,UAAWM,EAAsB,CAC7E,YAAaN,EAEb,eAAgB,UAA0B,CACxC,IAAI9mJ,EAAI,KAAK,YAGTA,EAAE,eACJA,EAAE,eAAc,EAGhBA,EAAE,YAAcomJ,EAGlBgB,EAAqB,eAAe,KAAK,IAAI,CAC9C,EAED,gBAAiB,UAA2B,CAC1C,IAAIpnJ,EAAI,KAAK,YAGTA,EAAE,gBACJA,EAAE,gBAAe,EAGjBA,EAAE,aAAemmJ,EAGnBiB,EAAqB,gBAAgB,KAAK,IAAI,CAC/C,CACH,CAAC,EAED7uH,EAAQ,QAAauuH,EACrBx/I,EAAiB,QAAAixB,EAAQ,2DCnRzB,OAAO,eAAwBA,EAAA,aAAc,CAC3C,MAAO,EACT,CAAC,EACDA,EAAQ,QAAa8uH,EAErB,SAASr/F,EAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAAWA,CAAK,CAAG,CAEjG,IAAIkiJ,EAAeryH,IAEfsyH,EAAgBv/F,EAAuBs/F,CAAY,EAEvD,SAASD,EAAiB/6J,EAAQk7J,EAAWvwJ,EAAU+C,EAAQ,CAC7D,SAASytJ,EAAaznJ,EAAG,CACvB,IAAI8lC,EAAK,IAAIyhH,EAAc,QAAWvnJ,CAAC,EACvC/I,EAAS,KAAK3K,EAAQw5C,CAAE,CACzB,CAED,GAAIx5C,EAAO,iBAAkB,CAC3B,IAAI0pE,EAAQ,UAAY,CACtB,IAAI0xF,EAAa,GACjB,OAAI,OAAO1tJ,GAAW,SACpB0tJ,EAAa1tJ,EAAO,SAAW,GACtB,OAAOA,GAAW,YAC3B0tJ,EAAa1tJ,GAGf1N,EAAO,iBAAiBk7J,EAAWC,EAAcztJ,GAAU,EAAK,EAEzD,CACL,EAAG,CACD,OAAQ,UAAkB,CACxB1N,EAAO,oBAAoBk7J,EAAWC,EAAcC,CAAU,CAC/D,CACF,CACT,CACA,IAEI,GAAI,OAAO1xF,GAAS,SAAU,OAAOA,EAAK,CAC9C,SAAa1pE,EAAO,YAChB,OAAAA,EAAO,YAAY,KAAOk7J,EAAWC,CAAY,EAC1C,CACL,OAAQ,UAAkB,CACxBn7J,EAAO,YAAY,KAAOk7J,EAAWC,CAAY,CAClD,CACP,CAEC,CAEDngJ,EAAiB,QAAAixB,EAAQ,8DChDV,SAASovH,GAAqBr7J,EAAQk7J,EAAW1rH,EAAI9hC,EAAQ,CAE1E,IAAI/C,EAAWqkE,GAAS,wBAA0B,SAAat7D,EAAG,CAChEs7D,GAAS,wBAAwBx/B,EAAI97B,CAAC,CACvC,EAAG87B,EACJ,OAAO8rH,IAAoBt7J,EAAQk7J,EAAWvwJ,EAAU+C,CAAM,CAChE,CCRA,SAASk4D,GAAQ9sD,EAAK,CAAE,0BAA2B,OAAI,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAAY8sD,GAAU,SAAiB9sD,EAAK,CAAE,OAAO,OAAOA,CAAI,EAAa8sD,GAAU,SAAiB9sD,EAAK,CAAE,OAAOA,GAAO,OAAO,QAAW,YAAcA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAI,EAAa8sD,GAAQ9sD,CAAG,CAAI,CAE1X,SAAS4qD,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASG,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAASouD,IAAaC,EAAS,CAAE,IAAIC,EAA4BH,IAAyB,EAAI,OAAO,UAAgC,CAAE,IAAII,EAAQL,GAAgBG,CAAO,EAAG7jF,EAAQ,GAAI8jF,EAA2B,CAAE,IAAIE,EAAYN,GAAgB,IAAI,EAAE,YAAa1jF,EAAS,QAAQ,UAAU+jF,EAAO,UAAWC,CAAS,OAAYhkF,EAAS+jF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOpkB,IAA2B,KAAM3/D,CAAM,CAAE,CAAK,CAEza,SAAS2/D,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS8B,GAAQ9B,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,IAAuB7wC,CAAI,CAAI,CAEjL,SAAS6wC,IAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASq9D,KAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,YAAK,UAAU,SAAS,KAAK,QAAQ,UAAU,KAAM,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAEpU,SAASD,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAM7M,IAAIqyH,GAA+B,SAAUzgG,EAAkB,CAC7DiJ,IAAUw3F,EAAiBzgG,CAAgB,EAE3C,IAAIyxB,EAASzE,IAAayzE,CAAe,EAEzC,SAASA,GAAkB,CACzB,IAAIj/F,EAEJoH,IAAgB,KAAM63F,CAAe,EAErC,QAAS3iG,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAAkuC,EAAQiwB,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOvmE,CAAI,CAAC,EAErDs2C,EAAM,gBAAkB,UAAY,CAC9BA,EAAM,YACR0S,GAAS,uBAAuB1S,EAAM,SAAS,EAE/CA,EAAM,UAAU,WAAW,YAAYA,EAAM,SAAS,EAEtDA,EAAM,UAAY,KAE1B,EAEIA,EAAM,gBAAkB,SAAU3oC,EAAO6nI,EAAO,CAC9C,IAAIxgG,EAAcsB,EAAM,MACpBm/F,EAAUzgG,EAAY,QACtB0gG,EAAe1gG,EAAY,aAC3B2gG,EAAc3gG,EAAY,YAC1Bt1B,EAAes1B,EAAY,aAC3Bn1C,EAASm1C,EAAY,QAErBygG,GAAW51I,EAAO,YAAc81I,KAC7Br/F,EAAM,YACTA,EAAM,UAAY52B,KAGpBspC,GAAS,oCAAoCnpD,EAAQ61I,EAAa/nI,CAAK,EAAG2oC,EAAM,UAAW,UAAoB,CACzGk/F,GACFA,EAAM,KAAK,IAAI,CAE3B,CAAS,EAET,EAEWl/F,CACR,CAED0pB,WAAau1E,EAAiB,CAAC,CAC7B,IAAK,oBACL,MAAO,UAA6B,CAC9B,KAAK,MAAM,WACb,KAAK,gBAAe,CAEvB,CACL,EAAK,CACD,IAAK,qBACL,MAAO,UAA8B,CAC/B,KAAK,MAAM,WACb,KAAK,gBAAe,CAEvB,CACL,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CACjC,KAAK,MAAM,aACb,KAAK,gBAAe,CAEvB,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,OAAO,KAAK,MAAM,SAAS,CACzB,gBAAiB,KAAK,gBACtB,gBAAiB,KAAK,eAC9B,CAAO,CACF,CACF,EAAC,EAEKA,CACT,EAAEpgG,GAAM,SAAS,EAEjBogG,GAAgB,UAAY,CAC1B,UAAWriG,EAAU,KACrB,YAAaA,EAAU,KACvB,QAASA,EAAU,KACnB,YAAaA,EAAU,KACvB,OAAQA,EAAU,IAClB,aAAcA,EAAU,KAAK,WAC7B,aAAcA,EAAU,KAAK,WAC7B,SAAUA,EAAU,KAAK,UAC3B,EACAqiG,GAAgB,aAAe,CAC7B,UAAW,GACX,YAAa,GACb,YAAa,EACf,EC5HA,SAAS31F,GAAQ9sD,EAAK,CAAE,0BAA2B,OAAI,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAAY8sD,GAAU,SAAiB9sD,EAAK,CAAE,OAAO,OAAOA,CAAI,EAAa8sD,GAAU,SAAiB9sD,EAAK,CAAE,OAAOA,GAAO,OAAO,QAAW,YAAcA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAI,EAAa8sD,GAAQ9sD,CAAG,CAAI,CAE1X,SAAS4qD,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASG,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAASouD,IAAaC,EAAS,CAAE,IAAIC,EAA4BH,IAAyB,EAAI,OAAO,UAAgC,CAAE,IAAII,EAAQL,GAAgBG,CAAO,EAAG7jF,EAAQ,GAAI8jF,EAA2B,CAAE,IAAIE,EAAYN,GAAgB,IAAI,EAAE,YAAa1jF,EAAS,QAAQ,UAAU+jF,EAAO,UAAWC,CAAS,OAAYhkF,EAAS+jF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOpkB,IAA2B,KAAM3/D,CAAM,CAAE,CAAK,CAEza,SAAS2/D,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS8B,GAAQ9B,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,IAAuB7wC,CAAI,CAAI,CAEjL,SAAS6wC,IAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASq9D,KAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,YAAK,UAAU,SAAS,KAAK,QAAQ,UAAU,KAAM,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAEpU,SAASD,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAM7M,IAAIsgC,GAAsB,SAAU1O,EAAkB,CACpDiJ,IAAUyF,EAAQ1O,CAAgB,EAElC,IAAIyxB,EAASzE,IAAate,CAAM,EAEhC,SAASA,GAAS,CAChB9F,WAAgB,KAAM8F,CAAM,EAErB+iB,EAAO,MAAM,KAAM,SAAS,CACpC,CAEDvG,WAAaxc,EAAQ,CAAC,CACpB,IAAK,oBACL,MAAO,UAA6B,CAClC,KAAK,gBAAe,CACrB,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4B7R,EAAW,CAC5C,IAAIikG,EAAY,KAAK,MAAM,UAEvBA,GACFA,EAAUjkG,CAAS,CAEtB,CACL,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,KAAK,gBAAe,CACrB,CACL,EAAK,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,KAAK,WAAa,KAAK,MAAM,aAAY,EACzC,KAAK,YAAW,CACjB,CACL,EAAK,CACD,IAAK,kBACL,MAAO,UAA2B,CAC5B,KAAK,YACP,KAAK,WAAW,WAAW,YAAY,KAAK,UAAU,CAEzD,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,OAAI,KAAK,WACAqX,GAAS,aAAa,KAAK,MAAM,SAAU,KAAK,UAAU,EAG5D,IACR,CACF,EAAC,EAEKxF,CACT,EAAErO,GAAM,SAAS,EAEjBqO,GAAO,UAAY,CACjB,aAActQ,EAAU,KAAK,WAC7B,SAAUA,EAAU,KAAK,WACzB,UAAWA,EAAU,IACvB,ECtFA,SAAS2iG,IAAWC,EAAIC,EAAIC,EAAc,CACxC,OAAIA,EACKF,EAAG,CAAC,IAAMC,EAAG,CAAC,EAEhBD,EAAG,CAAC,IAAMC,EAAG,CAAC,GAAKD,EAAG,CAAC,IAAMC,EAAG,CAAC,CAC1C,CAEO,SAASE,IAAsBC,EAAmBC,EAAcp2D,EAAO,CAC5E,IAAIq2D,EAAYF,EAAkBC,CAAY,GAAK,GACnD,OAAOvoG,GAAS,GAAIwoG,EAAWr2D,CAAK,CACtC,CAEO,SAASs2D,IAAuBH,EAAmBI,EAAWv2D,EAAOi2D,EAAc,CACxF,IAAIl+E,EAASioB,EAAM,OACnB,QAASx0B,KAAa2qF,EACpB,GAAIA,EAAkB,eAAe3qF,CAAS,GACxCsqF,IAAWK,EAAkB3qF,CAAS,EAAE,OAAQuM,EAAQk+E,CAAY,EACtE,OAAOM,EAAY,cAAgB/qF,EAIzC,MAAO,EACT,CAEO,SAASgrF,GAAQ18J,EAAMkhF,EAAW,CACvC,KAAKlhF,CAAI,EAAIkhF,CACf,CC3BA,IAAIlxB,GAAUlnB,GAEdknB,GAAQA,GAAQ,EAAIA,GAAQ,EAAI,CAAC1jB,GAA2B,SAAU,CAAE,eAAgBC,GAAwB,CAAC,CAAE,ECDnH,IAAIqoB,IAAUtoB,GAA+B,OAC7C60C,IAAiB,SAAwBjzB,EAAI77C,EAAK2uD,EAAM,CACtD,OAAOpM,IAAQ,eAAe1G,EAAI77C,EAAK2uD,CAAI,CAC7C,ECJAmgB,GAAiB,CAAE,QAAWr4C,IAAsD,WAAY,EAAM,ECIlG4+C,IAAkB5+C,GAElB6zH,IAAmB9gG,IAAuB6rB,GAAe,EAE7D,SAAS7rB,IAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,IAAA6kD,GAAkB,UAAY,CAC5B,SAASsoB,EAAiBjmF,EAAQ2zB,EAAO,CACvC,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CACrC,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EACxBw9E,EAAW,WAAaA,EAAW,YAAc,GACjDA,EAAW,aAAe,GACtB,UAAWA,IAAYA,EAAW,SAAW,OAC7C46E,IAAiB,SAASx8J,EAAQ4hF,EAAW,IAAKA,CAAU,CACjE,CACF,CAED,OAAO,SAAUhe,EAAasiB,EAAYC,EAAa,CACrD,OAAID,GAAYD,EAAiBriB,EAAY,UAAWsiB,CAAU,EAC9DC,GAAaF,EAAiBriB,EAAauiB,CAAW,EACnDviB,CACX,CACA,EAAG,EC1BH,SAAS4jB,GAAQt8D,EAAQu8D,EAAgB,CACvC,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAE7B,GAAI,OAAO,sBAAuB,CAChC,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAE7Cu8D,IACFz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CACtC,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAC5D,CAAO,GAGHllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAC9B,CAED,OAAOxnB,CACT,CAEA,SAASmlE,GAAe3nF,EAAQ,CAC9B,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIqJ,EAAS,UAAUrJ,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,GAE/CA,EAAI,EACNojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAUyE,EAAK,CACnDq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAChD,CAAO,EACQ,OAAO,0BAChB,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAExE+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAC7C,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CACvF,CAAO,CAEJ,CAED,OAAOlS,CACT,CAEA,SAAS4lE,GAAQ9sD,EAAK,CACpB,0BAEA,OAAI,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAC7D8sD,GAAU,SAAU9sD,EAAK,CACvB,OAAO,OAAOA,CACpB,EAEI8sD,GAAU,SAAU9sD,EAAK,CACvB,OAAOA,GAAO,OAAO,QAAW,YAAcA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAC/H,EAGS8sD,GAAQ9sD,CAAG,CACpB,CAEA,SAASyuE,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CACxC,OAAI2R,KAAO4G,EACT,OAAO,eAAeA,EAAK5G,EAAK,CAC9B,MAAO3R,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EAChB,CAAK,EAEDuY,EAAI5G,CAAG,EAAI3R,EAGNuY,CACT,CAEA,IAAI2jJ,GACAC,IAAW,CACb,OAAQ,WACR,IAAK,QAEL,GAAI,OACJ,EAAG,KACL,EAEA,SAASC,IAAkB,CACzB,GAAIF,KAAiB,OACnB,OAAOA,GAGTA,GAAe,GACf,IAAI97J,EAAQ,SAAS,cAAc,GAAG,EAAE,MACpCi8J,EAAW,YAEf,QAAS1qJ,KAAOwqJ,IACVxqJ,EAAM0qJ,KAAYj8J,IACpB87J,GAAevqJ,GAInB,OAAOuqJ,EACT,CAEA,SAASI,IAAoB,CAC3B,OAAOF,GAAiB,EAAG,GAAG,OAAOA,KAAmB,oBAAoB,EAAI,oBAClF,CAEA,SAASG,IAAmB,CAC1B,OAAOH,GAAiB,EAAG,GAAG,OAAOA,KAAmB,WAAW,EAAI,WACzE,CACA,SAASI,GAAsB/zJ,EAAMzI,EAAO,CAC1C,IAAIV,EAAOg9J,KAEPh9J,IACFmJ,EAAK,MAAMnJ,CAAI,EAAIU,EAEfV,IAAS,uBACXmJ,EAAK,MAAM,mBAAqBzI,GAGtC,CAEA,SAASy8J,GAAah0J,EAAMzI,EAAO,CACjC,IAAIV,EAAOi9J,KAEPj9J,IACFmJ,EAAK,MAAMnJ,CAAI,EAAIU,EAEfV,IAAS,cACXmJ,EAAK,MAAM,UAAYzI,GAG7B,CAEA,SAAS08J,IAAsBj0J,EAAM,CACnC,OAAOA,EAAK,MAAM,oBAAsBA,EAAK,MAAM6zJ,GAAiB,CAAE,CACxE,CACA,SAASK,IAAel0J,EAAM,CAC5B,IAAIrI,EAAQ,OAAO,iBAAiBqI,EAAM,IAAI,EAC1C60D,EAAYl9D,EAAM,iBAAiB,WAAW,GAAKA,EAAM,iBAAiBm8J,GAAgB,CAAE,EAEhG,GAAIj/F,GAAaA,IAAc,OAAQ,CACrC,IAAIs/F,EAASt/F,EAAU,QAAQ,cAAe,EAAE,EAAE,MAAM,GAAG,EAC3D,MAAO,CACL,EAAG,WAAWs/F,EAAO,EAAE,GAAKA,EAAO,CAAC,EAAG,CAAC,EACxC,EAAG,WAAWA,EAAO,EAAE,GAAKA,EAAO,CAAC,EAAG,CAAC,CAC9C,CACG,CAED,MAAO,CACL,EAAG,EACH,EAAG,CACP,CACA,CACA,IAAIC,IAAW,iBACXC,IAAW,mBACf,SAASC,IAAet0J,EAAMu0J,EAAI,CAChC,IAAI58J,EAAQ,OAAO,iBAAiBqI,EAAM,IAAI,EAC1C60D,EAAYl9D,EAAM,iBAAiB,WAAW,GAAKA,EAAM,iBAAiBm8J,GAAgB,CAAE,EAEhG,GAAIj/F,GAAaA,IAAc,OAAQ,CACrC,IAAIziD,EACAoiJ,EAAU3/F,EAAU,MAAMu/F,GAAQ,EAEtC,GAAII,EACFA,EAAUA,EAAQ,CAAC,EACnBpiJ,EAAMoiJ,EAAQ,MAAM,GAAG,EAAE,IAAI,SAAUjmJ,EAAM,CAC3C,OAAO,WAAWA,EAAM,EAAE,CAClC,CAAO,EACD6D,EAAI,CAAC,EAAImiJ,EAAG,EACZniJ,EAAI,CAAC,EAAImiJ,EAAG,EACZP,GAAah0J,EAAM,UAAU,OAAOoS,EAAI,KAAK,GAAG,EAAG,GAAG,CAAC,MAClD,CACL,IAAIqiJ,EAAU5/F,EAAU,MAAMw/F,GAAQ,EAAE,CAAC,EACzCjiJ,EAAMqiJ,EAAQ,MAAM,GAAG,EAAE,IAAI,SAAUlmJ,EAAM,CAC3C,OAAO,WAAWA,EAAM,EAAE,CAClC,CAAO,EACD6D,EAAI,EAAE,EAAImiJ,EAAG,EACbniJ,EAAI,EAAE,EAAImiJ,EAAG,EACbP,GAAah0J,EAAM,YAAY,OAAOoS,EAAI,KAAK,GAAG,EAAG,GAAG,CAAC,CAC1D,CACL,MACI4hJ,GAAah0J,EAAM,cAAc,OAAOu0J,EAAG,EAAG,iBAAiB,EAAE,OAAOA,EAAG,EAAG,mBAAmB,CAAC,CAEtG,CAEA,IAAIG,IAAS,wCAAwC,OACjDC,GAEJ,SAASC,GAAc9gJ,EAAM,CAC3B,IAAI+gJ,EAAgB/gJ,EAAK,MAAM,QAC/BA,EAAK,MAAM,QAAU,OACrBA,EAAK,aAELA,EAAK,MAAM,QAAU+gJ,CACvB,CAEA,SAASz9F,GAAIx9C,EAAI/iB,EAAMwY,EAAG,CACxB,IAAI9X,EAAQ8X,EAEZ,GAAIutD,GAAQ/lE,CAAI,IAAM,SAAU,CAC9B,QAASuE,KAAKvE,EACRA,EAAK,eAAeuE,CAAC,GACvBg8D,GAAIx9C,EAAIxe,EAAGvE,EAAKuE,CAAC,CAAC,EAItB,MACD,CAED,GAAI,OAAO7D,EAAU,IAAa,CAC5B,OAAOA,GAAU,WACnBA,EAAQ,GAAG,OAAOA,EAAO,IAAI,GAG/BqiB,EAAG,MAAM/iB,CAAI,EAAIU,EACjB,MACD,CAED,OAAOo9J,GAAkB/6I,EAAI/iB,CAAI,CACnC,CAEA,SAASi+J,IAAkBhhJ,EAAM,CAC/B,IAAIwb,EACAhvB,EACAC,EACA8S,EAAMS,EAAK,cACXjX,EAAOwW,EAAI,KACXuC,EAAUvC,GAAOA,EAAI,gBAEzB,OAAAic,EAAMxb,EAAK,wBAIXxT,EAAI,KAAK,MAAMgvB,EAAI,IAAI,EACvB/uB,EAAI,KAAK,MAAM+uB,EAAI,GAAG,EAkBtBhvB,GAAKsV,EAAQ,YAAc/Y,EAAK,YAAc,EAC9C0D,GAAKqV,EAAQ,WAAa/Y,EAAK,WAAa,EACrC,CACL,KAAMyD,EACN,IAAKC,CACT,CACA,CAEA,SAASw0J,GAAUrnJ,EAAG+tB,EAAK,CACzB,IAAI5nB,EAAMnG,EAAE,OAAO,OAAO+tB,EAAM,IAAM,IAAK,QAAQ,CAAC,EAChD/+B,EAAS,SAAS,OAAO++B,EAAM,MAAQ,MAAM,EAEjD,GAAI,OAAO5nB,GAAQ,SAAU,CAC3B,IAAI+rB,EAAIlyB,EAAE,SAEVmG,EAAM+rB,EAAE,gBAAgBljC,CAAM,EAE1B,OAAOmX,GAAQ,WAEjBA,EAAM+rB,EAAE,KAAKljC,CAAM,EAEtB,CAED,OAAOmX,CACT,CAEA,SAASmhJ,GAActnJ,EAAG,CACxB,OAAOqnJ,GAAUrnJ,CAAC,CACpB,CAEA,SAAS6xE,GAAa7xE,EAAG,CACvB,OAAOqnJ,GAAUrnJ,EAAG,EAAI,CAC1B,CAEA,SAASunJ,GAAUr7I,EAAI,CACrB,IAAI43F,EAAMsjD,IAAkBl7I,CAAE,EAC1BvG,EAAMuG,EAAG,cACTlM,EAAI2F,EAAI,aAAeA,EAAI,aAC/B,OAAAm+F,EAAI,MAAQwjD,GAActnJ,CAAC,EAC3B8jG,EAAI,KAAOjyB,GAAa7xE,CAAC,EAClB8jG,CACT,CAOA,SAASv+F,GAASnD,EAAK,CAIrB,OAAOA,GAAQ,MAA6BA,GAAOA,EAAI,MACzD,CAEA,SAASolJ,GAAYl1J,EAAM,CACzB,OAAIiT,GAASjT,CAAI,EACRA,EAAK,SAGVA,EAAK,WAAa,EACbA,EAGFA,EAAK,aACd,CAEA,SAASu2D,IAAkBziD,EAAMjd,EAAMs+J,EAAI,CACzC,IAAIC,EAAgBD,EAChB7hJ,EAAM,GACNssB,EAAIs1H,GAAYphJ,CAAI,EACxB,OAAAshJ,EAAgBA,GAAiBx1H,EAAE,YAAY,iBAAiB9rB,EAAM,IAAI,EAEtEshJ,IACF9hJ,EAAM8hJ,EAAc,iBAAiBv+J,CAAI,GAAKu+J,EAAcv+J,CAAI,GAG3Dyc,CACT,CAEA,IAAI+hJ,IAAgB,IAAI,OAAO,KAAK,OAAOX,IAAQ,iBAAiB,EAAG,GAAG,EAEtEY,IAAS,4BACTC,GAAgB,eAChBC,GAAgB,eAChBC,GAAO,OACPC,IAAK,KAET,SAASC,IAAoB7hJ,EAAMjd,EAAM,CAGvC,IAAIgd,EAAMC,EAAKyhJ,EAAa,GAAKzhJ,EAAKyhJ,EAAa,EAAE1+J,CAAI,EAUzD,GAAIw+J,IAAc,KAAKxhJ,CAAG,GAAK,CAACyhJ,IAAO,KAAKz+J,CAAI,EAAG,CAEjD,IAAIc,EAAQmc,EAAK,MACb7a,EAAOtB,EAAM89J,EAAI,EACjB9+F,EAAS7iD,EAAK0hJ,EAAa,EAAEC,EAAI,EAErC3hJ,EAAK0hJ,EAAa,EAAEC,EAAI,EAAI3hJ,EAAKyhJ,EAAa,EAAEE,EAAI,EAEpD99J,EAAM89J,EAAI,EAAI5+J,IAAS,WAAa,MAAQgd,GAAO,EACnDA,EAAMlc,EAAM,UAAY+9J,IAExB/9J,EAAM89J,EAAI,EAAIx8J,EACd6a,EAAK0hJ,EAAa,EAAEC,EAAI,EAAI9+F,CAC7B,CAED,OAAO9iD,IAAQ,GAAK,OAASA,CAC/B,CAEI,OAAO,OAAW,MACpB8gJ,GAAoB,OAAO,iBAAmBp+F,IAAoBo/F,KAGpE,SAASC,GAAmBh5I,EAAKlY,EAAQ,CACvC,OAAIkY,IAAQ,OACHlY,EAAO,YAAc,QAAUkY,EAGjClY,EAAO,aAAe,SAAWkY,CAC1C,CAEA,SAASi5I,GAAwBj5I,EAAK,CACpC,GAAIA,IAAQ,OACV,MAAO,QACF,GAAIA,IAAQ,QACjB,MAAO,OACF,GAAIA,IAAQ,MACjB,MAAO,SACF,GAAIA,IAAQ,SACjB,MAAO,KAEX,CAGA,SAASk5I,GAAWhiJ,EAAMynB,EAAQ72B,EAAQ,CAEpC0yD,GAAItjD,EAAM,UAAU,IAAM,WAC5BA,EAAK,MAAM,SAAW,YAGxB,IAAIiiJ,EAAU,KACVC,EAAU,KACVC,EAAqBL,GAAmB,OAAQlxJ,CAAM,EACtDwxJ,EAAmBN,GAAmB,MAAOlxJ,CAAM,EACnDyxJ,EAA6BN,GAAwBI,CAAkB,EACvEG,EAA2BP,GAAwBK,CAAgB,EAEnED,IAAuB,SACzBF,EAAU,KAGRG,IAAqB,QACvBF,EAAU,KAGZ,IAAIK,EAAqB,GACrBC,EAAiBrB,GAAUnhJ,CAAI,GAE/B,SAAUynB,GAAU,QAASA,KAC/B86H,EAAqBpC,IAAsBngJ,CAAI,GAAK,GACpDigJ,GAAsBjgJ,EAAM,MAAM,GAGhC,SAAUynB,IACZznB,EAAK,MAAMqiJ,CAA0B,EAAI,GACzCriJ,EAAK,MAAMmiJ,CAAkB,EAAI,GAAG,OAAOF,EAAS,IAAI,GAGtD,QAASx6H,IACXznB,EAAK,MAAMsiJ,CAAwB,EAAI,GACvCtiJ,EAAK,MAAMoiJ,CAAgB,EAAI,GAAG,OAAOF,EAAS,IAAI,GAIxDpB,GAAc9gJ,CAAI,EAClB,IAAIgZ,EAAMmoI,GAAUnhJ,CAAI,EACpB+gJ,EAAgB,GAEpB,QAAS3rJ,KAAOqyB,EACd,GAAIA,EAAO,eAAeryB,CAAG,EAAG,CAC9B,IAAI0T,EAAMg5I,GAAmB1sJ,EAAKxE,CAAM,EACpC6xJ,EAASrtJ,IAAQ,OAAS6sJ,EAAUC,EACpCr7H,EAAM27H,EAAeptJ,CAAG,EAAI4jB,EAAI5jB,CAAG,EAEnC0T,IAAQ1T,EACV2rJ,EAAcj4I,CAAG,EAAI25I,EAAS57H,EAE9Bk6H,EAAcj4I,CAAG,EAAI25I,EAAS57H,CAEjC,CAGHy8B,GAAItjD,EAAM+gJ,CAAa,EAEvBD,GAAc9gJ,CAAI,GAEd,SAAUynB,GAAU,QAASA,IAC/Bw4H,GAAsBjgJ,EAAMuiJ,CAAkB,EAGhD,IAAIxiJ,EAAM,GAEV,QAASuR,KAAQmW,EACf,GAAIA,EAAO,eAAenW,CAAI,EAAG,CAC/B,IAAIoxI,EAAOZ,GAAmBxwI,EAAM1gB,CAAM,EAEtCs1D,EAAOz+B,EAAOnW,CAAI,EAAIkxI,EAAelxI,CAAI,EAEzCA,IAASoxI,EACX3iJ,EAAI2iJ,CAAI,EAAI3B,EAAc2B,CAAI,EAAIx8F,EAElCnmD,EAAI2iJ,CAAI,EAAI3B,EAAc2B,CAAI,EAAIx8F,CAErC,CAGH5C,GAAItjD,EAAMD,CAAG,CACf,CAEA,SAAS4iJ,IAAe3iJ,EAAMynB,EAAQ,CACpC,IAAI+6H,EAAiBrB,GAAUnhJ,CAAI,EAC/B4iJ,EAAaxC,IAAepgJ,CAAI,EAChC6iJ,EAAW,CACb,EAAGD,EAAW,EACd,EAAGA,EAAW,CAClB,EAEM,SAAUn7H,IACZo7H,EAAS,EAAID,EAAW,EAAIn7H,EAAO,KAAO+6H,EAAe,MAGvD,QAAS/6H,IACXo7H,EAAS,EAAID,EAAW,EAAIn7H,EAAO,IAAM+6H,EAAe,KAG1DhC,IAAexgJ,EAAM6iJ,CAAQ,CAC/B,CAEA,SAASC,IAAU9iJ,EAAMynB,EAAQ72B,EAAQ,CACvC,GAAIA,EAAO,YAAa,CACtB,IAAImyJ,EAAY5B,GAAUnhJ,CAAI,EAC1BgjJ,EAAQD,EAAU,KAAK,QAAQ,CAAC,EAChCE,EAAOF,EAAU,IAAI,QAAQ,CAAC,EAC9BG,EAAQz7H,EAAO,KAAK,QAAQ,CAAC,EAC7B07H,EAAO17H,EAAO,IAAI,QAAQ,CAAC,EAE/B,GAAIu7H,IAAUE,GAASD,IAASE,EAC9B,MAEH,CAEGvyJ,EAAO,aAAeA,EAAO,aAC/BoxJ,GAAWhiJ,EAAMynB,EAAQ72B,CAAM,EACtBA,EAAO,iBAAmBovJ,GAAkB,IAAI,SAAS,KAAK,MACvE2C,IAAe3iJ,EAAMynB,CAAM,EAE3Bu6H,GAAWhiJ,EAAMynB,EAAQ72B,CAAM,CAEnC,CAEA,SAASwyJ,GAAK9kJ,EAAKsH,EAAI,CACrB,QAASte,EAAI,EAAGA,EAAIgX,EAAI,OAAQhX,IAC9Bse,EAAGtH,EAAIhX,CAAC,CAAC,CAEb,CAEA,SAAS+7J,GAAcrjJ,EAAM,CAC3B,OAAO6gJ,GAAkB7gJ,EAAM,WAAW,IAAM,YAClD,CAEA,IAAIsjJ,IAAa,CAAC,SAAU,SAAU,SAAS,EAC3CC,GAAgB,GAChBC,IAAgB,EAChBC,GAAe,EACfC,IAAe,EAEnB,SAAS3qI,IAAK/Y,EAAMlT,EAASe,EAAU,CACrC,IAAImrB,EAAM,GACNn1B,EAAQmc,EAAK,MACbjd,EAEJ,IAAKA,KAAQ+J,EACPA,EAAQ,eAAe/J,CAAI,IAC7Bi2B,EAAIj2B,CAAI,EAAIc,EAAMd,CAAI,EACtBc,EAAMd,CAAI,EAAI+J,EAAQ/J,CAAI,GAI9B8K,EAAS,KAAKmS,CAAI,EAElB,IAAKjd,KAAQ+J,EACPA,EAAQ,eAAe/J,CAAI,IAC7Bc,EAAMd,CAAI,EAAIi2B,EAAIj2B,CAAI,EAG5B,CAEA,SAAS4gK,GAAY3jJ,EAAM6W,EAAOwG,EAAO,CACvC,IAAI55B,EAAQ,EACRwuB,EACAvX,EACApT,EAEJ,IAAKoT,EAAI,EAAGA,EAAImc,EAAM,OAAQnc,IAG5B,GAFAuX,EAAO4E,EAAMnc,CAAC,EAEVuX,EACF,IAAK3qB,EAAI,EAAGA,EAAI+1B,EAAM,OAAQ/1B,IAAK,CACjC,IAAIugF,EAAU,OAEV51D,IAAS,SACX41D,EAAU,GAAG,OAAO51D,CAAI,EAAE,OAAOoL,EAAM/1B,CAAC,EAAG,OAAO,EAElDugF,EAAU51D,EAAOoL,EAAM/1B,CAAC,EAG1B7D,GAAS,WAAWo9J,GAAkB7gJ,EAAM6nE,CAAO,CAAC,GAAK,CAC1D,CAIL,OAAOpkF,CACT,CAEA,IAAImgK,GAAW,CACb,UAAW,SAAmBzgK,EAAS,CACrC,IAAI4lB,EAAS5lB,EAEb,GACM4lB,EAAO,WAAa,IAAMA,EAAO,KACnCA,EAASA,EAAO,KAEhBA,EAASA,EAAO,iBAEXA,GAAUA,EAAO,WAAa,GAAKA,EAAO,WAAa,GAEhE,OAAOA,CACR,CACH,EACAq6I,GAAK,CAAC,QAAS,QAAQ,EAAG,SAAUrgK,EAAM,CACxC6gK,GAAS,MAAM,OAAO7gK,CAAI,CAAC,EAAI,SAAU8gK,EAAQ,CAC/C,IAAI/3H,EAAI+3H,EAAO,SACf,OAAO,KAAK,IAEZ/3H,EAAE,gBAAgB,SAAS,OAAO/oC,CAAI,CAAC,EACvC+oC,EAAE,KAAK,SAAS,OAAO/oC,CAAI,CAAC,EAAG6gK,GAAS,WAAW,OAAO7gK,CAAI,CAAC,EAAE+oC,CAAC,CAAC,CACvE,EAEE83H,GAAS,WAAW,OAAO7gK,CAAI,CAAC,EAAI,SAAUwkC,EAAK,CAEjD,IAAItV,EAAO,SAAS,OAAOlvB,CAAI,EAC3Bwc,EAAMgoB,EAAI,SACVx+B,EAAOwW,EAAI,KACX9K,EAAkB8K,EAAI,gBACtBukJ,EAAsBrvJ,EAAgBwd,CAAI,EAG9C,OAAO1S,EAAI,aAAe,cAAgBukJ,GAAuB/6J,GAAQA,EAAKkpB,CAAI,GAAK6xI,CAC3F,CACA,CAAC,EAUD,SAASC,GAAM/jJ,EAAMjd,EAAMisB,EAAI,CAC7B,IAAI4M,EAAQ5M,EAEZ,GAAI7P,GAASa,CAAI,EACf,OAAOjd,IAAS,QAAU6gK,GAAS,cAAc5jJ,CAAI,EAAI4jJ,GAAS,eAAe5jJ,CAAI,EAChF,GAAIA,EAAK,WAAa,EAC3B,OAAOjd,IAAS,QAAU6gK,GAAS,SAAS5jJ,CAAI,EAAI4jJ,GAAS,UAAU5jJ,CAAI,EAG7E,IAAIqd,EAAQt6B,IAAS,QAAU,CAAC,OAAQ,OAAO,EAAI,CAAC,MAAO,QAAQ,EAC/DihK,EAAoC,KAAK,MAAxBjhK,IAAS,QAAqBid,EAAK,sBAAqB,EAAG,MAAoBA,EAAK,sBAAqB,EAAG,MAA5C,EACjFyb,EAAc4nI,GAAcrjJ,CAAI,EAChCikJ,EAAc,GAEdD,GAAmB,MAAwCA,GAAkB,KAC/EA,EAAiB,OAEjBC,EAAcpD,GAAkB7gJ,EAAMjd,CAAI,GAEtCkhK,GAAgB,MAAqC,OAAOA,CAAW,EAAI,KAC7EA,EAAcjkJ,EAAK,MAAMjd,CAAI,GAAK,GAIpCkhK,EAAc,WAAWA,CAAW,GAAK,GAGvCroI,IAAU,SACZA,EAAQH,EAAcgoI,GAAeF,IAGvC,IAAIW,EAA8BF,IAAmB,QAAavoI,EAC9Djc,EAAMwkJ,GAAkBC,EAE5B,OAAIroI,IAAU2nI,GACRW,EACK1kJ,EAAMmkJ,GAAY3jJ,EAAM,CAAC,SAAU,SAAS,EAAGqd,CAAK,EAGtD4mI,EACEC,EACLtoI,IAAU6nI,GACLjkJ,EAGFA,GAAOoc,IAAU4nI,IAAgB,CAACG,GAAY3jJ,EAAM,CAAC,QAAQ,EAAGqd,CAAK,EAAIsmI,GAAY3jJ,EAAM,CAAC,QAAQ,EAAGqd,CAAK,GAG9G4mI,EAAcN,GAAY3jJ,EAAMsjJ,IAAW,MAAM1nI,CAAK,EAAGyB,CAAK,CACvE,CAEA,IAAInC,IAAU,CACZ,SAAU,WACV,WAAY,SACZ,QAAS,OACX,EAEA,SAASipI,IAAqB,CAC5B,QAASroG,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGsD,EAAQ,EAAGA,EAAQtD,EAAMsD,IACjFl2C,EAAKk2C,CAAK,EAAI,UAAUA,CAAK,EAG/B,IAAI5/C,EACAQ,EAAOkJ,EAAK,CAAC,EAGjB,OAAIlJ,EAAK,cAAgB,EACvBR,EAAMukJ,GAAM,MAAM,OAAW76I,CAAI,EAEjC6P,IAAK/Y,EAAMkb,IAAS,UAAY,CAC9B1b,EAAMukJ,GAAM,MAAM,OAAW76I,CAAI,CACvC,CAAK,EAGI1J,CACT,CAEA4jJ,GAAK,CAAC,QAAS,QAAQ,EAAG,SAAUrgK,EAAM,CACxC,IAAI4d,EAAQ5d,EAAK,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAK,MAAM,CAAC,EAEvD6gK,GAAS,QAAQ,OAAOjjJ,CAAK,CAAC,EAAI,SAAUmF,EAAIs+I,EAAe,CAC7D,OAAOt+I,GAAMq+I,GAAmBr+I,EAAI/iB,EAAMqhK,EAAgBV,IAAeD,EAAY,CACzF,EAEE,IAAIpmI,EAAQt6B,IAAS,QAAU,CAAC,OAAQ,OAAO,EAAI,CAAC,MAAO,QAAQ,EAEnE6gK,GAAS7gK,CAAI,EAAI,SAAUid,EAAMzE,EAAG,CAClC,IAAIiE,EAAMjE,EAEV,GAAIiE,IAAQ,OAAW,CACrB,GAAIQ,EAAM,CACR,IAAIyb,EAAc4nI,GAAcrjJ,CAAI,EAEpC,OAAIyb,IACFjc,GAAOmkJ,GAAY3jJ,EAAM,CAAC,UAAW,QAAQ,EAAGqd,CAAK,GAGhDimC,GAAItjD,EAAMjd,EAAMyc,CAAG,CAC3B,CAED,MACD,CAED,OAAOQ,GAAQmkJ,GAAmBnkJ,EAAMjd,EAAMwgK,EAAa,CAC/D,CACA,CAAC,EAED,SAASc,GAAIzlI,EAAIqO,EAAM,CACrB,QAAS3lC,KAAK2lC,EACRA,EAAK,eAAe3lC,CAAC,IACvBs3B,EAAGt3B,CAAC,EAAI2lC,EAAK3lC,CAAC,GAIlB,OAAOs3B,CACT,CAEA,IAAIo6C,GAAQ,CACV,UAAW,SAAmB9sE,EAAM,CAClC,GAAIA,GAAQA,EAAK,UAAYA,EAAK,WAChC,OAAOA,EAGT,IAAIqT,EAAMrT,EAAK,eAAiBA,EAChC,OAAOqT,EAAI,aAAeA,EAAI,YAC/B,EACD,YAAa6hJ,GACb,OAAQ,SAAgBt7I,EAAIriB,EAAOmN,EAAQ,CACzC,GAAI,OAAOnN,EAAU,IACnBq/J,IAAUh9I,EAAIriB,EAAOmN,GAAU,CAAE,OAEjC,QAAOuwJ,GAAUr7I,CAAE,CAEtB,EACD,SAAU3G,GACV,KAAMikJ,GACN,IAAK9/F,GACL,MAAO,SAAetnD,EAAK,CACzB,IAAI1U,EACAyY,EAAM,GAEV,IAAKzY,KAAK0U,EACJA,EAAI,eAAe1U,CAAC,IACtByY,EAAIzY,CAAC,EAAI0U,EAAI1U,CAAC,GAIlB,IAAIm4G,EAAWzjG,EAAI,SAEnB,GAAIyjG,EACF,IAAKn4G,KAAK0U,EACJA,EAAI,eAAe1U,CAAC,IACtByY,EAAI,SAASzY,CAAC,EAAI0U,EAAI,SAAS1U,CAAC,GAKtC,OAAOyY,CACR,EACD,IAAKskJ,GACL,oBAAqB,SAA6BzqJ,EAAG,CACnD,OAAOsnJ,GAActnJ,CAAC,CACvB,EACD,mBAAoB,SAA4BA,EAAG,CACjD,OAAO6xE,GAAa7xE,CAAC,CACtB,EACD,MAAO,UAAiB,CAGtB,QAFImG,EAAM,GAEDzY,EAAI,EAAGA,EAAI,UAAU,OAAQA,IACpC0xE,GAAM,IAAIj5D,EAAKzY,EAAI,GAAK,UAAU,QAAUA,EAAI,OAAY,UAAUA,CAAC,CAAC,EAG1E,OAAOyY,CACR,EACD,cAAe,EACf,eAAgB,CAClB,EACAskJ,GAAIrrF,GAAO4qF,EAAQ,EAMnB,IAAIU,GAAYtrF,GAAM,UAEtB,SAASurF,GAAgBphK,EAAS,CAChC,GAAI61E,GAAM,SAAS71E,CAAO,GAAKA,EAAQ,WAAa,EAClD,OAAO,KAmBT,IAAIoc,EAAMy5D,GAAM,YAAY71E,CAAO,EAC/B4F,EAAOwW,EAAI,KACXwJ,EACAy7I,EAAgBxrF,GAAM,IAAI71E,EAAS,UAAU,EAC7CshK,EAAaD,IAAkB,SAAWA,IAAkB,WAEhE,GAAI,CAACC,EACH,OAAOthK,EAAQ,SAAS,YAAa,IAAK,OAAS,KAAOmhK,GAAUnhK,CAAO,EAG7E,IAAK4lB,EAASu7I,GAAUnhK,CAAO,EAAG4lB,GAAUA,IAAWhgB,GAAQggB,EAAO,WAAa,EAAGA,EAASu7I,GAAUv7I,CAAM,EAG7G,GAFAy7I,EAAgBxrF,GAAM,IAAIjwD,EAAQ,UAAU,EAExCy7I,IAAkB,SACpB,OAAOz7I,EAIX,OAAO,IACT,CAEA,IAAI27I,GAAc1rF,GAAM,UACxB,SAAS2rF,IAAgBxhK,EAAS,CAChC,GAAI61E,GAAM,SAAS71E,CAAO,GAAKA,EAAQ,WAAa,EAClD,MAAO,GAGT,IAAIoc,EAAMy5D,GAAM,YAAY71E,CAAO,EAC/B4F,EAAOwW,EAAI,KACXwJ,EAAS,KAEb,IAAKA,EAAS27I,GAAYvhK,CAAO,EACjC4lB,GAAUA,IAAWhgB,GAAQggB,IAAWxJ,EAAKwJ,EAAS27I,GAAY37I,CAAM,EAAG,CACzE,IAAIy7I,EAAgBxrF,GAAM,IAAIjwD,EAAQ,UAAU,EAEhD,GAAIy7I,IAAkB,QACpB,MAAO,EAEV,CAED,MAAO,EACT,CAMA,SAASI,GAAyBzhK,EAAS0hK,EAAkB,CAc3D,QAbIC,EAAc,CAChB,KAAM,EACN,MAAO,IACP,IAAK,EACL,OAAQ,GACZ,EACMh/I,EAAKy+I,GAAgBphK,CAAO,EAC5Boc,EAAMy5D,GAAM,YAAY71E,CAAO,EAC/BokC,EAAMhoB,EAAI,aAAeA,EAAI,aAC7BxW,EAAOwW,EAAI,KACX9K,EAAkB8K,EAAI,gBAGnBuG,GAAI,CAET,IAAK,UAAU,UAAU,QAAQ,MAAM,IAAM,IAAMA,EAAG,cAAgB,IAGtEA,IAAO/c,GAAQ+c,IAAOrR,GAAmBukE,GAAM,IAAIlzD,EAAI,UAAU,IAAM,UAAW,CAChF,IAAI43F,EAAM1kC,GAAM,OAAOlzD,CAAE,EAEzB43F,EAAI,MAAQ53F,EAAG,WACf43F,EAAI,KAAO53F,EAAG,UACdg/I,EAAY,IAAM,KAAK,IAAIA,EAAY,IAAKpnD,EAAI,GAAG,EACnDonD,EAAY,MAAQ,KAAK,IAAIA,EAAY,MACzCpnD,EAAI,KAAO53F,EAAG,WAAW,EACzBg/I,EAAY,OAAS,KAAK,IAAIA,EAAY,OAAQpnD,EAAI,IAAM53F,EAAG,YAAY,EAC3Eg/I,EAAY,KAAO,KAAK,IAAIA,EAAY,KAAMpnD,EAAI,IAAI,CACvD,SAAU53F,IAAO/c,GAAQ+c,IAAOrR,EAC/B,MAGFqR,EAAKy+I,GAAgBz+I,CAAE,CACxB,CAKD,IAAIi/I,EAAmB,KAEvB,GAAI,CAAC/rF,GAAM,SAAS71E,CAAO,GAAKA,EAAQ,WAAa,EAAG,CACtD4hK,EAAmB5hK,EAAQ,MAAM,SACjC,IAAI4Q,EAAWilE,GAAM,IAAI71E,EAAS,UAAU,EAExC4Q,IAAa,aACf5Q,EAAQ,MAAM,SAAW,QAE5B,CAED,IAAI6hK,EAAUhsF,GAAM,oBAAoBzxC,CAAG,EACvC09H,EAAUjsF,GAAM,mBAAmBzxC,CAAG,EACtC29H,EAAgBlsF,GAAM,cAAczxC,CAAG,EACvC49H,EAAiBnsF,GAAM,eAAezxC,CAAG,EACzC69H,EAAgB3wJ,EAAgB,YAChC4wJ,EAAiB5wJ,EAAgB,aAGjC6wJ,EAAY,OAAO,iBAAiBv8J,CAAI,EAe5C,GAbIu8J,EAAU,YAAc,WAC1BF,EAAgB79H,EAAI,YAGlB+9H,EAAU,YAAc,WAC1BD,EAAiB99H,EAAI,aAInBpkC,EAAQ,QACVA,EAAQ,MAAM,SAAW4hK,GAGvBF,GAAoBF,IAAgBxhK,CAAO,EAE7C2hK,EAAY,KAAO,KAAK,IAAIA,EAAY,KAAME,CAAO,EACrDF,EAAY,IAAM,KAAK,IAAIA,EAAY,IAAKG,CAAO,EACnDH,EAAY,MAAQ,KAAK,IAAIA,EAAY,MAAOE,EAAUE,CAAa,EACvEJ,EAAY,OAAS,KAAK,IAAIA,EAAY,OAAQG,EAAUE,CAAc,MACrE,CAEL,IAAII,EAAkB,KAAK,IAAIH,EAAeJ,EAAUE,CAAa,EACrEJ,EAAY,MAAQ,KAAK,IAAIA,EAAY,MAAOS,CAAe,EAC/D,IAAIC,EAAmB,KAAK,IAAIH,EAAgBJ,EAAUE,CAAc,EACxEL,EAAY,OAAS,KAAK,IAAIA,EAAY,OAAQU,CAAgB,CACnE,CAED,OAAOV,EAAY,KAAO,GAAKA,EAAY,MAAQ,GAAKA,EAAY,OAASA,EAAY,KAAOA,EAAY,MAAQA,EAAY,KAAOA,EAAc,IACvJ,CAEA,SAASW,IAAkBC,EAAaC,EAAUb,EAAarlD,EAAU,CACvE,IAAI/B,EAAM1kC,GAAM,MAAM0sF,CAAW,EAC7BvwJ,EAAO,CACT,MAAOwwJ,EAAS,MAChB,OAAQA,EAAS,MACrB,EAEE,OAAIlmD,EAAS,SAAW/B,EAAI,KAAOonD,EAAY,OAC7CpnD,EAAI,KAAOonD,EAAY,MAIrBrlD,EAAS,aAAe/B,EAAI,MAAQonD,EAAY,MAAQpnD,EAAI,KAAOvoG,EAAK,MAAQ2vJ,EAAY,QAC9F3vJ,EAAK,OAASuoG,EAAI,KAAOvoG,EAAK,MAAQ2vJ,EAAY,OAIhDrlD,EAAS,SAAW/B,EAAI,KAAOvoG,EAAK,MAAQ2vJ,EAAY,QAE1DpnD,EAAI,KAAO,KAAK,IAAIonD,EAAY,MAAQ3vJ,EAAK,MAAO2vJ,EAAY,IAAI,GAIlErlD,EAAS,SAAW/B,EAAI,IAAMonD,EAAY,MAC5CpnD,EAAI,IAAMonD,EAAY,KAIpBrlD,EAAS,cAAgB/B,EAAI,KAAOonD,EAAY,KAAOpnD,EAAI,IAAMvoG,EAAK,OAAS2vJ,EAAY,SAC7F3vJ,EAAK,QAAUuoG,EAAI,IAAMvoG,EAAK,OAAS2vJ,EAAY,QAIjDrlD,EAAS,SAAW/B,EAAI,IAAMvoG,EAAK,OAAS2vJ,EAAY,SAE1DpnD,EAAI,IAAM,KAAK,IAAIonD,EAAY,OAAS3vJ,EAAK,OAAQ2vJ,EAAY,GAAG,GAG/D9rF,GAAM,IAAI0kC,EAAKvoG,CAAI,CAC5B,CAEA,SAASywJ,GAAU15J,EAAM,CACvB,IAAIu7B,EACA7tB,EACAqyB,EAEJ,GAAI,CAAC+sC,GAAM,SAAS9sE,CAAI,GAAKA,EAAK,WAAa,EAC7Cu7B,EAASuxC,GAAM,OAAO9sE,CAAI,EAC1B0N,EAAIo/D,GAAM,WAAW9sE,CAAI,EACzB+/B,EAAI+sC,GAAM,YAAY9sE,CAAI,MACrB,CACL,IAAIq7B,EAAMyxC,GAAM,UAAU9sE,CAAI,EAC9Bu7B,EAAS,CACP,KAAMuxC,GAAM,oBAAoBzxC,CAAG,EACnC,IAAKyxC,GAAM,mBAAmBzxC,CAAG,CACvC,EACI3tB,EAAIo/D,GAAM,cAAczxC,CAAG,EAC3B0E,EAAI+sC,GAAM,eAAezxC,CAAG,CAC7B,CAED,OAAAE,EAAO,MAAQ7tB,EACf6tB,EAAO,OAASwE,EACTxE,CACT,CAKA,SAASo+H,GAAeC,EAAQ78D,EAAO,CACrC,IAAIz6D,EAAIy6D,EAAM,OAAO,CAAC,EAClBv7D,EAAIu7D,EAAM,OAAO,CAAC,EAClBrvF,EAAIksJ,EAAO,MACX75H,EAAI65H,EAAO,OACXt5J,EAAIs5J,EAAO,KACXr5J,EAAIq5J,EAAO,IAEf,OAAIt3H,IAAM,IACR/hC,GAAKw/B,EAAI,EACAuC,IAAM,MACf/hC,GAAKw/B,GAGHyB,IAAM,IACRlhC,GAAKoN,EAAI,EACA8zB,IAAM,MACflhC,GAAKoN,GAGA,CACL,KAAMpN,EACN,IAAKC,CACT,CACA,CAEA,SAASs5J,GAAeJ,EAAUK,EAAehlF,EAAQv5C,EAAQw+H,EAAc,CAC7E,IAAIhgF,EAAK4/E,GAAeG,EAAehlF,EAAO,CAAC,CAAC,EAC5CkF,EAAK2/E,GAAeF,EAAU3kF,EAAO,CAAC,CAAC,EACvC56D,EAAO,CAAC8/D,EAAG,KAAOD,EAAG,KAAMC,EAAG,IAAMD,EAAG,GAAG,EAC9C,MAAO,CACL,KAAM,KAAK,MAAM0/E,EAAS,KAAOv/I,EAAK,CAAC,EAAIqhB,EAAO,CAAC,EAAIw+H,EAAa,CAAC,CAAC,EACtE,IAAK,KAAK,MAAMN,EAAS,IAAMv/I,EAAK,CAAC,EAAIqhB,EAAO,CAAC,EAAIw+H,EAAa,CAAC,CAAC,CACxE,CACA,CAOA,SAASC,GAAQR,EAAaC,EAAUb,EAAa,CACnD,OAAOY,EAAY,KAAOZ,EAAY,MAAQY,EAAY,KAAOC,EAAS,MAAQb,EAAY,KAChG,CAEA,SAASqB,GAAQT,EAAaC,EAAUb,EAAa,CACnD,OAAOY,EAAY,IAAMZ,EAAY,KAAOY,EAAY,IAAMC,EAAS,OAASb,EAAY,MAC9F,CAEA,SAASsB,IAAgBV,EAAaC,EAAUb,EAAa,CAC3D,OAAOY,EAAY,KAAOZ,EAAY,OAASY,EAAY,KAAOC,EAAS,MAAQb,EAAY,IACjG,CAEA,SAASuB,IAAgBX,EAAaC,EAAUb,EAAa,CAC3D,OAAOY,EAAY,IAAMZ,EAAY,QAAUY,EAAY,IAAMC,EAAS,OAASb,EAAY,GACjG,CAEA,SAASwB,GAAKtlF,EAAQulF,EAAKx7I,EAAK,CAC9B,IAAIhL,EAAM,GACV,OAAAi5D,GAAM,KAAKgI,EAAQ,SAAUpkD,EAAG,CAC9B7c,EAAI,KAAK6c,EAAE,QAAQ2pI,EAAK,SAAUlrJ,EAAG,CACnC,OAAO0P,EAAI1P,CAAC,CACb,EAAC,CACN,CAAG,EACM0E,CACT,CAEA,SAASymJ,GAAW/+H,EAAQ/2B,EAAO,CACjC,OAAA+2B,EAAO/2B,CAAK,EAAI,CAAC+2B,EAAO/2B,CAAK,EACtB+2B,CACT,CAEA,SAASg/H,GAAchuF,EAAKiuF,EAAW,CACrC,IAAI,EAEJ,MAAI,KAAK,KAAKjuF,CAAG,EACf,EAAI,SAASA,EAAI,UAAU,EAAGA,EAAI,OAAS,CAAC,EAAG,EAAE,EAAI,IAAMiuF,EAE3D,EAAI,SAASjuF,EAAK,EAAE,EAGf,GAAK,CACd,CAEA,SAASkuF,GAAgBl/H,EAAQ3hB,EAAI,CACnC2hB,EAAO,CAAC,EAAIg/H,GAAch/H,EAAO,CAAC,EAAG3hB,EAAG,KAAK,EAC7C2hB,EAAO,CAAC,EAAIg/H,GAAch/H,EAAO,CAAC,EAAG3hB,EAAG,MAAM,CAChD,CAQA,SAAS8gJ,GAAQ9gJ,EAAI+gJ,EAAW59D,EAAO69D,EAAoB,CACzD,IAAI9lF,EAASioB,EAAM,OACfxhE,EAASwhE,EAAM,QAAU,CAAC,EAAG,CAAC,EAC9Bg9D,EAAeh9D,EAAM,cAAgB,CAAC,EAAG,CAAC,EAC1CwW,EAAWxW,EAAM,SACjBt4F,EAASs4F,EAAM,QAAUnjF,EAC7B2hB,EAAS,CAAE,EAAC,OAAOA,CAAM,EACzBw+H,EAAe,CAAE,EAAC,OAAOA,CAAY,EACrCxmD,EAAWA,GAAY,GACvB,IAAIsnD,EAAiB,GACjBC,EAAO,EACPnC,EAAmB,CAAC,EAAEplD,GAAYA,EAAS,kBAE3CqlD,EAAcF,GAAyBj0J,EAAQk0J,CAAgB,EAE/Dc,EAAWC,GAAUj1J,CAAM,EAE/Bg2J,GAAgBl/H,EAAQk+H,CAAQ,EAChCgB,GAAgBV,EAAcY,CAAS,EAEvC,IAAInB,EAAcK,GAAeJ,EAAUkB,EAAW7lF,EAAQv5C,EAAQw+H,CAAY,EAE9EgB,EAAcjuF,GAAM,MAAM2sF,EAAUD,CAAW,EAEnD,GAAIZ,IAAgBrlD,EAAS,SAAWA,EAAS,UAAYqnD,EAAoB,CAC/E,GAAIrnD,EAAS,SAEPymD,GAAQR,EAAaC,EAAUb,CAAW,EAAG,CAE/C,IAAIoC,EAAYZ,GAAKtlF,EAAQ,SAAU,CACrC,EAAG,IACH,EAAG,GACb,CAAS,EAEGmmF,EAAYX,GAAW/+H,EAAQ,CAAC,EAChC2/H,EAAkBZ,GAAWP,EAAc,CAAC,EAC5CoB,EAAiBtB,GAAeJ,EAAUkB,EAAWK,EAAWC,EAAWC,CAAe,EAEzFhB,IAAgBiB,EAAgB1B,EAAUb,CAAW,IACxDkC,EAAO,EACPhmF,EAASkmF,EACTz/H,EAAS0/H,EACTlB,EAAemB,EAElB,CAGH,GAAI3nD,EAAS,SAEP0mD,GAAQT,EAAaC,EAAUb,CAAW,EAAG,CAE/C,IAAIwC,EAAahB,GAAKtlF,EAAQ,SAAU,CACtC,EAAG,IACH,EAAG,GACb,CAAS,EAGGumF,EAAaf,GAAW/+H,EAAQ,CAAC,EAEjC+/H,EAAmBhB,GAAWP,EAAc,CAAC,EAE7CwB,EAAkB1B,GAAeJ,EAAUkB,EAAWS,EAAYC,EAAYC,CAAgB,EAE7FnB,IAAgBoB,EAAiB9B,EAAUb,CAAW,IACzDkC,EAAO,EACPhmF,EAASsmF,EACT7/H,EAAS8/H,EACTtB,EAAeuB,EAElB,CAICR,IACFtB,EAAcK,GAAeJ,EAAUkB,EAAW7lF,EAAQv5C,EAAQw+H,CAAY,EAC9EjtF,GAAM,IAAIiuF,EAAavB,CAAW,GAGpC,IAAIgC,EAAexB,GAAQR,EAAaC,EAAUb,CAAW,EACzD6C,EAAexB,GAAQT,EAAaC,EAAUb,CAAW,EAG7D,GAAI4C,GAAgBC,EAAc,CAChC,IAAIC,EAAc5mF,EAEd0mF,IACFE,EAActB,GAAKtlF,EAAQ,SAAU,CACnC,EAAG,IACH,EAAG,GACb,CAAS,GAGC2mF,IACFC,EAActB,GAAKtlF,EAAQ,SAAU,CACnC,EAAG,IACH,EAAG,GACb,CAAS,GAGHA,EAAS4mF,EACTngI,EAASwhE,EAAM,QAAU,CAAC,EAAG,CAAC,EAC9Bg9D,EAAeh9D,EAAM,cAAgB,CAAC,EAAG,CAAC,CAC3C,CAGD89D,EAAe,QAAUtnD,EAAS,SAAWioD,EAC7CX,EAAe,QAAUtnD,EAAS,SAAWkoD,GAEzCZ,EAAe,SAAWA,EAAe,WAC3CE,EAAcxB,IAAkBC,EAAaC,EAAUb,EAAaiC,CAAc,EAErF,CAGD,OAAIE,EAAY,QAAUtB,EAAS,OACjC3sF,GAAM,IAAIroE,EAAQ,QAASqoE,GAAM,MAAMroE,CAAM,EAAIs2J,EAAY,MAAQtB,EAAS,KAAK,EAGjFsB,EAAY,SAAWtB,EAAS,QAClC3sF,GAAM,IAAIroE,EAAQ,SAAUqoE,GAAM,OAAOroE,CAAM,EAAIs2J,EAAY,OAAStB,EAAS,MAAM,EAMzF3sF,GAAM,OAAOroE,EAAQ,CACnB,KAAMs2J,EAAY,KAClB,IAAKA,EAAY,GACrB,EAAK,CACD,YAAah+D,EAAM,YACnB,aAAcA,EAAM,aACpB,gBAAiBA,EAAM,gBACvB,YAAaA,EAAM,WACvB,CAAG,EACM,CACL,OAAQjoB,EACR,OAAQv5C,EACR,aAAcw+H,EACd,SAAUc,CACd,CACA,CAUA,SAASc,IAAmB3kK,EAAQ2hK,EAAkB,CACpD,IAAIC,EAAcF,GAAyB1hK,EAAQ2hK,CAAgB,EAC/DiD,EAAelC,GAAU1iK,CAAM,EACnC,MAAO,CAAC4hK,GAAegD,EAAa,KAAOA,EAAa,OAAShD,EAAY,MAAQgD,EAAa,IAAMA,EAAa,QAAUhD,EAAY,KAAOgD,EAAa,MAAQhD,EAAY,OAASgD,EAAa,KAAOhD,EAAY,MAC9N,CAEA,SAASiD,GAAajiJ,EAAIkiJ,EAAS/+D,EAAO,CACxC,IAAI/lG,EAAS+lG,EAAM,QAAU++D,EACzBhC,EAAgBJ,GAAU1iK,CAAM,EAChC+kK,EAA0B,CAACJ,IAAmB3kK,EAAQ+lG,EAAM,UAAYA,EAAM,SAAS,gBAAgB,EAC3G,OAAO29D,GAAQ9gJ,EAAIkgJ,EAAe/8D,EAAOg/D,CAAuB,CAClE,CAEAF,GAAa,kBAAoBxD,GACjCwD,GAAa,2BAA6BnD,GAO1C,SAASsD,IAAWpiJ,EAAIqiJ,EAAUl/D,EAAO,CACvC,IAAIm/D,EACAC,EACA9oJ,EAAMy5D,GAAM,YAAYlzD,CAAE,EAC1ByhB,EAAMhoB,EAAI,aAAeA,EAAI,aAC7BylJ,EAAUhsF,GAAM,oBAAoBzxC,CAAG,EACvC09H,EAAUjsF,GAAM,mBAAmBzxC,CAAG,EACtC29H,EAAgBlsF,GAAM,cAAczxC,CAAG,EACvC49H,EAAiBnsF,GAAM,eAAezxC,CAAG,EAEzC,UAAW4gI,EACbC,EAAQD,EAAS,MAEjBC,EAAQpD,EAAUmD,EAAS,QAGzB,UAAWA,EACbE,EAAQF,EAAS,MAEjBE,EAAQpD,EAAUkD,EAAS,QAG7B,IAAItB,EAAY,CACd,KAAMuB,EACN,IAAKC,EACL,MAAO,EACP,OAAQ,CACZ,EACMC,EAAcF,GAAS,GAAKA,GAASpD,EAAUE,GAAiBmD,GAAS,GAAKA,GAASpD,EAAUE,EAEjGnkF,EAAS,CAACioB,EAAM,OAAO,CAAC,EAAG,IAAI,EACnC,OAAO29D,GAAQ9gJ,EAAI+gJ,EAAWh8E,GAAeA,GAAe,CAAE,EAAEoe,CAAK,EAAG,GAAI,CAC1E,OAAQjoB,CACZ,CAAG,EAAGsnF,CAAW,CACjB,CCvzCO,SAASC,IAAO3iJ,EAAIi0F,EAAI,CAC7B,IAAIv6E,EAAQ,OAEZ,SAASqJ,GAAQ,CACXrJ,IACF,aAAaA,CAAK,EAClBA,EAAQ,KAEX,CAED,SAASkpI,GAAW,CAClB7/H,IACArJ,EAAQ,WAAW1Z,EAAIi0F,CAAE,CAC1B,CAED,OAAA2uD,EAAS,MAAQ7/H,EAEV6/H,CACT,CAEO,SAASC,IAAYpkI,EAAMhnB,EAAM,CACtC,OAAIgnB,IAAShnB,EAAa,GACtB,CAACgnB,GAAQ,CAAChnB,EAAa,GAEvB,UAAWA,GAAQ,UAAWA,EACzBgnB,EAAK,QAAUhnB,EAAK,OAASgnB,EAAK,QAAUhnB,EAAK,MAGtD,YAAaA,GAAQ,YAAaA,EAC7BgnB,EAAK,UAAYhnB,EAAK,SAAWgnB,EAAK,UAAYhnB,EAAK,QAGzD,EACT,CAEO,SAAS8B,GAASnD,EAAK,CAC5B,OAAOA,GAAO,OAAOA,GAAQ,UAAYA,EAAI,SAAWA,CAC1D,CAEO,SAAS0sJ,GAAeC,EAAMC,EAAM,CACzC,IAAIC,EAAO,KAAK,MAAMF,CAAI,EACtBG,EAAO,KAAK,MAAMF,CAAI,EAC1B,OAAO,KAAK,IAAIC,EAAOC,CAAI,GAAK,CAClC,CAEO,SAASC,IAAarjG,EAAenvD,EAAW,CAEjDmvD,IAAkB,SAAS,eAAiBxjD,GAAS3L,EAAWmvD,CAAa,GAC/EA,EAAc,MAAK,CAEvB,CCxCA,SAASsjG,GAAW75I,EAAM,CACxB,OAAI,OAAOA,GAAS,YAAc,CAACA,EAAa,KACzCA,EAAI,CACb,CAEA,SAAS85I,GAASvd,EAAO,CACvB,OAAI,OAAOA,GAAU,UAAY,CAACA,EAAc,KACzCA,CACT,CAEA,IAAIwd,GAAQ,SAAUn/E,EAAY,CAChC9iB,GAAUiiG,EAAOn/E,CAAU,EAE3B,SAASm/E,GAAQ,CACf,IAAI7rG,EAEAsP,EAAOnN,EAAOoN,EAElBhG,GAAgB,KAAMsiG,CAAK,EAE3B,QAASptG,EAAO,UAAU,OAAQ5yC,EAAO,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC3EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAOs7C,GAAQD,GAASnN,EAAQuH,GAA2B,MAAO1J,EAAO6rG,EAAM,WAAa,OAAO,eAAeA,CAAK,GAAG,KAAK,MAAM7rG,EAAM,CAAC,IAAI,EAAE,OAAOn0C,CAAI,CAAC,CAAC,EAAGs2C,GAAQA,EAAM,WAAa,UAAY,CACvM,IAAItB,EAAcsB,EAAM,MACpBh5C,EAAW03C,EAAY,SACvBh7D,EAASg7D,EAAY,OACrB+qC,EAAQ/qC,EAAY,MACpBirG,EAAUjrG,EAAY,QAE1B,GAAI,CAAC13C,GAAYtjB,EAAQ,CACvB,IAAIyN,EAASuhE,GAAS,YAAY1S,CAAK,EAEnCp4D,EAAS,OACTjE,EAAU6lK,GAAW9lK,CAAM,EAC3BwoJ,EAAQud,GAAS/lK,CAAM,EAIvBwiE,EAAgB,SAAS,cAEzBviE,EACFiE,EAAS2gK,GAAap3J,EAAQxN,EAAS8lG,CAAK,EACnCyiD,IACTtkJ,EAAS8gK,IAAWv3J,EAAQ+6I,EAAOziD,CAAK,GAG1C8/D,IAAarjG,EAAe/0D,CAAM,EAE9Bw4J,GACFA,EAAQx4J,EAAQvJ,CAAM,CAEzB,CACF,EAAEulE,GAAQ5F,GAA2BvH,EAAOoN,CAAI,CAClD,CAEDsc,UAAaggF,EAAO,CAAC,CACnB,IAAK,oBACL,MAAO,UAA6B,CAClC,IAAIryI,EAAQ,KAAK,MAEjB,KAAK,WAAU,EACX,CAACA,EAAM,UAAYA,EAAM,qBAC3B,KAAK,yBAAwB,CAEhC,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BgkC,EAAW,CAC5C,IAAIuuG,EAAU,GACVvyI,EAAQ,KAAK,MAEjB,GAAI,CAACA,EAAM,SAAU,CACnB,IAAIlmB,EAASuhE,GAAS,YAAY,IAAI,EAClCm3F,EAAa14J,EAASA,EAAO,sBAAqB,EAAK,KAE3D,GAAIkqD,EAAU,SACZuuG,EAAU,OACL,CACL,IAAIloI,EAAc8nI,GAAWnuG,EAAU,MAAM,EACzClsD,EAAiBq6J,GAAWnyI,EAAM,MAAM,EACxCyyI,EAAYL,GAASpuG,EAAU,MAAM,EACrC0uG,EAAeN,GAASpyI,EAAM,MAAM,EAEpC1X,GAAS+hB,CAAW,GAAK/hB,GAASxQ,CAAc,EAElDy6J,EAAU,IACDloI,IAAgBvyB,GAC3BuyB,GAAe,CAACvyB,GAAkB46J,GAClCD,GAAaC,GAAgB56J,GAC7B46J,GAAgB,CAACd,IAAYa,EAAWC,CAAY,KAClDH,EAAU,IAIZ,IAAII,EAAU,KAAK,YAAc,GAC7B,CAACJ,GAAWz4J,IAAW,CAAC+3J,GAAec,EAAQ,MAAOH,EAAW,KAAK,GAAK,CAACX,GAAec,EAAQ,OAAQH,EAAW,MAAM,KAC9HD,EAAU,GAEb,CAED,KAAK,WAAaC,CACnB,CAEGD,GACF,KAAK,WAAU,EAGbvyI,EAAM,qBAAuB,CAACA,EAAM,SACtC,KAAK,yBAAwB,EAE7B,KAAK,wBAAuB,CAE/B,CACL,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,KAAK,wBAAuB,CAC7B,CACL,EAAK,CACD,IAAK,2BACL,MAAO,UAAoC,CACpC,KAAK,gBACR,KAAK,cAAgB0xI,IAAO,KAAK,WAAY,KAAK,MAAM,iBAAiB,EACzE,KAAK,cAAgBtK,GAAiB,OAAQ,SAAU,KAAK,aAAa,EAE7E,CACL,EAAK,CACD,IAAK,0BACL,MAAO,UAAmC,CACpC,KAAK,gBACP,KAAK,cAAc,QACnB,KAAK,cAAc,SACnB,KAAK,cAAgB,KAExB,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIn5F,EAAS,KAETmK,EAAS,KAAK,MACdw6F,EAAgBx6F,EAAO,cACvB5J,EAAW4J,EAAO,SAElB1J,EAAQlH,GAAM,SAAS,KAAKgH,CAAQ,EACxC,GAAIokG,EAAe,CACjB,IAAIz6F,EAAW,GACX06F,EAAW,OAAO,KAAKD,CAAa,EACxC,OAAAC,EAAS,QAAQ,SAAUz3I,EAAM,CAC/B+8C,EAAS/8C,CAAI,EAAI6yC,EAAO,MAAM2kG,EAAcx3I,CAAI,CAAC,CAC3D,CAAS,EAEMosC,GAAM,aAAakH,EAAOyJ,CAAQ,CAC1C,CACD,OAAOzJ,CACR,CACF,EAAC,EAEK2jG,CACT,EAAEnuG,EAAS,WAEXmuG,GAAM,UAAY,CAChB,cAAe9sG,EAAU,OACzB,MAAOA,EAAU,OAAO,WACxB,OAAQA,EAAU,UAAU,CAACA,EAAU,KAAMA,EAAU,MAAM,CAC3D,QAASA,EAAU,OACnB,QAASA,EAAU,OACnB,MAAOA,EAAU,OACjB,MAAOA,EAAU,MAClB,EAAC,CAAC,EACH,QAASA,EAAU,KACnB,kBAAmBA,EAAU,OAC7B,oBAAqBA,EAAU,KAC/B,SAAUA,EAAU,KACpB,SAAUA,EAAU,GACtB,EACA8sG,GAAM,aAAe,CACnB,OAAQ,UAAkB,CACxB,OAAO,MACR,EACD,kBAAmB,GACnB,oBAAqB,GACrB,SAAU,EACZ,ECjMA,IAAIz+E,IAAkB5+C,GAElB6zH,IAAmB9gG,IAAuB6rB,GAAe,EAE7D,SAAS7rB,IAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,IAAA6kD,IAAkB,SAAU7kD,EAAK5G,EAAK3R,EAAO,CAC3C,OAAI2R,KAAO4G,KACL0jJ,IAAiB,SAAS1jJ,EAAK5G,EAAK,CACtC,MAAO3R,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EAChB,CAAK,EAEDuY,EAAI5G,CAAG,EAAI3R,EAGNuY,CACT,ECrBI2tJ,IAA2B,SAAkC5uG,EAAW,CAC1E,IAAIv4D,EAAYu4D,EAAU,UAE1B,GAAI,CAACv4D,GAAa,CAACA,EAAU,iBAC3B,MAAM,IAAI,MAAM,oCAAoC,EAUtD,OANI,OAAOA,EAAU,2BAA8B,YAM/C,CAAC67D,GAAM,WAKX77D,EAAU,iCAAmCA,EAAU,0BACvD,OAAOA,EAAU,2BACVu4D,CACT,ECtBO,SAAS6uG,GAAgBvkG,EAAU,CACxC,IAAItlD,EAAM,GACVs+C,UAAM,SAAS,QAAQgH,EAAU,SAAUE,EAAO,CAChDxlD,EAAI,KAAKwlD,CAAK,CAClB,CAAG,EACMxlD,CACT,CAEO,SAAS8pJ,GAAyBxkG,EAAUjwD,EAAK,CACtD,IAAI2K,EAAM,KACV,OAAIslD,GACFA,EAAS,QAAQ,SAAUE,EAAO,CAC5BxlD,GAGAwlD,GAASA,EAAM,MAAQnwD,IACzB2K,EAAMwlD,EAEd,CAAK,EAEIxlD,CACT,CAEO,SAAS+pJ,GAA8BzkG,EAAUjwD,EAAK20J,EAAU,CACrE,IAAIhqJ,EAAM,KACV,OAAIslD,GACFA,EAAS,QAAQ,SAAUE,EAAO,CAChC,GAAIA,GAASA,EAAM,MAAQnwD,GAAOmwD,EAAM,MAAMwkG,CAAQ,EAAG,CACvD,GAAIhqJ,EACF,MAAM,IAAI,MAAM,mDAAmD,EAErEA,EAAMwlD,CACP,CACP,CAAK,EAEIxlD,CACT,CAeO,SAASiqJ,IAAeC,EAAIC,EAAIH,EAAU,CAC/C,IAAII,EAAOF,EAAG,SAAWC,EAAG,OAC5B,OAAIC,GACFF,EAAG,QAAQ,SAAU1kG,EAAO70D,EAAO,CACjC,IAAI05J,EAASF,EAAGx5J,CAAK,EACjB60D,GAAS6kG,IACP7kG,GAAS,CAAC6kG,GAAU,CAAC7kG,GAAS6kG,GAEvB7kG,EAAM,MAAQ6kG,EAAO,KAErBL,GAAYxkG,EAAM,MAAMwkG,CAAQ,IAAMK,EAAO,MAAML,CAAQ,KACpEI,EAAO,GAGjB,CAAK,EAEIA,CACT,CAEO,SAASE,IAAchmI,EAAMhnB,EAAM,CACxC,IAAI0C,EAAM,GAINuqJ,EAAsB,GACtBC,EAAkB,GACtB,OAAAlmI,EAAK,QAAQ,SAAUkhC,EAAO,CACxBA,GAASskG,GAAyBxsJ,EAAMkoD,EAAM,GAAG,EAC/CglG,EAAgB,SAClBD,EAAoB/kG,EAAM,GAAG,EAAIglG,EACjCA,EAAkB,IAGpBA,EAAgB,KAAKhlG,CAAK,CAEhC,CAAG,EAEDloD,EAAK,QAAQ,SAAUkoD,EAAO,CACxBA,GAAS,OAAO,UAAU,eAAe,KAAK+kG,EAAqB/kG,EAAM,GAAG,IAC9ExlD,EAAMA,EAAI,OAAOuqJ,EAAoB/kG,EAAM,GAAG,CAAC,GAEjDxlD,EAAI,KAAKwlD,CAAK,CAClB,CAAG,EAEDxlD,EAAMA,EAAI,OAAOwqJ,CAAe,EAEzBxqJ,CACT,CCpGA,IAAIyqJ,GAAuB,CACzB,gBAAiB,CACf,WAAY,kBACZ,iBAAkB,wBAClB,cAAe,qBACf,YAAa,mBACb,aAAc,mBACf,EAED,eAAgB,CACd,UAAW,iBACX,gBAAiB,uBACjB,aAAc,oBACd,WAAY,kBACZ,YAAa,kBACd,CACH,EAEIC,GAAqB,CACvB,cAAe,CACb,WAAY,gBACZ,iBAAkB,sBAClB,cAAe,mBACf,YAAa,iBACb,aAAc,iBACf,EAED,aAAc,CACZ,UAAW,eACX,gBAAiB,qBACjB,aAAc,kBACd,WAAY,gBACZ,YAAa,gBACd,CACH,EAEIC,GAAc,GACdC,GAAY,GAEhB,SAASC,KAAe,CACtB,IAAIC,EAAS,SAAS,cAAc,KAAK,EACrChnK,EAAQgnK,EAAO,MAEb,mBAAoB,SACxB,OAAOL,GAAqB,eAAe,UAC3C,OAAOC,GAAmB,aAAa,WAGnC,oBAAqB,SACzB,OAAOD,GAAqB,gBAAgB,WAC5C,OAAOC,GAAmB,cAAc,YAG1C,SAASr6I,EAAQ06I,EAAgBn1I,EAAQ,CACvC,QAASo1I,KAAiBD,EACxB,GAAIA,EAAe,eAAeC,CAAa,EAAG,CAChD,IAAIC,EAAaF,EAAeC,CAAa,EAC7C,QAAShlF,KAAailF,EACpB,GAAIjlF,KAAaliF,EAAO,CACtB8xB,EAAO,KAAKq1I,EAAWjlF,CAAS,CAAC,EACjC,KACD,CAEJ,CAEJ,CAED31D,EAAQo6I,GAAsBE,EAAW,EACzCt6I,EAAQq6I,GAAoBE,EAAS,CACvC,CAEI,OAAO,OAAW,KAAe,OAAO,SAAa,KACvDC,MAGF,SAAS3M,GAAiB/xJ,EAAM9F,EAAW6kK,EAAe,CACxD/+J,EAAK,iBAAiB9F,EAAW6kK,EAAe,EAAK,CACvD,CAEA,SAASC,GAAoBh/J,EAAM9F,EAAW6kK,EAAe,CAC3D/+J,EAAK,oBAAoB9F,EAAW6kK,EAAe,EAAK,CAC1D,CAEA,IAAIE,GAAmB,CAErB,YAAaT,GAEb,sBAAuB,SAA+Bx+J,EAAM++J,EAAe,CACzE,GAAIP,GAAY,SAAW,EAAG,CAC5B,OAAO,WAAWO,EAAe,CAAC,EAClC,MACD,CACDP,GAAY,QAAQ,SAAUU,EAAY,CACxCnN,GAAiB/xJ,EAAMk/J,EAAYH,CAAa,CACtD,CAAK,CACF,EACD,yBAA0B,SAAkC/+J,EAAM++J,EAAe,CAC3EP,GAAY,SAAW,GAG3BA,GAAY,QAAQ,SAAUU,EAAY,CACxCF,GAAoBh/J,EAAMk/J,EAAYH,CAAa,CACzD,CAAK,CACF,EAID,UAAWN,GAEX,oBAAqB,SAA6Bz+J,EAAM++J,EAAe,CACrE,GAAIN,GAAU,SAAW,EAAG,CAC1B,OAAO,WAAWM,EAAe,CAAC,EAClC,MACD,CACDN,GAAU,QAAQ,SAAUU,EAAU,CACpCpN,GAAiB/xJ,EAAMm/J,EAAUJ,CAAa,CACpD,CAAK,CACF,EACD,uBAAwB,SAAgC/+J,EAAM++J,EAAe,CACvEN,GAAU,SAAW,GAGzBA,GAAU,QAAQ,SAAUU,EAAU,CACpCH,GAAoBh/J,EAAMm/J,EAAUJ,CAAa,CACvD,CAAK,CACF,CACH,uCC9HAK,GAAiB,SAAShtJ,EAAKtC,EAAI,CACjC,GAAIsC,EAAI,QAAS,OAAOA,EAAI,QAAQtC,CAAG,EACvC,QAAS1U,EAAI,EAAGA,EAAIgX,EAAI,OAAQ,EAAEhX,EAChC,GAAIgX,EAAIhX,CAAC,IAAM0U,EAAK,OAAO1U,EAE7B,MAAO,QCDT,GAAI,CACF,IAAIoJ,GAAQm7B,IACd,MAAc,CACZ,IAAIn7B,GAAQ2+B,IACd,CAMA,IAAIyN,IAAK,MAMLh+B,IAAW,OAAO,UAAU,SAUhCysJ,IAAiB,SAASzlJ,EAAG,CAC3B,OAAO,IAAI0lJ,GAAU1lJ,CAAE,CACzB,EASA,SAAS0lJ,GAAU1lJ,EAAI,CACrB,GAAI,CAACA,GAAM,CAACA,EAAG,SACb,MAAM,IAAI,MAAM,qCAAqC,EAEvD,KAAK,GAAKA,EACV,KAAK,KAAOA,EAAG,SACjB,CAUA0lJ,GAAU,UAAU,IAAM,SAASzoK,EAAK,CAEtC,GAAI,KAAK,KACP,YAAK,KAAK,IAAIA,CAAI,EACX,KAIT,IAAIub,EAAM,KAAK,QACXhX,EAAIoJ,GAAM4N,EAAKvb,CAAI,EACvB,MAAK,CAACuE,GAAGgX,EAAI,KAAKvb,CAAI,EACtB,KAAK,GAAG,UAAYub,EAAI,KAAK,GAAG,EACzB,IACT,EAYAktJ,GAAU,UAAU,OAAS,SAASzoK,EAAK,CACzC,GAAyB+b,IAAS,KAAK/b,CAAI,GAAvC,kBACF,OAAO,KAAK,eAAeA,CAAI,EAIjC,GAAI,KAAK,KACP,YAAK,KAAK,OAAOA,CAAI,EACd,KAIT,IAAIub,EAAM,KAAK,QACXhX,EAAIoJ,GAAM4N,EAAKvb,CAAI,EACvB,MAAI,CAACuE,GAAGgX,EAAI,OAAOhX,EAAG,CAAC,EACvB,KAAK,GAAG,UAAYgX,EAAI,KAAK,GAAG,EACzB,IACT,EAUAktJ,GAAU,UAAU,eAAiB,SAAS1uH,EAAG,CAE/C,QADIx+B,EAAM,KAAK,QACNhX,EAAI,EAAGA,EAAIgX,EAAI,OAAQhX,IAC1Bw1C,EAAG,KAAKx+B,EAAIhX,CAAC,CAAC,GAChB,KAAK,OAAOgX,EAAIhX,CAAC,CAAC,EAGtB,OAAO,IACT,EAcAkkK,GAAU,UAAU,OAAS,SAASzoK,EAAM8mC,EAAM,CAEhD,OAAI,KAAK,MACa,OAAOA,EAAvB,IACEA,IAAU,KAAK,KAAK,OAAO9mC,EAAM8mC,CAAK,GACxC,KAAK,KAAK,OAAO9mC,CAAI,EAGvB,KAAK,KAAK,OAAOA,CAAI,EAEhB,OAIW,OAAO8mC,EAAvB,IACGA,EAGH,KAAK,IAAI9mC,CAAI,EAFb,KAAK,OAAOA,CAAI,EAKd,KAAK,IAAIA,CAAI,EACf,KAAK,OAAOA,CAAI,EAEhB,KAAK,IAAIA,CAAI,EAIV,KACT,EASAyoK,GAAU,UAAU,MAAQ,UAAU,CACpC,IAAItkJ,EAAY,KAAK,GAAG,aAAa,OAAO,GAAK,GAC7CuxD,EAAMvxD,EAAU,QAAQ,aAAc,EAAE,EACxC5I,EAAMm6D,EAAI,MAAM37B,GAAE,EACtB,OAAWx+B,EAAI,CAAC,IAAZ,IAAeA,EAAI,MAAK,EACrBA,CACT,EAUAktJ,GAAU,UAAU,IACpBA,GAAU,UAAU,SAAW,SAASzoK,EAAK,CAC3C,OAAO,KAAK,KACR,KAAK,KAAK,SAASA,CAAI,EACvB,CAAC,CAAE,CAAC2N,GAAM,KAAK,MAAO,EAAE3N,CAAI,CAClC,oBC1LA,IAAI0oK,GAA0BC,GAAM,UAAU,SAAW,EACrDC,IAAkB,CAAC,SAAU,MAAO,IAExC,IAAI,EACAC,GAAW,CAAC,WAAY,QAAS,MAAO,MAAO,EAAE,EAErD,SAASC,GAAiB3/J,EAAMnJ,EAAM,CAIpC,QAFIc,EAAQ,OAAO,iBAAiBqI,EAAM,IAAI,EAC1C6T,EAAM,GACDzY,EAAI,EAAGA,EAAIskK,GAAS,SAC3B7rJ,EAAMlc,EAAM,iBAAiB+nK,GAAStkK,CAAC,EAAIvE,CAAI,EAC3C,CAAAgd,GAF+BzY,IAEnC,CAIF,OAAOyY,CACT,CAEA,SAAS+rJ,GAAoB5/J,EAAM,CACjC,GAAIu/J,GAAyB,CAC3B,IAAIpqG,EAAkB,WAAWwqG,GAAiB3/J,EAAM,kBAAkB,CAAC,GAAK,EAC5Ei1D,EAAqB,WAAW0qG,GAAiB3/J,EAAM,qBAAqB,CAAC,GAAK,EAClFu1D,EAAiB,WAAWoqG,GAAiB3/J,EAAM,iBAAiB,CAAC,GAAK,EAC1Eq1D,EAAoB,WAAWsqG,GAAiB3/J,EAAM,oBAAoB,CAAC,GAAK,EAChFqzB,EAAO,KAAK,IAAI4hC,EAAqBE,EAAiBE,EAAoBE,CAAc,EAE5Fv1D,EAAK,iBAAmB,WAAW,UAAY,CAC7CA,EAAK,iBAAmB,KACpBA,EAAK,eACPA,EAAK,cAAa,CAE1B,EAAOqzB,EAAO,IAAO,GAAG,CACrB,CACH,CAEA,SAASwsI,GAAuB7/J,EAAM,CAChCA,EAAK,mBACP,aAAaA,EAAK,gBAAgB,EAClCA,EAAK,iBAAmB,KAE5B,CAEA,IAAI8/J,GAAe,SAAsB9/J,EAAM+/J,EAAgBC,EAAa,CAC1E,IAAIC,GAAa,OAAOF,EAAmB,IAAc,YAAcnjG,IAAQmjG,CAAc,KAAO,SAChG/kJ,EAAYilJ,EAAYF,EAAe,KAAOA,EAC9CG,EAAkBD,EAAYF,EAAe,OAASA,EAAiB,UACvEzvI,EAAM0vI,EACNl1J,EAAQ,OACR+oD,EAAS,OACTssG,EAAcpzG,IAAQ/sD,CAAI,EAE9B,OAAIggK,GAAe,OAAO,UAAU,SAAS,KAAKA,CAAW,IAAM,oBACjE1vI,EAAM0vI,EAAY,IAClBl1J,EAAQk1J,EAAY,MACpBnsG,EAASmsG,EAAY,QAGnBhgK,EAAK,eACPA,EAAK,cAAa,EAGpBA,EAAK,cAAgB,SAAU0K,EAAG,CAC5BA,GAAKA,EAAE,SAAW1K,IAIlBA,EAAK,gBACP,aAAaA,EAAK,aAAa,EAC/BA,EAAK,cAAgB,MAGvB6/J,GAAuB7/J,CAAI,EAE3BmgK,EAAY,OAAOnlJ,CAAS,EAC5BmlJ,EAAY,OAAOD,CAAe,EAElCV,GAAM,uBAAuBx/J,EAAMA,EAAK,aAAa,EACrDA,EAAK,cAAgB,KAIjBswB,GACFA,IAEN,EAEEkvI,GAAM,oBAAoBx/J,EAAMA,EAAK,aAAa,EAE9C8K,GACFA,IAEFq1J,EAAY,IAAInlJ,CAAS,EAEzBhb,EAAK,cAAgB,WAAW,UAAY,CAC1CA,EAAK,cAAgB,KACrBmgK,EAAY,IAAID,CAAe,EAC3BrsG,GACF,WAAWA,EAAQ,CAAC,EAEtB+rG,GAAoB5/J,CAAI,CAEzB,EAAE,EAAE,EAEE,CACL,KAAM,UAAgB,CAChBA,EAAK,eACPA,EAAK,cAAa,CAErB,CACL,CACA,EAEA8/J,GAAa,MAAQ,SAAU9/J,EAAMrI,EAAOgK,EAAU,CAChD3B,EAAK,eACPA,EAAK,cAAa,EAGpBA,EAAK,cAAgB,SAAU0K,EAAG,CAC5BA,GAAKA,EAAE,SAAW1K,IAIlBA,EAAK,gBACP,aAAaA,EAAK,aAAa,EAC/BA,EAAK,cAAgB,MAGvB6/J,GAAuB7/J,CAAI,EAE3Bw/J,GAAM,uBAAuBx/J,EAAMA,EAAK,aAAa,EACrDA,EAAK,cAAgB,KAIjB2B,GACFA,IAEN,EAEE69J,GAAM,oBAAoBx/J,EAAMA,EAAK,aAAa,EAElDA,EAAK,cAAgB,WAAW,UAAY,CAC1C,QAASwQ,KAAK7Y,EACRA,EAAM,eAAe6Y,CAAC,IACxBxQ,EAAK,MAAMwQ,CAAC,EAAI7Y,EAAM6Y,CAAC,GAG3BxQ,EAAK,cAAgB,KACrB4/J,GAAoB5/J,CAAI,CACzB,EAAE,CAAC,CACN,EAEA8/J,GAAa,cAAgB,SAAU9/J,EAAM0wB,EAAGn5B,EAAO,CACrD,IAAIuW,EAAW4iB,EACXrhB,EAAI9X,EACJA,IAAU,SACZ8X,EAAIvB,EACJA,EAAW,IAEbA,EAAWA,GAAY,GACvB2xJ,IAAgB,QAAQ,SAAUjnK,EAAQ,CACxCwH,EAAK,MAAMxH,EAAS,aAAesV,CAAQ,EAAIuB,CACnD,CAAG,CACH,EAEAywJ,GAAa,wBAA0BP,GC1KvC,IAAIa,GAAO,CACT,kBAAmB,SAA2Bz1I,EAAO,CACnD,OAAOA,EAAM,gBAAkBA,EAAM,kBAAoBA,EAAM,UAAU,MAC1E,EACD,iBAAkB,SAA0BA,EAAO,CACjD,OAAOA,EAAM,gBAAkBA,EAAM,iBAAmBA,EAAM,UAAU,KACzE,EACD,iBAAkB,SAA0BA,EAAO,CACjD,OAAOA,EAAM,gBAAkBA,EAAM,iBAAmBA,EAAM,UAAU,KACzE,EACD,oBAAqB,SAA6BA,EAAO,CACvD,OAAOA,EAAM,kBAAoBA,EAAM,UAAU,MAClD,EACD,mBAAoB,SAA4BA,EAAO,CACrD,OAAOA,EAAM,iBAAmBA,EAAM,UAAU,KACjD,EACD,mBAAoB,SAA4BA,EAAO,CACrD,OAAOA,EAAM,iBAAmBA,EAAM,UAAU,KACjD,CACH,ECTI01I,IAAgB,CAClB,MAAO,kBACP,OAAQ,mBACR,MAAO,iBACT,EAEIC,GAAe,SAAUxuG,EAAkB,CAC7CiJ,GAAUulG,EAAcxuG,CAAgB,EAExC,SAASwuG,GAAe,CACtB5lG,UAAgB,KAAM4lG,CAAY,EAE3BzlG,GAA2B,MAAOylG,EAAa,WAAa,OAAO,eAAeA,CAAY,GAAG,MAAM,KAAM,SAAS,CAAC,CAC/H,CAEDtjF,UAAasjF,EAAc,CAAC,CAC1B,IAAK,uBACL,MAAO,UAAgC,CACrC,KAAK,KAAI,CACV,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BlqJ,EAAM,CACnCmqJ,GAAS,iBAAiB,KAAK,KAAK,EACtC,KAAK,WAAW,QAASnqJ,CAAI,EAE7BA,GAEH,CACL,EAAK,CACD,IAAK,sBACL,MAAO,SAA6BA,EAAM,CACpCmqJ,GAAS,kBAAkB,KAAK,KAAK,EACvC,KAAK,WAAW,SAAUnqJ,CAAI,EAE9BA,GAEH,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BA,EAAM,CACnCmqJ,GAAS,iBAAiB,KAAK,KAAK,EACtC,KAAK,WAAW,QAASnqJ,CAAI,EAK7BA,GAEH,CACL,EAAK,CACD,IAAK,aACL,MAAO,SAAoBoqJ,EAAeC,EAAgB,CACxD,IAAI7nG,EAAS,KAET54D,EAAOgmE,GAAS,YAAY,IAAI,EAChCr7C,EAAQ,KAAK,MACbo1I,EAAiBp1I,EAAM,eACvBs1I,EAAY,OAAOF,GAAmB,SAC1C,KAAK,KAAI,EACT,IAAIzvI,EAAM,UAAe,CACvBsoC,EAAO,QAAU,KACjB6nG,GACR,EACM,IAAKlB,IAA2B,CAAC50I,EAAM,UAAU61I,CAAa,IAAMT,GAAkBp1I,EAAM01I,IAAcG,CAAa,CAAC,EAAG,CACzH,IAAI3pK,EAAOopK,EAAYF,EAAeS,CAAa,EAAIT,EAAiB,IAAMS,EAC1EE,EAAa7pK,EAAO,UACpBopK,GAAaF,EAAeS,EAAgB,QAAQ,IACtDE,EAAaX,EAAeS,EAAgB,QAAQ,GAEtD,KAAK,QAAUG,GAAW3gK,EAAM,CAC9B,KAAMnJ,EACN,OAAQ6pK,CACT,EAAEpwI,CAAG,CACd,MACQ,KAAK,QAAU3F,EAAM,UAAU61I,CAAa,EAAExgK,EAAMswB,CAAG,CAE1D,CACL,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,IAAIswI,EAAU,KAAK,QACfA,IACF,KAAK,QAAU,KACfA,EAAQ,KAAI,EAEf,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,OAAO,KAAK,MAAM,QACnB,CACF,EAAC,EAEKN,CACT,EAAEnuG,GAAM,SAAS,EAEjBmuG,GAAa,UAAY,CACvB,SAAUpwG,EAAU,IACpB,UAAWA,EAAU,IACrB,eAAgBA,EAAU,GAC5B,EClGA,IAAI2wG,IAAa,cAAgB,KAAK,MAEtC,SAASC,GAAqBn2I,EAAO,CACnC,IAAIwuC,EAAWxuC,EAAM,SACrB,OAAIwnC,GAAM,eAAegH,CAAQ,GAC3B,CAACA,EAAS,IACLhH,GAAM,aAAagH,EAAU,CAClC,IAAK0nG,GACb,CAAO,EAGE1nG,CACT,CAEA,SAASG,IAAO,CAAE,CAElB,IAAIynG,GAAU,SAAUjvG,EAAkB,CACxCiJ,GAAUgmG,EAASjvG,CAAgB,EAInC,SAASivG,EAAQp2I,EAAO,CACtB+vC,GAAgB,KAAMqmG,CAAO,EAE7B,IAAIztG,EAAQuH,GAA2B,MAAOkmG,EAAQ,WAAa,OAAO,eAAeA,CAAO,GAAG,KAAK,KAAMp2I,CAAK,CAAC,EAEpHk4C,WAAiB,KAAKvP,CAAK,EAE3BA,EAAM,uBAAyB,GAC/BA,EAAM,YAAc,GACpBA,EAAM,YAAc,GAEpBA,EAAM,MAAQ,CACZ,SAAUoqG,GAAgBoD,GAAqBn2I,CAAK,CAAC,CAC3D,EAEI2oC,EAAM,aAAe,GACdA,CACR,CAED0pB,UAAa+jF,EAAS,CAAC,CACrB,IAAK,oBACL,MAAO,UAA6B,CAClC,IAAInoG,EAAS,KAETilG,EAAW,KAAK,MAAM,SACtB1kG,EAAW,KAAK,MAAM,SACtB0kG,IACF1kG,EAAWA,EAAS,OAAO,SAAUE,EAAO,CAC1C,MAAO,CAAC,CAACA,EAAM,MAAMwkG,CAAQ,CACvC,CAAS,GAEH1kG,EAAS,QAAQ,SAAUE,EAAO,CAC5BA,GACFT,EAAO,cAAcS,EAAM,GAAG,CAExC,CAAO,CACF,CACL,EAAK,CACD,IAAK,4BACL,MAAO,SAAmC/K,EAAW,CACnD,IAAI0K,EAAS,KAEb,KAAK,UAAY1K,EACjB,IAAI0yG,EAAetD,GAAgBoD,GAAqBxyG,CAAS,CAAC,EAC9D3jC,EAAQ,KAAK,MAEbA,EAAM,WACR,OAAO,KAAK,KAAK,sBAAsB,EAAE,QAAQ,SAAUzhB,EAAK,CAC9D8vD,EAAO,KAAK9vD,CAAG,CACzB,CAAS,EAEH,IAAI20J,EAAWlzI,EAAM,SACjBs2I,EAAyB,KAAK,uBAE9BC,EAAkBv2I,EAAM,UAAY+yI,GAAgBoD,GAAqBn2I,CAAK,CAAC,EAAI,KAAK,MAAM,SAE9Fw2I,EAAc,GACdtD,GACFqD,EAAgB,QAAQ,SAAUE,EAAc,CAC9C,IAAIC,EAAYD,GAAgBzD,GAAyBqD,EAAcI,EAAa,GAAG,EACnFE,EAAW,QACV,CAACD,GAAa,CAACA,EAAU,MAAMxD,CAAQ,IAAMuD,EAAa,MAAMvD,CAAQ,EAC3EyD,EAAWnvG,GAAM,aAAakvG,GAAaD,EAAc7iF,IAAgB,GAAIs/E,EAAU,EAAI,CAAC,EAE5FyD,EAAWD,EAETC,GACFH,EAAY,KAAKG,CAAQ,CAErC,CAAS,EACDN,EAAa,QAAQ,SAAUK,EAAW,EACpC,CAACA,GAAa,CAAC1D,GAAyBuD,EAAiBG,EAAU,GAAG,IACxEF,EAAY,KAAKE,CAAS,CAEtC,CAAS,GAEDF,EAAchD,IAAc+C,EAAiBF,CAAY,EAI3D,KAAK,SAAS,CACZ,SAAUG,CAClB,CAAO,EAEDH,EAAa,QAAQ,SAAU3nG,EAAO,CACpC,IAAInwD,EAAMmwD,GAASA,EAAM,IACzB,GAAI,EAAAA,GAAS4nG,EAAuB/3J,CAAG,GAGvC,KAAIq4J,EAAUloG,GAASskG,GAAyBuD,EAAiBh4J,CAAG,EACpE,GAAI20J,EAAU,CACZ,IAAI2D,EAAanoG,EAAM,MAAMwkG,CAAQ,EACrC,GAAI0D,EAAS,CACX,IAAIE,EAAY7D,GAA8BsD,EAAiBh4J,EAAK20J,CAAQ,EACxE,CAAC4D,GAAaD,GAChBxoG,EAAO,YAAY,KAAK9vD,CAAG,CAE9B,MAAUs4J,GACTxoG,EAAO,YAAY,KAAK9vD,CAAG,CAEvC,MAAoBq4J,GACVvoG,EAAO,YAAY,KAAK9vD,CAAG,EAErC,CAAO,EAEDg4J,EAAgB,QAAQ,SAAU7nG,EAAO,CACvC,IAAInwD,EAAMmwD,GAASA,EAAM,IACzB,GAAI,EAAAA,GAAS4nG,EAAuB/3J,CAAG,GAGvC,KAAIw4J,EAAUroG,GAASskG,GAAyBqD,EAAc93J,CAAG,EACjE,GAAI20J,EAAU,CACZ,IAAI4D,EAAYpoG,EAAM,MAAMwkG,CAAQ,EACpC,GAAI6D,EAAS,CACX,IAAIF,EAAa5D,GAA8BoD,EAAc93J,EAAK20J,CAAQ,EACtE,CAAC2D,GAAcC,GACjBzoG,EAAO,YAAY,KAAK9vD,CAAG,CAE9B,MAAUu4J,GACTzoG,EAAO,YAAY,KAAK9vD,CAAG,CAEvC,MAAoBw4J,GACV1oG,EAAO,YAAY,KAAK9vD,CAAG,EAErC,CAAO,CACF,CACL,EAAK,CACD,IAAK,qBACL,MAAO,UAA8B,CACnC,IAAIy4J,EAAc,KAAK,YACvB,KAAK,YAAc,GACnBA,EAAY,QAAQ,KAAK,YAAY,EACrC,IAAIC,EAAc,KAAK,YACvB,KAAK,YAAc,GACnBA,EAAY,QAAQ,KAAK,YAAY,CACtC,CACL,EAAK,CACD,IAAK,oBACL,MAAO,SAA2BV,EAAiBh4J,EAAK,CACtD,IAAI20J,EAAW,KAAK,MAAM,SAC1B,OAAIA,EACKD,GAA8BsD,EAAiBh4J,EAAK20J,CAAQ,EAE9DF,GAAyBuD,EAAiBh4J,CAAG,CACrD,CACL,EAAK,CACD,IAAK,OACL,MAAO,SAAcA,EAAK,CACxB,OAAO,KAAK,uBAAuBA,CAAG,EACtC,IAAI6uE,EAAY,KAAK,aAAa7uE,CAAG,EACjC6uE,GACFA,EAAU,KAAI,CAEjB,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI9e,EAAS,KAETtuC,EAAQ,KAAK,MACjB,KAAK,UAAYA,EACjB,IAAIk3I,EAAgB,KAAK,MAAM,SAC3B1oG,EAAW,KACX0oG,IACF1oG,EAAW0oG,EAAc,IAAI,SAAUxoG,EAAO,CAC5C,GAAIA,GAAU,KACZ,OAAOA,EAET,GAAI,CAACA,EAAM,IACT,MAAM,IAAI,MAAM,wCAAwC,EAE1D,OAAOlH,GAAM,cACXmuG,GACA,CACE,IAAKjnG,EAAM,IACX,IAAK,SAAar5D,EAAM,CACtBi5D,EAAO,aAAaI,EAAM,GAAG,EAAIr5D,CAClC,EACD,UAAW2qB,EAAM,UACjB,eAAgBA,EAAM,eACtB,gBAAiBA,EAAM,gBACvB,iBAAkBA,EAAM,iBACxB,gBAAiBA,EAAM,eACxB,EACD0uC,CACZ,CACA,CAAS,GAEH,IAAIxK,EAAYlkC,EAAM,UACtB,GAAIkkC,EAAW,CACb,IAAIizG,EAAcn3I,EAClB,OAAI,OAAOkkC,GAAc,WACvBizG,EAAcl3G,GAAS,CACrB,UAAWjgC,EAAM,UACjB,MAAOA,EAAM,KACzB,EAAaA,EAAM,cAAc,GAElBwnC,GAAM,cACXtD,EACAizG,EACA3oG,CACV,CACO,CACD,OAAOA,EAAS,CAAC,GAAK,IACvB,CACF,EAAC,EAEK4nG,CACT,EAAE5uG,GAAM,SAAS,EAEjB4uG,GAAQ,UAAY,GACpBA,GAAQ,UAAY,CAClB,UAAW7wG,EAAU,OACrB,MAAOA,EAAU,OACjB,UAAWA,EAAU,IACrB,eAAgBA,EAAU,OAC1B,UAAWA,EAAU,OACrB,eAAgBA,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,MAAM,CAAC,EACxE,gBAAiBA,EAAU,KAC3B,iBAAkBA,EAAU,KAC5B,UAAWA,EAAU,KACrB,gBAAiBA,EAAU,KAC3B,MAAOA,EAAU,KACjB,QAASA,EAAU,KACnB,QAASA,EAAU,KACnB,SAAUA,EAAU,KACpB,SAAUA,EAAU,OACpB,SAAUA,EAAU,IACtB,EACA6wG,GAAQ,aAAe,CACrB,UAAW,CAAE,EACb,UAAW,OACX,eAAgB,CAAE,EAClB,gBAAiB,GACjB,gBAAiB,GACjB,iBAAkB,GAClB,MAAOznG,GACP,QAASA,GACT,QAASA,GACT,SAAUA,EACZ,EAEA,IAAIuJ,IAAmB,UAA4B,CACjD,IAAIq2B,EAAS,KAEb,KAAK,aAAe,SAAUhwF,EAAK,CAE7BgwF,EAAO,aAAahwF,CAAG,IACzBgwF,EAAO,uBAAuBhwF,CAAG,EAAI,GACrCgwF,EAAO,aAAahwF,CAAG,EAAE,mBAAmBgwF,EAAO,iBAAiB,KAAKA,EAAQhwF,EAAK,OAAO,CAAC,EAEpG,EAEE,KAAK,cAAgB,SAAUA,EAAK,CAC9BgwF,EAAO,aAAahwF,CAAG,IACzBgwF,EAAO,uBAAuBhwF,CAAG,EAAI,GACrCgwF,EAAO,aAAahwF,CAAG,EAAE,oBAAoBgwF,EAAO,iBAAiB,KAAKA,EAAQhwF,EAAK,QAAQ,CAAC,EAEtG,EAEE,KAAK,iBAAmB,SAAUA,EAAK5H,EAAM,CAC3C,IAAIqpB,EAAQuuE,EAAO,MAGnB,GAFA,OAAOA,EAAO,uBAAuBhwF,CAAG,EAEpC,EAAAyhB,EAAM,WAAaA,IAAUuuE,EAAO,WAGxC,KAAIgoE,EAAkBxD,GAAgBoD,GAAqBn2I,CAAK,CAAC,EAC5DuuE,EAAO,kBAAkBgoE,EAAiBh4J,CAAG,EAGvC5H,IAAS,SACdi/J,GAAS,oBAAoB51I,CAAK,IACpCA,EAAM,SAASzhB,CAAG,EAClByhB,EAAM,MAAMzhB,EAAK,EAAI,GAEdq3J,GAAS,mBAAmB51I,CAAK,IAC1CA,EAAM,QAAQzhB,CAAG,EACjByhB,EAAM,MAAMzhB,EAAK,EAAI,GARrBgwF,EAAO,aAAahwF,CAAG,EAU7B,EAEE,KAAK,aAAe,SAAUA,EAAK,CAE7BgwF,EAAO,aAAahwF,CAAG,IACzBgwF,EAAO,uBAAuBhwF,CAAG,EAAI,GACrCgwF,EAAO,aAAahwF,CAAG,EAAE,mBAAmBgwF,EAAO,kBAAkB,KAAKA,EAAQhwF,CAAG,CAAC,EAE5F,EAEE,KAAK,kBAAoB,SAAUA,EAAK,CACtC,IAAIyhB,EAAQuuE,EAAO,MAGnB,GAFA,OAAOA,EAAO,uBAAuBhwF,CAAG,EAEpC,EAAAyhB,EAAM,WAAaA,IAAUuuE,EAAO,WAGxC,KAAIgoE,EAAkBxD,GAAgBoD,GAAqBn2I,CAAK,CAAC,EAEjE,GAAIuuE,EAAO,kBAAkBgoE,EAAiBh4J,CAAG,EAC/CgwF,EAAO,aAAahwF,CAAG,MAClB,CACL,IAAIonB,EAAM,UAAe,CACnBiwI,GAAS,mBAAmB51I,CAAK,IACnCA,EAAM,QAAQzhB,CAAG,EACjByhB,EAAM,MAAMzhB,EAAK,EAAK,EAEhC,EACW40J,IAAe5kE,EAAO,MAAM,SAAUgoE,EAAiBv2I,EAAM,QAAQ,EAKxE2F,IAJA4oE,EAAO,SAAS,CACd,SAAUgoE,CACX,EAAE5wI,CAAG,CAIT,EACL,CACA,EAEA,MAAeyxI,GAAAtE,IAAyBsD,EAAO,EC7V/C,IAAApsG,IAAkB,SAAU7kD,EAAK0J,EAAM,CACrC,IAAIxiB,EAAS,GAEb,QAASoE,KAAK0U,EACR0J,EAAK,QAAQpe,CAAC,GAAK,GAClB,OAAO,UAAU,eAAe,KAAK0U,EAAK1U,CAAC,IAChDpE,EAAOoE,CAAC,EAAI0U,EAAI1U,CAAC,GAGnB,OAAOpE,CACT,ECPIgrK,GAAgB,SAAUnkF,EAAY,CACxC9iB,GAAUinG,EAAenkF,CAAU,EAEnC,SAASmkF,GAAgB,CACvBtnG,UAAgB,KAAMsnG,CAAa,EAE5BnnG,GAA2B,KAAMgjB,EAAW,MAAM,KAAM,SAAS,CAAC,CAC1E,CAED,OAAAmkF,EAAc,UAAU,sBAAwB,SAA+B1zG,EAAW,CACxF,OAAOA,EAAU,iBAAmBA,EAAU,OAClD,EAEE0zG,EAAc,UAAU,OAAS,UAAkB,CACjD,IAAIj/F,EAAS,KAAK,MACdk/F,EAAkBl/F,EAAO,gBACzB0vF,EAAU1vF,EAAO,QACjBp4C,EAAQ0+C,IAAyBtG,EAAQ,CAAC,kBAAmB,SAAS,CAAC,EAE3E,OAAIk/F,GAAmB9vG,GAAM,SAAS,MAAMxnC,EAAM,QAAQ,EAAI,GACxD,CAAC8nI,GAAWwP,IACdt3I,EAAM,WAAa,IAAMs3I,GAEpB9vG,GAAM,cAAc,MAAOxnC,CAAK,GAGlCwnC,GAAM,SAAS,KAAKxnC,EAAM,QAAQ,CAC7C,EAESq3I,CACT,EAAEnzG,EAAS,WAEXmzG,GAAc,UAAY,CACxB,SAAU9xG,EAAU,IACpB,UAAWA,EAAU,OACrB,QAASA,EAAU,KACnB,gBAAiBA,EAAU,MAC7B,ECrCA,IAAIgyG,GAAa,SAAUrkF,EAAY,CACrC9iB,GAAUmnG,EAAYrkF,CAAU,EAEhC,SAASqkF,GAAa,CACpBxnG,UAAgB,KAAMwnG,CAAU,EAEzBrnG,GAA2B,KAAMgjB,EAAW,MAAM,KAAM,SAAS,CAAC,CAC1E,CAED,OAAAqkF,EAAW,UAAU,OAAS,UAAkB,CAC9C,IAAIv3I,EAAQ,KAAK,MACb3P,EAAY2P,EAAM,UACtB,OAAKA,EAAM,UACT3P,GAAa,IAAM2P,EAAM,iBAEpBwnC,GAAM,cACX,MACA,CACE,UAAWn3C,EACX,aAAc2P,EAAM,aACpB,aAAcA,EAAM,aACpB,YAAaA,EAAM,YACnB,aAAcA,EAAM,aACpB,MAAOA,EAAM,KACd,EACDwnC,GAAM,cACJ6vG,GACA,CAAE,UAAWr3I,EAAM,UAAY,WAAY,QAASA,EAAM,OAAS,EACnEA,EAAM,QACP,CACP,CACA,EAESu3I,CACT,EAAErzG,EAAS,WAEXqzG,GAAW,UAAY,CACrB,gBAAiBhyG,EAAU,OAC3B,UAAWA,EAAU,OACrB,UAAWA,EAAU,OACrB,aAAcA,EAAU,KACxB,aAAcA,EAAU,KACxB,YAAaA,EAAU,KACvB,aAAcA,EAAU,KACxB,SAAUA,EAAU,GACtB,ECvCA,IAAIiyG,GAAQ,SAAUtkF,EAAY,CAChC9iB,GAAUonG,EAAOtkF,CAAU,EAE3B,SAASskF,EAAMx3I,EAAO,CACpB+vC,GAAgB,KAAMynG,CAAK,EAE3B,IAAI7uG,EAAQuH,GAA2B,KAAMgjB,EAAW,KAAK,KAAMlzD,CAAK,CAAC,EAEzEk4C,WAAiB,KAAKvP,CAAK,EAE3BA,EAAM,MAAQ,CAEZ,eAAgB,GAChB,YAAa,OACb,aAAc,MACpB,EAEIA,EAAM,aAAeigG,GAAQ,KAAKjgG,EAAO,eAAe,EACxDA,EAAM,aAAeigG,GAAQ,KAAKjgG,EAAO,eAAe,EACjDA,CACR,CAED,OAAA6uG,EAAM,UAAU,kBAAoB,UAA6B,CAC/D,KAAK,SAAW,KAAK,kBACrB,KAAK,eAAc,CACvB,EAEEA,EAAM,UAAU,mBAAqB,UAA8B,CACjE,KAAK,eAAc,CACvB,EAKEA,EAAM,UAAU,gBAAkB,UAA2B,CAC3D,OAAOn8F,GAAS,YAAY,KAAK,aAAa,CAClD,EAMEm8F,EAAM,UAAU,sBAAwB,UAAiC,CACvE,IAAIx3I,EAAQ,KAAK,MACbo1I,EAAiBp1I,EAAM,mBACvB0G,EAAY1G,EAAM,cACtB,MAAI,CAACo1I,GAAkB1uI,IACrB0uI,EAAiBp1I,EAAM,UAAY,IAAM0G,GAEpC0uI,CACX,EAEEoC,EAAM,UAAU,kBAAoB,UAA6B,CAC/D,IAAIx3I,EAAQ,KAAK,MACbo1I,EAAiBp1I,EAAM,eAC3B,MAAI,CAACo1I,GAAkBp1I,EAAM,YAC3Bo1I,EAAiBp1I,EAAM,UAAY,IAAMA,EAAM,WAE1Co1I,CACX,EAEEoC,EAAM,UAAU,aAAe,SAAsBC,EAAuB,CAC1E,OAAO,KAAK,MAAM,UAAY,IAAM,KAAK,MAAM,UAAY,IAAMA,CACrE,EAEED,EAAM,UAAU,gBAAkB,UAA2B,CAC3D,IAAIvpG,EAAS,KAETypG,EAAe,KAAK,aACpB74F,EAAS,KAAK,MACd84F,EAAiB94F,EAAO,eACxB+4F,EAAe/4F,EAAO,aACtBg5F,EAAch5F,EAAO,YACrBzG,EAAS,KAAK,MACdg6B,EAAQh6B,EAAO,MACf0vF,EAAU1vF,EAAO,QACjBuwF,EAAYvwF,EAAO,UACnBprE,EAAQorE,EAAO,MACf0/F,EAAwB1/F,EAAO,sBAC/B2/F,EAAqB3/F,EAAO,mBAC5B4/F,EAAU5/F,EAAO,QACjB5J,EAAW4J,EAAO,SAClB6/F,EAAe7/F,EAAO,aACtB4+E,EAAe5+E,EAAO,aACtB8/F,EAAc9/F,EAAO,YACrB8sB,EAAe9sB,EAAO,aAEtB/nD,EAAY,KAAK,aAAa,KAAK,uBAAyBynJ,EAAsB1lE,CAAK,CAAC,EACxFklE,EAAkB3O,EAAY,UAE7Bb,IACH,KAAK,sBAAwB,MAG/B,IAAIqQ,EAAY,GACZH,IAEEA,EAAQ,QAAQ,QAAQ,IAAM,GAChCG,EAAU,OAASP,EACVI,EAAQ,QAAQ,WAAW,IAAM,KAC1CG,EAAU,UAAYP,GAEpBI,EAAQ,QAAQ,OAAO,IAAM,GAC/BG,EAAU,MAAQN,EACTG,EAAQ,QAAQ,UAAU,IAAM,KACzCG,EAAU,SAAWN,GAIlBF,IACHQ,EAAU,WAAa,SACvB,WAAW,UAAY,CACjBlqG,EAAO,eACTA,EAAO,cAAc,YAExB,EAAE,CAAC,IAIR,IAAImqG,EAAWn4G,GAAS,GAAIk4G,EAAWnrK,EAAO,KAAK,eAAc,CAAE,EAE/DqrK,EAAkB,CACpB,UAAWhoJ,EACX,UAAWs4I,EACX,IAAK+O,EACL,aAAcO,EACd,aAAcjhB,EACd,YAAakhB,EACb,aAAchzE,EACd,MAAOkzE,CACb,EACI,OAAIL,EACKvwG,GAAM,cACX4uG,GACA,CACE,UAAW,GACX,UAAW,GACX,iBAAkB,GAClB,eAAgB,KAAK,kBAAmB,CACzC,EACDtO,EAAUtgG,GAAM,cACd6qG,GACA,CACE,OAAQ,KAAK,eAAgB,EAC7B,IAAK,QACL,IAAK,KAAK,aACV,oBAAqB,GACrB,MAAOjgE,EACP,QAAS,KAAK,OACf,EACD5qC,GAAM,cACJ+vG,GACAt3G,GAAS,CACP,QAAS,EACV,EAAEo4G,CAAe,EAClB7pG,CACD,CACX,EAAY,IACZ,EAGWhH,GAAM,cACX4uG,GACA,CACE,UAAW,GACX,UAAW,GACX,iBAAkB,GAClB,eAAgB,KAAK,kBAAmB,EACxC,SAAU,UACX,EACD5uG,GAAM,cACJ6qG,GACA,CACE,OAAQ,KAAK,eAAgB,EAC7B,IAAK,QACL,IAAK,KAAK,aACV,oBAAqB,GACrB,SAAUvK,EACV,cAAe,CAAE,QAAS,UAAY,EACtC,SAAU,CAACA,EACX,MAAO11D,EACP,QAAS,KAAK,OACf,EACD5qC,GAAM,cACJ+vG,GACAt3G,GAAS,CACP,gBAAiBq3G,CAClB,EAAEe,CAAe,EAClB7pG,CACD,CACF,CACP,CACA,EAEEgpG,EAAM,UAAU,eAAiB,UAA0B,CACzD,IAAIxqK,EAAQ,GACRgzB,EAAQ,KAAK,MACjB,OAAIA,EAAM,SAAW,SACnBhzB,EAAM,OAASgzB,EAAM,QAEhBhzB,CACX,EAEEwqK,EAAM,UAAU,eAAiB,UAA0B,CACzD,IAAIx3I,EAAQ,KAAK,MACbs4I,EAAc,OAClB,GAAIt4I,EAAM,KAAM,CACd,IAAIu4I,EAAiB,KAAK,wBAC1BD,EAAc9wG,GAAM,cAAc6vG,GAAe,CAC/C,MAAO,KAAK,eAAgB,EAC5B,IAAK,OACL,UAAWr3I,EAAM,UAAY,QAC7B,gBAAiBA,EAAM,UAAY,eACnC,QAASA,EAAM,OACvB,CAAO,EACGu4I,IACFD,EAAc9wG,GAAM,cAClB4uG,GACA,CACE,IAAK,OACL,SAAU,UACV,iBAAkB,GAClB,UAAW,GACX,eAAgBmC,CACjB,EACDD,CACV,EAEK,CACD,OAAOA,CACX,EAEEd,EAAM,UAAU,OAAS,UAAkB,CACzC,OAAOhwG,GAAM,cACX,MACA,KACA,KAAK,eAAgB,EACrB,KAAK,gBAAiB,CAC5B,CACA,EAESgwG,CACT,EAAEtzG,EAAS,WAEXszG,GAAM,UAAY,CAChB,QAASjyG,EAAU,KACnB,MAAOA,EAAU,OACjB,sBAAuBA,EAAU,KACjC,QAASA,EAAU,KACnB,eAAgBA,EAAU,KAC1B,MAAOA,EAAU,IACjB,mBAAoBA,EAAU,KAC9B,UAAWA,EAAU,OACrB,UAAWA,EAAU,OACrB,aAAcA,EAAU,KACxB,aAAcA,EAAU,KACxB,YAAaA,EAAU,KACvB,aAAcA,EAAU,KACxB,QAASA,EAAU,OACnB,SAAUA,EAAU,KACpB,MAAOA,EAAU,MAAM,CACrB,MAAOA,EAAU,OACjB,MAAOA,EAAU,MACrB,CAAG,CACH,EAEA,IAAI2S,IAAmB,UAA4B,CACjD,IAAI7J,EAAS,KAEb,KAAK,QAAU,SAAUmqG,EAAcpmE,EAAO,CAC5C,IAAIpyE,EAAQquC,EAAO,MACfopG,EAAwBz3I,EAAM,sBAAsBoyE,CAAK,EAGzD/jC,EAAO,wBAA0BopG,IACnCppG,EAAO,sBAAwBopG,EAC/Be,EAAa,UAAYnqG,EAAO,aAAaopG,CAAqB,GAEpEz3I,EAAM,QAAQw4I,EAAcpmE,CAAK,CACrC,EAEE,KAAK,eAAiB,UAAY,CAChC,IAAIn5B,EAAU5K,EAAO,MACjB2pG,EAAU/+F,EAAQ,QAClBw/F,EAAiBx/F,EAAQ,eACzB6uF,EAAU7uF,EAAQ,QAClBy/F,EAAUrqG,EAAO,MACjBspG,EAAiBe,EAAQ,eACzBd,EAAec,EAAQ,aACvBb,EAAca,EAAQ,YAG1B,GAAI,CAACV,GAAW,CAAClQ,EAAS,CACpB6P,GACFtpG,EAAO,SAAS,CAAE,eAAgB,EAAO,GAE3C,MACD,CAED,IAAIsqG,EAAOF,IACX,GAAKE,EAEL,KAAI/7F,EAAS+7F,EAAK,aACdr1I,EAAQq1I,EAAK,aAEbf,IAAiBh7F,GAAUi7F,IAAgBv0I,GAAS,CAACq0I,IACvDtpG,EAAO,SAAS,CACd,eAAgB,GAChB,aAAcuO,EACd,YAAat5C,CACrB,CAAO,EAEP,EAEE,KAAK,iBAAmB,UAAY,CAClC,OAAO+qC,EAAO,MAAM,gBACxB,EAEE,KAAK,eAAiB,UAAY,CAChC,IAAIwmF,EAAQxmF,EAAO,MAAM,MAEzB,OAAIwmF,GAGGxmF,EAAO,gBAClB,CACA,EClUA,SAASM,IAAO,CAAE,CAElB,SAASiqG,KAAoB,CAC3B,MAAO,EACT,CAEA,SAASC,KAAiB,CACxB,OAAO,OAAO,QAChB,CAEA,IAAIC,IAAe,CAAC,UAAW,cAAe,eAAgB,eAAgB,eAAgB,UAAW,SAAU,eAAe,EAE9HC,GAAc,CAAC,CAACl+E,gBAEhBvgB,GAAe,CACjB,UAAW/U,EAAU,MAAM,CACzB,iBAAkBA,EAAU,IAChC,CAAG,CACH,EAEIyzG,GAAU,SAAU7xG,EAAkB,CACxCiJ,GAAU4oG,EAAS7xG,CAAgB,EAEnC,SAAS6xG,EAAQh5I,EAAO,CACtB+vC,GAAgB,KAAMipG,CAAO,EAE7B,IAAIrwG,EAAQuH,GAA2B,KAAM/I,EAAiB,KAAK,KAAMnnC,CAAK,CAAC,EAE/Ek4C,IAAiB,KAAKvP,CAAK,EAE3B,IAAIswG,EAAe,OACnB,MAAI,iBAAkBj5I,EACpBi5I,EAAe,CAAC,CAACj5I,EAAM,aAEvBi5I,EAAe,CAAC,CAACj5I,EAAM,oBAGzB2oC,EAAM,MAAQ,CACZ,iBAAkBswG,EAClB,aAAcA,CACpB,EAEIH,IAAa,QAAQ,SAAU1jI,EAAG,CAChCuzB,EAAM,OAASvzB,CAAC,EAAI,SAAUr1B,EAAG,CAC/B4oD,EAAM,WAAWvzB,EAAGr1B,CAAC,CAC7B,CACA,CAAK,EACM4oD,CACR,CAED,OAAAqwG,EAAQ,UAAU,gBAAkB,UAA2B,CAC7D,MAAO,CACL,UAAW,CACT,iBAAkB,KAAK,gBACxB,CACP,CACA,EAEEA,EAAQ,UAAU,kBAAoB,UAA6B,CACjE,KAAK,mBAAmB,GAAI,CAC1B,aAAc,KAAK,MAAM,YAC/B,CAAK,CACL,EAEEA,EAAQ,UAAU,mBAAqB,SAA4BroK,EAAGkzD,EAAW,CAC/E,IAAI7jC,EAAQ,KAAK,MACb5jB,EAAQ,KAAK,MACb88J,EAAiC,UAA0C,CACzEr1G,EAAU,eAAiBznD,EAAM,cACnC4jB,EAAM,wBAAwB5jB,EAAM,YAAY,CAExD,EASI,GARK28J,IACH,KAAK,gBAAgB,KAAMG,CAA8B,EAOvD98J,EAAM,aAAc,CACtB,IAAI+8J,EAAkB,OAClB,CAAC,KAAK,sBAAwB,KAAK,cAAa,GAAM,KAAK,oBAAmB,KAChFA,EAAkBn5I,EAAM,cACxB,KAAK,oBAAsBonI,GAAiB+R,EAAiB,YAAa,KAAK,eAAe,GAG3F,KAAK,sBACRA,EAAkBA,GAAmBn5I,EAAM,cAC3C,KAAK,oBAAsBonI,GAAiB+R,EAAiB,aAAc,KAAK,eAAe,GAG7F,CAAC,KAAK,4BAA8B,KAAK,oBAAmB,IAC9DA,EAAkBA,GAAmBn5I,EAAM,cAC3C,KAAK,2BAA6BonI,GAAiB+R,EAAiB,SAAU,KAAK,kBAAkB,GAGnG,CAAC,KAAK,4BAA8B,KAAK,oBAAmB,IAC9D,KAAK,2BAA6B/R,GAAiB,OAAQ,OAAQ,KAAK,kBAAkB,GAE5F,MACD,CAED,KAAK,oBAAmB,CAC5B,EAEE4R,EAAQ,UAAU,qBAAuB,UAAgC,CACvE,KAAK,gBAAe,EACpB,KAAK,oBAAmB,EACxB,aAAa,KAAK,gBAAgB,CACtC,EAEEA,EAAQ,yBAA2B,SAAkCxyG,EAAM3C,EAAW,CACpF,IAAIo1G,EAAezyG,EAAK,aAEpB4yG,EAAW,GAEf,OAAIH,IAAiB,QAAap1G,EAAU,eAAiBo1G,IAC3DG,EAAS,aAAeH,EACxBG,EAAS,iBAAmBv1G,EAAU,cAGjCu1G,CACX,EAEEJ,EAAQ,UAAU,gBAAkB,UAA2B,CAE7D,OAAI,KAAK,YAAc,KAAK,WAAW,gBAC9B,KAAK,WAAW,kBAElB,IACX,EAEEA,EAAQ,UAAU,cAAgB,UAAyB,CACzD,IAAIh5I,EAAQ,KAAK,MACbq5I,EAAiBr5I,EAAM,eACvBs5I,EAAat5I,EAAM,WACnBuoI,EAAoBvoI,EAAM,kBAE9B,OAAIq5I,GAAkB9Q,EACbD,IAAsBC,EAAmB8Q,EAAgBC,CAAU,EAErEA,CACX,EAMEN,EAAQ,UAAU,gBAAkB,SAAyBC,EAAcxsK,EAAO,CAChF,IAAI4kK,EAAa,KAAK,MAAM,WACxBkI,EAAmB,KAAK,MAAM,aAGlC,KAAK,gBAAe,EAEhBA,IAAqBN,IACjB,iBAAkB,KAAK,OAC3B,KAAK,SAAS,CAAE,aAAcA,EAAc,iBAAkBM,CAAgB,CAAE,EAElF,KAAK,MAAM,qBAAqBN,CAAY,GAI1C5H,GAAc5kK,GAChB,KAAK,SAASA,CAAK,CAEzB,EAEEusK,EAAQ,UAAU,qBAAuB,SAA8BlR,EAAS0R,EAAQ/sK,EAAO,CAC7F,IAAIwhE,EAAS,KAETlvD,EAAQy6J,EAAS,IAErB,GADA,KAAK,gBAAe,EAChBz6J,EAAO,CACT,IAAI81I,EAAQpoJ,EAAQ,CAAE,MAAOA,EAAM,MAAO,MAAOA,EAAM,KAAO,EAAG,KACjE,KAAK,WAAa,WAAW,UAAY,CACvCwhE,EAAO,gBAAgB65F,EAASjT,CAAK,EACrC5mF,EAAO,gBAAe,CACvB,EAAElvD,CAAK,CACd,MACM,KAAK,gBAAgB+oJ,EAASr7J,CAAK,CAEzC,EAEEusK,EAAQ,UAAU,gBAAkB,UAA2B,CACzD,KAAK,aACP,aAAa,KAAK,UAAU,EAC5B,KAAK,WAAa,KAExB,EAEEA,EAAQ,UAAU,oBAAsB,UAA+B,CACjE,KAAK,sBACP,KAAK,oBAAoB,SACzB,KAAK,oBAAsB,MAGzB,KAAK,6BACP,KAAK,2BAA2B,SAChC,KAAK,2BAA6B,MAGhC,KAAK,6BACP,KAAK,2BAA2B,SAChC,KAAK,2BAA6B,MAGhC,KAAK,sBACP,KAAK,oBAAoB,SACzB,KAAK,oBAAsB,KAEjC,EAEEA,EAAQ,UAAU,gBAAkB,SAAyBvsK,EAAO,CAClE,IAAIgtK,EAAY,KAAK,MAAM,SAAS,MAChCz5I,EAAQ,KAAK,MACjB,OAAIy5I,EAAUhtK,CAAK,GAAKuzB,EAAMvzB,CAAK,EAC1B,KAAK,OAASA,CAAK,EAErBgtK,EAAUhtK,CAAK,GAAKuzB,EAAMvzB,CAAK,CAC1C,EAEEusK,EAAQ,UAAU,cAAgB,UAAyB,CACzD,IAAI5gG,EAAS,KAAK,MACd7qE,EAAS6qE,EAAO,OAChBshG,EAAathG,EAAO,WAExB,OAAO7qE,EAAO,QAAQ,OAAO,IAAM,IAAMmsK,EAAW,QAAQ,OAAO,IAAM,EAC7E,EAEEV,EAAQ,UAAU,oBAAsB,UAA+B,CACrE,IAAI//F,EAAU,KAAK,MACf1rE,EAAS0rE,EAAQ,OACjBygG,EAAazgG,EAAQ,WAEzB,OAAO1rE,EAAO,QAAQ,aAAa,IAAM,IAAMmsK,EAAW,QAAQ,aAAa,IAAM,EACzF,EAEEV,EAAQ,UAAU,cAAgB,UAAyB,CACzD,IAAI5/F,EAAU,KAAK,MACf7rE,EAAS6rE,EAAQ,OACjBugG,EAAavgG,EAAQ,WAEzB,OAAO7rE,EAAO,QAAQ,OAAO,IAAM,IAAMosK,EAAW,QAAQ,OAAO,IAAM,EAC7E,EAEEX,EAAQ,UAAU,mBAAqB,UAA8B,CACnE,IAAIt/F,EAAU,KAAK,MACfnsE,EAASmsE,EAAQ,OACjBggG,EAAahgG,EAAQ,WAEzB,OAAOnsE,EAAO,QAAQ,OAAO,IAAM,IAAMmsK,EAAW,QAAQ,YAAY,IAAM,EAClF,EAEEV,EAAQ,UAAU,mBAAqB,UAA8B,CACnE,IAAIY,EAAU,KAAK,MACfrsK,EAASqsK,EAAQ,OACjBD,EAAaC,EAAQ,WAEzB,OAAOrsK,EAAO,QAAQ,OAAO,IAAM,IAAMosK,EAAW,QAAQ,YAAY,IAAM,EAClF,EAEEX,EAAQ,UAAU,cAAgB,UAAyB,CACzD,IAAIa,EAAU,KAAK,MACftsK,EAASssK,EAAQ,OACjBH,EAAaG,EAAQ,WAEzB,OAAOtsK,EAAO,QAAQ,OAAO,IAAM,IAAMmsK,EAAW,QAAQ,OAAO,IAAM,EAC7E,EAEEV,EAAQ,UAAU,aAAe,UAAwB,CACvD,IAAIc,EAAU,KAAK,MACfvsK,EAASusK,EAAQ,OACjBH,EAAaG,EAAQ,WAEzB,OAAOvsK,EAAO,QAAQ,OAAO,IAAM,IAAMosK,EAAW,QAAQ,MAAM,IAAM,EAC5E,EAEEX,EAAQ,UAAU,gBAAkB,UAA2B,CACzD,KAAK,MAAM,cAAgB,KAAK,YAAc,KAAK,WAAW,eAChE,KAAK,WAAW,cAAc,YAEpC,EAEEA,EAAQ,UAAU,WAAa,SAAoBriK,EAAMoJ,EAAG,CAC1D,IAAIg6J,EAAgB,KAAK,MAAM,SAAS,MAAMpjK,CAAI,EAC9CojK,GACFA,EAAch6J,CAAC,EAEjB,IAAI/I,EAAW,KAAK,MAAML,CAAI,EAC1BK,GACFA,EAAS+I,CAAC,CAEhB,EAEEi5J,EAAQ,UAAU,MAAQ,UAAiB,CACzC,KAAK,gBAAgB,EAAK,CAC9B,EAEEA,EAAQ,UAAU,OAAS,UAAkB,CAC3C,IAAI3qG,EAAS,KAET4qG,EAAe,KAAK,MAAM,aAC1Be,EAAU,KAAK,MACfxrG,EAAWwrG,EAAQ,SACnBhS,EAAcgS,EAAQ,YACtB3I,EAAa2I,EAAQ,WACrB3pJ,EAAY2pJ,EAAQ,UAEpBtrG,EAAQlH,GAAM,SAAS,KAAKgH,CAAQ,EACpCyrG,EAAgB,CAAE,IAAK,WAEvB,KAAK,sBACPA,EAAc,cAAgB,KAAK,cAEnCA,EAAc,cAAgB,KAAK,gBAAgB,eAAe,EAGhE,KAAK,cAAa,GAAM,KAAK,cAAa,GAC5CA,EAAc,QAAU,KAAK,QAC7BA,EAAc,YAAc,KAAK,YACjCA,EAAc,aAAe,KAAK,eAElCA,EAAc,QAAU,KAAK,gBAAgB,SAAS,EACtDA,EAAc,YAAc,KAAK,gBAAgB,aAAa,EAC9DA,EAAc,aAAe,KAAK,gBAAgB,cAAc,GAE9D,KAAK,sBACPA,EAAc,aAAe,KAAK,aAC9B5I,IACF4I,EAAc,YAAc,KAAK,cAGnCA,EAAc,aAAe,KAAK,gBAAgB,cAAc,EAE9D,KAAK,qBACPA,EAAc,aAAe,KAAK,aAElCA,EAAc,aAAe,KAAK,gBAAgB,cAAc,EAE9D,KAAK,cAAa,GAAM,KAAK,aAAY,GAC3CA,EAAc,QAAU,KAAK,QAC7BA,EAAc,OAAS,KAAK,SAE5BA,EAAc,QAAU,KAAK,gBAAgB,SAAS,EACtDA,EAAc,OAAS,KAAK,gBAAgB,QAAQ,GAGtD,IAAIC,EAAoB1wI,GAAWklC,GAASA,EAAM,OAASA,EAAM,MAAM,UAAWr+C,CAAS,EACvF6pJ,IACFD,EAAc,UAAYC,GAE5B,IAAIj6F,EAAUzY,GAAM,aAAakH,EAAOurG,CAAa,EAErD,GAAI,CAAClB,GACH,OAAOvxG,GAAM,cACXogG,GACA,CACE,OAAQ,KACR,QAASqR,EACT,UAAW,GACX,YAAajR,EACb,aAAc,KAAK,aACnB,aAAc,KAAK,YACpB,EACD,SAAU/yF,EAAO,CACf,IAAIklG,EAAkBllG,EAAM,gBAE5B,OAAA5G,EAAO,gBAAkB8rG,EAClBl6F,CACR,CACT,EAGI,IAAIm6F,EAAS,OAEb,OAAInB,GAAgB,KAAK,YAAcjR,KACrCoS,EAAS5yG,GAAM,cACbqO,GACA,CAAE,IAAK,SAAU,aAAc,KAAK,aAAc,UAAW,KAAK,kBAAoB,EACtF,KAAK,aAAc,CAC3B,GAGW,CAACoK,EAASm6F,CAAM,CAC3B,EAESpB,CACT,EAAExxG,GAAM,SAAS,EAEjBwxG,GAAQ,UAAY,CAClB,SAAUzzG,EAAU,IACpB,OAAQA,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,QAAQA,EAAU,MAAM,CAAC,CAAC,EACnF,WAAYA,EAAU,IACtB,WAAYA,EAAU,IACtB,2BAA4BA,EAAU,IACtC,qBAAsBA,EAAU,KAChC,wBAAyBA,EAAU,KACnC,MAAOA,EAAU,UAAU,CAACA,EAAU,KAAMA,EAAU,IAAI,CAAC,EAAE,WAC7D,WAAYA,EAAU,OACtB,UAAWA,EAAU,OACrB,eAAgBA,EAAU,OAC1B,UAAWA,EAAU,OACrB,eAAgBA,EAAU,OAC1B,kBAAmBA,EAAU,OAC7B,oBAAqBA,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,MAAM,CAAC,EAC7E,eAAgBA,EAAU,IAC1B,gBAAiBA,EAAU,OAC3B,gBAAiBA,EAAU,OAC3B,OAAQA,EAAU,OAClB,WAAYA,EAAU,OACtB,UAAWA,EAAU,OACrB,kBAAmBA,EAAU,KAC7B,YAAaA,EAAU,KACvB,YAAaA,EAAU,KACvB,mBAAoBA,EAAU,KAC9B,KAAMA,EAAU,KAChB,aAAcA,EAAU,KACxB,aAAcA,EAAU,KACxB,WAAYA,EAAU,OACtB,aAAcA,EAAU,KACxB,oBAAqBA,EAAU,KAC/B,mBAAoBA,EAAU,UAAU,CAACA,EAAU,OAAQA,EAAU,MAAM,CAAC,EAC5E,cAAeA,EAAU,OACzB,QAASA,EAAU,OACnB,WAAYA,EAAU,IACxB,EACAyzG,GAAQ,aAAe1+F,GACvB0+F,GAAQ,kBAAoB1+F,GAC5B0+F,GAAQ,aAAe,CACrB,UAAW,mBACX,2BAA4BJ,IAC5B,YAAaC,IACb,qBAAsBlqG,GACtB,wBAAyBA,GACzB,aAAcA,GACd,eAAgB,GAChB,gBAAiB,EACjB,gBAAiB,GACjB,WAAY,EACZ,UAAW,IACX,WAAY,CAAE,EACd,mBAAoB,GACpB,WAAY,CAAE,EACd,oBAAqB,GACrB,KAAM,GACN,aAAc,GACd,OAAQ,CAAE,EACV,WAAY,CAAE,EACd,WAAY,CAAE,CAChB,EAEA,IAAIuJ,IAAmB,UAA4B,CACjD,IAAI5J,EAAS,KAEb,KAAK,aAAe,SAAUvuD,EAAG,CAC/B,IAAIs6J,EAAkB/rG,EAAO,MAAM,gBAEnCA,EAAO,WAAW,eAAgBvuD,CAAC,EACnCuuD,EAAO,qBAAqB,GAAM+rG,EAAiBA,EAAkB,KAAOt6J,CAAC,CACjF,EAEE,KAAK,YAAc,SAAUA,EAAG,CAC9BuuD,EAAO,WAAW,cAAevuD,CAAC,EAClCuuD,EAAO,SAASvuD,CAAC,CACrB,EAEE,KAAK,aAAe,SAAUA,EAAG,CAC/BuuD,EAAO,WAAW,eAAgBvuD,CAAC,EACnCuuD,EAAO,qBAAqB,GAAOA,EAAO,MAAM,eAAe,CACnE,EAEE,KAAK,kBAAoB,UAAY,CACnCA,EAAO,gBAAe,CAC1B,EAEE,KAAK,kBAAoB,SAAUvuD,EAAG,CAGhCA,EAAE,eAAiB,CAACA,EAAE,cAAc,YAAcuuD,EAAO,YAAcA,EAAO,WAAW,iBAAmBjjD,GAASijD,EAAO,WAAW,kBAAmBvuD,EAAE,aAAa,GAG7KuuD,EAAO,qBAAqB,GAAOA,EAAO,MAAM,eAAe,CACnE,EAEE,KAAK,QAAU,SAAUvuD,EAAG,CAC1BuuD,EAAO,WAAW,UAAWvuD,CAAC,EAE9BuuD,EAAO,gBAAe,EAClBA,EAAO,kBACTA,EAAO,UAAY,KAAK,MACxBA,EAAO,qBAAqB,GAAMA,EAAO,MAAM,UAAU,EAE/D,EAEE,KAAK,YAAc,SAAUvuD,EAAG,CAC9BuuD,EAAO,WAAW,cAAevuD,CAAC,EAClCuuD,EAAO,aAAe,KAAK,KAC/B,EAEE,KAAK,aAAe,SAAUvuD,EAAG,CAC/BuuD,EAAO,WAAW,eAAgBvuD,CAAC,EACnCuuD,EAAO,aAAe,KAAK,KAC/B,EAEE,KAAK,OAAS,SAAUvuD,EAAG,CACzBuuD,EAAO,WAAW,SAAUvuD,CAAC,EAC7BuuD,EAAO,gBAAe,EAClBA,EAAO,gBACTA,EAAO,qBAAqB,GAAOA,EAAO,MAAM,SAAS,CAE/D,EAEE,KAAK,cAAgB,SAAUvuD,EAAG,CAChCA,EAAE,eAAc,EAChBuuD,EAAO,WAAW,gBAAiBvuD,CAAC,EACpCuuD,EAAO,gBAAgB,GAAMvuD,CAAC,CAClC,EAEE,KAAK,mBAAqB,UAAY,CAChCuuD,EAAO,uBACTA,EAAO,MAAK,CAElB,EAEE,KAAK,QAAU,SAAU7hE,EAAO,CAG9B,GAFA6hE,EAAO,WAAW,UAAW7hE,CAAK,EAE9B6hE,EAAO,UAAW,CACpB,IAAIgsG,EAAU,OAQd,GAPIhsG,EAAO,cAAgBA,EAAO,aAChCgsG,EAAU,KAAK,IAAIhsG,EAAO,aAAcA,EAAO,YAAY,EAClDA,EAAO,aAChBgsG,EAAUhsG,EAAO,aACRA,EAAO,eAChBgsG,EAAUhsG,EAAO,cAEf,KAAK,IAAIgsG,EAAUhsG,EAAO,SAAS,EAAI,GACzC,OAEFA,EAAO,UAAY,CACpB,CACDA,EAAO,aAAe,EACtBA,EAAO,aAAe,EAKlBA,EAAO,kBAAoBA,EAAO,cAAe,GAAIA,EAAO,iBAAmB7hE,GAASA,EAAM,gBAChGA,EAAM,eAAc,EAEtB,IAAI8tK,EAAc,CAACjsG,EAAO,MAAM,cAC5BA,EAAO,iBAAmB,CAACisG,GAAeA,GAAejsG,EAAO,kBAClEA,EAAO,gBAAgB,CAACA,EAAO,MAAM,aAAc7hE,CAAK,CAE9D,EAEE,KAAK,iBAAmB,UAAY,CAClC,IAAI+tK,EAAqBlsG,EAAO,QAAQ,UACpCmsG,EAAYD,IAAuB,OAAY,GAAKA,EAExDlsG,EAAO,kBAAoB,GAE3B,aAAaA,EAAO,gBAAgB,EACpCA,EAAO,iBAAmB,WAAW,UAAY,CAC/CA,EAAO,kBAAoB,EAC5B,EAAE,CAAC,EAEAmsG,EAAU,kBACZA,EAAU,iBAAiB,MAAMA,EAAW,SAAS,CAE3D,EAEE,KAAK,gBAAkB,SAAUhuK,EAAO,CACtC,GAAI,EAAA6hE,EAAO,MAAM,MAAQ,CAACA,EAAO,MAAM,cAIvC,KAAIjiE,EAASI,EAAM,OACfwN,EAAOygK,eAAYpsG,CAAM,EACzB,CAACjjD,GAASpR,EAAM5N,CAAM,GAAK,CAACiiE,EAAO,mBACrCA,EAAO,MAAK,EAElB,EAEE,KAAK,eAAiB,UAAY,CAChC,OAAOosG,eAAYpsG,CAAM,CAC7B,EAEE,KAAK,2BAA6B,SAAU8jC,EAAO,CACjD,IAAI/hF,EAAY,GACZsqJ,EAAUrsG,EAAO,MACjB+qG,EAAiBsB,EAAQ,eACzBpS,EAAoBoS,EAAQ,kBAC5BhS,EAAYgS,EAAQ,UACpBtJ,EAAasJ,EAAQ,WACrBC,EAA6BD,EAAQ,2BAEzC,OAAItB,GAAkB9Q,GACpBl4I,EAAU,KAAKq4I,IAAuBH,EAAmBI,EAAWv2D,EAAOi/D,CAAU,CAAC,EAEpFuJ,GACFvqJ,EAAU,KAAKuqJ,EAA2BxoE,CAAK,CAAC,EAE3C/hF,EAAU,KAAK,GAAG,CAC7B,EAEE,KAAK,aAAe,UAAY,CAC9B,IAAIwqJ,EAAWvsG,EAAO,MAClBq6F,EAAYkS,EAAS,UACrB9C,EAAqB8C,EAAS,mBAC9BC,EAAiBD,EAAS,eAC1BttK,EAASstK,EAAS,OAClBE,EAAeF,EAAS,aACxBG,EAAiBH,EAAS,eAC1BI,EAAsBJ,EAAS,oBAC/BK,EAAaL,EAAS,WACtBM,EAAON,EAAS,KAChBO,EAAgBP,EAAS,cACzBQ,EAAqBR,EAAS,mBAC9BS,EAAST,EAAS,OAClBU,EAAQV,EAAS,MACjB7C,EAAU6C,EAAS,QACnBxJ,EAAawJ,EAAS,WACtBh8F,EAASvQ,EAAO,MAChB2qG,EAAep6F,EAAO,aACtBg2E,EAAQh2E,EAAO,MAGfuzB,EAAQ9jC,EAAO,gBAEfktG,EAAa,GACjB,OAAIltG,EAAO,uBACTktG,EAAW,aAAeltG,EAAO,mBAE/BA,EAAO,uBACTktG,EAAW,aAAeltG,EAAO,mBAGnCktG,EAAW,YAAcltG,EAAO,iBAChCktG,EAAW,aAAeltG,EAAO,iBAE1B9G,GAAM,cACXgwG,GACAv3G,GAAS,CACP,UAAW0oG,EACX,mBAAoBoP,EACpB,QAASkB,EACT,MAAO5H,GAAcxc,EACrB,UAAWimB,EACX,OAAQvtK,EACR,MAAO6kG,EACP,QAAS2oE,EACT,UAAWC,EACX,sBAAuB1sG,EAAO,0BAC/B,EAAEktG,EAAY,CACb,QAASxD,EACT,eAAgB1pG,EAAO,eACvB,MAAO4sG,EACP,KAAMC,EACN,OAAQG,EACR,eAAgBL,EAChB,cAAeG,EACf,mBAAoBC,EACpB,IAAK/sG,EAAO,SACpB,CAAO,EACD,OAAOitG,GAAU,WAAaA,EAAK,EAAKA,CAC9C,CACA,EAEE,KAAK,aAAe,UAAY,CAC9B,IAAIv7I,EAAQsuC,EAAO,MAEfmtG,EAAiB,SAAS,cAAc,KAAK,EAGjDA,EAAe,MAAM,SAAW,WAChCA,EAAe,MAAM,IAAM,IAC3BA,EAAe,MAAM,KAAO,IAC5BA,EAAe,MAAM,MAAQ,OAC7B,IAAIvnG,EAAYl0C,EAAM,kBAAoBA,EAAM,kBAAkB06I,eAAYpsG,CAAM,CAAC,EAAItuC,EAAM,YAAW,EAAG,KAC7G,OAAAk0C,EAAU,YAAYunG,CAAc,EAC7BA,CACX,EAEE,KAAK,SAAW,SAAU5mB,EAAO,CAC/B,IAAIwc,EAAa/iG,EAAO,MAAM,WAE1B,CAAC+iG,GAAc,CAACxc,GAEpBvmF,EAAO,SAAS,CACd,MAAO,CACL,MAAOumF,EAAM,MACb,MAAOA,EAAM,KACd,CACP,CAAK,CACL,EAEE,KAAK,mBAAqB,UAAY,CAChCvmF,EAAO,MAAM,mBAAqBA,EAAO,MAAM,cACjDA,EAAO,MAAM,wBAAwBA,EAAO,MAAM,YAAY,CAEpE,EAEE,KAAK,UAAY,SAAUj5D,EAAM,CAC/Bi5D,EAAO,WAAaj5D,CACxB,CACA,EAEA4uD,GAAS+0G,EAAO,ECvtBhB,SAASjpG,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASC,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,GAAuB7wC,CAAI,CAAI,CAE/K,SAASo9D,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAE7M,SAASmyB,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASu5C,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAAS6tD,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAOjN,IAAI22D,GAEJ,SAAUoX,EAAY,CACpB9iB,IAAU0L,EAAQoX,CAAU,EAE5B,SAASpX,EAAO97C,EAAO,CACrB,IAAI2oC,EAEJoH,IAAgB,KAAM+L,CAAM,EAE5BnT,EAAQuH,IAA2B,KAAM+jB,GAAgBnY,CAAM,EAAE,KAAK,KAAM97C,CAAK,CAAC,EAElF4zD,GAAgBlsB,GAAuBiB,CAAK,EAAG,gBAAiB,SAAUl8D,EAAO,CAC/E,IAAIm1E,EAAMn1E,EAAM,OAAO,MAEvBk8D,EAAM,SAAS,CACb,IAAKiZ,CACb,CAAO,EAED,IAAIva,EAAcsB,EAAM,MACpBrF,EAAS+D,EAAY,OACrBq0G,EAAcr0G,EAAY,YAC1Bs0G,EAAgBt0G,EAAY,cAC5Bu0G,EAAgBv0G,EAAY,cAC5Bw0G,EAAgBx0G,EAAY,cAC5By0G,EAAkBz0G,EAAY,gBAC9B00G,EAAkB10G,EAAY,gBAC9BsiC,EAAWtiC,EAAY,SAE3B,GAAIua,EAAK,CACP,IAAIo6F,EAAgBrzG,EAAM,MAAM,MAE5B/7D,EAAQ+7D,EAAM,cAAe,EAAC,MAAK,EAEnC74B,EAASyrF,GAAO35C,EAAKte,EAAQ,EAAI,EAErC,GAAI,CAACxzB,EAAO,UAAW,CACrB64B,EAAM,SAAS,CACb,QAAS,EACrB,CAAW,EAED,MACD,CAID,GAFA/7D,EAAM,KAAKkjC,EAAO,KAAI,CAAE,EAAE,OAAOA,EAAO,OAAQ,GAAE,OAAOA,EAAO,OAAQ,GAEpE4rI,EAAY,QAAQ9uK,EAAM,KAAM,GAAI,GAAK+uK,EAAc,QAAQ/uK,EAAM,QAAQ,EAAI,GAAKgvK,EAAc,QAAQhvK,EAAM,OAAM,CAAE,EAAI,EAAG,CACnI+7D,EAAM,SAAS,CACb,QAAS,EACrB,CAAW,EAED,MACD,CAGD,IAAIszG,EAAsBJ,IACtBK,EAAwBJ,EAAgBlvK,EAAM,KAAM,GACpDuvK,EAAwBJ,EAAgBnvK,EAAM,KAAI,EAAIA,EAAM,OAAM,CAAE,EAExE,GAAIqvK,GAAuBA,EAAoB,QAAQrvK,EAAM,KAAM,IAAK,GAAKsvK,GAAyBA,EAAsB,QAAQtvK,EAAM,OAAQ,IAAK,GAAKuvK,GAAyBA,EAAsB,QAAQvvK,EAAM,QAAQ,GAAK,EAAG,CACvO+7D,EAAM,SAAS,CACb,QAAS,EACrB,CAAW,EAED,MACD,CAED,GAAIqzG,GACF,GAAIA,EAAc,KAAM,IAAKpvK,EAAM,KAAI,GAAMovK,EAAc,OAAM,IAAOpvK,EAAM,OAAQ,GAAIovK,EAAc,OAAM,IAAOpvK,EAAM,SAAU,CAEnI,IAAIwvK,EAAeJ,EAAc,QACjCI,EAAa,KAAKxvK,EAAM,KAAM,GAC9BwvK,EAAa,OAAOxvK,EAAM,OAAQ,GAClCwvK,EAAa,OAAOxvK,EAAM,OAAQ,GAClC+8F,EAASyyE,CAAY,CACtB,OACQJ,IAAkBpvK,GAC3B+8F,EAAS/8F,CAAK,CAExB,MACQ+8F,EAAS,IAAI,EAGfhhC,EAAM,SAAS,CACb,QAAS,EACjB,CAAO,CACP,CAAK,EAEDirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,YAAa,SAAU5oD,EAAG,CACvE,IAAI6oD,EAAeD,EAAM,MACrB0zG,EAAQzzG,EAAa,MACrBC,EAAYD,EAAa,UAEzB7oD,EAAE,UAAY,IAChBs8J,IAGFxzG,EAAU9oD,CAAC,CACjB,CAAK,EAED,IAAI5N,EAAS6tB,EAAM,MACfs8I,EAAUt8I,EAAM,OACpB,OAAA2oC,EAAM,MAAQ,CACZ,IAAKx2D,GAAUA,EAAO,OAAOmqK,CAAO,GAAK,GACzC,QAAS,EACf,EACW3zG,CACR,CAED0pB,WAAavW,EAAQ,CAAC,CACpB,IAAK,oBACL,MAAO,UAA6B,CAClC,IAAI7N,EAAS,KAETsuG,EAAc,KAAK,MAAM,YAE7B,GAAIA,EAAa,CAEf,IAAIC,EAAwB,OAAO,uBAAyB,OAAO,WACnEA,EAAsB,UAAY,CAChCvuG,EAAO,SAAS,QAEhBA,EAAO,SAAS,QAC1B,CAAS,CACF,CACF,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BjK,EAAW,CAC5C,IAAI6lC,EAAe,KAAK,MACpBj9F,EAAQi9F,EAAa,MACrBvmC,EAASumC,EAAa,OAEtBj9F,IAAUo3D,EAAU,OAEtB,KAAK,SAAS,CACZ,IAAKp3D,GAASA,EAAM,OAAO02D,CAAM,GAAK,GACtC,QAAS,EACnB,CAAS,CAEJ,CACL,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAI8mC,EAAe,KAAK,MACpBx9F,EAAQw9F,EAAa,MACrBqyE,EAAmBryE,EAAa,iBACpC,OAAOx9F,GAAS6vK,CACjB,CACL,EAAK,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,IAAIpuG,EAAS,KAETo8B,EAAe,KAAK,MACpBk+D,EAAYl+D,EAAa,UACzBtzF,EAAcszF,EAAa,YAC3BiyE,EAAgBjyE,EAAa,cAC7BK,EAAc,KAAK,MACnB6xE,EAAU7xE,EAAY,QACtBlpB,EAAMkpB,EAAY,IAClB8xE,EAAeD,EAAU,GAAG,OAAOhU,EAAW,gBAAgB,EAAI,GACtE,OAAOnhG,GAAM,cAAc,QAAS,CAClC,UAAWh+B,GAAW,GAAG,OAAOm/H,EAAW,QAAQ,EAAGiU,CAAY,EAClE,IAAK,SAAap2G,EAAM,CACtB6H,EAAO,SAAW7H,CACnB,EACD,UAAW,KAAK,UAChB,MAAOob,EACP,YAAazqE,EACb,SAAU,KAAK,cACf,SAAU,CAAC,CAACulK,CACpB,CAAO,CACF,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI/T,EAAY,KAAK,MAAM,UAC3B,OAAOnhG,GAAM,cAAc,MAAO,CAChC,UAAW,GAAG,OAAOmhG,EAAW,aAAa,CACrD,EAAS,KAAK,SAAQ,CAAE,CACnB,CACF,EAAC,EAEK7sF,CACT,EAAE5X,EAAS,WAEX0vB,GAAgB9X,GAAQ,YAAa,CACnC,OAAQvW,EAAU,OAClB,UAAWA,EAAU,OACrB,aAAcA,EAAU,KACxB,YAAaA,EAAU,OACvB,UAAWA,EAAU,OACrB,MAAOA,EAAU,OACjB,cAAeA,EAAU,KACzB,YAAaA,EAAU,MACvB,cAAeA,EAAU,MACzB,cAAeA,EAAU,MACzB,cAAeA,EAAU,KACzB,gBAAiBA,EAAU,KAC3B,gBAAiBA,EAAU,KAC3B,SAAUA,EAAU,KACpB,MAAOA,EAAU,KACjB,iBAAkBA,EAAU,OAC5B,mBAAoBA,EAAU,OAC9B,YAAaA,EAAU,KACvB,UAAWA,EAAU,KACrB,UAAWA,EAAU,IACvB,CAAC,EAEDquB,GAAgB9X,GAAQ,eAAgB,CACtC,cAAe,EACjB,CAAC,uCC1OA,UAAW,CACV,IAAI+gG,EAAgBC,EAAQC,EAAUC,EAAgBC,EAAcC,EAE/D,OAAO,YAAgB,KAAe,cAAgB,MAAS,YAAY,IAC9EC,GAAA,QAAiB,UAAW,CAC1B,OAAO,YAAY,KACzB,EACc,OAAO,QAAY,KAAe,UAAY,MAAS,QAAQ,QACzEA,GAAA,QAAiB,UAAW,CAC1B,OAAQN,EAAc,EAAKI,GAAgB,GACjD,EACIH,EAAS,QAAQ,OACjBD,EAAiB,UAAW,CAC1B,IAAIO,EACJ,OAAAA,EAAKN,EAAM,EACJM,EAAG,CAAC,EAAI,IAAMA,EAAG,CAAC,CAC/B,EACIJ,EAAiBH,EAAc,EAC/BK,EAAS,QAAQ,OAAQ,EAAG,IAC5BD,EAAeD,EAAiBE,GACvB,KAAK,KACdC,GAAA,QAAiB,UAAW,CAC1B,OAAO,KAAK,IAAK,EAAGJ,CAC1B,EACIA,EAAW,KAAK,QAEhBI,GAAA,QAAiB,UAAW,CAC1B,OAAO,IAAI,KAAI,EAAG,QAAO,EAAKJ,CACpC,EACIA,EAAW,IAAI,OAAO,UAG1B,GAAG,KAAKz1J,EAAI,qBCjCRqzF,IAAM3lE,IACN/6B,GAAO,OAAO,OAAW,IAAckN,GAAS,OAChD6jD,GAAU,CAAC,MAAO,QAAQ,EAC1BzlC,GAAS,iBACT83I,GAAMpjK,GAAK,UAAYsrB,EAAM,EAC7B+3I,GAAMrjK,GAAK,SAAWsrB,EAAM,GAAKtrB,GAAK,gBAAkBsrB,EAAM,EAElE,QAAQ90B,GAAI,EAAG,CAAC4sK,IAAO5sK,GAAIu6D,GAAQ,OAAQv6D,KACzC4sK,GAAMpjK,GAAK+wD,GAAQv6D,EAAC,EAAI,UAAY80B,EAAM,EAC1C+3I,GAAMrjK,GAAK+wD,GAAQv6D,EAAC,EAAI,SAAW80B,EAAM,GAClCtrB,GAAK+wD,GAAQv6D,EAAC,EAAI,gBAAkB80B,EAAM,EAInD,GAAG,CAAC83I,IAAO,CAACC,GAAK,CACf,IAAI9rJ,GAAO,EACPzc,GAAK,EACL8iB,GAAQ,CAAE,EACV0lJ,IAAgB,IAAO,GAE3BF,GAAM,SAASrmK,EAAU,CACvB,GAAG6gB,GAAM,SAAW,EAAG,CACrB,IAAI2lJ,EAAO7iE,IAAK,EACZn0F,EAAO,KAAK,IAAI,EAAG+2J,KAAiBC,EAAOhsJ,GAAK,EACpDA,GAAOhL,EAAOg3J,EACd,WAAW,UAAW,CACpB,IAAIC,EAAK5lJ,GAAM,MAAM,CAAC,EAItBA,GAAM,OAAS,EACf,QAAQpnB,EAAI,EAAGA,EAAIgtK,EAAG,OAAQhtK,IAC5B,GAAG,CAACgtK,EAAGhtK,CAAC,EAAE,UACR,GAAG,CACDgtK,EAAGhtK,CAAC,EAAE,SAAS+gB,EAAI,CACpB,OAAOzR,EAAG,CACT,WAAW,UAAW,CAAE,MAAMA,CAAC,EAAI,CAAC,CACrC,CAGb,EAAS,KAAK,MAAMyG,CAAI,CAAC,CACpB,CACD,OAAAqR,GAAM,KAAK,CACT,OAAQ,EAAE9iB,GACV,SAAUiC,EACV,UAAW,EACjB,CAAK,EACMjC,EACR,EAEDuoK,GAAM,SAASv9I,EAAQ,CACrB,QAAQtvB,EAAI,EAAGA,EAAIonB,GAAM,OAAQpnB,IAC5BonB,GAAMpnB,CAAC,EAAE,SAAWsvB,IACrBlI,GAAMpnB,CAAC,EAAE,UAAY,GAG1B,CACH,CAEAitK,GAAc,QAAG,SAAS3uJ,EAAI,CAI5B,OAAOsuJ,GAAI,KAAKpjK,GAAM8U,CAAE,CAC1B,EACA2uJ,GAAA,eAAwB,UAAW,CACjCJ,GAAI,MAAMrjK,GAAM,SAAS,CAC3B,EACuByjK,GAAA,iBAAG,SAASnmJ,EAAQ,CACpCA,IACHA,EAAStd,IAEXsd,EAAO,sBAAwB8lJ,GAC/B9lJ,EAAO,qBAAuB+lJ,EAChC,sCC1EA,SAASvtG,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASC,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,GAAuB7wC,CAAI,CAAI,CAE/K,SAASo9D,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAE7M,SAASmyB,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASu5C,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAAS6tD,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CASjN,IAAI0vE,IAAW,SAASA,EAASvoF,EAASy7B,EAAI8M,EAAU,CAEtD,GAAIA,GAAY,EAAG,CACjBwoI,GAAI,UAAY,CACd/wK,EAAQ,UAAYy7B,CAC1B,CAAK,EACD,MACD,CAED,IAAI41I,EAAa51I,EAAKz7B,EAAQ,UAC1BsxK,EAAUD,EAAa9oI,EAAW,GACtCwoI,GAAI,UAAY,CACd/wK,EAAQ,WAAasxK,EACjBtxK,EAAQ,YAAcy7B,GAC1B8sD,EAASvoF,EAASy7B,EAAI8M,EAAW,EAAE,CACvC,CAAG,CACH,EAEI20D,GAEJ,SAAUtW,EAAY,CACpB9iB,IAAUo5B,EAAQtW,CAAU,EAE5B,SAASsW,GAAS,CAChB,IAAIq0E,EAEAl1G,EAEJoH,IAAgB,KAAMy5B,CAAM,EAE5B,QAASvkC,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAAkuC,EAAQuH,IAA2B,MAAO2tG,EAAmB5pF,GAAgBuV,CAAM,GAAG,KAAK,MAAMq0E,EAAkB,CAAC,IAAI,EAAE,OAAOxrJ,CAAI,CAAC,CAAC,EAEvIuhE,GAAgBlsB,GAAuBiB,CAAK,EAAG,QAAS,CACtD,OAAQ,EACd,CAAK,EAEDirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,WAAY,SAAU/7D,EAAO,CAC1E,IAAIy6D,EAAcsB,EAAM,MACpBilC,EAAWvmC,EAAY,SACvB1wD,EAAO0wD,EAAY,KACvBumC,EAASj3F,EAAM/J,CAAK,CAC1B,CAAK,EAEDgnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,mBAAoB,SAAU5oD,EAAG,CAC9E,IAAIk4J,EAAetvG,EAAM,MAAM,aAE/BA,EAAM,SAAS,CACb,OAAQ,EAChB,CAAO,EAEDsvG,EAAal4J,CAAC,CACpB,CAAK,EAED6zE,GAAgBlsB,GAAuBiB,CAAK,EAAG,mBAAoB,UAAY,CAC7EA,EAAM,SAAS,CACb,OAAQ,EAChB,CAAO,CACP,CAAK,EAEDirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,WAAY,SAAUtzD,EAAM,CACzEszD,EAAM,KAAOtzD,CACnB,CAAK,EAEMszD,CACR,CAED0pB,WAAamX,EAAQ,CAAC,CACpB,IAAK,oBACL,MAAO,UAA6B,CAElC,KAAK,iBAAiB,CAAC,CACxB,CACL,EAAK,CACD,IAAK,qBACL,MAAO,SAA4BxlC,EAAW,CAC5C,IAAImnC,EAAgB,KAAK,MAAM,cAE3BnnC,EAAU,gBAAkBmnC,GAC9B,KAAK,iBAAiB,GAAG,CAE5B,CACL,EAAK,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,IAAIl9B,EAAS,KAETrF,EAAe,KAAK,MACpB3yD,EAAU2yD,EAAa,QACvBuiC,EAAgBviC,EAAa,cAC7B+/F,EAAY//F,EAAa,UACzByzG,EAAQzzG,EAAa,MACzB,OAAO3yD,EAAQ,IAAI,SAAU2N,EAAM/J,EAAO,CACxC,IAAIikK,EAEApsF,EAAMloD,IAAYs0I,EAAc,GAAIlqF,GAAgBkqF,EAAa,GAAG,OAAOnV,EAAW,yBAAyB,EAAGx9D,IAAkBtxF,CAAK,EAAG+5E,GAAgBkqF,EAAa,GAAG,OAAOnV,EAAW,yBAAyB,EAAG/kJ,EAAK,QAAQ,EAAGk6J,EAAW,EACrPv2G,EAAU3jD,EAAK,SAAW,OAAY,UAAY,CACpDqqD,EAAO,SAASrqD,EAAK,KAAK,CACpC,EAEYilD,EAAY,SAAmB9oD,EAAG,CAChCA,EAAE,UAAY,GAAIwnD,EAAS,EAAUxnD,EAAE,UAAY,IAAIs8J,GACrE,EAEQ,OAAO70G,GAAM,cAAc,KAAM,CAC/B,KAAM,SACN,QAASD,EACT,UAAWmqB,EACX,IAAK73E,EACL,SAAU+J,EAAK,SACf,SAAU,IACV,UAAWilD,CACrB,EAAWjlD,EAAK,KAAK,CACrB,CAAO,CACF,CACL,EAAK,CACD,IAAK,mBACL,MAAO,SAA0BixB,EAAU,CAEzC,IAAIs2D,EAAgB,KAAK,MAAM,cAC3BvgF,EAASmzJ,GAAS,YAAY,IAAI,EAClC3xJ,EAAO2xJ,GAAS,YAAY,KAAK,IAAI,EAEzC,GAAK3xJ,EAIL,KAAIvS,EAAQsxF,EAERtxF,EAAQ,IACVA,EAAQ,GAGV,IAAImkK,EAAY5xJ,EAAK,SAASvS,CAAK,EAC/BkuB,EAAKi2I,EAAU,UACnBnpF,IAASjqE,EAAQmd,EAAI8M,CAAQ,EAC9B,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIg1D,EAAe,KAAK,MACpB8+D,EAAY9+D,EAAa,UACzB5zF,EAAU4zF,EAAa,QACvB3gC,EAAS,KAAK,MAAM,OAExB,GAAIjzD,EAAQ,SAAW,EACrB,OAAO,KAGT,IAAIy7E,EAAMloD,GAAW,GAAG,OAAOm/H,EAAW,SAAS,EAAG/0E,GAAgB,GAAI,GAAG,OAAO+0E,EAAW,gBAAgB,EAAGz/F,CAAM,CAAC,EACzH,OAAO1B,GAAM,cAAc,MAAO,CAChC,UAAWkqB,EACX,aAAc,KAAK,iBACnB,aAAc,KAAK,gBAC3B,EAASlqB,GAAM,cAAc,KAAM,CAC3B,IAAK,KAAK,QAClB,EAAS,KAAK,WAAY,EAAC,CACtB,CACF,EAAC,EAEKgiC,CACT,EAAEtlC,EAAS,WAEX0vB,GAAgB4V,GAAQ,YAAa,CACnC,UAAWjkC,EAAU,OACrB,QAASA,EAAU,MACnB,cAAeA,EAAU,OACzB,KAAMA,EAAU,OAChB,SAAUA,EAAU,KACpB,aAAcA,EAAU,KACxB,MAAOA,EAAU,IACnB,CAAC,ECvMD,SAASwK,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASC,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,GAAuB7wC,CAAI,CAAI,CAE/K,SAASo9D,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAE7M,SAASmyB,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASu5C,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAAS6tD,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAMjN,IAAI84J,GAAe,SAAsBlkK,EAAQmkK,EAAiB,CAChE,IAAItxK,EAAQ,GAAG,OAAOmN,CAAM,EAExBA,EAAS,KACXnN,EAAQ,IAAI,OAAOmN,CAAM,GAG3B,IAAI4V,EAAW,GAEf,OAAIuuJ,GAAmBA,EAAgB,QAAQnkK,CAAM,GAAK,IACxD4V,EAAW,IAGN,CACL,MAAO/iB,EACP,SAAU+iB,CACd,CACA,EAEIwuJ,GAEJ,SAAUjrF,EAAY,CACpB9iB,IAAU+tG,EAAUjrF,CAAU,EAE9B,SAASirF,GAAW,CAClB,IAAIN,EAEAl1G,EAEJoH,IAAgB,KAAMouG,CAAQ,EAE9B,QAASl5G,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAAkuC,EAAQuH,IAA2B,MAAO2tG,EAAmB5pF,GAAgBkqF,CAAQ,GAAG,KAAK,MAAMN,EAAkB,CAAC,IAAI,EAAE,OAAOxrJ,CAAI,CAAC,CAAC,EAEzIuhE,GAAgBlsB,GAAuBiB,CAAK,EAAG,eAAgB,SAAUhyD,EAAMynK,EAAW,CACxF,IAAI/2G,EAAcsB,EAAM,MACpBghC,EAAWtiC,EAAY,SACvBo1G,EAAmBp1G,EAAY,iBAC/Bg3G,EAAah3G,EAAY,WACzBZ,EAAYY,EAAY,MACxBi3G,EAAOj3G,EAAY,KACnBk3G,EAAel3G,EAAY,aAC3Bz6D,GAAS65D,GAAag2G,GAAkB,MAAK,EAEjD,GAAI9lK,IAAS,OACP0nK,EACEC,EACF1xK,EAAM,KAAK,CAACwxK,EAAY,EAAE,EAE1BxxK,EAAM,KAAK,CAACwxK,EAAY,GAAK,EAAE,EAGjCxxK,EAAM,KAAK,CAACwxK,CAAS,UAEdznK,IAAS,SAClB/J,EAAM,OAAO,CAACwxK,CAAS,UACdznK,IAAS,OAAQ,CAC1B,IAAI6nK,EAAOJ,EAAU,cAEjBC,IACEG,IAAS,MAAQ5xK,EAAM,KAAI,EAAK,IAClCA,EAAM,KAAKA,EAAM,KAAI,EAAK,GAAK,EAAE,EAG/B4xK,IAAS,MACP5xK,EAAM,KAAM,GAAI,IAClBA,EAAM,KAAKA,EAAM,KAAM,EAAG,EAAE,GAKlC2xK,EAAaC,CAAI,CACzB,MACQ5xK,EAAM,OAAO,CAACwxK,CAAS,EAGzBz0E,EAAS/8F,CAAK,CACpB,CAAK,EAEDgnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,qBAAsB,SAAU8mE,EAAO,CACpF,IAAIgvC,EAA6B91G,EAAM,MAAM,2BAC7C81G,EAA2BhvC,CAAK,CACtC,CAAK,EAEM9mE,CACR,CAED0pB,WAAa8rF,EAAU,CAAC,CACtB,IAAK,gBACL,MAAO,SAAuBhyD,EAAM,CAClC,IAAIl+C,EAAS,KAETrF,EAAe,KAAK,MACpB+/F,EAAY//F,EAAa,UACzB8yG,EAAc9yG,EAAa,YAC3BizG,EAAgBjzG,EAAa,cAC7B81G,EAAW91G,EAAa,SACxBy1G,EAAaz1G,EAAa,WAC1ByzG,EAAQzzG,EAAa,MAEzB,GAAI,CAAC81G,EACH,OAAO,KAGT,IAAIR,EAAkBrC,IAClB8C,EACAC,EAEJ,OAAIP,GACFM,EAAiB,CAAC,EAAE,EAAE,OAAOjD,EAAY,OAAO,SAAUtmI,EAAG,CAC3D,OAAOA,EAAI,IAAMA,EAAI,CACtB,EAAC,EACFwpI,EAAUzyD,EAAO,IAAM,KAEvBwyD,EAAiBjD,EACjBkD,EAAUzyD,GAGL3kD,GAAM,cAAcgiC,GAAQ,CACjC,UAAWm/D,EACX,QAASgW,EAAe,IAAI,SAAU5kK,EAAQ,CAC5C,OAAOkkK,GAAalkK,EAAQmkK,CAAe,CACrD,CAAS,EACD,cAAeS,EAAe,QAAQC,CAAO,EAC7C,KAAM,OACN,SAAU,KAAK,aACf,aAAc,UAAwB,CACpC,OAAO3wG,EAAO,mBAAmB,MAAM,CACxC,EACD,MAAOouG,CACf,CAAO,CACF,CACL,EAAK,CACD,IAAK,kBACL,MAAO,SAAyBwC,EAAQ,CACtC,IAAIxwG,EAAS,KAETw7B,EAAe,KAAK,MACpB8+D,EAAY9+D,EAAa,UACzB8xE,EAAgB9xE,EAAa,cAC7BiyE,EAAkBjyE,EAAa,gBAC/B4yE,EAAmB5yE,EAAa,iBAChCi1E,EAAaj1E,EAAa,WAC1BpjC,EAAYojC,EAAa,MACzBwyE,EAAQxyE,EAAa,MAEzB,GAAI,CAACi1E,EACH,OAAO,KAGT,IAAIlyK,EAAQ65D,GAAag2G,EACrByB,EAAkBpC,EAAgBlvK,EAAM,KAAM,GAClD,OAAO46D,GAAM,cAAcgiC,GAAQ,CACjC,UAAWm/D,EACX,QAASgT,EAAc,IAAI,SAAU5hK,EAAQ,CAC3C,OAAOkkK,GAAalkK,EAAQmkK,CAAe,CACrD,CAAS,EACD,cAAevC,EAAc,QAAQkD,CAAM,EAC3C,KAAM,SACN,SAAU,KAAK,aACf,aAAc,UAAwB,CACpC,OAAOxwG,EAAO,mBAAmB,QAAQ,CAC1C,EACD,MAAOguG,CACf,CAAO,CACF,CACL,EAAK,CACD,IAAK,kBACL,MAAO,SAAyBtyJ,EAAQ,CACtC,IAAIukD,EAAS,KAET87B,EAAe,KAAK,MACpBu+D,EAAYv+D,EAAa,UACzBwxE,EAAgBxxE,EAAa,cAC7B2xE,EAAkB3xE,EAAa,gBAC/B20E,EAAa30E,EAAa,WAC1BqyE,EAAmBryE,EAAa,iBAChC3jC,EAAY2jC,EAAa,MACzBiyE,EAAQjyE,EAAa,MAEzB,GAAI,CAAC20E,EACH,OAAO,KAGT,IAAInyK,EAAQ65D,GAAag2G,EACrByB,EAAkBnC,EAAgBnvK,EAAM,KAAI,EAAIA,EAAM,OAAM,CAAE,EAClE,OAAO46D,GAAM,cAAcgiC,GAAQ,CACjC,UAAWm/D,EACX,QAASiT,EAAc,IAAI,SAAU7hK,EAAQ,CAC3C,OAAOkkK,GAAalkK,EAAQmkK,CAAe,CACrD,CAAS,EACD,cAAetC,EAAc,QAAQ7xJ,CAAM,EAC3C,KAAM,SACN,SAAU,KAAK,aACf,aAAc,UAAwB,CACpC,OAAOukD,EAAO,mBAAmB,QAAQ,CAC1C,EACD,MAAO+tG,CACf,CAAO,CACF,CACL,EAAK,CACD,IAAK,gBACL,MAAO,UAAyB,CAC9B,IAAI9tE,EAAS,KAET9D,EAAe,KAAK,MACpBk+D,EAAYl+D,EAAa,UACzB4zE,EAAa5zE,EAAa,WAC1BnnC,EAASmnC,EAAa,OACtB6zE,EAAO7zE,EAAa,KACpB4xE,EAAQ5xE,EAAa,MAEzB,GAAI,CAAC4zE,EACH,OAAO,KAGT,IAAIW,EAAc,CAAC,KAAM,IAAI,EAC5B,IAAI,SAAUl9J,EAAG,CAChB,OAAOwhD,EAAO,MAAM,KAAK,EAAIxhD,EAAE,YAAa,EAAGA,CACvD,CAAO,EAAE,IAAI,SAAUA,EAAG,CAClB,MAAO,CACL,MAAOA,CACjB,CACA,CAAO,EACG0qB,EAAW8xI,EAAO,EAAI,EAC1B,OAAO92G,GAAM,cAAcgiC,GAAQ,CACjC,UAAWm/D,EACX,QAASqW,EACT,cAAexyI,EACf,KAAM,OACN,SAAU,KAAK,aACf,aAAc,UAAwB,CACpC,OAAO+hE,EAAO,mBAAmB,MAAM,CACxC,EACD,MAAO8tE,CACf,CAAO,CACF,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAItxE,EAAe,KAAK,MACpB49D,EAAY59D,EAAa,UACzB0xE,EAAmB1xE,EAAa,iBAChCtkC,EAAYskC,EAAa,MACzBn+F,EAAQ65D,GAAag2G,EACzB,OAAOj1G,GAAM,cAAc,MAAO,CAChC,UAAW,GAAG,OAAOmhG,EAAW,WAAW,CACnD,EAAS,KAAK,cAAc/7J,EAAM,KAAI,CAAE,EAAG,KAAK,gBAAgBA,EAAM,OAAQ,GAAG,KAAK,gBAAgBA,EAAM,QAAQ,EAAG,KAAK,cAAcA,EAAM,KAAM,EAAC,CAClJ,CACF,EAAC,EAEKuxK,CACT,EAAEj6G,EAAS,WAEX0vB,GAAgBuqF,GAAU,YAAa,CACrC,OAAQ54G,EAAU,OAClB,iBAAkBA,EAAU,OAC5B,UAAWA,EAAU,OACrB,MAAOA,EAAU,OACjB,SAAUA,EAAU,KACpB,aAAcA,EAAU,KACxB,SAAUA,EAAU,KACpB,WAAYA,EAAU,KACtB,WAAYA,EAAU,KACtB,YAAaA,EAAU,MACvB,cAAeA,EAAU,MACzB,cAAeA,EAAU,MACzB,cAAeA,EAAU,KACzB,gBAAiBA,EAAU,KAC3B,gBAAiBA,EAAU,KAC3B,2BAA4BA,EAAU,KACtC,WAAYA,EAAU,KACtB,MAAOA,EAAU,KACjB,KAAMA,EAAU,IAClB,CAAC,EC3SD,SAASsuB,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAOu8D,IAAgBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAGllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,IAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAAMA,EAAI,EAAKojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,GAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAc,OAAO,0BAA6B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAY+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOlS,CAAS,CAEthB,SAAS0jE,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASC,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,GAAuB7wC,CAAI,CAAI,CAE/K,SAASo9D,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAE7M,SAASmyB,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASu5C,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAAS6tD,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAUjN,SAASwpD,IAAO,CAAE,CAElB,SAASswG,GAAgBn8J,EAAQo7J,EAAiBgB,EAAqB,CAIrE,QAHIxqB,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAC3EjtI,EAAM,GAED7a,EAAQ,EAAGA,EAAQkW,EAAQlW,GAAS8nJ,GACvC,CAACwpB,GAAmBA,EAAgB,QAAQtxK,CAAK,EAAI,GAAK,CAACsyK,IAC7Dz3J,EAAI,KAAK7a,CAAK,EAIlB,OAAO6a,CACT,CAEA,SAAS03J,IAAmBz2I,EAAMgzI,EAAaC,EAAeC,EAAe,CAC3E,IAAIzvD,EAAOuvD,EAAY,MAAK,EAAG,KAAK,SAAU1vJ,EAAGC,EAAG,CAClD,OAAO,KAAK,IAAIyc,EAAK,KAAM,EAAG1c,CAAC,EAAI,KAAK,IAAI0c,EAAK,KAAM,EAAGzc,CAAC,CAC/D,CAAG,EAAE,CAAC,EACA4yJ,EAASlD,EAAc,MAAK,EAAG,KAAK,SAAU3vJ,EAAGC,EAAG,CACtD,OAAO,KAAK,IAAIyc,EAAK,OAAQ,EAAG1c,CAAC,EAAI,KAAK,IAAI0c,EAAK,OAAQ,EAAGzc,CAAC,CACnE,CAAG,EAAE,CAAC,EACAlC,EAAS6xJ,EAAc,MAAK,EAAG,KAAK,SAAU5vJ,EAAGC,EAAG,CACtD,OAAO,KAAK,IAAIyc,EAAK,OAAQ,EAAG1c,CAAC,EAAI,KAAK,IAAI0c,EAAK,OAAQ,EAAGzc,CAAC,CACnE,CAAG,EAAE,CAAC,EACJ,OAAOsvG,GAAO,GAAG,OAAOpP,EAAM,GAAG,EAAE,OAAO0yD,EAAQ,GAAG,EAAE,OAAO90J,CAAM,EAAG,UAAU,CACnF,CAEA,IAAIq1J,GAEJ,SAAUlsF,EAAY,CACpB9iB,IAAUgvG,EAAOlsF,CAAU,EAE3B,SAASksF,GAAQ,CACf,IAAIvB,EAEAl1G,EAEJoH,IAAgB,KAAMqvG,CAAK,EAE3B,QAASn6G,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAG7B,OAAAkuC,EAAQuH,IAA2B,MAAO2tG,EAAmB5pF,GAAgBmrF,CAAK,GAAG,KAAK,MAAMvB,EAAkB,CAAC,IAAI,EAAE,OAAOxrJ,CAAI,CAAC,CAAC,EAEtIuhE,GAAgBlsB,GAAuBiB,CAAK,EAAG,QAAS,CAAE,GAE1DirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,WAAY,SAAU8gC,EAAU,CAC7E,IAAIE,EAAWhhC,EAAM,MAAM,SAE3BA,EAAM,SAAS,CACb,MAAO8gC,CACf,CAAO,EAEDE,EAASF,CAAQ,CACvB,CAAK,EAED7V,GAAgBlsB,GAAuBiB,CAAK,EAAG,eAAgB,SAAU61G,EAAM,CAC7E,IAAID,EAAe51G,EAAM,MAAM,aAC/B41G,EAAaC,CAAI,CACvB,CAAK,EAED5qF,GAAgBlsB,GAAuBiB,CAAK,EAAG,6BAA8B,SAAU02G,EAAoB,CACzG12G,EAAM,SAAS,CACb,mBAAoB02G,CAC5B,CAAO,CACP,CAAK,EAEDzrF,GAAgBlsB,GAAuBiB,CAAK,EAAG,gBAAiB,UAAY,CAC1E,IAAItB,EAAcsB,EAAM,MACpB01G,EAAah3G,EAAY,WACzBw0G,EAAgBx0G,EAAY,cAC5B62G,EAAkBrC,IAEtB,OAAIwC,GAAc,MAAM,QAAQH,CAAe,IACzCv1G,EAAM,OACRu1G,EAAkBA,EAAgB,OAAO,SAAU9oI,EAAG,CACpD,OAAOA,EAAI,EACvB,CAAW,EAAE,IAAI,SAAUA,EAAG,CAClB,OAAOA,IAAM,EAAI,GAAKA,CAClC,CAAW,EAED8oI,EAAkBA,EAAgB,IAAI,SAAU9oI,EAAG,CACjD,OAAOA,IAAM,GAAK,GAAKA,EAAI,EACvC,CAAW,GAIE8oI,CACb,CAAK,EAEMv1G,CACR,CAED0pB,WAAa+sF,EAAO,CAAC,CACnB,IAAK,QAEL,MAAO,UAAiB,CACtB,IAAI/C,EAAQ,KAAK,MAAM,MACvBA,GACD,CACL,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,IAAII,EAAmB,KAAK,MAAM,iBAC9B7vK,EAAQ,KAAK,MAAM,MACnB0yK,EAAY1yK,GAAS6vK,EACzB,OAAO6C,EAAU,QAAU,GAAKA,EAAU,KAAM,EAAG,EACpD,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI12G,EAAe,KAAK,MACpB+/F,EAAY//F,EAAa,UACzBv4C,EAAYu4C,EAAa,UACzBzxD,EAAcyxD,EAAa,YAC3BkzG,EAAkBlzG,EAAa,gBAC/BmzG,EAAkBnzG,EAAa,gBAC/Bs2G,EAAsBt2G,EAAa,oBACnC81G,EAAW91G,EAAa,SACxBk2G,EAAal2G,EAAa,WAC1Bm2G,EAAan2G,EAAa,WAC1BtF,EAASsF,EAAa,OACtB6zG,EAAmB7zG,EAAa,iBAChC22G,EAAY32G,EAAa,UACzByzG,EAAQzzG,EAAa,MACrB42G,EAAQ52G,EAAa,MACrBy1G,EAAaz1G,EAAa,WAC1B2zG,EAAc3zG,EAAa,YAC3BC,EAAYD,EAAa,UACzB62G,EAAW72G,EAAa,SACxB82G,EAAa92G,EAAa,WAC1B+2G,EAAa/2G,EAAa,WAC1B8zG,EAAgB9zG,EAAa,cAC7Bg3G,EAAYh3G,EAAa,UACzBkiC,EAAc,KAAK,MACnBl+F,EAAQk+F,EAAY,MACpBu0E,EAAqBv0E,EAAY,mBACjCmxE,EAAsB,KAAK,gBAC3BC,EAAwBJ,EAAgBlvK,EAAQA,EAAM,KAAI,EAAK,IAAI,EACnEuvK,GAAwBJ,EAAgBnvK,EAAQA,EAAM,KAAI,EAAK,KAAMA,EAAQA,EAAM,OAAQ,EAAG,IAAI,EAClG8uK,GAAcuD,GAAgB,GAAIhD,EAAqBiD,EAAqBO,CAAQ,EACpF9D,GAAgBsD,GAAgB,GAAI/C,EAAuBgD,EAAqBQ,CAAU,EAC1F9D,GAAgBqD,GAAgB,GAAI9C,GAAuB+C,EAAqBS,CAAU,EAC1FE,GAAwBV,IAAmB1C,EAAkBf,GAAaC,GAAeC,EAAa,EAC1G,OAAOp0G,GAAM,cAAc,MAAO,CAChC,UAAWh+B,GAAWnZ,EAAW,GAAG,OAAOs4I,EAAW,QAAQ,CAAC,CACvE,EAASnhG,GAAM,cAAcsU,GAAQ,CAC7B,UAAWyjG,EACX,UAAW5W,EACX,iBAAkBkX,GAClB,MAAOjzK,EACP,mBAAoByyK,EACpB,MAAOhD,EACP,OAAQ/4G,EACR,YAAansD,EACb,YAAaukK,GACb,cAAeC,GACf,cAAeC,GACf,cAAe,KAAK,cACpB,gBAAiBE,EACjB,gBAAiBC,EACjB,SAAU,KAAK,SACf,YAAaQ,EACb,UAAW1zG,EACX,cAAe6zG,EACf,UAAWkD,CACnB,CAAO,EAAGp4G,GAAM,cAAc22G,GAAU,CAChC,UAAWxV,EACX,MAAO/7J,EACP,iBAAkBizK,GAClB,OAAQv8G,EACR,SAAU,KAAK,SACf,aAAc,KAAK,aACnB,SAAUo7G,EACV,WAAYI,EACZ,WAAYC,EACZ,YAAarD,GACb,cAAeC,GACf,cAAeC,GACf,cAAe,KAAK,cACpB,gBAAiBE,EACjB,gBAAiBC,EACjB,2BAA4B,KAAK,2BACjC,WAAYsC,EACZ,MAAOhC,EACP,KAAM,KAAK,KAAM,CACzB,CAAO,EAAGmD,EAAM,IAAI,CAAC,CAChB,CACF,GAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkCx/I,EAAO5jB,EAAO,CACrD,MAAI,UAAW4jB,EACN2yH,IAAc,CAAE,EAAEv2I,EAAO,CAC9B,MAAO4jB,EAAM,KACvB,CAAS,EAGI,IACR,CACF,EAAC,EAEKo/I,CACT,EAAEl7G,EAAS,WAEX0vB,GAAgBwrF,GAAO,YAAa,CAClC,UAAW75G,EAAU,OACrB,UAAWA,EAAU,OACrB,UAAWA,EAAU,OACrB,iBAAkBA,EAAU,OAC5B,MAAOA,EAAU,OACjB,YAAaA,EAAU,OACvB,OAAQA,EAAU,OAClB,cAAeA,EAAU,KACzB,cAAeA,EAAU,KACzB,gBAAiBA,EAAU,KAC3B,gBAAiBA,EAAU,KAC3B,oBAAqBA,EAAU,KAC/B,SAAUA,EAAU,KACpB,aAAcA,EAAU,KACxB,MAAOA,EAAU,KACjB,SAAUA,EAAU,KACpB,WAAYA,EAAU,KACtB,WAAYA,EAAU,KACtB,WAAYA,EAAU,KACtB,SAAUA,EAAU,OACpB,WAAYA,EAAU,OACtB,WAAYA,EAAU,OACtB,MAAOA,EAAU,KACjB,YAAaA,EAAU,KACvB,UAAWA,EAAU,KACrB,UAAWA,EAAU,IACvB,CAAC,EAEDquB,GAAgBwrF,GAAO,eAAgB,CACrC,UAAW,uBACX,SAAUzwG,GACV,cAAeA,GACf,gBAAiBA,GACjB,gBAAiBA,GACjB,iBAAkB4sD,GAAQ,EAC1B,WAAY,GACZ,MAAO5sD,GACP,UAAWA,GACX,aAAcA,GACd,cAAe,EACjB,CAAC,EAED1K,GAASm7G,EAAK,ECvRd,IAAIU,GAAqB,CACvB,QAAS,EACT,QAAS,CACX,EACI1Q,GAAe,CAAC,EAAG,CAAC,EACpB2Q,IAAa,CACf,WAAY,CACV,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAUD,GACV,OAAQ,CAAC,EAAG,EAAE,EACd,aAAc1Q,EACf,EACD,YAAa,CACX,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU0Q,GACV,OAAQ,CAAC,EAAG,EAAE,EACd,aAAc1Q,EACf,EACD,SAAU,CACR,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU0Q,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc1Q,EACf,EACD,QAAS,CACP,OAAQ,CAAC,KAAM,IAAI,EACnB,SAAU0Q,GACV,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc1Q,EACf,CACH,EC9BA,SAASv7E,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAOu8D,IAAgBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAGllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,IAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,CAAE,EAAMA,EAAI,EAAKojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,GAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAc,OAAO,0BAA6B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAY+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOlS,CAAS,CAEthB,SAAS0jE,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAUviB,CAAc,CAEvN,SAASC,IAA2Br5C,EAAMs5C,EAAM,CAAE,OAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YAAsBA,EAAezI,GAAuB7wC,CAAI,CAAI,CAE/K,SAASo9D,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAE7M,SAASmyB,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASu5C,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEjY,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAAS6tD,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAYjN,SAASwpD,IAAO,CAAE,CAElB,SAASqxG,GAAMntF,EAAOzF,EAAW,CAC/B,KAAKyF,CAAK,EAAIzF,CAChB,CAEA,IAAI6yF,GAEJ,SAAU/sF,EAAY,CACpB9iB,IAAU6vG,EAAQ/sF,CAAU,EAE5B,SAAS+sF,EAAOjgJ,EAAO,CACrB,IAAI2oC,EAEJoH,IAAgB,KAAMkwG,CAAM,EAE5Bt3G,EAAQuH,IAA2B,KAAM+jB,GAAgBgsF,CAAM,EAAE,KAAK,KAAMjgJ,CAAK,CAAC,EAElF4zD,GAAgBlsB,GAAuBiB,CAAK,EAAG,gBAAiB,SAAU/7D,EAAO,CAC/E+7D,EAAM,SAAS/7D,CAAK,CAC1B,CAAK,EAEDgnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,eAAgB,SAAU61G,EAAM,CAC7E,IAAID,EAAe51G,EAAM,MAAM,aAC/B41G,EAAaC,CAAI,CACvB,CAAK,EAED5qF,GAAgBlsB,GAAuBiB,CAAK,EAAG,UAAW,SAAUl8D,EAAO,CACzEA,EAAM,gBAAe,EAErBk8D,EAAM,SAAS,IAAI,EAEnBA,EAAM,QAAQ,EAAK,CACzB,CAAK,EAEDirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,kBAAmB,SAAUu3G,EAAM,CAChFv3G,EAAM,QAAQu3G,CAAI,CACxB,CAAK,EAEDtsF,GAAgBlsB,GAAuBiB,CAAK,EAAG,QAAS,UAAY,CAClEA,EAAM,QAAQ,EAAK,EAEnBA,EAAM,MAAK,CACjB,CAAK,EAEDirB,GAAgBlsB,GAAuBiB,CAAK,EAAG,YAAa,SAAU5oD,EAAG,CACnEA,EAAE,UAAY,IAChB4oD,EAAM,QAAQ,EAAI,CAE1B,CAAK,EAEDA,EAAM,aAAeq3G,GAAM,KAAKt4G,GAAuBiB,CAAK,EAAG,QAAQ,EACvEA,EAAM,aAAeq3G,GAAM,KAAKt4G,GAAuBiB,CAAK,EAAG,eAAe,EAE9E,IAAIw3G,EAAcngJ,EAAM,YACpBxnB,EAAewnB,EAAM,aACrBogJ,EAAcpgJ,EAAM,KACpBqgJ,EAAQD,IAAgB,OAASD,EAAcC,EAC/CE,EAAetgJ,EAAM,MACrB7tB,EAASmuK,IAAiB,OAAS9nK,EAAe8nK,EAEtD,OAAA33G,EAAM,MAAQ,CACZ,KAAM03G,EACN,MAAOluK,CACb,EACWw2D,CACR,CAED0pB,WAAa4tF,EAAQ,CAAC,CACpB,IAAK,WACL,MAAO,SAAkBrzK,EAAO,CAC9B,IAAI+8F,EAAW,KAAK,MAAM,SAEpB,UAAW,KAAK,OACpB,KAAK,SAAS,CACZ,MAAO/8F,CACjB,CAAS,EAGH+8F,EAAS/8F,CAAK,CACf,CACL,EAAK,CACD,IAAK,YACL,MAAO,UAAqB,CAC1B,IAAIy6D,EAAc,KAAK,MACnB/D,EAAS+D,EAAY,OACrBq3G,EAAWr3G,EAAY,SACvBy3G,EAAaz3G,EAAY,WACzB03G,EAAa13G,EAAY,WACzBg3G,EAAah3G,EAAY,WAE7B,GAAI/D,EACF,OAAOA,EAGT,GAAI+6G,EAAY,CACd,IAAIkC,EAAY,CAAC7B,EAAW,IAAM,GAAII,EAAa,KAAO,GAAIC,EAAa,KAAO,EAAE,EAAE,OAAO,SAAUn7J,EAAM,CAC3G,MAAO,CAAC,CAACA,CACnB,CAAS,EAAE,KAAK,GAAG,EACX,OAAO28J,EAAU,OAAO,IAAI,CAC7B,CAED,MAAO,CAAC7B,EAAW,KAAO,GAAII,EAAa,KAAO,GAAIC,EAAa,KAAO,EAAE,EAAE,OAAO,SAAUn7J,EAAM,CACnG,MAAO,CAAC,CAACA,CACjB,CAAO,EAAE,KAAK,GAAG,CACZ,CACL,EAAK,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,IAAIglD,EAAe,KAAK,MACpB+/F,EAAY//F,EAAa,UACzBzxD,EAAcyxD,EAAa,YAC3BizG,EAAgBjzG,EAAa,cAC7BkzG,EAAkBlzG,EAAa,gBAC/BmzG,EAAkBnzG,EAAa,gBAC/Bs2G,EAAsBt2G,EAAa,oBACnC8zG,EAAgB9zG,EAAa,cAC7B81G,EAAW91G,EAAa,SACxBk2G,EAAal2G,EAAa,WAC1Bm2G,EAAan2G,EAAa,WAC1B6zG,EAAmB7zG,EAAa,iBAChC22G,EAAY32G,EAAa,UACzB42G,EAAQ52G,EAAa,MACrBy1G,EAAaz1G,EAAa,WAC1B2zG,EAAc3zG,EAAa,YAC3BC,EAAYD,EAAa,UACzB62G,EAAW72G,EAAa,SACxB82G,EAAa92G,EAAa,WAC1B+2G,EAAa/2G,EAAa,WAC1Bg3G,EAAYh3G,EAAa,UACzBh8D,EAAQ,KAAK,MAAM,MACvB,OAAO46D,GAAM,cAAc43G,GAAO,CAChC,UAAWG,EACX,UAAW,GAAG,OAAO5W,EAAW,QAAQ,EACxC,IAAK,KAAK,aACV,MAAO/7J,EACP,cAAe8vK,EACf,SAAU,KAAK,cACf,aAAc,KAAK,aACnB,iBAAkBD,EAClB,SAAUiC,EACV,WAAYI,EACZ,WAAYC,EACZ,MAAO,KAAK,MACZ,OAAQ,KAAK,UAAW,EACxB,YAAa5nK,EACb,cAAe0kK,EACf,gBAAiBC,EACjB,gBAAiBC,EACjB,oBAAqBmD,EACrB,WAAYb,EACZ,SAAUoB,EACV,WAAYC,EACZ,WAAYC,EACZ,MAAOH,EACP,YAAajD,EACb,UAAW1zG,EACX,UAAW+2G,CACnB,CAAO,CACF,CACL,EAAK,CACD,IAAK,oBACL,MAAO,UAA6B,CAClC,IAAI/1E,EAAe,KAAK,MACpB60E,EAAW70E,EAAa,SACxBi1E,EAAaj1E,EAAa,WAC1Bk1E,EAAal1E,EAAa,WAC1Bw0E,EAAax0E,EAAa,WAC1B8+D,EAAY9+D,EAAa,UACzBixE,EAAiBjxE,EAAa,eAC9B22E,EAAoB,EAExB,OAAI9B,IACF8B,GAAqB,GAGnB1B,IACF0B,GAAqB,GAGnBzB,IACFyB,GAAqB,GAGnBnC,IACFmC,GAAqB,GAIhBh3I,GAAWsxI,EAAgBlnF,GAAgB,GAAI,GAAG,OAAO+0E,EAAW,eAAe,GAAI,CAAC+V,GAAY,CAACI,GAAc,CAACC,IAAe,CAACV,CAAU,EAAG,GAAG,OAAO1V,EAAW,gBAAgB,EAAE,OAAO6X,CAAiB,CAAC,CACzN,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiBN,EAAM,CAC5B,IAAI91E,EAAe,KAAK,MACpBq2E,EAASr2E,EAAa,OACtBs2E,EAAUt2E,EAAa,QACvBu2E,EAAc,KAAK,MAAM,KAEzBA,IAAgBT,IACZ,SAAU,KAAK,OACnB,KAAK,SAAS,CACZ,KAAMA,CAClB,CAAW,EAGCA,EACFO,EAAO,CACL,KAAMP,CAClB,CAAW,EAEDQ,EAAQ,CACN,KAAMR,CAClB,CAAW,EAGN,CACL,EAAK,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,OAAO,OACb,CACL,EAAK,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,OAAO,MACb,CACL,EAAK,CACD,IAAK,oBACL,MAAO,UAA6B,CAClC,IAAIjyG,EAAS,KAETrhE,EAAQ,KAAK,MAAM,MACnB69F,EAAe,KAAK,MACpBk+D,EAAYl+D,EAAa,UACzBm2E,EAAan2E,EAAa,WAC1Bm1E,EAAYn1E,EAAa,UACzB80E,EAAY90E,EAAa,UACzB96E,EAAW86E,EAAa,SAE5B,GAAI,CAACm2E,GAAc,CAACh0K,GAAS+iB,EAC3B,OAAO,KAGT,GAAI63C,GAAM,eAAeo4G,CAAS,EAAG,CACnC,IAAIp5G,EAAOo5G,EAAU,OAAS,CAAE,EAC5BiB,EAAWr6G,EAAK,QAEpB,OAAOgB,GAAM,aAAao4G,EAAW,CACnC,QAAS,UAAmB,CACtBiB,GAAUA,EAAS,MAAM,OAAQ,SAAS,EAE9C5yG,EAAO,QAAQ,MAAMA,EAAQ,SAAS,CACvC,CACX,CAAS,CACF,CAED,OAAOzG,GAAM,cAAc,IAAK,CAC9B,KAAM,SACN,UAAW,GAAG,OAAOmhG,EAAW,QAAQ,EACxC,MAAO4W,EACP,QAAS,KAAK,QACd,SAAU,CACX,EAAEK,GAAap4G,GAAM,cAAc,IAAK,CACvC,UAAW,GAAG,OAAOmhG,EAAW,aAAa,CAC9C,EAAC,CACH,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI59D,EAAe,KAAK,MACpB49D,EAAY59D,EAAa,UACzB5zF,EAAc4zF,EAAa,YAC3BntB,EAAYmtB,EAAa,UACzBqH,EAAQrH,EAAa,MACrBh2F,EAAKg2F,EAAa,GAClBp7E,EAAWo7E,EAAa,SACxBqqE,EAAiBrqE,EAAa,eAC9B/9F,EAAQ+9F,EAAa,MACrB16E,EAAY06E,EAAa,UACzB+1E,EAAoB/1E,EAAa,kBACjC7+F,EAAO6+F,EAAa,KACpBg2E,EAAeh2E,EAAa,aAC5B5qB,EAAU4qB,EAAa,QACvB7qB,EAAS6qB,EAAa,OACtBmmC,EAAYnmC,EAAa,UACzB2xE,EAAgB3xE,EAAa,cAC7Bi2E,EAAYj2E,EAAa,UACzBmwE,EAAanwE,EAAa,WAC1BD,EAAc,KAAK,MACnBo1E,EAAOp1E,EAAY,KACnBl+F,EAAQk+F,EAAY,MACpBgwE,EAAiB,KAAK,oBAC1B,OAAOtzG,GAAM,cAAcwxG,GAAS,CAClC,UAAW,GAAG,OAAOrQ,EAAW,QAAQ,EACxC,eAAgBmS,EAChB,WAAYI,EACZ,MAAO,KAAK,gBAAiB,EAC7B,WAAY9oE,EACZ,kBAAmB2tE,IACnB,eAAgBniG,EAChB,OAAQjuD,EAAW,GAAK,CAAC,OAAO,EAChC,mBAAoB,GACpB,kBAAmBmxJ,EACnB,oBAAqB1L,EACrB,aAAc8K,EACd,qBAAsB,KAAK,eACnC,EAAS14G,GAAM,cAAc,OAAQ,CAC7B,UAAWh+B,GAAWm/H,EAAWt4I,CAAS,EAC1C,MAAOrjB,CACf,EAASw6D,GAAM,cAAc,QAAS,CAC9B,UAAW,GAAG,OAAOmhG,EAAW,QAAQ,EACxC,IAAK,KAAK,aACV,KAAM,OACN,YAAaxxJ,EACb,KAAMjL,EACN,UAAW,KAAK,UAChB,SAAUyjB,EACV,MAAO/iB,GAASA,EAAM,OAAO,KAAK,UAAW,IAAK,GAClD,aAAcm0K,EACd,QAAS5gG,EACT,OAAQD,EACR,UAAWgxD,EACX,SAAUviE,GACV,SAAU,CAAC,CAAC+tG,EACZ,GAAI3nK,CACL,GAAGisK,GAAax5G,GAAM,cAAc,OAAQ,CAC3C,UAAW,GAAG,OAAOmhG,EAAW,OAAO,CACxC,GAAG,KAAK,kBAAmB,EAAC,CAC9B,CACF,GAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkC3oI,EAAO5jB,EAAO,CACrD,IAAIg9J,EAAW,GAEf,MAAI,UAAWp5I,IACbo5I,EAAS,MAAQp5I,EAAM,OAGrBA,EAAM,OAAS,SACjBo5I,EAAS,KAAOp5I,EAAM,MAGjB,OAAO,KAAKo5I,CAAQ,EAAE,OAAS,EAAIzmB,IAAc,GAAIv2I,EAAO,GAAIg9J,CAAQ,EAAI,IACpF,CACF,EAAC,EAEK6G,CACT,EAAE/7G,EAAS,WAEX0vB,GAAgBqsF,GAAQ,YAAa,CACnC,UAAW16G,EAAU,OACrB,UAAWA,EAAU,OACrB,MAAOA,EAAU,OACjB,iBAAkBA,EAAU,OAC5B,cAAeA,EAAU,KACzB,SAAUA,EAAU,KACpB,WAAYA,EAAU,KACtB,aAAcA,EAAU,OACxB,KAAMA,EAAU,KAChB,YAAaA,EAAU,KACvB,MAAOA,EAAU,OACjB,UAAWA,EAAU,IACrB,eAAgBA,EAAU,OAC1B,kBAAmBA,EAAU,KAC7B,YAAaA,EAAU,OACvB,OAAQA,EAAU,OAClB,SAAUA,EAAU,KACpB,WAAYA,EAAU,KACtB,WAAYA,EAAU,KACtB,MAAOA,EAAU,OACjB,UAAWA,EAAU,OACrB,eAAgBA,EAAU,OAC1B,WAAYA,EAAU,OACtB,cAAeA,EAAU,KACzB,gBAAiBA,EAAU,KAC3B,gBAAiBA,EAAU,KAC3B,oBAAqBA,EAAU,KAC/B,SAAUA,EAAU,KACpB,aAAcA,EAAU,KACxB,OAAQA,EAAU,KAClB,QAASA,EAAU,KACnB,QAASA,EAAU,KACnB,OAAQA,EAAU,KAClB,MAAOA,EAAU,KACjB,KAAMA,EAAU,OAChB,aAAcA,EAAU,OACxB,WAAYA,EAAU,KACtB,SAAUA,EAAU,OACpB,WAAYA,EAAU,OACtB,WAAYA,EAAU,OACtB,YAAaA,EAAU,KACvB,UAAWA,EAAU,KACrB,UAAWA,EAAU,KACrB,GAAIA,EAAU,OACd,UAAWA,EAAU,KACrB,UAAWA,EAAU,IACvB,CAAC,EAEDquB,GAAgBqsF,GAAQ,eAAgB,CACtC,UAAW,QACX,UAAW,iBACX,YAAa,GACb,cAAe,GACf,MAAO,CAAE,EACT,UAAW,GACX,eAAgB,GAChB,WAAY,CAAE,EACd,MAAO,CAAE,EACT,iBAAkB1kD,GAAQ,EAC1B,WAAY,GACZ,SAAU,GACV,WAAY,GACZ,WAAY,GACZ,cAAe5sD,GACf,gBAAiBA,GACjB,gBAAiBA,GACjB,oBAAqB,GACrB,UAAW,aACX,SAAUA,GACV,aAAcA,GACd,OAAQA,GACR,QAASA,GACT,QAASA,GACT,OAAQA,GACR,MAAOA,GACP,WAAY,GACZ,YAAa,GACb,UAAWA,EACb,CAAC,EAED1K,GAASg8G,EAAM,EC5cf,MAAAgB,IAAe,CAAC,CAAE,WAAAC,EAAY,cAAAC,KAE1B/vF,EAACgwF,GAAA,CACC,MAAOF,EACP,SAAUC,EACV,WAAY,GACZ,WAAY,GACZ,WAAY,KCPHE,IAAA,CAAC,CAAE,iBAAAC,EAAkB,QAAAC,EAAS,WAAAC,CAC3C,IAAApwF,EAACoY,GAAA,CAAO,QAAQ,OACR,kBAAuB1hE,EAAI,KAC3B,kBAAuBA,EAAI,GAC3B,QAASw5I,EACT,MAAOC,EACP,SAAUC,CAAA,CAClB,ECIaC,IAAA,CAAC,CAAE,GAAA1sK,EAAI,MAAAqH,EAAO,SAAA9M,KAAe,CACpC,MAAE,YAAA2vI,EAAa,WAAAE,EAAY,cAAA53D,EAAe,cAAAm6F,EAAe,UAAA/lD,EAAW,SAAA4Q,EAAU,uBAAA4wB,EAC5E,WAAAC,EAAY,WAAA8jB,EAAY,eAAAlkB,EAAgB,OAAAd,EAAQ,yBAAAa,EAChD,oBAAA4kB,EAAqB,QAAAJ,EAAS,iBAAAD,CAAoB,EAAAllK,EAEpDwlK,EAAkB3iC,GAAgB,CAAE3vI,EAAS,CAAE,KAAM,iBAAkB,QAAS2vI,CAAa,IAC7FG,EAAiBxyI,GAAU,CAAE0C,EAAS,CAAE,KAAM,gBAAiB,MAAA1C,CAAc,IAC7Ei1K,EAAuBj1K,GAAU,CAAE0C,EAAS,CAAE,KAAM,mBAAoB,MAAA1C,CAAc,IACtFirI,EAAgBjrI,GAAU,CAAE0C,EAAS,CAAE,KAAM,eAAgB,MAAA1C,CAAc,IAC3EgxJ,EAAehxJ,GAAU,CAAE0C,EAAS,CAAE,KAAM,cAAe,MAAA1C,CAAc,IACzEywJ,EAAiBzwJ,GAAU,CAAE0C,EAAS,CAAE,KAAM,gBAAiB,MAAA1C,CAAc,IAC7Eu0K,EAAiBv0K,GAAW,CAAE0C,EAAS,CAAE,KAAM,gBAAiB,MAAA1C,CAAc,IAC9EqwJ,EAAqBrwJ,GAAW,CAAE0C,EAAS,CAAE,KAAM,oBAAqB,MAAA1C,CAAc,IACtF40K,EAAa50K,GAAW0C,EAAS,CAAE,KAAM,aAAc,MAAA1C,EAAc,EAyB3E,OAtBA44F,YAAU,IAAM,CACVppF,EAAM,SAAW,UAEhB6qE,GAAA,IAAI,uCAAuC,EAC3C,KAAMt4E,GAAaizK,EAAejzK,EAAS,KAAK,WAAW,CAAC,EACtDyN,EAAM,SAAW,wBAEvB6qE,GAAA,IAAI,4BAA4BlyE,GAAM,KAAK,OAAO,EAClD,KAAMpG,GAAa,CACTW,EAAA,CAAE,KAAM,iBAAkB,QAAS,CAAE,YAAA2vI,CAA4B,UAAStwI,EAAS,KAAM,EACnG,CACL,EACC,CAACyN,EAAM,MAAM,CAAC,EAEjBopF,YAAU,IAAM,CACVppF,EAAM,UAAY,MAChBorE,GAAA,WAAWprE,EAAM,QAASA,EAAM,aAAa,EAAE,KAAMzN,GAAa,CACpEW,EAAS,CAAE,KAAM,gBAAiB,QAASX,EAAS,KAAM,EAC3D,GAEF,CAACyN,EAAM,QAASA,EAAM,aAAa,CAAC,EAEnC6iI,EAAY,SAAW,EAAU,QAGlC,OAAK,WAAU,oCAAoC,OAAO,IAAI,GAAG,wBAChE,UAAC5uC,GAAA,OAAI,UAAU,4BACb,UAACA,GAAA,OAAI,UAAU,qBACb,UAAAjf,EAAC,SAAM,SAAI,SACXA,EAACgwD,IAAA,CAAY,YAAAnC,EACA,cAAA13D,EACA,mBAAoB63D,CAAA,CAAc,GACjD,EAEA/uC,GAAC,MAAI,WAAU,qBACb,UAAAjf,EAAC,SAAM,SAAQ,aACfA,EAAC0rE,IAAA,CAAgB,yBAAAC,EACA,eAAAC,EACA,kBAAAC,CAAA,CACjB,GACF,EACA5sD,GAAC,MAAI,WAAU,qBACb,UAAAjf,EAAC,SAAM,SAAM,WACbA,EAAC8rE,IAAA,CAAiB,uBAAAC,EACA,WAAAC,EACA,cAAAC,CAAA,CAClB,GACF,EACAjsE,EAAC,MAAI,WAAU,UAAW,GAC1BA,EAAC,OAAI,UAAU,WACb,WAAC+qE,GAAU,QAAAD,EAAgB,KAAK,cAAa,CAC/C,IACF,EACA7rD,GAAC,MAAI,WAAU,4BACb,UAACA,GAAA,OAAI,UAAU,sCACb,UAAAjf,EAAC,SAAM,SAA4B,iCAClCuqC,GAAcvqC,EAAA0qE,GAAA,CAAU,SAAUjkB,EAAc,MAAOlc,EAAU,GACpE,EACAtrB,GAAC,MAAI,WAAU,qBACb,UAAAjf,EAAC,SAAM,SAAsB,2BAC7BA,EAAC6vF,IAAW,YAAAC,EAAwB,cAAAC,CAA6B,IACnE,EACA9wE,GAAC,MAAI,WAAU,qBACb,UAAAjf,EAAC,SAAM,SAAsB,2BAC7BA,EAACusE,IAAW,UAAApxB,EAAoB,YAAAqxB,CAAyB,IAC3D,GACF,EACAvtD,GAAC,MAAI,WAAU,4BACb,UAAAjf,EAAC,MAAI,WAAU,sCACX,SAAA+tD,GAAe/tD,EAAA0wF,IAAA,CAAW,UAAWD,EAAqB,KAAM1iC,EAAY,QAASuiC,CAAc,GACvG,EACCC,IAAwBL,EAAiB,OAAS,GAAKC,EAAQ,OAAS,IACvElxE,GAAC,MAAI,WAAU,sBACb,UAAAjf,EAAC,SAAM,SAAuB,4BAC9BA,EAACiwF,IAAA,CAAY,iBAAAC,EACA,QAAAC,EACA,WAAAC,CAAA,CAAuB,EACnCpwF,EAAA+qE,GAAA,CAAU,OAAAD,EAAgB,KAAK,UAAU,IAC5C,GAEJ,EAEC9qE,EAAA+qE,GAAA,CAAU,OAAAD,EAAgB,KAAK,MAAM,EACxC,GAEJ,ECjHqB,IAAA6lB,IAAA,cAAsBv6G,GAAM,SAAU,CACzD,YAAYxnC,EAAO,CACjB,MAAMA,CAAK,EACN,WAAQ,CAAE,SAAU,EAAM,CACjC,CAEA,OAAO,yBAAyB3tB,EAAO,CAC9B,OAAE,SAAU,GACrB,CAEA,kBAAkBA,EAAO2vK,EAAW,CAE1B,YAAI3vK,EAAO2vK,CAAS,CAC9B,CAEA,QAAS,CACH,YAAK,MAAM,SAEV5wF,EAAA,OAAI,UAAU,2DAA2D,SAE1E,0BAIG,KAAK,MAAM,QACpB,CACF,EC1BA,MAAMssE,IAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAEpDukB,GAAe,CAC1B,OAAQ,UACR,GAAI,KACJ,WAAY,KACZ,cAAe,KACf,cAAe,CAAC,EAChB,UAAW,KACX,SAAU,CAAC,EACX,WAAY,KACZ,WAAY1mD,GAAO,QAAS,OAAO,EACnC,QAAS,CAAC,EACV,eAAgB,KAChB,OAAQ,CAAC,EACT,YAAa,CAAC,EACd,iBAAkB,CAAC,EACnB,yBAA0B,CAAC,EAC3B,uBAAwB,CAAC,EACzB,QAAS,KACT,oBAAqB,EACvB,EAEA,SAAS2mD,GAAejjC,EAAa13D,EAAe,CAClD,OAAO03D,EAAY,KAAar7H,KAAK,MAAQ2jE,CAAa,CAC5D,CAEA,SAAS46F,GAAsBhjC,EAAY73D,EAAS,CAClD,GAAI,CAAC63D,EAAY,MAAO,GAExB,MAAM53D,EAAgB43D,EAAW,IAC3B/yH,EAAO+yH,EAAW,qBAGpB,OAAA53D,IAAkB,cAAgB,EAFjB,OAAOD,GAAY,UAG/Bl7D,EAAK,OAAexI,OAAS,YAAY,EAEzCwI,CAEX,CAEgB,SAAAg2J,IAAQhmK,EAAO7O,EAAQ,CACrC,OAAQA,EAAO,KAAM,CACnB,IAAK,iBACI,OACL,GAAG6O,EACH,OAAQ,uBACR,YAAa7O,EAAO,SAGxB,IAAK,iBAAkB,CACf,MAAE,QAAAu5E,CAAY,EAAAv5E,EAEd4X,EAAM,GACZ,OAAAA,EAAI,cAAgB2hE,EAAQ,OAC5B3hE,EAAI,WAAa+8J,GAAe9lK,EAAM,YAAa0qE,EAAQ,MAAM,EAE7Dv5E,EAAO,QAAQ,UAAY,OAAU4X,EAAA,cAAgB5X,EAAO,QAAQ,SAExE4X,EAAI,UAAYo2G,GAAOz0C,EAAQ,SAAS,EAAE,SAC1C3hE,EAAI,UAAY2hE,EAAQ,UAAY,IAAI,IAAIu7F,IAAc,CAAE,MAAO3kB,IAAS2kB,CAAS,EAAG,MAAOA,CAAW,IAC1Gl9J,EAAI,WAAa2hE,EAAQ,WACrB3hE,EAAA,WAAao2G,GAAOz0C,EAAQ,UAAU,EAC1C3hE,EAAI,QAAU2hE,EAAQ,QACtB3hE,EAAI,yBAA2Bg9J,GAAsBh9J,EAAI,WAAYA,EAAI,OAAO,EAChFA,EAAI,eAAiB2hE,EAAQ,gBAAkB3hE,EAAI,yBAAyB,CAAC,EAC7EA,EAAI,uBAAyBA,EAAI,WAAaA,EAAI,WAAW,uBAAyB,GAEtFA,EAAI,OAAS,KAEN,CACL,GAAG/I,EACH,GAAG+I,CAAA,CAEP,CACA,IAAK,gBAAiB,CACpB,MAAMA,EAAM,GACZ,OAAAA,EAAI,cAAgB5X,EAAO,MAC3B4X,EAAI,WAAa+8J,GAAe9lK,EAAM,YAAa+I,EAAI,aAAa,EAChEA,EAAA,uBAAyBA,EAAI,WAAW,uBAC5CA,EAAI,yBAA2Bg9J,GAAsBh9J,EAAI,WAAY/I,EAAM,OAAO,EAE7E+I,EAAI,yBAAyB,SAAS/I,EAAM,cAAc,IACzD+I,EAAA,eAAiBA,EAAI,yBAAyB,CAAC,GAGhDA,EAAI,uBAAuB,SAAS/I,EAAM,UAAU,IAAO+I,EAAA,WAAaA,EAAI,uBAAuB,CAAC,GAElG,CACL,GAAG/I,EACH,GAAG+I,CAAA,CAEP,CACA,IAAK,eACH,MAAO,CAAE,GAAG/I,EAAO,UAAW7O,EAAO,KAAM,EAE7C,IAAK,cACH,MAAO,CAAE,GAAG6O,EAAO,SAAU7O,EAAO,KAAM,EAE5C,IAAK,gBACH,MAAO,CAAE,GAAG6O,EAAO,WAAY7O,EAAO,KAAM,EAE9C,IAAK,gBACH,MAAO,CAAE,GAAG6O,EAAO,WAAY7O,EAAO,KAAM,EAE9C,IAAK,oBACH,MAAO,CAAE,GAAG6O,EAAO,eAAgB7O,EAAO,KAAM,EAElD,IAAK,mBAAoB,CACjB,MAAE,MAAAX,CAAU,EAAAW,EACZ+5E,EAAU16E,EAAM,QAChB+0K,EAAuB,OAAOr6F,GAAY,SAE1CniE,EAAM,CACV,cAAevY,EACf,QAAA06E,EACA,oBAAAq6F,CAAA,EAGF,OAAAx8J,EAAI,yBAA2Bg9J,GAAsB/lK,EAAM,WAAY+I,EAAI,OAAO,EAE7Ew8J,IACHx8J,EAAI,QAAU,GACdA,EAAI,eAAiB,IAGhB,CACL,GAAG/I,EACH,GAAG+I,CAAA,CAEP,CACA,IAAK,gBAAiB,CACpB,KAAM,CAAE,WAAAm9J,EAAY,YAAAC,GAAgBh1K,EAAO,QACrCi1K,EAAiBD,EAAY,gBAAgB,EAAI,GAAKD,EAGtDn9J,EAAM,CAAE,iBAFS/I,EAAM,WAAW,eACEomK,EAAiBA,EAAe,OAAen7F,GAAA,CAACA,EAAK,WAAW,CAAC,GAGvG,OAACjrE,EAAM,aAAemmK,IAAap9J,EAAI,YAAco9J,GACrDnmK,EAAM,QAAQ,SAAW,IAAO+I,EAAA,QAAU,CAACo9J,CAAW,GAEnD,CACL,GAAGnmK,EACH,GAAG+I,CAAA,CAEP,CACA,IAAK,aACH,MAAO,CAAE,GAAG/I,EAAO,QAAS7O,EAAO,KAAM,EAE3C,IAAK,YACH,MAAO,CAAE,GAAG6O,EAAO,OAAQ7O,EAAO,KAAM,EAE1C,IAAK,gBACI,OAAA00K,EAEX,CAEM,YAAM,mBAAqB10K,EAAO,IAAI,CAC9C,CCxJA,MAAek1K,IAAA,CAAC,CAAE,GAAA1tK,EAAI,KAAAqoB,EAAM,QAAAslJ,EAAS,YAAAC,KAAkB,CACrD,KAAM,CAACvmK,EAAO9M,CAAQ,EAAIszK,aAAWR,IAASH,EAAY,EAEpD,CAACY,EAAiBC,CAAkB,EAAIvzE,WAAS,EAAK,EAE5D/J,YAAU,IAAM,CACVpoE,IAAS,IACF9tB,EAAA,CAAE,KAAM,gBAAiB,CACpC,EACC,CAAC8tB,CAAI,CAAC,EAET,MAAM2lJ,EAAe,IAAM,CAEzBD,EAAmB,EAAI,EAEvBt7F,GACG,mBAAmBzyE,EAAIqH,CAAK,EAC5B,KAAK,IAAM,CACVsmK,EAAQ,EAAK,EACDC,IACZG,EAAmB,EAAK,EACzB,EACA,MAAOzwK,GAAU,UACZtF,GAAAD,EAAAuF,GAAA,YAAAA,EAAO,WAAP,YAAAvF,EAAiB,OAAjB,MAAAC,EAAuB,QAChBuC,EAAA,CAAE,KAAM,YAAa,MAAO+C,EAAM,SAAS,KAAK,OAAQ,EAEnEywK,EAAmB,EAAK,EACzB,GAGL,UACG7qG,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,SAACo4B,GAAAp4B,GAAM,MAAN,CAAa,UAAOljE,GAAA,KAA2B,MAAQ,OAAO,oBAAgB,CACjF,GACCq8E,EAAAnZ,GAAM,KAAN,CACC,SAACmZ,EAAA4xF,IAAA,CACE,SAAQ5lJ,GAAAg0D,EAAC6xF,IAAK,IAAAluK,EAAQ,MAAAqH,EAAc,SAAA9M,CAAmB,EAC1D,GACF,EACA+gG,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAM,WAC7CtxF,EAACroB,GAAA,CAAO,UAAU,cACV,SAAU85G,EACV,QAASE,EAAc,mBAE/B,GACF,CACF,GAEJ,ECxDgB,SAAAG,IAASh/G,EAAWy+G,EAAa,CAC/C,KAAM,CAACvlJ,EAAMslJ,CAAO,EAAInzE,WAAS,EAAK,EAChC,CAACt5F,EAASktK,CAAU,EAAI5zE,EAAA,SAAS,CAAE,GAmBlC,OAjBOne,EAACltB,EAAA,CAAU,GAAIjuD,EAAQ,GACH,KAAAmnB,EACA,QAAAslJ,EACA,YAAAC,EACA,QAAA1sK,CAAA,GAEfA,GAAY,CACrB,YAAI,UAAWA,CAAO,EAC9BktK,EAAWltK,CAAO,EAClBysK,EAAQ,EAAI,GAGI,IAAM,CACtBA,EAAQ,EAAK,EACbS,EAAW,CAAE,GAGoB,CACrC,CCxBA,SAASC,GAAWC,EAAU,CAC5B,OAAOA,EAAS,OAAO,CAAC,IAAM,GAChC,CAGA,SAASC,GAAUl3J,EAAMvS,EAAO,CAC9B,QAASpJ,EAAIoJ,EAAOiK,EAAIrT,EAAI,EAAG8T,EAAI6H,EAAK,OAAQtI,EAAIS,EAAG9T,GAAK,EAAGqT,GAAK,EAClEsI,EAAK3b,CAAC,EAAI2b,EAAKtI,CAAC,EAGlBsI,EAAK,IAAG,CACV,CAGA,SAASm3J,IAAgBx7I,EAAIqO,EAAM,CAC7BA,IAAS,SAAWA,EAAO,IAE/B,IAAIotI,EAAWz7I,GAAMA,EAAG,MAAM,GAAG,GAAM,GACnC07I,EAAartI,GAAQA,EAAK,MAAM,GAAG,GAAM,GAEzCstI,EAAU37I,GAAMq7I,GAAWr7I,CAAE,EAC7B47I,EAAYvtI,GAAQgtI,GAAWhtI,CAAI,EACnCwtI,EAAaF,GAAWC,EAW5B,GATI57I,GAAMq7I,GAAWr7I,CAAE,EAErB07I,EAAYD,EACHA,EAAQ,SAEjBC,EAAU,IAAG,EACbA,EAAYA,EAAU,OAAOD,CAAO,GAGlC,CAACC,EAAU,OAAQ,MAAO,IAE9B,IAAII,EACJ,GAAIJ,EAAU,OAAQ,CACpB,IAAIjyJ,EAAOiyJ,EAAUA,EAAU,OAAS,CAAC,EACzCI,EAAmBryJ,IAAS,KAAOA,IAAS,MAAQA,IAAS,EACjE,MACIqyJ,EAAmB,GAIrB,QADIC,EAAK,EACArzK,EAAIgzK,EAAU,OAAQhzK,GAAK,EAAGA,IAAK,CAC1C,IAAI+2H,EAAOi8C,EAAUhzK,CAAC,EAElB+2H,IAAS,IACX87C,GAAUG,EAAWhzK,CAAC,EACb+2H,IAAS,MAClB87C,GAAUG,EAAWhzK,CAAC,EACtBqzK,KACSA,IACTR,GAAUG,EAAWhzK,CAAC,EACtBqzK,IAEH,CAED,GAAI,CAACF,EAAY,KAAOE,IAAMA,EAAIL,EAAU,QAAQ,IAAI,EAGtDG,GACAH,EAAU,CAAC,IAAM,KAChB,CAACA,EAAU,CAAC,GAAK,CAACL,GAAWK,EAAU,CAAC,CAAC,IAE1CA,EAAU,QAAQ,EAAE,EAEtB,IAAIlzK,EAASkzK,EAAU,KAAK,GAAG,EAE/B,OAAII,GAAoBtzK,EAAO,OAAO,EAAE,IAAM,MAAKA,GAAU,KAEtDA,CACT,CCvEA,IAAI1C,IAAS,mBACb,SAASu1D,GAAUC,EAAWp3D,EAAS,CACnC,GAAI,CAAAo3D,EAIM,UAAI,MAAMx1D,GAAM,CAK9B,CCNA,SAASk2K,GAAgBvgG,EAAM,CAC7B,OAAOA,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAO,IAAMA,CAC/C,CACA,SAASwgG,GAAkBxgG,EAAM,CACxB,OAAAA,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAK,OAAO,CAAC,EAAIA,CACnD,CACA,SAASygG,IAAYzgG,EAAM31E,EAAQ,CACjC,OAAO21E,EAAK,cAAc,QAAQ31E,EAAO,YAAa,KAAM,GAAK,MAAM,QAAQ21E,EAAK,OAAO31E,EAAO,MAAM,CAAC,IAAM,EACjH,CACA,SAASq2K,GAAc1gG,EAAM31E,EAAQ,CAC5B,OAAAo2K,IAAYzgG,EAAM31E,CAAM,EAAI21E,EAAK,OAAO31E,EAAO,MAAM,EAAI21E,CAClE,CACA,SAAS2gG,GAAmB3gG,EAAM,CACzB,OAAAA,EAAK,OAAOA,EAAK,OAAS,CAAC,IAAM,IAAMA,EAAK,MAAM,EAAG,EAAE,EAAIA,CACpE,CACA,SAAS4gG,IAAU5gG,EAAM,CACvB,IAAI6/F,EAAW7/F,GAAQ,IACnBqF,EAAS,GACTh2D,EAAO,GACPwxJ,EAAYhB,EAAS,QAAQ,GAAG,EAEhCgB,IAAc,KACTxxJ,EAAAwwJ,EAAS,OAAOgB,CAAS,EACrBhB,IAAS,OAAO,EAAGgB,CAAS,GAGrC,IAAAC,EAAcjB,EAAS,QAAQ,GAAG,EAEtC,OAAIiB,IAAgB,KACTz7F,EAAAw6F,EAAS,OAAOiB,CAAW,EACzBjB,IAAS,OAAO,EAAGiB,CAAW,GAGpC,CACL,SAAAjB,EACA,OAAQx6F,IAAW,IAAM,GAAKA,EAC9B,KAAMh2D,IAAS,IAAM,GAAKA,CAAA,CAE9B,CACA,SAAS0xJ,GAAWv2K,EAAU,CAC5B,IAAIq1K,EAAWr1K,EAAS,SACpB66E,EAAS76E,EAAS,OAClB6kB,EAAO7kB,EAAS,KAChBw1E,EAAO6/F,GAAY,IACvB,OAAIx6F,GAAUA,IAAW,MAAKrF,GAAQqF,EAAO,OAAO,CAAC,IAAM,IAAMA,EAAS,IAAMA,GAC5Eh2D,GAAQA,IAAS,MAAK2wD,GAAQ3wD,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAO,IAAMA,GACjE2wD,CACT,CAEA,SAASghG,GAAehhG,EAAMpnE,EAAOmC,EAAKkmK,EAAiB,CACrD,IAAAz2K,EAEA,OAAOw1E,GAAS,UAElBx1E,EAAWo2K,IAAU5gG,CAAI,EACzBx1E,EAAS,MAAQoO,IAGNpO,EAAAiyD,GAAS,GAAIujB,CAAI,EACxBx1E,EAAS,WAAa,SAAWA,EAAS,SAAW,IAErDA,EAAS,OACPA,EAAS,OAAO,OAAO,CAAC,IAAM,MAAcA,EAAA,OAAS,IAAMA,EAAS,QAExEA,EAAS,OAAS,GAGhBA,EAAS,KACPA,EAAS,KAAK,OAAO,CAAC,IAAM,MAAcA,EAAA,KAAO,IAAMA,EAAS,MAEpEA,EAAS,KAAO,GAGdoO,IAAU,QAAapO,EAAS,QAAU,SAAWA,EAAS,MAAQoO,IAGxE,IACOpO,EAAA,SAAW,UAAUA,EAAS,QAAQ,QACxC+R,EAAG,CACV,MAAIA,aAAa,SACT,IAAI,SAAS,aAAe/R,EAAS,SAAW,+EAAoF,EAEpI+R,CAEV,CAEI,OAAAxB,IAAKvQ,EAAS,IAAMuQ,GAEpBkmK,EAEGz2K,EAAS,SAEHA,EAAS,SAAS,OAAO,CAAC,IAAM,MACzCA,EAAS,SAAWu1K,IAAgBv1K,EAAS,SAAUy2K,EAAgB,QAAQ,GAF/Ez2K,EAAS,SAAWy2K,EAAgB,SAMjCz2K,EAAS,WACZA,EAAS,SAAW,KAIjBA,CACT,CAKA,SAAS02K,IAA0B,CACjC,IAAIC,EAAS,KAEb,SAASC,EAAUC,EAAY,CAEpB,OAAAF,EAAAE,EACF,UAAY,CACbF,IAAWE,IAAqBF,EAAA,MAExC,CAEA,SAASG,EAAoB92K,EAAUT,EAAQw3K,EAAqB/tK,EAAU,CAI5E,GAAI2tK,GAAU,KAAM,CAClB,IAAIp0K,EAAS,OAAOo0K,GAAW,WAAaA,EAAO32K,EAAUT,CAAM,EAAIo3K,EAEnE,OAAOp0K,GAAW,SAChB,OAAOw0K,GAAwB,WACjCA,EAAoBx0K,EAAQyG,CAAQ,EAGpCA,EAAS,EAAI,EAIfA,EAASzG,IAAW,EAAK,CAC3B,MAEAyG,EAAS,EAAI,CAEjB,CAEA,IAAIguK,EAAY,GAEhB,SAASC,EAAel2J,EAAI,CAC1B,IAAIm2J,EAAW,GAEf,SAASxzI,GAAW,CACdwzI,GAAan2J,EAAA,MAAM,OAAQ,SAAS,CAC1C,CAEA,OAAAi2J,EAAU,KAAKtzI,CAAQ,EAChB,UAAY,CACNwzI,EAAA,GACCF,IAAU,OAAO,SAAUphK,EAAM,CAC3C,OAAOA,IAAS8tB,CAAA,CACjB,EAEL,CAEA,SAASyzI,GAAkB,CACzB,QAASlgH,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC1EpI,EAAAoI,CAAI,EAAI,UAAUA,CAAI,EAGnBuqJ,EAAA,QAAQ,SAAUtzI,EAAU,CAC7B,OAAAA,EAAS,MAAM,OAAQrf,CAAI,EACnC,CACH,CAEO,OACL,UAAAuyJ,EACA,oBAAAE,EACA,eAAAG,EACA,gBAAAE,CAAA,CAEJ,CAEA,IAAIhqG,GAAY,CAAC,EAAE,OAAO,OAAW,KAAe,OAAO,UAAY,OAAO,SAAS,eACvF,SAASiqG,GAAgBn5K,EAAS+K,EAAU,CACjCA,EAAA,OAAO,QAAQ/K,CAAO,CAAC,CAClC,CASA,SAASo5K,KAAkB,CACrB,IAAA3rI,EAAK,OAAO,UAAU,UACrB,OAAAA,EAAG,QAAQ,YAAY,IAAM,IAAMA,EAAG,QAAQ,aAAa,IAAM,KAAOA,EAAG,QAAQ,eAAe,IAAM,IAAMA,EAAG,QAAQ,QAAQ,IAAM,IAAMA,EAAG,QAAQ,eAAe,IAAM,GAAW,GACtL,OAAO,SAAW,cAAe,OAAO,OACjD,CAMA,SAAS4rI,KAA+B,CACtC,OAAO,OAAO,UAAU,UAAU,QAAQ,SAAS,IAAM,EAC3D,CAKA,SAASC,KAAmC,CAC1C,OAAO,OAAO,UAAU,UAAU,QAAQ,SAAS,IAAM,EAC3D,CAOA,SAASC,IAA0B/4K,EAAO,CACxC,OAAOA,EAAM,QAAU,QAAa,UAAU,UAAU,QAAQ,OAAO,IAAM,EAC/E,CAEA,IAAIg5K,GAAgB,WAChBC,GAAkB,aAEtB,SAASC,IAAkB,CACrB,IACK,cAAO,QAAQ,OAAS,QACrB,CAGV,MAAO,EACT,CACF,CAOA,SAASC,GAAqB5lJ,EAAO,CAC/BA,IAAU,SACZA,EAAQ,IAGTm7C,IAAsG/X,GAAU,EAAK,EACtH,IAAIyiH,EAAgB,OAAO,QACvBC,EAAgBT,MAChBU,EAA0B,CAACT,MAC3BltG,EAASp4C,EACTgmJ,EAAsB5tG,EAAO,aAC7B6tG,EAAeD,IAAwB,OAAS,GAAQA,EACxDE,EAAwB9tG,EAAO,oBAC/B2sG,EAAsBmB,IAA0B,OAASd,GAAkBc,EAC3EC,EAAmB/tG,EAAO,UAC1BguG,EAAYD,IAAqB,OAAS,EAAIA,EAC9CE,EAAWrmJ,EAAM,SAAWmkJ,GAAmBJ,GAAgB/jJ,EAAM,QAAQ,CAAC,EAAI,GAEtF,SAASsmJ,EAAeC,GAAc,CAChC,IAAA//G,GAAO+/G,IAAgB,GACvBhoK,GAAMioD,GAAK,IACXpqD,GAAQoqD,GAAK,MAEbggH,GAAmB,OAAO,SAC1BnD,GAAWmD,GAAiB,SAC5B39F,EAAS29F,GAAiB,OAC1B3zJ,GAAO2zJ,GAAiB,KACxBhjG,GAAO6/F,GAAWx6F,EAASh2D,GAE3B,OAAAwzJ,IAAiB7iG,GAAA0gG,GAAc1gG,GAAM6iG,CAAQ,GAC1C7B,GAAehhG,GAAMpnE,GAAOmC,EAAG,CACxC,CAEA,SAASkoK,GAAY,CACZ,YAAK,SAAS,SAAS,EAAE,EAAE,OAAO,EAAGL,CAAS,CACvD,CAEA,IAAIM,EAAoBhC,KAExB,SAASiC,EAAS5iH,GAAW,CAC3B9D,GAAS2mH,GAAS7iH,EAAS,EAE3B6iH,GAAQ,OAASf,EAAc,OAC/Ba,EAAkB,gBAAgBE,GAAQ,SAAUA,GAAQ,MAAM,CACpE,CAEA,SAASC,EAAep6K,GAAO,CAEzB+4K,IAA0B/4K,EAAK,GACzBq6K,EAAAR,EAAe75K,GAAM,KAAK,CAAC,CACvC,CAEA,SAASs6K,GAAmB,CAChBD,EAAAR,EAAeX,GAAiB,EAAC,CAC7C,CAEA,IAAIqB,EAAe,GAEnB,SAASF,EAAU94K,GAAU,CAC3B,GAAIg5K,EACaA,EAAA,GACNL,QACJ,CACL,IAAIp5K,GAAS,MACbm5K,EAAkB,oBAAoB14K,GAAUT,GAAQw3K,EAAqB,SAAUkC,GAAI,CACrFA,GACON,EAAA,CACP,OAAAp5K,GACA,SAAAS,EAAA,CACD,EAEDk5K,EAAUl5K,EAAQ,CACpB,CACD,CACH,CACF,CAEA,SAASk5K,EAAUC,GAAc,CAC/B,IAAIC,GAAaR,GAAQ,SAIrBS,GAAUC,EAAQ,QAAQF,GAAW,GAAG,EACxCC,KAAY,KAAcA,GAAA,GAC9B,IAAIrpH,GAAYspH,EAAQ,QAAQH,GAAa,GAAG,EAC5CnpH,KAAc,KAAgBA,GAAA,GAClC,IAAIh5B,GAAQqiJ,GAAUrpH,GAElBh5B,KACagiJ,EAAA,GACfO,EAAGviJ,EAAK,EAEZ,CAEI,IAAAwiJ,EAAkBlB,EAAeX,GAAA,CAAiB,EAClD2B,EAAU,CAACE,EAAgB,GAAG,EAElC,SAASC,EAAWz5K,GAAU,CACrB,OAAAq4K,EAAW9B,GAAWv2K,EAAQ,CACvC,CAES,SAAA8Z,EAAK07D,GAAMpnE,GAAO,CAEzB,IAAI7O,GAAS,OACTS,GAAWw2K,GAAehhG,GAAMpnE,GAAOqqK,IAAaG,GAAQ,QAAQ,EACxEF,EAAkB,oBAAoB14K,GAAUT,GAAQw3K,EAAqB,SAAUkC,GAAI,CACzF,GAAKA,GACD,KAAAx+G,GAAOg/G,EAAWz5K,EAAQ,EAC1BuQ,EAAMvQ,GAAS,IACfoO,GAAQpO,GAAS,MAErB,GAAI83K,EAMF,GALAD,EAAc,UAAU,CACtB,IAAAtnK,EACA,MAAOnC,EAAA,EACN,KAAMqsD,EAAI,EAETw9G,EACF,OAAO,SAAS,KAAOx9G,OAClB,CACL,IAAIi/G,GAAYJ,EAAQ,QAAQV,GAAQ,SAAS,GAAG,EAChDe,GAAWL,EAAQ,MAAM,EAAGI,GAAY,CAAC,EACpCC,GAAA,KAAK35K,GAAS,GAAG,EAChBs5K,EAAAK,GACDhB,EAAA,CACP,OAAAp5K,GACA,SAAAS,EAAA,CACD,CACH,MAGA,OAAO,SAAS,KAAOy6D,GACzB,CACD,CACH,CAES,SAAAigB,EAAQlF,GAAMpnE,GAAO,CAE5B,IAAI7O,GAAS,UACTS,GAAWw2K,GAAehhG,GAAMpnE,GAAOqqK,IAAaG,GAAQ,QAAQ,EACxEF,EAAkB,oBAAoB14K,GAAUT,GAAQw3K,EAAqB,SAAUkC,GAAI,CACzF,GAAKA,GACD,KAAAx+G,GAAOg/G,EAAWz5K,EAAQ,EAC1BuQ,EAAMvQ,GAAS,IACfoO,GAAQpO,GAAS,MAErB,GAAI83K,EAMF,GALAD,EAAc,aAAa,CACzB,IAAAtnK,EACA,MAAOnC,EAAA,EACN,KAAMqsD,EAAI,EAETw9G,EACK,gBAAS,QAAQx9G,EAAI,MACvB,CACL,IAAIi/G,GAAYJ,EAAQ,QAAQV,GAAQ,SAAS,GAAG,EAChDc,KAAc,KAAYJ,EAAAI,EAAS,EAAI15K,GAAS,KAC3C24K,EAAA,CACP,OAAAp5K,GACA,SAAAS,EAAA,CACD,CACH,MAGO,gBAAS,QAAQy6D,EAAI,EAC9B,CACD,CACH,CAEA,SAAS8+G,EAAGhjK,GAAG,CACbshK,EAAc,GAAGthK,EAAC,CACpB,CAEA,SAASqjK,GAAS,CAChBL,EAAG,EAAE,CACP,CAEA,SAASM,GAAY,CACnBN,EAAG,CAAC,CACN,CAEA,IAAIO,EAAgB,EAEpB,SAASC,EAAkB/iJ,GAAO,CACf8iJ,GAAA9iJ,GAEb8iJ,IAAkB,GAAK9iJ,KAAU,GAC5B,wBAAiBygJ,GAAeoB,CAAc,EACjDd,GAAgC,wBAAiBL,GAAiBqB,CAAgB,GAC7Ee,IAAkB,IACpB,2BAAoBrC,GAAeoB,CAAc,EACpDd,GAAgC,2BAAoBL,GAAiBqB,CAAgB,EAE7F,CAEA,IAAIiB,GAAY,GAEhB,SAAS7vK,GAAMwsK,GAAQ,CACjBA,KAAW,SACJA,GAAA,IAGP,IAAAsD,GAAUvB,EAAkB,UAAU/B,EAAM,EAEhD,OAAKqD,KACHD,EAAkB,CAAC,EACPC,GAAA,IAGP,UAAY,CACjB,OAAIA,KACUA,GAAA,GACZD,EAAkB,EAAE,GAGfE,GAAQ,EAEnB,CAEA,SAASt2G,GAAOjgC,GAAU,CACpB,IAAAw2I,GAAWxB,EAAkB,eAAeh1I,EAAQ,EACxD,OAAAq2I,EAAkB,CAAC,EACZ,UAAY,CACjBA,EAAkB,EAAE,EACXG,IAAA,CAEb,CAEA,IAAItB,GAAU,CACZ,OAAQf,EAAc,OACtB,OAAQ,MACR,SAAU2B,EACV,WAAAC,EACA,KAAA3/J,EACA,QAAA4gE,EACA,GAAA6+F,EACA,OAAAK,EACA,UAAAC,EACA,MAAA1vK,GACA,OAAAw5D,EAAA,EAEK,OAAAi1G,EACT,CAEA,IAAIuB,GAAoB,aACpBC,IAAiB,CACnB,SAAU,CACR,WAAY,SAAoB5kG,EAAM,CAC7B,OAAAA,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAO,KAAOwgG,GAAkBxgG,CAAI,CACtE,EACA,WAAY,SAAoBA,EAAM,CAC7B,OAAAA,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAK,OAAO,CAAC,EAAIA,CACnD,CACF,EACA,QAAS,CACP,WAAYwgG,GACZ,WAAYD,EACd,EACA,MAAO,CACL,WAAYA,GACZ,WAAYA,EACd,CACF,EAEA,SAASsE,GAAUj7K,EAAK,CAClB,IAAAi3K,EAAYj3K,EAAI,QAAQ,GAAG,EAC/B,OAAOi3K,IAAc,GAAKj3K,EAAMA,EAAI,MAAM,EAAGi3K,CAAS,CACxD,CAEA,SAASiE,IAAc,CAGjB,IAAA7/G,EAAO,OAAO,SAAS,KACvB47G,EAAY57G,EAAK,QAAQ,GAAG,EAChC,OAAO47G,IAAc,GAAK,GAAK57G,EAAK,UAAU47G,EAAY,CAAC,CAC7D,CAEA,SAASkE,IAAa/kG,EAAM,CAC1B,OAAO,SAAS,KAAOA,CACzB,CAEA,SAASglG,GAAgBhlG,EAAM,CACtB,gBAAS,QAAQ6kG,GAAU,OAAO,SAAS,IAAI,EAAI,IAAM7kG,CAAI,CACtE,CAEA,SAASilG,IAAkBzoJ,EAAO,CAC5BA,IAAU,SACZA,EAAQ,IAGTm7C,IAAmG/X,GAAU,EAAK,EACnH,IAAIyiH,EAAgB,OAAO,QACFN,IAAiC,EAC1D,IAAIntG,EAASp4C,EACTkmJ,EAAwB9tG,EAAO,oBAC/B2sG,EAAsBmB,IAA0B,OAASd,GAAkBc,EAC3EwC,EAAkBtwG,EAAO,SACzBuwG,EAAWD,IAAoB,OAAS,QAAUA,EAClDrC,EAAWrmJ,EAAM,SAAWmkJ,GAAmBJ,GAAgB/jJ,EAAM,QAAQ,CAAC,EAAI,GAClF4oJ,EAAwBR,IAAeO,CAAQ,EAC/CE,EAAaD,EAAsB,WACnCE,EAAaF,EAAsB,WAEvC,SAAStC,GAAiB,CACpB9iG,OAAOslG,EAAWR,GAAA,CAAa,EAE/B,OAAAjC,IAAU7iG,GAAO0gG,GAAc1gG,GAAM6iG,CAAQ,GAC1C7B,GAAehhG,EAAI,CAC5B,CAEA,IAAIkjG,EAAoBhC,KAExB,SAASiC,EAAS5iH,GAAW,CAC3B9D,GAAS2mH,GAAS7iH,EAAS,EAE3B6iH,GAAQ,OAASf,EAAc,OAC/Ba,EAAkB,gBAAgBE,GAAQ,SAAUA,GAAQ,MAAM,CACpE,CAEA,IAAII,EAAe,GACf+B,EAAa,KAER,SAAAC,EAAqBh9J,GAAGC,GAAG,CAC3B,OAAAD,GAAE,WAAaC,GAAE,UAAYD,GAAE,SAAWC,GAAE,QAAUD,GAAE,OAASC,GAAE,IAC5E,CAEA,SAAS86J,GAAmB,CAC1B,IAAIvjG,GAAO8kG,KACPW,GAAcJ,EAAWrlG,EAAI,EAEjC,GAAIA,KAASylG,GAEXT,GAAgBS,EAAW,MACtB,CACL,IAAIj7K,GAAWs4K,IACX4C,GAAetC,GAAQ,SAGvB,GAFA,CAACI,GAAgBgC,EAAqBE,GAAcl7K,EAAQ,GAE5D+6K,IAAexE,GAAWv2K,EAAQ,EAAG,OAE5B+6K,EAAA,KACbjC,EAAU94K,EAAQ,CACpB,CACF,CAEA,SAAS84K,EAAU94K,GAAU,CAC3B,GAAIg5K,EACaA,EAAA,GACNL,QACJ,CACL,IAAIp5K,GAAS,MACbm5K,EAAkB,oBAAoB14K,GAAUT,GAAQw3K,EAAqB,SAAUkC,GAAI,CACrFA,GACON,EAAA,CACP,OAAAp5K,GACA,SAAAS,EAAA,CACD,EAEDk5K,EAAUl5K,EAAQ,CACpB,CACD,CACH,CACF,CAEA,SAASk5K,EAAUC,GAAc,CAC/B,IAAIC,GAAaR,GAAQ,SAIrBS,GAAU8B,EAAS,YAAY5E,GAAW6C,EAAU,CAAC,EACrDC,KAAY,KAAcA,GAAA,GAC9B,IAAIrpH,GAAYmrH,EAAS,YAAY5E,GAAW4C,EAAY,CAAC,EACzDnpH,KAAc,KAAgBA,GAAA,GAClC,IAAIh5B,GAAQqiJ,GAAUrpH,GAElBh5B,KACagiJ,EAAA,GACfO,EAAGviJ,EAAK,EAEZ,CAGA,IAAIw+C,EAAO8kG,KACPW,EAAcJ,EAAWrlG,CAAI,EAC7BA,IAASylG,GAAaT,GAAgBS,CAAW,EACrD,IAAIzB,EAAkBlB,IAClB6C,EAAW,CAAC5E,GAAWiD,CAAe,CAAC,EAE3C,SAASC,EAAWz5K,GAAU,CACxB,IAAAo7K,GAAU,SAAS,cAAc,MAAM,EACvC3gH,GAAO,GAEX,OAAI2gH,IAAWA,GAAQ,aAAa,MAAM,IACjC3gH,GAAA4/G,GAAU,OAAO,SAAS,IAAI,GAGhC5/G,GAAO,IAAMogH,EAAWxC,EAAW9B,GAAWv2K,EAAQ,CAAC,CAChE,CAES,SAAA8Z,EAAK07D,GAAMpnE,GAAO,CAEzB,IAAI7O,GAAS,OACTS,GAAWw2K,GAAehhG,GAAM,OAAW,OAAWojG,GAAQ,QAAQ,EAC1EF,EAAkB,oBAAoB14K,GAAUT,GAAQw3K,EAAqB,SAAUkC,GAAI,CACzF,GAAKA,GACDzjG,OAAO+gG,GAAWv2K,EAAQ,EAC1Bi7K,GAAcJ,EAAWxC,EAAW7iG,CAAI,EACxC6lG,GAAcf,GAAkBW,OAEpC,GAAII,GAAa,CAIF7lG,IACb+kG,IAAaU,EAAW,EACxB,IAAIvB,GAAYyB,EAAS,YAAY5E,GAAWqC,GAAQ,QAAQ,CAAC,EAC7D0C,GAAYH,EAAS,MAAM,EAAGzB,GAAY,CAAC,EAC/C4B,GAAU,KAAK9lG,CAAI,EACR2lG,EAAAG,GACF3C,EAAA,CACP,OAAAp5K,GACA,SAAAS,EAAA,CACD,OAGQ24K,IACX,CACD,CACH,CAES,SAAAj+F,EAAQlF,GAAMpnE,GAAO,CAE5B,IAAI7O,GAAS,UACTS,GAAWw2K,GAAehhG,GAAM,OAAW,OAAWojG,GAAQ,QAAQ,EAC1EF,EAAkB,oBAAoB14K,GAAUT,GAAQw3K,EAAqB,SAAUkC,GAAI,CACzF,GAAKA,GACDzjG,OAAO+gG,GAAWv2K,EAAQ,EAC1Bi7K,GAAcJ,EAAWxC,EAAW7iG,CAAI,EACxC6lG,GAAcf,GAAkBW,OAEhCI,KAIW7lG,IACbglG,GAAgBS,EAAW,GAG7B,IAAIvB,GAAYyB,EAAS,QAAQ5E,GAAWqC,GAAQ,QAAQ,CAAC,EACzDc,KAAc,KAAIyB,EAASzB,EAAS,EAAIlkG,GACnCmjG,EAAA,CACP,OAAAp5K,GACA,SAAAS,EAAA,CACD,GACF,CACH,CAEA,SAASu5K,EAAGhjK,GAAG,CAEbshK,EAAc,GAAGthK,EAAC,CACpB,CAEA,SAASqjK,GAAS,CAChBL,EAAG,EAAE,CACP,CAEA,SAASM,GAAY,CACnBN,EAAG,CAAC,CACN,CAEA,IAAIO,EAAgB,EAEpB,SAASC,GAAkB/iJ,GAAO,CACf8iJ,GAAA9iJ,GAEb8iJ,IAAkB,GAAK9iJ,KAAU,EAC5B,wBAAiBmjJ,GAAmBpB,CAAgB,EAClDe,IAAkB,GACpB,2BAAoBK,GAAmBpB,CAAgB,CAElE,CAEA,IAAIiB,GAAY,GAEhB,SAAS7vK,GAAMwsK,GAAQ,CACjBA,KAAW,SACJA,GAAA,IAGP,IAAAsD,GAAUvB,EAAkB,UAAU/B,EAAM,EAEhD,OAAKqD,KACHD,GAAkB,CAAC,EACPC,GAAA,IAGP,UAAY,CACjB,OAAIA,KACUA,GAAA,GACZD,GAAkB,EAAE,GAGfE,GAAQ,EAEnB,CAEA,SAASt2G,GAAOjgC,GAAU,CACpB,IAAAw2I,GAAWxB,EAAkB,eAAeh1I,EAAQ,EACxD,OAAAq2I,GAAkB,CAAC,EACZ,UAAY,CACjBA,GAAkB,EAAE,EACXG,IAAA,CAEb,CAEA,IAAItB,GAAU,CACZ,OAAQf,EAAc,OACtB,OAAQ,MACR,SAAU2B,EACV,WAAAC,EACA,KAAA3/J,EACA,QAAA4gE,EACA,GAAA6+F,EACA,OAAAK,EACA,UAAAC,EACA,MAAA1vK,GACA,OAAAw5D,EAAA,EAEK,OAAAi1G,EACT,CAEA,SAAS2C,GAAMhlK,EAAG+xF,EAAYkzE,EAAY,CACxC,OAAO,KAAK,IAAI,KAAK,IAAIjlK,EAAG+xF,CAAU,EAAGkzE,CAAU,CACrD,CAMA,SAASC,IAAoBzpJ,EAAO,CAC9BA,IAAU,SACZA,EAAQ,IAGV,IAAIo4C,EAASp4C,EACT+kJ,EAAsB3sG,EAAO,oBAC7BsxG,EAAwBtxG,EAAO,eAC/BuxG,EAAiBD,IAA0B,OAAS,CAAC,GAAG,EAAIA,EAC5DE,EAAsBxxG,EAAO,aAC7ByxG,EAAeD,IAAwB,OAAS,EAAIA,EACpDzD,EAAmB/tG,EAAO,UAC1BguG,EAAYD,IAAqB,OAAS,EAAIA,EAC9CO,EAAoBhC,KAExB,SAASiC,EAAS5iH,EAAW,CAC3B9D,GAAS2mH,EAAS7iH,CAAS,EAEnB6iH,EAAA,OAASA,EAAQ,QAAQ,OACjCF,EAAkB,gBAAgBE,EAAQ,SAAUA,EAAQ,MAAM,CACpE,CAEA,SAASH,GAAY,CACZ,YAAK,SAAS,SAAS,EAAE,EAAE,OAAO,EAAGL,CAAS,CACvD,CAEA,IAAIvsK,EAAQ0vK,GAAMM,EAAc,EAAGF,EAAe,OAAS,CAAC,EACxDj3K,EAAUi3K,EAAe,IAAI,SAAUlkC,EAAO,CAChD,OAAO,OAAOA,GAAU,SAAW++B,GAAe/+B,EAAO,OAAWghC,EAAA,CAAW,EAAIjC,GAAe/+B,EAAO,OAAWA,EAAM,KAAOghC,GAAW,EAC7I,EAEGgB,EAAalD,GAER,SAAAz8J,EAAK07D,EAAMpnE,EAAO,CAEzB,IAAI7O,EAAS,OACTS,EAAWw2K,GAAehhG,EAAMpnE,EAAOqqK,IAAaG,EAAQ,QAAQ,EACxEF,EAAkB,oBAAoB14K,EAAUT,EAAQw3K,EAAqB,SAAUkC,EAAI,CACzF,GAAKA,EACL,KAAIS,EAAYd,EAAQ,MACpBkD,EAAYpC,EAAY,EACxBqC,GAAcnD,EAAQ,QAAQ,MAAM,CAAC,EAErCmD,GAAY,OAASD,EACvBC,GAAY,OAAOD,EAAWC,GAAY,OAASD,EAAW97K,CAAQ,EAEtE+7K,GAAY,KAAK/7K,CAAQ,EAGlB24K,EAAA,CACP,OAAAp5K,EACA,SAAAS,EACA,MAAO87K,EACP,QAASC,EAAA,CACV,GACF,CACH,CAES,SAAArhG,EAAQlF,EAAMpnE,EAAO,CAE5B,IAAI7O,EAAS,UACTS,EAAWw2K,GAAehhG,EAAMpnE,EAAOqqK,IAAaG,EAAQ,QAAQ,EACxEF,EAAkB,oBAAoB14K,EAAUT,EAAQw3K,EAAqB,SAAUkC,EAAI,CACpFA,IACGL,EAAA,QAAQA,EAAQ,KAAK,EAAI54K,EACxB24K,EAAA,CACP,OAAAp5K,EACA,SAAAS,CAAA,CACD,GACF,CACH,CAEA,SAASu5K,EAAGhjK,EAAG,CACT,IAAAulK,EAAYP,GAAM3C,EAAQ,MAAQriK,EAAG,EAAGqiK,EAAQ,QAAQ,OAAS,CAAC,EAClEr5K,EAAS,MACTS,EAAW44K,EAAQ,QAAQkD,CAAS,EACxCpD,EAAkB,oBAAoB14K,EAAUT,EAAQw3K,EAAqB,SAAUkC,EAAI,CACrFA,EACON,EAAA,CACP,OAAAp5K,EACA,SAAAS,EACA,MAAO87K,CAAA,CACR,EAIQnD,GACX,CACD,CACH,CAEA,SAASiB,GAAS,CAChBL,EAAG,EAAE,CACP,CAEA,SAASM,GAAY,CACnBN,EAAG,CAAC,CACN,CAEA,SAASyC,EAAMzlK,EAAG,CACZ,IAAAulK,EAAYlD,EAAQ,MAAQriK,EAChC,OAAOulK,GAAa,GAAKA,EAAYlD,EAAQ,QAAQ,MACvD,CAEA,SAASzuK,EAAMwsK,EAAQ,CACrB,OAAIA,IAAW,SACJA,EAAA,IAGJ+B,EAAkB,UAAU/B,CAAM,CAC3C,CAEA,SAAShzG,EAAOjgC,EAAU,CACjB,OAAAg1I,EAAkB,eAAeh1I,CAAQ,CAClD,CAEA,IAAIk1I,EAAU,CACZ,OAAQl0K,EAAQ,OAChB,OAAQ,MACR,SAAUA,EAAQmH,CAAK,EACvB,MAAAA,EACA,QAAAnH,EACA,WAAA+0K,EACA,KAAA3/J,EACA,QAAA4gE,EACA,GAAA6+F,EACA,OAAAK,EACA,UAAAC,EACA,MAAAmC,EACA,MAAA7xK,EACA,OAAAw5D,CAAA,EAEK,OAAAi1G,CACT,qBCp5BAqD,IAAiB,MAAM,SAAW,SAAUxiK,EAAK,CAC/C,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAG,GAAK,gBAChD,ECFIwiK,GAAUj1I,IAKdk1I,GAAA,QAAiBC,GACjBD,GAAA,cAAuBlgG,GACvBkgG,GAAA,gBAAyBv/J,IACzBu/J,GAAA,yBAAkCE,GAClCF,GAAA,uBAAgCG,GAOhC,IAAIC,IAAc,IAAI,OAAO,CAG3B,UAOA,wGACF,EAAE,KAAK,GAAG,EAAG,GAAG,EAShB,SAAStgG,GAAOpI,EAAK3rE,EAAS,CAQ5B,QAPIid,EAAS,CAAE,EACX3U,EAAM,EACN1E,EAAQ,EACR2pE,EAAO,GACP+mG,EAAmBt0K,GAAWA,EAAQ,WAAa,IACnDwiG,GAEIA,EAAM6xE,IAAY,KAAK1oG,CAAG,IAAM,MAAM,CAC5C,IAAIp9D,EAAIi0F,EAAI,CAAC,EACT+xE,EAAU/xE,EAAI,CAAC,EACf7nE,EAAS6nE,EAAI,MAKjB,GAJAj1B,GAAQ5B,EAAI,MAAM/nE,EAAO+2B,CAAM,EAC/B/2B,EAAQ+2B,EAASpsB,EAAE,OAGfgmK,EAAS,CACXhnG,GAAQgnG,EAAQ,CAAC,EACjB,QACD,CAED,IAAIhkK,EAAOo7D,EAAI/nE,CAAK,EAChBhM,EAAS4qG,EAAI,CAAC,EACdvsG,EAAOusG,EAAI,CAAC,EACZxpC,EAAUwpC,EAAI,CAAC,EACflR,EAAQkR,EAAI,CAAC,EACb0xB,EAAW1xB,EAAI,CAAC,EAChBgyE,EAAWhyE,EAAI,CAAC,EAGhBj1B,IACFtwD,EAAO,KAAKswD,CAAI,EAChBA,EAAO,IAGT,IAAIknG,EAAU78K,GAAU,MAAQ2Y,GAAQ,MAAQA,IAAS3Y,EACrD88K,EAASxgD,IAAa,KAAOA,IAAa,IAC1CygD,EAAWzgD,IAAa,KAAOA,IAAa,IAC5CtgD,EAAY4uB,EAAI,CAAC,GAAK8xE,EACtBp5J,EAAU89C,GAAWs4B,EAEzBr0E,EAAO,KAAK,CACV,KAAMhnB,GAAQqS,IACd,OAAQ1Q,GAAU,GAClB,UAAWg8E,EACX,SAAU+gG,EACV,OAAQD,EACR,QAASD,EACT,SAAU,CAAC,CAACD,EACZ,QAASt5J,EAAU05J,IAAY15J,CAAO,EAAKs5J,EAAW,KAAO,KAAOK,GAAajhG,CAAS,EAAI,KACpG,CAAK,CACF,CAGD,OAAIhwE,EAAQ+nE,EAAI,SACd4B,GAAQ5B,EAAI,OAAO/nE,CAAK,GAItB2pE,GACFtwD,EAAO,KAAKswD,CAAI,EAGXtwD,CACT,CASA,SAASvI,IAASi3D,EAAK3rE,EAAS,CAC9B,OAAOm0K,GAAiBpgG,GAAMpI,EAAK3rE,CAAO,EAAGA,CAAO,CACtD,CAQA,SAAS80K,IAA0BnpG,EAAK,CACtC,OAAO,UAAUA,CAAG,EAAE,QAAQ,UAAW,SAAU9/D,EAAG,CACpD,MAAO,IAAMA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAa,CAC3D,CAAG,CACH,CAQA,SAASkpK,IAAgBppG,EAAK,CAC5B,OAAO,UAAUA,CAAG,EAAE,QAAQ,QAAS,SAAU9/D,EAAG,CAClD,MAAO,IAAMA,EAAE,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,YAAa,CAC3D,CAAG,CACH,CAKA,SAASsoK,GAAkBl3J,EAAQjd,EAAS,CAK1C,QAHIiU,EAAU,IAAI,MAAMgJ,EAAO,MAAM,EAG5BziB,EAAI,EAAGA,EAAIyiB,EAAO,OAAQziB,IAC7B,OAAOyiB,EAAOziB,CAAC,GAAM,WACvByZ,EAAQzZ,CAAC,EAAI,IAAI,OAAO,OAASyiB,EAAOziB,CAAC,EAAE,QAAU,KAAM2oG,GAAMnjG,CAAO,CAAC,GAI7E,OAAO,SAAUkP,EAAK0hB,EAAM,CAM1B,QALI28C,EAAO,GACProD,EAAOhW,GAAO,CAAE,EAChBlP,EAAU4wB,GAAQ,CAAE,EACpBu7C,EAASnsE,EAAQ,OAAS80K,IAA2B,mBAEhDt6K,EAAI,EAAGA,EAAIyiB,EAAO,OAAQziB,IAAK,CACtC,IAAI0D,EAAQ+e,EAAOziB,CAAC,EAEpB,GAAI,OAAO0D,GAAU,SAAU,CAC7BqvE,GAAQrvE,EAER,QACD,CAED,IAAIvH,EAAQuuB,EAAKhnB,EAAM,IAAI,EACvB82K,EAEJ,GAAIr+K,GAAS,KACX,GAAIuH,EAAM,SAAU,CAEdA,EAAM,UACRqvE,GAAQrvE,EAAM,QAGhB,QACV,KACU,OAAM,IAAI,UAAU,aAAeA,EAAM,KAAO,iBAAiB,EAIrE,GAAI81K,GAAQr9K,CAAK,EAAG,CAClB,GAAI,CAACuH,EAAM,OACT,MAAM,IAAI,UAAU,aAAeA,EAAM,KAAO,kCAAoC,KAAK,UAAUvH,CAAK,EAAI,GAAG,EAGjH,GAAIA,EAAM,SAAW,EAAG,CACtB,GAAIuH,EAAM,SACR,SAEA,MAAM,IAAI,UAAU,aAAeA,EAAM,KAAO,mBAAmB,CAEtE,CAED,QAAS0P,EAAI,EAAGA,EAAIjX,EAAM,OAAQiX,IAAK,CAGrC,GAFAonK,EAAU7oG,EAAOx1E,EAAMiX,CAAC,CAAC,EAErB,CAACqG,EAAQzZ,CAAC,EAAE,KAAKw6K,CAAO,EAC1B,MAAM,IAAI,UAAU,iBAAmB92K,EAAM,KAAO,eAAiBA,EAAM,QAAU,oBAAsB,KAAK,UAAU82K,CAAO,EAAI,GAAG,EAG1IznG,IAAS3/D,IAAM,EAAI1P,EAAM,OAASA,EAAM,WAAa82K,CACtD,CAED,QACD,CAID,GAFAA,EAAU92K,EAAM,SAAW62K,IAAep+K,CAAK,EAAIw1E,EAAOx1E,CAAK,EAE3D,CAACsd,EAAQzZ,CAAC,EAAE,KAAKw6K,CAAO,EAC1B,MAAM,IAAI,UAAU,aAAe92K,EAAM,KAAO,eAAiBA,EAAM,QAAU,oBAAsB82K,EAAU,GAAG,EAGtHznG,GAAQrvE,EAAM,OAAS82K,CACxB,CAED,OAAOznG,CACR,CACH,CAQA,SAASsnG,GAAclpG,EAAK,CAC1B,OAAOA,EAAI,QAAQ,6BAA8B,MAAM,CACzD,CAQA,SAASipG,IAAatjF,EAAO,CAC3B,OAAOA,EAAM,QAAQ,gBAAiB,MAAM,CAC9C,CASA,SAAS2jF,GAAYjlI,EAAIp3B,EAAM,CAC7B,OAAAo3B,EAAG,KAAOp3B,EACHo3B,CACT,CAQA,SAASmzD,GAAOnjG,EAAS,CACvB,OAAOA,GAAWA,EAAQ,UAAY,GAAK,GAC7C,CASA,SAASk1K,IAAgB3nG,EAAM30D,EAAM,CAEnC,IAAIN,EAASi1D,EAAK,OAAO,MAAM,WAAW,EAE1C,GAAIj1D,EACF,QAAS9d,EAAI,EAAGA,EAAI8d,EAAO,OAAQ9d,IACjCoe,EAAK,KAAK,CACR,KAAMpe,EACN,OAAQ,KACR,UAAW,KACX,SAAU,GACV,OAAQ,GACR,QAAS,GACT,SAAU,GACV,QAAS,IACjB,CAAO,EAIL,OAAOy6K,GAAW1nG,EAAM30D,CAAI,CAC9B,CAUA,SAASu8J,IAAe5nG,EAAM30D,EAAM5Y,EAAS,CAG3C,QAFIwvB,EAAQ,CAAE,EAELh1B,EAAI,EAAGA,EAAI+yE,EAAK,OAAQ/yE,IAC/Bg1B,EAAM,KAAK0kJ,GAAa3mG,EAAK/yE,CAAC,EAAGoe,EAAM5Y,CAAO,EAAE,MAAM,EAGxD,IAAIwmJ,EAAS,IAAI,OAAO,MAAQh3H,EAAM,KAAK,GAAG,EAAI,IAAK2zE,GAAMnjG,CAAO,CAAC,EAErE,OAAOi1K,GAAWzuB,EAAQ5tI,CAAI,CAChC,CAUA,SAASw8J,IAAgB7nG,EAAM30D,EAAM5Y,EAAS,CAC5C,OAAOo0K,GAAergG,GAAMxG,EAAMvtE,CAAO,EAAG4Y,EAAM5Y,CAAO,CAC3D,CAUA,SAASo0K,GAAgBn3J,EAAQrE,EAAM5Y,EAAS,CACzCg0K,GAAQp7J,CAAI,IACf5Y,EAAkC4Y,GAAQ5Y,EAC1C4Y,EAAO,CAAE,GAGX5Y,EAAUA,GAAW,CAAE,EAOvB,QALI4iG,EAAS5iG,EAAQ,OACjB0vB,EAAM1vB,EAAQ,MAAQ,GACtBq1K,EAAQ,GAGH76K,EAAI,EAAGA,EAAIyiB,EAAO,OAAQziB,IAAK,CACtC,IAAI0D,EAAQ+e,EAAOziB,CAAC,EAEpB,GAAI,OAAO0D,GAAU,SACnBm3K,GAASR,GAAa32K,CAAK,MACtB,CACL,IAAItG,EAASi9K,GAAa32K,EAAM,MAAM,EAClC86D,EAAU,MAAQ96D,EAAM,QAAU,IAEtC0a,EAAK,KAAK1a,CAAK,EAEXA,EAAM,SACR86D,GAAW,MAAQphE,EAASohE,EAAU,MAGpC96D,EAAM,SACHA,EAAM,QAGT86D,EAAUphE,EAAS,IAAMohE,EAAU,KAFnCA,EAAU,MAAQphE,EAAS,IAAMohE,EAAU,MAK7CA,EAAUphE,EAAS,IAAMohE,EAAU,IAGrCq8G,GAASr8G,CACV,CACF,CAED,IAAI4a,EAAYihG,GAAa70K,EAAQ,WAAa,GAAG,EACjDs1K,EAAoBD,EAAM,MAAM,CAACzhG,EAAU,MAAM,IAAMA,EAM3D,OAAKgvB,IACHyyE,GAASC,EAAoBD,EAAM,MAAM,EAAG,CAACzhG,EAAU,MAAM,EAAIyhG,GAAS,MAAQzhG,EAAY,WAG5FlkD,EACF2lJ,GAAS,IAITA,GAASzyE,GAAU0yE,EAAoB,GAAK,MAAQ1hG,EAAY,MAG3DqhG,GAAW,IAAI,OAAO,IAAMI,EAAOlyE,GAAMnjG,CAAO,CAAC,EAAG4Y,CAAI,CACjE,CAcA,SAASs7J,GAAc3mG,EAAM30D,EAAM5Y,EAAS,CAQ1C,OAPKg0K,GAAQp7J,CAAI,IACf5Y,EAAkC4Y,GAAQ5Y,EAC1C4Y,EAAO,CAAE,GAGX5Y,EAAUA,GAAW,CAAE,EAEnButE,aAAgB,OACX2nG,IAAe3nG,EAA6B30D,CAAM,EAGvDo7J,GAAQzmG,CAAI,EACP4nG,IAAqC5nG,EAA8B30D,EAAO5Y,CAAO,EAGnFo1K,IAAsC7nG,EAA8B30D,EAAO5Y,CAAO,CAC3F,sCC7ZA,IAAIu1K,GAAwB,WACxBC,GAAiB,OAAO,WAAe,IAE3C,WAAa,OAAO,OAAW,IAAc,OAC3C,OAAO,OAAW,IAAc,OAChC,GAEF,SAASC,KAAc,CACrB,IAAIntK,EAAM,uBACV,OAAOktK,GAAeltK,CAAG,GAAKktK,GAAeltK,CAAG,GAAK,GAAK,CAC5D,CAIA,SAASotK,IAASh2K,EAAGC,EAAG,CACtB,OAAID,IAAMC,EACDD,IAAM,GAAK,EAAIA,IAAM,EAAIC,EAGzBD,IAAMA,GAAKC,IAAMA,CAE5B,CAEA,SAASg2K,IAAmBh/K,EAAO,CACjC,IAAIoyB,EAAW,GACR,OACL,GAAI,SAAY5P,EAAS,CACvB4P,EAAS,KAAK5P,CAAO,CACvB,EACA,IAAK,SAAaA,EAAS,CACd4P,IAAS,OAAO,SAAUoW,EAAG,CACtC,OAAOA,IAAMhmB,CAAA,CACd,CACH,EACA,IAAK,UAAe,CACX,OAAAxiB,CACT,EACA,IAAK,SAAa68F,EAAUoiF,EAAa,CAC/Bj/K,EAAA68F,EACCzqE,EAAA,QAAQ,SAAU5P,EAAS,CAC3B,OAAAA,EAAQxiB,EAAOi/K,CAAW,EAClC,CACH,EAEJ,CAEA,SAASC,IAAUt9G,EAAU,CAC3B,OAAO,MAAM,QAAQA,CAAQ,EAAIA,EAAS,CAAC,EAAIA,CACjD,CAEA,SAASu9G,IAAmBvzK,EAAcwzK,EAAsB,CAC9D,IAAIC,EAAuBC,EAEvBC,EAAc,0BAA4BT,IAAA,EAAgB,KAE1DU,WAAkCjlH,EAAkB,CACtD3F,GAAe4qH,EAAUjlH,CAAgB,EAEzC,SAASilH,GAAW,CAGlB,QAFIzjH,EAEK1D,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC1EpI,EAAAoI,CAAI,EAAI,UAAUA,CAAI,EAGrB,OAAAkuC,EAAAxB,EAAiB,KAAK,MAAMA,EAAkB,CAAC,IAAI,EAAE,OAAO90C,CAAI,CAAC,GAAK,KAC9Es2C,EAAM,QAAUijH,IAAmBjjH,EAAM,MAAM,KAAK,EAC7CA,CACT,CAEA,IAAIvB,EAASglH,EAAS,UAEf,OAAAhlH,EAAA,gBAAkB,UAA2B,CAC9C,IAAAZ,EAEJ,OAAOA,EAAO,GAAIA,EAAK2lH,CAAW,EAAI,KAAK,QAAS3lH,CAAA,EAG/CY,EAAA,0BAA4B,SAAmCzD,EAAW,CAC/E,GAAI,KAAK,MAAM,QAAUA,EAAU,MAAO,CACpC,IAAA0oH,EAAW,KAAK,MAAM,MACtB5iF,EAAW9lC,EAAU,MACrBkoH,EAEAF,IAASU,EAAU5iF,CAAQ,EACfoiF,EAAA,GAEdA,EAAc,OAAOG,GAAyB,WAAaA,EAAqBK,EAAU5iF,CAAQ,EAAI+hF,GAMvFK,GAAA,EAEXA,IAAgB,GAClB,KAAK,QAAQ,IAAIloH,EAAU,MAAOkoH,CAAW,EAGnD,GAGKzkH,EAAA,OAAS,UAAkB,CAChC,OAAO,KAAK,MAAM,UAGbglH,CAAA,EACP5kH,GAAM,SAAS,EAER4kH,EAAA,mBAAqBH,EAAwB,GAAIA,EAAsBE,CAAW,EAAI5mH,EAAU,OAAO,WAAY0mH,GAExH,IAAAK,WAAkCC,EAAmB,CACvD/qH,GAAe8qH,EAAUC,CAAiB,EAE1C,SAASD,GAAW,CAGlB,QAFIr+G,EAEK3F,EAAQ,UAAU,OAAQj2C,EAAO,IAAI,MAAMi2C,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IAC/El2C,EAAAk2C,CAAK,EAAI,UAAUA,CAAK,EAGtB,OAAA0F,EAAAs+G,EAAkB,KAAK,MAAMA,EAAmB,CAAC,IAAI,EAAE,OAAOl6J,CAAI,CAAC,GAAK,KACjF47C,EAAO,aAAe,OACtBA,EAAO,MAAQ,CACb,MAAOA,EAAO,SAAS,GAGlBA,EAAA,SAAW,SAAUw7B,EAAUoiF,EAAa,CAC7C,IAAAW,EAAev+G,EAAO,aAAe,EAEpCu+G,EAAeX,GAClB59G,EAAO,SAAS,CACd,MAAOA,EAAO,SAAS,EACxB,CACH,EAGKA,CACT,CAEA,IAAIw+G,EAAUH,EAAS,UAEf,OAAAG,EAAA,0BAA4B,SAAmC9oH,EAAW,CAChF,IAAI6oH,EAAe7oH,EAAU,aAC7B,KAAK,aAA6C6oH,GAAwBhB,EACxE,EAGIiB,EAAA,kBAAoB,UAA6B,CACnD,KAAK,QAAQN,CAAW,GAC1B,KAAK,QAAQA,CAAW,EAAE,GAAG,KAAK,QAAQ,EAGxC,IAAAK,EAAe,KAAK,MAAM,aAC9B,KAAK,aAA6CA,GAAwBhB,EACxE,EAGIiB,EAAA,qBAAuB,UAAgC,CACzD,KAAK,QAAQN,CAAW,GAC1B,KAAK,QAAQA,CAAW,EAAE,IAAI,KAAK,QAAQ,CAC7C,EAGMM,EAAA,SAAW,UAAoB,CACjC,YAAK,QAAQN,CAAW,EACnB,KAAK,QAAQA,CAAW,EAAE,IAAI,EAE9B3zK,CACT,EAGMi0K,EAAA,OAAS,UAAkB,CACjC,OAAOX,IAAU,KAAK,MAAM,QAAQ,EAAE,KAAK,MAAM,KAAK,GAGjDQ,CAAA,EACP9kH,GAAM,SAAS,EAER,OAAA8kH,EAAA,cAAgBJ,EAAwB,GAAIA,EAAsBC,CAAW,EAAI5mH,EAAU,OAAQ2mH,GACrG,CACL,SAAAE,EACA,SAAAE,CAAA,CAEJ,CAGA,IAAI/7F,IAAgB/oB,GAAM,eAAiBukH,IAIvCW,GAAqB,SAA4BxgL,EAAM,CACzD,IAAI8c,EAAUunE,MACdvnE,SAAQ,YAAc9c,EACf8c,CACT,EAEI2jK,MAAiD,gBAAgB,EAEjE3jK,MAA0C,QAAQ,EAMlD4jK,YAAgCzlH,EAAkB,CACpD3F,GAAeorH,EAAQzlH,CAAgB,EAEvCylH,EAAO,iBAAmB,SAA0BvJ,EAAU,CACrD,OACL,KAAM,IACN,IAAK,IACL,OAAQ,CAAC,EACT,QAASA,IAAa,IACxB,EAGF,SAASuJ,EAAO5sJ,EAAO,CACjB,IAAA2oC,EAEJ,OAAAA,EAAQxB,EAAiB,KAAK,KAAMnnC,CAAK,GAAK,KAC9C2oC,EAAM,MAAQ,CACZ,SAAU3oC,EAAM,QAAQ,UAO1B2oC,EAAM,WAAa,GACnBA,EAAM,iBAAmB,KAEpB3oC,EAAM,gBACT2oC,EAAM,SAAW3oC,EAAM,QAAQ,OAAO,SAAUhyB,EAAU,CACxD26D,EAAM,iBAAmB36D,CAAA,CAC1B,GAGI26D,CACT,CAEA,IAAIvB,EAASwlH,EAAO,UAEb,OAAAxlH,EAAA,kBAAoB,UAA6B,CACtD,IAAI6G,EAAS,KAEb,KAAK,WAAa,GAEd,KAAK,UAGP,KAAK,SAAS,EAGX,KAAK,MAAM,gBACd,KAAK,SAAW,KAAK,MAAM,QAAQ,OAAO,SAAUjgE,EAAU,CACxDigE,EAAO,YACTA,EAAO,SAAS,CACd,SAAAjgE,CAAA,CACD,CACH,CACD,GAGC,KAAK,kBACP,KAAK,SAAS,CACZ,SAAU,KAAK,iBAChB,CACH,EAGKo5D,EAAA,qBAAuB,UAAgC,CACxD,KAAK,WACP,KAAK,SAAS,EACd,KAAK,WAAa,GAClB,KAAK,iBAAmB,KAC1B,EAGKA,EAAA,OAAS,UAAkB,CACZ,OAAAI,GAAM,cAAcx+C,GAAQ,SAAU,CACxD,MAAO,CACL,QAAS,KAAK,MAAM,QACpB,SAAU,KAAK,MAAM,SACrB,MAAO4jK,EAAO,iBAAiB,KAAK,MAAM,SAAS,QAAQ,EAC3D,cAAe,KAAK,MAAM,aAC5B,CACc,EAAAplH,GAAM,cAAcmlH,GAAe,SAAU,CAC3D,SAAU,KAAK,MAAM,UAAY,KACjC,MAAO,KAAK,MAAM,OACnB,EAAC,GAGGC,CACT,EAAEplH,GAAM,SAAS,EA2CfA,GAAM,UA0CNA,GAAM,UA4HR,IAAIqlH,GAAU,GACVC,IAAe,IACfC,GAAe,EAEnB,SAASC,IAAcxpG,EAAMvtE,EAAS,CACpC,IAAIg3K,EAAW,GAAKh3K,EAAQ,IAAMA,EAAQ,OAASA,EAAQ,UACvDi3K,EAAYL,GAAQI,CAAQ,IAAMJ,GAAQI,CAAQ,EAAI,IAC1D,GAAIC,EAAU1pG,CAAI,EAAG,OAAO0pG,EAAU1pG,CAAI,EAC1C,IAAI30D,EAAO,GACP4tI,EAAS0tB,IAAa3mG,EAAM30D,EAAM5Y,CAAO,EACzC1F,EAAS,CACX,OAAAksJ,EACA,KAAA5tI,CAAA,EAGF,OAAIk+J,GAAeD,MACjBI,EAAU1pG,CAAI,EAAIjzE,EAClBw8K,MAGKx8K,CACT,CAMA,SAAS48K,GAAU9J,EAAUptK,EAAS,CAChCA,IAAY,SACdA,EAAU,KAGR,OAAOA,GAAY,UAAY,MAAM,QAAQA,CAAO,KAC5CA,EAAA,CACR,KAAMA,CAAA,GAIN,IAAA2qH,EAAW3qH,EACXutE,EAAOo9C,EAAS,KAChBwsD,EAAiBxsD,EAAS,MAC1BysD,EAAQD,IAAmB,OAAS,GAAQA,EAC5CE,EAAkB1sD,EAAS,OAC3B/nB,EAASy0E,IAAoB,OAAS,GAAQA,EAC9CC,EAAqB3sD,EAAS,UAC9B4sD,EAAYD,IAAuB,OAAS,GAAQA,EACpDE,EAAQ,GAAG,OAAOjqG,CAAI,EAC1B,OAAOiqG,EAAM,OAAO,SAAUl7J,EAASixD,EAAM,CACvC,IAACA,GAAQA,IAAS,GAAW,YAC7B,GAAAjxD,EAAgB,OAAAA,EAEhB,IAAAm7J,EAAeV,IAAcxpG,EAAM,CACrC,IAAK6pG,EACL,OAAAx0E,EACA,UAAA20E,CAAA,CACD,EACG/wB,EAASixB,EAAa,OACtB7+J,EAAO6+J,EAAa,KAEpBt9K,EAAQqsJ,EAAO,KAAK4mB,CAAQ,EAChC,GAAI,CAACjzK,EAAc,YACnB,IAAIhD,EAAMgD,EAAM,CAAC,EACbH,EAASG,EAAM,MAAM,CAAC,EACtBu9K,EAAUtK,IAAaj2K,EAC3B,OAAIigL,GAAS,CAACM,EAAgB,KACvB,CACL,KAAMnqG,EAEN,IAAKA,IAAS,KAAOp2E,IAAQ,GAAK,IAAMA,EAExC,QAAAugL,EAEA,OAAQ9+J,EAAK,OAAO,SAAU++J,EAAMrvK,EAAK1E,EAAO,CAC9C,OAAA+zK,EAAKrvK,EAAI,IAAI,EAAItO,EAAO4J,CAAK,EACtB+zK,CACT,EAAG,EAAE,IAEN,IAAI,CACT,CAEA,SAASC,IAAgBr/G,EAAU,CACjC,OAAOhH,GAAM,SAAS,MAAMgH,CAAQ,IAAM,CAC5C,CAYI,IAAAs/G,YAA+B3mH,EAAkB,CACnD3F,GAAessH,EAAO3mH,CAAgB,EAEtC,SAAS2mH,GAAQ,CACf,OAAO3mH,EAAiB,MAAM,KAAM,SAAS,GAAK,IACpD,CAEA,IAAIC,EAAS0mH,EAAM,UAEZ,OAAA1mH,EAAA,OAAS,UAAkB,CAChC,IAAIuB,EAAQ,KAEZ,UAA0B,cAAc3/C,GAAQ,SAAU,KAAM,SAAU+kK,EAAW,CAClFA,GAAwH3qH,GAAU,EAAK,EACxI,IAAIp1D,EAAW26D,EAAM,MAAM,UAAYolH,EAAU,SAC7C39K,EAAQu4D,EAAM,MAAM,cAAgBA,EAAM,MAAM,cAClDA,EAAM,MAAM,KAAOwkH,GAAUn/K,EAAS,SAAU26D,EAAM,KAAK,EAAIolH,EAAU,MAEvE/tJ,EAAQigC,GAAS,CAAC,EAAG8tH,EAAW,CAClC,SAAA//K,EACA,MAAAoC,CAAA,CACD,EAEGi3D,EAAcsB,EAAM,MACpB6F,EAAWnH,EAAY,SACvB+lB,EAAY/lB,EAAY,UACxBloD,EAASkoD,EAAY,OAGzB,OAAI,MAAM,QAAQmH,CAAQ,GAAKq/G,IAAgBr/G,CAAQ,IAC1CA,EAAA,MAGOhH,GAAM,cAAcx+C,GAAQ,SAAU,CACxD,MAAOgX,CACT,EAAGA,EAAM,MAAQwuC,EAAW,OAAOA,GAAa,WAA0GA,EAASxuC,CAAK,EAAIwuC,EAAW4e,EAA+B5lB,GAAA,cAAc4lB,EAAWptD,CAAK,EAAI7gB,EAASA,EAAO6gB,CAAK,EAAI,KAAO,OAAOwuC,GAAa,WAA0GA,EAASxuC,CAAK,EAAI,IAAI,EAC7a,GAGI8tJ,CACT,EAAEtmH,GAAM,SAAS,EA8BjB,SAASu8G,GAAgBvgG,EAAM,CAC7B,OAAOA,EAAK,OAAO,CAAC,IAAM,IAAMA,EAAO,IAAMA,CAC/C,CAEA,SAASwqG,IAAY3H,EAAUr4K,EAAU,CACvC,OAAKq4K,EACEpmH,GAAS,CAAC,EAAGjyD,EAAU,CAC5B,SAAU+1K,GAAgBsC,CAAQ,EAAIr4K,EAAS,SAChD,EAHqBA,CAIxB,CAEA,SAASk2K,IAAcmC,EAAUr4K,EAAU,CACzC,GAAI,CAACq4K,EAAiB,OAAAr4K,EAClB,IAAAulB,EAAOwwJ,GAAgBsC,CAAQ,EACnC,OAAIr4K,EAAS,SAAS,QAAQulB,CAAI,IAAM,EAAUvlB,EAC3CiyD,GAAS,CAAC,EAAGjyD,EAAU,CAC5B,SAAUA,EAAS,SAAS,OAAOulB,EAAK,MAAM,EAC/C,CACH,CAEA,SAAS06J,GAAUjgL,EAAU,CAC3B,OAAO,OAAOA,GAAa,SAAWA,EAAWu2K,GAAWv2K,CAAQ,CACtE,CAEA,SAASkgL,GAAcC,EAAY,CACjC,OAAO,UAAY,CAC4F/qH,GAAU,EAAK,EAEhI,CAEA,SAASuL,IAAO,CAAC,CAoFfnH,GAAM,UAkBJ,IAAA4mH,YAAgCjnH,EAAkB,CACpD3F,GAAe4sH,EAAQjnH,CAAgB,EAEvC,SAASinH,GAAS,CAChB,OAAOjnH,EAAiB,MAAM,KAAM,SAAS,GAAK,IACpD,CAEA,IAAIC,EAASgnH,EAAO,UAEb,OAAAhnH,EAAA,OAAS,UAAkB,CAChC,IAAIuB,EAAQ,KAEZ,UAA0B,cAAc3/C,GAAQ,SAAU,KAAM,SAAUA,EAAS,CAChFA,GAAuHo6C,GAAU,EAAK,EACvI,IAAIp1D,EAAW26D,EAAM,MAAM,UAAY3/C,EAAQ,SAC3C1c,EAAS8D,EAKbo3D,UAAM,SAAS,QAAQmB,EAAM,MAAM,SAAU,SAAU+F,EAAO,CAC5D,GAAIt+D,GAAS,MAA2Bo3D,GAAA,eAAekH,CAAK,EAAG,CACnDpiE,EAAAoiE,EACV,IAAI8U,EAAO9U,EAAM,MAAM,MAAQA,EAAM,MAAM,KACnCt+D,EAAAozE,EAAO2pG,GAAUn/K,EAAS,SAAUiyD,GAAS,GAAIyO,EAAM,MAAO,CACpE,KAAA8U,CAAA,CACD,CAAC,EAAIx6D,EAAQ,KAChB,EACD,EACM5Y,EAA2Bo3D,GAAA,aAAal7D,EAAS,CACtD,SAAA0B,EACA,cAAeoC,CAChB,GAAI,KACN,GAGIg+K,CACT,EAAE5mH,GAAM,SAAS,EAkBjB,SAAS6mH,GAAWnqH,EAAW,CAC7B,IAAIoqH,EAAc,eAAiBpqH,EAAU,aAAeA,EAAU,MAAQ,IAE1E1tB,EAAI,SAAWxW,EAAO,CACpB,IAAAuuJ,EAAsBvuJ,EAAM,oBAC5BwuJ,EAAiBxsH,GAA8BhiC,EAAO,CAAC,qBAAqB,CAAC,EAEjF,UAA0B,cAAchX,GAAQ,SAAU,KAAM,SAAUA,EAAS,CAChFA,UAAsIo6C,GAAU,EAAK,KAC5H,cAAcc,EAAWjE,GAAS,CAAC,EAAGuuH,EAAgBxlK,EAAS,CACvF,IAAKulK,CACN,EAAC,EACH,GAGH,OAAA/3I,EAAE,YAAc83I,EAChB93I,EAAE,iBAAmB0tB,EAQduqH,GAAaj4I,EAAG0tB,CAAS,CAClC,CAEA,IAAIwsB,IAAalpB,GAAM,WACvB,SAASknH,KAAa,CAKpB,OAAOh+F,IAAWi8F,EAAc,CAClC,CC51BEnlH,GAAM,UA6CNA,GAAM,UAeR,IAAImnH,GAAoB,SAA2B5mJ,EAAI08I,EAAiB,CACtE,OAAO,OAAO18I,GAAO,WAAaA,EAAG08I,CAAe,EAAI18I,CAC1D,EACI6mJ,GAAsB,SAA6B7mJ,EAAI08I,EAAiB,CACnE,cAAO18I,GAAO,SAAWy8I,GAAez8I,EAAI,KAAM,KAAM08I,CAAe,EAAI18I,CACpF,EAEI8mJ,GAAiB,SAAwBr4I,EAAG,CACvC,OAAAA,CACT,EAEIi6C,GAAajpB,GAAM,WAEnB,OAAOipB,GAAe,MACXA,GAAAo+F,IAGf,SAASt+G,IAAgB9jE,EAAO,CACvB,OAAC,EAAEA,EAAM,SAAWA,EAAM,QAAUA,EAAM,SAAWA,EAAM,SACpE,CAEA,IAAIqiL,IAAar+F,GAAW,SAAUjqB,EAAMuoH,EAAc,CACxD,IAAI31F,EAAW5yB,EAAK,SAChBwoH,EAAWxoH,EAAK,SAChBq6G,EAAWr6G,EAAK,QAChB07D,EAAOlgE,GAA8BwE,EAAM,CAAC,WAAY,WAAY,SAAS,CAAC,EAE9En6D,EAAS61H,EAAK,OAEdliG,EAAQigC,GAAS,CAAC,EAAGiiE,EAAM,CAC7B,QAAS,SAAiBz1H,EAAO,CAC3B,IACEo0K,GAAUA,EAASp0K,CAAK,QACrB0rB,EAAI,CACX,MAAA1rB,EAAM,eAAe,EACf0rB,CACR,CAEI,CAAC1rB,EAAM,kBACXA,EAAM,SAAW,IACjB,CAACJ,GAAUA,IAAW,UACtB,CAACkkE,IAAgB9jE,CAAK,IAElBA,EAAM,eAAe,EACZuiL,IAEf,EACD,EAGD,OAAIH,KAAmBp+F,GACrBzwD,EAAM,IAAM+uJ,GAAgB31F,EAE5Bp5D,EAAM,IAAMo5D,EAKM5xB,GAAM,cAAc,IAAKxnC,CAAK,CACpD,CAAC,EAUGivJ,GAAOx+F,GAAW,SAAUxb,EAAO85G,EAAc,CAC/C,IAAAG,EAAkBj6G,EAAM,UACxBmY,EAAY8hG,IAAoB,OAASJ,IAAaI,EACtDxmG,EAAUzT,EAAM,QAChBltC,EAAKktC,EAAM,GACXmkB,EAAWnkB,EAAM,SACjBitD,EAAOlgE,GAA8BiT,EAAO,CAAC,YAAa,UAAW,KAAM,UAAU,CAAC,EAE1F,UAA0B,cAAck6G,GAAgB,SAAU,KAAM,SAAUnmK,EAAS,CACxFA,GAAqHo6C,GAAU,EAAK,EACrI,IAAIwjH,EAAU59J,EAAQ,QAClBhb,EAAW4gL,GAAoBD,GAAkB5mJ,EAAI/e,EAAQ,QAAQ,EAAGA,EAAQ,QAAQ,EACxFy/C,EAAOz6D,EAAW44K,EAAQ,WAAW54K,CAAQ,EAAI,GAEjDgyB,EAAQigC,GAAS,CAAC,EAAGiiE,EAAM,CAC7B,KAAAz5D,EACA,SAAU,UAAoB,CAC5B,IAAIz6D,EAAW2gL,GAAkB5mJ,EAAI/e,EAAQ,QAAQ,EACjDomK,EAAwB7K,GAAWv7J,EAAQ,QAAQ,IAAMu7J,GAAWqK,GAAoB5gL,CAAQ,CAAC,EACjG+D,EAAS22E,GAAW0mG,EAAwBxI,EAAQ,QAAUA,EAAQ,KAC1E70K,EAAO/D,CAAQ,CACjB,EACD,EAGD,OAAI6gL,KAAmBp+F,GACrBzwD,EAAM,IAAM+uJ,GAAgB31F,EAE5Bp5D,EAAM,SAAWo5D,EAGC5xB,GAAM,cAAc4lB,EAAWptD,CAAK,EACzD,CACH,CAAC,EAiBGqvJ,GAAmB,SAAwB74I,EAAG,CACzC,OAAAA,CACT,EAEI84I,GAAe9nH,GAAM,WAErB,OAAO8nH,GAAiB,MACXA,GAAAD,IAGjB,SAASE,KAAiB,CACxB,QAAStqH,EAAO,UAAU,OAAQwsB,EAAa,IAAI,MAAMxsB,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC1Eg3D,EAAAh3D,CAAI,EAAI,UAAUA,CAAI,EAG5B,OAAAg3D,EAAW,OAAO,SAAUhhF,EAAG,CAC7B,OAAAA,CAAA,CACR,EAAE,KAAK,GAAG,CACb,CAMc6+K,GAAa,SAAU9oH,EAAMuoH,EAAc,CACvD,IAAIS,EAAmBhpH,EAAK,cAAc,EACtCipH,EAAcD,IAAqB,OAAS,OAASA,EACrDE,EAAuBlpH,EAAK,gBAC5B+uG,EAAkBma,IAAyB,OAAS,SAAWA,EAC/DC,EAAcnpH,EAAK,YACnBopH,EAAgBppH,EAAK,UACrB6mH,EAAQ7mH,EAAK,MACbqpH,EAAerpH,EAAK,SACpBspH,EAAetpH,EAAK,SACpBgnH,EAAYhnH,EAAK,UACjBqyC,EAASryC,EAAK,OACdupH,EAAYvpH,EAAK,MACjBz+B,EAAKy+B,EAAK,GACV4yB,EAAW5yB,EAAK,SAChB07D,EAAOlgE,GAA8BwE,EAAM,CAAC,eAAgB,kBAAmB,cAAe,YAAa,QAAS,WAAY,WAAY,YAAa,SAAU,QAAS,KAAM,UAAU,CAAC,EAEjM,UAA0B,cAAc2oH,GAAgB,SAAU,KAAM,SAAUnmK,EAAS,CACxFA,GAAwHo6C,GAAU,EAAK,EACpI,IAAAqhH,EAAkBqL,GAAgB9mK,EAAQ,SAC1Co+J,EAAawH,GAAoBD,GAAkB5mJ,EAAI08I,CAAe,EAAGA,CAAe,EACxFjhG,EAAO4jG,EAAW,SAElB4I,EAAcxsG,GAAQA,EAAK,QAAQ,4BAA6B,MAAM,EACtEpzE,EAAQ4/K,EAAc7C,GAAU1I,EAAgB,SAAU,CAC5D,KAAMuL,EACN,MAAA3C,EACA,UAAAG,EACA,OAAA30E,CACD,GAAI,KACDqsE,EAAW,CAAC,EAAE2K,EAAeA,EAAaz/K,EAAOq0K,CAAe,EAAIr0K,GACpEigB,EAAY,OAAOu/J,GAAkB,WAAaA,EAAc1K,CAAQ,EAAI0K,EAC5E5iL,EAAQ,OAAO+iL,GAAc,WAAaA,EAAU7K,CAAQ,EAAI6K,EAEhE7K,IACU70J,EAAAk/J,IAAel/J,EAAWklJ,CAAe,EACrDvoK,EAAQizD,GAAS,GAAIjzD,EAAO2iL,CAAW,GAGzC,IAAI3vJ,EAAQigC,GAAS,CACnB,eAAgBilH,GAAYuK,GAAe,KAC3C,UAAAp/J,EACA,MAAArjB,EACA,GAAIo6K,GACHllD,CAAI,EAGP,OAAImtD,KAAqBC,GACvBtvJ,EAAM,IAAM+uJ,GAAgB31F,EAE5Bp5D,EAAM,SAAWo5D,EAGC5xB,GAAM,cAAcynH,GAAMjvJ,CAAK,EACpD,CACH,CAAC,ECvSY,MAAAiwJ,IAAgBhkL,IAC3B4lC,GAAO,QAAU,CACf,cAAgB,mBAChB,aAAc,IACd,aAAc,IACd,QAAS,KAEXA,GAAO,MAAM,EACNA,GAAO,MAAM5lC,CAAO,GCTtB,SAASikL,KAAoB,CAC5B,MAAChzK,EAAUizK,CAAW,EAAI5gF,WAAS,OAAO,WAAa,IAAM,QAAU,MAAM,EAEnF/J,mBAAU,IAAM,CACd,MAAM4qF,EAAe,IAAM,CACzB,MAAMC,EAAc,OAAO,WAAa,IAAM,QAAU,OAEpDA,IAAgBnzK,GAClBizK,EAAYE,CAAW,CACzB,EAGK,+BAAiB,SAAUD,CAAY,EAGvC,IAAM,CACJ,2BAAoB,SAAUA,CAAY,EACnD,EACC,CAAClzK,CAAQ,CAAC,EAGNA,CACT,CCxBA,IAAIozK,GAAW,CACb,OAAQ,KAAK,QACb,UAAW,KAAK,SAClB,EAEIC,GAAS,CACX,OAAOtuF,EAAU,CACX,KAAK,UACPA,EAAS,KAAK,KAAK,IAAK,GACxBquF,GAAS,OAAO,IAAI,gBAAiB,GAAGruF,CAAQ,EAEnD,CACH,EAEA,MAAM0Y,GAAM,IAAO,IAAI,OAAM,QAAO,EAE9B61E,GAAe9nJ,IAASiyE,GAAG,EAAKjyE,GAAQ,IAE9C,MAAM+nJ,EAAkB,CACtB,YAAYC,EAAY,CACtB,KAAK,oBAAsB,KAAK,oBAAoB,KAAK,IAAI,EAC7D,KAAK,WAAaA,EAClB,KAAK,kBAAoB,CAC1B,CACD,OAAQ,CACD,KAAK,cACR,KAAK,UAAY/1E,KACjB,OAAO,KAAK,UACZ,KAAK,aAAY,EACjB,iBAAiB,mBAAoB,KAAK,mBAAmB,EAC7D41E,GAAO,IAAI,gDAAgD,KAAK,YAAY,cAAc,IAAI,EAEjG,CACD,MAAO,CACD,KAAK,cACP,KAAK,UAAY51E,KACjB,KAAK,YAAW,EAChB,oBAAoB,mBAAoB,KAAK,mBAAmB,EAChE41E,GAAO,IAAI,2BAA2B,EAEzC,CACD,WAAY,CACV,OAAO,KAAK,WAAa,CAAC,KAAK,SAChC,CACD,YAAa,CACX,KAAK,SAAW51E,IACjB,CACD,eAAgB,CACd,KAAK,kBAAoB,EACzB,KAAK,WAAU,EACf,OAAO,KAAK,eACZ41E,GAAO,IAAI,oCAAoC,CAChD,CACD,kBAAmB,CACjB,KAAK,eAAiB51E,KACtB41E,GAAO,IAAI,uCAAuC,CACnD,CACD,cAAe,CACb,KAAK,YAAW,EAChB,KAAK,KAAI,CACV,CACD,aAAc,CACZ,aAAa,KAAK,WAAW,CAC9B,CACD,MAAO,CACL,KAAK,YAAc,WAAY,IAAM,CACnC,KAAK,iBAAgB,EACrB,KAAK,KAAI,CACf,EAAQ,KAAK,gBAAe,CAAE,CAC3B,CACD,iBAAkB,CAChB,KAAM,CAAC,eAAgBI,EAAgB,wBAAyBC,CAAuB,EAAI,KAAK,YAC1FC,EAAU,KAAK,IAAI,EAAID,EAAyB,KAAK,IAAI,KAAK,kBAAmB,EAAE,CAAC,EAEpFE,GADY,KAAK,oBAAsB,EAAI,EAAIF,GAC1B,KAAK,OAAM,EACtC,OAAOD,EAAiB,IAAME,GAAW,EAAIC,EAC9C,CACD,kBAAmB,CACb,KAAK,sBACPP,GAAO,IAAI,oEAAoE,KAAK,iBAAiB,kBAAkBC,GAAa,KAAK,WAAW,CAAC,yBAAyB,KAAK,YAAY,cAAc,IAAI,EACjN,KAAK,oBACD,KAAK,uBACPD,GAAO,IAAI,+EAA+EC,GAAa,KAAK,cAAc,CAAC,IAAI,GAE/HD,GAAO,IAAI,6BAA6B,EACxC,KAAK,WAAW,UAGrB,CACD,IAAI,aAAc,CAChB,OAAO,KAAK,SAAW,KAAK,SAAW,KAAK,SAC7C,CACD,mBAAoB,CAClB,OAAOC,GAAa,KAAK,WAAW,EAAI,KAAK,YAAY,cAC1D,CACD,sBAAuB,CACrB,OAAO,KAAK,gBAAkBA,GAAa,KAAK,cAAc,EAAI,KAAK,YAAY,cACpF,CACD,qBAAsB,CAChB,SAAS,kBAAoB,WAC/B,WAAY,IAAM,EACZ,KAAK,kBAAmB,GAAI,CAAC,KAAK,WAAW,YAC/CD,GAAO,IAAI,uFAAuF,SAAS,eAAe,EAAE,EAC5H,KAAK,WAAW,SAEnB,EAAG,GAAG,CAEV,CACH,CAEAE,GAAkB,eAAiB,EAEnCA,GAAkB,wBAA0B,IAE5C,IAAIM,GAAW,CACb,cAAe,CACb,QAAS,UACT,WAAY,aACZ,KAAM,OACN,aAAc,uBACd,UAAW,qBACZ,EACD,mBAAoB,CAClB,aAAc,eACd,gBAAiB,kBACjB,eAAgB,gBACjB,EACD,mBAAoB,SACpB,UAAW,CAAE,sBAAuB,yBAA2B,CACjE,EAEA,KAAM,CAAC,cAAeC,GAAe,UAAWC,EAAS,EAAIF,GAEvDG,IAAqBD,GAAU,MAAM,EAAGA,GAAU,OAAS,CAAC,EAE5DlpK,GAAU,CAAE,EAAC,QAEnB,MAAMopK,EAAW,CACf,YAAYC,EAAU,CACpB,KAAK,KAAO,KAAK,KAAK,KAAK,IAAI,EAC/B,KAAK,SAAWA,EAChB,KAAK,cAAgB,KAAK,SAAS,cACnC,KAAK,QAAU,IAAIX,GAAkB,IAAI,EACzC,KAAK,aAAe,EACrB,CACD,KAAKt1J,EAAM,CACT,OAAI,KAAK,UACP,KAAK,UAAU,KAAK,KAAK,UAAUA,CAAI,CAAC,EACjC,IAEA,EAEV,CACD,MAAO,CACL,OAAI,KAAK,YACPo1J,GAAO,IAAI,uDAAuD,KAAK,SAAQ,CAAE,EAAE,EAC5E,KAEPA,GAAO,IAAI,uCAAuC,KAAK,SAAQ,CAAE,mBAAmBU,EAAS,EAAE,EAC3F,KAAK,WACP,KAAK,uBAAsB,EAE7B,KAAK,UAAY,IAAIX,GAAS,UAAU,KAAK,SAAS,IAAKW,EAAS,EACpE,KAAK,qBAAoB,EACzB,KAAK,QAAQ,QACN,GAEV,CACD,MAAM,CAAC,eAAgBI,CAAc,EAAI,CACvC,eAAgB,EACpB,EAAK,CAID,GAHKA,GACH,KAAK,QAAQ,OAEX,KAAK,SACP,OAAO,KAAK,UAAU,OAEzB,CACD,QAAS,CAEP,GADAd,GAAO,IAAI,yCAAyC,KAAK,SAAQ,CAAE,EAAE,EACjE,KAAK,WACP,GAAI,CACF,OAAO,KAAK,OACb,OAAQl+K,EAAO,CACdk+K,GAAO,IAAI,6BAA8Bl+K,CAAK,CACtD,QAAgB,CACRk+K,GAAO,IAAI,0BAA0B,KAAK,YAAY,WAAW,IAAI,EACrE,WAAW,KAAK,KAAM,KAAK,YAAY,WAAW,CACnD,KAED,QAAO,KAAK,MAEf,CACD,aAAc,CACZ,GAAI,KAAK,UACP,OAAO,KAAK,UAAU,QAEzB,CACD,QAAS,CACP,OAAO,KAAK,QAAQ,MAAM,CAC3B,CACD,UAAW,CACT,OAAO,KAAK,QAAQ,OAAQ,YAAY,CACzC,CACD,qBAAsB,CACpB,OAAOxoK,GAAQ,KAAKmpK,IAAoB,KAAK,YAAW,CAAE,GAAK,CAChE,CACD,WAAWI,EAAQ,CACjB,OAAOvpK,GAAQ,KAAKupK,EAAQ,KAAK,SAAQ,CAAE,GAAK,CACjD,CACD,UAAW,CACT,GAAI,KAAK,WACP,QAASl1K,KAASk0K,GAAS,UACzB,GAAIA,GAAS,UAAUl0K,CAAK,IAAM,KAAK,UAAU,WAC/C,OAAOA,EAAM,cAInB,OAAO,IACR,CACD,sBAAuB,CACrB,QAAS7M,KAAa,KAAK,OAAQ,CACjC,MAAM6f,EAAU,KAAK,OAAO7f,CAAS,EAAE,KAAK,IAAI,EAChD,KAAK,UAAU,KAAKA,CAAS,EAAE,EAAI6f,CACpC,CACF,CACD,wBAAyB,CACvB,QAAS7f,KAAa,KAAK,OACzB,KAAK,UAAU,KAAKA,CAAS,EAAE,EAAI,UAAW,EAEjD,CACH,CAEA4hL,GAAW,YAAc,IAEzBA,GAAW,UAAU,OAAS,CAC5B,QAAQ1kL,EAAO,CACb,GAAI,CAAC,KAAK,sBACR,OAEF,KAAM,CAAC,WAAY8f,EAAY,QAAStgB,EAAS,OAAQiK,EAAQ,UAAWq7K,EAAW,KAAM56K,CAAI,EAAI,KAAK,MAAMlK,EAAM,IAAI,EAC1H,OAAQkK,EAAI,CACX,KAAKq6K,GAAc,QAClB,YAAK,QAAQ,gBACN,KAAK,cAAc,SAE3B,KAAKA,GAAc,WAClB,OAAAT,GAAO,IAAI,0BAA0Br6K,CAAM,EAAE,EACtC,KAAK,MAAM,CAChB,eAAgBq7K,CACxB,CAAO,EAEF,KAAKP,GAAc,KAClB,OAAO,KAAK,QAAQ,aAErB,KAAKA,GAAc,aAClB,YAAK,cAAc,oBAAoBzkK,CAAU,EAC1C,KAAK,cAAc,OAAOA,EAAY,WAAW,EAEzD,KAAKykK,GAAc,UAClB,OAAO,KAAK,cAAc,OAAOzkK,CAAU,EAE5C,QACC,OAAO,KAAK,cAAc,OAAOA,EAAY,WAAYtgB,CAAO,CACjE,CACF,EACD,MAAO,CAGL,GAFAskL,GAAO,IAAI,kCAAkC,KAAK,YAAa,gBAAe,EAC9E,KAAK,aAAe,GAChB,CAAC,KAAK,sBACR,OAAAA,GAAO,IAAI,8DAA8D,EAClE,KAAK,MAAM,CAChB,eAAgB,EACxB,CAAO,CAEJ,EACD,MAAM9jL,EAAO,CAEX,GADA8jL,GAAO,IAAI,yBAAyB,EAChC,MAAK,aAGT,YAAK,aAAe,GACpB,KAAK,QAAQ,mBACN,KAAK,cAAc,UAAU,eAAgB,CAClD,qBAAsB,KAAK,QAAQ,UAAW,CACpD,CAAK,CACF,EACD,OAAQ,CACNA,GAAO,IAAI,yBAAyB,CACrC,CACH,EAEA,MAAMtuG,IAAS,SAAS1qD,EAAQiQ,EAAY,CAC1C,GAAIA,GAAc,KAChB,QAASjpB,KAAOipB,EAAY,CAC1B,MAAM56B,EAAQ46B,EAAWjpB,CAAG,EAC5BgZ,EAAOhZ,CAAG,EAAI3R,CACf,CAEH,OAAO2qB,CACT,EAEA,MAAMi6J,GAAa,CACjB,YAAYJ,EAAUrhJ,EAAS,GAAI0hJ,EAAO,CACxC,KAAK,SAAWL,EAChB,KAAK,WAAa,KAAK,UAAUrhJ,CAAM,EACvCkyC,IAAO,KAAMwvG,CAAK,CACnB,CACD,QAAQlkL,EAAQ4tB,EAAO,GAAI,CACzB,OAAAA,EAAK,OAAS5tB,EACP,KAAK,KAAK4tB,CAAI,CACtB,CACD,KAAKA,EAAM,CACT,OAAO,KAAK,SAAS,KAAK,CACxB,QAAS,UACT,WAAY,KAAK,WACjB,KAAM,KAAK,UAAUA,CAAI,CAC/B,CAAK,CACF,CACD,aAAc,CACZ,OAAO,KAAK,SAAS,cAAc,OAAO,IAAI,CAC/C,CACH,CAEA,MAAMu2J,GAAsB,CAC1B,YAAYC,EAAe,CACzB,KAAK,cAAgBA,EACrB,KAAK,qBAAuB,EAC7B,CACD,UAAUC,EAAc,CAClB,KAAK,qBAAqB,QAAQA,CAAY,GAAK,IACrDrB,GAAO,IAAI,sCAAsCqB,EAAa,UAAU,EAAE,EAC1E,KAAK,qBAAqB,KAAKA,CAAY,GAE3CrB,GAAO,IAAI,8CAA8CqB,EAAa,UAAU,EAAE,EAEpF,KAAK,kBAAiB,CACvB,CACD,OAAOA,EAAc,CACnBrB,GAAO,IAAI,oCAAoCqB,EAAa,UAAU,EAAE,EACxE,KAAK,qBAAuB,KAAK,qBAAqB,OAAQ/rK,GAAKA,IAAM+rK,EAC1E,CACD,mBAAoB,CAClB,KAAK,iBAAgB,EACrB,KAAK,iBAAgB,CACtB,CACD,kBAAmB,CACjB,aAAa,KAAK,YAAY,CAC/B,CACD,kBAAmB,CACjB,KAAK,aAAe,WAAY,IAAM,CAChC,KAAK,eAAiB,OAAO,KAAK,cAAc,WAAc,YAChE,KAAK,qBAAqB,IAAKA,GAAgB,CAC7CrB,GAAO,IAAI,uCAAuCqB,EAAa,UAAU,EAAE,EAC3E,KAAK,cAAc,UAAUA,CAAY,CACnD,EAEK,EAAG,GAAG,CACR,CACH,CAEA,MAAMC,GAAc,CAClB,YAAYT,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,UAAY,IAAIM,IAAsB,IAAI,EAC/C,KAAK,cAAgB,EACtB,CACD,OAAOI,EAAaL,EAAO,CACzB,MAAMM,EAAUD,EACV/hJ,EAAS,OAAOgiJ,GAAY,SAAWA,EAAU,CACrD,QAASA,CACf,EACUH,EAAe,IAAIJ,IAAa,KAAK,SAAUzhJ,EAAQ0hJ,CAAK,EAClE,OAAO,KAAK,IAAIG,CAAY,CAC7B,CACD,IAAIA,EAAc,CAChB,YAAK,cAAc,KAAKA,CAAY,EACpC,KAAK,SAAS,yBACd,KAAK,OAAOA,EAAc,aAAa,EACvC,KAAK,UAAUA,CAAY,EACpBA,CACR,CACD,OAAOA,EAAc,CACnB,YAAK,OAAOA,CAAY,EACnB,KAAK,QAAQA,EAAa,UAAU,EAAE,QACzC,KAAK,YAAYA,EAAc,aAAa,EAEvCA,CACR,CACD,OAAOrlK,EAAY,CACjB,OAAO,KAAK,QAAQA,CAAU,EAAE,IAAKqlK,IACnC,KAAK,OAAOA,CAAY,EACxB,KAAK,OAAOA,EAAc,UAAU,EAC7BA,GAEV,CACD,OAAOA,EAAc,CACnB,YAAK,UAAU,OAAOA,CAAY,EAClC,KAAK,cAAgB,KAAK,cAAc,OAAQ/rK,GAAKA,IAAM+rK,GACpDA,CACR,CACD,QAAQrlK,EAAY,CAClB,OAAO,KAAK,cAAc,OAAQ1G,GAAKA,EAAE,aAAe0G,EACzD,CACD,QAAS,CACP,OAAO,KAAK,cAAc,IAAKqlK,GAAgB,KAAK,UAAUA,CAAY,EAC3E,CACD,UAAUniJ,KAAiBpd,EAAM,CAC/B,OAAO,KAAK,cAAc,IAAKu/J,GAAgB,KAAK,OAAOA,EAAcniJ,EAAc,GAAGpd,CAAI,CAAC,CAChG,CACD,OAAOu/J,EAAcniJ,KAAiBpd,EAAM,CAC1C,IAAIs/J,EACJ,OAAI,OAAOC,GAAiB,SAC1BD,EAAgB,KAAK,QAAQC,CAAY,EAEzCD,EAAgB,CAAEC,GAEbD,EAAc,IAAKC,GAAgB,OAAOA,EAAaniJ,CAAY,GAAM,WAAamiJ,EAAaniJ,CAAY,EAAE,GAAGpd,CAAI,EAAI,MAAS,CAC7I,CACD,UAAUu/J,EAAc,CAClB,KAAK,YAAYA,EAAc,WAAW,GAC5C,KAAK,UAAU,UAAUA,CAAY,CAExC,CACD,oBAAoBrlK,EAAY,CAC9BgkK,GAAO,IAAI,0BAA0BhkK,CAAU,EAAE,EACjD,KAAK,QAAQA,CAAU,EAAE,IAAKqlK,GAAgB,KAAK,UAAU,OAAOA,CAAY,EACjF,CACD,YAAYA,EAAcI,EAAS,CACjC,KAAM,CAAC,WAAYzlK,CAAU,EAAIqlK,EACjC,OAAO,KAAK,SAAS,KAAK,CACxB,QAASI,EACT,WAAYzlK,CAClB,CAAK,CACF,CACH,CAEA,MAAM+/J,GAAS,CACb,YAAYl/K,EAAK,CACf,KAAK,KAAOA,EACZ,KAAK,cAAgB,IAAIykL,IAAc,IAAI,EAC3C,KAAK,WAAa,IAAIV,GAAW,IAAI,CACtC,CACD,IAAI,KAAM,CACR,OAAOc,IAAmB,KAAK,IAAI,CACpC,CACD,KAAK92J,EAAM,CACT,OAAO,KAAK,WAAW,KAAKA,CAAI,CACjC,CACD,SAAU,CACR,OAAO,KAAK,WAAW,MACxB,CACD,YAAa,CACX,OAAO,KAAK,WAAW,MAAM,CAC3B,eAAgB,EACtB,CAAK,CACF,CACD,wBAAyB,CACvB,GAAI,CAAC,KAAK,WAAW,WACnB,OAAO,KAAK,WAAW,MAE1B,CACH,CAEA,SAAS82J,IAAmB7kL,EAAK,CAI/B,GAHI,OAAOA,GAAQ,aACjBA,EAAMA,EAAG,GAEPA,GAAO,CAAC,UAAU,KAAKA,CAAG,EAAG,CAC/B,MAAM4e,EAAI,SAAS,cAAc,GAAG,EACpC,OAAAA,EAAE,KAAO5e,EACT4e,EAAE,KAAOA,EAAE,KACXA,EAAE,SAAWA,EAAE,SAAS,QAAQ,OAAQ,IAAI,EACrCA,EAAE,IACb,KACI,QAAO5e,CAEX,CAEA,SAAS8kL,IAAe9kL,EAAM+kL,IAAU,KAAK,GAAKpB,GAAS,mBAAoB,CAC7E,OAAO,IAAIzE,IAASl/K,CAAG,CACzB,CAEA,SAAS+kL,IAAUjmL,EAAM,CACvB,MAAMI,EAAU,SAAS,KAAK,cAAc,2BAA2BJ,CAAI,IAAI,EAC/E,GAAII,EACF,OAAOA,EAAQ,aAAa,SAAS,CAEzC,CCxeO,MAAM8lL,IAAiB,CAACnmL,EAASomL,EAAWC,IAAa,CAC9D,OAAQrmL,EAAQ,OAAM,CACpB,IAAK,YACHomL,EAAUpmL,EAAQ,EAAE,EACpB,MACF,IAAK,SACHqmL,IACA,MACF,IAAK,UACH,QAAQ,IAAI,4CAA4C,EACxD,MACF,IAAK,cACH,QAAQ,IAAI,gDAAgD,EAC5D,MACF,QACE,QAAQ,IAAI,mBAAmBrmL,EAAQ,MAAM,EAAE,EAC/C,KACH,CACH,ECXMsmL,GAAe,kBAErBC,IAAe,CAAC,CAAE,MAAApgJ,EAAO,KAAAxuB,EAAM,OAAAuQ,EAAQ,OAAAmvC,EAAQ,WAAAmvH,EAAa,QAAW,CACrE,KAAM,CAAC9iK,EAAU+iK,CAAW,EAAInjF,WAAS,EAAK,EACxC,CAACojF,EAAuBC,CAAwB,EAAIrjF,WAAS,IAAI,EAEjE6hF,EAAWlvF,EAAQ,YAAMgwF,IAAe,EAAG,CAAE,GAC7CN,EAAettF,WAEfvJ,EAAa,CAAC,CAAE43F,GAA0BhjK,EAC1CyyC,EAAU54B,GAAW,CAAC,6BAA8B,CAAE,WAAcuxD,CAAY,EAAC,EAEjF83F,EAAe,IAAM,CACzBH,EAAY,EAAI,EAChB,MAAMI,EAAoB,GAAGP,EAAY,IAAI3uK,EAAK,GAAG,GAC/CmvK,EAAgB,GAAGN,GAAcK,CAAiB,IAAIxvH,CAAM,SAASogF,GAAevvH,CAAM,CAAC,GAC3F8yD,GAAA,KAAK8rG,CAAa,EAAE,QAAiBH,EAAyBjkL,EAAS,KAAK,EAAE,CAAC,GAGjFqkL,EAAa,IAAM,CACnBpB,EAAa,SAASA,EAAa,QAAQ,cAC/CR,EAAS,WAAW,GAGtB5rF,mBAAU,IAAM,CACd,GAAImtF,EAAuB,CACzB,MAAM5iJ,EAAS,CAAE,QAAS,6BAA8B,GAAI4iJ,CAAsB,EAElFf,EAAa,QAAUR,EAAS,cAAc,OAAOrhJ,EAAQ,CAC3D,UAAW,IAAM,CACfqhJ,EAAS,KAAK,CACZ,WAAY,KAAK,UAAUrhJ,CAAM,EACjC,QAAS,UACT,KAAM,KAAK,UAAU,CAAE,KAAM,GAAI,EAClC,CACH,EACA,aAAc,IAAM,QAAQ,IAAI,cAAc,EAC9C,SAAW9jC,GAAYmmL,IAAenmL,EAAU8I,GAAO,CACrD29K,EAAY,EAAK,EACjBE,EAAyB,IAAI,EAC7B,OAAO,SAAS,KAAO,GAAGL,EAAY,cAAcx9K,CAAE,IACrD,IAAM,CACP29K,EAAY,EAAK,EACjBE,EAAyB,IAAI,EACtB,qBAAc,QAAS,uBAAuB,EACtD,EACF,OAEUI,IAGN,OAAAA,CAAA,EACN,CAACL,CAAqB,CAAC,EAIxBvhG,EAAC,SAAO,WAAWhvB,EAAS,SAAU,CAAC,CAAE24B,EAAa,QAAS83F,EAC5D,SACHzgJ,CAAA,EAEJ,EChEM6gJ,IAAe,CACnB,IAAO,gBACP,IAAO,iBACT,EAEMC,IAAiB,uBAEvBC,GAAe,CAAC,CAAE,cAAAC,EAAe,KAAAxvK,EAAM,OAAAuQ,EAAQ,QAAAiuC,EAAS,WAAAqwH,EAAa,IAAK,IACvErhG,EAAA,OAAI,UAAWhvB,GAAW8wH,IACxB,SAAcE,EAAA,IAAK9vH,GAClB8tB,EAACohG,IAAA,CAEC,KAAA5uK,EACA,OAAAuQ,EACA,OAAAmvC,EACA,MAAO2vH,IAAa3vH,CAAM,EAC1B,WAAAmvH,CAAA,EALKnvH,CAMP,CACF,EACF,ECfI+vH,IAAY,CAAC,CAAE,SAAA1jK,EAAU,QAAA43C,KAAc,CACrC,MAAA+rH,EAAmBpxF,UAAQ,IAC/BzQ,GACE,0BACA,CAAE,cAAe,CAAC9hE,CAAS,EAC3B,CAAE,SAAYA,CAAS,GACtB,CAACA,CAAQ,CAAC,EAEf,OACGyhE,EAAA,UAAO,UAAWkiG,EAAkB,QAAA/rH,EAAkB,SAEvD,uBAEJ,EAUMgsH,IAAa,IAAM,CACvBtD,IACE,+IAIJ,EAEAuD,IAAe,CAAC,CAAE,gBAAAC,EAAiB,cAAAC,EAAe,qBAAAC,EAAsB,gBAAAC,EAAiB,KAAAhwK,KAAW,CAC5F,MAAA+L,EAAW,CAAC+jK,GAAiBC,GAAwB,GAErDz2K,EAAWgzK,MAqBjB,OACG9+F,EAAA,OAAI,UAAU,GACb,YAAC,KAAG,iCAEDrR,GAAe,WAAW,OAAM,UAAW7iE,EAAU,QAtBzDmzF,GAAA7vB,GAAA,CAAQ,GAAG,oCAAoC,MAAM,GACpD,UAAA4Q,EAAC,KAAE,SAGH,4FACC,IAAE,iIAGAqiG,GAAoBriG,EAAA,QAAK,SAAC,MAC1B,CAACqiG,GACCriG,EAAA,QAAK,SAEN,kGAEJ,CACF,IAQM,SAACA,EAAA,OAAI,UAAU,YAAY,sBAAoB,GAAG,MAAM,EAAE,GAC5D,IAEC,MAAI,WAAU,uBACb,SAACA,EAAAiiG,IAAA,CAAU,SAAA1jK,EAAoB,QAAU5P,GAAM4P,EAAW4jK,IAAY,EAAIK,EAAgB,CAAE,EAAE,GAChG,EAEChwK,GAAQA,EAAK,kBACbwtE,EAAA,OAAI,UAAU,4BACb,SAAAA,EAAC+hG,GAAc,QAAQ,GAAI,KAAAvvK,EAAY,cAAeA,EAAK,aAAc,GAC3E,EAEF,EACF,EAEJ,EC/EaiwK,GAAiB5wE,GACvBsY,GAAOtY,CAAI,EAAE,QAAQ,EACnBsY,GAAOtY,CAAI,EAAE,OAAO,YAAY,EADH,KAIzB6wE,IAAoB7wE,GAC1BsY,GAAOtY,CAAI,EAAE,QAAQ,EACnBsY,GAAOtY,CAAI,EAAE,OAAO,iBAAiB,EADR,KAIzB8wE,IAAiB9wE,GACvBsY,GAAOtY,CAAI,EAAE,QAAQ,EACnBsY,GAAOtY,CAAI,EAAE,OAAO,OAAO,EADE,KAIhC+wE,IAAO,CAAC,CAAE,MAAA5hF,EAAQ,OAAQ,MAAAplG,EAAO,SAAAwhE,CACrC,IAAA4iB,EAAC,MAAG,UAAW,QAAQghB,CAAK,GAAI,MAAAplG,EAC7B,SAAAwhE,CACH,GAGIu7D,IAAO,CAAC,CAAE,SAAAv7D,KACT+sD,GAAO/sD,CAAQ,EAAE,QAAQ,IACtB,KAAG,WAAU,YAAa,SAAAqlH,GAAcrlH,CAAQ,CAAE,KADjB,KAAE,IAIvCylH,GAAkB,CAACC,EAAUC,EAAQ3lH,EAAUi5D,EAAW2sD,IAAa,CAC3E,MAAMC,EAAa,CAAC94D,GAAO/sD,EAAS0lH,CAAQ,CAAC,EAAG34D,GAAO/sD,EAAS2lH,CAAM,CAAC,CAAC,EAAE,OAAelxE,KAAK,SAAS,EAEhG,OADWoxE,EAAW,OAAO,CAAC3vK,EAAGjU,IAAM4jL,EAAW,UAAe7vK,GAAAE,EAAE,OAAO62G,GAAO/2G,CAAC,CAAC,CAAC,IAAM/T,CAAC,EACjF,IAAIwyG,GAAQwkB,EAAUxkB,CAAI,EAAE,SAAU,GAAE,KAAKmxE,CAAQ,CACxE,EAEME,IAAa,CAAC,CAAE,SAAAJ,EAAU,OAAAC,EAAQ,SAAA3lH,KACtC4iB,EAAC,KAAG,WAAU,YAAa,SAAgB6iG,GAAAC,EAAUC,EAAQ3lH,EAAUqlH,GAAe,MAAM,CAAE,GAG1FU,IAAW,CAAC,CAAE,SAAAL,EAAU,OAAAC,EAAQ,MAAAnnL,EAAO,SAAAwhE,KAC3C4iB,EAAC,MAAG,UAAU,YAAY,MAAApkF,EAAe,SAAgBinL,GAAAC,EAAUC,EAAQ3lH,EAAUulH,IAAe,KAAK,CAAE,GAGvGS,GAAqB5nL,GAAU,CACnC,MAAM6V,EAAW,CAAE,sBAAuB,EAAG,sBAAuB,CAAE,EACtE,OAAO,IAAI,KAAK,aAAa,QAASA,CAAQ,EAAE,OAAO7V,CAAK,CAC9D,EAEa6nL,GAAa,CAACjmH,EAAUkmH,EAAiB,KAChD,MAAMlmH,CAAQ,EAAU,GAExBkmH,GAAkBlmH,EAAW,EACxB,IAAIgmH,GAAkB,KAAK,IAAIhmH,CAAQ,CAAC,CAAC,IAEzCgmH,GAAkBhmH,CAAQ,EAIxBokF,IAAY,CAACpkF,EAAUmmH,EAAW,KAAU,CACvD,GAAI,MAAMnmH,CAAQ,EAAU,SAE5B,MAAM/rD,EAAW,CAAE,sBAAuB,EAAG,sBAAuB,CAAE,EAIhE,SAHQ,IAAI,KAAK,aAAa,QAASA,CAAQ,EAAE,OAAO+rD,CAAQ,CAGxD,GAFAmmH,EAAW,GAAK,GAET,EACvB,EAEaC,IAAoB,CAACv2D,EAAQq2D,EAAiB,KAClDr2D,IAAW,KAAO,GAAKo2D,GAAWp2D,EAAQq2D,CAAc,EAG3DG,IAAkB,CAAC,CAAE,SAAArmH,EAAU,eAAAkmH,KAClCtjG,EAAA,MAAG,UAAU,YACX,aAAa,KAAO,GAAKqjG,GAAWjmH,EAAUkmH,CAAc,CAC/D,GAGII,IAAW,CAAC,CAAE,SAAAtmH,EAAU,eAAAkmH,CAAA,IAAoBtjG,EAAC2jG,GAAM,UAAAN,GAAWjmH,EAAUkmH,CAAc,CAAE,GACxFM,IAAU,CAAC,CAAE,SAAAxmH,EAAU,SAAAmmH,EAAU,MAAA3nL,CAAA,IAAYokF,EAAC2jG,GAAK,OAAA/nL,EAAe,SAAU4lJ,IAAApkF,EAAUmmH,CAAQ,CAAE,GAEzFM,IAAgB,CAAC,CAAE,KAAA1+K,EAAO,KAAM,OAAAlK,EAAS,KAAM,SAAAmiE,KACtDj4D,EACM66E,EAAA,KAAE,KAAM76E,EAAM,OAAAlK,EAAiB,SAAAmiE,CAAS,GAEzCA,EAILygH,IAAO,CAAC,CAAE,MAAA78E,EAAQ,OAAQ,KAAA77F,EAAO,KAAM,OAAAlK,EAAS,KAAM,MAAAW,EAAO,SAAAwhE,CAAS,MACzE,KAAG,WAAW,QAAQ4jC,CAAK,GAAI,MAAAplG,EAC7B,SAAcioL,IAAA,CAAE,KAAA1+K,EAAM,OAAAlK,EAAQ,SAAAmiE,CAAU,EAC3C,GAGI0mH,GAAS,MACblB,IACA,KAAA/E,IAAA,KACAllD,IACA,SAAA+qD,IACA,gBAAAD,IACA,QAAAG,IACA,WAAAV,IACA,SAAAC,GACF,EAIMY,IAAS,QACTC,IAAgB,CAAE,sBAAuB,EAAG,sBAAuB,CAAE,EACrEC,IAAmB,CAAE,sBAAuB,EAAG,sBAAuB,CAAE,EAExEC,GAAmB7yK,GAAa,IAAI,KAAK,aAAa0yK,IAAQ1yK,CAAQ,EAE/D8yK,IAAY,CAAC,CAAE,MAAA3oL,KAAY0oL,GAAgBF,GAAa,EAAE,OAAOxoL,CAAK,EACtE4oL,IAAe,CAAC,CAAE,MAAA5oL,KAAY0oL,GAAgBD,GAAgB,EAAE,OAAOzoL,CAAK,EAE5EmoL,GAAO,CAAC,CAAE,MAAA3iF,EAAQ,OAAQ,MAAAplG,EAAO,SAAAwhE,CAAA,IAC5C4iB,EAAC,MAAG,UAAW,QAAQghB,CAAK,GAAI,MAAAplG,EAC7B,SAAAwhE,CACH,GClHFinH,IAAe,CAAC,CAAE,gBAAAC,EAAiB,cAAAC,EAAe,aAAAC,CAAa,IAC5DxkG,EAAA,OAAI,UAAU,wBACb,SAACif,GAAA,SAAM,UAAU,uBACf,UAAAjf,EAAC,QAAM,WAAU,iCACjB,SAAAif,GAAC,KACC,WAAAjf,EAAC,MAAG,SAAI,SACRA,EAAC,MAAG,SAAQ,aACZA,EAAC,MAAG,SAAM,WACVA,EAAC,MAAG,SAAU,eACdA,EAAC,MAAG,SAAI,SACRA,EAAC,MAAG,SAAI,SACRA,EAAC,MAAG,SAAK,UACTA,EAAC,MAAG,SAAK,UACTA,EAAC,MAAG,SAAY,iBAChBA,EAAC,MAAG,SAAU,eACbA,EAAA,MAAG,UAAU,UAAU,SAAO,aACjC,CACA,GACAA,EAAC,SACA,SAAgBskG,EAAA,IAAI9xK,MAClB,KACC,WAACwtE,EAAA8jG,GAAO,KAAP,CAAa,SAAA54B,GAAaC,IAAY34I,EAAK,GAAG,CAAC,EAAE,IACjDsxK,GAAO,KAAP,CAAa,SAAuBt4B,GAAAh5I,EAAK,cAAc,EAAE,EACzDwtE,EAAA8jG,GAAO,KAAP,CAAa,WAAK,WAAW,EAC7B9jG,EAAA8jG,GAAO,KAAP,CAAa,WAAK,UAAU,EAC7B9jG,EAAC8jG,GAAO,KAAP,CAAa,gBAAOtxK,EAAK,UAAU,EAAE,OAAO,OAAO,CAAE,GACrDwtE,EAAA8jG,GAAO,KAAP,CAAa,WAAK,eAAe,EACjC9jG,EAAA8jG,GAAO,KAAP,CAAa,WAAK,WAAW,EAC7B9jG,EAAA8jG,GAAO,KAAP,CAAa,WAAK,gBAAgB,EAClC9jG,EAAA8jG,GAAO,KAAP,CAAa,WAAK,UAAU,EAC5B9jG,EAAA8jG,GAAO,KAAP,CAAa,WAAK,UAAU,IAC5BA,GAAO,KAAP,CACC,SAAC7kF,GAAA,OAAI,UAAU,YACb,UAAAjf,EAACroB,GAAA,CAAO,UAAW,CAACnlD,EAAK,eAAiB,SAClC,QAAS,IAAM+xK,EAAc,CAAC,GAAI/xK,EAAK,GAAG,EAAG,gBAErD,EACAwtE,EAACroB,GAAA,CAAO,UAAW,CAACnlD,EAAK,eAAiB,SAClC,QAAS,IAAMgyK,EAAahyK,EAAK,EAAE,EAAG,kBAE9C,GACF,CACF,KAtBOA,EAAK,EAuBd,GAEF,GACF,CACF,yBCpDF,SAASiyK,IAAY11K,EAAOwlB,EAAK,CAE7B,QADI8pG,EAAQ,GACHh/H,EAAI0P,EAAO1P,GAAKk1B,EAAKl1B,IAC1Bg/H,EAAM,KAAKh/H,CAAC,EAEhB,OAAOg/H,CACX,CACmBqmD,GAAA,YAAGD,oBCPtBE,GAAA,WAAqB,CACjB,KAAM,OACN,SAAU,WACV,gBAAiB,kBACjB,mBAAoB,qBACpB,eAAgB,iBAChB,eAAgB,gBACpB,EACAA,GAAA,UAAoB,CAChB,eAAgB,GAChB,gBAAiB,GACjB,gBAAiB,GACjB,mBAAoB,GACpB,eAAgB,GAChB,eAAgB,EACpB,ECfA,IAAIC,GAAkChhJ,GACXihJ,GAAA,oBAAG,SAAUC,EAAY,CAChD,MAAO,CACH,KAAMF,GAAgC,WAAW,SACjD,IAAKA,GAAgC,UAAU,eAC/C,MAAOE,EACP,SAAU,EAClB,CACA,EAC4BD,GAAA,qBAAG,SAAUC,EAAY,CACjD,MAAO,CACH,KAAMF,GAAgC,WAAW,SACjD,IAAKA,GAAgC,UAAU,gBAC/C,MAAOE,EACP,SAAU,EAClB,CACA,EAC2BD,GAAA,oBAAG,SAAUhgL,EAAS,CAC7C,IAAIkgL,EAAclgL,EAAQ,YAC1B,MAAO,CACH,KAAM+/K,GAAgC,WAAW,gBACjD,IAAKA,GAAgC,UAAU,gBAC/C,MAAO,EACP,SAAUG,IAAgB,CAClC,CACA,EAC8BF,GAAA,uBAAG,SAAUhgL,EAAS,CAChD,IAAIkgL,EAAclgL,EAAQ,YAC1B,MAAO,CACH,KAAM+/K,GAAgC,WAAW,mBACjD,IAAKA,GAAgC,UAAU,mBAC/C,MAAO,KAAK,IAAI,EAAGG,EAAc,CAAC,EAClC,SAAUA,IAAgB,CAClC,CACA,EAC0BF,GAAA,mBAAG,SAAUhgL,EAAS,CAC5C,IAAIkgL,EAAclgL,EAAQ,YAAamgL,EAAangL,EAAQ,WAC5D,MAAO,CACH,KAAM+/K,GAAgC,WAAW,eACjD,IAAKA,GAAgC,UAAU,eAC/C,MAAO,KAAK,IAAII,EAAYD,EAAc,CAAC,EAC3C,SAAUA,IAAgBC,CAClC,CACA,EAC0BH,GAAA,mBAAG,SAAUhgL,EAAS,CAC5C,IAAIkgL,EAAclgL,EAAQ,YAAamgL,EAAangL,EAAQ,WAC5D,MAAO,CACH,KAAM+/K,GAAgC,WAAW,eACjD,IAAKA,GAAgC,UAAU,eAC/C,MAAOI,EACP,SAAUD,IAAgBC,CAClC,CACA,EACiCH,GAAA,0BAAG,SAAUhgL,EAAS,CACnD,IAAIkgL,EAAclgL,EAAQ,YAC1B,OAAO,SAAUigL,EAAY,CACzB,MAAO,CACH,KAAMF,GAAgC,WAAW,KACjD,IAAKE,EACL,MAAOA,EACP,SAAUA,IAAeC,CACrC,CACA,CACA,EC/DA,IAAIE,GAA8BrhJ,GAC9BshJ,GAAuC99I,GAC3C,SAAS+9I,IAAmBtgL,EAAS,CACjC,GAAIA,GAAW,KACX,MAAM,IAAI,MAAM,yDAAyD,EAE7E,IAAImgL,EAAa,OAAOngL,EAAQ,UAAU,EAC1C,GAAI,MAAMmgL,CAAU,EAChB,MAAM,IAAI,MAAM,qDAAqD,EAEzE,GAAIA,EAAa,EACb,MAAM,IAAI,MAAM,iEAAkE,EAEtF,IAAID,EAAc,OAAOlgL,EAAQ,WAAW,EAC5C,GAAI,MAAMkgL,CAAW,EACjB,MAAM,IAAI,MAAM,sDAAsD,EAE1E,GAAIA,EAAc,EACd,MAAM,IAAI,MAAM,kEAAmE,EAEvF,GAAIA,EAAcC,EACd,MAAM,IAAI,MAAM,wEAAyE,EAE7F,IAAII,EAAsBvgL,EAAQ,oBAAsB,KAAO,EAAI,OAAOA,EAAQ,kBAAkB,EACpG,GAAI,MAAMugL,CAAkB,EACxB,MAAM,IAAI,MAAM,6DAA6D,EAEjF,GAAIA,EAAqB,EACrB,MAAM,IAAI,MAAM,yEAA0E,EAE9F,IAAIC,EAAqBxgL,EAAQ,mBAAqB,KAAO,EAAI,OAAOA,EAAQ,iBAAiB,EACjG,GAAI,MAAMwgL,CAAiB,EACvB,MAAM,IAAI,MAAM,4DAA4D,EAEhF,GAAIA,EAAoB,EACpB,MAAM,IAAI,MAAM,wEAAyE,EAE7F,IAAIC,EAA+B,EAAQzgL,EAAQ,6BAC/C0gL,EAA4B,EAAQ1gL,EAAQ,0BAC5C2gL,EAAe,EAAQ3gL,EAAQ,aAC/B4gL,EAAgBD,EAAe,EAAI,EACnCE,EAAkB,GAClBC,EAAaT,GAAqC,0BAA0BrgL,CAAO,EAQvF,GAPK0gL,GACDG,EAAgB,KAAKR,GAAqC,oBAAoBrgL,CAAO,CAAC,EAErFygL,GACDI,EAAgB,KAAKR,GAAqC,uBAAuBrgL,CAAO,CAAC,EAGzF,EAAI,EAAI4gL,EAAe,EAAIJ,EAAoB,EAAID,GAAsBJ,EAAY,CACrF,IAAIY,EAAWX,GAA4B,YAAY,EAAGD,CAAU,EAAE,IAAIW,CAAU,EACpFD,EAAgB,KAAK,MAAMA,EAAiBE,CAAQ,CACvD,KACI,CAED,IAAIC,EAAkB,EAClBC,EAAgBV,EAChBW,EAAad,GAA4B,YAAYY,EAAiBC,CAAa,EAAE,IAAIH,CAAU,EAEnGK,EAAiBhB,EAAa,EAAII,EAClCa,EAAejB,EACfkB,EAAYjB,GAA4B,YAAYe,EAAgBC,CAAY,EAAE,IAAIN,CAAU,EAEhGQ,EAAiB,KAAK,IAAI,KAAK,IAAIpB,EAAcM,EAAmBS,EAAgBL,EAAe,CAAC,EAAGO,EAAiBP,EAAe,EAAIJ,EAAoB,CAAC,EAChKe,EAAeD,EAAiB,EAAId,EACpCgB,EAAYpB,GAA4B,YAAYkB,EAAgBC,CAAY,EAAE,IAAIT,CAAU,EAGpG,GADAD,EAAgB,KAAK,MAAMA,EAAiBK,CAAU,EAClD,CAACP,EAAc,CAEf,IAAIc,EAA0BH,EAAiB,EAC3CI,EAAkCD,IAA4BR,EAAgB,EAC9EU,EAA4BD,EAAiCZ,EAAaT,GAAqC,oBAC/GuB,EAAgBD,EAA0BF,CAAuB,EACrEZ,EAAgB,KAAKe,CAAa,CACrC,CAGD,GADAf,EAAgB,KAAK,MAAMA,EAAiBW,CAAS,EACjD,CAACb,EAAc,CAEf,IAAIkB,EAA2BN,EAAe,EAC1CO,EAAmCD,IAA6BV,EAAiB,EACjFY,EAA6BD,EAAkChB,EAAaT,GAAqC,qBACjH2B,EAAiBD,EAA2BF,CAAwB,EACxEhB,EAAgB,KAAKmB,CAAc,CACtC,CAEDnB,EAAgB,KAAK,MAAMA,EAAiBQ,CAAS,CACxD,CACD,OAAKZ,GACDI,EAAgB,KAAKR,GAAqC,mBAAmBrgL,CAAO,CAAC,EAEpF0gL,GACDG,EAAgB,KAAKR,GAAqC,mBAAmBrgL,CAAO,CAAC,EAElF6gL,CACX,CAC0BoB,GAAA,mBAAG3B,IAC7B,IAAIP,GAAkCv9I,GACtCy/I,GAAA,WAAqBlC,GAAgC,WACrDkC,GAAA,UAAoBlC,GAAgC,UCpGpD,OAAO,eAAemC,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,IAAAC,GAAAD,GAAA,WAAqBE,GAAAF,GAAA,yBAAmC,OAEpDl4H,GAAW,OAAO,QAAU,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,GAEnPw7D,IAAS7yB,EAET8yB,GAAUC,GAAuBF,GAAM,EAEvC8H,IAAan3B,GAEbo3B,GAAc7H,GAAuB4H,GAAU,EAE/C2oH,GAAsB7/I,GAE1B,SAASsvB,GAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,SAASu5D,IAAyBv5D,EAAK0J,EAAM,CAAE,IAAIxiB,EAAS,CAAE,EAAE,QAASoE,KAAK0U,EAAW0J,EAAK,QAAQpe,CAAC,GAAK,GAAkB,OAAO,UAAU,eAAe,KAAK0U,EAAK1U,CAAC,IAAapE,EAAOoE,CAAC,EAAI0U,EAAI1U,CAAC,GAAK,OAAOpE,CAAS,CAE5N,IAAIksL,IAAqC,SAA4CC,EAAqBrC,EAAaxsF,EAAU,CAC/H,IAAI8uF,EAA6B,SAAoCjyH,EAAM,CACzE,IAAI55D,EAAQ45D,EAAK,MACbu0B,EAAav0B,EAAK,WAEtB,OAAO,UAAY,CACb,CAACu0B,GAAc4O,GAAYwsF,IAAgBvpL,GAC7C+8F,EAAS/8F,CAAK,CAEtB,CACA,EAEE,OAAO,SAAUozB,EAAO,CACtB,IAAI04J,EAAgBF,EAAoBx4J,EAAM,IAAI,EAC9C24J,EAAcF,EAA2Bz4J,CAAK,EAClD,OAAO8nC,GAAQ,QAAQ,cAAc4wH,EAAez4H,GAAS,CAAE,QAAS04H,CAAW,EAAI34J,CAAK,CAAC,CACjG,CACA,EAEI44J,IAA2B,SAAkC3jH,EAAO,CACtE,IAAIujH,EAAsBvjH,EAAM,oBAC5B4jH,EAAwB5jH,EAAM,iBAC9B6jH,EAAmBD,IAA0B,OAAY,MAAQA,EAEjEE,EAA8B,SAAqC/4J,EAAO,CAC5E,IAAIm2J,EAAcn2J,EAAM,YACpBo2J,EAAap2J,EAAM,WACnBw2J,EAAqBx2J,EAAM,mBAC3By2J,EAAoBz2J,EAAM,kBAC1B42J,EAAe52J,EAAM,aACrB02J,EAA+B12J,EAAM,6BACrC22J,EAA4B32J,EAAM,0BAClC2pE,EAAW3pE,EAAM,SACjBrQ,EAAWqQ,EAAM,SACjBg5J,EAAYt6G,IAAyB1+C,EAAO,CAAC,cAAe,aAAc,qBAAsB,oBAAqB,eAAgB,+BAAgC,4BAA6B,WAAY,UAAU,CAAC,EAEzN82J,KAAsBwB,GAAoB,oBAAoB,CAChE,YAAanC,EACb,WAAYC,EACZ,mBAAoBI,EACpB,kBAAmBC,EACnB,aAAcG,EACd,6BAA8BF,EAC9B,0BAA2BC,CACjC,CAAK,EACGsC,EAAsBV,IAAmCC,EAAqBrC,EAAaxsF,CAAQ,EACvG,OAAO7hC,GAAQ,QAAQ,cACrBgxH,EACAE,EACAlC,EAAgB,IAAI,SAAUoC,EAAW,CACvC,OAAOD,EAAoBh5H,GAAS,CAAE,EAAEi5H,EAAW,CACjD,WAAY,CAAC,CAACvpK,CACf,EAAC,CACV,CAAO,CACP,CACA,EAEE,OAAAopK,EAA4B,UAAY,CACtC,YAAanpH,GAAY,QAAQ,OAAO,WACxC,WAAYA,GAAY,QAAQ,OAAO,WACvC,mBAAoBA,GAAY,QAAQ,OACxC,kBAAmBA,GAAY,QAAQ,OACvC,aAAcA,GAAY,QAAQ,KAClC,6BAA8BA,GAAY,QAAQ,KAClD,0BAA2BA,GAAY,QAAQ,KAC/C,SAAUA,GAAY,QAAQ,KAC9B,SAAUA,GAAY,QAAQ,IAClC,EAESmpH,CACT,EAEgCV,GAAAF,GAAA,yBAAGS,IACnCR,GAAkBD,GAAA,WAAGG,GAAoB,WCzFzC,MAAMa,MAAoC1sL,GAAA,CACxCA,EAAM,eAAe,EAClBsiB,GACL,EAEM+pK,IAAmB,CAAC,CAAE,SAAAtqH,KAC1B4iB,EAAC,OAAI,MAAO,CAAE,MAAO,OAAQ,UAAW,UACtC,SAAAA,EAAC,MAAG,UAAU,aAAc,SAAA5iB,EAAS,CACvC,GAGI4qH,IAAO,CAAC,CAAE,MAAAxsL,EAAO,SAAAs4K,EAAU,WAAAnqF,EAAY,QAAAxzB,CAAQ,IAClD6pB,EAAA,MAAG,UAAW8zF,EAAW,SAAWnqF,EAAa,WAAa,KAC7D,SAAA3J,EAAC,IAAE,MAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAC5C,SAAA36D,CACH,EACF,GAGIysL,IAAW,CAAC,CAAE,WAAAt+F,EAAY,QAAAxzB,KAC9B6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,cAElD,EACF,GAGI+xH,IAAgB,CAAC,CAAE,WAAAv+F,EAAY,QAAAxzB,KACnC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIgyH,IAAmB,CAAC,CAAE,WAAAx+F,EAAY,QAAAxzB,KACtC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIiyH,IAAe,CAAC,CAAE,WAAAz+F,EAAY,QAAAxzB,KAClC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIkyH,IAAe,CAAC,CAAE,WAAA1+F,EAAY,QAAAxzB,KAClC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIixH,IAAsB,CAC1B,CAACJ,GAAW,IAAI,EAAGgB,IACnB,CAAChB,GAAW,QAAQ,EAAGiB,IACvB,CAACjB,GAAW,eAAe,EAAGkB,IAC9B,CAAClB,GAAW,kBAAkB,EAAGmB,IACjC,CAACnB,GAAW,cAAc,EAAGoB,IAC7B,CAACpB,GAAW,cAAc,EAAGqB,GAC/B,EAEMC,IAAad,GAAyB,qBAC1CJ,IAAA,iBACAM,GACF,CAAC,ECrED,SAASa,IAAM,CAAE,SAAA3rL,EAAU,QAAA44K,GAAW,CACpC,KAAM,CAAC8M,EAAekG,CAAgB,EAAIrqF,WAAS,EAAK,EAClD,CAACmmF,EAAiBmE,CAAkB,EAAItqF,EAAA,SAAS,CAAE,GACnD,CAACkkF,EAAiBqG,CAAkB,EAAIvqF,EAAA,SAAS,CAAE,GACnD,CAACokF,EAAsBoG,CAAuB,EAAIxqF,WAAS,CAAC,EAC5D,CAACyqF,EAAYC,CAAa,EAAI1qF,WAAS,IAAI,EAC3C,CAACs0C,EAAMq2C,CAAO,EAAI3qF,WAAS,CAAC,EAC5B,CAAC3rF,EAAMu2K,CAAO,EAAI5qF,WAAS,IAAI,EAE/B6qF,EAAwBz1F,cAAak/C,GAAQ,CAC3C,MAAA9zG,EAAS,CAAE,KAAM8zG,GAGpB58D,GAAA,IAAI,gCAAiC,CAAE,OAAAl3C,CAAA,CAAgB,EACvD,KAAMphC,GAAa,CACZ,MAAE,gBAAA+mL,EAAiB,qBAAA/B,EAAsB,WAAAqG,EAAY,KAAAp2K,GAASjV,EAAS,KAE7EkrL,EAAmBnE,CAAe,EAClCuE,EAAcD,CAAU,EACxBG,EAAQv2K,CAAI,EACZg2K,EAAiB,EAAI,EACtB,CACL,EAAG,CAAE,GAEC,CAAC/kH,EAAOwlH,CAAS,EAAInX,IAASjrG,IAAOmiH,CAAqB,EAE1DE,EAAoBz2C,GAAS,CAAEq2C,EAAQr2C,CAAI,GAC3C+xC,EAAgB2E,GAAe,CAC/B,QAAQ,eAAe,GAEtBtzG,GAAA,OAAO,4BAA4BszG,CAAU,OAAO,EACpD,KAAM5rL,GAAayrL,EAAuB,EAC/C,EAGF50F,mBAAU,IAAM,CACdve,GACG,IAAI,+BAA+B,EACnC,KAAMt4E,GAAa,CAClB,KAAM,CAAE,gBAAA8kL,GAAoB9kL,EAAS,KACrCmrL,EAAmBrG,CAAe,EACnC,EAEmB2G,GACxB,EAAG,CAAE,GAEL50F,YAAU,IAAM,CACd40F,EAAsBv2C,CAAI,GACzB,CAACA,CAAI,CAAC,EAKJxzC,GAAAlf,GAAA,WAAAtc,EAEDuc,EAACtV,IAAA,CAAO,cAAA43G,EACA,qBAAAC,EACA,gBAAAF,EACA,gBAAiB4G,EACjB,KAAAz2K,CAAA,CAAW,EAEnBwtE,EAACopG,IAAA,CAAM,gBAAA9E,EACA,cAAe2E,EACf,aAAAzE,CAAA,CAA2B,EAEjCoE,GAAcA,EAAW,MAAQ,GAClC5oG,EAACsoG,IAAA,CACC,WAAYM,EAAW,MACvB,YAAaA,EAAW,KACxB,SAAUM,CAAA,CACZ,CAEF,GAEJ,CAEA,MAAeG,IAAApM,GAAWsL,GAAK,ECpF/Be,IAAe9U,GAAsB,ECMrC+U,GAAe,MAEV,MAAI,WAAU,kCACb,SAAAvpG,EAACw7F,YAAOhG,IACN,SAAAx1F,EAACg9F,GACC,UAAAh9F,EAAC08F,IAAM,KAAK,2BAA2B,UAAW8M,IAAU,EAC9D,CACF,EACF,uHCLAz2C,IAAkB,sBAGlB02C,GAAM,IAGNC,IAAY,kBAGZC,IAAS,aAGTC,IAAa,qBAGbC,IAAa,aAGbC,IAAY,cAGZC,IAAe,SAGf12C,IAAa,OAAOt9H,IAAU,UAAYA,IAAUA,GAAO,SAAW,QAAUA,GAGhFu9H,IAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxEzqI,IAAOwqI,KAAcC,KAAY,SAAS,aAAa,EAAC,EAGxDI,IAAc,OAAO,UAOrBI,IAAiBJ,IAAY,SAG7Bs2C,IAAY,KAAK,IACjBC,IAAY,KAAK,IAkBjB1gF,GAAM,UAAW,CACnB,OAAO1gG,IAAK,KAAK,KACnB,EAwDA,SAASqhL,IAAShjK,EAAM4B,EAAMjkB,EAAS,CACrC,IAAIoqF,EACAD,EACAm7F,EACAhrL,EACAirL,EACAC,EACAC,EAAiB,EACjBC,EAAU,GACVC,EAAS,GACTC,EAAW,GAEf,GAAI,OAAOvjK,GAAQ,WACjB,MAAM,IAAI,UAAU6rH,GAAe,EAErCjqH,EAAO4hK,GAAS5hK,CAAI,GAAK,EACrBsgC,GAASvkD,CAAO,IAClB0lL,EAAU,CAAC,CAAC1lL,EAAQ,QACpB2lL,EAAS,YAAa3lL,EACtBslL,EAAUK,EAASR,IAAUU,GAAS7lL,EAAQ,OAAO,GAAK,EAAGikB,CAAI,EAAIqhK,EACrEM,EAAW,aAAc5lL,EAAU,CAAC,CAACA,EAAQ,SAAW4lL,GAG1D,SAASE,EAAWrzJ,EAAM,CACxB,IAAIrW,EAAOguE,EACPxf,EAAUuf,EAEd,OAAAC,EAAWD,EAAW,OACtBs7F,EAAiBhzJ,EACjBn4B,EAAS+nB,EAAK,MAAMuoD,EAASxuD,CAAI,EAC1B9hB,CACR,CAED,SAASyrL,EAAYtzJ,EAAM,CAEzB,OAAAgzJ,EAAiBhzJ,EAEjB8yJ,EAAU,WAAWS,EAAc/hK,CAAI,EAEhCyhK,EAAUI,EAAWrzJ,CAAI,EAAIn4B,CACrC,CAED,SAAS2rL,EAAcxzJ,EAAM,CAC3B,IAAIyzJ,EAAoBzzJ,EAAO+yJ,EAC3BW,EAAsB1zJ,EAAOgzJ,EAC7BnrL,EAAS2pB,EAAOiiK,EAEpB,OAAOP,EAASP,IAAU9qL,EAAQgrL,EAAUa,CAAmB,EAAI7rL,CACpE,CAED,SAAS8rL,EAAa3zJ,EAAM,CAC1B,IAAIyzJ,EAAoBzzJ,EAAO+yJ,EAC3BW,EAAsB1zJ,EAAOgzJ,EAKjC,OAAQD,IAAiB,QAAcU,GAAqBjiK,GACzDiiK,EAAoB,GAAOP,GAAUQ,GAAuBb,CAChE,CAED,SAASU,GAAe,CACtB,IAAIvzJ,EAAOiyE,KACX,GAAI0hF,EAAa3zJ,CAAI,EACnB,OAAO4zJ,EAAa5zJ,CAAI,EAG1B8yJ,EAAU,WAAWS,EAAcC,EAAcxzJ,CAAI,CAAC,CACvD,CAED,SAAS4zJ,EAAa5zJ,EAAM,CAK1B,OAJA8yJ,EAAU,OAINK,GAAYx7F,EACP07F,EAAWrzJ,CAAI,GAExB23D,EAAWD,EAAW,OACf7vF,EACR,CAED,SAASw0E,GAAS,CACZy2G,IAAY,QACd,aAAaA,CAAO,EAEtBE,EAAiB,EACjBr7F,EAAWo7F,EAAer7F,EAAWo7F,EAAU,MAChD,CAED,SAASe,GAAQ,CACf,OAAOf,IAAY,OAAYjrL,EAAS+rL,EAAa3hF,GAAK,EAC3D,CAED,SAAS6hF,GAAY,CACnB,IAAI9zJ,EAAOiyE,GAAK,EACZ8hF,EAAaJ,EAAa3zJ,CAAI,EAMlC,GAJA23D,EAAW,UACXD,EAAW,KACXq7F,EAAe/yJ,EAEX+zJ,EAAY,CACd,GAAIjB,IAAY,OACd,OAAOQ,EAAYP,CAAY,EAEjC,GAAIG,EAEF,OAAAJ,EAAU,WAAWS,EAAc/hK,CAAI,EAChC6hK,EAAWN,CAAY,CAEjC,CACD,OAAID,IAAY,SACdA,EAAU,WAAWS,EAAc/hK,CAAI,GAElC3pB,CACR,CACD,OAAAisL,EAAU,OAASz3G,EACnBy3G,EAAU,MAAQD,EACXC,CACT,CA2BA,SAAShiI,GAAS5tD,EAAO,CACvB,IAAI+J,EAAO,OAAO/J,EAClB,MAAO,CAAC,CAACA,IAAU+J,GAAQ,UAAYA,GAAQ,WACjD,CA0BA,SAAS+lL,IAAa9vL,EAAO,CAC3B,MAAO,CAAC,CAACA,GAAS,OAAOA,GAAS,QACpC,CAmBA,SAASo3J,IAASp3J,EAAO,CACvB,OAAO,OAAOA,GAAS,UACpB8vL,IAAa9vL,CAAK,GAAKs4I,IAAe,KAAKt4I,CAAK,GAAKkuL,GAC1D,CAyBA,SAASgB,GAASlvL,EAAO,CACvB,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAIo3J,IAASp3J,CAAK,EAChB,OAAOiuL,GAET,GAAIrgI,GAAS5tD,CAAK,EAAG,CACnB,IAAIwgH,EAAQ,OAAOxgH,EAAM,SAAW,WAAaA,EAAM,QAAS,EAAGA,EACnEA,EAAQ4tD,GAAS4yD,CAAK,EAAKA,EAAQ,GAAMA,CAC1C,CACD,GAAI,OAAOxgH,GAAS,SAClB,OAAOA,IAAU,EAAIA,EAAQ,CAACA,EAEhCA,EAAQA,EAAM,QAAQmuL,IAAQ,EAAE,EAChC,IAAI4B,EAAW1B,IAAW,KAAKruL,CAAK,EACpC,OAAQ+vL,GAAYzB,IAAU,KAAKtuL,CAAK,EACpCuuL,IAAavuL,EAAM,MAAM,CAAC,EAAG+vL,EAAW,EAAI,CAAC,EAC5C3B,IAAW,KAAKpuL,CAAK,EAAIiuL,GAAM,CAACjuL,CACvC,CAEA,IAAAgwL,IAAiBtB,ICtXjB,SAASrpH,GAAQ9sD,EAAK,CAAE,0BAA2B,OAAO8sD,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU9sD,EAAK,CAAE,OAAO,OAAOA,GAAS,SAAUA,EAAK,CAAE,OAAOA,GAAqB,OAAO,QAArB,YAA+BA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAAI,EAAI8sD,GAAQ9sD,CAAG,CAAI,CAEhV,OAAO,eAAe++C,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACoBA,GAAA,cAAG,OAExB,IAAI2D,GAASE,GAAuB/yB,CAAgB,EAEhD6nJ,IAAU90H,GAAuBvvB,GAA0B,EAE3Dk6G,IAAY,CAAC,UAAW,WAAY,QAAS,YAAa,kBAAmB,qBAAsB,oBAAqB,YAAa,SAAU,UAAU,EAE7J,SAAS3qF,GAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAAWA,CAAG,CAAK,CAEjG,SAASu5D,IAAyB5kE,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,GAAI,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAAO1jD,EAAK9N,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAAG,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IAAO8N,EAAM4zE,EAAiB1hF,CAAC,EAAO,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IAAkB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAAI,CAAG,OAAOlS,CAAS,CAE5e,SAAS21D,IAA8BloD,EAAQmoD,EAAU,CAAE,GAAInoD,GAAU,KAAM,MAAO,CAAE,EAAE,IAAIzN,EAAS,CAAE,EAAM61D,EAAa,OAAO,KAAKpoD,CAAM,EAAOyE,EAAK,EAAG,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IAAO3jD,EAAM2jD,EAAW,CAAC,EAAO,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAAalS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAK,OAAOlS,CAAS,CAEnT,SAASwnF,GAAQt8D,EAAQu8D,EAAgB,CAAE,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAAGu8D,IAAmBz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CAAE,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAAW,CAAE,GAAIllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAAE,CAAG,OAAOxnB,CAAO,CAErV,SAAS8jI,GAActmJ,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAiB,UAAUrJ,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAE,EAAEA,EAAI,EAAIojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAE,EAAE,QAAQ,SAAUyE,EAAK,CAAEq1E,GAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAAI,GAAI,OAAO,0BAA4B,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAAI+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAAE,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOlS,CAAS,CAE1f,SAAS0jE,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,EAAM,CAE7T,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAAOC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EAAG,OAAO,eAAeviB,EAAa,YAAa,CAAE,SAAU,EAAO,GAAUA,CAAc,CAE7R,SAASG,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,oDAAoD,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,SAAU,GAAM,aAAc,EAAI,EAAI,EAAG,OAAO,eAAeA,EAAU,YAAa,CAAE,SAAU,EAAK,CAAE,EAAOC,GAAYJ,GAAgBG,EAAUC,CAAU,CAAI,CAEpc,SAASJ,GAAgB/rB,EAAGxP,EAAG,CAAEu7B,UAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CAAE,OAAAwP,EAAE,UAAYxP,EAAUwP,CAAE,EAAW+rB,GAAgB/rB,EAAGxP,CAAC,CAAI,CAE1K,SAASouD,IAAaC,EAAS,CAAE,IAAIC,EAA4BH,IAAyB,EAAI,OAAO,UAAgC,CAAE,IAAII,EAAQL,GAAgBG,CAAO,EAAG7jF,EAAQ,GAAI8jF,EAA2B,CAAE,IAAIE,EAAYN,GAAgB,IAAI,EAAE,YAAa1jF,EAAS,QAAQ,UAAU+jF,EAAO,UAAWC,CAAS,OAAYhkF,EAAS+jF,EAAM,MAAM,KAAM,SAAS,EAAK,OAAOpkB,IAA2B,KAAM3/D,CAAM,CAAE,CAAK,CAEza,SAAS2/D,IAA2Br5C,EAAMs5C,EAAM,CAAE,GAAIA,IAAS8B,GAAQ9B,CAAI,IAAM,UAAY,OAAOA,GAAS,YAAe,OAAOA,EAAa,GAAIA,IAAS,OAAU,MAAM,IAAI,UAAU,0DAA0D,EAAK,OAAOzI,GAAuB7wC,CAAI,CAAI,CAEhS,SAAS6wC,GAAuB7wC,EAAM,CAAE,GAAIA,IAAS,OAAU,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOA,CAAO,CAEtK,SAASq9D,KAA4B,CAA0E,GAApE,OAAO,QAAY,KAAe,CAAC,QAAQ,WAA6B,QAAQ,UAAU,KAAM,MAAO,GAAO,GAAI,OAAO,OAAU,WAAY,MAAO,GAAM,GAAI,CAAE,eAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,EAAU,EAAO,MAAW,CAAE,MAAO,GAAU,CAEzU,SAASD,GAAgB1+C,EAAG,CAAE0+C,UAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAAE,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CAAI,EAAS0+C,GAAgB1+C,CAAC,CAAI,CAE7M,SAASq+C,GAAgBzuE,EAAK5G,EAAK3R,EAAO,CAAE,OAAI2R,KAAO4G,EAAO,OAAO,eAAeA,EAAK5G,EAAK,CAAE,MAAO3R,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAM,GAAYuY,EAAI5G,CAAG,EAAI3R,EAAgBuY,CAAM,CAEjN,IAAI23K,GAA6B,SAAUC,EAAsB,CAC/D3sH,IAAU0sH,EAAeC,CAAoB,EAE7C,IAAInkG,EAASzE,IAAa2oG,CAAa,EAEvC,SAASA,EAAc98J,EAAO,CAC5B,IAAI2oC,EAEJoH,IAAgB,KAAM+sH,CAAa,EAEnCn0H,EAAQiwB,EAAO,KAAK,KAAM54D,CAAK,EAE/B4zD,GAAgBlsB,GAAuBiB,CAAK,EAAG,WAAY,SAAUl8D,EAAO,CAC1EA,EAAM,QAAO,EACb,IAAI4/K,EAAW1jH,EAAM,MAAM,MACvBq0H,EAAYr0H,EAAM,MAAM,UAE5BA,EAAM,SAAS,CACb,MAAOl8D,EAAM,OAAO,KAC5B,EAAS,UAAY,CACb,IAAIG,EAAQ+7D,EAAM,MAAM,MAExB,GAAI/7D,EAAM,QAAUowL,EAAW,CAC7Br0H,EAAM,OAAOl8D,CAAK,EAElB,MACD,CAGG4/K,EAAS,OAASz/K,EAAM,QAC1B+7D,EAAM,OAAOgqF,GAAcA,GAAc,GAAIlmJ,CAAK,EAAG,GAAI,CACvD,OAAQkmJ,GAAcA,GAAc,GAAIlmJ,EAAM,MAAM,EAAG,GAAI,CACzD,MAAO,EACrB,CAAa,CACF,EAAC,CAEZ,CAAO,CACP,CAAK,EAEDmnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,YAAa,SAAUl8D,EAAO,CACvEA,EAAM,MAAQ,SAChBk8D,EAAM,YAAYl8D,CAAK,EAIzB,IAAIo8D,EAAYF,EAAM,MAAM,UAExBE,IACFp8D,EAAM,QAAO,EACbo8D,EAAUp8D,CAAK,EAEvB,CAAK,EAEDmnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,SAAU,SAAUl8D,EAAO,CACxEk8D,EAAM,YAAYl8D,CAAK,EAGvB,IAAIyzE,EAASvX,EAAM,MAAM,OAErBuX,IACFzzE,EAAM,QAAO,EACbyzE,EAAOzzE,CAAK,EAEpB,CAAK,EAEDmnF,GAAgBlsB,GAAuBiB,CAAK,EAAG,iBAAkB,SAAUs0H,EAAiB,CAC1F,GAAIA,EAAkB,EACpBt0H,EAAM,OAAS,UAAY,CACzB,OAAO,IACjB,UACiBs0H,IAAoB,EAC7Bt0H,EAAM,OAASA,EAAM,aAChB,CACL,IAAIu0H,KAA0BL,IAAQ,SAAY,SAAUpwL,EAAO,CACjEk8D,EAAM,aAAe,GAErBA,EAAM,SAASl8D,CAAK,CACrB,EAAEwwL,CAAe,EAElBt0H,EAAM,OAAS,SAAUl8D,EAAO,CAC9Bk8D,EAAM,aAAe,GACrBu0H,EAAoBzwL,CAAK,CACnC,EAEQk8D,EAAM,MAAQ,UAAY,CACxB,OAAOu0H,EAAoB,OACrC,EAEQv0H,EAAM,OAAS,UAAY,CACzBA,EAAM,aAAe,GACrBu0H,EAAoB,OAAM,CACpC,CACO,CACP,CAAK,EAEDtpG,GAAgBlsB,GAAuBiB,CAAK,EAAG,WAAY,UAAY,CACrE,IAAIghC,EAAWhhC,EAAM,MAAM,SAC3BghC,EAAS,MAAM,OAAQ,SAAS,CACtC,CAAK,EAED/V,GAAgBlsB,GAAuBiB,CAAK,EAAG,cAAe,SAAUl8D,EAAO,CAC7E,IAAIwwL,EAAkBt0H,EAAM,MAAM,gBAElC,GAAI,GAACA,EAAM,cAAgBs0H,EAAkB,GAI7C,CAAIt0H,EAAM,QACRA,EAAM,OAAM,EAGd,IAAI/7D,EAAQ+7D,EAAM,MAAM,MACpBq0H,EAAYr0H,EAAM,MAAM,UAExB/7D,EAAM,QAAUowL,EAClBr0H,EAAM,SAASl8D,CAAK,EAEpBk8D,EAAM,SAASgqF,GAAcA,GAAc,GAAIlmJ,CAAK,EAAG,GAAI,CACzD,OAAQkmJ,GAAcA,GAAc,GAAIlmJ,EAAM,MAAM,EAAG,GAAI,CACzD,MAAOG,CACnB,CAAW,CACF,EAAC,EAEV,CAAK,EAED+7D,EAAM,aAAe,GACrBA,EAAM,MAAQ,CACZ,MAAO,OAAO3oC,EAAM,MAAU,KAAeA,EAAM,QAAU,KAAO,GAAKA,EAAM,KACrF,EACI,IAAIm9J,EAAoBx0H,EAAM,MAAM,gBAEpC,OAAAA,EAAM,eAAew0H,CAAiB,EAE/Bx0H,CACR,CAED0pB,WAAayqG,EAAe,CAAC,CAC3B,IAAK,qBACL,MAAO,SAA4B94H,EAAW,CAC5C,GAAI,MAAK,aAIT,KAAIqD,EAAc,KAAK,MACnBz6D,EAAQy6D,EAAY,MACpB41H,EAAkB51H,EAAY,gBAC9B+1H,EAAap5H,EAAU,gBACvBqoH,EAAWroH,EAAU,MACrBq5H,EAAa,KAAK,MAAM,MAExB,OAAOzwL,EAAU,KAAey/K,IAAaz/K,GAASywL,IAAezwL,GAGvE,KAAK,SAAS,CACZ,MAAOA,CACjB,CAAS,EAGCqwL,IAAoBG,GACtB,KAAK,eAAeH,CAAe,EAEtC,CACL,EAAK,CACD,IAAK,uBACL,MAAO,UAAgC,CACjC,KAAK,OACP,KAAK,MAAK,CAEb,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACnB,IAAAr0H,EAAe,KAAK,MACpBt8D,EAAUs8D,EAAa,QACXA,EAAa,SAChBA,EAAa,MACTA,EAAa,UACPA,EAAa,gBAC1C,IAAU00H,EAAqB10H,EAAa,mBAClC20H,EAAoB30H,EAAa,kBACjCC,EAAYD,EAAa,UACzBsX,EAAStX,EAAa,OACtB8yF,EAAW9yF,EAAa,SACxB5oC,EAAQ0+C,IAAyB9V,EAAc8pF,GAAS,EAExD9lJ,EAAQ,KAAK,MAAM,MACnB4wL,EAEAF,EACFE,EAAiB,CACf,UAAW,KAAK,SAC1B,EACiB30H,EACT20H,EAAiB,CACf,UAAW30H,CACrB,EAEQ20H,EAAiB,GAGnB,IAAIC,EAEAF,EACFE,EAAc,CACZ,OAAQ,KAAK,MACvB,EACiBv9G,EACTu9G,EAAc,CACZ,OAAQv9G,CAClB,EAEQu9G,EAAc,GAGhB,IAAIC,EAAWhiC,EAAW,CACxB,IAAKA,CACN,EAAG,GACJ,OAAoB7zF,GAAO,QAAW,cAAcv7D,EAASqmJ,GAAcA,GAAcA,GAAcA,GAAc,GAAI3yH,CAAK,EAAG,GAAI,CACnI,SAAU,KAAK,SACf,MAAOpzB,CACR,EAAE4wL,CAAc,EAAGC,CAAW,EAAGC,CAAQ,CAAC,CAC5C,CACF,EAAC,EAEKZ,CACT,EAAEj1H,GAAO,QAAW,aAAa,EAEZ3D,GAAA,cAAG44H,GAExBlpG,GAAgBkpG,GAAe,eAAgB,CAC7C,QAAS,QACT,KAAM,OACN,UAAW,OACX,OAAQ,OACR,MAAO,OACP,UAAW,EACX,gBAAiB,IACjB,mBAAoB,GACpB,kBAAmB,GACnB,SAAU,MACZ,CAAC,EC7RD,IAAIa,IAAW3oJ,GACX8nJ,GAAgBa,IAAS,cAE7Bb,GAAc,cAAgBA,GAC9B,IAAAc,IAAiBd,GCJV,MAAMe,GAAgBC,gBAAoB,EAAE,EACtCC,GAAkBD,gBAAoB,EAAE,EACxCE,GAAmBF,EAAoB,gBAAE,ECAtDG,IAAe,CAAC,CAAE,KAAAC,EAAM,QAAAC,KACFztG,aAAWmtG,EAAa,IAKzC,MAAI,WAAU,cACb,SAACxtF,GAAA,OAAI,UAAU,0CACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAO,YACxDA,EAAC0rG,IAAA,eACC,UAAU,+BACV,KAAK,gBACL,UAAW,EACX,gBAAiB,IACjB,MAAOoB,EACP,SAAUn+K,GAAKo+K,EAAQp+K,EAAE,OAAO,KAAK,EACvC,EACF,EACF,GAfuB,KCHZq+K,IAAA,CAAC,CAAE,QAAA92G,EAAS,WAAA+2G,EAAY,SAAAC,EAAU,SAAAtwL,KAAe,CAC9D,MAAM+hC,EAAS,IAAI,gBAAgB/hC,EAAS,MAAM,EAC5C,CAAE,WAAAuwL,CAAA,EAAe7tG,EAAA,WAAWqtG,EAAe,EAC3C,CAAC/tF,EAAQwuF,CAAS,EAAIjvF,EAAA,SAAS,CAAE,GAEvC/J,YAAU,IAAM,CACd84F,EAAS,EAAK,EAEdr3G,GACG,IAAI,+BAA+B,EACnC,KAAMt4E,GAAa,CACZqhG,QAASyuF,EAAc9vL,EAAS,IAAI,EAItC,GAFJ6vL,EAAUxuF,CAAM,EAEZuuF,GAAcvuF,EAAO,SAAW,EAAG,CACrC,IAAI0uF,EAAe,SAAS3uJ,EAAO,IAAI,UAAU,CAAC,EAC9C4uJ,EAAkB3uF,EAAO,IAAIr6F,GAAKA,EAAE,EAAE,EAAE,SAAS+oL,CAAY,EAAIA,EAAe1uF,EAAO,CAAC,EAAE,GAC9FquF,EAAWM,CAAe,CAC5B,CAEA,GAAI,CAACJ,EAAY,CACX,IAAAI,EAAkB3uF,EAAO,CAAC,EAAE,GAChCquF,EAAWM,CAAe,CAC5B,CAEAL,EAAS,EAAI,EACd,GACF,CAACC,CAAU,CAAC,EAET,MAAAE,EAAiBzuF,IACjB,CAACuuF,GAAcvuF,EAAO,OAAS,GAAGA,EAAO,QAAQ,CAAE,GAAI,GAAK,MAAO,aAAc,EAC9EA,GAIP,OAAAK,GAAC,MAAI,WAAU,6CACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAM,WACvDA,EAAC,UAAO,UAAU,+BACV,KAAK,mBACL,MAAO9J,EACP,SAAWvnE,GAAMs+K,EAAWt+K,EAAE,OAAO,KAAK,EAC/C,SAAOiwF,EAAA,IACNC,GAAA7e,EAAC,SAAsB,OAAO6e,EAAM,GAAK,SAAMA,EAAA,OAAlCA,EAAM,EAAkC,CACtD,EACH,CACF,GAEJ,ECjDMixC,IAAc,CAClB,CAAE,GAAI,uBAAwB,MAAO,sBAAuB,EAC5D,CAAE,GAAI,YAAa,MAAO,WAAY,EACtC,CAAE,GAAI,QAAS,MAAO,OAAQ,EAC9B,CAAE,GAAI,YAAa,MAAO,WAAY,EACtC,CAAE,GAAI,YAAa,MAAO,WAAY,EACtC,CAAE,GAAI,aAAc,MAAO,YAAa,EACxC,CAAE,GAAI,aAAc,MAAO,YAAa,EACxC,CAAE,GAAI,SAAU,MAAO,QAAS,CAClC,EAEe09C,IAAA,CAAC,CAAE,WAAAnjE,EAAY,cAAA4d,EAAe,UAAA1d,EAAW,aAAAkc,EAAc,QAAAjc,EAAS,WAAAmc,KAE3E1nC,GAAAlf,GAAA,WAACkf,GAAA,OAAI,UAAU,oCACb,UAACjf,EAAA,SAAM,UAAU,uCAAuC,SAAY,iBACnE8vD,IAAY,IACXt9H,GAAAwtE,EAAC,QAAK,UAAU,QACd,YAAC,QACC,WAAAA,EAAC,SAAM,UAAU,yBACV,KAAK,QACL,MAAOxtE,EAAK,GACZ,QAAS63G,IAAe73G,EAAK,GAC7B,SAAU,IAAMy1H,EAAcz1H,EAAK,EAAE,EACrC,KAAK,sBAAqB,EAChCA,EAAK,KACR,KAT2BA,EAAK,EAUlC,CACD,GACH,EACC63G,IAAe,UACfprB,GAAA,OAAI,UAAU,eACb,UAACA,GAAA,OAAI,UAAU,6BACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAEjD,eACAA,EAAC0qE,GAAA,CACC,SAAUjkB,EACV,MAAOlc,EACP,KAAM,qBACN,UAAW,CAAC,KAAK,EACnB,GACF,EACAtrB,GAAC,MAAI,WAAU,6BACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAEjD,aACAA,EAAC0qE,GAAA,CACC,SAAU/jB,EACV,MAAOnc,EACP,KAAM,mBACN,UAAW,CAAC,KAAK,EACnB,GACF,GACF,GAEF,ECvDIijE,IAAY,CAChB,CAAE,GAAI,MAAO,MAAO,iBAAkB,EACtC,CAAE,GAAI,KAAM,MAAO,qBAAsB,CAC3C,EAEAC,IAAe,IAAM,CACb,MAAAC,EAAcruG,aAAWmtG,EAAa,EACtC,CAAE,SAAAmB,EAAU,YAAAC,CAAY,EAAIvuG,aAAWqtG,EAAe,EAE5D,OAAKgB,EAGH1uF,GAAC,MAAI,WAAU,oCACb,UAACjf,EAAA,SAAM,UAAU,uCAAuC,SAAW,gBAClEytG,IAAU,IACTj7K,GAAAwtE,EAAC,QAAK,UAAU,QACd,YAAC,QACC,WAAAA,EAAC,SAAM,UAAU,yBACV,KAAK,QACL,MAAOxtE,EAAK,GACZ,QAASo7K,IAAap7K,EAAK,GAC3B,SAAU,IAAMq7K,EAAYr7K,EAAK,EAAE,EACnC,KAAK,oBAAmB,EAC9BA,EAAK,KACR,KAT2BA,EAAK,EAUlC,CACD,CACH,MAlBwB,QAAM,MAAK,SAAS,KAAK,oBAAoB,MAAM,IAAI,EAoBnF,EC1BAs7K,IAAe,CAAC,CAAE,MAAAr3B,EAAO,SAAAy2B,EACP,KAAAJ,EAAM,QAAAC,EACN,QAAA72G,EAAS,WAAA+2G,EACT,SAAAW,EAAU,YAAAC,EACV,WAAAxjE,EAAY,cAAA4d,EACZ,UAAA1d,EAAW,aAAAkc,EACX,QAAAjc,EAAS,WAAAmc,EACT,SAAA/pI,CAAS,IAAM,CAE/B,KAAM,CAACmxL,EAAkBC,CAAmB,EAAI7vF,WAAS,EAAK,EAE9D/J,mBAAU,IAAK,CAAE84F,EAASa,CAAgB,GAAK,CAACA,CAAgB,CAAC,EAI7D9uF,GAAAlf,GAAA,WAACkf,GAAA,OAAI,UAAU,qBACb,UAAAjf,EAACiuG,IAAA,CACC,KAAAnB,EACA,QAAAC,CAAA,CACF,EAEA/sG,EAACkuG,IAAA,CACC,QAAAh4G,EACA,WAAA+2G,EACA,MAAOc,EACP,SAAUC,EACV,SAAApxL,CAAA,CACF,GACF,EAEAojF,EAAC0tG,IAAA,CACC,SAAAE,EACA,YAAAC,CAAA,CACF,EAEA7tG,EAACwtG,IAAA,CACC,WAAAnjE,EACA,cAAA4d,EACA,UAAA1d,EACA,aAAAkc,EACA,QAAAjc,EACA,WAAAmc,CAAA,CACF,CACF,GAEJ,EChDej8D,IAAA,CAAC,CAAE,gBAAAyjH,EAAiB,SAAAC,EAAU,eAAAC,EAAgB,gBAAAC,KAAsB,CACjF,KAAM,CAAE,WAAAnB,CAAA,EAAe7tG,EAAA,WAAWqtG,EAAe,EAG/C,OAAA3sG,EAAC,QACD,UAAAif,GAAC,KACE,WAAAkvF,KAAoB,KAAG,WAAU,KAAM,SAAAhB,EAAa,OAAS,QAAQ,EACrEntG,EAAA,MAAG,UAAU,cAAc,SAAI,SAChCA,EAAC,MAAG,SAAU,eACdA,EAAC,MAAG,SAAQ,aACXA,EAAA,MAAG,UAAU,cAAc,SAAI,SAChCA,EAAC,MAAG,SAAK,UACRmtG,GACDluF,GAAC,KAAG,WAAU,iBACV,UAAC,CAAAmvF,GAAY,CAACC,GAAmB,UAClCD,GACDpuG,EAAC,MAAI,WAAU,cACb,SAAAA,EAAC,SACC,MAAO,CAAE,OAAQ,SAAU,EAC3B,KAAK,WACL,QAAUrxE,GAAM2/K,EAAgB3/K,CAAC,IAErC,EAEC0/K,GACDruG,EAAC,MAAI,WAAU,cACb,SAAAA,EAAC,SACC,MAAO,CAAE,OAAQ,SAAU,EAC3B,KAAK,WACL,QAAUrxE,GAAM2/K,EAAgB3/K,CAAC,IAErC,GAEF,EAEF,EACA,EAEJ,ECvCM4/K,IAAS,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC1DC,IAAa,CAAC,SAAU,OAAO,EAC/BC,GAAmB,CAAC,QAAS,MAAM,EACnCC,IAAW,CACf,MAAS,CAAE,OAAUD,GAAkB,MAASA,GAAiB,MAAM,EAAG,CAAC,CAAE,EAC7E,IAAO,CAAE,OAAUA,GAAkB,MAASA,EAAiB,CACjE,EAEeE,IAAC//J,GAAU,CACxB,KAAM,CAAE,eAAAggK,EAAgB,iBAAAC,EAAkB,eAAAC,EAAgB,uBAAAC,GAA2BngK,EAC/E,CAAE,SAAArQ,EAAU,KAAAzjB,EAAM,MAAA2N,CAAA,EAAUmmB,EAC5B,CAACogK,EAAiBC,CAAkB,EAAI9wF,WAAS4wF,GAA0B,EAAK,EAChF,CAAE,oBAAAG,CAAwB,EAAAtgK,EAC1B,CAACorE,EAAWm1F,CAAY,EAAIhxF,WAAS0wF,CAAgB,EAE3D,OAEI5vF,GAAAlf,GAAA,WAACkf,GAAA,OAAI,UAAU,cAAc,MAAO,CAAE,MAAO,IAAK,QAAS,gBACzD,UAAAjf,EAAC,UAAO,aAAc4uG,EACd,UAAU,+BACV,KAAM,cAAcnmL,CAAK,KAAK3N,CAAI,YAClC,SAAAyjB,EACA,SAAWljB,GAAQ,CAAsB6zL,EAAAp0L,EAAMO,EAAM,OAAO,KAAK,CAAE,EACxE,SAAAkzL,IAAO,IAAa1nE,GAAA7mC,EAAC,UAAmB,MAAO6mC,EAAQ,SAAtBA,CAAA,EAAAA,CAA4B,CAAS,EACzE,EAAS,UAIT7mC,EAAC,UAAO,aAAc6uG,EACd,UAAU,+BACV,KAAM,cAAcpmL,CAAK,KAAK3N,CAAI,cAClC,SAAAyjB,EACA,SAAW5P,GAAKwgL,EAAaxgL,EAAE,OAAO,KAAK,EAChD,SAAA6/K,IAAW,IAAW3tK,GAAAm/D,EAAC,UAAiB,MAAOn/D,EAAM,SAAlBA,CAAA,EAAAA,CAAsB,CAAS,EACrE,EAEAm/D,EAAC,UAAO,aAAc8uG,EACd,UAAU,+BACV,KAAM,cAAcrmL,CAAK,KAAK3N,CAAI,YAClC,SAAAyjB,EACJ,UAASmwK,IAAA5zL,CAAI,EAAEk/F,CAAS,GAAK,IAAI,IAAI3vF,KAAY,SAAqB,OAAOA,EAAU,SAAAA,CAAA,EAA1BA,CAAkC,CAAS,EAC5G,EAAS,aAGX,EAEC21E,EAAA,OAAI,UAAU,kCAAkC,MAAO,CAAE,OAAQ,oBAChE,SAAAif,GAAC,OAAK,WAAU,WACd,UAACjf,EAAA,SAAM,KAAK,SAAS,KAAM,cAAcv3E,CAAK,KAAK3N,CAAI,qBAAsB,MAAM,GAAG,GACtFklF,EAAC,SACC,UAAU,uBACV,KAAK,WACL,KAAM,cAAcv3E,CAAK,KAAK3N,CAAI,qBAClC,MAAM,IACN,SAAU,IAAMm0L,EAAmB,CAACD,CAAe,EACnD,SAAAzwK,EACA,QAASywK,CAAA,CACX,IACC,OAAK,OAAO,CAAE,WAAY,GAAK,SAEhC,mCACF,CACF,EACF,GAEJ,EC9DeI,GAACxgK,GAAU,CACxB,KAAM,CAACygK,EAAYC,CAAa,EAAInxF,EAAS,SAAAvvE,EAAM,mBAAqB,UAAU,EAC5E,CAAE,KAAA9zB,EAAM,MAAA2N,EAAO,aAAArB,CAAA,EAAiBwnB,EAChC,CAAE,eAAAggK,EAAgB,iBAAAC,EAAkB,eAAAC,EAAgB,uBAAAC,EAAwB,iBAAAQ,CAAqB,EAAA3gK,EACjG,CAAE,oBAAAsgK,CAAwB,EAAAtgK,EAEhC,OAEIqwE,GAAAlf,GAAA,WAACC,EAAA,OAAI,UAAU,oCACb,SAAAA,EAAC,OAAI,UAAU,oBACb,YAAC,QACC,WAAAA,EAAC,SAAM,KAAK,QACL,MAAM,QACN,QAASqvG,IAAe,QACxB,KAAM,cAAc5mL,CAAK,KAAK3N,CAAI,gBAClC,SAAU,IAAIw0L,EAAc,OAAO,EACnC,MAAO,CAAE,YAAa,EAAG,EAAE,EAElCtvG,EAACgwF,GAAA,CACC,UAAU,yBACV,KAAM,cAAcvnK,CAAK,KAAK3N,CAAI,SAClC,aAAAsM,EACA,WAAY,GACZ,cAAa,GACb,SAAUioL,IAAe,QACzB,WAAY,EACZ,WAAY,GACd,EACF,EACF,GACF,EAEArvG,EAAC,OAAI,UAAU,oCACb,WAAC,MAAI,WAAU,QACb,SAAAif,GAAC,QACC,WAAAjf,EAAC,SACC,KAAK,QACL,MAAM,WACN,QAASqvG,IAAe,WACxB,SAAU,IAAIC,EAAc,UAAU,EACtC,KAAM,cAAc7mL,CAAK,KAAK3N,CAAI,gBAClC,MAAO,CAAE,YAAa,EAAG,EAC3B,EACAklF,EAAC2uG,IAAA,CACC,MAAAlmL,EACA,KAAA3N,EACA,eAAA8zL,EACA,iBAAAC,EACA,eAAAC,EACA,uBAAAC,EACA,SAAUM,IAAe,WACzB,oBAAAH,CAAA,CACF,EACF,EACF,GACF,CACF,GAEJ,qEC/DA;AACA;AACA;AACA;AACA;AAAA,CAEC,SAAUrmL,EAAMmN,EAAS,CAISC,EAAO,QACxCA,EAAiB,QAAAD,EAAQ4tB,GAAiB,EAI1C5tB,EAAQnN,EAAK,MAAM,CAErB,GAAEqN,GAAM,SAAUi0G,EAAQ,CAIrBA,EAAO,UAAY,QAAaA,EAAO,UAC1CA,EAASA,EAAO,SASjB,IAAIqlE,EAAU,SACbC,EAAQ,CAAE,EACVC,EAAQ,CAAE,EACVC,EAAY,CAAE,EACdliI,EAAQ,CAAE,EACVmiI,EAAU,CAAE,EACZC,GAEG,CAAC1lE,GAAU,OAAOA,EAAO,SAAY,WACxC2lE,EAAS,8FAA8F,EAGxG,IAAIC,EAAgB5lE,EAAO,QAAQ,MAAM,GAAG,EAC3C6lE,EAAQ,CAACD,EAAc,CAAC,EACxBE,EAAQ,CAACF,EAAc,CAAC,GAGrBC,EAAQ,GAAMA,IAAU,GAAKC,EAAQ,IACxCH,EAAS,wEAA0E3lE,EAAO,QAAU,oBAAoB,EAOzH,SAAS+lE,EAAcC,GAAU,CAChC,OAAIA,GAAW,GACPA,GAAW,GACRA,GAAW,GACdA,GAAW,GAEZA,GAAW,EAClB,CAED,SAASC,EAAahxL,GAAQ,CAC7B,IAAIC,GAAI,EACPg1B,GAAQj1B,GAAO,MAAM,GAAG,EACxBixL,GAAQh8J,GAAM,CAAC,EACfi8J,GAAaj8J,GAAM,CAAC,GAAK,GACzBk8J,GAAa,EACbh7K,GACAg2C,GAAM,EACNu+C,GAAO,EASR,IANI1qG,GAAO,WAAW,CAAC,IAAM,KAC5BC,GAAI,EACJyqG,GAAO,IAIHzqG,GAAGA,GAAIgxL,GAAM,OAAQhxL,KACzBkW,GAAM26K,EAAcG,GAAM,WAAWhxL,EAAC,CAAC,EACvCksD,GAAM,GAAKA,GAAMh2C,GAIlB,IAAKlW,GAAI,EAAGA,GAAIixL,GAAW,OAAQjxL,KAClCkxL,GAAaA,GAAa,GAC1Bh7K,GAAM26K,EAAcI,GAAW,WAAWjxL,EAAC,CAAC,EAC5CksD,IAAOh2C,GAAMg7K,GAGd,OAAOhlI,GAAMu+C,EACb,CAED,SAAS0mF,EAAY/5K,GAAO,CAC3B,QAASpX,GAAI,EAAGA,GAAIoX,GAAM,OAAQpX,KACjCoX,GAAMpX,EAAC,EAAI+wL,EAAa35K,GAAMpX,EAAC,CAAC,CAEjC,CAED,SAASoxL,EAAYh6K,GAAO/E,GAAQ,CACnC,QAASrS,GAAI,EAAGA,GAAIqS,GAAQrS,KAC3BoX,GAAMpX,EAAC,EAAI,KAAK,OAAOoX,GAAMpX,GAAI,CAAC,GAAK,GAAMoX,GAAMpX,EAAC,EAAI,GAAM,EAG/DoX,GAAM/E,GAAS,CAAC,EAAI,GACpB,CAED,SAASg/K,EAAYhoL,GAAQioL,GAAS,CACrC,IAAIplI,GAAM,CAAE,EAAElsD,GAEd,IAAKA,GAAI,EAAGA,GAAIsxL,GAAQ,OAAQtxL,KAC/BksD,GAAIlsD,EAAC,EAAIqJ,GAAOioL,GAAQtxL,EAAC,CAAC,EAG3B,OAAOksD,EACP,CAED,SAASqlI,EAAQxxL,GAAQ,CACxB,IAAI2qB,GAAO3qB,GAAO,MAAM,GAAG,EAC1ByxL,GAAU9mK,GAAK,CAAC,EAAE,MAAM,GAAG,EAC3B4mK,GAAU5mK,GAAK,CAAC,EAAE,MAAM,EAAE,EAC1B+mK,GAAU/mK,GAAK,CAAC,EAAE,MAAM,GAAG,EAE5B,OAAAymK,EAAWK,EAAO,EAClBL,EAAWG,EAAO,EAClBH,EAAWM,EAAM,EAEjBL,EAAWK,GAAQH,GAAQ,MAAM,EAE1B,CACN,KAAa5mK,GAAK,CAAC,EACnB,MAAa2mK,EAAW3mK,GAAK,CAAC,EAAE,MAAM,GAAG,EAAG4mK,EAAO,EACnD,QAAaD,EAAWG,GAASF,EAAO,EACxC,OAAaG,GACb,WAAa/mK,GAAK,CAAC,EAAI,CAC1B,CACE,CAMD,SAASgnK,EAAMC,GAAc,CACxBA,IACH,KAAK,KAAKJ,EAAOI,EAAY,CAAC,CAE/B,CAEDD,EAAK,UAAY,CAChB,KAAO,SAAUE,GAAU,CAC1B,KAAK,KAAaA,GAAS,KAC3B,KAAK,MAAaA,GAAS,MAC3B,KAAK,OAAaA,GAAS,OAC3B,KAAK,QAAaA,GAAS,QAC3B,KAAK,WAAaA,GAAS,UAC3B,EAED,OAAS,SAAU18D,GAAW,CAC7B,IAAIt5H,GAAS,CAACs5H,GACbu8D,GAAS,KAAK,OACdzxL,GAED,IAAKA,GAAI,EAAGA,GAAIyxL,GAAO,OAAQzxL,KAC9B,GAAIpE,GAAS61L,GAAOzxL,EAAC,EACpB,OAAOA,EAGT,EAED,UAAY,UAAY,CACvB,IAAI6xL,GAAY,KAAK,KACrB,OAAO,OAAO,KAAKvB,CAAS,EAAE,OAAO,SAAUwB,GAAc,CAC5D,OAAOxB,EAAUwB,EAAY,EAAE,MAAM,QAAQD,EAAS,IAAM,EAChE,CAAI,CACD,EAED,MAAQ,SAAU38D,GAAW,CAC5B,IAAIt5H,GAAU,CAACs5H,GACds8D,GAAU,KAAK,QACfC,GAAU,KAAK,OACfp4J,GAAUo4J,GAAO,OAAS,EAC1BtxJ,GAAQ4xJ,GAAYC,GAAYhyL,GAEjC,IAAKA,GAAI,EAAGA,GAAIq5B,GAAKr5B,KAWpB,GAVAmgC,GAAaqxJ,GAAQxxL,EAAC,EACtB+xL,GAAaP,GAAQxxL,GAAI,CAAC,EAC1BgyL,GAAaR,GAAQxxL,IAAIA,GAAI,CAAK,EAE9BmgC,GAAS4xJ,IAAcE,GAAG,qBAC7B9xJ,GAAS4xJ,GACC5xJ,GAAS6xJ,IAAcC,GAAG,qBACpC9xJ,GAAS6xJ,IAGNp2L,GAAS61L,GAAOzxL,EAAC,EAAKmgC,GAAS,IAClC,OAAOqxJ,GAAQxxL,EAAC,EAIlB,OAAOwxL,GAAQn4J,EAAG,CAClB,EAED,KAAO,SAAU4wE,GAAK,CACrB,OAAO,KAAK,MAAM,KAAK,OAAOA,EAAG,CAAC,CAClC,EAED,OAAS,SAAUA,GAAK,CACvB,OAAAwmF,EAAS,4DAA4D,EAC9D,KAAK,QAAQ,KAAK,OAAOxmF,EAAG,CAAC,CACpC,EAED,UAAY,SAAUA,GAAK,CAC1B,OAAO,KAAK,QAAQ,KAAK,OAAOA,EAAG,CAAC,CACpC,CACH,EAMC,SAASioF,EAASC,GAAcC,GAAY,CAC3C,KAAK,KAAOD,GACZ,KAAK,MAAQC,EACb,CAMD,SAASC,EAASC,GAAI,CACrB,IAAIC,GAAaD,GAAG,eAChBztE,GAAO0tE,GAAW,MAAM,cAAc,EACtC1tE,IAAQA,GAAK,CAAC,GAGjBA,GAAOA,GAAK,CAAC,EAAE,MAAM,QAAQ,EAC7BA,GAAOA,GAAOA,GAAK,KAAK,EAAE,EAAI,SAI9BA,GAAO0tE,GAAW,MAAM,aAAa,EACrC1tE,GAAOA,GAAOA,GAAK,CAAC,EAAI,QAGrBA,KAAS,QACZA,GAAO,QAGR,KAAK,GAAK,CAACytE,GACX,KAAK,KAAOztE,GACZ,KAAK,OAASytE,GAAG,mBACjB,CAED,SAASE,EAAU7vE,GAAM,CACxB,KAAK,KAAOA,GACZ,KAAK,YAAc,EACnB,KAAK,UAAY,CACjB,CAED6vE,EAAU,UAAU,cAAgB,SAAUC,GAAU,CACvD,KAAK,aAAe,KAAK,IAAI,KAAK,KAAK,UAAUA,GAAS,EAAE,EAAIA,GAAS,MAAM,EAC3E,KAAK,KAAK,KAAKA,GAAS,EAAE,EAAE,QAAQ,UAAW,EAAE,IAAMA,GAAS,MACnE,KAAK,WAER,EAEC,SAASC,EAAWC,GAAKx1K,GAAM,CAG9B,QAFIy1K,GAAK9zK,GAEDA,KAAS3B,GAAK,GAAKw1K,GAAI,IAAM,KAAO,GAAK,KAChDC,GAAM,IAAIP,EAAS,IAAI,KAAKM,GAAI,GAAK7zK,EAAI,CAAC,EACtC8zK,GAAI,SAAWD,GAAI,OACtBA,GAAMC,GAENz1K,GAAOy1K,GAIT,OAAOD,EACP,CAED,SAASE,GAAc,CACtB,IAAI3qD,GAAY,IAAI,OAAO,YAAa,EAAG,EAC1CnnH,GAAO,IAAIsxK,EAAS,IAAI,KAAKnqD,GAAW,EAAG,CAAC,CAAC,EAC7CspD,GAAU,CAACzwK,EAAI,EACf4jE,GAAQ5uE,GAAM/V,GAEf,IAAKA,GAAI,EAAGA,GAAI,GAAIA,KACnB+V,GAAO,IAAIs8K,EAAS,IAAI,KAAKnqD,GAAWloI,GAAG,CAAC,CAAC,EACzC+V,GAAK,SAAWgL,GAAK,SACxB4jE,GAAS+tG,EAAW3xK,GAAMhL,EAAI,EAC9By7K,GAAQ,KAAK7sG,EAAM,EACnB6sG,GAAQ,KAAK,IAAIa,EAAS,IAAI,KAAK1tG,GAAO,GAAK,GAAG,CAAC,CAAC,GAErD5jE,GAAOhL,GAGR,IAAK/V,GAAI,EAAGA,GAAI,EAAGA,KAClBwxL,GAAQ,KAAK,IAAIa,EAAS,IAAI,KAAKnqD,GAAYloI,GAAG,EAAG,CAAC,CAAC,CAAC,EACxDwxL,GAAQ,KAAK,IAAIa,EAAS,IAAI,KAAKnqD,GAAYloI,GAAG,EAAG,CAAC,CAAC,CAAC,EAGzD,OAAOwxL,EACP,CAED,SAASsB,EAAgBv3K,GAAGC,GAAG,CAC9B,OAAID,GAAE,cAAgBC,GAAE,YAChBD,GAAE,YAAcC,GAAE,YAEtBD,GAAE,YAAcC,GAAE,UACdD,GAAE,UAAYC,GAAE,UAEpBD,GAAE,KAAK,aAAeC,GAAE,KAAK,WACzBA,GAAE,KAAK,WAAaD,GAAE,KAAK,WAE5BC,GAAE,KAAK,KAAK,cAAcD,GAAE,KAAK,IAAI,CAC5C,CAED,SAASw3K,EAAct3L,GAAM+1L,GAAS,CACrC,IAAIxxL,GAAGmgC,GAEP,IADAgxJ,EAAWK,EAAO,EACbxxL,GAAI,EAAGA,GAAIwxL,GAAQ,OAAQxxL,KAC/BmgC,GAASqxJ,GAAQxxL,EAAC,EAClBuwL,EAAQpwJ,EAAM,EAAIowJ,EAAQpwJ,EAAM,GAAK,GACrCowJ,EAAQpwJ,EAAM,EAAE1kC,EAAI,EAAI,EAEzB,CAED,SAASu3L,EAAuBxB,GAAS,CACxC,IAAIyB,GAAgBzB,GAAQ,OAC3B0B,GAAkB,CAAE,EACpBhnI,GAAM,CAAE,EACRlsD,GAAGoT,GAAG+/K,GAEP,IAAKnzL,GAAI,EAAGA,GAAIizL,GAAejzL,KAAK,CACnCmzL,GAAgB5C,EAAQiB,GAAQxxL,EAAC,EAAE,MAAM,GAAK,GAC9C,IAAKoT,MAAK+/K,GACLA,GAAc,eAAe//K,EAAC,IACjC8/K,GAAgB9/K,EAAC,EAAI,GAGvB,CAED,IAAKpT,MAAKkzL,GACLA,GAAgB,eAAelzL,EAAC,GACnCksD,GAAI,KAAKkC,EAAMpuD,EAAC,CAAC,EAInB,OAAOksD,EACP,CAED,SAASknI,GAAgB,CAGxB,GAAI,CACH,IAAIC,GAAW,KAAK,eAAgB,EAAC,gBAAe,EAAG,SACvD,GAAIA,IAAYA,GAAS,OAAS,EAAG,CACpC,IAAI53L,GAAO2yD,EAAMklI,EAAcD,EAAQ,CAAC,EACxC,GAAI53L,GACH,OAAOA,GAERg1L,EAAS,yBAA2B4C,GAAW,wDAAwD,CACvG,CACD,MAAW,CAEX,CAED,IAAI7B,GAAUqB,EAAa,EAC1BI,GAAgBzB,GAAQ,OACxBjB,GAAUyC,EAAsBxB,EAAO,EACvC+B,GAAa,CAAE,EACfC,GAAWxzL,GAAGoT,GAEf,IAAKpT,GAAI,EAAGA,GAAIuwL,GAAQ,OAAQvwL,KAAK,CAEpC,IADAwzL,GAAY,IAAIhB,EAAUiB,GAAQlD,GAAQvwL,EAAC,CAAC,CAAgB,EACvDoT,GAAI,EAAGA,GAAI6/K,GAAe7/K,KAC9BogL,GAAU,cAAchC,GAAQp+K,EAAC,CAAC,EAEnCmgL,GAAW,KAAKC,EAAS,CACzB,CAED,OAAAD,GAAW,KAAKT,CAAc,EAEvBS,GAAW,OAAS,EAAIA,GAAW,CAAC,EAAE,KAAK,KAAO,MACzD,CAED,SAASG,EAAOC,GAAa,CAC5B,OAAI,CAACnD,GAAemD,MACnBnD,EAAc4C,EAAY,GAEpB5C,CACP,CAMD,SAAS8C,EAAe73L,GAAM,CAC7B,OAAQA,IAAQ,IAAI,YAAa,EAAC,QAAQ,MAAO,GAAG,CACpD,CAED,SAASm4L,EAASC,GAAQ,CACzB,IAAI7zL,GAAGvE,GAAM87G,GAAOu8E,GAMpB,IAJI,OAAOD,IAAW,WACrBA,GAAS,CAACA,EAAM,GAGZ7zL,GAAI,EAAGA,GAAI6zL,GAAO,OAAQ7zL,KAC9Bu3G,GAAQs8E,GAAO7zL,EAAC,EAAE,MAAM,GAAG,EAC3BvE,GAAO87G,GAAM,CAAC,EACdu8E,GAAaR,EAAc73L,EAAI,EAC/B20L,EAAM0D,EAAU,EAAID,GAAO7zL,EAAC,EAC5BouD,EAAM0lI,EAAU,EAAIr4L,GACpBs3L,EAAae,GAAYv8E,GAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAE7C,CAED,SAASk8E,GAASh4L,GAAMs4L,GAAQ,CAE/Bt4L,GAAO63L,EAAc73L,EAAI,EAEzB,IAAIknH,GAAOytE,EAAM30L,EAAI,EACjBqK,GAEJ,OAAI68G,cAAgB+uE,EACZ/uE,GAGJ,OAAOA,IAAS,UACnBA,GAAO,IAAI+uE,EAAK/uE,EAAI,EACpBytE,EAAM30L,EAAI,EAAIknH,GACPA,IAIJ0tE,EAAM50L,EAAI,GAAKs4L,KAAWN,KAAY3tL,GAAO2tL,GAAQpD,EAAM50L,EAAI,EAAGg4L,EAAO,IAC5E9wE,GAAOytE,EAAM30L,EAAI,EAAI,IAAIi2L,EACzB/uE,GAAK,KAAK78G,EAAI,EACd68G,GAAK,KAAOv0D,EAAM3yD,EAAI,EACfknH,IAGD,IACP,CAED,SAASqxE,IAAY,CACpB,IAAIh0L,GAAGksD,GAAM,GAEb,IAAKlsD,MAAKouD,EACLA,EAAM,eAAepuD,EAAC,IAAMowL,EAAMpwL,EAAC,GAAKowL,EAAMC,EAAMrwL,EAAC,CAAC,IAAMouD,EAAMpuD,EAAC,GACtEksD,GAAI,KAAKkC,EAAMpuD,EAAC,CAAC,EAInB,OAAOksD,GAAI,MACX,CAED,SAAS+nI,IAAmB,CAC3B,OAAO,OAAO,KAAK3D,CAAS,CAC5B,CAED,SAAS4D,GAAS/nF,GAAS,CAC1B,IAAInsG,GAAG0oH,GAAOyrE,GAASC,GAMvB,IAJI,OAAOjoF,IAAY,WACtBA,GAAU,CAACA,EAAO,GAGdnsG,GAAI,EAAGA,GAAImsG,GAAQ,OAAQnsG,KAC/B0oH,GAAQvc,GAAQnsG,EAAC,EAAE,MAAM,GAAG,EAE5Bm0L,GAAUb,EAAc5qE,GAAM,CAAC,CAAC,EAChC0rE,GAAUd,EAAc5qE,GAAM,CAAC,CAAC,EAEhC2nE,EAAM8D,EAAO,EAAIC,GACjBhmI,EAAM+lI,EAAO,EAAIzrE,GAAM,CAAC,EAExB2nE,EAAM+D,EAAO,EAAID,GACjB/lI,EAAMgmI,EAAO,EAAI1rE,GAAM,CAAC,CAEzB,CAED,SAAS2rE,GAAc3pK,GAAM,CAC5B,IAAI1qB,GAAG8xL,GAAcwC,GAAe/8E,GACpC,GAAI,GAAC7sF,IAAQ,CAACA,GAAK,QACnB,IAAK1qB,GAAI,EAAGA,GAAI0qB,GAAK,OAAQ1qB,KAC5Bu3G,GAAQ7sF,GAAK1qB,EAAC,EAAE,MAAM,GAAG,EACzB8xL,GAAev6E,GAAM,CAAC,EAAE,YAAW,EACnC+8E,GAAgB/8E,GAAM,CAAC,EAAE,MAAM,GAAG,EAClC+4E,EAAUwB,EAAY,EAAI,IAAII,EAC7BJ,GACAwC,EACJ,CAEE,CAED,SAASC,GAAY94L,GAAM,CAC1B,OAAAA,GAAOA,GAAK,cACL60L,EAAU70L,EAAI,GAAK,IAC1B,CAED,SAAS+4L,GAAgBC,GAASC,GAAa,CAG9C,GAFAD,GAAUF,GAAWE,EAAO,EAExB,CAACA,GAAS,OAAO,KAErB,IAAIrE,GAAQqE,GAAQ,MAAM,KAAI,EAE9B,OAAIC,GACItE,GAAM,IAAI,SAAUyB,GAAW,CACrC,IAAIlvE,GAAO8wE,GAAQ5B,EAAS,EAC5B,MAAO,CACN,KAAMA,GACN,OAAQlvE,GAAK,UAAU,IAAI,IAAM,CACtC,CACA,CAAI,EAGKytE,EACP,CAED,SAAS/8C,GAAU3oH,GAAM,CACxBkpK,EAAQlpK,GAAK,KAAK,EAClBwpK,GAAQxpK,GAAK,KAAK,EAClB2pK,GAAa3pK,GAAK,SAAS,EAC3BunK,GAAG,YAAcvnK,GAAK,OACtB,CAED,SAASiqK,GAAYl5L,GAAM,CAC1B,OAAKk5L,GAAW,eACfA,GAAW,aAAe,GACzBlE,EAAS,yBAA2Bh1L,GAAO,uDAAyDA,GAAO,IAAI,GAE1G,CAAC,CAACg4L,GAAQh4L,EAAI,CACrB,CAED,SAASm5L,GAAa7gL,GAAG,CACxB,IAAI8gL,GAAmB9gL,GAAE,KAAO,KAAOA,GAAE,KAAO,IAChD,MAAO,CAAC,EAAEA,GAAE,IAAOA,GAAE,OAAS,QAAc,CAAC8gL,GAC7C,CAED,SAASpE,EAAUj1L,GAAS,CACvB,OAAO,QAAY,KAAe,OAAO,QAAQ,OAAU,YAC9D,QAAQ,MAAMA,EAAO,CAEtB,CAMD,SAASy2L,GAAInuL,GAAO,CACnB,IAAI8d,GAAO,MAAM,UAAU,MAAM,KAAK,UAAW,EAAG,EAAE,EACrDnmB,GAAO,UAAU,UAAU,OAAS,CAAC,EACrCknH,GAAO8wE,GAAQh4L,EAAI,EACnBywD,GAAO4+D,EAAO,IAAI,MAAM,KAAMlpG,EAAI,EAEnC,OAAI+gG,IAAQ,CAACmI,EAAO,SAAShnH,EAAK,GAAK8wL,GAAY1oI,EAAG,GACrDA,GAAI,IAAIy2D,GAAK,MAAMz2D,EAAG,EAAG,SAAS,EAGnCA,GAAI,GAAGzwD,EAAI,EAEJywD,EACP,CAED+lI,GAAG,QAAe9B,EAClB8B,GAAG,YAAe,GAClBA,GAAG,OAAe7B,EAClB6B,GAAG,OAAe5B,EAClB4B,GAAG,OAAe7jI,EAClB6jI,GAAG,WAAa3B,EAChB2B,GAAG,IAAe2B,EAClB3B,GAAG,KAAeiC,GAClBjC,GAAG,KAAe5+C,GAClB4+C,GAAG,KAAewB,GAClBxB,GAAG,WAAe0C,GAClB1C,GAAG,MAAeyB,EAClBzB,GAAG,MAAe+B,GAClB/B,GAAG,KAAeP,EAClBO,GAAG,OAAeV,EAClBU,GAAG,aAAelB,EAClBkB,GAAG,YAAe2C,GAClB3C,GAAG,mBAAuB,GAC1BA,GAAG,qBAAuB,GAC1BA,GAAG,UAAegC,GAClBhC,GAAG,gBAAkBuC,GAMrB,IAAIl2K,GAAKwsG,EAAO,GAEhBA,EAAO,GAAKmnE,GAEZnnE,EAAO,YAAc,KAErBA,EAAO,aAAe,SAAU7gB,GAAKwD,GAAU,CAC9C,IAAIkV,GAAOmI,EAAO,YACjB3qF,GASD,GAPI8pE,GAAI,KAAO,SACV0Y,IAAQiyE,GAAY3qF,EAAG,GAAK,CAACA,GAAI,SACpCA,GAAI,GAAK6gB,EAAO,IAAI7gB,GAAI,EAAE,EAAE,GAC5BA,GAAI,IAAK,EAAC,IAAI0Y,GAAK,MAAM1Y,EAAG,EAAG,SAAS,GAEzCA,GAAI,GAAK0Y,IAEN1Y,GAAI,GAKP,GAJA9pE,GAAS8pE,GAAI,GAAG,UAAUA,EAAG,EACzB,KAAK,IAAI9pE,EAAM,EAAI,KACtBA,GAASA,GAAS,IAEf8pE,GAAI,YAAc,OAAW,CAChC,IAAIjlE,GAAIilE,GAAI,GACZA,GAAI,UAAU,CAAC9pE,GAAQstE,EAAQ,EAC/BxD,GAAI,GAAKjlE,EACb,MACIilE,GAAI,KAAK9pE,GAAQstE,EAAQ,CAG7B,EAECnvF,GAAG,GAAK,SAAU7iB,GAAMgyG,GAAU,CACjC,GAAIhyG,GAAM,CACT,GAAI,OAAOA,IAAS,SACnB,MAAM,IAAI,MAAM,wCAA0CA,GAAO,KAAO,OAAOA,GAAO,GAAG,EAE1F,YAAK,GAAKg4L,GAAQh4L,EAAI,EAClB,KAAK,GACRqvH,EAAO,aAAa,KAAMrd,EAAQ,EAElCgjF,EAAS,mCAAqCh1L,GAAO,0DAA0D,EAEzG,IACP,CACD,GAAI,KAAK,GAAM,OAAO,KAAK,GAAG,IAChC,EAEC,SAASq5L,GAAUpjK,GAAK,CACvB,OAAO,UAAY,CAClB,OAAI,KAAK,GAAa,KAAK,GAAG,KAAK,IAAI,EAChCA,GAAI,KAAK,IAAI,CACvB,CACE,CAED,SAASqjK,GAAerjK,GAAK,CAC5B,OAAO,UAAY,CAClB,YAAK,GAAK,KACHA,GAAI,MAAM,KAAM,SAAS,CACnC,CACE,CAED,SAASsjK,GAAgBtjK,GAAK,CAC7B,OAAO,UAAY,CAClB,OAAI,UAAU,OAAS,IAAG,KAAK,GAAK,MAC7BA,GAAI,MAAM,KAAM,SAAS,CACnC,CACE,CAEDpT,GAAG,SAAYw2K,GAASx2K,GAAG,QAAQ,EACnCA,GAAG,SAAYw2K,GAASx2K,GAAG,QAAQ,EACnCA,GAAG,IAAYy2K,GAAcz2K,GAAG,GAAG,EACnCA,GAAG,MAAYy2K,GAAcz2K,GAAG,KAAK,EACrCA,GAAG,UAAY02K,GAAe12K,GAAG,SAAS,EAE1CwsG,EAAO,GAAG,WAAa,SAASrvH,GAAM,CACrC,OAAIk1L,EAAQ,GAAMA,IAAU,GAAKC,EAAQ,IACxCH,EAAS,qFAAuF3lE,EAAO,QAAU,GAAG,EAErHA,EAAO,YAAcrvH,GAAOg4L,GAAQh4L,EAAI,EAAI,KACrCqvH,CACT,EAGC,IAAI/hB,GAAmB+hB,EAAO,iBAC9B,OAAI,OAAO,UAAU,SAAS,KAAK/hB,EAAgB,IAAM,kBAExDA,GAAiB,KAAK,IAAI,EAC1BA,GAAiB,KAAK,IAAI,GAChBA,KAEVA,GAAiB,GAAK,MAKhB+hB,CACR,CAAC,yv4yBCvrBD,IAAIA,IAASmqE,GAAc,QAAG1wJ,GAC9BumF,IAAO,GAAG,KAAK/iF,GAAoC,sCCCnDmtJ,GAAe,CAAC,CAAE,OAAAzpC,EAAQ,KAAAhwJ,KACnBgwJ,EAAOhwJ,CAAI,EAGdklF,EAAC,OAAI,UAAU,uBACb,WAAC,MAAI,WAAU,aACZ,SAAO8qE,EAAAhwJ,CAAI,EAAE,IAAImG,GAAS,GAAGA,CAAK,EAAE,EAAE,KAAK,IAAI,CAClD,EACF,GAPwB,KCI5BkpH,GAAO,GAAG,WAAW,eAAe,EAMpC,MAAeqqE,IAAC5lK,GAAU,CAClB,MAAE,UAAA6lK,EAAW,OAAA3pC,CAAW,EAAAl8H,EACxB,CAAC8lK,EAAQC,CAAc,EAAIx2F,EAAA,SAASgsB,GAAOsqE,EAAU,SAAS,EAAE,QAAQ,EACxE,CAACG,EAAOC,CAAQ,EAAI12F,EAAA,SAAS,CAAE,GAcrC,OAZA/J,YAAU,KACJqgG,EAAU,SACZ5+G,GACG,IAAI,+BAAgC,CAAE,OAAQ,CAAE,SAAU4+G,EAAU,OAAU,EAAC,EAC/E,KAAMl3L,GAAas3L,EAASt3L,EAAS,IAAI,CAAC,EAGxC,IAAM,CACXs3L,EAAS,CAAE,KAEZ,CAACJ,CAAS,CAAC,EAEVG,EAAM,SAAW,EAAU,KAK5B50G,EAAA,QAAK,GAAI,mBAAmBy0G,EAAU,EAAE,GAAI,UAAU,kBACrD,SAAAx1F,GAAC,MAAI,WAAU,gCACb,UAACjf,EAAA,OAAI,UAAU,eACb,SAAAA,EAACinD,GAAA,CACC,SAAU0tD,EACV,MAAOD,CAAA,GAEX,EACAz1F,GAAC,MAAI,WAAU,mBACb,UAACA,GAAA,OAAI,UAAU,MACb,UAAAjf,EAAC,OAAI,UAAU,qBACb,SAACif,GAAA,OAAI,UAAU,6BACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAEjD,SACAA,EAAC,UAAO,UAAU,+BACV,KAAM,yBACN,aAAcy0G,EAAU,OAC7B,SAAMG,EAAA,IAAY3+G,GAAA+J,EAAC,SAAqB,OAAO/J,EAAK,GAAK,SAAKA,EAAA,MAA/BA,EAAK,EAA+B,CAAS,EAC/E,GACF,CACF,KAEC,MAAI,WAAU,qBACb,SAACgpB,GAAA,OAAI,UAAU,sBACb,UAACjf,EAAA,SAAM,UAAU,yBAAyB,SAAI,SAC9CA,EAAC0qE,GAAA,CACC,SAAUiqC,EACV,MAAOD,EACP,KAAM,4BACN,UAAU,oCACZ,GACF,CACF,IACF,EAEAz1F,GAAC,MAAI,WAAU,MACb,UAACA,GAAA,OAAI,UAAU,WACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAK,UACtDA,EAACovG,GAAA,CACC,KAAK,QACL,MAAO,EACP,kBAAmBqF,EAAU,MAAM,WACnC,aAAcA,EAAU,MAAM,KAAOtqE,GAAOsqE,EAAU,MAAM,IAAI,EAAItqE,GAAO,QAAS,KAAK,EACzF,eAAgBsqE,EAAU,MAAM,SAAW,KAAOA,EAAU,MAAM,QAAU,GAC5E,iBAAkBA,EAAU,MAAM,UAAYA,EAAU,MAAM,UAAY,SAC1E,eAAgBA,EAAU,MAAM,QAAUA,EAAU,MAAM,QAAU,QACpE,uBAAwBA,EAAU,MAAM,kBAAoB,KAAOA,EAAU,MAAM,gBAAkB,GACvG,GACF,EAEAx1F,GAAC,MAAI,WAAU,WACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAG,QACpDA,EAACovG,GAAA,CACC,KAAK,MACL,MAAO,EACP,kBAAmBqF,EAAU,IAAI,WACjC,aAAcA,EAAU,IAAI,KAAOtqE,GAAOsqE,EAAU,IAAI,IAAI,EAAItqE,GAAO,QAAS,KAAK,EACrF,eAAgBsqE,EAAU,IAAI,SAAW,KAAOA,EAAU,IAAI,QAAU,GACxE,iBAAkBA,EAAU,IAAI,UAAYA,EAAU,IAAI,UAAY,QACtE,eAAgBA,EAAU,IAAI,QAAUA,EAAU,IAAI,QAAU,OAChE,uBAAwBA,EAAU,IAAI,kBAAoB,KAAOA,EAAU,IAAI,gBAAkB,GACnG,GACF,GACF,EAECz0G,EAAA6qE,GAAA,CAAM,OAAAC,EAAgB,KAAK,aAAa,GACxC9qE,EAAA6qE,GAAA,CAAM,OAAAC,EAAgB,KAAK,cAAc,IAC5C,EAEA9qE,EAAC,MAAI,WAAU,UAAU,GAC3B,EACF,EAEJ,EC7GwB,SAAA80G,GAAO7zL,EAAO0c,EAAI,CAClC,MAAE,SAAApgB,CAAa,EAAA0D,EAErB,GAAI1D,EAAU,CACN,MAAE,OAAA+/B,EAAQ,KAAAvT,CAAS,EAAAxsB,EAErB+/B,IAAW,IACT3f,GAAIA,EAAGoM,EAAK,MAAM,EAEtB,QAAQ,KAAK9oB,CAAK,CACpB,MAEA,QAAQ,KAAKA,CAAK,CAEtB,CCRA,MAAA8zL,IAAe,CAAC,CAAE,KAAA/oK,EAAM,QAAAslJ,EAAS,UAAA1+B,EAAW,OAAAoiD,EAAQ,wBAAAC,KAA6B,CAC/E,KAAM,CAACR,EAAWS,CAAY,EAAI/2F,WAAS,IAAI,EACzC,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,EAAA,SAAS,CAAE,GACjC,CAACi3F,EAAoBC,CAAqB,EAAIl3F,WAAS,EAAK,EAElE/J,YAAU,IAAM,CACVpoE,EACF6pD,GACG,IAAI,sBAAsBm/G,CAAM,YAAY,EAC5C,KAAMz3L,GAAa,CACL23L,EAAA33L,EAAS,KAAK,SAAS,EACrC,GAEH23L,EAAa,IAAI,EACjBC,EAAU,CAAE,GACd,EACC,CAACnpK,CAAI,CAAC,EAET,MAAMspK,EAAiB,IAAM,CACvB,GAAAF,EAA2B,SAE/BC,EAAsB,EAAI,EAEpB,MAAAjyL,EAAW,IAAI,SAAS,SAAS,eAAe,mBAAmB4xL,CAAM,EAAE,CAAC,EAG/En/G,GAAA,IAAI,sBAAsBm/G,CAAM,QAAS5xL,CAAQ,EACjD,KAAM7F,GAAa,CAClB+zK,EAAQ,EAAK,EACH1+B,IACcqiD,EAAA13L,EAAS,KAAK,OAAO,EAC7C,WAAW,IAAM83L,EAAsB,EAAK,EAAG,GAAG,EACnD,EACA,MAAep0L,GAAA,CACdo0L,EAAsB,EAAK,EAC3BE,GAAOt0L,EAAOk0L,CAAS,EACxB,GAIH,OAAAl2F,GAACp4B,IAAM,KAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAAG,gBAAgB,eAC/D,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,sBAAU,CACzB,GACAmZ,EAACnZ,GAAM,KAAN,CACE,YAAcmZ,EAAA6xF,IAAA,CAAK,OAAA/mB,EAAgB,UAAA2pC,CAAA,CAAqB,CAC3D,GACAx1F,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAK,UAC5CtxF,EAACroB,IAAO,QAAS,UAAW,SAAUy9H,EAAoB,QAASE,EAAgB,SAAO,aAC5F,CACF,GAEJ,ECzDA,IAAAE,IAAA,KAAU,CAAV,cACEC,GAAA,oBAAe,IACN5/G,GAAM,IAAI,wBAAwB,GAG3C4/G,GAAA,iBAAaC,GACJ7/G,GAAM,OAAO,sBAAsB6/G,CAAW,OAAO,GAG9DD,GAAA,kBAAcE,GACL9/G,GAAM,OAAO,kCAAmC,CAAE,KAAM,CAAE,GAAI8/G,CAAY,EAAI,GAEzF,EAEA,MAAMv/G,GAAM,IAAIC,ICXVu/G,IAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAOVC,IAAW;AAAA;AAAA,EAIjBC,IAAe,CAAC,CAAE,OAAAd,EAAQ,KAAAhpK,EAAM,QAAAslJ,EAAS,UAAA1+B,EAAW,KAAA7oH,KAAW,CAC7D,IAAIlvB,EAAU+6L,IACd,KAAM,CAAE,cAAAG,CAAA,EAAkBz2G,EAAA,WAAWqtG,EAAe,EAC9C,CAACqJ,EAAmBC,CAAoB,EAAI93F,WAAS,EAAK,EAE1D+3F,EAAe,IAAM,CACrB,GAAAF,EAA0B,SAE9BC,EAAqB,EAAI,EAEzB7/G,GACG,UAAU4+G,CAAM,EAChB,KAAK,IAAM,CACV1jB,EAAQ,EAAK,EACH1+B,IACV,WAAW,IAAMqjD,EAAqB,EAAK,EAAG,GAAG,EAClD,EACA,MAAM,IAAM,CACXA,EAAqB,EAAK,EAC3B,GAGCzjL,EAAOuX,EAAK,KAAmB0qK,KAAU,KAAOO,CAAO,EACzD,OAAAxiL,GAAQA,EAAK,SAAWujL,IAAyBl7L,EAAAg7L,QAGlDhvH,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,8BAAkB,CACjC,GACCmZ,EAAAnZ,GAAM,KAAN,CACE,SACHhsE,CAAA,GACAmlF,EAACnZ,GAAM,OAAN,CACC,SAAAmZ,EAACroB,GAAO,SAASu+H,EAAc,SAAUF,EAAmB,mBAAO,CACrE,EACF,GAEJ,ECjDeG,IAAA,CAAC,CAAE,UAAA1B,EAAW,gBAAA2B,EAAiB,OAAAtrC,KAAa,CACzD,KAAM,CAAC8pC,EAAOC,CAAQ,EAAI12F,EAAA,SAAS,CAAE,GAErC/J,YAAU,KACJqgG,GACF5+G,GACG,IAAI,+BAAgC,CAAE,OAAQ,CAAE,SAAU4+G,EAAU,OAAU,EAAC,EAC/E,KAAMl3L,GAAas3L,EAASt3L,EAAS,IAAI,CAAC,EAGxC,IAAM,QAAQ,IAAI,SAAS,GACjC,CAACk3L,CAAS,CAAC,EAER,MAAA4B,EAAmBvlG,UAAQ,IAAM,CACrC,IAAIniF,EAAI,GACR,cAAO,KAAKm8I,CAAM,EAAE,IAAI,CAAC39I,EAAK1E,IAAU,CAClC,IAAAmS,EAAIzN,EAAI,MAAM,2BAA2B,EAC7C,GAAIyN,EAAG,CACD,IAAAjX,EAAK,SAASiX,EAAE,CAAC,CAAC,EAAG9f,EAAO8f,EAAE,CAAC,EAC/BjM,EAAEhL,CAAE,IAAM,SAAagL,EAAAhL,CAAE,EAAI,IAC7BgL,EAAEhL,CAAE,EAAE7I,CAAI,IAAM,SAAW6T,EAAEhL,CAAE,EAAE7I,CAAI,EAAI,IAE7C6T,EAAEhL,CAAE,EAAE7I,CAAI,EAAE,KAAKgwJ,EAAO39I,CAAG,CAAC,CAC9B,EACD,EAEMwB,CAAA,EACN,CAACm8I,CAAM,CAAC,EAEX,GAAI8pC,EAAM,SAAW,EAAU,YAE/B,MAAMnsL,EAAQ,EAEd,OACGw2F,GAAA,QAAK,GAAI,yBAA0B,UAAU,kBAC5C,UAACA,GAAA,OAAI,UAAU,qBACb,UAACA,GAAA,OAAI,UAAU,MACb,UAACjf,EAAA,SAAM,KAAK,SAAS,KAAK,gBAAgB,MAAOo2G,EAAgB,CAAC,EAAE,EACnEA,GAAmBA,EAAgB,IAAIzyL,GAAOq8E,EAAA,SAAe,KAAK,SAAS,KAAK,OAAO,MAAOr8E,CAAA,EAArCA,CAAwC,CAAE,IACnG,MAAI,WAAU,sBACb,SAACs7F,GAAA,OAAI,UAAU,6BACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAEjD,SACAA,EAAC,UAAO,UAAU,+BACV,KAAM,cAAcv3E,CAAK,aACzB,aAAcgsL,EAAU,OAC7B,SAAMG,EAAA,IAAY3+G,GAAA+J,EAAC,SAAqB,OAAO/J,EAAK,GAAK,SAAKA,EAAA,MAA/BA,EAAK,EAA+B,CAAS,EAC/E,GACF,CACF,IACF,IAEC,MAAI,WAAU,MACb,SAACgpB,GAAA,OAAI,UAAU,YACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAK,UACtDA,EAACovG,GAAA,CACC,KAAK,QACL,MAAO,EACP,kBAAmBqF,EAAU,MAAM,WACnC,aAAcA,EAAU,MAAM,KAAOtqE,GAAOsqE,EAAU,MAAM,IAAI,EAAItqE,GAAO,QAAS,KAAK,EACzF,eAAgBsqE,EAAU,MAAM,QAAUA,EAAU,MAAM,QAAU,GACpE,iBAAkBA,EAAU,MAAM,UAAYA,EAAU,MAAM,UAAY,SAC1E,eAAgBA,EAAU,MAAM,QAAUA,EAAU,MAAM,QAAU,QACpE,uBAAwBA,EAAU,MAAM,kBAAoB,KAAOA,EAAU,MAAM,gBAAkB,GACvG,GACF,CACF,KAEC,MAAI,WAAU,MACb,SAACx1F,GAAA,OAAI,UAAU,YACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAG,QACpDA,EAACovG,GAAA,CACC,KAAK,MACL,MAAO,EACP,kBAAmBqF,EAAU,IAAI,WACjC,aAAcA,EAAU,IAAI,KAAOtqE,GAAOsqE,EAAU,IAAI,IAAI,EAAItqE,GAAO,QAAS,KAAK,EACrF,eAAgBsqE,EAAU,IAAI,QAAUA,EAAU,IAAI,QAAU,GAChE,iBAAkBA,EAAU,IAAI,UAAYA,EAAU,IAAI,UAAY,QACtE,eAAgBA,EAAU,IAAI,QAAUA,EAAU,IAAI,QAAU,OAChE,uBAAwBA,EAAU,IAAI,kBAAoB,KAAOA,EAAU,IAAI,gBAAkB,GACnG,GACF,CACF,IACF,EAEC,OAAO,KAAK4B,CAAgB,EAAE,OAAS,GACvCr2G,EAAA,OAAgB,UAAU,uBACxB,gBAAO,KAAKq2G,CAAgB,EAAE,IAAI,CAAClpL,EAAK1E,IAAU,CAC7C,IAAA2K,EAAIijL,EAAiBlpL,CAAG,EAE5B,UACG,MACC,WAAA8xF,GAAC,SAAO,wBAAW9xF,CAAA,EAAI,EACtB,OAAO,KAAKiG,CAAC,EAAE,IAAI,CAACV,EAAGjK,IACtBu3E,EAAC,MAAgB,WAAU,aACxB,SAAA5sE,EAAEV,CAAC,EAAE,KAAK,IAAI,GADPjK,CAEV,CACF,IANQ0E,CAOV,EAEH,GAdO1E,CAeV,CAEF,GAEJ,EC7GqB,IAAA6tL,GAAA,cAAsBlgI,GAAM,SAAU,CACzD,YAAYxnC,EAAO,CACjB,MAAMA,CAAK,EACN,WAAQ,CAAE,SAAU,EAAM,CACjC,CAEA,OAAO,yBAAyB3tB,EAAO,CAC9B,OAAE,SAAU,GACrB,CAEA,kBAAkBA,EAAO2vK,EAAW,CAE1B,YAAI3vK,EAAO2vK,CAAS,CAC9B,CAEA,QAAS,CACH,YAAK,MAAM,SAEV5wF,EAAA,OAAI,UAAU,2DAA2D,SAE1E,0BAIG,KAAK,MAAM,QACpB,CACF,ECrBA,MAAAu2G,IAAe,CAAC,CAAE,KAAAvqK,EAAM,QAAAslJ,EAAS,gBAAA8kB,EAAiB,4BAAAI,EAA6B,UAAA5jD,EAAW,wBAAAqiD,KAA8B,CACtH,KAAM,CAACR,EAAWS,CAAY,EAAI/2F,WAAS,IAAI,EACzC,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,EAAA,SAAS,CAAE,GACjC,CAACs4F,EAAYC,CAAa,EAAIv4F,EAAA,SAAS,CAAE,GACzC,CAACi3F,EAAoBC,CAAqB,EAAIl3F,WAAS,EAAK,EAElE/J,YAAU,IAAM,CACVpoE,EAEC6pD,GAAA,IAAI,sBAAsB2gH,EAA4B,CAAC,CAAC,YAAY,EACpE,KAAMj5L,GAAa,CACL23L,EAAA33L,EAAS,KAAK,SAAS,EACtBm5L,EAAAn5L,EAAS,KAAK,UAAU,EACvC,GAEH23L,EAAa,IAAI,EACjBC,EAAU,CAAE,GACZuB,EAAc,CAAE,GAClB,EACC,CAAC1qK,CAAI,CAAC,EAET,MAAMspK,EAAiB,IAAM,CACvB,GAAAF,EAA2B,SAC/BC,EAAsB,EAAI,EAE1B,MAAMjyL,EAAW,IAAI,SAAS,SAAS,eAAe,wBAAwB,CAAC,EAE/EyyE,GACG,IAAI,sCAAuCzyE,CAAQ,EACnD,KAAM7F,GAAa,CAClB+zK,EAAQ,EAAK,EACH1+B,IACcqiD,EAAA13L,EAAS,KAAK,OAAO,EAC7C,WAAW,IAAM83L,EAAsB,EAAK,EAAG,GAAG,EACnD,EACA,MAAOp0L,GAAU,CAChBo0L,EAAsB,EAAK,EAC3BE,GAAOt0L,EAAOk0L,CAAS,EACxB,GAIH,OAAAn1G,EAAC4xF,GACC,UAAA3yE,GAACp4B,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAAG,gBAAgB,WAC/D,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,gCAAoB,CACnC,GACCmZ,EAAAnZ,GAAM,KAAN,CACE,SACD4tH,GAAAz0G,EAACm2G,IAAA,CACC,UAAA1B,EACA,OAAA3pC,EACA,gBAAiB0rC,CAAA,GAGrB,EACAv3F,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAK,UAC5CtxF,EAACroB,IAAO,QAAQ,UAAU,SAAUy9H,EAAoB,QAASE,EAAgB,SAAO,aAC1F,EACF,EACF,EAEJ,EC/DAqB,IAAe,CAAC,CAAE,KAAA3qK,EAAM,QAAAslJ,EAAS,gBAAA8kB,EAAiB,UAAAxjD,EAAW,eAAAy7C,EAAgB,kBAAAuI,KAAuB,CAClG,KAAM,CAAC9rC,EAAQqqC,CAAS,EAAIh3F,EAAA,SAAS,CAAE,GACjC,CAACi3F,EAAoBC,CAAqB,EAAIl3F,WAAS,EAAK,EAG5Dm3F,EAAiB,IAAM,CACvB,GAAAF,EAA2B,SAC/BC,EAAsB,EAAI,EAEpB,MAAAjyL,EAAW,CAAC,IAAKgzL,GAEvBvgH,GACG,IAAI,0CAA2CzyE,CAAQ,EACvD,KAAM7F,GAAa,CAClB+zK,EAAQ,EAAK,EACbslB,EAAkB,EAAK,EACbhkD,IACV,WAAW,IAAMyiD,EAAsB,EAAK,EAAG,GAAG,EACnD,EACA,MAAOp0L,GAAU,CAChBo0L,EAAsB,EAAK,EAC3BE,GAAOt0L,EAAOk0L,CAAS,EACxB,GAIH,OAAAn1G,EAAC4xF,GACC,UAAA3yE,GAACp4B,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAAG,gBAAgB,WAC/D,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,8BAAkB,CACjC,GACCmZ,EAAAnZ,GAAM,KAAN,CAAW,SAEZ,kBACAo4B,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAK,UAC5CtxF,EAACroB,IAAO,QAAQ,UAAU,SAAUy9H,EAAoB,QAASE,EAAgB,SAAO,aAC1F,EACF,EACF,EAEJ,EC3CMM,IAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAOVC,IAAW;AAAA;AAAA,EAIjBgB,IAAe,CAAC,CAAE,KAAA7qK,EAAM,QAAAslJ,EAAS,gBAAA8kB,EAAiB,UAAAxjD,EAAW,KAAA7oH,KAAW,CACtE,IAAIlvB,EAAU+6L,IACd,KAAM,CAAE,cAAAG,CAAA,EAAkBz2G,EAAA,WAAWqtG,EAAe,EAC9C,CAACqJ,EAAmBC,CAAoB,EAAI93F,WAAS,EAAK,EAE1D+3F,EAAe,IAAM,CACrB,GAAAF,EAA0B,SAE9BC,EAAqB,EAAI,EAEzB7/G,GACG,WAAWggH,CAAe,EAC1B,KAAK,IAAM,CACV9kB,EAAQ,EAAK,EACH1+B,IACV,WAAW,IAAMqjD,EAAqB,EAAK,EAAG,GAAG,EAClD,EACA,KAAK,IAAM,CACVA,EAAqB,EAAK,EAC3B,GAGCa,EAAUhmG,UAAQ,IACf/mE,EACJ,OAAqB0qK,GAAA2B,EAAgB,SAAS3B,EAAU,EAAE,CAAE,EAC5D,IAAIlwL,GAAKA,EAAE,MAAM,EACjB,OAAO,CAAC+O,EAAGjU,EAAGub,IAAMA,EAAE,QAAQtH,CAAC,IAAMjU,CAAC,EACxC,CAAC0qB,EAAMqsK,CAAe,CAAC,EAE1B,OAAIU,EAAQ,SAAW,GAAKA,EAAQ,CAAC,IAAMf,IAC/Bl7L,EAAAg7L,QAIThvH,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,8BAAkB,CACjC,KACCA,GAAM,KAAN,CACC,SAACmZ,EAAA,KACE,UACH,GACF,EACAA,EAACnZ,GAAM,OAAN,CACC,SAAAmZ,EAACroB,GAAO,SAASu+H,EAAc,SAAUF,EAAmB,mBAAO,CACrE,EACF,GAEJ,EC7Dee,IAAA,CAAC,CAAE,KAAA/qK,EAAM,QAAAslJ,EAAS,YAAA0lB,CAAY,IAC1C/3F,GAAAp4B,GAAA,CAAM,KAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,4BAAgB,CAC/B,GACCmZ,EAAAnZ,GAAM,KAAN,CACE,SACHmwH,CAAA,GACCh3G,EAAAnZ,GAAM,OAAN,CACC,SAACmZ,EAAAroB,GAAA,CAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,iBAAK,CAC9C,IACF,ECNF2lB,IAAe,CAAC,CAAE,OAAAjC,EAAQ,UAAApiD,EAAW,KAAA7oH,EACnB,UAAAmtK,EAAW,SAAAC,EACX,gBAAAf,EACA,4BAAAI,EACA,SAAAY,EAAU,YAAAC,EACV,WAAAC,EAAY,cAAAC,EACZ,cAAAC,EAAe,iBAAAC,EACf,uBAAAC,EAAwB,0BAAAC,EACxB,eAAAtJ,EAAgB,kBAAAuI,EAChB,gBAAAgB,EAAiB,mBAAAC,EACjB,cAAAC,EAAe,iBAAAC,EACf,qBAAAC,EAAsB,wBAAA/C,CACxC,IAAM,CACJ,MAAMgD,EAAiB,IAAM,CACvB,OAAOd,GAAa,YAAqBA,IACzC,OAAOvkD,GAAc,YAAsBA,GAAA,EAG3CslD,EAAiB,IAAM,CACvB,OAAOhB,GAAc,YAAsBA,IAC3C,OAAOtkD,GAAc,YAAsBA,GAAA,EAGjD,OAEI3zC,GAAAlf,GAAA,WAAAC,EAAC+2G,IAAA,CACC,KAAMe,EACN,QAASC,EACT,YAAaC,EACb,wBAAA/C,CAAA,CACF,EAEAj1G,EAACm4G,IAAA,CACC,OAAAnD,EACA,KAAMoC,EACN,QAASC,EACT,wBAAApC,EACA,UAAWgD,CAAA,CACb,EAEAj4G,EAAC22G,IAAA,CACC,gBAAAP,EACA,KAAMsB,EACN,QAASC,EACT,eAAAtJ,EACA,kBAAAuI,EACA,UAAAhkD,CAAA,CACF,EAEA5yD,EAACu2G,IAAA,CACC,gBAAAH,EACA,4BAAAI,EACA,KAAMgB,EACN,QAASC,EACT,wBAAAxC,EACA,UAAWgD,CAAA,CACb,EAEAj4G,EAAC81G,IAAA,CACC,OAAAd,EACA,KAAMsC,EACN,QAASC,EACT,UAAWW,EACX,KAAAnuK,CAAA,CACF,EAEAi2D,EAAC62G,IAAA,CACC,gBAAAT,EACA,KAAMwB,EACN,QAASC,EACT,UAAWK,EACX,KAAAnuK,CAAA,CACF,CACF,GAEJ,4CChFC,SAAS5T,EAAOnF,EAAU,CAAc,IAAIonL,EAAW,SAASC,EAAM,GAAGC,EAAQ,IAAIC,EAAU,WAAWC,EAAW,YAAYC,EAAS,SAASC,EAAS,SAASC,EAAM,QAAQC,EAAM,QAAQlrC,EAAK,OAAOmrC,EAAK,OAAOC,EAAO,SAAStJ,EAAQ,UAAUuJ,EAAa,eAAeC,EAAQ,UAAUC,EAAO,SAASC,EAAO,SAASC,EAAQ,UAAUC,EAAS,WAAWC,EAAS,WAAWC,EAAc,IAAQC,EAAO,SAASC,EAAM,QAAQC,EAAK,OAAOC,EAAW,aAAaC,EAAQ,UAAUC,EAAO,SAASC,GAAK,OAAOC,GAAQ,UAAUC,GAAO,SAASC,GAAO,SAASC,GAAG,KAAKC,GAAU,YAAYC,GAAS,WAAWC,GAAM,QAAQC,GAAQ,UAAUC,GAAM,QAAQC,EAAK,OAAqBC,GAAO,SAASC,GAAM,QAAQC,GAAS,WAAWC,GAAY,cAAcC,GAAO,SAAa/pH,GAAO,SAAS09B,GAAQssF,GAAW,CAAC,IAAIC,GAAc,GAAG,QAAQz7L,MAAKkvG,GAAYssF,GAAWx7L,EAAC,GAAGw7L,GAAWx7L,EAAC,EAAE,OAAO,IAAI,EAAGy7L,GAAcz7L,EAAC,EAAEw7L,GAAWx7L,EAAC,EAAE,OAAOkvG,GAAQlvG,EAAC,CAAC,EAAOy7L,GAAcz7L,EAAC,EAAEkvG,GAAQlvG,EAAC,EAAG,OAAOy7L,EAAa,EAAEC,GAAU,SAAS1kL,GAAI,CAAc,QAAT2kL,GAAM,GAAW37L,GAAE,EAAEA,GAAEgX,GAAI,OAAOhX,KAAK27L,GAAM3kL,GAAIhX,EAAC,EAAE,YAAa,GAAEgX,GAAIhX,EAAC,EAAE,OAAO27L,EAAK,EAAErwI,GAAI,SAASswI,GAAKC,GAAK,CAAC,OAAO,OAAOD,KAAOvC,EAASyC,GAASD,EAAI,EAAE,QAAQC,GAASF,EAAI,CAAC,IAAI,GAAG,EAAK,EAAEE,GAAS,SAAS3qH,GAAI,CAAC,OAAOA,GAAI,YAAa,GAAE4qH,GAAS,SAAS1jL,GAAQ,CAAC,OAAO,OAAOA,KAAUghL,EAAShhL,GAAQ,QAAQ,WAAW2gL,CAAK,EAAE,MAAM,GAAG,EAAE,CAAC,EAAErnL,CAAS,EAAEu/D,GAAK,SAASC,GAAIv4D,GAAI,CAAC,GAAG,OAAOu4D,KAAMkoH,EAAU,OAAAloH,GAAIA,GAAI,QAAQ,SAAS6nH,CAAK,EAAS,OAAOpgL,KAAMugL,EAAWhoH,GAAIA,GAAI,UAAU,EAAE8oH,CAAa,CAAE,EAAM+B,GAAU,SAAS/yJ,GAAGgzJ,GAAO,CAA+B,QAA1Bj8L,GAAE,EAAEoT,GAAEC,GAAEiiB,GAAEsP,GAAEnrB,GAAQ9Z,GAAYK,GAAEi8L,GAAO,QAAQ,CAACxiL,IAAQ,CAAC,IAAI21F,GAAM6sF,GAAOj8L,EAAC,EAAEuvB,GAAM0sK,GAAOj8L,GAAE,CAAC,EAAQ,IAANoT,GAAEC,GAAE,EAAQD,GAAEg8F,GAAM,QAAQ,CAAC31F,IAAa21F,GAAMh8F,EAAC,GAAqC,GAA5BqG,GAAQ21F,GAAMh8F,IAAG,EAAE,KAAK61B,EAAE,EAAOxvB,GAAS,IAAI6b,GAAE,EAAEA,GAAE/F,GAAM,OAAO+F,KAAK31B,GAAM8Z,GAAQ,EAAEpG,EAAC,EAAEuxB,GAAErV,GAAM+F,EAAC,EAAK,OAAOsP,KAAIw0J,GAAUx0J,GAAE,OAAO,EAAMA,GAAE,SAAS,EAAM,OAAOA,GAAE,CAAC,GAAGs0J,EAAW,KAAKt0J,GAAE,CAAC,CAAC,EAAEA,GAAE,CAAC,EAAE,KAAK,KAAKjlC,EAAK,EAAO,KAAKilC,GAAE,CAAC,CAAC,EAAEA,GAAE,CAAC,EAAWA,GAAE,SAAS,EAAM,OAAOA,GAAE,CAAC,IAAIs0J,GAAW,EAAEt0J,GAAE,CAAC,EAAE,MAAMA,GAAE,CAAC,EAAE,MAAO,KAAKA,GAAE,CAAC,CAAC,EAAEjlC,GAAMilC,GAAE,CAAC,EAAE,KAAK,KAAKjlC,GAAMilC,GAAE,CAAC,CAAC,EAAEjzB,EAAe,KAAKizB,GAAE,CAAC,CAAC,EAAEjlC,GAAMA,GAAM,QAAQilC,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,EAAEjzB,EAAmBizB,GAAE,SAAS,IAAG,KAAKA,GAAE,CAAC,CAAC,EAAEjlC,GAAMilC,GAAE,CAAC,EAAE,KAAK,KAAKjlC,GAAM,QAAQilC,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,CAAC,EAAEjzB,GAAgB,KAAKizB,EAAC,EAAEjlC,IAAYgS,EAAa3R,IAAG,CAAC,CAAC,EAAEk8L,GAAU,SAAS/qH,GAAI1tD,GAAI,CAAC,QAAQzjB,MAAKyjB,GAAK,GAAG,OAAOA,GAAIzjB,EAAC,IAAIo5L,GAAU31K,GAAIzjB,EAAC,EAAE,OAAO,GAAG,QAAQoT,GAAE,EAAEA,GAAEqQ,GAAIzjB,EAAC,EAAE,OAAOoT,KAAK,GAAGk4C,GAAI7nC,GAAIzjB,EAAC,EAAEoT,EAAC,EAAE+9D,EAAG,EAAG,OAAOnxE,KAAIi5L,EAAQtnL,EAAU3R,WAAYsrD,GAAI7nC,GAAIzjB,EAAC,EAAEmxE,EAAG,EAAG,OAAOnxE,KAAIi5L,EAAQtnL,EAAU3R,GAAG,OAAOmxE,EAAG,EAAMgrH,GAAa,CAAC,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,OAAO,QAAQ,OAAO,QAAQ,OAAO,QAAQ,OAAO,IAAI,GAAG,EAAEC,GAAkB,CAAC,GAAG,OAAO,UAAU,SAAS,SAAS,QAAQ,IAAI,SAAS,GAAG,CAAC,SAAS,QAAQ,EAAE,MAAM,SAAS,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,GAAG,CAAC,SAAS,SAAS,EAAE,GAAG,KAAK,EAAMltF,GAAQ,CAAC,QAAQ,CAAC,CAAC,8BAA8B,EAAE,CAACihF,EAAQ,CAAC9hC,EAAK,QAAQ,CAAC,EAAE,CAAC,6BAA6B,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,MAAM,CAAC,EAAE,CAAC,4BAA4B,mDAAmD,yCAAyC,EAAE,CAACA,EAAK8hC,CAAO,EAAE,CAAC,uBAAuB,EAAE,CAACA,EAAQ,CAAC9hC,EAAK0sC,GAAM,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC5K,EAAQ,CAAC9hC,EAAK0sC,EAAK,CAAC,EAAE,CAAC,uBAAuB,8DAA8D,qDAAqD,kCAAkC,2BAA2B,+LAA+L,kCAAkC,qBAAqB,EAAE,CAAC1sC,EAAK8hC,CAAO,EAAE,CAAC,mDAAmD,EAAE,CAACA,EAAQ,CAAC9hC,EAAK,KAAKisC,CAAO,CAAC,EAAE,CAAC,+BAA+B,8BAA8B,EAAE,CAACnK,EAAQ,CAAC9hC,EAAK,qBAAqB,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,QAAQ,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,WAAW,CAAC,EAAE,CAAC,6CAA6C,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,IAAI,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,QAAQ,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,CAACA,EAAK,OAAO,aAAaisC,CAAO,EAAEnK,CAAO,EAAE,CAAC,qBAAqB,EAAE,CAACA,EAAQ,CAAC9hC,EAAKosC,GAAQ,QAAQ,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAACtK,EAAQ,CAAC9hC,EAAK0sC,GAAM,QAAQ,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC5K,EAAQ,CAAC9hC,EAAK,SAAS,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,SAAS,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK0sC,GAAM,QAAQ,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC5K,EAAQ,CAAC9hC,EAAK,QAAQisC,CAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAACnK,EAAQ,CAAC9hC,EAAKosC,EAAO,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAAC,CAACpsC,EAAK,OAAOisC,CAAO,CAAC,EAAE,CAAC,qDAAqD,EAAE,CAAC,CAACjsC,EAAK,OAAO,MAAMisC,CAAO,EAAEnK,CAAO,EAAE,CAAC,6BAA6B,EAAE,CAAC,CAAC9hC,EAAK,KAAK,GAAG,EAAE8hC,CAAO,EAAE,CAAC,gCAAgC,iDAAiD,wDAAwD,EAAE,CAAC9hC,EAAK8hC,CAAO,EAAE,CAAC,2BAA2B,eAAe,oBAAoB,EAAE,CAAC9hC,CAAI,EAAE,CAAC,6DAA6D,EAAE,CAAC,CAACA,EAAKgtC,EAAQ,EAAElL,CAAO,EAAE,CAAC,uCAAuC,kCAAkC,4BAA4B,4BAA4B,sCAAsC,EAAE,CAAC9hC,EAAK8hC,CAAO,EAAE,CAAC,8BAA8B,EAAE,CAACA,EAAQ,CAAC9hC,EAAK,KAAK,CAAC,EAAE,CAAC,4CAA4C,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,QAAQ,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAKksC,EAAO,WAAW,CAAC,EAAE,CAAC,6BAA6B,EAAE,CAAC,CAAClsC,EAAKksC,EAAO,UAAU,EAAEpK,CAAO,EAAE,CAAC,yDAAyD,EAAE,CAACA,EAAQ,CAAC9hC,EAAK,WAAWisC,CAAO,CAAC,EAAE,CAAC,6DAA6D,EAAE,CAACjsC,EAAK8hC,CAAO,EAAE,CAAC,8CAA8C,EAAE,CAACA,EAAQ,CAAC9hC,EAAK,eAAe,CAAC,EAAE,CAAC,oDAAoD,EAAE,CAAC8hC,EAAQ9hC,CAAI,EAAE,CAAC,8CAA8C,EAAE,CAACA,EAAK,CAAC8hC,EAAQ+L,GAAUC,EAAY,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC9tC,EAAK8hC,CAAO,EAAE,CAAC,sCAAsC,EAAE,CAAC,CAAC9hC,EAAK,UAAU,EAAE8hC,CAAO,EAAE,CAAC,qCAAqC,EAAE,CAACA,EAAQ,CAAC9hC,EAAKosC,GAAQ,UAAU,CAAC,EAAE,CAAC,6BAA6B,cAAc,mGAAmG,+FAA+F,wBAAwB,2CAA2C,wHAAwH,uBAAuB,oBAAoB,EAAE,CAACpsC,EAAK8hC,CAAO,EAAE,CAAC,sBAAsB,EAAE,CAAC9hC,EAAK,CAAC8hC,EAAQ,eAAe,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,+CAA+C,EAAE,CAAC,CAACuJ,EAAa,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAACA,EAAaoC,EAAQ,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAACpC,EAAa,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,CAACA,EAAa,OAAO,CAAC,EAAE,CAAC,iCAAiC,EAAE,CAAC,CAACA,EAAa,OAAO,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,CAACA,EAAa,KAAK,CAAC,EAAE,CAAC,wCAAwC,EAAE,CAAC,CAACA,EAAa,OAAOV,EAAM8C,EAAQ,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAACpC,EAAa,OAAO,CAAC,EAAE,CAAC,yHAAyH,EAAE,CAAC,CAACA,EAAaoC,EAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,iFAAiF,EAAE,CAACvC,EAAM,CAACE,EAAOuB,EAAO,EAAE,CAACxB,EAAKK,CAAM,CAAC,EAAE,CAAC,yDAAyD,uBAAuB,eAAe,EAAE,CAACN,EAAM,CAACE,EAAOuB,EAAO,EAAE,CAACxB,EAAKI,CAAM,CAAC,EAAE,CAAC,0CAA0C,EAAE,CAACL,EAAM,CAACE,EAAOU,CAAK,EAAE,CAACX,EAAKI,CAAM,CAAC,EAAE,CAAC,6BAA6B,oCAAoC,gCAAgC,EAAE,CAACL,EAAM,CAACE,EAAOU,CAAK,EAAE,CAACX,EAAKK,CAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAACN,EAAM,CAACE,EAAOU,CAAK,CAAC,EAAE,CAAC,+BAA+B,EAAE,CAACZ,EAAM,CAACE,EAAOwB,EAAK,EAAE,CAACzB,EAAKI,CAAM,CAAC,EAAE,CAAC,6DAA6D,EAAE,CAACL,EAAM,CAACE,EAAOkB,EAAM,EAAE,CAACnB,EAAKK,CAAM,CAAC,EAAE,CAAC,kCAAkC,oEAAoE,EAAE,CAACN,EAAM,CAACE,EAAOkB,EAAM,EAAE,CAACnB,EAAKI,CAAM,CAAC,EAAE,CAAC,6BAA6B,yBAAyB,uCAAuC,iDAAiD,uGAAuG,EAAE,CAAC,CAACL,EAAM,KAAK,GAAG,EAAE,CAACE,EAAO0B,EAAM,EAAE,CAAC3B,EAAKI,CAAM,CAAC,EAAE,CAAC,4CAA4C,EAAE,CAAC,CAACL,EAAM,KAAK,GAAG,EAAE,CAACE,EAAO0B,EAAM,EAAE,CAAC3B,EAAKK,CAAM,CAAC,EAAE,CAAC,sBAAsB,iEAAiE,EAAE,CAACN,EAAM,CAACE,EAAO,MAAM,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,yBAAyB,kCAAkC,EAAE,CAACL,EAAM,CAACE,EAAO,MAAM,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,gCAAgC,EAAE,CAACL,EAAM,CAACE,EAAO,QAAQ,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,iFAAiF,4BAA4B,oDAAoD,EAAE,CAACL,EAAM,CAACE,EAAOqB,EAAQ,EAAE,CAACtB,EAAKI,CAAM,CAAC,EAAE,CAAC,mCAAmC,EAAE,CAACL,EAAM,CAACE,EAAOqB,EAAQ,EAAE,CAACtB,EAAKK,CAAM,CAAC,EAAE,CAAC,+DAA+D,EAAE,CAACN,EAAM,CAACE,EAAOmB,EAAE,EAAE,CAACpB,EAAKK,CAAM,CAAC,EAAE,CAAC,sDAAsD,oDAAoD,sBAAsB,EAAE,CAACN,EAAM,CAACE,EAAOmB,EAAE,EAAE,CAACpB,EAAKI,CAAM,CAAC,EAAE,CAAC,oBAAoB,mEAAmE,EAAE,CAACL,EAAM,CAACE,EAAO,QAAQ,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,qCAAqC,wBAAwB,EAAE,CAAC,CAACN,EAAM,KAAK,GAAG,EAAE,CAACE,EAAO,OAAO,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAACL,EAAM,CAACE,EAAOiB,EAAM,EAAE,CAAClB,EAAKK,CAAM,CAAC,EAAE,CAAC,2CAA2C,EAAE,CAACN,EAAM,CAACE,EAAOiB,EAAM,EAAE,CAAClB,EAAKI,CAAM,CAAC,EAAE,CAAC,wGAAwG,EAAE,CAACL,EAAM,CAACE,EAAOyB,CAAI,EAAE,CAAC1B,EAAKI,CAAM,CAAC,EAAE,CAAC,oBAAoB,+BAA+B,EAAE,CAAC,CAACL,EAAM,eAAe,EAAE,CAACE,EAAOyB,CAAI,EAAE,CAAC1B,EAAKK,CAAM,CAAC,EAAE,CAAC,sCAAsC,wCAAwC,EAAE,CAACN,EAAM,CAACE,EAAO,SAAS,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,eAAe,uCAAuC,8BAA8B,EAAE,CAACL,EAAM,CAACE,EAAOS,CAAM,EAAE,CAACV,EAAKK,CAAM,CAAC,EAAE,CAAC,+CAA+C,EAAE,CAAC,CAACN,EAAM,QAAQ,eAAe,EAAE,CAACE,EAAOS,CAAM,EAAE,CAACV,EAAKI,CAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,CAACL,EAAME,EAAO,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,gCAAgC,gBAAgB,EAAE,CAACN,EAAM,CAACE,EAAOY,CAAU,EAAE,CAACb,EAAKI,CAAM,CAAC,EAAE,CAAC,mFAAmF,EAAE,CAACL,EAAM,CAACE,EAAOW,CAAI,EAAE,CAACZ,EAAKK,CAAM,CAAC,EAAE,CAAC,+CAA+C,EAAE,CAACN,EAAM,CAACE,EAAOW,CAAI,EAAE,CAACZ,EAAKI,CAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAACL,EAAM,CAACE,EAAO,KAAK,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,2CAA2C,oCAAoC,+EAA+E,EAAE,CAACJ,EAAO,CAACF,EAAM,KAAK,GAAG,EAAE,CAACC,EAAKI,CAAM,CAAC,EAAE,CAAC,qCAAqC,EAAE,CAACL,EAAM,CAACE,EAAO,MAAM,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,8BAA8B,mBAAmB,EAAE,CAACN,EAAM,CAACE,EAAO,OAAO,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,kGAAkG,mBAAmB,iBAAiB,8BAA8B,0BAA0B,WAAW,uBAAuB,EAAE,CAACH,EAAOF,EAAM,CAACC,EAAKI,CAAM,CAAC,EAAE,CAAC,2BAA2B,wBAAwB,uCAAuC,uBAAuB,4BAA4B,iCAAiC,kCAAkC,8BAA8B,gCAAgC,iCAAiC,EAAE,CAACH,EAAOF,EAAM,CAACC,EAAKK,CAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAACN,EAAM,CAACE,EAAOoB,EAAS,EAAE,CAACrB,EAAKK,CAAM,CAAC,EAAE,CAAC,mCAAmC,EAAE,CAACN,EAAM,CAACE,EAAO,WAAW,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAACL,EAAM,CAACE,EAAO,MAAM,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAACL,EAAM,CAACE,EAAO,SAAS,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAACL,EAAM,CAACE,EAAO,KAAK,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAACN,EAAM,CAACE,EAAO,MAAM,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAACN,EAAM,CAACE,EAAO,SAAS,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,6CAA6C,EAAE,CAACN,EAAM,CAACE,EAAO,gBAAgB,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAACN,EAAM,CAACE,EAAO,UAAU,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAACN,EAAM,CAACE,EAAO,KAAK,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAACN,EAAM,CAACE,EAAO,KAAK,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAACL,EAAM,CAACE,EAAO,OAAO,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAACL,EAAM,CAACE,EAAO,OAAO,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAACN,EAAM,CAACE,EAAO,MAAM,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,mBAAmB,oCAAoC,EAAE,CAAC,CAACJ,EAAO,cAAc,EAAEF,EAAM,CAACC,EAAKK,CAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAACN,EAAM,CAACE,EAAO,UAAU,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAACN,EAAM,CAACE,EAAO,UAAU,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,kDAAkD,EAAE,CAAC,CAACJ,EAAO,OAAO,EAAEF,EAAM,CAACC,EAAKI,CAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,CAACH,EAAO,OAAO,EAAEF,EAAM,CAACC,EAAKI,CAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAACL,EAAM,CAACE,EAAO,WAAW,EAAE,CAACD,EAAKI,CAAM,CAAC,EAAE,CAAC,qCAAqC,EAAE,CAACL,EAAM,CAACE,EAAO,SAAS,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAACN,EAAM,CAACE,EAAO,WAAW,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAACN,EAAM,CAACE,EAAO,OAAO,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAACN,EAAM,CAACE,EAAO,QAAQ,EAAE,CAACD,EAAKK,CAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAACJ,EAAOF,EAAM,CAACC,EAAKI,CAAM,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAACL,EAAM,MAAM,GAAG,EAAE,CAACE,EAAOoB,EAAS,EAAE,CAACrB,EAAKI,CAAM,CAAC,EAAE,CAAC,uDAAuD,EAAE,CAACL,EAAM,CAACE,EAAO2B,EAAK,EAAE,CAAC5B,EAAKK,CAAM,CAAC,EAAE,CAAC,uCAAuC,EAAE,CAACN,EAAM,CAACE,EAAO2B,EAAK,EAAE,CAAC5B,EAAKI,CAAM,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAACH,EAAO,CAACD,EAAKM,CAAO,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAACP,EAAM,IAAI,SAAS,EAAE,CAACE,EAAOuB,EAAO,EAAE,CAACxB,EAAKM,CAAO,CAAC,EAAE,CAAC,4DAA4D,EAAE,CAAC,CAACL,EAAOmB,EAAE,EAAE,CAACpB,EAAKM,CAAO,CAAC,EAAE,CAAC,cAAc,EAAE,CAACL,EAAO,CAACF,EAAMY,EAAM,KAAK,EAAE,CAACX,EAAKM,CAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAACP,EAAMgB,EAAO,MAAM,EAAE,CAACd,EAAOiB,EAAM,EAAE,CAAClB,EAAKM,CAAO,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAACP,EAAM,CAACE,EAAOS,CAAM,EAAE,CAACV,EAAKM,CAAO,CAAC,EAAE,CAAC,uBAAuB,qBAAqB,EAAE,CAACP,EAAM,CAACE,EAAOwB,EAAK,EAAE,CAACzB,EAAKM,CAAO,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAACP,EAAM,CAACE,EAAOyB,CAAI,EAAE,CAAC1B,EAAKM,CAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAACP,EAAM,CAACE,EAAO0B,EAAM,EAAE,CAAC3B,EAAKM,CAAO,CAAC,EAAE,CAAC,2BAA2B,EAAE,CAACL,EAAOF,EAAM,CAACC,EAAKM,CAAO,CAAC,EAAE,CAAC,0CAA0C,2DAA2D,EAAE,CAAC,CAACL,EAAOvoH,EAAI,EAAE,CAACqoH,EAAMroH,EAAI,EAAE,CAACsoH,EAAKM,CAAO,CAAC,EAAE,CAAC,iDAAiD,EAAE,CAAC,CAACN,EAAKM,CAAO,CAAC,EAAE,CAAC,UAAU,4BAA4B,EAAE,CAACL,EAAOF,EAAM,CAACC,EAAKG,CAAO,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAACJ,EAAM,CAACE,EAAO,QAAQ,EAAE,CAACD,EAAKG,CAAO,CAAC,EAAE,CAAC,iCAAiC,EAAE,CAACJ,EAAM,CAACE,EAAOyB,CAAI,EAAE,CAAC1B,EAAKG,CAAO,CAAC,EAAE,CAAC,oCAAoC,EAAE,CAACJ,EAAM,CAACE,EAAOoB,EAAS,EAAE,CAACrB,EAAKG,CAAO,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAACF,EAAOF,EAAM,CAACC,EAAKO,CAAQ,CAAC,EAAE,CAAC,sCAAsC,EAAE,CAACR,EAAM,CAACE,EAAOU,CAAK,EAAE,CAACX,EAAKO,CAAQ,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAACR,EAAM,CAACE,EAAOiB,EAAM,EAAE,CAAClB,EAAKO,CAAQ,CAAC,EAAE,CAAC,2BAA2B,EAAE,CAACR,EAAM,CAACE,EAAO2B,EAAK,EAAE,CAAC5B,EAAKO,CAAQ,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAACR,EAAM,CAACE,EAAO4B,EAAQ,EAAE,CAAC7B,EAAKO,CAAQ,CAAC,EAAE,CAAC,sCAAsC,EAAE,CAACN,EAAO,CAACD,EAAKQ,CAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAACT,EAAM,CAACE,EAAOS,CAAM,EAAE,CAACV,EAAKQ,CAAQ,CAAC,EAAE,CAAC,yDAAyD,EAAE,CAACT,EAAM,CAACC,EAAKI,CAAM,CAAC,EAAE,CAAC,6DAA6D,EAAE,CAACL,EAAM,CAACC,EAAKK,CAAM,CAAC,EAAE,CAAC,8CAA8C,EAAE,CAAC,CAACL,EAAKK,CAAM,CAAC,EAAE,CAAC,gEAAgE,EAAE,CAAC,CAACL,EAAKI,CAAM,CAAC,EAAE,CAAC,gCAAgC,EAAE,CAACL,EAAM,CAACE,EAAO,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,4BAA4B,EAAE,CAACtJ,EAAQ,CAAC9hC,EAAKmsC,GAAK,MAAM,CAAC,EAAE,CAAC,2CAA2C,EAAE,CAACrK,EAAQ,CAAC9hC,EAAK,OAAO,CAAC,EAAE,CAAC,uBAAuB,sEAAsE,0BAA0B,yCAAyC,8BAA8B,aAAa,EAAE,CAACA,EAAK8hC,CAAO,EAAE,CAAC,+BAA+B,EAAE,CAACA,EAAQ9hC,CAAI,CAAC,EAAE,GAAG,CAAC,CAAC,iCAAiC,EAAE,CAACA,EAAK8hC,CAAO,EAAE,CAAC,4BAA4B,wDAAwD,4CAA4C,EAAE,CAAC9hC,EAAK,CAAC8hC,EAAQ+L,GAAUE,EAAiB,CAAC,EAAE,CAAC,oCAAoC,EAAE,CAAC,CAAC/tC,EAAK,SAAS,EAAE,CAAC8hC,EAAQ+L,GAAUE,EAAiB,CAAC,EAAE,CAAC,sDAAsD,uBAAuB,sBAAsB,EAAE,CAAC,CAACjM,EAAQ,KAAK,GAAG,EAAE,CAAC9hC,EAAK,KAAK,CAAC,EAAE,CAAC,0BAA0B,uCAAuC,EAAE,CAAC,CAACA,EAAKktC,EAAM,EAAE,CAACpL,EAAQ,KAAK,GAAG,CAAC,EAAE,CAAC,gDAAgD,EAAE,CAACA,EAAQ9hC,CAAI,EAAE,CAAC,+EAA+E,8BAA8B,+BAA+B,gBAAgB,EAAE,CAACA,EAAK8hC,CAAO,EAAE,CAAC,YAAY,EAAE,CAACA,EAAQ,CAAC9hC,EAAKgsC,CAAU,CAAC,EAAE,CAAC,2DAA2D,EAAE,CAAClK,EAAQ,CAAC9hC,EAAK,SAAS,CAAC,EAAE,CAAC,iFAAiF,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAKosC,GAAQ,KAAK,CAAC,EAAE,CAAC,kBAAkB,sCAAsC,EAAE,CAACtK,EAAQ,CAAC9hC,EAAK,OAAO,CAAC,EAAE,CAAC,sCAAsC,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAK,SAAS,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC8hC,EAAQ,CAAC9hC,EAAKksC,EAAO,MAAM,CAAC,EAAE,CAAC,kCAAkC,EAAE,CAAC,CAAClsC,EAAKitC,EAAW,EAAEnL,CAAO,EAAE,CAAC,qBAAqB,iBAAiB,2BAA2B,mDAAmD,2BAA2B,wCAAwC,yBAAyB,4BAA4B,8SAA8S,2BAA2B,oBAAoB,6EAA6E,gBAAgB,EAAE,CAAC9hC,EAAK8hC,CAAO,EAAE,CAAC,uBAAuB,EAAE,CAAC,CAAC9hC,EAAK,SAAS,EAAE8hC,CAAO,EAAE,CAAC,sCAAsC,kCAAkC,mEAAmE,oBAAoB,EAAE,CAAC9hC,EAAK8hC,CAAO,CAAC,CAAC,EAAMkM,GAAS,SAASpzJ,GAAGuyJ,GAAW,CAAqD,GAAjD,OAAOvyJ,KAAKmwJ,IAAUoC,GAAWvyJ,GAAGA,GAAGt3B,GAAa,EAAE,gBAAgB0qL,IAAW,OAAO,IAAIA,GAASpzJ,GAAGuyJ,EAAU,EAAE,UAAS,EAAG,IAAIc,GAAW,OAAOxlL,IAASqiL,GAAYriL,EAAO,UAAUA,EAAO,UAAUnF,EAAc4qL,GAAItzJ,KAAKqzJ,IAAYA,GAAW,UAAUA,GAAW,UAAUtD,GAAWwD,GAAMF,IAAYA,GAAW,cAAcA,GAAW,cAAc3qL,EAAc8qL,GAAQjB,GAAWhqH,GAAO09B,GAAQssF,EAAU,EAAEtsF,GAAYwtF,GAAWJ,IAAYA,GAAW,WAAWC,GAAI,YAAK,WAAW,UAAU,CAAC,IAAII,GAAS,GAAG,OAAAA,GAAStuC,CAAI,EAAE18I,EAAUgrL,GAASxM,CAAO,EAAEx+K,EAAUqqL,GAAU,KAAKW,GAASJ,GAAIE,GAAQ,OAAO,EAAEE,GAASrD,CAAK,EAAEyC,GAASY,GAASxM,CAAO,CAAC,EAAKuM,IAAYJ,IAAYA,GAAW,OAAO,OAAOA,GAAW,MAAM,SAASpD,IAAWyD,GAAStuC,CAAI,EAAE,SAAesuC,EAAQ,EAAE,KAAK,OAAO,UAAU,CAAC,IAAIC,GAAK,GAAG,OAAAA,GAAKlD,CAAY,EAAE/nL,EAAUqqL,GAAU,KAAKY,GAAKL,GAAIE,GAAQ,GAAG,EAASG,EAAI,EAAE,KAAK,UAAU,UAAU,CAAC,IAAIC,GAAQ,GAAG,OAAAA,GAAQpD,CAAM,EAAE9nL,EAAUkrL,GAAQtD,CAAK,EAAE5nL,EAAUkrL,GAAQrD,CAAI,EAAE7nL,EAAUqqL,GAAU,KAAKa,GAAQN,GAAIE,GAAQ,MAAM,EAAKC,IAAY,CAACG,GAAQrD,CAAI,GAAGgD,IAAOA,GAAM,SAAQK,GAAQrD,CAAI,EAAEI,GAAU8C,IAAYG,GAAQtD,CAAK,GAAG,aAAa+C,IAAY,OAAOA,GAAW,aAAanD,GAAYmD,GAAW,gBAAgBA,GAAW,eAAe,IAAGO,GAAQtD,CAAK,EAAE,OAAOsD,GAAQrD,CAAI,EAAEK,GAAcgD,EAAO,EAAE,KAAK,UAAU,UAAU,CAAC,IAAIC,GAAQ,GAAG,OAAAA,GAAQzuC,CAAI,EAAE18I,EAAUmrL,GAAQ3M,CAAO,EAAEx+K,EAAUqqL,GAAU,KAAKc,GAAQP,GAAIE,GAAQ,MAAM,EAASK,EAAO,EAAE,KAAK,MAAM,UAAU,CAAC,IAAIC,GAAI,CAAE,EAAC,OAAAA,GAAI1uC,CAAI,EAAE18I,EAAUorL,GAAI5M,CAAO,EAAEx+K,EAAUqqL,GAAU,KAAKe,GAAIR,GAAIE,GAAQ,EAAE,EAAKC,IAAY,CAACK,GAAI1uC,CAAI,GAAGmuC,IAAOA,GAAM,UAAU,YAAWO,GAAI1uC,CAAI,EAAEmuC,GAAM,SAAS,QAAQ,aAAalB,EAAW,EAAE,QAAQ,SAASC,EAAM,GAASwB,EAAG,EAAE,KAAK,UAAU,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,MAAO,EAAC,QAAQ,KAAK,WAAY,EAAC,OAAO,KAAK,UAAW,EAAC,GAAG,KAAK,MAAK,EAAG,OAAO,KAAK,UAAS,EAAG,IAAI,KAAK,OAAM,CAAE,CAAC,EAAE,KAAK,MAAM,UAAU,CAAC,OAAOR,EAAG,EAAE,KAAK,MAAM,SAAStzJ,GAAG,CAAC,OAAAszJ,GAAI,OAAOtzJ,KAAKowJ,GAAUpwJ,GAAG,OAAOgxJ,EAAc/oH,GAAKjoC,GAAGgxJ,CAAa,EAAEhxJ,GAAU,IAAI,EAAE,KAAK,MAAMszJ,EAAG,EAAS,IAAI,EAAEF,GAAS,QAAQtD,EAAWsD,GAAS,QAAQX,GAAU,CAACrtC,EAAK8hC,EAAQmJ,CAAK,CAAC,EAAE+C,GAAS,IAAIX,GAAU,CAAChC,CAAY,CAAC,EAAE2C,GAAS,OAAOX,GAAU,CAACnC,EAAME,EAAOD,EAAKG,EAAQC,EAAOE,EAAQD,EAAOE,EAASC,CAAQ,CAAC,EAAEqC,GAAS,OAAOA,GAAS,GAAGX,GAAU,CAACrtC,EAAK8hC,CAAO,CAAC,EAAiEv5K,EAAO,UAASixB,EAAQjxB,EAAA,QAAeylL,IAASx0J,WAAiBw0J,GAA0J,IAAI3qL,GAAE,OAAOoF,IAASqiL,IAAariL,EAAO,QAAQA,EAAO,OAAO,GAAGpF,IAAG,CAACA,GAAE,GAAG,CAAC,IAAIsrL,GAAO,IAAIX,GAAS3qL,GAAE,GAAGsrL,GAAO,UAAS,EAAGtrL,GAAE,GAAG,IAAI,UAAU,CAAC,OAAOsrL,GAAO,MAAO,GAAEtrL,GAAE,GAAG,IAAI,SAASu3B,GAAG,CAAC+zJ,GAAO,MAAM/zJ,EAAE,EAAE,IAAInpC,GAAOk9L,GAAO,UAAW,EAAC,QAAQryK,MAAQ7qB,GAAQ4R,GAAE,GAAGiZ,EAAI,EAAE7qB,GAAO6qB,EAAI,CAAE,CAAC,CAAC,GAAG,OAAO,QAAS,SAAS,OAAO9T,EAAI,sCCD17pB,OAAO,eAAes2K,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAE5D,SAAS8P,IAAiBv1K,EAAI,CAAE,OAAQA,GAAO,OAAOA,GAAO,UAAa,YAAaA,EAAMA,EAAG,QAAaA,CAAK,CAElH,IAAIqvC,GAAQxyB,EACR24J,GAAiBD,IAAgBlmI,EAAK,EAEtCslI,GAAWt0J,IAEXo1J,GAAmB,IAAId,GACvBtpI,GAAUoqI,GAAiB,aAC3BC,IAAMD,GAAiB,SACvBE,GAASF,GAAiB,YAC1BG,GAASH,GAAiB,YAC1BI,GAAKJ,GAAiB,QACtBl0J,GAAKk0J,GAAiB,QACtBK,GAAQ,SAAeC,EAAiB,CAC1C,OAAON,GAAiB,MAAMM,CAAe,CAC/C,EACIC,GAAiB,SAAwBC,EAAW,CACtD,GAAI,CAACA,EAAW,CACd,QAAQ,MAAM,kCAAkC,EAChD,MACD,CAED,IAAIC,EAAoB,IAAIvB,GAASsB,CAAS,EAC9C,MAAO,CACL,GAAIC,EACJ,QAASA,EAAkB,WAAY,EACvC,IAAKA,EAAkB,OAAQ,EAC/B,OAAQA,EAAkB,UAAW,EACrC,OAAQA,EAAkB,UAAW,EACrC,GAAIA,EAAkB,MAAO,EAC7B,GAAIA,EAAkB,MAAO,EAC7B,aAAc,SAAsBH,EAAiB,CACnD,OAAOG,EAAkB,MAAMH,CAAe,CAC/C,CACL,CACA,EAEII,GAAwB,OAAO,OAAO,CACxC,iBAAkBV,GAClB,QAASpqI,GACT,IAAKqqI,IACL,OAAQC,GACR,OAAQC,GACR,GAAIC,GACJ,GAAIt0J,GACJ,MAAOu0J,GACP,eAAgBE,EAClB,CAAC,EAED,SAASt6G,GAAQt8D,EAAQu8D,EAAgB,CACvC,IAAIjlE,EAAO,OAAO,KAAK0I,CAAM,EAE7B,GAAI,OAAO,sBAAuB,CAChC,IAAI8e,EAAU,OAAO,sBAAsB9e,CAAM,EAE7Cu8D,IACFz9C,EAAUA,EAAQ,OAAO,SAAU09C,EAAK,CACtC,OAAO,OAAO,yBAAyBx8D,EAAQw8D,CAAG,EAAE,UAC5D,CAAO,GAGHllE,EAAK,KAAK,MAAMA,EAAMwnB,CAAO,CAC9B,CAED,OAAOxnB,CACT,CAEA,SAASmlE,IAAe3nF,EAAQ,CAC9B,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIqJ,EAAS,UAAUrJ,CAAC,GAAK,KAAO,UAAUA,CAAC,EAAI,GAE/CA,EAAI,EACNojF,GAAQ,OAAO/5E,CAAM,EAAG,EAAI,EAAE,QAAQ,SAAUyE,EAAK,CACnDq1E,IAAgBvnF,EAAQkS,EAAKzE,EAAOyE,CAAG,CAAC,CAChD,CAAO,EACQ,OAAO,0BAChB,OAAO,iBAAiBlS,EAAQ,OAAO,0BAA0ByN,CAAM,CAAC,EAExE+5E,GAAQ,OAAO/5E,CAAM,CAAC,EAAE,QAAQ,SAAUyE,EAAK,CAC7C,OAAO,eAAelS,EAAQkS,EAAK,OAAO,yBAAyBzE,EAAQyE,CAAG,CAAC,CACvF,CAAO,CAEJ,CAED,OAAOlS,CACT,CAEA,SAAS4lE,GAAQ9sD,EAAK,CACpB,0BAEA,OAAI,OAAO,QAAW,YAAc,OAAO,OAAO,UAAa,SAC7D8sD,GAAU,SAAU9sD,EAAK,CACvB,OAAO,OAAOA,CACpB,EAEI8sD,GAAU,SAAU9sD,EAAK,CACvB,OAAOA,GAAO,OAAO,QAAW,YAAcA,EAAI,cAAgB,QAAUA,IAAQ,OAAO,UAAY,SAAW,OAAOA,CAC/H,EAGS8sD,GAAQ9sD,CAAG,CACpB,CAEA,SAAS4qD,IAAgBC,EAAUC,EAAa,CAC9C,GAAI,EAAED,aAAoBC,GACxB,MAAM,IAAI,UAAU,mCAAmC,CAE3D,CAEA,SAAS0jB,GAAkBtnF,EAAQ2zB,EAAO,CACxC,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CACrC,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EACxBw9E,EAAW,WAAaA,EAAW,YAAc,GACjDA,EAAW,aAAe,GACtB,UAAWA,IAAYA,EAAW,SAAW,IACjD,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,CACzD,CACH,CAEA,SAASoE,IAAapiB,EAAasiB,EAAYC,EAAa,CAC1D,OAAID,GAAYoB,GAAkB1jB,EAAY,UAAWsiB,CAAU,EAC/DC,GAAamB,GAAkB1jB,EAAauiB,CAAW,EACpDviB,CACT,CAEA,SAAS2jB,IAAgBzuE,EAAK5G,EAAK3R,EAAO,CACxC,OAAI2R,KAAO4G,EACT,OAAO,eAAeA,EAAK5G,EAAK,CAC9B,MAAO3R,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EAChB,CAAK,EAEDuY,EAAI5G,CAAG,EAAI3R,EAGNuY,CACT,CAEA,SAAS86C,IAAW,CAClBA,UAAW,OAAO,QAAU,SAAU5zD,EAAQ,CAC5C,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIqJ,EAAS,UAAUrJ,CAAC,EAExB,QAAS8N,KAAOzE,EACV,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAClDlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAG7B,CAED,OAAOlS,CACX,EAES4zD,GAAS,MAAM,KAAM,SAAS,CACvC,CAEA,SAASmQ,IAAU3O,EAAUC,EAAY,CACvC,GAAI,OAAOA,GAAe,YAAcA,IAAe,KACrD,MAAM,IAAI,UAAU,oDAAoD,EAG1ED,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CACrE,YAAa,CACX,MAAOD,EACP,SAAU,GACV,aAAc,EACf,CACL,CAAG,EACGC,GAAYJ,GAAgBG,EAAUC,CAAU,CACtD,CAEA,SAASuyB,GAAgB1+C,EAAG,CAC1B,OAAA0+C,GAAkB,OAAO,eAAiB,OAAO,eAAiB,SAAyB1+C,EAAG,CAC5F,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CACjD,EACS0+C,GAAgB1+C,CAAC,CAC1B,CAEA,SAAS+rB,GAAgB/rB,EAAGxP,EAAG,CAC7B,OAAAu7B,GAAkB,OAAO,gBAAkB,SAAyB/rB,EAAGxP,EAAG,CACxE,OAAAwP,EAAE,UAAYxP,EACPwP,CACX,EAES+rB,GAAgB/rB,EAAGxP,CAAC,CAC7B,CAEA,SAASi8B,IAA8BloD,EAAQmoD,EAAU,CACvD,GAAInoD,GAAU,KAAM,MAAO,GAC3B,IAAIzN,EAAS,GACT61D,EAAa,OAAO,KAAKpoD,CAAM,EAC/ByE,EAAK,EAET,IAAK,EAAI,EAAG,EAAI2jD,EAAW,OAAQ,IACjC3jD,EAAM2jD,EAAW,CAAC,EACd,EAAAD,EAAS,QAAQ1jD,CAAG,GAAK,KAC7BlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAG1B,OAAOlS,CACT,CAEA,SAASqyE,GAAyB5kE,EAAQmoD,EAAU,CAClD,GAAInoD,GAAU,KAAM,MAAO,GAE3B,IAAIzN,EAAS21D,IAA8BloD,EAAQmoD,CAAQ,EAEvD1jD,EAAK9N,EAET,GAAI,OAAO,sBAAuB,CAChC,IAAI0hF,EAAmB,OAAO,sBAAsBr4E,CAAM,EAE1D,IAAKrJ,EAAI,EAAGA,EAAI0hF,EAAiB,OAAQ1hF,IACvC8N,EAAM4zE,EAAiB1hF,CAAC,EACpB,EAAAwxD,EAAS,QAAQ1jD,CAAG,GAAK,IACxB,OAAO,UAAU,qBAAqB,KAAKzE,EAAQyE,CAAG,IAC3DlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,EAE3B,CAED,OAAOlS,CACT,CAEA,SAASq7D,GAAuB7wC,EAAM,CACpC,GAAIA,IAAS,OACX,MAAM,IAAI,eAAe,2DAA2D,EAGtF,OAAOA,CACT,CAEA,SAASq5C,IAA2Br5C,EAAMs5C,EAAM,CAC9C,GAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YACvD,OAAOA,EACF,GAAIA,IAAS,OAClB,MAAM,IAAI,UAAU,0DAA0D,EAGhF,OAAOzI,GAAuB7wC,CAAI,CACpC,CAEA,SAAS03K,IAAe9mL,EAAKhX,EAAG,CAC9B,OAAO+9L,IAAgB/mL,CAAG,GAAKgnL,IAAsBhnL,EAAKhX,CAAC,GAAK4uF,IAA4B53E,EAAKhX,CAAC,GAAKi+L,IAAgB,CACzH,CAEA,SAASF,IAAgB/mL,EAAK,CAC5B,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,CACjC,CAEA,SAASgnL,IAAsBhnL,EAAKhX,EAAG,CACrC,IAAI4Z,EAAK5C,GAAO,KAAO,KAAO,OAAO,OAAW,KAAeA,EAAI,OAAO,QAAQ,GAAKA,EAAI,YAAY,EAEvG,GAAI4C,GAAM,KACV,KAAIskL,EAAO,GACPC,EAAK,GACLz6F,EAAK,GAEL06F,EAAIz6F,EAER,GAAI,CACF,IAAK/pF,EAAKA,EAAG,KAAK5C,CAAG,EAAG,EAAEmnL,GAAMC,EAAKxkL,EAAG,KAAM,GAAE,QAC9CskL,EAAK,KAAKE,EAAG,KAAK,EAEd,EAAAp+L,GAAKk+L,EAAK,SAAWl+L,IAH4Bm+L,EAAK,GAG1D,CAEH,OAAQ90I,EAAK,CACZq6C,EAAK,GACLC,EAAKt6C,CACT,QAAY,CACR,GAAI,CACE,CAAC80I,GAAMvkL,EAAG,QAAa,MAAMA,EAAG,QAC1C,QAAc,CACR,GAAI8pF,EAAI,MAAMC,CACf,CACF,CAED,OAAOu6F,EACT,CAEA,SAAStvG,IAA4B9pD,EAAG+pD,EAAQ,CAC9C,GAAK/pD,EACL,IAAI,OAAOA,GAAM,SAAU,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EAC7D,IAAI,EAAI,OAAO,UAAU,SAAS,KAAK/pD,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADI,IAAM,UAAYA,EAAE,cAAa,EAAIA,EAAE,YAAY,MACnD,IAAM,OAAS,IAAM,MAAO,OAAO,MAAM,KAAKA,CAAC,EACnD,GAAI,IAAM,aAAe,2CAA2C,KAAK,CAAC,EAAG,OAAOwpD,GAAkBxpD,EAAG+pD,CAAM,EACjH,CAEA,SAASP,GAAkBt3E,EAAK4B,EAAK,EAC/BA,GAAO,MAAQA,EAAM5B,EAAI,UAAQ4B,EAAM5B,EAAI,QAE/C,QAAShX,EAAI,EAAGuuF,EAAO,IAAI,MAAM31E,CAAG,EAAG5Y,EAAI4Y,EAAK5Y,IAAKuuF,EAAKvuF,CAAC,EAAIgX,EAAIhX,CAAC,EAEpE,OAAOuuF,CACT,CAEA,SAAS0vG,KAAmB,CAC1B,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACjK,CAEA,IAAII,GAAc,CAChB,OAAQ,SACR,OAAQ,SACR,QAAS,UACT,QAAS,UACT,SAAU,WACV,SAAU,WACV,QAAS,MACX,EACIC,GAAe,CACjB,OAAQ,SACR,QAAS,UACT,MAAO,QACP,OAAQ,SACR,OAAQ,SACR,iBAAkB,oBAClB,KAAM,OACN,SAAU,WACV,GAAI,KACJ,aAAc,gBACd,aAAc,gBACd,KAAM,eACN,eAAgB,iBAClB,EACIC,GAAU,CACZ,IAAK,MACL,QAAS,UACT,aAAc,gBACd,QAAS,UACT,OAAQ,QACV,EACIC,IAAqB,CACvB,SAAU,GACV,SAAU,GACV,UAAW,GACX,UAAW,GACX,UAAW,GACX,WAAY,EACd,EAEIC,IAAkB,SAAyBv4L,EAAM,CACnD,OAAQA,EAAI,CACV,KAAKm4L,GAAY,OACf,MAAO,CACL,SAAU,EAClB,EAEI,KAAKA,GAAY,OACf,MAAO,CACL,SAAU,EAClB,EAEI,KAAKA,GAAY,QACf,MAAO,CACL,UAAW,EACnB,EAEI,KAAKA,GAAY,QACf,MAAO,CACL,UAAW,EACnB,EAEI,KAAKA,GAAY,SACf,MAAO,CACL,WAAY,EACpB,EAEI,KAAKA,GAAY,QACf,MAAO,CACL,UAAW,EACnB,EAEI,KAAKA,GAAY,SACf,MAAO,CACL,WAAY,EACpB,EAEI,QACE,OAAOG,GACV,CACH,EACIE,IAAe,SAAsBf,EAAW,CAClD,OAAOH,GAAMG,CAAS,CACxB,EACIgB,GAAc,SAAqBrpK,EAAG,CACxC,IAAIkP,EAAI,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,OAC5E,OAAOlP,GAAQkP,CACjB,EACIo6J,GAAuB,UAAgC,CACzD,OAAI,OAAO,OAAW,MAChB,OAAO,WAAa,WACf,OAAO,WAAa,UAIxB,EACT,EACIC,GAAe,SAAsB34L,EAAM,CAC7C,IAAI44L,EAAMF,KACV,OAAOE,GAAOA,EAAI,WAAaA,EAAI,SAAS,QAAQ54L,CAAI,IAAM,IAAM44L,EAAI,WAAa,YAAcA,EAAI,eAAiB,GAAK,CAAC,OAAO,SACvI,EAEIC,IAAiB,SAAwBrhH,EAAW3qB,EAASuqI,EAAQC,EAAIt0J,EAAI,CAC/E,MAAO,CACL,UAAWy0C,EACX,oBAAqBihH,GAAY5rI,EAAQ,KAAK,EAC9C,mBAAoB4rI,GAAY5rI,EAAQ,OAAO,EAC/C,YAAa4rI,GAAY5rI,EAAQ,IAAI,EACrC,WAAY4rI,GAAYrB,EAAO,IAAI,EACnC,cAAeqB,GAAYrB,EAAO,OAAO,EACzC,OAAQqB,GAAYpB,EAAG,IAAI,EAC3B,UAAWoB,GAAYpB,EAAG,OAAO,EACjC,UAAWoB,GAAY11J,CAAE,CAC7B,CACA,EACI+1J,GAAgB,SAAuB94L,EAAMm3L,EAAQE,EAAIt0J,EAAI,CAC/D,OAAOs6C,IAAe,CAAE,EAAEr9E,EAAM,CAC9B,OAAQy4L,GAAYtB,EAAO,MAAM,EACjC,MAAOsB,GAAYtB,EAAO,KAAK,EAC/B,GAAIsB,GAAYpB,EAAG,IAAI,EACvB,UAAWoB,GAAYpB,EAAG,OAAO,EACjC,GAAIoB,GAAY11J,CAAE,CACtB,CAAG,CACH,EACIg2J,IAAiB,SAAwBC,EAAW5B,EAAQC,EAAIt0J,EAAI,CACtE,MAAO,CACL,UAAWi2J,EACX,WAAYP,GAAYrB,EAAO,IAAI,EACnC,cAAeqB,GAAYrB,EAAO,OAAO,EACzC,OAAQqB,GAAYpB,EAAG,IAAI,EAC3B,UAAWoB,GAAYpB,EAAG,OAAO,EACjC,UAAWoB,GAAY11J,CAAE,CAC7B,CACA,EACIk2J,IAAiB,SAAwBC,EAAW9B,EAAQC,EAAIt0J,EAAI,CACtE,MAAO,CACL,UAAWm2J,EACX,WAAYT,GAAYrB,EAAO,IAAI,EACnC,cAAeqB,GAAYrB,EAAO,OAAO,EACzC,OAAQqB,GAAYpB,EAAG,IAAI,EAC3B,UAAWoB,GAAYpB,EAAG,OAAO,EACjC,UAAWoB,GAAY11J,CAAE,CAC7B,CACA,EACIo2J,IAAkB,SAAyBC,EAAYhC,EAAQC,EAAIt0J,EAAI,CACzE,MAAO,CACL,WAAYq2J,EACZ,WAAYX,GAAYrB,EAAO,IAAI,EACnC,cAAeqB,GAAYrB,EAAO,OAAO,EACzC,OAAQqB,GAAYpB,EAAG,IAAI,EAC3B,UAAWoB,GAAYpB,EAAG,OAAO,EACjC,UAAWoB,GAAY11J,CAAE,CAC7B,CACA,EACIs2J,IAAkB,SAAyBC,EAAYnC,EAAQC,EAAQC,EAAIt0J,EAAI,CACjF,MAAO,CACL,WAAYu2J,EACZ,OAAQb,GAAYtB,EAAO,MAAM,EACjC,MAAOsB,GAAYtB,EAAO,KAAK,EAC/B,WAAYsB,GAAYrB,EAAO,IAAI,EACnC,cAAeqB,GAAYrB,EAAO,OAAO,EACzC,OAAQqB,GAAYpB,EAAG,IAAI,EAC3B,UAAWoB,GAAYpB,EAAG,OAAO,EACjC,UAAWoB,GAAY11J,CAAE,CAC7B,CACA,EAEA,SAASw2J,IAAa9B,EAAW,CAC/B,IAAI5nI,EAAO4nI,EAAYD,GAAeC,CAAS,EAAIE,GAC/CR,EAAStnI,EAAK,OACdhD,EAAUgD,EAAK,QACfunI,EAASvnI,EAAK,OACdwnI,EAAKxnI,EAAK,GACV9sB,EAAK8sB,EAAK,GAEV7vD,EAAOu4L,IAAgBpB,EAAO,IAAI,EAClC3/G,EAAYx3E,EAAK,UACjBw5L,EAAWx5L,EAAK,SAChBy5L,EAAWz5L,EAAK,SAChBg5L,EAAYh5L,EAAK,UACjBk5L,EAAYl5L,EAAK,UACjBo5L,EAAap5L,EAAK,WAClBs5L,EAAat5L,EAAK,WAEtB,GAAIw3E,EACF,OAAOqhH,IAAerhH,EAAW3qB,EAASuqI,EAAQC,EAAIt0J,CAAE,EAG1D,GAAIi2J,EACF,OAAOD,IAAeC,EAAW5B,EAAQC,EAAIt0J,CAAE,EAGjD,GAAIm2J,EACF,OAAOD,IAAeC,EAAW9B,EAAQC,EAAIt0J,CAAE,EAOjD,GAJIy2J,GAIAC,EACF,OAAOX,GAAc94L,EAAMm3L,EAAQE,EAAIt0J,CAAE,EAG3C,GAAIq2J,EACF,OAAOD,IAAgBC,EAAYhC,EAAQC,EAAIt0J,CAAE,EAGnD,GAAIu2J,EACF,OAAOD,IAAgBC,EAAYnC,EAAQC,EAAQC,EAAIt0J,CAAE,CAE7D,CAEA,IAAI22J,GAAe,SAAsB7pI,EAAM,CAC7C,IAAI7vD,EAAO6vD,EAAK,KAChB,OAAO7vD,IAASm4L,GAAY,MAC9B,EACIwB,GAAe,SAAsBr7H,EAAO,CAC9C,IAAIt+D,EAAOs+D,EAAM,KACjB,OAAOt+D,IAASm4L,GAAY,MAC9B,EACIyB,GAAwB,SAA+Bl4G,EAAO,CAChE,IAAI1hF,EAAO0hF,EAAM,KACjB,OAAO1hF,IAASm4L,GAAY,QAAUn4L,IAASm4L,GAAY,MAC7D,EACI0B,GAAgB,SAAuBl3G,EAAO,CAChD,IAAI3iF,EAAO2iF,EAAM,KACjB,OAAO3iF,IAASm4L,GAAY,OAC9B,EACI2B,GAAgB,SAAuB92G,EAAO,CAChD,IAAIhjF,EAAOgjF,EAAM,KACjB,OAAOhjF,IAASm4L,GAAY,OAC9B,EACI4B,GAAiB,SAAwBx2G,EAAO,CAClD,IAAIvjF,EAAOujF,EAAM,KACjB,OAAOvjF,IAASm4L,GAAY,QAC9B,EACI6B,GAAgB,SAAuBr2G,EAAO,CAChD,IAAI3jF,EAAO2jF,EAAM,KACjB,OAAO3jF,IAASm4L,GAAY,OAC9B,EACI8B,GAAiB,SAAwBC,EAAO,CAClD,IAAIl6L,EAAOk6L,EAAM,KACjB,OAAOl6L,IAASm4L,GAAY,QAC9B,EACIgC,GAAkB,SAAyBC,EAAO,CACpD,IAAI9lI,EAAS8lI,EAAM,OACnB,OAAO3B,GAAYnkI,CAAM,CAC3B,EACI+lI,GAAiB,SAAwBC,EAAQ,CACnD,IAAI7hF,EAAQ6hF,EAAO,MACnB,OAAO7B,GAAYhgF,CAAK,CAC1B,EACI8hF,GAAgB,SAAuBC,EAAQ,CACjD,IAAIx6L,EAAOw6L,EAAO,KAClB,OAAO/B,GAAYz4L,EAAM,SAAS,CACpC,EAEIy6L,GAAgB,SAAuBC,EAAQ,CACjD,IAAInlM,EAAOmlM,EAAO,KAClB,OAAOnlM,IAAS8iM,GAAQ,OAC1B,EACIsC,GAAgB,SAAuBC,EAAQ,CACjD,IAAIrlM,EAAOqlM,EAAO,KAClB,OAAOrlM,IAAS8iM,GAAQ,OAC1B,EACIwC,GAAc,SAAqBC,EAAQ,CAC7C,IAAIvlM,EAAOulM,EAAO,KAClB,OAAOvlM,IAAS8iM,GAAQ,MAC1B,EACI0C,GAAiB,SAAwBC,EAAQ,CACnD,IAAIzlM,EAAOylM,EAAO,KAClB,OAAOzlM,IAAS8iM,GAAQ,YAC1B,EACI4C,GAAY,SAAmBC,EAAQ,CACzC,IAAI3lM,EAAO2lM,EAAO,KAClB,OAAO3lM,IAAS8iM,GAAQ,GAC1B,EACI8C,GAAe,SAAsBC,EAAQ,CAC/C,IAAIjpL,EAAUipL,EAAO,QACrB,OAAO3C,GAAYtmL,CAAO,CAC5B,EACIkpL,GAAY,SAAmBC,EAAQ,CACzC,IAAI/lM,EAAO+lM,EAAO,KAClB,OAAO7C,GAAYljM,CAAI,CACzB,EAEIgmM,GAAe,SAAsBC,EAAQ,CAC/C,IAAIjmM,EAAOimM,EAAO,KAClB,OAAOjmM,IAAS6iM,GAAa,MAC/B,EACIqD,GAAgB,SAAuBC,EAAQ,CACjD,IAAInmM,EAAOmmM,EAAO,KAClB,OAAOnmM,IAAS6iM,GAAa,OAC/B,EACIuD,GAAiB,SAAwBC,EAAQ,CACnD,IAAIrmM,EAAOqmM,EAAO,KAClB,OAAOrmM,IAAS6iM,GAAa,QAC/B,EACIyD,GAAa,SAAoBC,EAAQ,CAC3C,IAAIvmM,EAAOumM,EAAO,KAClB,OAAOvmM,IAAS6iM,GAAa,IAC/B,EACI2D,GAAe,SAAsBC,EAAQ,CAC/C,IAAIzmM,EAAOymM,EAAO,KAClB,OAAOzmM,IAAS6iM,GAAa,MAC/B,EACI6D,GAAe,SAAsBC,EAAQ,CAC/C,IAAI3mM,EAAO2mM,EAAO,KAClB,OAAO3mM,IAAS6iM,GAAa,QAAU7iM,IAAS6iM,GAAa,YAC/D,EACI+D,GAAqB,SAA4BC,EAAQ,CAC3D,IAAI7mM,EAAO6mM,EAAO,KAClB,OAAO7mM,IAAS6iM,GAAa,YAC/B,EACIiE,GAAc,SAAqBC,EAAQ,CAC7C,IAAI/mM,EAAO+mM,EAAO,KAClB,OAAO/mM,IAAS6iM,GAAa,KAC/B,EACImE,GAAW,SAAkBC,EAAQ,CACvC,IAAIjnM,EAAOinM,EAAO,KAClB,OAAOjnM,IAAS6iM,GAAa,kBAAoB7iM,IAAS6iM,GAAa,EACzE,EACIqE,GAAa,SAAoBC,EAAQ,CAC3C,IAAInnM,EAAOmnM,EAAO,KAClB,OAAOnnM,IAAS6iM,GAAa,IAC/B,EACIuE,GAAuB,SAA8BC,EAAQ,CAC/D,IAAIrnM,EAAOqnM,EAAO,KAClB,OAAOrnM,IAAS6iM,GAAa,cAC/B,EACIyE,GAAwB,SAA+BC,EAAQ,CACjE,IAAI3qL,EAAU2qL,EAAO,QACrB,OAAOrE,GAAYtmL,CAAO,CAC5B,EACI4qL,GAAoB,SAA2BC,EAAQ,CACzD,IAAIvS,EAAQuS,EAAO,MACnB,OAAOvE,GAAYhO,CAAK,CAC1B,EACIwS,GAAiB,SAAwBC,EAAQ,CACnD,IAAI3nM,EAAO2nM,EAAO,KAClB,OAAOzE,GAAYljM,CAAI,CACzB,EAEI4nM,GAAgB,SAAuBC,EAAQ,CACjD,IAAI7nM,EAAO6nM,EAAO,KAClB,OAAO3E,GAAYljM,CAAI,CACzB,EACI8nM,GAAmB,SAA0BC,EAAQ,CACvD,IAAInrL,EAAUmrL,EAAO,QACrB,OAAO7E,GAAYtmL,CAAO,CAC5B,EACIorL,GAAiB,UAA0B,CAC7C,IAAI3E,EAAMF,KACN31J,EAAK61J,GAAOA,EAAI,WAAaA,EAAI,UAAU,cAC/C,OAAO,OAAO71J,GAAO,SAAW,WAAW,KAAKA,CAAE,EAAI,EACxD,EACIy6J,GAAqB,SAA4Bz6J,EAAI,CACvD,OAAO,OAAOA,GAAO,UAAYA,EAAG,QAAQ,MAAM,IAAM,EAC1D,EACI06J,GAAW,UAAoB,CACjC,IAAI7E,EAAMF,KACV,OAAOE,IAAQ,mBAAmB,KAAKA,EAAI,QAAQ,GAAKA,EAAI,WAAa,YAAcA,EAAI,eAAiB,IAAM,CAAC,OAAO,QAC5H,EACI8E,GAAY,UAAqB,CACnC,OAAO/E,GAAa,MAAM,CAC5B,EACIgF,GAAc,UAAuB,CACvC,OAAOhF,GAAa,QAAQ,CAC9B,EACIiF,GAAY,UAAqB,CACnC,OAAOjF,GAAa,MAAM,CAC5B,EACIkF,GAAe,SAAsBC,EAAQ,CAC/C,OAAOrF,GAAYqF,CAAM,CAC3B,EAEA,SAASC,GAAqBz+L,EAAS,CACrC,IAAIuwD,EAAOvwD,GAAoBq4L,GAC3BR,EAAStnI,EAAK,OACdhD,EAAUgD,EAAK,QACfwnI,EAAKxnI,EAAK,GACVunI,EAASvnI,EAAK,OACd9sB,EAAK8sB,EAAK,GAEd,MAAO,CACL,UAAWgqI,GAAc1C,CAAM,EAC/B,UAAW6C,GAAc7C,CAAM,EAC/B,WAAY4C,GAAe5C,CAAM,EACjC,WAAY8C,GAAe9C,CAAM,EACjC,eAAgBgF,GAAmBtvI,CAAO,GAAK6wI,GAAW,EAC1D,WAAY/B,GAAe9uI,CAAO,EAClC,SAAU+sI,GAAsBzC,CAAM,GAAKuG,GAAW,EACtD,aAAchE,GAAavC,CAAM,EACjC,SAAUwC,GAAaxC,CAAM,GAAKuG,GAAW,EAC7C,UAAW5D,GAAc3C,CAAM,EAC/B,UAAW2C,GAAc3C,CAAM,EAC/B,UAAWsD,GAAcpD,CAAE,EAC3B,WAAY0D,GAAe1D,CAAE,EAC7B,MAAO4D,GAAU5D,CAAE,GAAKqG,GAAW,EACnC,SAAUnC,GAAa1uI,CAAO,EAC9B,UAAW4uI,GAAc5uI,CAAO,EAChC,SAAUovI,GAAapvI,CAAO,EAC9B,QAASwvI,GAAYxvI,CAAO,EAC5B,KAAM0vI,GAAS1vI,CAAO,EACtB,UAAWsuI,GAAa9D,CAAE,EAC1B,OAAQgE,GAAUhE,CAAE,EACpB,mBAAoBwF,GAAsBhwI,CAAO,EACjD,eAAgBkwI,GAAkBlwI,CAAO,EACzC,YAAaowI,GAAepwI,CAAO,EACnC,aAAcstI,GAAgBhD,CAAM,EACpC,YAAakD,GAAelD,CAAM,EAClC,WAAYgG,GAAc/F,CAAM,EAChC,cAAeiG,GAAiBjG,CAAM,EACtC,MAAOyG,GAAa96J,CAAE,EACtB,OAAQ84J,GAAWhvI,CAAO,GAAK2wI,GAAmBz6J,CAAE,EACpD,SAAUg5J,GAAalvI,CAAO,EAC9B,WAAY0tI,GAAcpD,CAAM,EAChC,QAASsG,GAAU,EACnB,SAAUC,GAAW,EACrB,WAAYC,GAAa,EACzB,SAAUC,GAAW,EACrB,WAAYL,GAAgB,EAC5B,eAAgBC,GAAmBz6J,CAAE,EACrC,aAAc84J,GAAWhvI,CAAO,GAAK,CAAC2wI,GAAmBz6J,CAAE,EAC3D,UAAW43J,GAActD,CAAE,EAC3B,QAASwD,GAAYxD,CAAE,EACvB,OAAQoF,GAAW5vI,CAAO,EAC1B,iBAAkB8vI,GAAqB9vI,CAAO,CAClD,CACA,CAEA,IAAImsI,GAAYa,GAAc1C,EAAM,EAChC+B,GAAYc,GAAc7C,EAAM,EAChCiC,GAAaW,GAAe5C,EAAM,EAClCmC,IAAaW,GAAe9C,EAAM,EAClC6G,IAAiB7B,GAAmBtvI,EAAO,GAAK6wI,GAAS,EACzDO,IAAatC,GAAe9uI,EAAO,EACnC2sI,GAAWI,GAAsBzC,EAAM,GAAKuG,GAAS,EACrDQ,GAAexE,GAAavC,EAAM,EAClCsC,GAAWE,GAAaxC,EAAM,GAAKuG,GAAS,EAC5ClmH,GAAYsiH,GAAc3C,EAAM,EAChCgH,IAAYrE,GAAc3C,EAAM,EAChCiH,GAAY3D,GAAcpD,EAAE,EAC5BgH,GAAatD,GAAe1D,EAAE,EAC9BiH,GAAQrD,GAAU5D,EAAE,GAAKqG,GAAS,EAClCa,IAAWhD,GAAa1uI,EAAO,EAC/B2xI,IAAY/C,GAAc5uI,EAAO,EACjC4xI,IAAWxC,GAAapvI,EAAO,EAC/B6xI,IAAUrC,GAAYxvI,EAAO,EAC7BuvB,GAAOmgH,GAAS1vI,EAAO,EACvB8xI,IAAYxD,GAAa9D,EAAE,EAC3BuH,IAASvD,GAAUhE,EAAE,EACrBwH,IAAqBhC,GAAsBhwI,EAAO,EAClDiyI,IAAiB/B,GAAkBlwI,EAAO,EAC1CkyI,IAAc9B,GAAepwI,EAAO,EACpCmyI,IAAe7E,GAAgBhD,EAAM,EACrC8H,IAAc5E,GAAelD,EAAM,EACnC+H,IAAa/B,GAAc/F,EAAM,EACjC+H,IAAgB9B,GAAiBjG,EAAM,EACvCgI,IAAQvB,GAAa96J,EAAE,EACvBs8J,IAASxD,GAAWhvI,EAAO,GAAK2wI,GAAmBz6J,EAAE,EACrDu8J,IAAWvD,GAAalvI,EAAO,EAC/B0yI,IAAahF,GAAcpD,EAAM,EACjCqI,IAAU/B,GAAQ,EAClBgC,IAAW/B,GAAS,EACpBgC,IAAa/B,GAAW,EACxBgC,IAAW/B,GAAS,EACpBgC,IAAarC,GAAc,EAC3BsC,IAAiBrC,GAAmBz6J,EAAE,EACtC+8J,IAAejE,GAAWhvI,EAAO,GAAK,CAAC2wI,GAAmBz6J,EAAE,EAC5Dg9J,IAAYpF,GAActD,EAAE,EAC5B2I,IAAUnF,GAAYxD,EAAE,EACxB4I,IAASxD,GAAW5vI,EAAO,EAC3BqzI,IAAmBvD,GAAqB9vI,EAAO,EAC/CszI,IAA0B,SAAiC1I,EAAW,CACxE,GAAI,CAACA,GAAa,OAAOA,GAAc,SAAU,CAC/C,QAAQ,MAAM,yCAAyC,EACvD,MACD,CAED,IAAI2I,EAAwB5I,GAAeC,CAAS,EAChDN,EAASiJ,EAAsB,OAC/BvzI,EAAUuzI,EAAsB,QAChC/I,EAAK+I,EAAsB,GAC3BhJ,EAASgJ,EAAsB,OAC/Br9J,EAAKq9J,EAAsB,GAE/B,OAAOrC,GAAqB,CAC1B,OAAQ5G,EACR,QAAStqI,EACT,GAAIwqI,EACJ,OAAQD,EACR,GAAIr0J,CACR,CAAG,CACH,EAEIs9J,IAAc,SAAqBxwI,EAAM,CAC3C,IAAIywI,EAAqBzwI,EAAK,mBAC1BgI,EAAWhI,EAAK,SAChBxmC,EAAQ0+C,GAAyBlY,EAAM,CAAC,qBAAsB,UAAU,CAAC,EAE7E,OAAOuuI,GAAYkC,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAChK,EACI0oI,IAAc,SAAqBjiI,EAAO,CAC5C,IAAIgiI,EAAqBhiI,EAAM,mBAC3BzG,EAAWyG,EAAM,SACjBj1C,EAAQ0+C,GAAyBzJ,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAOkZ,GAAY8oH,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAChK,EACI2oI,IAAS,SAAgB9+G,EAAO,CAClC,IAAI4+G,EAAqB5+G,EAAM,mBAC3B7pB,EAAW6pB,EAAM,SACjBr4D,EAAQ0+C,GAAyB2Z,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAOtF,GAAOkkH,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAC3J,EACI4oI,IAAU,SAAiB99G,EAAO,CACpC,IAAI29G,EAAqB39G,EAAM,mBAC3B9qB,EAAW8qB,EAAM,SACjBt5D,EAAQ0+C,GAAyB4a,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAO27G,GAAQgC,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAC5J,EACI6oI,IAAa,SAAoB19G,EAAO,CAC1C,IAAIs9G,EAAqBt9G,EAAM,mBAC3BnrB,EAAWmrB,EAAM,SACjB35D,EAAQ0+C,GAAyBib,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAOw2G,GAAW8G,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAC/J,EACI8oI,IAAa,SAAoBp9G,EAAO,CAC1C,IAAI+8G,EAAqB/8G,EAAM,mBAC3B1rB,EAAW0rB,EAAM,SACjBl6D,EAAQ0+C,GAAyBwb,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAOk2G,GAAW6G,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAC/J,EACI+oI,IAAe,SAAsBj9G,EAAO,CAC9C,IAAI28G,EAAqB38G,EAAM,mBAC3B9rB,EAAW8rB,EAAM,SACjBt6D,EAAQ0+C,GAAyB4b,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAO06G,GAAaiC,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IACjK,EACIgpI,IAAiB,SAAwB3G,EAAO,CAC9C,IAAAoG,EAAqBpG,EAAM,mBAC3BriI,EAAWqiI,EAAM,SACDA,EAAM,cACdA,EAAM,MACpB,IAAM7wK,EAAQ0+C,GAAyBmyH,EAAO,CAAC,qBAAsB,WAAY,gBAAiB,OAAO,CAAC,EAExG,OAAOgE,GAAeoC,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IACnK,EACIipI,IAAc,SAAqB1G,EAAO,CAC5C,IAAIkG,EAAqBlG,EAAM,mBAC3BviI,EAAWuiI,EAAM,SACjB/wK,EAAQ0+C,GAAyBqyH,EAAO,CAAC,qBAAsB,UAAU,CAAC,EAE9E,OAAOpB,GAAYsH,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAChK,EACIkpI,IAAc,SAAqBzG,EAAQ,CAC7C,IAAIgG,EAAqBhG,EAAO,mBAC5BziI,EAAWyiI,EAAO,SAClBjxK,EAAQ0+C,GAAyBuyH,EAAQ,CAAC,qBAAsB,UAAU,CAAC,EAE/E,OAAOpB,GAAYoH,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAChK,EACImpI,IAAe,SAAsBxG,EAAQ,CAC/C,IAAI8F,EAAqB9F,EAAO,mBAC5B3iI,EAAW2iI,EAAO,SAClBnxK,EAAQ0+C,GAAyByyH,EAAQ,CAAC,qBAAsB,UAAU,CAAC,EAE/E,OAAOpB,GAAakH,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IACjK,EACIopI,IAAa,SAAoBvG,EAAQ,CACvC,IAAA4F,EAAqB5F,EAAO,mBAC5B7iI,EAAW6iI,EAAO,SACFA,EAAO,cACfA,EAAO,MACrB,IAAMhuI,EAAYguI,EAAO,UACnBrxK,EAAQ0+C,GAAyB2yH,EAAQ,CAAC,qBAAsB,WAAY,gBAAiB,QAAS,WAAW,CAAC,EAEtH,OAAOhuI,EAAY4zI,EAAqBtJ,GAAe,cAAcnmI,GAAM,SAAU,KAAMgH,CAAQ,EAAIm/H,GAAe,cAAc,MAAO3tK,EAAOwuC,CAAQ,EAAI,IAChK,EAEA,SAASqpI,IAAsB5mH,EAAkB,CAC/C,OAAoB,SAAU9pB,EAAkB,CAC9CiJ,IAAU4C,EAAQ7L,CAAgB,EAElC,SAAS6L,EAAOhzC,EAAO,CACrB,IAAI2oC,EAEJoH,WAAgB,KAAMiD,CAAM,EAE5BrK,EAAQuH,IAA2B,KAAM+jB,GAAgBjhB,CAAM,EAAE,KAAK,KAAMhzC,CAAK,CAAC,EAClF2oC,EAAM,qBAAuB,GAC7BA,EAAM,wBAA0BA,EAAM,wBAAwB,KAAKjB,GAAuBiB,CAAK,CAAC,EAChGA,EAAM,oBAAsBA,EAAM,oBAAoB,KAAKjB,GAAuBiB,CAAK,CAAC,EACxFA,EAAM,WAAaA,EAAM,WAAW,KAAKjB,GAAuBiB,CAAK,CAAC,EACtEA,EAAM,MAAQ,CACZ,YAAa,GACb,WAAY,EACpB,EACaA,CACR,CAED0pB,WAAarf,EAAQ,CAAC,CACpB,IAAK,0BACL,MAAO,UAAmC,CACnC,KAAK,uBACR,KAAK,qBAAuB,IAG9B,IAAIopD,EAAc,OAAO,WAAa,OAAO,YAAc,GAAK,EAChE,KAAK,SAAS,CACZ,WAAYA,IAAgB,EAC5B,YAAaA,IAAgB,EACvC,CAAS,CACF,CACP,EAAO,CACD,IAAK,sBACL,MAAO,UAA+B,CACpC,KAAK,wBAAuB,CAC7B,CACP,EAAO,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,KAAK,wBAAuB,CAC7B,CACP,EAAO,CACD,IAAK,oBACL,MAAO,UAA6B,EAC7B,OAAO,OAAW,IAAc,YAAcnqD,GAAQ,MAAM,KAAO,QAAak+H,KAC9E,KAAK,qBAIR,OAAO,oBAAoB,OAAQ,KAAK,WAAY,EAAK,GAHzD,KAAK,wBAAuB,EAC5B,OAAO,iBAAiB,OAAQ,KAAK,WAAY,EAAK,GAKxD,OAAO,iBAAiB,SAAU,KAAK,oBAAqB,EAAK,EAEpE,CACP,EAAO,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,OAAO,oBAAoB,SAAU,KAAK,oBAAqB,EAAK,CACrE,CACP,EAAO,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,OAAOxC,GAAe,cAAc18G,EAAkBhxB,GAAS,CAAE,EAAE,KAAK,MAAO,CAC7E,YAAa,KAAK,MAAM,YACxB,WAAY,KAAK,MAAM,UACxB,EAAC,CACH,CACF,EAAC,EAEK+S,CACX,EAAI26H,GAAe,SAAS,CAC5B,CAEA,SAASmK,KAAuB,CAC9B,IAAIC,EAAYvwI,GAAM,SAAS,UAAY,CACzC,IAAI40D,EAAc,OAAO,WAAa,OAAO,YAAc,GAAK,EAChE,MAAO,CACL,WAAYA,IAAgB,EAC5B,YAAaA,IAAgB,GAC7B,YAAaA,IAAgB,EAAI,WAAa,WACpD,CACA,CAAG,EACG47E,EAAazJ,IAAewJ,EAAW,CAAC,EACxC37L,EAAQ47L,EAAW,CAAC,EACpBrxB,EAAWqxB,EAAW,CAAC,EAEvBC,EAA0BzwI,GAAM,YAAY,UAAY,CAC1D,IAAI40D,EAAc,OAAO,WAAa,OAAO,YAAc,GAAK,EAC5D51G,EAAO,CACT,WAAY41G,IAAgB,EAC5B,YAAaA,IAAgB,GAC7B,YAAaA,IAAgB,EAAI,WAAa,WACpD,EACIhgH,EAAM,cAAgBoK,EAAK,aAAemgK,EAASngK,CAAI,CAC3D,EAAK,CAACpK,EAAM,WAAW,CAAC,EACtB,OAAAorD,GAAM,UAAU,UAAY,CAC1B,OAAK,OAAO,OAAW,IAAc,YAAcyK,GAAQ,MAAM,KAAO,QAAak+H,KACnF8H,IACA,OAAO,iBAAiB,OAAQA,EAAyB,EAAK,EAC9D,OAAO,iBAAiB,SAAUA,EAAyB,EAAK,GAG3D,UAAY,CACjB,OAAO,oBAAoB,SAAUA,EAAyB,EAAK,EACnE,OAAO,oBAAoB,OAAQA,EAAyB,EAAK,CACvE,CACA,EAAK,CAACA,CAAuB,CAAC,EACrB77L,CACT,CAEA,SAAS87L,GAAc9J,EAAW,CAChC,IAAI+J,EAAgB/J,GAAwB,OAAO,UAAU,UAC7D,OAAOD,GAAegK,CAAa,CACrC,CAEA,SAASC,IAAmBhK,EAAW,CACrC,IAAI+J,EAAgB/J,GAAwB,OAAO,UAAU,UACzDiK,EAAaH,GAAcC,CAAa,EACxChhL,EAAYu9K,GAAqB2D,CAAU,EAC/C,MAAO,CAAClhL,EAAWkhL,CAAU,CAC/B,CAEmBza,GAAA,YAAGoZ,IACFpZ,GAAA,aAAGmR,GACJnR,GAAA,YAAGsZ,IACHtZ,GAAA,YAAG8Z,IACJ9Z,GAAA,WAAGga,IACPha,GAAA,OAAGuZ,IACFvZ,GAAA,QAAGwZ,IACIxZ,GAAA,eAAG4Z,IACP5Z,GAAA,WAAGyZ,IACNzZ,GAAA,QAAGoR,GACCpR,GAAA,YAAG6Z,IACJ7Z,GAAA,WAAG0Z,IACD1Z,GAAA,aAAG+Z,IACH/Z,GAAA,aAAG2Z,IACJ3Z,GAAA,YAAG8X,IACA9X,GAAA,eAAG6X,IACL7X,GAAA,aAAGsS,IACLtS,GAAA,WAAGsY,IACHtY,GAAA,WAAGiY,IACAjY,GAAA,cAAGkY,IACElY,GAAA,mBAAG4X,IACE5X,GAAA,wBAAGkZ,IACrBlZ,GAAA,MAAGmY,IACCnY,GAAA,UAAGmX,GACHnX,GAAA,UAAGzvG,GACJyvG,GAAA,SAAGsX,IACDtX,GAAA,WAAGgX,IACJhX,GAAA,UAAGiS,GACHjS,GAAA,UAAGkX,IACNlX,GAAA,OAAGoY,IACKpY,GAAA,eAAG4Y,IACP5Y,GAAA,WAAG2Y,IACH3Y,GAAA,WAAGqS,IACJrS,GAAA,UAAGuX,IACRvX,GAAA,KAAG7qG,GACF6qG,GAAA,MAAGqX,GACDrX,GAAA,QAAGuY,IACFvY,GAAA,SAAGwY,IACDxY,GAAA,WAAGyY,IACLzY,GAAA,SAAG0Y,IACC1Y,GAAA,aAAG6Y,IACT7Y,GAAA,OAAGgZ,IACFhZ,GAAA,QAAG+Y,IAClB,IAAgB2B,IAAA1a,GAAA,SAAGuS,GACCvS,GAAA,aAAGiX,GACDjX,GAAA,eAAG+W,IACV/W,GAAA,QAAGyX,IACFzX,GAAA,SAAGwX,IACKxX,GAAA,iBAAGiZ,IACVjZ,GAAA,UAAG+R,GACJ/R,GAAA,SAAGwS,GACDxS,GAAA,WAAGmS,GACHnS,GAAA,WAAGoX,GACJpX,GAAA,UAAG8Y,IACJ9Y,GAAA,SAAGqY,IACArY,GAAA,YAAGgY,IACFhY,GAAA,aAAG+X,IACT/X,GAAA,OAAG2X,IACA3X,GAAA,UAAG0X,IACE1X,GAAA,eAAGuQ,GACLvQ,GAAA,aAAGuR,IACFvR,GAAA,cAAGsa,GACEta,GAAA,mBAAGwa,IACDxa,GAAA,qBAAGka,IAC/Bla,GAAA,sBAAgCia,ICzjChCt8E,GAAO,GAAG,WAAW,eAAe,EAE7B,SAAShS,IAAWtG,EAAM,CACzBsG,QAAa4mF,IAAW,cAAgB,gBACxC70E,EAAaC,GAAOtY,CAAI,EAC9B,OAAQqY,EAAW,UAAYA,EAAW,OAAO/R,CAAU,EAAI,EACjE,CAEO,SAASC,IAAW9gF,EAAM,CACzB,MAAA6vK,EAAah9E,GAAO7yF,CAAI,EAC9B,OAAO6vK,EAAW,UAAYA,EAAW,OAAO,OAAO,EAAI,EAC7D,CCRA,MAAMC,GAAgB,CAAC,CAAE,WAAA/X,EAAY,KAAA/3J,EAAM,QAAA2+E,EAAS,UAAAjc,EAAW,QAAA3vF,KACzDglL,IAAe,SAAW/3J,EACrB8gF,IAAW9gF,CAAI,EAEf,MAIX+vK,IAAe,CAAC,CAAE,SAAAjZ,EAAU,eAAAC,EAAgB,KAAA77K,EAAM,cAAA80L,EAAe,mBAAAC,EAC/C,WAAAC,EAAY,aAAAhjB,EAAc,gBAAA2J,CAAgB,IAAM,CAChE,KAAM,CAAE,WAAAhB,CAAA,EAAe7tG,EAAA,WAAWqtG,EAAe,EAC3C,CAAE,MAAA59K,EAAO,IAAAwlB,CAAQ,EAAA/hB,EAEsB2rF,EAAA,SAAS3rF,EAAK,UAAU,EACrE,MAAMi1L,EAAWpnH,GACf,CACE7tE,EAAK,MAAQ,sBAAwB,mBACrC,cAAcA,EAAK,UAAU,EAC/B,GAGF,UACG,KAAG,WAASA,EAAK,GAAI,UAAWi1L,EAC9B,UAAAtZ,GACEnuG,EAAA,MAAG,UAAU,KAAK,aAAYmtG,EAAa,QAAU,QACnD,SAAaA,EAAA36K,EAAK,SAAWA,EAAK,WACrC,EAEFwtE,EAAC,MAAG,aAAW,OAAO,UAAU,cAC7B,SAAAm4B,IAAW3lG,EAAK,SAAS,CAC5B,KACC,KAAG,cAAW,aACZ,SAAA40L,GAAcr4L,CAAK,EACtB,IACC,KAAG,cAAW,WACZ,SAAAq4L,GAAc7yK,CAAG,EACpB,EACAyrD,EAAC,MAAG,UAAU,cACX,WAAK,WAAa,qBAAuB,qBAAuB,OACnE,GACAA,EAAC,MAAG,aAAW,QACZ,WAAK,YAAc,KAAOxtE,EAAK,QAAU,WAC5C,GACC26K,GACEntG,EAAA,MAAG,aAAW,GAAG,UAAU,iBAC1B,SACIif,GAAAlf,GAAA,WAAKvtE,EAAA,YAAc,MAAQ47K,GAC5BpuG,EAAA,OAAI,UAAU,cAAc,MAAO,CAAE,QAAS,aAC7C,WAAAA,EAAC,SACC,KAAK,WACL,QAASsnH,EAAc,SAAS90L,EAAK,EAAE,EACvC,SAAU,IAAM+0L,EAAmB/0L,EAAK,EAAE,IAE9C,EAEE67K,GAAkB77K,EAAK,YAAc,QACtCwtE,EAAA,OAAI,UAAU,cAAc,MAAO,CAAE,QAAS,aAC7C,WAAAA,EAAC,SACC,KAAK,WACL,QAASsnH,EAAc,SAAS90L,EAAK,EAAE,EACvC,SAAU,IAAM,CACd+0L,EAAmB/0L,EAAK,EAAE,CAC5B,IAEJ,EAEEA,EAAK,YAAc,MAAQ,CAAC47K,GAAY,CAACC,GAC3CpvF,GAAC,MAAI,WAAU,sCACb,UAAAjf,EAACroB,IAAO,QAAS,IAAM6vI,EAAWh1L,EAAK,EAAE,EAAG,SAAI,SAChDwtE,EAACroB,IAAO,QAAS,IAAM6sH,EAAahyK,EAAK,EAAE,EAAG,SAAM,YACtD,GAEF,CACF,EAEJ,GAEJ,EChFek1L,IAAA,CAAC,CAAE,UAAAC,EAAW,eAAAC,EAAgB,aAAAC,EAAc,QAAA3xH,KAAc,CACvE,KAAM,CAAC4xH,EAASC,CAAU,EAAI5pG,WAAS,EAAK,EAC5C/J,EAAA,UAAU,IAAM2zG,EAAW,EAAK,EAAG,CAACJ,CAAS,CAAC,EAE9C,MAAM/8C,EAAe,IAAM,CACzBm9C,EAAW,EAAI,EAGZlyH,GAAA,KAAK,sCAAuC,CAAE,SAAUK,EAAS,EACjE,KAAK,IAAM,CAAE2xH,EAAa,EAAK,EAAG,GAGvC,OAAIF,IAAc,GAAa,KAG7B1oG,GAAC,MAAI,WAAU,cACb,UAACjf,EAAA,OAAI,UAAU,eACb,SAACA,EAAA,SAAM,KAAK,WAAW,QAAA8nH,EAAkB,SAAUl9C,CAAA,CAAa,CAClE,GACA3rD,GAAC,MAAI,WAAU,kBAAkB,+OAGY2oG,EAAe,cAC5D,CACF,GAEJ,EC1BeI,GAAA,CAAC,CAAE,KAAAh8K,EAAM,QAAAslJ,CACtB,IAAAryE,GAACp4B,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,EAED,EACCmZ,EAAAnZ,GAAM,KAAN,CACC,WAAC,MAAI,WAAU,MACb,SAAAmZ,EAAC,KAAG,WAAU,cAAc,2DAE5B,CACF,GACF,EACCA,EAAAnZ,GAAM,OAAN,CACC,SAACmZ,EAAAroB,GAAA,CAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,kBAAM,CAC/C,IACF,ECdF22B,IAAe,CAAC,CAAE,SAAA7Z,EAAU,YAAA8Z,EAAa,iBAAAzQ,EAAkB,mBAAAI,EAAoB,cAAAyP,KAAoB,CACjG,KAAM,CAACre,EAAWkf,CAAY,EAAIhqG,WAAS,EAAK,EAKhD,OAEKc,GAAAlf,GAAA,YAACquG,GAAYpuG,EAACroB,GAAO,OAAO,CAAE,WAAY,EAAG,EAAG,QAAS,IAAMuwI,EAAY,EAAI,EAAG,SAAoB,yBAErG9Z,GAEEnvF,GAAAlf,GAAA,WAAAC,EAACgoH,GAAe,MAAM/e,EAAW,QAASkf,EAAa,EACvDlpG,GAACxmC,IAAY,MAAO,CAAE,WAAY,IAAM,UAAU,wBAChD,UAAAunB,EAACroB,GAAO,SAAQ,UAAU,QAXjB,IAAM,CAAE2vI,EAAc,OAAS,EAAI7P,EAAiB,EAAI,EAAI0Q,EAAa,EAAI,GAWvC,SAAa,oBAC3DxwI,GAAO,SAAQ,SAAS,QAXd,IAAM,CAAE2vI,EAAc,OAAS,EAAIzP,EAAmB,EAAI,EAAIsQ,EAAa,EAAI,GAW1C,SAAe,sBAC9DxwI,GAAO,SAAS,IAAMuwI,EAAY,EAAK,EAAG,SAAM,YACnD,GACF,CAEJ,GAEJ,ECtBAE,IAAe,CAAC,CAAE,SAAAha,EAAU,YAAA8Z,EAAa,eAAA7Z,EAAgB,kBAAAuI,EAAmB,iBAAAa,EAAkB,cAAA6P,EAC5E,iBAAAe,EAAkB,0BAAA1Q,CAA0B,IAAM,CAClE,KAAM,CAAC1O,EAAWkf,CAAY,EAAIhqG,WAAS,EAAK,EAIhD,OAEKc,GAAAlf,GAAA,YAACsuG,GAAkBruG,EAACroB,GAAO,OAAO,CAAE,WAAY,EAAG,EAAG,QAAS,IAAMi/H,EAAkB,EAAI,EAAG,SAAkB,uBAE/GvI,GAEEpvF,GAAAlf,GAAA,WAAAC,EAACgoH,GAAe,MAAM/e,EAAW,QAASkf,EAAa,EACvDlpG,GAACxmC,IAAY,MAAO,CAAE,WAAY,IAAM,UAAU,wBAChD,UAAAunB,EAACroB,GAAO,SAAQ,UAAU,QAVjB,IAAM,CAAEggI,EAA0B,EAAI,GAUA,SAAkB,uBACjE33G,EAACroB,GAAO,SAAS,IAAM,CACrBi/H,EAAkB,EAAK,EACvByR,EAAiB,CAAE,IAClB,SAAM,YACX,GACF,CAEJ,GAEJ,ECrBAC,IAAgB,CAAC,CAAE,WAAAC,EAAY,QAAAryH,EAAS,SAAAk4G,EAAU,YAAA8Z,EAAa,eAAA7Z,EAAgB,kBAAAuI,EAC5D,cAAA0Q,EAAe,iBAAAe,EAAkB,gBAAAG,EAAiB,yBAAAC,EAClD,kBAAAC,EAAmB,aAAAC,EAAc,mBAAAC,EAAoB,OAAA7lL,EAAQ,iBAAA8lL,CAAiB,IAC/F5pG,GAAC,MAAI,WAAW7mE,GAAW,sCAAuC,CAAE,aAAc,CAACywK,CAAkB,GAClG,UACAA,GAAA7oH,EAAC+hG,GAAA,CACC,OAAAh/J,EACA,KAAM,CAAE,IAAK,aAAc,EAC3B,cAAe,CAAC,KAAK,EACrB,QAAQ,YACR,WAAW,oBACb,KAGA,MACE,WACGwlL,GAAAvoH,EAAC69F,IAAK,UAAU,gBAAgB,GAAI,kCAAkC3nG,CAAO,GAAI,SAEjF,iBAEAyyH,GAAgB,CAACta,GACjBruG,EAAC8oH,IAAA,CACC,SAAA1a,EACA,YAAA8Z,EACA,cAAAZ,EACA,iBAAkBkB,EAClB,mBAAoBE,CAAA,CACtB,EAEAE,GAAsB,CAACxa,GACzBpuG,EAACooH,IAAA,CACC,SAAAha,EACA,YAAA8Z,EACA,eAAA7Z,EACA,kBAAAuI,EACA,0BAA2B6R,EAC3B,cAAAnB,EACA,iBAAAe,EACA,iBAAkBG,EAClB,mBAAoBE,CAAA,CACtB,GACH,GACH,ECtCFtf,GAAe,CAAC,CAAE,KAAAr/J,EAAM,MAAA6/F,EAAO,UAAAgpB,EAAW,QAAA18D,EAAS,iBAAA6yH,EACjC,UAAApB,EAAW,eAAAC,EAAgB,aAAAC,EAC3B,gBAAAmB,EAAiB,OAAAjmL,EAAQ,iBAAA8lL,CAAiB,IAAM,CAChE,KAAM,CAAE,WAAA1b,CAAA,EAAe7tG,EAAA,WAAWqtG,EAAe,EAE3C,CAACqI,EAAQiU,CAAS,EAAI9qG,WAAS,IAAI,EACnC,CAACiwF,EAAU8Z,CAAW,EAAI/pG,WAAS,EAAK,EACxC,CAACkwF,EAAgBuI,CAAiB,EAAIz4F,WAAS,EAAK,EACpD,CAACi5F,EAAUC,CAAW,EAAIl5F,WAAS,EAAK,EACxC,CAACm5F,EAAYC,CAAa,EAAIp5F,WAAS,EAAK,EAC5C,CAACq5F,EAAeC,CAAgB,EAAIt5F,WAAS,EAAK,EAClD,CAACu5F,EAAwBC,CAAyB,EAAIx5F,WAAS,EAAK,EACpE,CAACy5F,EAAiBC,CAAkB,EAAI15F,WAAS,EAAK,EACtD,CAAC25F,EAAeC,CAAgB,EAAI55F,WAAS,EAAK,EAClD,CAAC65F,EAAsB/C,EAAuB,EAAI92F,WAAS,IAAI,EAC/D,CAAC+qG,GAAoBC,EAAqB,EAAIhrG,WAAS,EAAK,EAC5D,CAACmpG,GAAee,EAAgB,EAAIlqG,EAAA,SAAS,CAAE,GAC/C,CAACirG,GAA2BC,EAA4B,EAAIlrG,EAAA,SAAS,CAAE,GAE7E,IAAIoqG,GAAaQ,GAAoB,GACjC5a,GAAkB,EAAE,CAAE,CAAC,GAAI,IAAK,CAAC,EAAE,SAASj4G,CAAO,GAAM,CAACi3G,GAExD,MAAAqa,GAAcxS,IAAW,EACxB5G,GAAaC,IAAmBiZ,GAAc,OAAS,EAC1D7P,EAAiB,EAAI,EAErB6R,GAAYtU,GAAQ,IAAM,CAExBiU,EAAUjU,EAAM,EAChBqC,EAAY,EAAI,EACjB,CACH,EAGIoR,EAA4BzT,IAAW,CACzC2C,EAA0B,EAAI,GAG5BnT,GAAgBwQ,IAAW,EAC1B5G,GAAYC,IAAoBiZ,GAAc,OAAS,EACtD0B,EACF5yH,GAAI,WAAWkxH,EAAa,EAAE,KAAK10D,CAAS,EAE5CilD,EAAmB,EAAI,EAGzByR,GAAYtU,GAAQ,IAAM,CAEpBgU,EACF5yH,GAAI,UAAU4+G,EAAM,EAAE,KAAKpiD,CAAS,GAEpCq2D,EAAUjU,EAAM,EAChBuC,EAAc,EAAI,EACpB,CACD,CACH,EAGI+R,GAAc,CAACtU,GAAQpvL,KAAa,CACxCiwE,GAAM,IAAI,sBAAsBm/G,EAAM,OAAO,EAAE,KAAK,IAAM,CAC/CpvL,IACV,GAAE,MAAM,IAAMgtI,GAAW,GAGtB41D,GAAkB,IAAMhB,GAAW,IAAI,EACvCkB,GAAoB,IAAMlkB,GAAa,IAAI,EAE3C+iB,GAAsBvS,IAAW,CACjCsS,GAAc,SAAStS,EAAM,GAC/BqT,GAAiBf,GAAc,OAAY/iM,SAAMywL,EAAM,CAAC,EACxDqU,GAA6BD,GAA0B,OAAY7kM,SAAMywL,EAAM,CAAC,IAEhFqT,GAAiBf,GAAc,OAAO,CAACtS,EAAM,CAAC,CAAC,EAC/CqU,GAA6BD,GAA0B,OAAO,CAACpU,EAAM,CAAC,CAAC,EACzE,EAGI1G,GAAmB3/K,IAAM,CACzB,IAAA46L,GAAoB56L,GAAE,OAAO,QAAWob,EAAK,IAAYvX,OAAK,EAAE,EAAI,GACxE61L,GAAiBkB,EAAgB,EACjC,IAAIC,GAAgC76L,GAAE,OAAO,QAAWob,EAAK,OAAevX,OAAK,YAAc,IAAI,EAAE,IAAIA,IAAQA,GAAK,EAAE,EAAI,GAC5H62L,GAA6BG,EAA4B,GAG3Dp1G,YAAU,IAAM,CACdi0G,GAAiB,CAAE,GACnBgB,GAA6B,CAAE,GAC/BnB,EAAY,EAAK,GAChB,CAACn+K,CAAI,CAAC,EAEH,MAAA4+K,IAAgB5+K,GAAQ,IAAI,WAAYxlB,GAAE,YAAc,IAAI,EAAE,OAAS,EACvEqkM,IAAsB7+K,GAAQ,IAAI,WAAYxlB,GAAE,aAAe,MAAM,EAAE,OAAS,EAEtF,OAEI06F,GAAAlf,GAAA,WAAAC,EAACi3G,IAAA,CACC,OAAAjC,EACA,gBAAiBsS,GACjB,4BAA6B8B,GAC7B,UAAAx2D,EACA,SAAU,IAAM,CAAOo2D,GAAiBjR,EAAiB,EAAI,CAAE,EAC/D,SAAAX,EACA,YAAAC,EACA,uBAAAK,EACA,0BAAAC,EACA,WAAAL,EACA,cAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,gBAAAG,EACA,mBAAAC,EACA,cAAAC,EACA,qBAAAE,EACA,wBAAA/C,GACA,iBAAA8C,EACA,mBAAAmR,GACA,sBAAAC,GACA,KAAMp/K,GAAQ,CAAC,EACf,eAAAskK,EACA,kBAAAuI,CAAA,CACF,IAEC,MAAI,WAAU,wBACb,SAAC33F,GAAA,OAAI,UAAU,YACZ,UACCkuF,GAAAntG,EAACsoH,IAAA,CACC,iBAAAO,EACA,WAAAN,GACA,QAAAryH,EACA,SAAAk4G,EACA,YAAA8Z,EACA,eAAA7Z,EACA,kBAAAuI,EACA,cAAA0Q,GACA,iBAAAe,GACA,gBAAAG,GACA,kBAAAE,GACA,aAAAC,GACA,mBAAAC,GACA,yBAAAH,EACA,OAAA1lL,CAAA,CACF,EAEFi9D,EAAC0nH,IAAA,CACC,QAAAxxH,EACA,UAAAyxH,EACA,eAAAC,EACA,aAAAC,CAAA,CACF,GACF,CACF,GAEC5oG,GAAA,SAAM,UAAU,8BAA8B,GAAG,WAChD,UAAAjf,EAACtV,IAAA,CACC,gBAAAyjH,GACA,SAAAC,EACA,eAAAC,EACA,gBAAAC,EAAA,CACF,IAEC,QACC,WAAAvkK,GAAQ,IAAI,IACZ0/K,IAAAzpH,EAACqnH,IAAA,CACC,gBAAAlZ,GAEA,SAAAC,EACA,eAAAC,EACA,KAAMob,GACN,cAAAnC,GACA,mBAAAC,GACA,WAAAC,GACA,aAAAhjB,EAAA,EAPKilB,GAAI,EASZ,GACD,GACE7/E,GAAS,IAAI,SACd5pC,EAAA,SACD,YAAC,KACC,WAAAA,EAAC,KAAG,WAAU,KAAK,aAAW,GAAG,QAASmuG,GAAkB,EAAI,EAC9D,SAAAnuG,EAAC,SAAO,iBAAK,GACf,IACC,KAAE,MACF,KAAE,IACHA,EAAC,KAAG,WAAU,aAAa,GAC3BA,EAAC,MAAG,aAAW,QACb,WAAC,SAAQ,UAAA4pC,EAAM,QAAQ,CACzB,GACCujE,GAAcntG,EAAC,KAAG,WAAU,gBAAgB,IAC/C,CACA,IAEF,CACF,GAEJ,ECvMM+nG,MAAoC1sL,GAAA,CACxCA,EAAM,eAAe,EAClBsiB,GACL,EAEM+pK,IAAmB,CAAC,CAAE,SAAAtqH,KAC1B4iB,EAAC,OAAI,MAAO,CAAE,MAAO,OAAQ,UAAW,UACtC,SAAAA,EAAC,MAAG,UAAU,aAAc,SAAA5iB,EAAS,CACvC,GAGI4qH,IAAO,CAAC,CAAE,MAAAxsL,EAAO,SAAAs4K,EAAU,WAAAnqF,EAAY,QAAAxzB,CAAQ,IAClD6pB,EAAA,MAAG,UAAW8zF,EAAW,SAAWnqF,EAAa,WAAa,KAC7D,SAAA3J,EAAC,IAAE,MAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAC5C,SAAA36D,CACH,EACF,GAGIysL,IAAW,CAAC,CAAE,WAAAt+F,EAAY,QAAAxzB,KAC9B6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,cAElD,EACF,GAGI+xH,IAAgB,CAAC,CAAE,WAAAv+F,EAAY,QAAAxzB,KACnC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIgyH,IAAmB,CAAC,CAAE,WAAAx+F,EAAY,QAAAxzB,KACtC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIiyH,IAAe,CAAC,CAAE,WAAAz+F,EAAY,QAAAxzB,KAClC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIkyH,IAAe,CAAC,CAAE,WAAA1+F,EAAY,QAAAxzB,KAClC6pB,EAAC,MAAG,UAAW2J,EAAa,WAAa,KACvC,SAAA3J,EAAC,KAAE,KAAK,IAAI,QAAS+nG,GAAmB5xH,CAAO,EAAG,YAElD,EACF,GAGIixH,IAAsB,CAC1B,CAACJ,GAAW,IAAI,EAAGgB,IACnB,CAAChB,GAAW,QAAQ,EAAGiB,IACvB,CAACjB,GAAW,eAAe,EAAGkB,IAC9B,CAAClB,GAAW,kBAAkB,EAAGmB,IACjC,CAACnB,GAAW,cAAc,EAAGoB,IAC7B,CAACpB,GAAW,cAAc,EAAGqB,GAC/B,EAEMC,IAAad,GAAyB,CAC1C,oBAAAJ,IACA,iBAAAM,GACF,CAAC,ECrED,SAASa,IAAM,CAAE,SAAA3rL,EAAU,QAAA44K,GAAW,CACpC,KAAM,CAAC4Y,EAAU8Z,CAAW,EAAI/pG,WAAS,EAAK,EACxC,CAACkwF,EAAgBuI,CAAiB,EAAIz4F,WAAS,EAAK,EACpD,CAACs4F,EAAYC,CAAa,EAAIv4F,WAAS,EAAK,EAC5C,CAACyrB,EAAO8/E,CAAQ,EAAIvrG,EAAA,SAAS,CAAE,GAC/B,CAACwpG,EAAWE,CAAY,EAAI1pG,WAAS,EAAK,EAC1C,CAACypG,EAAgB+B,CAAiB,EAAIxrG,EAAA,SAAS,CAAE,GACjD,CAACyqF,EAAYC,CAAa,EAAI1qF,WAAS,IAAI,EAC3C,CAAC2uF,EAAMC,CAAO,EAAI5uF,WAAS,EAAE,EAC7B,CAACjoB,EAAS+2G,CAAU,EAAI9uF,WAAS,EAAE,EACnC,CAACksB,EAAY4d,CAAa,EAAI9pC,WAAS,sBAAsB,EAC7D,CAACyrG,EAAKC,CAAM,EAAI1rG,WAAS,CAAC,EAC1B,CAACs0C,EAAMq2C,CAAO,EAAI3qF,WAAS,CAAC,EAC5B,CAACosB,EAAWkc,CAAY,EAAItoC,WAAS,IAAI,IAAM,EAC/C,CAACqsB,EAASmc,CAAU,EAAIxoC,WAAS,IAAI,IAAM,EAC3C,CAAC2rG,EAAaC,EAAc,EAAI5rG,WAAS,EAAK,EAC9C,CAAE,SAAAyvF,GAAU,WAAAT,EAAW,EAAI7tG,aAAWqtG,EAAe,EAErD5pK,GAAS,CACb,QAAAmzD,EACA,WAAAm0C,EACA,UAAAE,EACA,QAAAC,EACA,KAAAioB,EACA,SAAAm7C,GACA,KAAAd,CAAA,EAGF14F,YAAU,IAAM,CACPy1G,EAAA,KAAK,QAAQ,EACpB/gB,EAAQ,CAAC,GACR,CAACgE,EAAM52G,EAASm0C,EAAYE,EAAWC,EAASm9E,CAAS,CAAC,EAE7DvzG,YAAU,IAAM,CACd,GAAI01G,EAAa,CACf,MAAMnrK,GAAS,CACb,KAAAmuJ,EACA,SAAU52G,EACV,YAAam0C,EACb,WAAY,OAAOE,CAAS,EAAE,OAAO,IAAI,EACzC,SAAU,OAAOC,CAAO,EAAE,OAAO,IAAI,EACrC,KAAAioB,EACA,UAAW06C,GAAaS,GAAW,MAGrC/3G,GACG,IAAI,0BAA2B,CAAE,OAAAl3C,GAAgB,EACjD,KAAiBphC,IAAA,CACV,MAAE,KAAAwsB,EAAS,EAAAxsB,GAEjBm5L,EAAc3sK,GAAK,UAAU,EAC7B2/K,EAAS3/K,GAAK,KAAK,EACnB8+J,EAAc9+J,GAAK,UAAU,EAC7B89K,EAAa99K,GAAK,SAAS,EAC3B4/K,EAAkB5/K,GAAK,cAAc,EACtC,CACL,CACC,GAAC6/K,EAAKn3D,EAAMq3D,CAAW,CAAC,EAE3B,MAAME,GAAY,IAAM,CAASH,EAAA,KAAK,QAAQ,GACxC3gB,GAAoBz2C,IAAS,CAAEq2C,EAAQr2C,EAAI,GAO/C,OAAAxzC,GAAC,MAAI,WAAU,MACb,UAACA,GAAA,OAAI,UAAU,WACb,UAACjf,EAAA,MAAG,MAAO,CAAE,UAAW,EAAG,WAAY,GAAK,SAAU,eACtDA,EAAC,MAAI,WAAU,iBACb,SAAAA,EAACiqH,IAAA,CACC,KAAAnd,EACA,QAAAC,EACA,QAAA72G,EACA,WAdmBA,IAAY,CAC/Bs/F,EAAA,QAAQ,8BAA8Bt/F,EAAO,EAAE,EACvD+2G,EAAW/2G,EAAO,GAaV,WAAAm0C,EACA,cAAA4d,EACA,UAAA1d,EACA,aAAAkc,EACA,QAAAjc,EACA,WAAAmc,EACA,MAAOmjE,EACP,SAAUC,GACV,SAAAntM,CAAA,GAEJ,GACF,EAECojF,EAAA,OAAI,UAAU,WACZ,YAECif,GAAAlf,GAAA,WAAAC,EAACopG,GAAA,CACC,KAAMqN,EACN,MAAA7sE,EACA,UAAA+9E,EACA,eAAAC,EACA,aAAAC,EACA,UAAWmC,GACX,iBAAkB,GAClB,QAAA9zH,EACA,SAAAk4G,EACA,YAAA8Z,EACA,eAAA7Z,EACA,kBAAAuI,EACA,OAAA7zK,GACA,iBAAkB,GACpB,EAEC6lK,GAAcA,EAAW,MAAQ,GAClC5oG,EAACsoG,IAAA,CACC,WAAYM,EAAW,MACvB,YAAaA,EAAW,KACxB,SAAUM,EAAA,CACZ,GAEF,CAEF,EACF,GAEJ,CAEA,MAAeM,IAAAvM,GAAWsL,GAAK,EChIzB2hB,IAAO,CACX,CAAE,KAAM,MAAO,GAAI,CAAE,EACrB,CAAE,KAAM,MAAO,GAAI,CAAE,EACrB,CAAE,KAAM,MAAO,GAAI,CAAE,EACrB,CAAE,KAAM,MAAO,GAAI,CAAE,EACrB,CAAE,KAAM,MAAO,GAAI,CAAE,EACrB,CAAE,KAAM,MAAO,GAAI,CAAE,EACrB,CAAE,KAAM,MAAO,GAAI,CAAE,CACvB,EAEeC,IAACv7K,GAAU,CACxB,KAAM,CAAE,MAAAnmB,EAAO,UAAA2hM,EAAW,aAAAC,CAAA,EAAiBz7K,EACrC,CAACpzB,EAAO+8F,CAAQ,EAAI4F,WAAS,IAAI,IAAM,EACvC,CAACmsG,EAAcC,CAAe,EAAIpsG,WAAS,aAAa,EACxD,CAAC8wC,EAAcu7D,CAAe,EAAIrsG,WAAS,CAAC,OAAO,EAAE,IAAK,EAAC,EAC3DssG,EAAsB,IAAI,KAAK,SAAS,IAAI,EAAG,OAAO,CAAC,EAE7Dr2G,EAAA,UAAU,IAAM,CACN,MAAAs2G,EAAU,OAAON,CAAS,EAAE,IAAU,MAAI,EAAI,OAAOA,CAAS,EAAE,IAAI,EAC1DI,EAAA,CAACE,CAAO,CAAC,CAC3B,EACA,CAACN,CAAS,GAGN,MAAAO,EAAqBC,GAAU,CAC/B,IAAAC,EAEA57D,EAAa,SAAS27D,CAAK,EAC7BC,EAAkB57D,EAAa,OAAY1qI,OAAMqmM,CAAK,EAEtDC,EAAkB57D,EAAa,OAAO,CAAC27D,CAAK,CAAC,EAG/CJ,EAAgBK,CAAe,GAGjC,UACG,MACC,WAAC5rG,GAAA,OAAI,UAAU,oCACb,UAACjf,EAAA,QAAK,UAAU,sBAAsB,SAAkB,uBACxDA,EAAC,MAAI,WAAU,6BACb,SAAAif,GAAC,UAAO,aAAc,IACd,KAAM,cAAcx2F,CAAK,kBACzB,UAAU,+BAChB,UAACu3E,EAAA,UAAO,MAAM,IAAI,SAAC,MAClBA,EAAA,UAAO,MAAM,IAAI,SAAC,MAClBA,EAAA,UAAO,MAAM,IAAI,SAAC,MAClBA,EAAA,UAAO,MAAM,IAAI,SAAC,SAEvB,EACCA,EAAA,QAAK,UAAU,sBAAsB,SAAO,aAC/C,EAEAif,GAAC,MAAI,WAAU,MACb,UAACjf,EAAA,OAAI,UAAU,WACb,SAACA,EAAA,OAAI,UAAU,wBACb,SAAAif,GAAC,MAAI,WAAU,6BACb,UAAAjf,EAAC,QACC,UAAAA,EAAC,IAAE,sBAAU,GACf,EAEAA,EAAC0qE,GAAA,CACC,SAAU2/C,EACV,MAAOD,EACP,UAAU,oCACZ,EACF,EACF,GACF,EAEAnrG,GAAC,MAAI,WAAU,WACb,UAACjf,EAAA,OAAI,UAAU,oCACb,SAAAA,EAAC,OAAI,UAAU,oBACb,YAAC,QACC,WAAAA,EAAC,SACC,KAAK,QACL,MAAM,cACN,QAASsqH,IAAiB,cAC1B,KAAM,cAAc7hM,CAAK,mBACzB,SAAU,IAAM8hM,EAAgB,aAAa,EAC/C,EAECvqH,EAAA,QAAK,UAAU,YAAY,SAAU,eAEtCA,EAAC,MAAI,WAAU,6BACb,SAAAA,EAAC,SAAM,UAAU,+BACV,MAAO,CAAE,MAAO,EAAG,EACnB,KAAK,OACL,SAAUsqH,IAAiB,cAC3B,aAAa,KACb,KAAM,cAAc7hM,CAAK,mBAClC,EACCu3E,EAAA,QAAK,UAAU,kBAAkB,SAAW,gBAC/C,EACF,GACF,EAEAA,EAAC,OAAI,UAAU,oCACb,WAAC,MAAI,WAAU,QACb,SAAAif,GAAC,QACC,WAAAjf,EAAC,SACC,KAAK,QACL,MAAM,OACN,QAASsqH,IAAiB,WAC1B,KAAM,cAAc7hM,CAAK,mBACzB,SAAU,IAAM8hM,EAAgB,UAAU,EAC5C,EAECvqH,EAAA,QAAK,UAAU,YAAY,SAAO,YAEnCA,EAAC,MAAI,WAAU,6BACb,SAAAA,EAAC0qE,GAAA,CACC,SAAAnyD,EACA,MAAA/8F,EACA,SAAU8uM,IAAiB,WAC3B,KAAM,cAAc7hM,CAAK,cACzB,QAASgiM,EACT,UAAU,sCAEd,EACF,EACF,GACF,GACF,EACAzqH,EAAC,MAAI,WAAU,UAAU,IAC3B,EAEAif,GAAC,MAAI,WAAU,oCACb,UAACjf,EAAA,OAAI,UAAU,kCAAkC,SAAE,OAClDA,EAAA,OAAI,UAAU,4CACZ,SAAKkqH,IAAA,IACJ11F,GAAAvV,GAAC,OAAkB,WAAU,WACzB,UAAAjf,EAAC,SAAM,UAAU,uBACV,KAAK,WACL,MAAOw0B,EAAI,GACX,QAASy6B,EAAa,SAASz6B,EAAI,EAAE,EACrC,SAAU,IAAMm2F,EAAkBn2F,EAAI,EAAE,EACxC,KAAM,cAAc/rG,CAAK,iBAAiB,EAChDu3E,EAAA,QAAK,UAAU,WAAY,WAAI,KAAK,IAP9Bw0B,EAAI,EAQf,GAEJ,GACF,CACF,GAEJ,ECzIes2F,IAACl8K,GAAU,CACxB,KAAM,CAAE,KAAA1hB,EAAM,WAAA69L,EAAY,mBAAAC,EAAoB,MAAAviM,EAAO,QAAAytE,EAAS,OAAA40E,CAAW,EAAAl8H,EACnE,CAAC7nB,EAAOkkM,CAAQ,EAAI9sG,WAAS,EAAK,EAClC,CAACu2F,EAAQC,CAAc,EAAIx2F,WAAS,IAAI,IAAM,EAC9C,CAACy2F,EAAOC,CAAQ,EAAI12F,EAAA,SAAS,CAAE,GAC/B,CAAC+sG,EAAcC,CAAe,EAAIhtG,WAAS,KAAK,MAAM,aAAa,QAAQ,cAAc,CAAC,GAAK,CAAE,MAAO,GAAI,IAAK,GAAI,EAErH+wF,EAAsB,CAACp0L,EAAMU,IAAU,CAC3C0vM,EAAapwM,CAAI,EAAIU,EACrB,aAAa,QAAQ,eAAgB,KAAK,UAAU0vM,CAAY,CAAC,EACjEC,EAAgB,KAAK,MAAM,aAAa,QAAQ,cAAc,CAAC,CAAC,GAGlE/2G,mBAAU,KACRve,GACG,IAAI,+BAAgC,CAAE,OAAQ,CAAE,SAAUK,CAAQ,CAAG,GACrE,KAAM34E,GAAas3L,EAASt3L,EAAS,IAAI,CAAC,EAEtC,UAAW,CAChB,QAAQ,IAAI,SAAS,IAEtB,CAAE,GAGH0hG,GAAC,MAAI,WAAU,gCACb,UAACjf,EAAA,SAAM,KAAK,SAAS,KAAM,cAAcv3E,CAAK,cAAe,MAAOytE,CAAQ,GAC5E8J,EAAC,MAAI,WAAU,eACb,SAAAA,EAACinD,GAAA,CACC,SAAU0tD,EACV,MAAOD,CAAA,GAEX,EACAz1F,GAAC,MAAI,WAAU,mBACb,UAACA,GAAA,OAAI,UAAU,MACb,UAAAjf,EAAC,OAAI,UAAU,qBACb,SAACif,GAAA,OAAI,UAAU,6BACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAEjD,SACAA,EAAC,UAAO,UAAU,+BACV,KAAM,cAAcv3E,CAAK,aAC9B,SAAMmsL,EAAA,IAAY3+G,GAAA+J,EAAC,SAAqB,OAAO/J,EAAK,GAAK,SAAKA,EAAA,MAA/BA,EAAK,EAA+B,CAAS,EAC/E,EAEA+J,EAAC6qE,IAAM,OAAAC,EAAgB,KAAM,cAAcriJ,CAAK,aAAc,OAAQ,MAAO,IAC/E,CACF,KAEC,MAAI,WAAU,qBACb,SAACw2F,GAAA,OAAI,UAAU,sBACb,UAACjf,EAAA,SAAM,UAAU,yBAAyB,SAAI,SAC9CA,EAAC0qE,GAAA,CACC,SAAUiqC,EACV,MAAOD,EACP,KAAM,cAAcjsL,CAAK,gBACzB,UAAU,oCAEZ,GACF,CACF,IACF,EAEAw2F,GAAC,MAAI,WAAU,MACb,UAACA,GAAA,OAAI,UAAU,WACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAEjD,UACAA,EAACovG,GAAA,CACC,KAAK,QACL,MAAA3mL,EACA,aAAc,OAAO,QAAS,KAAK,EACnC,eAAgByiM,EAAa,MAC7B,iBAAkB,SAClB,eAAgB,QAChB,oBAAAhc,CAAA,CACF,GACF,EAEAjwF,GAAC,MAAI,WAAU,WACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAG,QACpDA,EAACovG,GAAA,CACC,KAAK,MACL,MAAA3mL,EACA,aAAc,OAAO,QAAS,KAAK,EACnC,eAAgByiM,EAAa,IAC7B,iBAAkB,QAClB,eAAgB,OAChB,iBAAkB,GAClB,oBAAAhc,CAAA,CACF,GACF,GACF,GAEE8b,GAAsBA,IAAuB,SAE7C/rG,GAAAlf,GAAA,WAAAC,EAAC,OAAI,UAAU,wBACb,SAACif,GAAA,OAAI,UAAU,MACb,UAAAjf,EAAC,OAAI,UAAU,WACb,SAACA,EAAA,KAAE,UAAU,qDAAqD,QAAS,IAAMirH,EAAS,CAAClkM,CAAK,EAC7F,SAAQA,EAAA,sBAAwB,cACnC,GACF,EACCi5E,EAAA,OAAI,UAAU,sBACZ,WAAO,GACRA,EAAC,IAAE,WAAU,oDAAoD,QAAS,IAAM+qH,EAAW,EAAG,uBAE9F,GAEF,GACF,CACF,GAEChkM,GAAUi5E,EAAAmqH,IAAA,CAAM,UAAWzV,EAAQ,aAAcC,EAAgB,MAAAlsL,EAAa,GACjF,EAGAu3E,EAAC6qE,IAAM,OAAAC,EAAgB,KAAM,cAAcriJ,CAAK,cAAe,OAAQ,UAAW,IACpF,EAEAu3E,EAAC,MAAI,WAAU,UAAU,EAC3B,GAEJ,ECjIAorH,IAAe,CAAC,CAAE,QAAAl1H,CAAA,IAChB8J,EAAC69F,GAAA,CAAK,UAAU,uCACV,MAAO,CAAE,MAAO,GAAI,EACpB,KAAK,SACL,GAAI,8BAA8B3nG,CAAO,GAAI,gBAEnD,ECPam1H,GAAA,CAAC,CAAE,OAAAvgD,EAAQ,KAAA9+H,EAAM,QAAAslJ,EAAS,MAAAtwI,CAAM,IAC5Ci+D,GAAAp4B,GAAA,CAAM,KAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CACC,SAAAmZ,EAACnZ,GAAM,MAAN,CAAa,WAAM,CACtB,GACAmZ,EAACnZ,GAAM,KAAN,CACE,gBAAO,KAAKikF,CAAM,EAAE,IAAI,CAAC39I,EAAK1E,IAC5Bu3E,EAAA,KAAE,UAAU,cACV,SAAO8qE,EAAA39I,CAAG,EAAE,KAAK,IAAI,CACxB,EACD,CACH,GACC6yE,EAAAnZ,GAAM,OAAN,CACC,SAACmZ,EAAAroB,GAAA,CAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,cAAE,CAC3C,IACF,ECbag6B,IAAA,CAAC,CAAE,UAAAC,EAAW,QAAAC,EAAS,mBAAAC,EAAoB,sBAAAC,KAA4B,CACpF,KAAM,CAACC,EAAgBC,CAAiB,EAAIztG,WAAS,EAAK,EACpD,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,WAAS,EAAK,EAqB1C,OAEIc,GAAAlf,GAAA,WAAAC,EAACqrH,GAAA,CACC,OAAAvgD,EACA,KAAM6gD,EACN,QAASC,CAAA,CACX,EAEA5rH,EAAC,UAAO,UAAU,uCACV,MAAO,CAAE,MAAO,GAAI,EACpB,KAAK,SACL,SAAUyrH,EACV,QA/BU,IAAM,CACtB,GAAAA,EAA2B,SAC/BC,EAAsB,EAAI,EAE1B,MAAMtoM,EAAW,IAAI,SAAS,SAAS,eAAe,YAAY,CAAC,EAEnEyyE,GACG,KAAK,yBAA0BzyE,CAAQ,EACvC,KAAM7F,GAAa,CACRguM,EAAAhuM,EAAS,KAAK,WAAW,EACpC,EACA,MAAO0D,GAAU,CACNk0L,EAAAl0L,EAAM,SAAS,KAAK,MAAM,EACpC2qM,EAAkB,EAAI,EACtBrW,GAAOt0L,EAAOuqM,CAAO,EACrBE,EAAsB,EAAK,EAC5B,GAe+B,kBAEhC,CACF,GAEJ,EC3CeG,IAAA,CAAC,CAAE,UAAAC,CAAU,IACzB9rH,EAAA,UAAO,UAAU,6CAA6C,KAAK,SAAS,QAAS8rH,EAAW,SAEjG,sBCCIC,IAAY,CAAC,EAAE,EAENC,IAAA,CAAC,CAAE,UAAAT,EAAW,QAAAr1H,EAAS,mBAAAu1H,EAAoB,sBAAAC,KAA4B,CACpF,KAAM,CAAC/jE,EAAOskE,CAAQ,EAAI9tG,WAAS4tG,GAAS,EACtC,CAACG,EAAaC,CAAc,EAAIhuG,WAAS,CAAC,EAC1C,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,EAAA,SAAS,CAAE,GAEjC2tG,EAAY,IAAM,CACtB,MAAMM,EAAWzkE,EAAM,OAAO,CAAE,GAChCskE,EAASG,CAAQ,GAGbrB,EAActiM,GAAU,CAC5B,MAAM2jM,EAAWzkE,EAAM,OAAO,CAAC0kE,EAAKhtM,IAAMA,IAAMoJ,CAAK,EACrDwjM,EAASG,CAAQ,GAGbz6B,EAAgBu6B,GAAgB,CACpCC,EAAeD,CAAW,EAC1BX,EAAUW,CAAW,GAIrB,OAAAjtG,GAAC,QAAK,UAAU,8BAA8B,OAAO,IAAI,OAAO,OAAO,GAAG,aACvE,UAAM0oC,EAAA,IAAI,CAACpjI,EAAGkE,IACbu3E,EAAC8qH,IAAA,CAEC,MAAAriM,EACA,QAAAytE,EACA,WAAY,IAAM60H,EAAWtiM,CAAK,EAClC,KAAMk/H,EAAM,OACZ,OAAAmjB,CAAA,EALKriJ,CAMP,CACF,IACC,QAAM,MAAK,SAAS,KAAK,WAAW,MAAOytE,EAAQ,IACnD,QAAM,MAAK,SAAS,KAAK,gBAAgB,MAAOg2H,EAAY,EAC7DjtG,GAAC,MAAI,WAAU,mCACb,UAACjf,EAAA,OAAI,UAAU,mCAAmC,GAClDA,EAAC6rH,KAAe,UAAAC,EAAqB,GACvC,EACA7sG,GAAC,MAAI,WAAU,4BACb,UAAAjf,EAAC,OAAI,UAAU,WACb,SAACA,EAAAorH,IAAA,CAAW,QAAAl1H,CAAiB,GAC/B,EACA8J,EAAC,MAAI,WAAU,sBACb,SAAAA,EAACsrH,IAAA,CACC,UAAW35B,EACX,QAASwjB,EACT,sBAAAuW,EACA,mBAAAD,CAAA,GAEJ,GACF,CACF,GAEJ,EC5DAa,GAAe93B,GAAsB;;;kBCGpC,SAAUz+J,EAAQC,EAAS,CACqCC,EAAiB,QAAAD,EAAO,CAGzF,GAAGE,GAAO,UAAY,CAEpB,SAASq2L,EAAWn4L,EAAG+vB,EAAGx1B,EAAG,CAC3B,OAAOw1B,EAAI0+C,EAAgB1+C,CAAC,EAAG26B,EAA2B1qD,EAAG0uE,EAA2B,EAAG,QAAQ,UAAU3+C,EAAGx1B,GAAK,GAAIk0E,EAAgBzuE,CAAC,EAAE,WAAW,EAAI+vB,EAAE,MAAM/vB,EAAGzF,CAAC,CAAC,CACzK,CACD,SAAS69L,EAAWp4L,EAAGzF,EAAGu1B,EAAG,CAC3B,GAAI4+C,EAA2B,EAAE,OAAO,QAAQ,UAAU,MAAM,KAAM,SAAS,EAC/E,IAAI3+C,EAAI,CAAC,IAAI,EACbA,EAAE,KAAK,MAAMA,EAAGx1B,CAAC,EACjB,IAAIgmB,GAAI,IAAKvgB,EAAE,KAAK,MAAMA,EAAG+vB,CAAC,GAC9B,OAAOD,GAAKgsB,EAAgBv7B,GAAGuP,EAAE,SAAS,EAAGvP,EAC9C,CACD,SAASmuD,GAA4B,CACnC,GAAI,CACF,IAAI1uE,EAAI,CAAC,QAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,EAAE,CAAC,CAC5F,MAAgB,CAAE,CACd,OAAQ0uE,EAA4B,UAAY,CAC9C,MAAO,CAAC,CAAC1uE,CACf,IACG,CACD,SAASipL,EAAsBn5J,EAAG5vB,EAAG,CACnC,IAAIF,EAAY8vB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAY9vB,GAAR,KAAW,CACb,IAAIzF,EACFwE,GACA9T,GACA+kC,GACAxpB,GAAI,CAAE,EACNkpB,GAAI,GACJK,GAAI,GACN,GAAI,CACF,GAAI9kC,IAAK+U,EAAIA,EAAE,KAAK8vB,CAAC,GAAG,KAAY5vB,IAAN,EAAS,CACrC,GAAI,OAAOF,CAAC,IAAMA,EAAG,OACrB0vB,GAAI,EACd,KAAe,MAAO,EAAEA,IAAKn1B,EAAItP,GAAE,KAAK+U,CAAC,GAAG,QAAUwG,GAAE,KAAKjM,EAAE,KAAK,EAAGiM,GAAE,SAAWtG,GAAIwvB,GAAI,GAAG,CACxF,OAAQI,GAAG,CACVC,GAAI,GAAIhxB,GAAI+wB,EACpB,QAAgB,CACR,GAAI,CACF,GAAI,CAACJ,IAAa1vB,EAAE,QAAV,OAAqBgwB,GAAIhwB,EAAE,OAAQ,EAAE,OAAOgwB,EAAC,IAAMA,IAAI,MAC3E,QAAkB,CACR,GAAID,GAAG,MAAMhxB,EACd,CACF,CACD,OAAOyH,EACR,CACF,CACD,SAASgvC,EAAax1C,EAAG8vB,EAAG,CAC1B,GAAgB,OAAO9vB,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EACvC,IAAIzF,EAAIyF,EAAE,OAAO,WAAW,EAC5B,GAAezF,IAAX,OAAc,CAChB,IAAItP,EAAIsP,EAAE,KAAKyF,EAAG8vB,GAAK,SAAS,EAChC,GAAgB,OAAO7kC,GAAnB,SAAsB,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACnE,CACD,OAAqB6kC,IAAb,SAAiB,OAAS,QAAQ9vB,CAAC,CAC5C,CACD,SAASq4L,EAAer4L,EAAG,CACzB,IAAI/U,EAAIuqD,EAAax1C,EAAG,QAAQ,EAChC,OAAmB,OAAO/U,GAAnB,SAAuBA,EAAI,OAAOA,CAAC,CAC3C,CACD,SAASwhE,EAAQ18B,EAAG,CAClB,0BAEA,OAAO08B,EAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU18B,EAAG,CAChG,OAAO,OAAOA,CACf,EAAG,SAAUA,EAAG,CACf,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACxH,EAAO08B,EAAQ18B,CAAC,CACb,CACD,SAASw6B,EAAgBC,EAAUC,EAAa,CAC9C,GAAI,EAAED,aAAoBC,GACxB,MAAM,IAAI,UAAU,mCAAmC,CAE1D,CACD,SAAS0jB,EAAkBtnF,EAAQ2zB,EAAO,CACxC,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CACrC,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EACxBw9E,EAAW,WAAaA,EAAW,YAAc,GACjDA,EAAW,aAAe,GACtB,UAAWA,IAAYA,EAAW,SAAW,IACjD,OAAO,eAAe5hF,EAAQwxM,EAAe5vH,EAAW,GAAG,EAAGA,CAAU,CACzE,CACF,CACD,SAASoE,EAAapiB,EAAasiB,EAAYC,EAAa,CAC1D,OAAID,GAAYoB,EAAkB1jB,EAAY,UAAWsiB,CAAU,EAC/DC,GAAamB,EAAkB1jB,EAAauiB,CAAW,EAC3D,OAAO,eAAeviB,EAAa,YAAa,CAC9C,SAAU,EAChB,CAAK,EACMA,CACR,CACD,SAASG,EAAU3O,EAAUC,EAAY,CACvC,GAAI,OAAOA,GAAe,YAAcA,IAAe,KACrD,MAAM,IAAI,UAAU,oDAAoD,EAE1ED,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CACrE,YAAa,CACX,MAAOD,EACP,SAAU,GACV,aAAc,EACf,CACP,CAAK,EACD,OAAO,eAAeA,EAAU,YAAa,CAC3C,SAAU,EAChB,CAAK,EACGC,GAAYJ,EAAgBG,EAAUC,CAAU,CACrD,CACD,SAASuyB,EAAgB1+C,EAAG,CAC1B,OAAA0+C,EAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAyB1+C,EAAG,CACnG,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CACnD,EACW0+C,EAAgB1+C,CAAC,CACzB,CACD,SAAS+rB,EAAgB/rB,EAAGxP,EAAG,CAC7B,OAAAu7B,EAAkB,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAAyB/rB,EAAGxP,GAAG,CACtG,OAAAwP,EAAE,UAAYxP,GACPwP,CACb,EACW+rB,EAAgB/rB,EAAGxP,CAAC,CAC5B,CACD,SAAS2hC,EAAuB7wC,EAAM,CACpC,GAAIA,IAAS,OACX,MAAM,IAAI,eAAe,2DAA2D,EAEtF,OAAOA,CACR,CACD,SAASq5C,EAA2Br5C,EAAMs5C,EAAM,CAC9C,GAAIA,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YACvD,OAAOA,EACF,GAAIA,IAAS,OAClB,MAAM,IAAI,UAAU,0DAA0D,EAEhF,OAAOzI,EAAuB7wC,CAAI,CACnC,CACD,SAASinL,EAAevmL,EAAQpU,EAAU,CACxC,KAAO,CAAC,OAAO,UAAU,eAAe,KAAKoU,EAAQpU,CAAQ,IAC3DoU,EAAS08D,EAAgB18D,CAAM,EAC3BA,IAAW,OAAf,CAEF,OAAOA,CACR,CACD,SAASwmL,GAAO,CACd,OAAI,OAAO,QAAY,KAAe,QAAQ,IAC5CA,EAAO,QAAQ,IAAI,OAEnBA,EAAO,SAAc1xM,EAAQ8W,EAAU66L,EAAU,CAC/C,IAAIzqL,GAAOuqL,EAAezxM,EAAQ8W,CAAQ,EAC1C,GAAKoQ,GACL,KAAI25C,GAAO,OAAO,yBAAyB35C,GAAMpQ,CAAQ,EACzD,OAAI+pD,GAAK,IACAA,GAAK,IAAI,KAAK,UAAU,OAAS,EAAI7gE,EAAS2xM,CAAQ,EAExD9wI,GAAK,MACpB,EAEW6wI,EAAK,MAAM,KAAM,SAAS,CAClC,CACD,SAASxP,EAAe9mL,EAAKhX,EAAG,CAC9B,OAAO+9L,EAAgB/mL,CAAG,GAAKgnL,EAAsBhnL,EAAKhX,CAAC,GAAK4uF,EAA4B53E,EAAKhX,CAAC,GAAKi+L,EAAgB,CACxH,CACD,SAASlvG,EAAmB/3E,EAAK,CAC/B,OAAOw3E,EAAmBx3E,CAAG,GAAK03E,EAAiB13E,CAAG,GAAK43E,EAA4B53E,CAAG,GAAK83E,GAChG,CACD,SAASN,EAAmBx3E,EAAK,CAC/B,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOs3E,EAAkBt3E,CAAG,CACrD,CACD,SAAS+mL,EAAgB/mL,EAAK,CAC5B,GAAI,MAAM,QAAQA,CAAG,EAAG,OAAOA,CAChC,CACD,SAAS03E,EAAiBC,EAAM,CAC9B,GAAI,OAAO,OAAW,KAAeA,EAAK,OAAO,QAAQ,GAAK,MAAQA,EAAK,YAAY,GAAK,KAAM,OAAO,MAAM,KAAKA,CAAI,CACzH,CACD,SAASC,EAA4B9pD,EAAG+pD,EAAQ,CAC9C,GAAK/pD,EACL,IAAI,OAAOA,GAAM,SAAU,OAAOwpD,EAAkBxpD,EAAG+pD,CAAM,EAC7D,IAAI/6E,EAAI,OAAO,UAAU,SAAS,KAAKgxB,CAAC,EAAE,MAAM,EAAG,EAAE,EAErD,GADIhxB,IAAM,UAAYgxB,EAAE,cAAahxB,EAAIgxB,EAAE,YAAY,MACnDhxB,IAAM,OAASA,IAAM,MAAO,OAAO,MAAM,KAAKgxB,CAAC,EACnD,GAAIhxB,IAAM,aAAe,2CAA2C,KAAKA,CAAC,EAAG,OAAOw6E,EAAkBxpD,EAAG+pD,CAAM,EAChH,CACD,SAASP,EAAkBt3E,EAAK4B,EAAK,EAC/BA,GAAO,MAAQA,EAAM5B,EAAI,UAAQ4B,EAAM5B,EAAI,QAC/C,QAAShX,EAAI,EAAGuuF,EAAO,IAAI,MAAM31E,CAAG,EAAG5Y,EAAI4Y,EAAK5Y,IAAKuuF,EAAKvuF,CAAC,EAAIgX,EAAIhX,CAAC,EACpE,OAAOuuF,CACR,CACD,SAASO,GAAqB,CAC5B,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAC3J,CACD,SAASmvG,GAAmB,CAC1B,MAAM,IAAI,UAAU;AAAA,mFAA2I,CAChK,CACD,SAASuP,EAAsBD,EAAUE,EAAY,CACnD,IAAIjwH,EAAakwH,EAA6BH,EAAUE,EAAY,KAAK,EACzE,OAAOE,GAAyBJ,EAAU/vH,CAAU,CACrD,CACD,SAASowH,EAAsBL,EAAUE,EAAYtxM,EAAO,CAC1D,IAAIqhF,EAAakwH,EAA6BH,EAAUE,EAAY,KAAK,EACzE,OAAAI,GAAyBN,EAAU/vH,EAAYrhF,CAAK,EAC7CA,CACR,CACD,SAASuxM,EAA6BH,EAAUE,EAAY3wM,EAAQ,CAClE,GAAI,CAAC2wM,EAAW,IAAIF,CAAQ,EAC1B,MAAM,IAAI,UAAU,gBAAkBzwM,EAAS,gCAAgC,EAEjF,OAAO2wM,EAAW,IAAIF,CAAQ,CAC/B,CACD,SAASI,GAAyBJ,EAAU/vH,EAAY,CACtD,OAAIA,EAAW,IACNA,EAAW,IAAI,KAAK+vH,CAAQ,EAE9B/vH,EAAW,KACnB,CACD,SAASqwH,GAAyBN,EAAU/vH,EAAYrhF,EAAO,CAC7D,GAAIqhF,EAAW,IACbA,EAAW,IAAI,KAAK+vH,EAAUpxM,CAAK,MAC9B,CACL,GAAI,CAACqhF,EAAW,SACd,MAAM,IAAI,UAAU,0CAA0C,EAEhEA,EAAW,MAAQrhF,CACpB,CACF,CACD,SAAS2xM,GAA2Bp5L,EAAKq5L,EAAmB,CAC1D,GAAIA,EAAkB,IAAIr5L,CAAG,EAC3B,MAAM,IAAI,UAAU,gEAAgE,CAEvF,CACD,SAASs5L,GAA2Bt5L,EAAK+4L,EAAYtxM,EAAO,CAC1D2xM,GAA2Bp5L,EAAK+4L,CAAU,EAC1CA,EAAW,IAAI/4L,EAAKvY,CAAK,CAC1B,CAED,IAAI8xM,GAAwB,IAGxBC,GAAc,GACdC,GAA6B,UAAsC,CACjED,GAAY,iCAAiC,aAC/CA,GAAY,sBAAsB,QAClCA,GAAY,sBAAwB,MAC3B,SAAS,MAClB,SAAS,KAAK,OAEpB,EAQME,GAAuB,SAA8BC,EAAa,CACpE,OAAO,IAAI,QAAQ,SAAUnvM,EAAS,CACpC,GAAI,CAACmvM,EACH,OAAOnvM,EAAO,EAEhB,IAAIgG,EAAI,OAAO,QACXC,GAAI,OAAO,QACf+oM,GAAY,oBAAsB,WAAW,UAAY,CACvDC,KACAjvM,GACD,EAAE+uM,EAAqB,EAExB,OAAO,SAAS/oM,EAAGC,EAAC,CAC1B,CAAK,CACL,EAEMmpM,GAAa,SAmFbv1K,GAAa,CAAC,YAAa,QAAS,cAAe,SAAU,QAAS,QAAS,cAAe,gBAAiB,QAAS,cAAe,OAAQ,OAAQ,QAAS,QAAS,iBAAkB,UAAW,UAAW,OAAQ,SAAU,kBAAmB,SAAU,OAAQ,eAAgB,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,QAAS,WAAY,aAAc,cAAe,qBAAsB,iBAAkB,uBAAwB,gBAAiB,qBAAsB,SAAU,UAAW,SAAU,MAAO,YAAa,UAAW,WAAY,YAAa,SAAU,eAAgB,aAAc,cAAe,eAAgB,SAAU,eAAgB,aAAc,cAAe,eAAgB,WAAY,cAAe,kBAAmB,MAAO,qBAAsB,+BAAgC,oBAAqB,eAAgB,eAAgB,YAAa,gBAAiB,YAAY,EACl6Bw1K,EAAcx1K,GAAW,OAAO,SAAU6+B,EAAKh4C,EAAW,CAC5D,OAAAg4C,EAAIh4C,CAAS,EAAI0uL,GAAa1uL,EACvBg4C,CACR,EAA4B,CAAE,GAG3B42I,GAAQ,CAAC,UAAW,UAAW,OAAQ,WAAY,OAAO,EAC1DC,GAAYD,GAAM,OAAO,SAAU52I,EAAK82I,EAAM,CAChD,OAAA92I,EAAI82I,CAAI,EAAIJ,GAAaI,EAClB92I,CACR,EAA0B,CAAE,GAEzB+2I,GAAgB,eAQhB/iD,GAAwB,SAA+Bz6E,EAAK,CAC9D,OAAOA,EAAI,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,CACpD,EAOMk4B,GAAO,SAAc7tG,EAAS,CAChC,QAAQ,KAAK,GAAG,OAAOmzM,GAAe,GAAG,EAAE,OAAOntI,EAAQhmE,CAAO,IAAM,SAAWA,EAAQ,KAAK,GAAG,EAAIA,CAAO,CAAC,CAClH,EAOMoG,GAAQ,SAAepG,EAAS,CAClC,QAAQ,MAAM,GAAG,OAAOmzM,GAAe,GAAG,EAAE,OAAOnzM,CAAO,CAAC,CAC/D,EAQMozM,GAA2B,GAO3BC,GAAW,SAAkBrzM,EAAS,CACnCozM,GAAyB,SAASpzM,CAAO,IAC5CozM,GAAyB,KAAKpzM,CAAO,EACrC6tG,GAAK7tG,CAAO,EAElB,EAQMszM,GAAuB,SAA8BC,EAAiBC,EAAY,CACpFH,GAAS,IAAK,OAAOE,EAAiB,6EAA+E,EAAE,OAAOC,EAAY,YAAa,CAAC,CAC5J,EASMC,GAAiB,SAAwBt1L,EAAK,CAChD,OAAO,OAAOA,GAAQ,WAAaA,EAAG,EAAKA,CAC/C,EAMMu1L,GAAiB,SAAwBv1L,EAAK,CAChD,OAAOA,GAAO,OAAOA,EAAI,WAAc,UAC3C,EAMMw1L,GAAY,SAAmBx1L,EAAK,CACtC,OAAOu1L,GAAev1L,CAAG,EAAIA,EAAI,UAAS,EAAK,QAAQ,QAAQA,CAAG,CACtE,EAMMy1L,GAAY,SAAmBz1L,EAAK,CACtC,OAAOA,GAAO,QAAQ,QAAQA,CAAG,IAAMA,CAC3C,EAOM2nB,GAAe,UAAwB,CACzC,OAAO,SAAS,KAAK,cAAc,IAAI,OAAOitK,EAAY,SAAS,CAAC,CACxE,EAMMc,GAAoB,SAA2BC,EAAgB,CACjE,IAAIrgM,EAAYqyB,KAChB,OAAOryB,EAAYA,EAAU,cAAcqgM,CAAc,EAAI,IACjE,EAMMC,GAAiB,SAAwB3vL,EAAW,CACtD,OAAOyvL,GAAkB,IAAI,OAAOzvL,CAAS,CAAC,CAClD,EAKM4vL,GAAW,UAAoB,CACjC,OAAOD,GAAehB,EAAY,KAAK,CAC3C,EAKMkB,GAAU,UAAmB,CAC/B,OAAOF,GAAehB,EAAY,IAAI,CAC1C,EAKMmB,GAAiB,UAA0B,CAC7C,OAAOH,GAAehB,EAAY,cAAc,CAAC,CACrD,EAKMoB,GAAW,UAAoB,CACjC,OAAOJ,GAAehB,EAAY,KAAK,CAC3C,EAKMqB,GAAmB,UAA4B,CACjD,OAAOL,GAAehB,EAAY,gBAAgB,CAAC,CACvD,EAKMsB,GAAW,UAAoB,CACjC,OAAON,GAAehB,EAAY,KAAK,CAC3C,EAKMuB,GAAmB,UAA4B,CACjD,OAAOP,GAAehB,EAAY,gBAAgB,CAAC,CACvD,EAKMwB,GAAuB,UAAgC,CACzD,OAAOR,GAAehB,EAAY,oBAAoB,CAAC,CAC3D,EAKMyB,GAAmB,UAA4B,CACjD,OAAuCX,GAAkB,IAAI,OAAOd,EAAY,QAAS,IAAI,EAAE,OAAOA,EAAY,OAAO,CAAC,CAC9H,EAKM0B,GAAkB,UAA2B,CAC/C,OAAuCZ,GAAkB,IAAI,OAAOd,EAAY,QAAS,IAAI,EAAE,OAAOA,EAAY,MAAM,CAAC,CAC7H,EAKM2B,GAAgB,UAAyB,CAC3C,OAAuCb,GAAkB,IAAI,OAAOd,EAAY,QAAS,IAAI,EAAE,OAAOA,EAAY,IAAI,CAAC,CAC3H,EAKM4B,GAAgB,UAAyB,CAC3C,OAAOZ,GAAehB,EAAY,aAAa,CAAC,CACpD,EAKM6B,GAAY,UAAqB,CACnC,OAAOf,GAAkB,IAAI,OAAOd,EAAY,MAAM,CAAC,CAC3D,EAKM8B,GAAa,UAAsB,CACrC,OAAOd,GAAehB,EAAY,OAAO,CAC7C,EAKM+B,GAAY,UAAqB,CACnC,OAAOf,GAAehB,EAAY,MAAM,CAC5C,EAKMgC,GAAsB,UAA+B,CACvD,OAAOhB,GAAehB,EAAY,oBAAoB,CAAC,CAC3D,EAKMiC,GAAiB,UAA0B,CAC7C,OAAOjB,GAAehB,EAAY,KAAK,CAC3C,EAGMkC,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAIZC,GAAuB,UAAgC,CACzD,IAAI5lC,EAAQ0kC,KACZ,GAAI,CAAC1kC,EACH,MAAO,GAGT,IAAI6lC,EAAgC7lC,EAAM,iBAAiB,qDAAqD,EAC5G8lC,EAAsC,MAAM,KAAKD,CAA6B,EAEjF,KAAK,SAAUp1L,GAAGC,GAAG,CACpB,IAAIq1L,GAAY,SAASt1L,GAAE,aAAa,UAAU,GAAK,GAAG,EACtDu1L,GAAY,SAASt1L,GAAE,aAAa,UAAU,GAAK,GAAG,EAC1D,OAAIq1L,GAAYC,GACP,EACED,GAAYC,GACd,GAEF,CACb,CAAK,EAGGC,GAAyBjmC,EAAM,iBAAiB2lC,EAAS,EACzDO,GAAiC,MAAM,KAAKD,EAAsB,EAAE,OAAO,SAAUvyL,GAAI,CAC3F,OAAOA,GAAG,aAAa,UAAU,IAAM,IAC7C,CAAK,EACD,OAAOuwE,EAAmB,IAAI,IAAI6hH,EAAoC,OAAOI,EAA8B,CAAC,CAAC,EAAE,OAAO,SAAUxyL,GAAI,CAClI,OAAOyyL,GAAYzyL,EAAE,CAC3B,CAAK,CACL,EAKM0yL,GAAU,UAAmB,CAC/B,OAAOlvI,GAAS,SAAS,KAAMusI,EAAY,KAAK,GAAK,CAACvsI,GAAS,SAAS,KAAMusI,EAAY,aAAa,CAAC,GAAK,CAACvsI,GAAS,SAAS,KAAMusI,EAAY,aAAa,CAAC,CACpK,EAKM4C,GAAU,UAAmB,CAC/B,IAAIrmC,EAAQ0kC,KACZ,OAAK1kC,EAGE9oG,GAAS8oG,EAAOyjC,EAAY,KAAK,EAF/B,EAGb,EAKMnyG,GAAY,UAAqB,CACnC,IAAI0uE,EAAQ0kC,KACZ,OAAK1kC,EAGEA,EAAM,aAAa,cAAc,EAF/B,EAGb,EASMsmC,GAAe,SAAsB14L,EAAM/Z,EAAM,CAEnD,GADA+Z,EAAK,YAAc,GACf/Z,EAAM,CACR,IAAIq+L,EAAS,IAAI,UACb39J,GAAS29J,EAAO,gBAAgBr+L,EAAM,WAAW,EACjDoK,GAAOs2B,GAAO,cAAc,MAAM,EACtCt2B,IAAQ,MAAM,KAAKA,GAAK,UAAU,EAAE,QAAQ,SAAUk1D,GAAO,CAC3DvlD,EAAK,YAAYulD,EAAK,CAC9B,CAAO,EACD,IAAIx8D,GAAO49B,GAAO,cAAc,MAAM,EACtC59B,IAAQ,MAAM,KAAKA,GAAK,UAAU,EAAE,QAAQ,SAAUw8D,GAAO,CACvDA,cAAiB,kBAAoBA,cAAiB,iBACxDvlD,EAAK,YAAYulD,GAAM,UAAU,EAAI,CAAC,EAEtCvlD,EAAK,YAAYulD,EAAK,CAEhC,CAAO,CACF,CACL,EAOM+D,GAAW,SAAkBtpD,EAAMkH,EAAW,CAChD,GAAI,CAACA,EACH,MAAO,GAGT,QADI6zH,EAAY7zH,EAAU,MAAM,KAAK,EAC5B5f,GAAI,EAAGA,GAAIyzI,EAAU,OAAQzzI,KACpC,GAAI,CAAC0Y,EAAK,UAAU,SAAS+6H,EAAUzzI,EAAC,CAAC,EACvC,MAAO,GAGX,MAAO,EACX,EAMMqxM,GAAsB,SAA6B34L,EAAM4mB,EAAQ,CACnE,MAAM,KAAK5mB,EAAK,SAAS,EAAE,QAAQ,SAAUkH,EAAW,CAClD,CAAC,OAAO,OAAO2uL,CAAW,EAAE,SAAS3uL,CAAS,GAAK,CAAC,OAAO,OAAO6uL,EAAS,EAAE,SAAS7uL,CAAS,GAAK,CAAC,OAAO,OAAO0f,EAAO,WAAa,EAAE,EAAE,SAAS1f,CAAS,GAC/JlH,EAAK,UAAU,OAAOkH,CAAS,CAEvC,CAAK,CACL,EAOM0xL,GAAmB,SAA0B54L,EAAM4mB,EAAQ1f,EAAW,CAExE,GADAyxL,GAAoB34L,EAAM4mB,CAAM,EAC5BA,EAAO,aAAeA,EAAO,YAAY1f,CAAS,EAAG,CACvD,GAAI,OAAO0f,EAAO,YAAY1f,CAAS,GAAM,UAAY,CAAC0f,EAAO,YAAY1f,CAAS,EAAE,QAAS,CAC/FypF,GAAK,+BAA+B,OAAOzpF,EAAW,6CAA8C,EAAE,OAAO4hD,EAAQliC,EAAO,YAAY1f,CAAS,CAAC,EAAG,GAAI,CAAC,EAC1J,MACD,CACDqiD,GAASvpD,EAAM4mB,EAAO,YAAY1f,CAAS,CAAC,CAC7C,CACL,EAOM2xL,GAAa,SAAkBzmC,EAAO0mC,EAAY,CACpD,GAAI,CAACA,EACH,OAAO,KAET,OAAQA,EAAU,CAChB,IAAK,SACL,IAAK,WACL,IAAK,OACH,OAAO1mC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,MAAM,EAAE,OAAOA,EAAYiD,CAAU,CAAC,CAAC,EAClG,IAAK,WACH,OAAO1mC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,MAAM,EAAE,OAAOA,EAAY,SAAU,QAAQ,CAAC,EACzG,IAAK,QACH,OAAOzjC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,MAAM,EAAE,OAAOA,EAAY,MAAO,gBAAgB,CAAC,GAAKzjC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,MAAM,EAAE,OAAOA,EAAY,MAAO,oBAAoB,CAAC,EAC5N,IAAK,QACH,OAAOzjC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,MAAM,EAAE,OAAOA,EAAY,MAAO,QAAQ,CAAC,EACtG,QACE,OAAOzjC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,MAAM,EAAE,OAAOA,EAAY,KAAK,CAAC,CAC7F,CACL,EAKMkD,GAAa,SAAoB3tM,EAAO,CAI1C,GAHAA,EAAM,MAAK,EAGPA,EAAM,OAAS,OAAQ,CAEzB,IAAIoU,EAAMpU,EAAM,MAChBA,EAAM,MAAQ,GACdA,EAAM,MAAQoU,CACf,CACL,EAOMw5L,GAAc,SAAqB91M,EAAQ63I,EAAW7gF,EAAW,CAC/D,CAACh3D,GAAU,CAAC63I,IAGZ,OAAOA,GAAc,WACvBA,EAAYA,EAAU,MAAM,KAAK,EAAE,OAAO,OAAO,GAEnDA,EAAU,QAAQ,SAAU7zH,GAAW,CACjC,MAAM,QAAQhkB,CAAM,EACtBA,EAAO,QAAQ,SAAU8c,GAAM,CAC7Bk6C,EAAYl6C,GAAK,UAAU,IAAIkH,EAAS,EAAIlH,GAAK,UAAU,OAAOkH,EAAS,CACrF,CAAS,EAEDgzC,EAAYh3D,EAAO,UAAU,IAAIgkB,EAAS,EAAIhkB,EAAO,UAAU,OAAOgkB,EAAS,CAEvF,CAAK,EACL,EAMMqiD,GAAW,SAAkBrmE,EAAQ63I,EAAW,CAClDi+D,GAAY91M,EAAQ63I,EAAW,EAAI,CACvC,EAMMnxE,GAAc,SAAqB1mE,EAAQ63I,EAAW,CACxDi+D,GAAY91M,EAAQ63I,EAAW,EAAK,CACxC,EASMk+D,GAAwB,SAA+Bj5L,EAAMkH,EAAW,CAE1E,QADIm+C,EAAW,MAAM,KAAKrlD,EAAK,QAAQ,EAC9B1Y,GAAI,EAAGA,GAAI+9D,EAAS,OAAQ/9D,KAAK,CACxC,IAAIi+D,GAAQF,EAAS/9D,EAAC,EACtB,GAAIi+D,cAAiB,aAAe+D,GAAS/D,GAAOr+C,CAAS,EAC3D,OAAOq+C,EAEV,CACL,EAOM2zI,GAAsB,SAA6Bl5L,EAAMhG,EAAUvW,EAAO,CACxEA,IAAU,GAAG,OAAO,SAASA,CAAK,CAAC,IACrCA,EAAQ,SAASA,CAAK,GAEpBA,GAAS,SAASA,CAAK,IAAM,EAC/Buc,EAAK,MAAM,YAAYhG,EAAU,OAAOvW,GAAU,SAAW,GAAG,OAAOA,EAAO,IAAI,EAAIA,CAAK,EAE3Fuc,EAAK,MAAM,eAAehG,CAAQ,CAExC,EAMMia,GAAO,SAAcjU,EAAM,CAC7B,IAAI+T,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,OAClF/T,IAASA,EAAK,MAAM,QAAU+T,EAClC,EAKM4+B,GAAO,SAAc3yC,EAAM,CAC7BA,IAASA,EAAK,MAAM,QAAU,OAClC,EAMMm5L,GAA2B,SAAkCn5L,EAAM,CACrE,IAAI+T,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,QAC7E/T,GAGL,IAAI,iBAAiB,UAAY,CAC/B2d,GAAO3d,EAAMA,EAAK,UAAW+T,CAAO,CAC1C,CAAK,EAAE,QAAQ/T,EAAM,CACf,UAAW,GACX,QAAS,EACf,CAAK,CACL,EAQMo5L,GAAW,SAAkBrwL,EAAQtgB,EAAUuR,EAAUvW,GAAO,CAElE,IAAIqiB,GAAKiD,EAAO,cAActgB,CAAQ,EAClCqd,IACFA,GAAG,MAAM,YAAY9L,EAAUvW,EAAK,CAE1C,EAOMk6B,GAAS,SAAgB3d,EAAMk6C,EAAW,CAC5C,IAAInmC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,OAClFmmC,EAAYjmC,GAAKjU,EAAM+T,CAAO,EAAI4+B,GAAK3yC,CAAI,CAC/C,EAQMu4L,GAAc,SAAmBv4L,EAAM,CACzC,MAAO,CAAC,EAAEA,IAASA,EAAK,aAAeA,EAAK,cAAgBA,EAAK,iBAAiB,QACtF,EAKMq5L,GAAsB,UAA+B,CACvD,MAAO,CAACd,GAAYjB,GAAkB,IAAK,CAACiB,GAAYf,GAAa,CAAE,GAAK,CAACe,GAAYhB,GAAiB,EAC9G,EAMM+B,GAAe,SAAsBt5L,EAAM,CAC7C,OAAUA,EAAK,aAAeA,EAAK,YACvC,EAQMu5L,GAAkB,SAAyBv5L,EAAM,CACnD,IAAInc,EAAQ,OAAO,iBAAiBmc,CAAI,EACpCw5L,EAAe,WAAW31M,EAAM,iBAAiB,oBAAoB,GAAK,GAAG,EAC7E41M,GAAgB,WAAW51M,EAAM,iBAAiB,qBAAqB,GAAK,GAAG,EACnF,OAAO21M,EAAe,GAAKC,GAAgB,CAC/C,EAMMC,GAA0B,SAAiCp6K,EAAO,CACpE,IAAIq6K,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC5EC,EAAmB/B,KAClB+B,GAGDrB,GAAYqB,CAAgB,IAC1BD,IACFC,EAAiB,MAAM,WAAa,OACpCA,EAAiB,MAAM,MAAQ,QAEjC,WAAW,UAAY,CACrBA,EAAiB,MAAM,WAAa,SAAS,OAAOt6K,EAAQ,IAAM,UAAU,EAC5Es6K,EAAiB,MAAM,MAAQ,IAChC,EAAE,EAAE,EAEX,EACMC,GAAuB,UAAgC,CACzD,IAAID,EAAmB/B,KACvB,GAAK+B,EAGL,KAAIE,EAAwB,SAAS,OAAO,iBAAiBF,CAAgB,EAAE,KAAK,EACpFA,EAAiB,MAAM,eAAe,YAAY,EAClDA,EAAiB,MAAM,MAAQ,OAC/B,IAAIG,EAA4B,SAAS,OAAO,iBAAiBH,CAAgB,EAAE,KAAK,EACpFI,GAA0BF,EAAwBC,EAA4B,IAClFH,EAAiB,MAAM,MAAQ,GAAG,OAAOI,GAAyB,GAAG,EACzE,EAOMC,GAAY,UAAqB,CACnC,OAAO,OAAO,OAAW,KAAe,OAAO,SAAa,GAChE,EAEMC,GAAY;AAAA,yBAA6B,OAAOrE,EAAY,MAAO,sBAAwB,EAAE,OAAOA,EAAY,gBAAgB,EAAG,WAAa,EAAE,OAAOA,EAAY,MAAO;AAAA,iCAA0D,EAAE,OAAOA,EAAY,MAAO;AAAA,eAA+B,EAAE,OAAOA,EAAY,gBAAgB,EAAG;AAAA,gBAA4B,EAAE,OAAOA,EAAY,KAAM;AAAA,gBAA6B,EAAE,OAAOA,EAAY,MAAO;AAAA,eAAwB,EAAE,OAAOA,EAAY,MAAO,QAAU,EAAE,OAAOA,EAAY,MAAO;AAAA,gBAA4B,EAAE,OAAOA,EAAY,gBAAgB,EAAG,QAAU,EAAE,OAAOA,EAAY,gBAAgB,EAAG;AAAA,kBAA+B,EAAE,OAAOA,EAAY,MAAO,QAAU,EAAE,OAAOA,EAAY,MAAO;AAAA,8BAAyC,EAAE,OAAOA,EAAY,KAAM;AAAA,gBAAyB,EAAE,OAAOA,EAAY,MAAO;AAAA;AAAA;AAAA;AAAA,mBAA4F,EAAE,OAAOA,EAAY,OAAQ,QAAU,EAAE,OAAOA,EAAY,OAAQ;AAAA,gBAAgC,EAAE,OAAOA,EAAY,MAAO;AAAA,kBAA+B,EAAE,OAAOA,EAAY,SAAU;AAAA,iCAA0C,EAAE,OAAOA,EAAY,SAAU;AAAA,mBAA4B,EAAE,OAAOA,EAAY,MAAO;AAAA;AAAA,qBAAgD,EAAE,OAAOA,EAAY,SAAU,QAAU,EAAE,OAAOA,EAAY,SAAU;AAAA,gBAAkC,EAAE,OAAOA,EAAY,oBAAoB,EAAG,QAAU,EAAE,OAAOA,EAAY,oBAAoB,EAAG;AAAA,gBAA6B,EAAE,OAAOA,EAAY,QAAS;AAAA,kBAAyB,EAAE,OAAOA,EAAY,OAAQ;AAAA,mCAAkD,EAAE,OAAOA,EAAY,QAAS;AAAA,mCAAqD,EAAE,OAAOA,EAAY,KAAM;AAAA,mCAAqD,EAAE,OAAOA,EAAY,OAAQ;AAAA;AAAA,gBAA2C,EAAE,OAAOA,EAAY,OAAQ;AAAA,gBAA6B,EAAE,OAAOA,EAAY,8BAA8B,EAAG;AAAA,kBAAyB,EAAE,OAAOA,EAAY,oBAAoB,EAAG;AAAA;AAAA;AAAA,CAAiC,EAAE,QAAQ,aAAc,EAAE,EAKxnEsE,GAAoB,UAA6B,CACnD,IAAIC,EAAexxK,KACnB,OAAKwxK,GAGLA,EAAa,OAAM,EACnBxwI,GAAY,CAAC,SAAS,gBAAiB,SAAS,IAAI,EAAG,CAACisI,EAAY,aAAa,EAAGA,EAAY,aAAa,EAAGA,EAAY,YAAY,CAAC,CAAC,EACnI,IAJE,EAKb,EACMwE,GAA2B,UAAkC,CAC/D7E,GAAY,gBAAgB,wBAChC,EACM8E,GAA0B,UAAmC,CAC/D,IAAIloC,EAAQ0kC,KACR1rM,EAAQ6tM,GAAsB7mC,EAAOyjC,EAAY,KAAK,EACtD0E,EAAOtB,GAAsB7mC,EAAOyjC,EAAY,IAAI,EAEpDvvE,GAAQ8rC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,QAAQ,CAAC,EAEnE2E,GAAcpoC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,MAAO,SAAS,CAAC,EAC1Ep0L,GAASw3L,GAAsB7mC,EAAOyjC,EAAY,MAAM,EAExD4E,GAAWroC,EAAM,cAAc,IAAI,OAAOyjC,EAAY,SAAU,QAAQ,CAAC,EACzE6E,GAAWzB,GAAsB7mC,EAAOyjC,EAAY,QAAQ,EAChEzqM,EAAM,QAAUivM,GAChBE,EAAK,SAAWF,GAChB54L,GAAO,SAAW44L,GAClBI,GAAS,SAAWJ,GACpBK,GAAS,QAAUL,GACnB/zE,GAAM,QAAU,UAAY,CAC1B+zE,KACAG,GAAY,MAAQl0E,GAAM,KAChC,EACIA,GAAM,SAAW,UAAY,CAC3B+zE,KACAG,GAAY,MAAQl0E,GAAM,KAChC,CACA,EAMMq0E,GAAY,SAAmBz3M,EAAQ,CACzC,OAAO,OAAOA,GAAW,SAAW,SAAS,cAAcA,CAAM,EAAIA,CACzE,EAKM03M,GAAqB,SAA4Bh0K,EAAQ,CAC3D,IAAIwrI,EAAQ0kC,KACZ1kC,EAAM,aAAa,OAAQxrI,EAAO,MAAQ,QAAU,QAAQ,EAC5DwrI,EAAM,aAAa,YAAaxrI,EAAO,MAAQ,SAAW,WAAW,EAChEA,EAAO,OACVwrI,EAAM,aAAa,aAAc,MAAM,CAE7C,EAKMyoC,GAAW,SAAkBhkM,EAAe,CAC1C,OAAO,iBAAiBA,CAAa,EAAE,YAAc,OACvD0yD,GAAS3gC,GAAY,EAAIitK,EAAY,GAAG,CAE9C,EAOMjoL,GAAO,SAAcgZ,EAAQ,CAE/B,IAAIk0K,EAAsBX,KAC1B,GAAIF,GAAS,EAAI,CACf/wM,GAAM,6CAA6C,EACnD,MACD,CACD,IAAIqN,EAAY,SAAS,cAAc,KAAK,EAC5CA,EAAU,UAAYs/L,EAAY,UAC9BiF,GACFvxI,GAAShzD,EAAWs/L,EAAY,eAAe,CAAC,EAElD6C,GAAaniM,EAAW2jM,EAAS,EACjC,IAAIrjM,GAAgB8jM,GAAU/zK,EAAO,MAAM,EAC3C/vB,GAAc,YAAYN,CAAS,EACnCqkM,GAAmBh0K,CAAM,EACzBi0K,GAAShkM,EAAa,EACtByjM,IACJ,EAMMS,GAAuB,SAA8BC,EAAO93M,EAAQ,CAElE83M,aAAiB,YACnB93M,EAAO,YAAY83M,CAAK,EAIjBlyI,EAAQkyI,CAAK,IAAM,SAC1BC,GAAaD,EAAO93M,CAAM,EAInB83M,GACPtC,GAAax1M,EAAQ83M,CAAK,CAEhC,EAMMC,GAAe,SAAsBD,EAAO93M,EAAQ,CAElD83M,EAAM,OACRE,GAAiBh4M,EAAQ83M,CAAK,EAK9BtC,GAAax1M,EAAQ83M,EAAM,SAAU,EAE3C,EAMME,GAAmB,SAA0Bh4M,EAAQ8c,EAAM,CAE7D,GADA9c,EAAO,YAAc,GACjB,KAAK8c,EACP,QAAS1Y,EAAI,EAAIA,KAAK0Y,EAAO1Y,IAC3BpE,EAAO,YAAY8c,EAAK1Y,CAAC,EAAE,UAAU,EAAI,CAAC,OAG5CpE,EAAO,YAAY8c,EAAK,UAAU,EAAI,CAAC,CAE7C,EAKMm7L,GAAoB,UAAY,CAElC,GAAIlB,GAAS,EACX,MAAO,GAET,IAAIpvC,EAAS,SAAS,cAAc,KAAK,EAGzC,OAAI,OAAOA,EAAO,MAAM,gBAAoB,IACnC,qBAIL,OAAOA,EAAO,MAAM,UAAc,IAC7B,eAEF,EACX,IAMMuwC,GAAgB,SAAuBv0I,EAAUjgC,EAAQ,CAC3D,IAAIy0K,EAAU1D,KACV2D,GAAS5D,KACT,CAAC2D,GAAW,CAACC,KAKb,CAAC10K,EAAO,mBAAqB,CAACA,EAAO,gBAAkB,CAACA,EAAO,iBACjE+rB,GAAK0oJ,CAAO,EAEZpnL,GAAKonL,CAAO,EAIdzC,GAAiByC,EAASz0K,EAAQ,SAAS,EAG3C20K,GAAcF,EAASC,GAAQ10K,CAAM,EAGrC8xK,GAAa4C,GAAQ10K,EAAO,YAAc,EAAE,EAC5CgyK,GAAiB0C,GAAQ10K,EAAQ,QAAQ,EAC7C,EAOE,SAAS20K,GAAcF,EAASC,EAAQ10K,EAAQ,CAC9C,IAAI40K,EAAgBlE,KAChBmE,GAAajE,KACbkE,GAAenE,KACf,CAACiE,GAAiB,CAACC,IAAc,CAACC,KAKtCryD,GAAamyD,EAAe,UAAW50K,CAAM,EAC7CyiH,GAAaoyD,GAAY,OAAQ70K,CAAM,EACvCyiH,GAAaqyD,GAAc,SAAU90K,CAAM,EAC3C+0K,GAAqBH,EAAeC,GAAYC,GAAc90K,CAAM,EAChEA,EAAO,iBACLA,EAAO,OACTy0K,EAAQ,aAAaK,GAAcF,CAAa,EAChDH,EAAQ,aAAaI,GAAYD,CAAa,IAE9CH,EAAQ,aAAaK,GAAcJ,CAAM,EACzCD,EAAQ,aAAaI,GAAYH,CAAM,EACvCD,EAAQ,aAAaG,EAAeF,CAAM,IAG/C,CAQD,SAASK,GAAqBH,EAAeC,EAAYC,EAAc90K,EAAQ,CAC7E,GAAI,CAACA,EAAO,eAAgB,CAC1BgjC,GAAY,CAAC4xI,EAAeC,EAAYC,CAAY,EAAG7F,EAAY,MAAM,EACzE,MACD,CACDtsI,GAAS,CAACiyI,EAAeC,EAAYC,CAAY,EAAG7F,EAAY,MAAM,EAGlEjvK,EAAO,qBACT40K,EAAc,MAAM,gBAAkB50K,EAAO,mBAC7C2iC,GAASiyI,EAAe3F,EAAY,iBAAiB,CAAC,GAEpDjvK,EAAO,kBACT60K,EAAW,MAAM,gBAAkB70K,EAAO,gBAC1C2iC,GAASkyI,EAAY5F,EAAY,iBAAiB,CAAC,GAEjDjvK,EAAO,oBACT80K,EAAa,MAAM,gBAAkB90K,EAAO,kBAC5C2iC,GAASmyI,EAAc7F,EAAY,iBAAiB,CAAC,EAExD,CAOD,SAASxsD,GAAakU,EAAQq+C,EAAYh1K,EAAQ,CAChD,IAAIi1K,EAAyD3oD,GAAsB0oD,CAAU,EAC7Fj+K,GAAO4/H,EAAQ32H,EAAO,OAAO,OAAOi1K,EAAY,QAAQ,CAAC,EAAG,cAAc,EAC1EnD,GAAan7C,EAAQ32H,EAAO,GAAG,OAAOg1K,EAAY,YAAY,CAAC,GAAK,EAAE,EACtEr+C,EAAO,aAAa,aAAc32H,EAAO,GAAG,OAAOg1K,EAAY,iBAAiB,CAAC,GAAK,EAAE,EAGxFr+C,EAAO,UAAYs4C,EAAY+F,CAAU,EACzChD,GAAiBr7C,EAAQ32H,EAAQ,GAAG,OAAOg1K,EAAY,QAAQ,CAAC,CACjE,CAMD,IAAIE,GAAoB,SAA2Bj1I,EAAUjgC,EAAQ,CACnE,IAAI0qC,EAAcwmI,KACbxmI,IAGLonI,GAAapnI,EAAa1qC,EAAO,iBAAmB,EAAE,EAGtDgyK,GAAiBtnI,EAAa1qC,EAAQ,aAAa,EACnDjJ,GAAO2zC,EAAa1qC,EAAO,eAAe,EAC1C0qC,EAAY,aAAa,aAAc1qC,EAAO,sBAAwB,EAAE,EAC5E,EAMMm1K,GAAkB,SAAyBl1I,EAAUjgC,EAAQ,CAC/D,IAAIrwB,EAAYqyB,KACXryB,IAGLylM,GAAoBzlM,EAAWqwB,EAAO,QAAQ,EAC9Cq1K,GAAoB1lM,EAAWqwB,EAAO,QAAQ,EAC9Cs1K,GAAgB3lM,EAAWqwB,EAAO,IAAI,EAGtCgyK,GAAiBriM,EAAWqwB,EAAQ,WAAW,EACnD,EAME,SAASo1K,GAAoBzlM,EAAW24D,EAAU,CAC5C,OAAOA,GAAa,SACtB34D,EAAU,MAAM,WAAa24D,EACnBA,GACV3F,GAAS,CAAC,SAAS,gBAAiB,SAAS,IAAI,EAAGssI,EAAY,aAAa,CAAC,CAEjF,CAMD,SAASoG,GAAoB1lM,EAAWxC,EAAU,CAC3CA,IAGDA,KAAY8hM,EACdtsI,GAAShzD,EAAWs/L,EAAY9hM,CAAQ,CAAC,GAEzC48F,GAAK,+DAA+D,EACpEpnC,GAAShzD,EAAWs/L,EAAY,MAAM,GAEzC,CAMD,SAASqG,GAAgB3lM,EAAW4lM,EAAM,CACnCA,GAGL5yI,GAAShzD,EAAWs/L,EAAY,QAAQ,OAAOsG,CAAI,CAAC,CAAC,CACtD,CAYD,IAAIC,GAAe,CACjB,YAAa,IAAI,QACjB,SAAU,IAAI,OAClB,EAGMC,GAAe,CAAC,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,UAAU,EAMnFC,GAAc,SAAqBz1I,EAAUjgC,EAAQ,CACvD,IAAIwrI,EAAQ0kC,KACZ,GAAK1kC,EAGL,KAAImqC,GAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACnD21I,GAAW,CAACD,IAAe31K,EAAO,QAAU21K,GAAY,MAC5DF,GAAa,QAAQ,SAAUvD,GAAY,CACzC,IAAI2D,GAAiBxD,GAAsB7mC,EAAOyjC,EAAYiD,EAAU,CAAC,EACpE2D,KAKLC,GAAc5D,GAAYlyK,EAAO,eAAe,EAGhD61K,GAAe,UAAY5G,EAAYiD,EAAU,EAC7C0D,IACF7pJ,GAAK8pJ,EAAc,EAE3B,CAAK,EACG71K,EAAO,QACL41K,IACFG,GAAU/1K,CAAM,EAGlBg2K,GAAeh2K,CAAM,GAE3B,EAKM+1K,GAAY,SAAmB/1K,EAAQ,CACzC,GAAKA,EAAO,MAGZ,IAAI,CAACi2K,GAAgBj2K,EAAO,KAAK,EAAG,CAClC19B,GAAM,sCAAsC,OAAO,OAAO,KAAK2zM,EAAe,EAAE,KAAK,KAAK,EAAG,SAAU,EAAE,OAAOj2K,EAAO,MAAO,GAAI,CAAC,EACnI,MACD,CACD,IAAI61K,EAAiBK,GAAkBl2K,EAAO,KAAK,EAC/Cx7B,EAAQyxM,GAAgBj2K,EAAO,KAAK,EAAE61K,EAAgB71K,CAAM,EAChE3S,GAAKwoL,CAAc,EAGf71K,EAAO,gBACT,WAAW,UAAY,CACrBmyK,GAAW3tM,CAAK,CACxB,CAAO,EAEP,EAKM2xM,GAAmB,SAA0B3xM,EAAO,CACtD,QAAS9D,EAAI,EAAGA,EAAI8D,EAAM,WAAW,OAAQ9D,IAAK,CAChD,IAAI01M,EAAW5xM,EAAM,WAAW9D,CAAC,EAAE,KAC9B,CAAC,KAAM,OAAQ,QAAS,OAAO,EAAE,SAAS01M,CAAQ,GACrD5xM,EAAM,gBAAgB4xM,CAAQ,CAEjC,CACL,EAMMN,GAAgB,SAAuB5D,EAAYmE,EAAiB,CACtE,IAAI7xM,EAAQytM,GAAW/B,GAAU,EAAEgC,CAAU,EAC7C,GAAK1tM,EAGL,CAAA2xM,GAAiB3xM,CAAK,EACtB,QAASue,MAAQszL,EACf7xM,EAAM,aAAaue,GAAMszL,EAAgBtzL,EAAI,CAAC,EAEpD,EAKMizL,GAAiB,SAAwBh2K,EAAQ,CACnD,IAAI61K,EAAiBK,GAAkBl2K,EAAO,KAAK,EAC/CkiC,EAAQliC,EAAO,WAAW,IAAM,UAClC2iC,GAASkzI,EAAgB71K,EAAO,YAAY,KAAK,CAEvD,EAMMs2K,GAAsB,SAA6B9xM,EAAOw7B,EAAQ,EAChE,CAACx7B,EAAM,aAAew7B,EAAO,oBAC/Bx7B,EAAM,YAAcw7B,EAAO,iBAEjC,EAOMu2K,GAAgB,SAAuB/xM,EAAOgyM,EAAWx2K,EAAQ,CACnE,GAAIA,EAAO,WAAY,CACrB,IAAIu3B,GAAQ,SAAS,cAAc,OAAO,EACtCk/I,GAAaxH,EAAY,aAAa,EAC1C13I,GAAM,aAAa,MAAO/yD,EAAM,EAAE,EAClC+yD,GAAM,UAAYk/I,GACdv0I,EAAQliC,EAAO,WAAW,IAAM,UAClC2iC,GAASpL,GAAOv3B,EAAO,YAAY,UAAU,EAE/Cu3B,GAAM,UAAYv3B,EAAO,WACzBw2K,EAAU,sBAAsB,cAAej/I,EAAK,CACrD,CACL,EAMM2+I,GAAoB,SAA2BQ,EAAW,CAC5D,OAAOrE,GAAsBnC,KAAYjB,EAAYyH,CAAS,GAAKzH,EAAY,KAAK,CACxF,EAMM0H,GAAwB,SAA+BnyM,EAAO6sF,EAAY,CACxE,CAAC,SAAU,QAAQ,EAAE,SAASnvB,EAAQmvB,CAAU,CAAC,EACnD7sF,EAAM,MAAQ,GAAG,OAAO6sF,CAAU,EACxBy+G,GAAUz+G,CAAU,GAC9B0Y,GAAK,iFAAwF,OAAO7nC,EAAQmvB,CAAU,EAAG,GAAI,CAAC,CAEpI,EAGM4kH,GAAkB,GAOtBA,GAAgB,KAAOA,GAAgB,MAAQA,GAAgB,SAAWA,GAAgB,OAASA,GAAgB,IAAMA,GAAgB,IAAMA,GAAgB,OAASA,GAAgB,KAAOA,GAAgB,gBAAgB,EAAIA,GAAgB,KAAOA,GAAgB,KAAOA,GAAgB,MAAQ,SAAUzxM,EAAOw7B,EAAQ,CAChU,OAAA22K,GAAsBnyM,EAAOw7B,EAAO,UAAU,EAC9Cu2K,GAAc/xM,EAAOA,EAAOw7B,CAAM,EAClCs2K,GAAoB9xM,EAAOw7B,CAAM,EACjCx7B,EAAM,KAAOw7B,EAAO,MACbx7B,CACX,EAOEyxM,GAAgB,KAAO,SAAUzxM,EAAOw7B,EAAQ,CAC9C,OAAAu2K,GAAc/xM,EAAOA,EAAOw7B,CAAM,EAClCs2K,GAAoB9xM,EAAOw7B,CAAM,EAC1Bx7B,CACX,EAOEyxM,GAAgB,MAAQ,SAAUv2E,EAAO1/F,EAAQ,CAC/C,IAAI42K,EAAal3E,EAAM,cAAc,OAAO,EACxCk0E,EAAcl0E,EAAM,cAAc,QAAQ,EAC9C,OAAAi3E,GAAsBC,EAAY52K,EAAO,UAAU,EACnD42K,EAAW,KAAO52K,EAAO,MACzB22K,GAAsB/C,EAAa5zK,EAAO,UAAU,EACpDu2K,GAAcK,EAAYl3E,EAAO1/F,CAAM,EAChC0/F,CACX,EAOEu2E,GAAgB,OAAS,SAAUp7L,EAAQmlB,EAAQ,CAEjD,GADAnlB,EAAO,YAAc,GACjBmlB,EAAO,iBAAkB,CAC3B,IAAI54B,EAAc,SAAS,cAAc,QAAQ,EACjD0qM,GAAa1qM,EAAa44B,EAAO,gBAAgB,EACjD54B,EAAY,MAAQ,GACpBA,EAAY,SAAW,GACvBA,EAAY,SAAW,GACvByT,EAAO,YAAYzT,CAAW,CAC/B,CACD,OAAAmvM,GAAc17L,EAAQA,EAAQmlB,CAAM,EAC7BnlB,CACX,EAMEo7L,GAAgB,MAAQ,SAAUY,EAAO,CACvC,OAAAA,EAAM,YAAc,GACbA,CACX,EAOEZ,GAAgB,SAAW,SAAUa,EAAmB92K,EAAQ,CAC9D,IAAI6zK,EAAW5B,GAAW/B,GAAU,EAAE,UAAU,EAChD2D,EAAS,MAAQ,IACjBA,EAAS,QAAU,EAAQ7zK,EAAO,WAClC,IAAIu3B,EAAQu/I,EAAkB,cAAc,MAAM,EAClD,OAAAhF,GAAav6I,EAAOv3B,EAAO,gBAAgB,EACpC6zK,CACX,EAOEoC,GAAgB,SAAW,SAAUnC,EAAU9zK,EAAQ,CACrD22K,GAAsB7C,EAAU9zK,EAAO,UAAU,EACjDs2K,GAAoBxC,EAAU9zK,CAAM,EACpCu2K,GAAczC,EAAUA,EAAU9zK,CAAM,EAMxC,IAAI+2K,EAAY,SAAmB73L,GAAI,CACrC,OAAO,SAAS,OAAO,iBAAiBA,EAAE,EAAE,UAAU,EAAI,SAAS,OAAO,iBAAiBA,EAAE,EAAE,WAAW,CAChH,EAGI,kBAAW,UAAY,CAErB,GAAI,qBAAsB,OAAQ,CAChC,IAAI83L,EAAoB,SAAS,OAAO,iBAAiB9G,GAAU,GAAE,KAAK,EACtE+G,GAAwB,UAAiC,CAE3D,GAAK,SAAS,KAAK,SAASnD,CAAQ,EAGpC,KAAIoD,GAAgBpD,EAAS,YAAciD,EAAUjD,CAAQ,EACzDoD,GAAgBF,EAClB9G,GAAQ,EAAG,MAAM,MAAQ,GAAG,OAAOgH,GAAe,IAAI,EAEtD5E,GAAoBpC,GAAU,EAAE,QAASlwK,EAAO,KAAK,EAEjE,EACQ,IAAI,iBAAiBi3K,EAAqB,EAAE,QAAQnD,EAAU,CAC5D,WAAY,GACZ,gBAAiB,CAAC,OAAO,CACnC,CAAS,CACF,CACP,CAAK,EACMA,CACX,EAME,IAAIqD,GAAgB,SAAuBl3I,EAAUjgC,EAAQ,CAC3D,IAAIo3K,EAAgB9G,KACf8G,IAGL7E,GAAyB6E,CAAa,EACtCpF,GAAiBoF,EAAep3K,EAAQ,eAAe,EAGnDA,EAAO,MACTm0K,GAAqBn0K,EAAO,KAAMo3K,CAAa,EAC/C/pL,GAAK+pL,EAAe,OAAO,GAIpBp3K,EAAO,MACdo3K,EAAc,YAAcp3K,EAAO,KACnC3S,GAAK+pL,EAAe,OAAO,GAK3BrrJ,GAAKqrJ,CAAa,EAEpB1B,GAAYz1I,EAAUjgC,CAAM,EAChC,EAMMq3K,GAAe,SAAsBp3I,EAAUjgC,EAAQ,CACzD,IAAIs3K,EAAStG,KACRsG,IAGL/E,GAAyB+E,CAAM,EAC/BvgL,GAAOugL,EAAQt3K,EAAO,OAAQ,OAAO,EACjCA,EAAO,QACTm0K,GAAqBn0K,EAAO,OAAQs3K,CAAM,EAI5CtF,GAAiBsF,EAAQt3K,EAAQ,QAAQ,EAC7C,EAMMu3K,GAAa,SAAoBt3I,EAAUjgC,EAAQ,CACrD,IAAI21K,EAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACnDmvI,GAAOe,KACX,GAAKf,GAKL,IAAIuG,GAAe31K,EAAO,OAAS21K,EAAY,KAAM,CAEnD6B,GAAWpI,GAAMpvK,CAAM,EACvBy3K,GAAYrI,GAAMpvK,CAAM,EACxB,MACD,CACD,GAAI,CAACA,EAAO,MAAQ,CAACA,EAAO,SAAU,CACpC+rB,GAAKqjJ,EAAI,EACT,MACD,CACD,GAAIpvK,EAAO,MAAQ,OAAO,KAAKmvK,EAAS,EAAE,QAAQnvK,EAAO,IAAI,IAAM,GAAI,CACrE19B,GAAM,oFAA+F,OAAO09B,EAAO,KAAM,GAAI,CAAC,EAC9H+rB,GAAKqjJ,EAAI,EACT,MACD,CACD/hL,GAAK+hL,EAAI,EAGToI,GAAWpI,GAAMpvK,CAAM,EACvBy3K,GAAYrI,GAAMpvK,CAAM,EAGxB2iC,GAASysI,GAAMpvK,EAAO,WAAaA,EAAO,UAAU,IAAI,EAC5D,EAMMy3K,GAAc,SAAqBrI,EAAMpvK,EAAQ,CACnD,QAAS1lB,EAAK,EAAGk8C,GAAkB,OAAO,QAAQ24I,EAAS,EAAG70L,EAAKk8C,GAAgB,OAAQl8C,IAAM,CAC/F,IAAIo9L,GAAqBlZ,EAAehoI,GAAgBl8C,CAAE,EAAG,CAAC,EAC5Dq9L,GAAWD,GAAmB,CAAC,EAC/BE,GAAgBF,GAAmB,CAAC,EAClC13K,EAAO,OAAS23K,IAClB30I,GAAYosI,EAAMwI,EAAa,CAElC,CACDj1I,GAASysI,EAAMpvK,EAAO,MAAQmvK,GAAUnvK,EAAO,IAAI,CAAC,EAGpD63K,GAASzI,EAAMpvK,CAAM,EAGrB83K,KAGA9F,GAAiB5C,EAAMpvK,EAAQ,MAAM,CACzC,EAGM83K,GAAmC,UAA4C,CACjF,IAAItsC,EAAQ0kC,KACZ,GAAK1kC,EAML,QAHIusC,EAAuB,OAAO,iBAAiBvsC,CAAK,EAAE,iBAAiB,kBAAkB,EAEzFwsC,EAAmBxsC,EAAM,iBAAiB,0DAA0D,EAC/F9qK,GAAI,EAAGA,GAAIs3M,EAAiB,OAAQt3M,KAC3Cs3M,EAAiBt3M,EAAC,EAAE,MAAM,gBAAkBq3M,CAElD,EACME,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,EAClBC,GAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhBV,GAAa,SAAoBpI,EAAMpvK,EAAQ,CACjD,GAAI,GAACA,EAAO,MAAQ,CAACA,EAAO,UAG5B,KAAIm4K,EAAa/I,EAAK,UAClBgJ,GAAa,GACjB,GAAIp4K,EAAO,SACTo4K,GAAaC,GAAYr4K,EAAO,QAAQ,UAC/BA,EAAO,OAAS,UACzBo4K,GAAaH,GACbE,EAAaA,EAAW,QAAQ,gBAAiB,EAAE,UAC1Cn4K,EAAO,OAAS,QACzBo4K,GAAaF,WACJl4K,EAAO,KAAM,CACtB,IAAIs4K,GAAkB,CACpB,SAAU,IACV,QAAS,IACT,KAAM,GACd,EACMF,GAAaC,GAAYC,GAAgBt4K,EAAO,IAAI,CAAC,CACtD,CACGm4K,EAAW,KAAI,IAAOC,GAAW,KAAI,GACvCtG,GAAa1C,EAAMgJ,EAAU,EAEnC,EAMMP,GAAW,SAAkBzI,EAAMpvK,EAAQ,CAC7C,GAAKA,EAAO,UAGZ,CAAAovK,EAAK,MAAM,MAAQpvK,EAAO,UAC1BovK,EAAK,MAAM,YAAcpvK,EAAO,UAChC,QAASu4K,EAAM,EAAG3Z,GAAO,CAAC,0BAA2B,2BAA4B,0BAA2B,0BAA0B,EAAG2Z,EAAM3Z,GAAK,OAAQ2Z,IAAO,CACjK,IAAIz3L,GAAM89K,GAAK2Z,CAAG,EAClB/F,GAASpD,EAAMtuL,GAAK,mBAAoBkf,EAAO,SAAS,CACzD,CACDwyK,GAASpD,EAAM,sBAAuB,eAAgBpvK,EAAO,SAAS,EAC1E,EAMMq4K,GAAc,SAAqB12M,EAAS,CAC9C,MAAO,eAAgB,OAAOstM,EAAY,cAAc,EAAG,IAAK,EAAE,OAAOttM,EAAS,QAAQ,CAC9F,EAMM62M,GAAc,SAAqBv4I,EAAUjgC,EAAQ,CACvD,IAAIy4K,EAAQlI,KACZ,GAAKkI,EAGL,IAAI,CAACz4K,EAAO,SAAU,CACpB+rB,GAAK0sJ,CAAK,EACV,MACD,CACDprL,GAAKorL,EAAO,EAAE,EAGdA,EAAM,aAAa,MAAOz4K,EAAO,QAAQ,EACzCy4K,EAAM,aAAa,MAAOz4K,EAAO,UAAY,EAAE,EAG/CsyK,GAAoBmG,EAAO,QAASz4K,EAAO,UAAU,EACrDsyK,GAAoBmG,EAAO,SAAUz4K,EAAO,WAAW,EAGvDy4K,EAAM,UAAYxJ,EAAY,MAC9B+C,GAAiByG,EAAOz4K,EAAQ,OAAO,EAC3C,EAMM04K,GAAc,SAAqBz4I,EAAUjgC,EAAQ,CACvD,IAAIrwB,EAAYqyB,KACZwpI,GAAQ0kC,KACZ,GAAI,GAACvgM,GAAa,CAAC67J,IAMnB,IAAIxrI,EAAO,MAAO,CAChBsyK,GAAoB3iM,EAAW,QAASqwB,EAAO,KAAK,EACpDwrI,GAAM,MAAM,MAAQ,OACpB,IAAIkpC,GAAS5D,KACb4D,IAAUlpC,GAAM,aAAakpC,GAAQvE,GAAS,EACpD,MACMmC,GAAoB9mC,GAAO,QAASxrI,EAAO,KAAK,EAIlDsyK,GAAoB9mC,GAAO,UAAWxrI,EAAO,OAAO,EAGhDA,EAAO,QACTwrI,GAAM,MAAM,MAAQxrI,EAAO,OAIzBA,EAAO,aACTwrI,GAAM,MAAM,WAAaxrI,EAAO,YAElC+rB,GAAK0kJ,GAAoB,CAAE,EAG3BkI,GAAantC,GAAOxrI,CAAM,EAC9B,EAMM24K,GAAe,SAAoBntC,EAAOxrI,EAAQ,CACpD,IAAI44K,EAAY54K,EAAO,WAAa,GAEpCwrI,EAAM,UAAY,GAAG,OAAOyjC,EAAY,MAAO,GAAG,EAAE,OAAO0C,GAAYnmC,CAAK,EAAIotC,EAAU,MAAQ,EAAE,EAChG54K,EAAO,OACT2iC,GAAS,CAAC,SAAS,gBAAiB,SAAS,IAAI,EAAGssI,EAAY,aAAa,CAAC,EAC9EtsI,GAAS6oG,EAAOyjC,EAAY,KAAK,GAEjCtsI,GAAS6oG,EAAOyjC,EAAY,KAAK,EAInC+C,GAAiBxmC,EAAOxrI,EAAQ,OAAO,EACnC,OAAOA,EAAO,aAAgB,UAChC2iC,GAAS6oG,EAAOxrI,EAAO,WAAW,EAIhCA,EAAO,MACT2iC,GAAS6oG,EAAOyjC,EAAY,QAAQ,OAAOjvK,EAAO,IAAI,CAAC,CAAC,CAE9D,EAMM64K,GAAsB,SAA6B54I,EAAUjgC,EAAQ,CACvE,IAAI84K,EAAyBtI,KAC7B,GAAKsI,EAGL,KAAIC,GAAgB/4K,EAAO,cACzBg5K,GAAsBh5K,EAAO,oBAC/B,GAAI,CAAC+4K,IAAiBA,GAAc,SAAW,GAAKC,KAAwB,OAAW,CACrFjtJ,GAAK+sJ,CAAsB,EAC3B,MACD,CACDzrL,GAAKyrL,CAAsB,EAC3BA,EAAuB,YAAc,GACjCE,IAAuBD,GAAc,QACvChvG,GAAK,uIAA4I,EAEnJgvG,GAAc,QAAQ,SAAUp0D,GAAM76I,GAAO,CAC3C,IAAImvM,GAASC,GAAkBv0D,EAAI,EAKnC,GAJAm0D,EAAuB,YAAYG,EAAM,EACrCnvM,KAAUkvM,IACZr2I,GAASs2I,GAAQhK,EAAY,sBAAsB,CAAC,EAElDnlM,KAAUivM,GAAc,OAAS,EAAG,CACtC,IAAII,GAASC,GAAkBp5K,CAAM,EACrC84K,EAAuB,YAAYK,EAAM,CAC1C,CACP,CAAK,EACL,EAMMD,GAAoB,SAA2Bv0D,EAAM,CACvD,IAAIs0D,EAAS,SAAS,cAAc,IAAI,EACxC,OAAAt2I,GAASs2I,EAAQhK,EAAY,eAAe,CAAC,EAC7C6C,GAAamH,EAAQt0D,CAAI,EAClBs0D,CACX,EAMMG,GAAoB,SAA2Bp5K,EAAQ,CACzD,IAAIm5K,EAAS,SAAS,cAAc,IAAI,EACxC,OAAAx2I,GAASw2I,EAAQlK,EAAY,oBAAoB,CAAC,EAC9CjvK,EAAO,uBACTsyK,GAAoB6G,EAAQ,QAASn5K,EAAO,qBAAqB,EAE5Dm5K,CACX,EAMME,GAAc,SAAqBp5I,EAAUjgC,EAAQ,CACvD,IAAIqC,EAAQguK,KACPhuK,IAGLkwK,GAAyBlwK,CAAK,EAC9BtL,GAAOsL,EAAOrC,EAAO,OAASA,EAAO,UAAW,OAAO,EACnDA,EAAO,OACTm0K,GAAqBn0K,EAAO,MAAOqC,CAAK,EAEtCrC,EAAO,YACTqC,EAAM,UAAYrC,EAAO,WAI3BgyK,GAAiB3vK,EAAOrC,EAAQ,OAAO,EAC3C,EAMM5wB,GAAS,SAAgB6wD,EAAUjgC,EAAQ,CAC7C04K,GAAYz4I,EAAUjgC,CAAM,EAC5Bm1K,GAAgBl1I,EAAUjgC,CAAM,EAChC64K,GAAoB54I,EAAUjgC,CAAM,EACpCu3K,GAAWt3I,EAAUjgC,CAAM,EAC3Bw4K,GAAYv4I,EAAUjgC,CAAM,EAC5Bq5K,GAAYp5I,EAAUjgC,CAAM,EAC5Bk1K,GAAkBj1I,EAAUjgC,CAAM,EAClCm3K,GAAcl3I,EAAUjgC,CAAM,EAC9Bw0K,GAAcv0I,EAAUjgC,CAAM,EAC9Bq3K,GAAap3I,EAAUjgC,CAAM,EAC7B,IAAIwrI,EAAQ0kC,KACR,OAAOlwK,EAAO,WAAc,YAAcwrI,GAC5CxrI,EAAO,UAAUwrI,CAAK,CAE5B,EAKM8tC,GAAY,UAAqB,CACnC,OAAO3H,GAAYzB,GAAQ,CAAE,CACjC,EAKMqJ,GAAe,UAAwB,CACzC,IAAIC,EACJ,OAAQA,EAAwB9I,GAAkB,KAAM,MAAQ8I,IAA0B,OAAS,OAASA,EAAsB,MAAK,CAC3I,EAKMC,GAAY,UAAqB,CACnC,IAAIC,EACJ,OAAQA,EAAqB9I,GAAe,KAAM,MAAQ8I,IAAuB,OAAS,OAASA,EAAmB,MAAK,CAC/H,EAKMC,GAAc,UAAuB,CACvC,IAAIC,EACJ,OAAQA,EAAuBjJ,GAAiB,KAAM,MAAQiJ,IAAyB,OAAS,OAASA,EAAqB,MAAK,CACvI,EAKMC,GAAgB,OAAO,OAAO,CAChC,OAAQ,SACR,SAAU,WACV,MAAO,QACP,IAAK,MACL,MAAO,OACX,CAAG,EAKGC,GAAuB,SAA8BlL,EAAa,CAChEA,EAAY,eAAiBA,EAAY,sBAC3CA,EAAY,cAAc,oBAAoB,UAAWA,EAAY,eAAgB,CACnF,QAASA,EAAY,sBAC7B,CAAO,EACDA,EAAY,oBAAsB,GAExC,EAOMmL,GAAoB,SAA2BnL,EAAa+G,EAAaqE,EAAa,CACxFF,GAAqBlL,CAAW,EAC3B+G,EAAY,QACf/G,EAAY,eAAiB,SAAU5+L,GAAG,CACxC,OAAOiqM,GAAetE,EAAa3lM,GAAGgqM,CAAW,CACzD,EACMpL,EAAY,cAAgB+G,EAAY,uBAAyB,OAASzF,GAAQ,EAClFtB,EAAY,uBAAyB+G,EAAY,uBACjD/G,EAAY,cAAc,iBAAiB,UAAWA,EAAY,eAAgB,CAChF,QAASA,EAAY,sBAC7B,CAAO,EACDA,EAAY,oBAAsB,GAExC,EAMMsL,GAAW,SAAkBpwM,EAAOw7E,EAAW,CACjD,IAAI60H,EACAC,GAAoBhJ,KAExB,GAAIgJ,GAAkB,OAAQ,CAC5BtwM,EAAQA,EAAQw7E,EAGZx7E,IAAUswM,GAAkB,OAC9BtwM,EAAQ,EAGCA,IAAU,KACnBA,EAAQswM,GAAkB,OAAS,GAErCA,GAAkBtwM,CAAK,EAAE,QACzB,MACD,EAEAqwM,EAAgBjK,GAAQ,KAAQ,MAAQiK,IAAkB,QAAUA,EAAc,OACvF,EACME,GAAsB,CAAC,aAAc,WAAW,EAChDC,GAA0B,CAAC,YAAa,SAAS,EAOjDL,GAAiB,SAAwBtE,EAAaj5M,EAAOs9M,EAAa,CACvErE,IAQDj5M,EAAM,aAAeA,EAAM,UAAY,MAGvCi5M,EAAY,wBACdj5M,EAAM,gBAAe,EAInBA,EAAM,MAAQ,QAChB69M,GAAY79M,EAAOi5M,CAAW,EAIvBj5M,EAAM,MAAQ,MACrB89M,GAAU99M,CAAK,EAIR,CAAE,EAAC,OAAO29M,GAAqBC,EAAuB,EAAE,SAAS59M,EAAM,GAAG,EACjF+9M,EAAa/9M,EAAM,GAAG,EAIfA,EAAM,MAAQ,UACrBg+M,EAAUh+M,EAAOi5M,EAAaqE,CAAW,GAE/C,EAMMO,GAAc,SAAqB79M,EAAOi5M,EAAa,CAEzD,GAAKhG,GAAegG,EAAY,aAAa,EAG7C,KAAInxM,EAAQytM,GAAW/B,GAAU,EAAEyF,EAAY,KAAK,EACpD,GAAIj5M,EAAM,QAAU8H,GAAS9H,EAAM,kBAAkB,aAAeA,EAAM,OAAO,YAAc8H,EAAM,UAAW,CAC9G,GAAI,CAAC,WAAY,MAAM,EAAE,SAASmxM,EAAY,KAAK,EACjD,OAEF4D,KACA78M,EAAM,eAAc,CACrB,EACL,EAKM89M,GAAY,SAAmB99M,EAAO,CAIxC,QAHIuT,EAAgBvT,EAAM,OACtB09M,EAAoBhJ,KACpBuJ,GAAW,GACNj6M,GAAI,EAAGA,GAAI05M,EAAkB,OAAQ15M,KAC5C,GAAIuP,IAAkBmqM,EAAkB15M,EAAC,EAAG,CAC1Ci6M,GAAWj6M,GACX,KACD,CAIEhE,EAAM,SAMTw9M,GAASS,GAAU,EAAE,EALrBT,GAASS,GAAU,CAAC,EAOtBj+M,EAAM,gBAAe,EACrBA,EAAM,eAAc,CACxB,EAKM+9M,EAAe,SAAsBjsM,EAAK,CAC5C,IAAIimM,EAAU1D,KACV6D,EAAgBlE,KAChBmE,GAAajE,KACbkE,GAAenE,KACnB,GAAI,GAAC8D,GAAW,CAACG,GAAiB,CAACC,IAAc,CAACC,IAIlD,KAAI8F,GAAU,CAAChG,EAAeC,GAAYC,EAAY,EACtD,GAAI,WAAS,yBAAyB,aAAe,CAAC8F,GAAQ,SAAS,SAAS,aAAa,GAG7F,KAAIvzL,GAAUgzL,GAAoB,SAAS7rM,CAAG,EAAI,qBAAuB,yBACrEqsM,GAAgB,SAAS,cAC7B,GAAKA,GAGL,SAASn6M,GAAI,EAAGA,GAAI+zM,EAAQ,SAAS,OAAQ/zM,KAAK,CAEhD,GADAm6M,GAAgBA,GAAcxzL,EAAO,EACjC,CAACwzL,GACH,OAEF,GAAIA,cAAyB,mBAAqBlJ,GAAYkJ,EAAa,EACzE,KAEH,CACGA,cAAyB,mBAC3BA,GAAc,MAAK,IAEzB,EAOMH,EAAY,SAAmBh+M,EAAOi5M,EAAaqE,EAAa,CAC9DrK,GAAegG,EAAY,cAAc,IAC3Cj5M,EAAM,eAAc,EACpBs9M,EAAYH,GAAc,GAAG,EAEnC,EAYMiB,EAAiB,CACnB,mBAAoB,IAAI,QACxB,kBAAmB,IAAI,OAC3B,EAOMC,EAAgB,UAAyB,CAC3C,IAAIC,EAAe,MAAM,KAAK,SAAS,KAAK,QAAQ,EACpDA,EAAa,QAAQ,SAAU97L,EAAI,CAC7BA,IAAO8iB,GAAc,GAAI9iB,EAAG,SAAS8iB,GAAY,CAAE,IAGnD9iB,EAAG,aAAa,aAAa,GAC/BA,EAAG,aAAa,4BAA6BA,EAAG,aAAa,aAAa,GAAK,EAAE,EAEnFA,EAAG,aAAa,cAAe,MAAM,EAC3C,CAAK,CACL,EACM+7L,EAAkB,UAA2B,CAC/C,IAAID,EAAe,MAAM,KAAK,SAAS,KAAK,QAAQ,EACpDA,EAAa,QAAQ,SAAU97L,EAAI,CAC7BA,EAAG,aAAa,2BAA2B,GAC7CA,EAAG,aAAa,cAAeA,EAAG,aAAa,2BAA2B,GAAK,EAAE,EACjFA,EAAG,gBAAgB,2BAA2B,GAE9CA,EAAG,gBAAgB,aAAa,CAExC,CAAK,CACL,EAGMg8L,EAAgB,OAAO,OAAW,KAAe,CAAC,CAAC,OAAO,aAM1DC,EAAS,UAAkB,CAC7B,GAAID,GAAiB,CAACx4I,GAAS,SAAS,KAAMusI,EAAY,MAAM,EAAG,CACjE,IAAIpuK,EAAS,SAAS,KAAK,UAC3B,SAAS,KAAK,MAAM,IAAM,GAAG,OAAOA,EAAS,GAAI,IAAI,EACrD8hC,GAAS,SAAS,KAAMssI,EAAY,MAAM,EAC1CmM,IACD,CACL,EAKMA,GAAiB,UAA0B,CAC7C,IAAIzrM,EAAYqyB,KAChB,GAAKryB,EAIL,KAAIimF,EAIJjmF,EAAU,aAAe,SAAUjT,EAAO,CACxCk5F,EAAmBylH,GAAuB3+M,CAAK,CACrD,EAIIiT,EAAU,YAAc,SAAUjT,EAAO,CACnCk5F,IACFl5F,EAAM,eAAc,EACpBA,EAAM,gBAAe,EAE7B,EACA,EAMM2+M,GAAyB,SAAgC3+M,EAAO,CAClE,IAAIJ,EAASI,EAAM,OACfiT,EAAYqyB,KACZo1K,GAAgB9G,KAIpB,MAHI,CAAC3gM,GAAa,CAACynM,IAGfkE,GAAS5+M,CAAK,GAAK6+M,GAAO7+M,CAAK,EAC1B,GAELJ,IAAWqT,GAGX,CAAC+iM,GAAa/iM,CAAS,GAAKrT,aAAkB,aAAeA,EAAO,UAAY,SAEpFA,EAAO,UAAY,YAEnB,EAAEo2M,GAAa0E,EAAa,GAE5BA,GAAc,SAAS96M,CAAM,EAIjC,EAQMg/M,GAAW,SAAkB5+M,EAAO,CACtC,OAAOA,EAAM,SAAWA,EAAM,QAAQ,QAAUA,EAAM,QAAQ,CAAC,EAAE,YAAc,QACnF,EAQM6+M,GAAS,SAAgB7+M,EAAO,CAClC,OAAOA,EAAM,SAAWA,EAAM,QAAQ,OAAS,CACnD,EACM8+M,GAAa,UAAsB,CACrC,GAAI94I,GAAS,SAAS,KAAMusI,EAAY,MAAM,EAAG,CAC/C,IAAIpuK,EAAS,SAAS,SAAS,KAAK,MAAM,IAAK,EAAE,EACjDmiC,GAAY,SAAS,KAAMisI,EAAY,MAAM,EAC7C,SAAS,KAAK,MAAM,IAAM,GAC1B,SAAS,KAAK,UAAYpuK,EAAS,EACpC,CACL,EAQM46K,GAAmB,UAA4B,CACjD,IAAIx5I,EAAY,SAAS,cAAc,KAAK,EAC5CA,EAAU,UAAYgtI,EAAY,mBAAmB,EACrD,SAAS,KAAK,YAAYhtI,CAAS,EACnC,IAAIy5I,EAAiBz5I,EAAU,sBAAuB,EAAC,MAAQA,EAAU,YACzE,gBAAS,KAAK,YAAYA,CAAS,EAC5By5I,CACX,EAMMC,GAAsB,KAKtBC,GAA8B,SAAqCC,EAAqB,CAEtFF,KAAwB,OAIxB,SAAS,KAAK,aAAe,OAAO,aAAeE,IAAwB,YAG7EF,GAAsB,SAAS,OAAO,iBAAiB,SAAS,IAAI,EAAE,iBAAiB,eAAe,CAAC,EACvG,SAAS,KAAK,MAAM,aAAe,GAAG,OAAOA,GAAsBF,KAAoB,IAAI,EAEjG,EACMK,GAAkC,UAA2C,CAC3EH,KAAwB,OAC1B,SAAS,KAAK,MAAM,aAAe,GAAG,OAAOA,GAAqB,IAAI,EACtEA,GAAsB,KAE5B,EAQE,SAASI,GAAyB97I,EAAUtwD,EAAWo/L,EAAaiN,EAAU,CACxEnK,GAAO,EACToK,GAA0Bh8I,EAAU+7I,CAAQ,GAE5ClN,GAAqBC,CAAW,EAAE,KAAK,UAAY,CACjD,OAAOkN,GAA0Bh8I,EAAU+7I,CAAQ,CAC3D,CAAO,EACDlC,GAAqBlL,EAAW,GAK9BsM,GACFvrM,EAAU,aAAa,QAAS,yBAAyB,EACzDA,EAAU,gBAAgB,OAAO,EACjCA,EAAU,UAAY,IAEtBA,EAAU,OAAM,EAEdiiM,GAAO,IACTkK,KACAN,KACAP,KAEFiB,IACD,CAKD,SAASA,IAAoB,CAC3Bl5I,GAAY,CAAC,SAAS,gBAAiB,SAAS,IAAI,EAAG,CAACisI,EAAY,MAAOA,EAAY,aAAa,EAAGA,EAAY,aAAa,EAAGA,EAAY,aAAa,CAAC,CAAC,CAC/J,CAOD,SAASkN,GAAMC,EAAc,CAC3BA,EAAeC,GAAoBD,CAAY,EAC/C,IAAIE,EAAqBxB,EAAe,mBAAmB,IAAI,IAAI,EAC/DkB,EAAWO,GAAkB,IAAI,EACjC,KAAK,kBAEFH,EAAa,cAChBI,GAAsB,IAAI,EAC1BF,EAAmBF,CAAY,GAExBJ,GAETM,EAAmBF,CAAY,CAElC,CACD,IAAIG,GAAoB,SAA2Bt8I,EAAU,CAC3D,IAAIurG,EAAQ0kC,KACZ,GAAI,CAAC1kC,EACH,MAAO,GAET,IAAImqC,EAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACvD,GAAI,CAAC01I,GAAejzI,GAAS8oG,EAAOmqC,EAAY,UAAU,KAAK,EAC7D,MAAO,GAET3yI,GAAYwoG,EAAOmqC,EAAY,UAAU,KAAK,EAC9ChzI,GAAS6oG,EAAOmqC,EAAY,UAAU,KAAK,EAC3C,IAAIrtI,GAAWtmC,KACf,OAAAghC,GAAYsF,GAAUqtI,EAAY,UAAU,QAAQ,EACpDhzI,GAAS2F,GAAUqtI,EAAY,UAAU,QAAQ,EACjD8G,GAAqBx8I,EAAUurG,EAAOmqC,CAAW,EAC1C,EACX,EAKE,SAAS+G,GAAcp6M,EAAO,CAC5B,IAAIo6M,EAAgB5B,EAAe,kBAAkB,IAAI,IAAI,EAC7D0B,GAAsB,IAAI,EACtBE,GAEFA,EAAcp6M,CAAK,CAEtB,CAKD,IAAIk6M,GAAwB,SAA+Bv8I,EAAU,CAC/DA,EAAS,oBACX,OAAOA,EAAS,kBAEXu1I,GAAa,YAAY,IAAIv1I,CAAQ,GACxCA,EAAS,SAAQ,EAGzB,EAMMo8I,GAAsB,SAA6BD,EAAc,CAEnE,OAAI,OAAOA,EAAiB,IACnB,CACL,YAAa,GACb,SAAU,GACV,YAAa,EACrB,EAEW,OAAO,OAAO,CACnB,YAAa,GACb,SAAU,GACV,YAAa,EACd,EAAEA,CAAY,CACnB,EAOMK,GAAuB,SAA8Bx8I,EAAUurG,EAAOmqC,EAAa,CACrF,IAAIhmM,GAAYqyB,KAEZ26K,GAAuBpI,IAAqB5B,GAAgBnnC,CAAK,EACjE,OAAOmqC,EAAY,WAAc,YACnCA,EAAY,UAAUnqC,CAAK,EAEzBmxC,GACFC,GAAa38I,EAAUurG,EAAO77J,GAAWgmM,EAAY,YAAaA,EAAY,QAAQ,EAGtFoG,GAAyB97I,EAAUtwD,GAAWgmM,EAAY,YAAaA,EAAY,QAAQ,CAEjG,EASMiH,GAAe,SAAsB38I,EAAUurG,EAAO77J,EAAWo/L,GAAaiN,GAAU,CACrFzH,KAGL3F,GAAY,+BAAiCmN,GAAyB,KAAK,KAAM97I,EAAUtwD,EAAWo/L,GAAaiN,EAAQ,EAC3HxwC,EAAM,iBAAiB+oC,GAAmB,SAAUvkM,GAAG,CACjDA,GAAE,SAAWw7J,IACfojC,GAAY,+BAA8B,EAC1C,OAAOA,GAAY,+BAE3B,CAAK,EACL,EAMMqN,GAA4B,SAAmCh8I,EAAU+7I,EAAU,CACrF,WAAW,UAAY,CACjB,OAAOA,GAAa,YACtBA,EAAS,KAAK/7I,EAAS,MAAM,EAAC,EAG5BA,EAAS,UACXA,EAAS,SAAQ,CAEzB,CAAK,CACL,EAQM48I,GAAc,SAAqBC,EAAiB,CACtD,IAAItxC,EAAQ0kC,KAKZ,GAJK1kC,GACH,IAAIuxC,GAENvxC,EAAQ0kC,GAAQ,EACZ,EAAC1kC,EAGL,KAAIkpC,EAAS5D,KACTe,GAAO,EACT9lJ,GAAKokJ,GAAO,CAAE,EAEd6M,GAAcxxC,EAAOsxC,CAAe,EAEtCzvL,GAAKqnL,CAAM,EACXlpC,EAAM,aAAa,eAAgB,MAAM,EACzCA,EAAM,aAAa,YAAa,MAAM,EACtCA,EAAM,MAAK,EACf,EAMMwxC,GAAgB,SAAuBxxC,EAAOsxC,EAAiB,CACjE,IAAIrI,EAAU1D,KACV2D,GAAS5D,KACT,CAAC2D,GAAW,CAACC,KAGb,CAACoI,GAAmBnL,GAAYjB,GAAkB,KACpDoM,EAAkBpM,GAAgB,GAEpCrjL,GAAKonL,CAAO,EACRqI,IACF/wJ,GAAK+wJ,CAAe,EACpBpI,GAAO,aAAa,yBAA0BoI,EAAgB,SAAS,EACvErI,EAAQ,aAAaC,GAAQoI,CAAe,GAE9Cn6I,GAAS,CAAC6oG,EAAOipC,CAAO,EAAGxF,EAAY,OAAO,EAClD,EAMMgO,GAA6B,SAAoCh9I,EAAUjgC,EAAQ,CACjFA,EAAO,QAAU,UAAYA,EAAO,QAAU,QAChDk9K,GAAmBj9I,EAAUjgC,CAAM,EAC1B,CAAC,OAAQ,QAAS,SAAU,MAAO,UAAU,EAAE,KAAK,SAAUt/B,EAAG,CAC1E,OAAOA,IAAMs/B,EAAO,KAC1B,CAAK,IAAM4vK,GAAe5vK,EAAO,UAAU,GAAK8vK,GAAU9vK,EAAO,UAAU,KACrE68K,GAAYnM,GAAgB,CAAE,EAC9ByM,GAAiBl9I,EAAUjgC,CAAM,EAEvC,EAOMo9K,GAAgB,SAAuBn9I,EAAU01I,EAAa,CAChE,IAAInxM,EAAQy7D,EAAS,WACrB,GAAI,CAACz7D,EACH,OAAO,KAET,OAAQmxM,EAAY,MAAK,CACvB,IAAK,WACH,OAAO0H,GAAiB74M,CAAK,EAC/B,IAAK,QACH,OAAO84M,GAAc94M,CAAK,EAC5B,IAAK,OACH,OAAO+4M,GAAa/4M,CAAK,EAC3B,QACE,OAAOmxM,EAAY,cAAgBnxM,EAAM,MAAM,KAAM,EAAGA,EAAM,KACjE,CACL,EAMM64M,GAAmB,SAA0B74M,EAAO,CACtD,OAAOA,EAAM,QAAU,EAAI,CAC/B,EAMM84M,GAAgB,SAAuB94M,EAAO,CAChD,OAAOA,EAAM,QAAUA,EAAM,MAAQ,IACzC,EAMM+4M,GAAe,SAAsB/4M,EAAO,CAC9C,OAAOA,EAAM,OAASA,EAAM,MAAM,OAASA,EAAM,aAAa,UAAU,IAAM,KAAOA,EAAM,MAAQA,EAAM,MAAM,CAAC,EAAI,IACxH,EAMM04M,GAAqB,SAA4Bj9I,EAAUjgC,EAAQ,CACrE,IAAIwrI,EAAQ0kC,KACZ,GAAK1kC,EAML,KAAIgyC,GAAsB,SAA6BC,GAAc,CAC/Dz9K,EAAO,QAAU,SACnB09K,GAAsBlyC,EAAOmyC,GAAmBF,EAAY,EAAGz9K,CAAM,EAC5DA,EAAO,QAAU,SAC1B49K,GAAqBpyC,EAAOmyC,GAAmBF,EAAY,EAAGz9K,CAAM,CAE5E,EACQ4vK,GAAe5vK,EAAO,YAAY,GAAK8vK,GAAU9vK,EAAO,YAAY,GACtE68K,GAAYnM,GAAgB,CAAE,EAC9Bb,GAAU7vK,EAAO,YAAY,EAAE,KAAK,SAAUy9K,GAAc,CAC1Dx9I,EAAS,YAAW,EACpBu9I,GAAoBC,EAAY,CACxC,CAAO,GACQv7I,EAAQliC,EAAO,YAAY,IAAM,SAC1Cw9K,GAAoBx9K,EAAO,YAAY,EAEvC19B,GAAM,yEAAyE,OAAO4/D,EAAQliC,EAAO,YAAY,CAAC,CAAC,EAEzH,EAMMm9K,GAAmB,SAA0Bl9I,EAAUjgC,EAAQ,CACjE,IAAIx7B,EAAQy7D,EAAS,WAChBz7D,IAGLunD,GAAKvnD,CAAK,EACVqrM,GAAU7vK,EAAO,UAAU,EAAE,KAAK,SAAUqxD,GAAY,CACtD7sF,EAAM,MAAQw7B,EAAO,QAAU,SAAW,GAAG,OAAO,WAAWqxD,EAAU,GAAK,CAAC,EAAI,GAAG,OAAOA,EAAU,EACvGhkE,GAAK7oB,CAAK,EACVA,EAAM,MAAK,EACXy7D,EAAS,YAAW,CAC1B,CAAK,EAAE,MAAS,SAAUlW,GAAK,CACzBznD,GAAM,gCAAgC,OAAOynD,EAAG,CAAC,EACjDvlD,EAAM,MAAQ,GACd6oB,GAAK7oB,CAAK,EACVA,EAAM,MAAK,EACXy7D,EAAS,YAAW,CAC1B,CAAK,EACL,EAOE,SAASy9I,GAAsBlyC,EAAOiyC,EAAcz9K,EAAQ,CAC1D,IAAInlB,EAASw3L,GAAsB7mC,EAAOyjC,EAAY,MAAM,EAC5D,GAAKp0L,EAQL,KAAIgjM,GAAe,SAAsB17L,GAAQ27L,GAAaC,GAAa,CACzE,IAAI/zM,GAAS,SAAS,cAAc,QAAQ,EAC5CA,GAAO,MAAQ+zM,GACfjM,GAAa9nM,GAAQ8zM,EAAW,EAChC9zM,GAAO,SAAWykF,GAAWsvH,GAAa/9K,EAAO,UAAU,EAC3D7d,GAAO,YAAYnY,EAAM,CAC/B,EACIyzM,EAAa,QAAQ,SAAUO,GAAa,CAC1C,IAAID,GAAcC,GAAY,CAAC,EAC3BF,GAAcE,GAAY,CAAC,EAK/B,GAAI,MAAM,QAAQF,EAAW,EAAG,CAE9B,IAAIG,GAAW,SAAS,cAAc,UAAU,EAChDA,GAAS,MAAQF,GACjBE,GAAS,SAAW,GACpBpjM,EAAO,YAAYojM,EAAQ,EAC3BH,GAAY,QAAQ,SAAUt4K,GAAG,CAC/B,OAAOq4K,GAAaI,GAAUz4K,GAAE,CAAC,EAAGA,GAAE,CAAC,CAAC,CAClD,CAAS,CACT,MAEQq4K,GAAahjM,EAAQijM,GAAaC,EAAW,CAErD,CAAK,EACDljM,EAAO,MAAK,EACb,CAOD,SAAS+iM,GAAqBpyC,EAAOiyC,EAAcz9K,EAAQ,CACzD,IAAI62K,EAAQxE,GAAsB7mC,EAAOyjC,EAAY,KAAK,EAC1D,GAAK4H,EAGL,CAAA4G,EAAa,QAAQ,SAAUO,GAAa,CAC1C,IAAIE,GAAaF,GAAY,CAAC,EAC1BG,GAAaH,GAAY,CAAC,EAC1BI,GAAa,SAAS,cAAc,OAAO,EAC3CC,GAAoB,SAAS,cAAc,OAAO,EACtDD,GAAW,KAAO,QAClBA,GAAW,KAAOnP,EAAY,MAC9BmP,GAAW,MAAQF,GACfzvH,GAAWyvH,GAAYl+K,EAAO,UAAU,IAC1Co+K,GAAW,QAAU,IAEvB,IAAI7mJ,GAAQ,SAAS,cAAc,MAAM,EACzCu6I,GAAav6I,GAAO4mJ,EAAU,EAC9B5mJ,GAAM,UAAY03I,EAAY,MAC9BoP,GAAkB,YAAYD,EAAU,EACxCC,GAAkB,YAAY9mJ,EAAK,EACnCs/I,EAAM,YAAYwH,EAAiB,CACzC,CAAK,EACD,IAAIC,GAASzH,EAAM,iBAAiB,OAAO,EACvCyH,GAAO,QACTA,GAAO,CAAC,EAAE,QAEb,CASD,IAAIX,GAAqB,SAASA,EAAmBF,EAAc,CAEjE,IAAIj9M,EAAS,GACb,OAAIi9M,aAAwB,IAC1BA,EAAa,QAAQ,SAAU5gN,EAAO2R,GAAK,CACzC,IAAI+vM,GAAiB1hN,EACjBqlE,EAAQq8I,EAAc,IAAM,WAE9BA,GAAiBZ,EAAmBY,EAAc,GAEpD/9M,EAAO,KAAK,CAACgO,GAAK+vM,EAAc,CAAC,CACzC,CAAO,EAED,OAAO,KAAKd,CAAY,EAAE,QAAQ,SAAUjvM,EAAK,CAC/C,IAAI+vM,GAAiBd,EAAajvM,CAAG,EACjC0zD,EAAQq8I,EAAc,IAAM,WAE9BA,GAAiBZ,EAAmBY,EAAc,GAEpD/9M,EAAO,KAAK,CAACgO,EAAK+vM,EAAc,CAAC,CACzC,CAAO,EAEI/9M,CACX,EAOMiuF,GAAa,SAAoBsvH,EAAa1sH,EAAY,CAC5D,MAAO,CAAC,CAACA,GAAcA,EAAW,SAAQ,IAAO0sH,EAAY,UACjE,EAEMnlJ,GAAQ,OAKR4lJ,GAA2B,SAAkCv+I,EAAU,CACzE,IAAI01I,EAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACvDA,EAAS,eAAc,EACnB01I,EAAY,MACd8I,GAA6Bx+I,EAAU,SAAS,EAEhDy+I,GAAQz+I,EAAU,EAAI,CAE5B,EAKM0+I,GAAwB,SAA+B1+I,EAAU,CACnE,IAAI01I,EAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACvDA,EAAS,eAAc,EACnB01I,EAAY,uBACd8I,GAA6Bx+I,EAAU,MAAM,EAE7C2+I,GAAK3+I,EAAU,EAAK,CAE1B,EAMM4+I,GAA0B,SAAiC5+I,EAAU+5I,EAAa,CACpF/5I,EAAS,eAAc,EACvB+5I,EAAYH,GAAc,MAAM,CACpC,EAMM4E,GAA+B,SAAsCx+I,EAAUr5D,EAAM,CACvF,IAAI+uM,EAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACvD,GAAI,CAAC01I,EAAY,MAAO,CACtBrzM,GAAM,0EAA4E,OAAOgqJ,GAAsB1lJ,CAAI,CAAC,CAAC,EACrH,MACD,CACD,IAAIpC,GAAQy7D,EAAS,WACjBoxB,GAAa+rH,GAAcn9I,EAAU01I,CAAW,EAChDA,EAAY,eACdmJ,GAAqB7+I,EAAUoxB,GAAYzqF,CAAI,EACtCpC,IAAS,CAACA,GAAM,cAAa,GACtCy7D,EAAS,cAAa,EACtBA,EAAS,sBAAsB01I,EAAY,mBAAqBnxM,GAAM,iBAAiB,GAC9EoC,IAAS,OAClBg4M,GAAK3+I,EAAUoxB,EAAU,EAEzBqtH,GAAQz+I,EAAUoxB,EAAU,CAElC,EAOMytH,GAAuB,SAA8B7+I,EAAUoxB,EAAYzqF,EAAM,CACnF,IAAI+uM,GAAcH,GAAa,YAAY,IAAIv1I,CAAQ,EACvDA,EAAS,aAAY,EACrB,IAAI8+I,GAAoB,QAAQ,QAAS,EAAC,KAAK,UAAY,CACzD,OAAOlP,GAAU8F,GAAY,eAAetkH,EAAYskH,GAAY,iBAAiB,CAAC,CAC5F,CAAK,EACDoJ,GAAkB,KAAK,SAAUC,GAAmB,CAClD/+I,EAAS,cAAa,EACtBA,EAAS,YAAW,EAChB++I,GACF/+I,EAAS,sBAAsB++I,EAAiB,EACvCp4M,IAAS,OAClBg4M,GAAK3+I,EAAUoxB,CAAU,EAEzBqtH,GAAQz+I,EAAUoxB,CAAU,CAEpC,CAAK,CACL,EAMMutH,GAAO,SAAc3+I,EAAUpjE,EAAO,CACxC,IAAI84M,EAAcH,GAAa,YAAY,IAAIv1I,GAAYrH,EAAK,EAIhE,GAHI+8I,EAAY,kBACdkH,GAAYjM,GAAa,CAAE,EAEzB+E,EAAY,QAAS,CACvB11I,EAAS,kBAAoB,GAC7B,IAAIg/I,GAAiB,QAAQ,QAAS,EAAC,KAAK,UAAY,CACtD,OAAOpP,GAAU8F,EAAY,QAAQ94M,EAAO84M,EAAY,iBAAiB,CAAC,CAClF,CAAO,EACDsJ,GAAe,KAAK,SAAUC,GAAc,CACtCA,KAAiB,IACnBj/I,EAAS,YAAW,EACpBu8I,GAAsBv8I,CAAQ,GAE9BA,EAAS,MAAM,CACb,SAAU,GACV,MAAO,OAAOi/I,GAAiB,IAAcriN,EAAQqiN,EACjE,CAAW,CAEX,CAAO,EAAE,MAAS,SAAU58M,GAAO,CAC3B,OAAO68M,GAAWl/I,GAAYrH,GAAOt2D,EAAK,CAClD,CAAO,CACP,MACM29D,EAAS,MAAM,CACb,SAAU,GACV,MAAOpjE,CACf,CAAO,CAEP,EAMMuiN,GAAc,SAAqBn/I,EAAUpjE,EAAO,CACtDojE,EAAS,MAAM,CACb,YAAa,GACb,MAAOpjE,CACb,CAAK,CACL,EAOMsiN,GAAa,SAAoBl/I,EAAU39D,EAAO,CACpD29D,EAAS,cAAc39D,CAAK,CAChC,EAOMo8M,GAAU,SAAiBz+I,EAAUpjE,EAAO,CAC9C,IAAI84M,EAAcH,GAAa,YAAY,IAAIv1I,GAAYrH,EAAK,EAIhE,GAHI+8I,EAAY,qBACdkH,KAEElH,EAAY,WAAY,CAC1B11I,EAAS,uBAAsB,EAC/BA,EAAS,kBAAoB,GAC7B,IAAIo/I,GAAoB,QAAQ,QAAS,EAAC,KAAK,UAAY,CACzD,OAAOxP,GAAU8F,EAAY,WAAW94M,EAAO84M,EAAY,iBAAiB,CAAC,CACrF,CAAO,EACD0J,GAAkB,KAAK,SAAUC,GAAiB,CAC5C3N,GAAYlB,GAAoB,CAAE,GAAK6O,KAAoB,IAC7Dr/I,EAAS,YAAW,EACpBu8I,GAAsBv8I,CAAQ,GAE9Bm/I,GAAYn/I,EAAU,OAAOq/I,GAAoB,IAAcziN,EAAQyiN,EAAe,CAEhG,CAAO,EAAE,MAAS,SAAUh9M,GAAO,CAC3B,OAAO68M,GAAWl/I,GAAYrH,GAAOt2D,EAAK,CAClD,CAAO,CACP,MACM88M,GAAYn/I,EAAUpjE,CAAK,CAEjC,EAKE,SAAS0iN,IAAc,CAErB,IAAI5J,EAAcH,GAAa,YAAY,IAAI,IAAI,EACnD,GAAKG,EAGL,KAAI6J,EAAWhK,GAAa,SAAS,IAAI,IAAI,EAC7CzpJ,GAAKyzJ,EAAS,MAAM,EAChB3N,GAAO,EACL8D,EAAY,MACdtoL,GAAK8iL,GAAO,CAAE,EAGhBsP,GAAkBD,CAAQ,EAE5Bx8I,GAAY,CAACw8I,EAAS,MAAOA,EAAS,OAAO,EAAGvQ,EAAY,OAAO,EACnEuQ,EAAS,MAAM,gBAAgB,WAAW,EAC1CA,EAAS,MAAM,gBAAgB,cAAc,EAC7CA,EAAS,cAAc,SAAW,GAClCA,EAAS,WAAW,SAAW,GAC/BA,EAAS,aAAa,SAAW,GAClC,CACD,IAAIC,GAAoB,SAA2BD,EAAU,CAC3D,IAAI1C,EAAkB0C,EAAS,MAAM,uBAAuBA,EAAS,OAAO,aAAa,wBAAwB,CAAC,EAC9G1C,EAAgB,OAClBzvL,GAAKyvL,EAAgB,CAAC,EAAG,cAAc,EAC9BrK,GAAmB,GAC5B1mJ,GAAKyzJ,EAAS,OAAO,CAE3B,EAOE,SAASE,IAAW,CAClB,IAAI/J,EAAcH,GAAa,YAAY,IAAI,IAAI,EAC/CgK,EAAWhK,GAAa,SAAS,IAAI,IAAI,EAC7C,OAAKgK,EAGEvN,GAAWuN,EAAS,MAAO7J,EAAY,KAAK,EAF1C,IAGV,CAOD,SAASgK,GAAmB1/I,EAAU26I,EAASh7L,EAAU,CACvD,IAAI4/L,EAAWhK,GAAa,SAAS,IAAIv1I,CAAQ,EACjD26I,EAAQ,QAAQ,SAAUjkD,GAAQ,CAChC6oD,EAAS7oD,EAAM,EAAE,SAAW/2I,CAClC,CAAK,CACF,CAMD,SAASggM,GAAiBp7M,EAAOob,EAAU,CACzC,IAAI4rJ,EAAQ0kC,KACZ,GAAI,GAAC1kC,GAAS,CAAChnK,GAGf,GAAIA,EAAM,OAAS,QAGjB,QADI85M,EAAS9yC,EAAM,iBAAiB,UAAW,OAAOyjC,EAAY,MAAO,IAAK,CAAC,EACtEvuM,GAAI,EAAGA,GAAI49M,EAAO,OAAQ59M,KACjC49M,EAAO59M,EAAC,EAAE,SAAWkf,OAGvBpb,EAAM,SAAWob,CAEpB,CAMD,SAASigM,IAAgB,CACvBF,GAAmB,KAAM,CAAC,gBAAiB,aAAc,cAAc,EAAG,EAAK,CAChF,CAMD,SAASG,IAAiB,CACxBH,GAAmB,KAAM,CAAC,gBAAiB,aAAc,cAAc,EAAG,EAAI,CAC/E,CAMD,SAASI,IAAc,CACrBH,GAAiB,KAAK,SAAU,EAAE,EAAK,CACxC,CAMD,SAASI,IAAe,CACtBJ,GAAiB,KAAK,SAAU,EAAE,EAAI,CACvC,CAQD,SAASK,GAAsB39M,EAAO,CACpC,IAAIk9M,EAAWhK,GAAa,SAAS,IAAI,IAAI,EACzCx1K,EAASw1K,GAAa,YAAY,IAAI,IAAI,EAC9C1D,GAAa0N,EAAS,kBAAmBl9M,CAAK,EAC9Ck9M,EAAS,kBAAkB,UAAYvQ,EAAY,oBAAoB,EACnEjvK,EAAO,aAAeA,EAAO,YAAY,mBAC3C2iC,GAAS68I,EAAS,kBAAmBx/K,EAAO,YAAY,iBAAiB,EAE3E3S,GAAKmyL,EAAS,iBAAiB,EAC/B,IAAIh7M,EAAQ,KAAK,WACbA,IACFA,EAAM,aAAa,eAAgB,MAAM,EACzCA,EAAM,aAAa,mBAAoByqM,EAAY,oBAAoB,CAAC,EACxEkD,GAAW3tM,CAAK,EAChBm+D,GAASn+D,EAAOyqM,EAAY,UAAU,EAEzC,CAOD,SAASiR,IAAyB,CAChC,IAAIV,EAAWhK,GAAa,SAAS,IAAI,IAAI,EACzCgK,EAAS,mBACXzzJ,GAAKyzJ,EAAS,iBAAiB,EAEjC,IAAIh7M,EAAQ,KAAK,WACbA,IACFA,EAAM,gBAAgB,cAAc,EACpCA,EAAM,gBAAgB,kBAAkB,EACxCw+D,GAAYx+D,EAAOyqM,EAAY,UAAU,EAE5C,CAED,IAAIkR,GAAgB,CAClB,MAAO,GACP,UAAW,GACX,KAAM,GACN,KAAM,GACN,OAAQ,GACR,KAAM,OACN,UAAW,OACX,SAAU,OACV,SAAU,OACV,MAAO,GACP,UAAW,GACX,UAAW,CACT,MAAO,aACP,SAAU,sBACV,KAAM,iBACP,EACD,UAAW,CACT,MAAO,aACP,SAAU,sBACV,KAAM,iBACP,EACD,YAAa,CAAE,EACf,OAAQ,OACR,MAAO,OACP,SAAU,GACV,WAAY,GACZ,kBAAmB,GACnB,eAAgB,GAChB,cAAe,GACf,uBAAwB,GACxB,uBAAwB,GACxB,kBAAmB,GACnB,eAAgB,GAChB,iBAAkB,GAClB,WAAY,OACZ,QAAS,OACT,kBAAmB,KACnB,uBAAwB,GACxB,mBAAoB,OACpB,eAAgB,KAChB,oBAAqB,GACrB,gBAAiB,OACjB,iBAAkB,SAClB,sBAAuB,GACvB,kBAAmB,OACnB,eAAgB,GAChB,eAAgB,GAChB,aAAc,GACd,UAAW,GACX,YAAa,GACb,YAAa,GACb,gBAAiB,GACjB,gBAAiB,UACjB,qBAAsB,oBACtB,WAAY,GACZ,oBAAqB,GACrB,iBAAkB,GAClB,SAAU,OACV,WAAY,OACZ,YAAa,OACb,SAAU,GACV,MAAO,OACP,iBAAkB,GAClB,MAAO,OACP,QAAS,OACT,WAAY,OACZ,MAAO,OACP,iBAAkB,GAClB,WAAY,GACZ,WAAY,GACZ,aAAc,CAAE,EAChB,eAAgB,GAChB,cAAe,GACf,gBAAiB,CAAE,EACnB,eAAgB,OAChB,uBAAwB,GACxB,kBAAmB,OACnB,KAAM,GACN,SAAU,SACV,cAAe,CAAE,EACjB,oBAAqB,OACrB,sBAAuB,OACvB,SAAU,OACV,QAAS,OACT,UAAW,OACX,UAAW,OACX,SAAU,OACV,WAAY,OACZ,iBAAkB,EACtB,EACMC,GAAkB,CAAC,iBAAkB,oBAAqB,aAAc,iBAAkB,wBAAyB,oBAAqB,mBAAoB,uBAAwB,kBAAmB,QAAS,yBAA0B,qBAAsB,oBAAqB,sBAAuB,cAAe,sBAAuB,kBAAmB,iBAAkB,WAAY,aAAc,SAAU,YAAa,OAAQ,OAAQ,YAAa,WAAY,WAAY,cAAe,WAAY,aAAc,aAAc,UAAW,gBAAiB,cAAe,iBAAkB,mBAAoB,kBAAmB,oBAAqB,iBAAkB,OAAQ,QAAS,YAAa,WAAW,EAGxsBC,GAAmB,GACnBC,GAA0B,CAAC,oBAAqB,gBAAiB,WAAY,eAAgB,YAAa,cAAe,cAAe,aAAc,wBAAwB,EAQ9KC,GAAmB,SAA0BC,EAAW,CAC1D,OAAO,OAAO,UAAU,eAAe,KAAKL,GAAeK,CAAS,CACxE,EAQMC,GAAuB,SAA8BD,EAAW,CAClE,OAAOJ,GAAgB,QAAQI,CAAS,IAAM,EAClD,EAQME,GAAwB,SAA+BF,EAAW,CACpE,OAAOH,GAAiBG,CAAS,CACrC,EAKMG,GAAsB,SAA6BvM,EAAO,CACvDmM,GAAiBnM,CAAK,GACzBrqG,GAAK,sBAAuB,OAAOqqG,EAAO,GAAI,CAAC,CAErD,EAKMwM,GAA2B,SAAkCxM,EAAO,CAClEkM,GAAwB,SAASlM,CAAK,GACxCrqG,GAAK,kBAAmB,OAAOqqG,EAAO,+BAAgC,CAAC,CAE7E,EAKMyM,GAA2B,SAAkCzM,EAAO,CACtE,IAAI0M,EAAeJ,GAAsBtM,CAAK,EAC1C0M,GACFtR,GAAqB4E,EAAO0M,CAAY,CAE9C,EAOMC,GAAwB,SAA+B/gL,EAAQ,CAC7DA,EAAO,WAAa,IAASA,EAAO,mBACtC+pE,GAAK,iFAAiF,EAExF,QAASqqG,KAASp0K,EAChB2gL,GAAoBvM,CAAK,EACrBp0K,EAAO,OACT4gL,GAAyBxM,CAAK,EAEhCyM,GAAyBzM,CAAK,CAEpC,EAOE,SAAS4M,GAAOhhL,EAAQ,CACtB,IAAIwrI,EAAQ0kC,KACRyF,EAAcH,GAAa,YAAY,IAAI,IAAI,EACnD,GAAI,CAAChqC,GAAS9oG,GAAS8oG,EAAOmqC,EAAY,UAAU,KAAK,EAAG,CAC1D5rG,GAAK,4IAA4I,EACjJ,MACD,CACD,IAAIk3G,EAAuBC,GAAkBlhL,CAAM,EAC/CmhL,GAAgB,OAAO,OAAO,GAAIxL,EAAasL,CAAoB,EACvE7xM,GAAO,KAAM+xM,EAAa,EAC1B3L,GAAa,YAAY,IAAI,KAAM2L,EAAa,EAChD,OAAO,iBAAiB,KAAM,CAC5B,OAAQ,CACN,MAAO,OAAO,OAAO,CAAE,EAAE,KAAK,OAAQnhL,CAAM,EAC5C,SAAU,GACV,WAAY,EACb,CACP,CAAK,CACF,CAMD,IAAIkhL,GAAoB,SAA2BlhL,EAAQ,CACzD,IAAIihL,EAAuB,GAC3B,cAAO,KAAKjhL,CAAM,EAAE,QAAQ,SAAUo0K,EAAO,CACvCqM,GAAqBrM,CAAK,EAC5B6M,EAAqB7M,CAAK,EAAIp0K,EAAOo0K,CAAK,EAE1CrqG,GAAK,gCAAgC,OAAOqqG,CAAK,CAAC,CAE1D,CAAK,EACM6M,CACX,EAKE,SAASG,IAAW,CAClB,IAAI5B,EAAWhK,GAAa,SAAS,IAAI,IAAI,EACzCG,EAAcH,GAAa,YAAY,IAAI,IAAI,EACnD,GAAI,CAACG,EAAa,CAChB0L,GAAgB,IAAI,EACpB,MACD,CAGG7B,EAAS,OAAS5Q,GAAY,iCAChCA,GAAY,+BAA8B,EAC1C,OAAOA,GAAY,gCAEjB,OAAO+G,EAAY,YAAe,YACpCA,EAAY,WAAU,EAExB2L,GAAY,IAAI,CACjB,CAKD,IAAIA,GAAc,SAAqBrhJ,EAAU,CAC/CohJ,GAAgBphJ,CAAQ,EAExB,OAAOA,EAAS,OAEhB,OAAO2uI,GAAY,eACnB,OAAOA,GAAY,cAEnB,OAAOA,GAAY,eACvB,EAKMyS,GAAkB,SAAyBphJ,EAAU,CAEnDA,EAAS,mBACXshJ,GAAc/L,GAAcv1I,CAAQ,EACpCA,EAAS,kBAAoB,KAE7BshJ,GAAczG,EAAgB76I,CAAQ,EACtCshJ,GAAc/L,GAAcv1I,CAAQ,EACpC,OAAOA,EAAS,kBAEhB,OAAOA,EAAS,eAChB,OAAOA,EAAS,cAChB,OAAOA,EAAS,SAChB,OAAOA,EAAS,aAChB,OAAOA,EAAS,YAChB,OAAOA,EAAS,YAChB,OAAOA,EAAS,eAChB,OAAOA,EAAS,sBAChB,OAAOA,EAAS,uBAChB,OAAOA,EAAS,MAChB,OAAOA,EAAS,WAChB,OAAOA,EAAS,WAChB,OAAOA,EAAS,WAChB,OAAOA,EAAS,cAChB,OAAOA,EAAS,OAChB,OAAOA,EAAS,SAEtB,EAMMshJ,GAAgB,SAAuBnsM,EAAK6qD,EAAU,CACxD,QAASv/D,KAAK0U,EACZA,EAAI1U,CAAC,EAAE,OAAUu/D,CAAQ,CAE/B,EAEMuhJ,GAA+B,OAAO,OAAO,CAC/C,UAAW,KACX,SAAUJ,GACV,MAAOjF,GACP,WAAYA,GACZ,WAAYA,GACZ,WAAYA,GACZ,eAAgB2D,GAChB,aAAcE,GACd,eAAgBT,GAChB,cAAeM,GACf,YAAaE,GACb,SAAUL,GACV,sBAAuBlD,GACvB,YAAa+C,GACb,cAAe7C,GACf,uBAAwBwD,GACxB,sBAAuBD,GACvB,OAAQe,EACZ,CAAG,EAOGS,GAAmB,SAA0B9L,EAAa6J,EAAUxF,EAAa,CAC/ErE,EAAY,MACd+L,GAAiB/L,EAAa6J,EAAUxF,CAAW,GAInD2H,GAAqBnC,CAAQ,EAG7BoC,GAAyBpC,CAAQ,EACjCqC,GAAiBlM,EAAa6J,EAAUxF,CAAW,EAEzD,EAOM0H,GAAmB,SAA0B/L,EAAa6J,EAAUxF,EAAa,CAEnFwF,EAAS,MAAM,QAAU,UAAY,CAC/B7J,IAAgBmM,GAAiBnM,CAAW,GAAKA,EAAY,OAASA,EAAY,QAGtFqE,EAAYH,GAAc,KAAK,CACrC,CACA,EAMMiI,GAAmB,SAA0BnM,EAAa,CAC5D,MAAO,CAAC,EAAEA,EAAY,mBAAqBA,EAAY,gBAAkBA,EAAY,kBAAoBA,EAAY,gBACzH,EACMoM,EAAqB,GAKrBJ,GAAuB,SAA8BnC,EAAU,CACjEA,EAAS,MAAM,YAAc,UAAY,CACvCA,EAAS,UAAU,UAAY,SAAUxvM,EAAG,CAC1CwvM,EAAS,UAAU,UAAY,UAAY,GAGvCxvM,EAAE,SAAWwvM,EAAS,YACxBuC,EAAqB,GAE/B,CACA,CACA,EAKMH,GAA2B,SAAkCpC,EAAU,CACzEA,EAAS,UAAU,YAAc,UAAY,CAC3CA,EAAS,MAAM,UAAY,SAAUxvM,EAAG,CACtCwvM,EAAS,MAAM,UAAY,UAAY,IAEnCxvM,EAAE,SAAWwvM,EAAS,OAASxvM,EAAE,kBAAkB,aAAewvM,EAAS,MAAM,SAASxvM,EAAE,MAAM,KACpG+xM,EAAqB,GAE/B,CACA,CACA,EAOMF,GAAmB,SAA0BlM,EAAa6J,EAAUxF,EAAa,CACnFwF,EAAS,UAAU,QAAU,SAAUxvM,GAAG,CACxC,GAAI+xM,EAAoB,CACtBA,EAAqB,GACrB,MACD,CACG/xM,GAAE,SAAWwvM,EAAS,WAAa7P,GAAegG,EAAY,iBAAiB,GACjFqE,EAAYH,GAAc,QAAQ,CAE1C,CACA,EAEMmI,GAAkB,SAAyB5oM,EAAM,CACnD,OAAO8oD,EAAQ9oD,CAAI,IAAM,UAAYA,EAAK,MAC9C,EACM6oM,GAAY,SAAmB7oM,EAAM,CACvC,OAAOA,aAAgB,SAAW4oM,GAAgB5oM,CAAI,CAC1D,EACM8oM,GAAe,SAAsB5/L,EAAM,CAC7C,IAAI0d,EAAS,GACb,OAAIkiC,EAAQ5/C,EAAK,CAAC,CAAC,IAAM,UAAY,CAAC2/L,GAAU3/L,EAAK,CAAC,CAAC,EACrD,OAAO,OAAO0d,EAAQ1d,EAAK,CAAC,CAAC,EAE7B,CAAC,QAAS,OAAQ,MAAM,EAAE,QAAQ,SAAUnmB,EAAM2N,GAAO,CACvD,IAAIuQ,GAAMiI,EAAKxY,EAAK,EAChB,OAAOuQ,IAAQ,UAAY4nM,GAAU5nM,EAAG,EAC1C2lB,EAAO7jC,CAAI,EAAIke,GACNA,KAAQ,QACjB/X,GAAM,sBAAsB,OAAOnG,EAAM,wCAA4C,EAAE,OAAO+lE,EAAQ7nD,EAAG,CAAC,CAAC,CAErH,CAAO,EAEI2lB,CACX,EAQE,SAAShY,IAAO,CAEd,QADI+0L,EAAO,KACF7nJ,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAOmjL,EAAWkP,EAAMz6L,CAAI,CAC7B,CAqBD,SAASo/J,GAAMygC,EAAa,CAC1B,IAAIC,EAAyB,SAAUxpJ,EAAO,CAC5CyH,EAAU+hJ,EAAWxpJ,CAAK,EAC1B,SAASwpJ,GAAY,CACnB,OAAApiJ,EAAgB,KAAMoiJ,CAAS,EACxBxU,EAAW,KAAMwU,EAAW,SAAS,CAC7C,CACD,OAAA9/H,EAAa8/H,EAAW,CAAC,CACvB,IAAK,QACL,MAAO,SAAepiL,GAAQqiL,GAAqB,CACjD,OAAOrU,EAAK9pH,EAAgBk+H,EAAU,SAAS,EAAG,QAAS,IAAI,EAAE,KAAK,KAAMpiL,GAAQ,OAAO,OAAO,CAAE,EAAEmiL,EAAaE,EAAmB,CAAC,CACxI,CACF,EAAC,EACKD,CACR,EAAC,IAAI,EACN,OAAOA,CACR,CAQD,IAAIE,GAAe,UAAwB,CACzC,OAAO1T,GAAY,SAAWA,GAAY,QAAQ,aAAY,CAClE,EAQM2T,GAAY,UAAqB,CACnC,GAAI3T,GAAY,QACd,OAAAqE,KACOrE,GAAY,QAAQ,MAEjC,EAQM4T,GAAc,UAAuB,CACvC,GAAI5T,GAAY,QAAS,CACvB,IAAIjlL,EAAYilL,GAAY,QAAQ,MAAK,EACzC,OAAAkE,GAAwBnpL,CAAS,EAC1BA,CACR,CACL,EAQM84L,GAAc,UAAuB,CACvC,IAAI/pL,EAAQk2K,GAAY,QACxB,OAAOl2K,IAAUA,EAAM,QAAU6pL,GAAW,EAAGC,GAAW,EAC9D,EASME,GAAgB,SAAuBzvG,EAAI,CAC7C,GAAI27F,GAAY,QAAS,CACvB,IAAIjlL,EAAYilL,GAAY,QAAQ,SAAS37F,CAAE,EAC/C,OAAA6/F,GAAwBnpL,EAAW,EAAI,EAChCA,CACR,CACL,EASMg5L,GAAiB,UAA0B,CAC7C,MAAO,CAAC,EAAE/T,GAAY,SAAWA,GAAY,QAAQ,UAAS,EAClE,EAEMgU,GAAyB,GACzBC,GAAgB,GAKpB,SAASC,IAAmB,CAC1B,IAAI//L,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,qBAC/E8/L,GAAc9/L,CAAI,EAAI,KACjB6/L,KACH,SAAS,KAAK,iBAAiB,QAASG,EAAiB,EACzDH,GAAyB,GAE5B,CACD,IAAIG,GAAoB,SAA2BrmN,EAAO,CACxD,QAASwiB,EAAKxiB,EAAM,OAAQwiB,GAAMA,IAAO,SAAUA,EAAKA,EAAG,WACzD,QAAS6D,KAAQ8/L,GAAe,CAC9B,IAAIvjN,GAAW4f,EAAG,aAAa6D,CAAI,EACnC,GAAIzjB,GAAU,CACZujN,GAAc9/L,CAAI,EAAE,KAAK,CACvB,SAAUzjB,EACtB,CAAW,EACD,MACD,CACF,CAEP,EAEM0jN,GAA6B,OAAO,OAAO,CAC7C,UAAW,KACX,aAAcd,GACd,iBAAkBY,GAClB,YAAanJ,GACb,aAAcJ,GACd,UAAWE,GACX,cAAeoD,GACf,KAAM70L,GACN,WAAY+oL,GACZ,gBAAiBJ,GACjB,eAAgBO,GAChB,iBAAkBR,GAClB,aAAc1uK,GACd,cAAe4uK,GACf,qBAAsBQ,GACtB,UAAWJ,GACX,iBAAkBV,GAClB,QAASH,GACT,eAAgBC,GAChB,SAAUG,GACV,cAAeM,GACf,UAAWC,GACX,SAAUZ,GACV,iBAAkBM,GAClB,aAAc8R,GACd,oBAAqBrR,GACrB,SAAUZ,GACV,qBAAsBI,GACtB,cAAeiS,GACf,sBAAuBhC,GACvB,UAAW5jH,GACX,eAAgB6lH,GAChB,qBAAsBlC,GACtB,iBAAkBF,GAClB,UAAWjH,GACX,MAAO53B,GACP,YAAa8gC,GACb,YAAa3F,GACb,UAAW0F,GACX,YAAaE,EACjB,CAAG,EAEGQ,GAAqB,UAAY,CAKnC,SAASA,EAAMh8M,EAAU+H,EAAO,CAC9BgxD,EAAgB,KAAMijJ,CAAK,EAC3B,KAAK,SAAWh8M,EAChB,KAAK,UAAY+H,EACjB,KAAK,QAAU,GACf,KAAK,MAAK,CACX,CAKD,OAAAszE,EAAa2gI,EAAO,CAAC,CACnB,IAAK,QACL,MAAO,UAAiB,CACtB,OAAK,KAAK,UACR,KAAK,QAAU,GACf,KAAK,QAAU,IAAI,KACnB,KAAK,GAAK,WAAW,KAAK,SAAU,KAAK,SAAS,GAE7C,KAAK,SACb,CAKP,EAAO,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,OAAI,KAAK,SAAW,KAAK,UACvB,KAAK,QAAU,GACf,aAAa,KAAK,EAAE,EACpB,KAAK,WAAa,IAAI,KAAM,EAAC,QAAO,EAAK,KAAK,QAAQ,WAEjD,KAAK,SACb,CAMP,EAAO,CACD,IAAK,WACL,MAAO,SAAkBzuM,EAAG,CAC1B,IAAI0uM,EAAU,KAAK,QACnB,OAAIA,GACF,KAAK,KAAI,EAEX,KAAK,WAAa1uM,EACd0uM,GACF,KAAK,MAAK,EAEL,KAAK,SACb,CAKP,EAAO,CACD,IAAK,eACL,MAAO,UAAwB,CAC7B,OAAI,KAAK,UACP,KAAK,KAAI,EACT,KAAK,MAAK,GAEL,KAAK,SACb,CAKP,EAAO,CACD,IAAK,YACL,MAAO,UAAqB,CAC1B,OAAO,KAAK,OACb,CACF,EAAC,EACKD,CACX,IAEME,GAAmB,CAAC,aAAc,YAAa,aAAa,EAM5DC,GAAoB,SAA2BpjL,EAAQ,CAEzD,IAAI1gC,EAAW,OAAO0gC,EAAO,UAAa,SAAW,SAAS,cAAcA,EAAO,QAAQ,EAAIA,EAAO,SACtG,GAAI,CAAC1gC,EACH,MAAO,GAGT,IAAI+jN,EAAkB/jN,EAAS,QAC/BgkN,GAAwBD,CAAe,EACvC,IAAI7iN,GAAS,OAAO,OAAO+iN,GAAcF,CAAe,EAAGG,GAAsBH,CAAe,EAAGI,GAAeJ,CAAe,EAAGK,GAAaL,CAAe,EAAGM,GAAYN,CAAe,EAAGO,GAAaP,CAAe,EAAGQ,GAAoBR,EAAiBF,EAAgB,CAAC,EACtR,OAAO3iN,EACX,EAMM+iN,GAAgB,SAAuBF,EAAiB,CAC1D,IAAI7iN,EAAS,GAETsjN,EAAa,MAAM,KAAKT,EAAgB,iBAAiB,YAAY,CAAC,EAC1E,OAAAS,EAAW,QAAQ,SAAU1P,GAAO,CAClC2P,GAA0B3P,GAAO,CAAC,OAAQ,OAAO,CAAC,EAClD,IAAIoM,GAAYpM,GAAM,aAAa,MAAM,EACrCv3M,GAAQu3M,GAAM,aAAa,OAAO,EAClC,OAAO+L,GAAcK,EAAS,GAAM,UACtChgN,EAAOggN,EAAS,EAAI3jN,KAAU,QACrBqlE,EAAQi+I,GAAcK,EAAS,CAAC,IAAM,SAC/ChgN,EAAOggN,EAAS,EAAI,KAAK,MAAM3jN,EAAK,EAEpC2D,EAAOggN,EAAS,EAAI3jN,EAE5B,CAAK,EACM2D,CACX,EAMMgjN,GAAwB,SAA+BH,EAAiB,CAC1E,IAAI7iN,EAAS,GAETwjN,EAAgB,MAAM,KAAKX,EAAgB,iBAAiB,qBAAqB,CAAC,EACtF,OAAAW,EAAc,QAAQ,SAAU5P,GAAO,CACrC,IAAIoM,GAAYpM,GAAM,aAAa,MAAM,EACrCv3M,GAAQu3M,GAAM,aAAa,OAAO,EACtC5zM,EAAOggN,EAAS,EAAI,IAAI,SAAS,UAAU,OAAO3jN,EAAK,CAAC,GAC9D,CAAK,EACM2D,CACX,EAMMijN,GAAiB,SAAwBJ,EAAiB,CAC5D,IAAI7iN,EAAS,GAETyjN,EAAc,MAAM,KAAKZ,EAAgB,iBAAiB,aAAa,CAAC,EAC5E,OAAAY,EAAY,QAAQ,SAAUttD,GAAQ,CACpCotD,GAA0BptD,GAAQ,CAAC,OAAQ,QAAS,YAAY,CAAC,EACjE,IAAI/vJ,GAAO+vJ,GAAO,aAAa,MAAM,EACrCn2J,EAAO,GAAG,OAAOoG,GAAM,YAAY,CAAC,EAAI+vJ,GAAO,UAC/Cn2J,EAAO,OAAO,OAAO8rJ,GAAsB1lJ,EAAI,EAAG,QAAQ,CAAC,EAAI,GAC3D+vJ,GAAO,aAAa,OAAO,IAC7Bn2J,EAAO,GAAG,OAAOoG,GAAM,aAAa,CAAC,EAAI+vJ,GAAO,aAAa,OAAO,GAElEA,GAAO,aAAa,YAAY,IAClCn2J,EAAO,GAAG,OAAOoG,GAAM,iBAAiB,CAAC,EAAI+vJ,GAAO,aAAa,YAAY,EAErF,CAAK,EACMn2J,CACX,EAMMkjN,GAAe,SAAsBL,EAAiB,CACxD,IAAI7iN,EAAS,GAETi4M,EAAQ4K,EAAgB,cAAc,YAAY,EACtD,OAAI5K,IACFsL,GAA0BtL,EAAO,CAAC,MAAO,QAAS,SAAU,KAAK,CAAC,EAC9DA,EAAM,aAAa,KAAK,IAC1Bj4M,EAAO,SAAWi4M,EAAM,aAAa,KAAK,GAExCA,EAAM,aAAa,OAAO,IAC5Bj4M,EAAO,WAAai4M,EAAM,aAAa,OAAO,GAE5CA,EAAM,aAAa,QAAQ,IAC7Bj4M,EAAO,YAAci4M,EAAM,aAAa,QAAQ,GAE9CA,EAAM,aAAa,KAAK,IAC1Bj4M,EAAO,SAAWi4M,EAAM,aAAa,KAAK,IAGvCj4M,CACX,EAMMmjN,GAAc,SAAqBN,EAAiB,CACtD,IAAI7iN,EAAS,GAET4uM,EAAOiU,EAAgB,cAAc,WAAW,EACpD,OAAIjU,IACF2U,GAA0B3U,EAAM,CAAC,OAAQ,OAAO,CAAC,EAC7CA,EAAK,aAAa,MAAM,IAG1B5uM,EAAO,KAAO4uM,EAAK,aAAa,MAAM,GAEpCA,EAAK,aAAa,OAAO,IAC3B5uM,EAAO,UAAY4uM,EAAK,aAAa,OAAO,GAE9C5uM,EAAO,SAAW4uM,EAAK,WAElB5uM,CACX,EAMMojN,GAAe,SAAsBP,EAAiB,CACxD,IAAI7iN,EAAS,GAETgE,EAAQ6+M,EAAgB,cAAc,YAAY,EAClD7+M,IACFu/M,GAA0Bv/M,EAAO,CAAC,OAAQ,QAAS,cAAe,OAAO,CAAC,EAG1EhE,EAAO,MAAQgE,EAAM,aAAa,MAAM,GAAK,OACzCA,EAAM,aAAa,OAAO,IAC5BhE,EAAO,WAAagE,EAAM,aAAa,OAAO,GAE5CA,EAAM,aAAa,aAAa,IAClChE,EAAO,iBAAmBgE,EAAM,aAAa,aAAa,GAExDA,EAAM,aAAa,OAAO,IAC5BhE,EAAO,WAAagE,EAAM,aAAa,OAAO,IAIlD,IAAIi5M,GAAe,MAAM,KAAK4F,EAAgB,iBAAiB,mBAAmB,CAAC,EACnF,OAAI5F,GAAa,SACfj9M,EAAO,aAAe,GACtBi9M,GAAa,QAAQ,SAAUzzM,GAAQ,CACrC+5M,GAA0B/5M,GAAQ,CAAC,OAAO,CAAC,EAC3C,IAAI+zM,GAAc/zM,GAAO,aAAa,OAAO,EACzCykI,GAAazkI,GAAO,UACxBxJ,EAAO,aAAau9M,EAAW,EAAItvE,EAC3C,CAAO,GAEIjuI,CACX,EAOMqjN,GAAsB,SAA6BR,EAAiBa,EAAY,CAClF,IAAI1jN,EAAS,GACb,QAASE,MAAKwjN,EAAY,CACxB,IAAI1D,GAAY0D,EAAWxjN,EAAC,EAExB0f,GAAMijM,EAAgB,cAAc7C,EAAS,EAC7CpgM,KACF2jM,GAA0B3jM,GAAK,EAAE,EACjC5f,EAAOggN,GAAU,QAAQ,SAAU,EAAE,CAAC,EAAIpgM,GAAI,UAAU,OAE3D,CACD,OAAO5f,CACX,EAKM8iN,GAA0B,SAAiCD,EAAiB,CAC9E,IAAIc,EAAkBhB,GAAiB,OAAO,CAAC,aAAc,sBAAuB,cAAe,aAAc,YAAa,aAAc,mBAAmB,CAAC,EAChK,MAAM,KAAKE,EAAgB,QAAQ,EAAE,QAAQ,SAAUnkM,EAAI,CACzD,IAAI3V,GAAU2V,EAAG,QAAQ,YAAW,EAC/BilM,EAAgB,SAAS56M,EAAO,GACnCwgG,GAAK,yBAAyB,OAAOxgG,GAAS,GAAG,CAAC,CAE1D,CAAK,CACL,EAMMw6M,GAA4B,SAAmC7kM,EAAIklM,EAAmB,CACxF,MAAM,KAAKllM,EAAG,UAAU,EAAE,QAAQ,SAAUmlM,EAAW,CACjDD,EAAkB,QAAQC,EAAU,IAAI,IAAM,IAChDt6G,GAAK,CAAC,2BAA4B,OAAOs6G,EAAU,KAAM,QAAS,EAAE,OAAOnlM,EAAG,QAAQ,YAAa,EAAE,IAAI,EAAG,GAAG,OAAOklM,EAAkB,OAAS,2BAA2B,OAAOA,EAAkB,KAAK,IAAI,CAAC,EAAI,gDAAgD,CAAC,CAAC,CAE7Q,CAAK,CACL,EAEME,GAAqB,GAOrBC,GAAY,SAAmBvkL,EAAQ,CACzC,IAAIrwB,EAAYqyB,KACZwpI,EAAQ0kC,KACR,OAAOlwK,EAAO,UAAa,YAC7BA,EAAO,SAASwrI,CAAK,EAEvB,IAAIg5C,GAAa,OAAO,iBAAiB,SAAS,IAAI,EAClD3I,GAAsB2I,GAAW,UACrCC,GAAW90M,EAAW67J,EAAOxrI,CAAM,EAGnC,WAAW,UAAY,CACrB0kL,GAAuB/0M,EAAW67J,CAAK,CACxC,EAAE84C,EAAkB,EACjB1S,GAAO,IACT+S,GAAmBh1M,EAAWqwB,EAAO,iBAAkB67K,EAAmB,EAC1Ed,KAEE,CAAClJ,GAAO,GAAM,CAACjD,GAAY,wBAC7BA,GAAY,sBAAwB,SAAS,eAE3C,OAAO5uK,EAAO,SAAY,YAC5B,WAAW,UAAY,CACrB,OAAOA,EAAO,QAAQwrI,CAAK,CACnC,CAAO,EAEHxoG,GAAYrzD,EAAWs/L,EAAY,eAAe,CAAC,CACvD,EAKM2V,GAA4B,SAASA,EAA0BloN,EAAO,CACxE,IAAI8uK,EAAQ0kC,KACZ,GAAI,EAAAxzM,EAAM,SAAW8uK,GAAS,CAAC+oC,IAG/B,KAAI5kM,EAAYqyB,KAChBwpI,EAAM,oBAAoB+oC,GAAmBqQ,CAAyB,EACtEj1M,EAAU,MAAM,UAAY,OAChC,EAMM+0M,GAAyB,SAAgC/0M,EAAW67J,EAAO,CACzE+oC,IAAqB5B,GAAgBnnC,CAAK,GAC5C77J,EAAU,MAAM,UAAY,SAC5B67J,EAAM,iBAAiB+oC,GAAmBqQ,EAAyB,GAEnEj1M,EAAU,MAAM,UAAY,MAElC,EAOMg1M,GAAqB,SAA4Bh1M,EAAWk1M,EAAkBhJ,EAAqB,CACrGV,IACI0J,GAAoBhJ,IAAwB,UAC9CD,GAA4BC,CAAmB,EAIjD,WAAW,UAAY,CACrBlsM,EAAU,UAAY,CAC5B,CAAK,CACL,EAOM80M,GAAa,SAAoB90M,EAAW67J,EAAOxrI,EAAQ,CAC7D2iC,GAAShzD,EAAWqwB,EAAO,UAAU,QAAQ,EACzCA,EAAO,WAETwrI,EAAM,MAAM,YAAY,UAAW,IAAK,WAAW,EACnDn+I,GAAKm+I,EAAO,MAAM,EAClB,WAAW,UAAY,CAErB7oG,GAAS6oG,EAAOxrI,EAAO,UAAU,KAAK,EAEtCwrI,EAAM,MAAM,eAAe,SAAS,CACrC,EAAE84C,EAAkB,GAErBj3L,GAAKm+I,EAAO,MAAM,EAEpB7oG,GAAS,CAAC,SAAS,gBAAiB,SAAS,IAAI,EAAGssI,EAAY,KAAK,EACjEjvK,EAAO,YAAcA,EAAO,UAAY,CAACA,EAAO,OAClD2iC,GAAS,CAAC,SAAS,gBAAiB,SAAS,IAAI,EAAGssI,EAAY,aAAa,CAAC,CAEpF,EAEM6V,GAAyB,CAM3B,MAAO,SAAerkN,EAAQu+M,EAAmB,CAC/C,MAAO,oDAAoD,KAAKv+M,CAAM,EAAI,QAAQ,QAAS,EAAG,QAAQ,QAAQu+M,GAAqB,uBAAuB,CAC3J,EAMD,IAAK,SAAav+M,EAAQu+M,EAAmB,CAE3C,MAAO,8FAA8F,KAAKv+M,CAAM,EAAI,QAAQ,QAAS,EAAG,QAAQ,QAAQu+M,GAAqB,aAAa,CAC3L,CACL,EAKE,SAAS+F,GAA0B/kL,EAAQ,CAErCA,EAAO,iBAGPA,EAAO,QAAU,UACnBA,EAAO,eAAiB8kL,GAAuB,OAE7C9kL,EAAO,QAAU,QACnBA,EAAO,eAAiB8kL,GAAuB,KAElD,CAKD,SAASE,GAA4BhlL,EAAQ,EAEvC,CAACA,EAAO,QAAU,OAAOA,EAAO,QAAW,UAAY,CAAC,SAAS,cAAcA,EAAO,MAAM,GAAK,OAAOA,EAAO,QAAW,UAAY,CAACA,EAAO,OAAO,eACvJ+pE,GAAK,qDAAqD,EAC1D/pE,EAAO,OAAS,OAEnB,CAOD,SAASilL,GAAcjlL,EAAQ,CAC7B+kL,GAA0B/kL,CAAM,EAG5BA,EAAO,qBAAuB,CAACA,EAAO,YACxC+pE,GAAK;AAAA;AAAA,4CAA4M,EAEnNi7G,GAA4BhlL,CAAM,EAG9B,OAAOA,EAAO,OAAU,WAC1BA,EAAO,MAAQA,EAAO,MAAM,MAAM;AAAA,CAAI,EAAE,KAAK,QAAQ,GAEvDhZ,GAAKgZ,CAAM,CACZ,CAGD,IAAIklL,GACAC,GAAwB,IAAI,QAC5BC,GAA0B,UAAY,CAKxC,SAASA,GAAa,CAUpB,GATAplJ,EAAgB,KAAMolJ,CAAU,EAIhC1W,GAA2B,KAAMyW,GAAU,CACzC,SAAU,GACV,MAAO,MACf,CAAO,EAEG,SAAO,OAAW,KAGtB,CAAAD,GAAkB,KAGlB,QAAShwJ,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAE7B,IAAI26L,GAAc,OAAO,OAAO,KAAK,YAAY,aAAa/iM,CAAI,CAAC,EAGnE,KAAK,OAAS+iM,GAGd,KAAK,kBAAoB,GACzB/W,EAAsB,KAAM6W,GAAU,KAAK,MAAMD,GAAgB,MAAM,CAAC,EACzE,CACD,OAAA5iI,EAAa8iI,EAAY,CAAC,CACxB,IAAK,QACL,MAAO,SAAeE,EAAY,CAChC,IAAInD,EAAc,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAEtF,GADApB,GAAsB,OAAO,OAAO,CAAE,EAAEoB,EAAamD,CAAU,CAAC,EAC5D1W,GAAY,gBAAiB,CAC/B,IAAI0N,GAAqBxB,EAAe,mBAAmB,IAAIlM,GAAY,eAAe,EACtF2W,GAAoB3W,GAAY,gBAAgB,kBACpDA,GAAY,gBAAgB,WACvB2W,IACHjJ,GAAmB,CACjB,YAAa,EAC3B,CAAa,EAEC1K,GAAO,GACTqJ,GAEH,CACDrM,GAAY,gBAAkBsW,GAC9B,IAAIvP,GAAc6P,GAAcF,EAAYnD,CAAW,EACvD8C,GAActP,EAAW,EACzB,OAAO,OAAOA,EAAW,EAGrB/G,GAAY,UACdA,GAAY,QAAQ,OACpB,OAAOA,GAAY,SAIrB,aAAaA,GAAY,mBAAmB,EAC5C,IAAI4Q,GAAWiG,GAAiBP,EAAe,EAC/C,OAAA91M,GAAO81M,GAAiBvP,EAAW,EACnCH,GAAa,YAAY,IAAI0P,GAAiBvP,EAAW,EAClD+P,GAAYR,GAAiB1F,GAAU7J,EAAW,CAC1D,CAGP,EAAO,CACD,IAAK,OACL,MAAO,SAAc5sL,EAAa,CAChC,OAAOmlL,EAAsB,KAAMiX,EAAQ,EAAE,KAAKp8L,CAAW,CAC9D,CACP,EAAO,CACD,IAAK,UACL,MAAO,SAAkB48L,EAAW,CAClC,OAAOzX,EAAsB,KAAMiX,EAAQ,EAAE,QAAWQ,CAAS,CAClE,CACF,EAAC,EACKP,CACX,IAQMM,GAAc,SAAqBzlJ,EAAUu/I,EAAU7J,EAAa,CACtE,OAAO,IAAI,QAAQ,SAAU/1M,GAASgI,GAAQ,CAK5C,IAAIoyM,GAAc,SAAqB4L,GAAS,CAC9C3lJ,EAAS,MAAM,CACb,YAAa,GACb,QAAS2lJ,EACnB,CAAS,CACT,EACM9K,EAAe,mBAAmB,IAAI76I,EAAUrgE,EAAO,EACvDk7M,EAAe,kBAAkB,IAAI76I,EAAUr4D,EAAM,EACrD43M,EAAS,cAAc,QAAU,UAAY,CAC3ChB,GAAyBv+I,CAAQ,CACzC,EACMu/I,EAAS,WAAW,QAAU,UAAY,CACxCb,GAAsB1+I,CAAQ,CACtC,EACMu/I,EAAS,aAAa,QAAU,UAAY,CAC1CX,GAAwB5+I,EAAU+5I,EAAW,CACrD,EACMwF,EAAS,YAAY,QAAU,UAAY,CACzCxF,GAAYH,GAAc,KAAK,CACvC,EACM4H,GAAiB9L,EAAa6J,EAAUxF,EAAW,EACnDD,GAAkBnL,GAAa+G,EAAaqE,EAAW,EACvDiD,GAA2Bh9I,EAAU01I,CAAW,EAChD4O,GAAU5O,CAAW,EACrBkQ,GAAWjX,GAAa+G,EAAaqE,EAAW,EAChD8L,GAAUtG,EAAU7J,CAAW,EAG/B,WAAW,UAAY,CACrB6J,EAAS,UAAU,UAAY,CACvC,CAAO,CACP,CAAK,CACL,EAOMgG,GAAgB,SAAuBF,EAAYnD,EAAa,CAClE,IAAI4D,EAAiB3C,GAAkBkC,CAAU,EAC7CtlL,GAAS,OAAO,OAAO,GAAImgL,GAAegC,EAAa4D,EAAgBT,CAAU,EACrF,OAAAtlL,GAAO,UAAY,OAAO,OAAO,GAAImgL,GAAc,UAAWngL,GAAO,SAAS,EAC9EA,GAAO,UAAY,OAAO,OAAO,GAAImgL,GAAc,UAAWngL,GAAO,SAAS,EAC1EA,GAAO,YAAc,KACvBA,GAAO,UAAY,CACjB,SAAU,mBAClB,EACMA,GAAO,UAAY,IAEdA,EACX,EAMMylL,GAAmB,SAA0BxlJ,EAAU,CACzD,IAAIu/I,EAAW,CACb,MAAOtP,GAAU,EACjB,UAAWluK,GAAc,EACzB,QAAS+uK,GAAY,EACrB,cAAeL,GAAkB,EACjC,WAAYE,GAAe,EAC3B,aAAcD,GAAiB,EAC/B,OAAQG,GAAW,EACnB,YAAaI,GAAgB,EAC7B,kBAAmBT,GAAsB,EACzC,cAAeD,GAAkB,CACvC,EACI,OAAAgF,GAAa,SAAS,IAAIv1I,EAAUu/I,CAAQ,EACrCA,CACX,EAOMqG,GAAa,SAAoBjX,EAAa+G,EAAaqE,EAAa,CAC1E,IAAIhH,GAAmB/B,KACvBllJ,GAAKinJ,EAAgB,EACjB2C,EAAY,QACd/G,EAAY,QAAU,IAAIqU,GAAM,UAAY,CAC1CjJ,EAAY,OAAO,EACnB,OAAOpL,EAAY,OAC3B,EAAS+G,EAAY,KAAK,EAChBA,EAAY,mBACdtoL,GAAK2lL,EAAgB,EACrBhB,GAAiBgB,GAAkB2C,EAAa,kBAAkB,EAClE,WAAW,UAAY,CACjB/G,EAAY,SAAWA,EAAY,QAAQ,SAE7CkE,GAAwB6C,EAAY,KAAK,CAErD,CAAS,GAGT,EAMMmQ,GAAY,SAAmBtG,EAAU7J,EAAa,CACxD,GAAI,CAAAA,EAAY,MAGhB,IAAI,CAAChG,GAAegG,EAAY,aAAa,EAAG,CAC9CqQ,KACA,MACD,CACIC,GAAYzG,EAAU7J,CAAW,GACpCuE,GAAS,GAAI,CAAC,EAEpB,EAOM+L,GAAc,SAAqBzG,EAAU7J,EAAa,CAC5D,OAAIA,EAAY,WAAahE,GAAY6N,EAAS,UAAU,GAC1DA,EAAS,WAAW,QACb,IAEL7J,EAAY,aAAehE,GAAY6N,EAAS,YAAY,GAC9DA,EAAS,aAAa,QACf,IAEL7J,EAAY,cAAgBhE,GAAY6N,EAAS,aAAa,GAChEA,EAAS,cAAc,QAChB,IAEF,EACX,EACMwG,GAAoB,UAA6B,CAC/C,SAAS,yBAAyB,aAAe,OAAO,SAAS,cAAc,MAAS,YAC1F,SAAS,cAAc,MAE7B,EAGE,GAAI,OAAO,OAAW,KAAe,QAAQ,KAAK,UAAU,QAAQ,GAAK,SAAS,KAAK,MAAM,wBAAwB,EAAG,CACtH,IAAIp7G,GAAM,IAAI,KACVs7G,GAAiB,aAAa,QAAQ,iBAAiB,EACtDA,IAEOt7G,GAAI,QAAS,EAAG,KAAK,MAAMs7G,EAAc,IAAM,IAAO,GAAK,GAAK,IAAM,GAChF,WAAW,UAAY,CACrB,SAAS,KAAK,MAAM,cAAgB,OACpC,IAAIC,EAAkB,SAAS,cAAc,OAAO,EACpDA,EAAgB,IAAM,8DACtBA,EAAgB,KAAO,GACvB,SAAS,KAAK,YAAYA,CAAe,EACzC,WAAW,UAAY,CACrBA,EAAgB,KAAI,EAAG,MAAS,UAAY,CAEtD,CAAW,CACF,EAAE,IAAI,CACR,EAAE,GAAG,EAbN,aAAa,QAAQ,kBAAmB,GAAG,OAAOv7G,EAAG,CAAC,CAezD,CAGDw6G,GAAW,UAAU,eAAiBtF,GACtCsF,GAAW,UAAU,cAAgBvF,GACrCuF,GAAW,UAAU,SAAW1F,GAChC0F,GAAW,UAAU,aAAepF,GACpCoF,GAAW,UAAU,YAAcrF,GACnCqF,GAAW,UAAU,YAAc7F,GACnC6F,GAAW,UAAU,eAAiB7F,GACtC6F,GAAW,UAAU,sBAAwBnF,GAC7CmF,GAAW,UAAU,uBAAyBlF,GAC9CkF,GAAW,UAAU,MAAQjJ,GAC7BiJ,GAAW,UAAU,WAAajJ,GAClCiJ,GAAW,UAAU,WAAajJ,GAClCiJ,GAAW,UAAU,WAAajJ,GAClCiJ,GAAW,UAAU,cAAgB1I,GACrC0I,GAAW,UAAU,OAASpE,GAC9BoE,GAAW,UAAU,SAAWhE,GAGhC,OAAO,OAAOgE,GAAYpC,EAAa,EAGvC,OAAO,KAAKxB,EAAe,EAAE,QAAQ,SAAUhzM,EAAK,CAKlD42M,GAAW52M,CAAG,EAAI,UAAY,CAC5B,GAAI02M,IAAmBA,GAAgB12M,CAAG,EAAG,CAC3C,IAAI43M,EACJ,OAAQA,EAAmBlB,IAAiB12M,CAAG,EAAE,MAAM43M,EAAkB,SAAS,CACnF,CACD,OAAO,IACb,CACA,CAAG,EACDhB,GAAW,cAAgBvL,GAC3BuL,GAAW,QAAU,UAErB,IAAIrI,GAAOqI,GAEX,OAAArI,GAAK,QAAaA,GAEXA,EAET,GACI,OAAOxlM,GAAS,KAAeA,GAAK,cAAaA,GAAK,KAAOA,GAAK,WAAaA,GAAK,KAAOA,GAAK,WAAaA,GAAK,aACzG,OAAO,SAApB,KAA8B,SAASvH,EAAEyF,EAAE,CAAC,IAAIjB,EAAExE,EAAE,cAAc,OAAO,EAAE,GAAGA,EAAE,qBAAqB,MAAM,EAAE,CAAC,EAAE,YAAYwE,CAAC,EAAEA,EAAE,WAAWA,EAAE,WAAW,WAAWA,EAAE,WAAW,QAAQiB,OAAQ,IAAG,CAACjB,EAAE,UAAUiB,CAAC,MAAS,CAACjB,EAAE,UAAUiB,CAAC,CAAC,EAAE,SAAS,yquBAAiruB,6CCvhJv5uB,MAAM4wM,EAAU,CAC7B,OAAO,QAAQhkL,EAAOikL,EAASC,EAAS,KAAMC,EAAiB,GAAMtgN,EAAU,GAAI,CAGjF,OAAO62M,IAAK,KAAK,CACf,MAAO16K,EACP,eAAgBmkL,EAChB,iBAAkB,GAClB,kBAAmBF,EACnB,eAAgBC,EAChB,eAAgB,GAChB,eAAgB,GAChB,SAAU,GACV,kBAAmB,GACnB,SAAU,SACV,YAAa,CACX,MAAO,mBACP,MAAO,mBACP,cAAe,4CACf,WAAY,kBACZ,QAAS,oBACV,CACP,CAAK,CACF,CACH,CCnBA,MAAAE,IAAe,CAAC,CAAE,QAAAlvI,EAAS,eAAAmvI,KAAqB,CAC9C,KAAM,CAAE,iBAAAC,CAAA,EAAqBhmI,EAAA,WAAWstG,EAAgB,EAClD,CAAC+e,EAAgBC,CAAiB,EAAIztG,WAAS,EAAK,EACpD,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,WAAS,EAAK,EACpC,CAAConH,EAAwBC,CAAyB,EAAIrnH,WAAS,EAAK,EAEpEsnH,EAAoBvZ,GAAgB,CAErCr2H,GAAA,KAAK,iCAAkC,CAAE,cAAeq2H,EAAa,EACrE,KAAM3uM,GAAa,CACVi4K,GAAA,KAAK,8BAA8Bt/F,CAAO,EAAE,EACpDovI,EAAiB/nN,EAAS,IAAI,EAC9B,WAAW,IAAMioN,EAA0B,EAAK,EAAG,GAAG,EACvD,EACA,MAAevkN,GAAA,CACJk0L,EAAAl0L,EAAM,SAAS,KAAK,MAAM,EACpC2qM,EAAkB,EAAI,EACtB4Z,EAA0B,EAAK,EAChC,GAyBL,OAEIvmH,GAAAlf,GAAA,WAAAC,EAACqrH,GAAA,CACC,OAAAvgD,EACA,KAAM6gD,EACN,QAASC,CAAA,CACX,EAEA5rH,EAAC,UACC,UAAU,uCACV,MAAO,CAAE,MAAO,GAAI,EACpB,KAAK,SACL,SAAUulI,EACV,QAnCgB,IAAM,CACtB,GAAAA,EAA+B,SACnCC,EAA0B,EAAI,EAGxB,MAAAtZ,EADW,IAAI,SAAS,SAAS,eAAe,YAAY,CAAC,EACtC,IAAI,eAAe,EAE5CmZ,EACFL,GACG,QAAQK,EAAgB,UAAW,QAAQ,EAC3C,KAAMlmN,GAAW,CACZA,EAAO,YACTsmN,EAAiBvZ,CAAW,EAE5BsZ,EAA0B,EAAK,CACjC,CACD,EAEHC,EAAiBvZ,CAAW,CAC9B,EAiBG,mBAED,CACF,GAEJ,EC/DAwZ,IAAe,CAAC,CAAE,SAAA9oN,CAAA,IAAe,CAC/B,MAAM+hC,EAAS,IAAI,gBAAgB/hC,EAAS,MAAM,EAC5C,CAACmtB,EAAM47L,CAAO,EAAIxnH,EAAA,SAAS,CAAE,GAC7B,CAACyrB,EAAO8/E,CAAQ,EAAIvrG,EAAA,SAAS,CAAE,GAC/B,CAACjoB,EAAS+2G,CAAU,EAAI9uF,WAASx/D,EAAO,IAAI,UAAU,CAAC,EACvD,CAAC8sK,EAAoBC,CAAqB,EAAIvtG,WAAS,EAAK,EAC5D,CAACknH,EAAgBO,CAAiB,EAAIznH,WAAS,IAAI,EAEnD0nH,EAAQ3yH,SAAO,IAAI,EAEnB4yH,EAAgB,IAAMD,EAAM,QAAQ,eAAe,CAAE,SAAU,SAAU,EAEzE7b,EAAakC,GAAgB,CACjCr2H,GACG,IAAI,0BAA2B,CAAE,OAAQ,CAAE,cAAeq2H,EAAe,GACzE,KAAM3uM,GAAa,CACVooN,EAAApoN,EAAS,KAAK,UAAU,EACvBmsM,EAAAnsM,EAAS,KAAK,KAAK,EACVqoN,EAAAroN,EAAS,KAAK,OAAO,EACzBuoN,IACd,WAAW,IAAMpa,EAAsB,EAAK,EAAG,GAAG,EACnD,EACA,MAAOzqM,GAAU,CAChB,QAAQ,IAAIA,CAAK,EACjByqM,EAAsB,EAAK,EAC5B,GAGCqa,EAAoB,IAAM,CAC9B/b,EAAU,EAAE,2BAA2B,EAAE,IAAK,IAGhD,OAEI/qG,GAAAlf,GAAA,WAAAC,EAAC,OAAI,UAAU,MACb,WAAC,MAAI,WAAU,YACb,SAACA,EAAA,MAAG,MAAO,CAAE,UAAW,EAAG,WAAY,CAAK,+BAAiB,EAC/D,CACF,GAEAA,EAAC6xF,IAAA,CACC,UAAWm4B,EACX,QAAA9zH,EACA,mBAAAu1H,EACA,sBAAAC,CAAA,CACF,GAEE3hL,GAAQ,IAAI,OAAS,GACpBk1E,GAAA,OAAI,IAAK4mH,EACR,UAAA7lI,EAACopG,IAAM,KAAAr/J,EAAY,MAAA6/F,EAAc,UAAWm8F,EAAmB,gBAAiB,GAAK,EACpF,CAACta,GAAsBzrH,EAAC,MAAI,WAAU,aAAa,SAACA,EAAAolI,IAAA,CAAc,QAAAlvI,EAAkB,eAAAmvI,CAAA,CAA+B,CAAE,IACxH,CAEJ,GAEJ,EC1DeW,IAAA,CAAC,CAAE,KAAAh6L,EAAM,QAAAslJ,EAAS,QAAAz2K,CAAQ,IACtCokG,GAAAp4B,GAAA,CAAM,KAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,4BAAgB,CAC/B,GACCmZ,EAAAnZ,GAAM,KAAN,CACE,SACHhsE,CAAA,GACCmlF,EAAAnZ,GAAM,OAAN,CACC,SAACmZ,EAAAroB,GAAA,CAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,iBAAK,CAC9C,IACF,ECXF,SAAS20C,IAAY,CAAE,QAAAzwC,EAAS,SAAAp4G,GAAY,CAC1Cg3B,mBAAU,IAAM,CACd,MAAM0iF,EAAWtB,EAAQ,OAAO,IAAM,CACpC,OAAO,SAAS,EAAG,CAAC,CAC1B,CAAK,EACD,MAAO,IAAM,CACXsB,GACD,CACF,EAAE,CAAE,GAEE15G,CACT,CAEA,MAAe8oJ,IAAAjpC,GAAWgpC,GAAW,ECJrCE,IAAe,IAAM,CACnB,KAAM,CAACx4B,EAAay4B,CAAc,EAAIjoH,WAAS,IAAI,EAC7C,CAACyvF,EAAUC,CAAW,EAAI1vF,WAAS,KAAK,EACxCgvF,EAAcS,IAAa,OAASD,EACpC,CAAC04B,EAAyBC,CAA0B,EAAInoH,WAAS,EAAK,EACtE,CAACooH,EAAuBC,CAAsB,EAAIroH,EAAA,SAAS,CAAE,GAC7D,CAAC43F,EAAe0wB,CAAgB,EAAItoH,WAAS,IAAI,EAEvD/J,YAAU,IAAK,CACThe,GAAA,eAAe,KAAiB74E,GAAA,CACnB6oN,EAAA7oN,EAAS,KAAK,KAAK,WAAW,EAC5BkpN,EAAAlpN,EAAS,KAAK,KAAK,EAAE,EACvC,CACH,EAAG,CAAE,GAEC,MAAAmpN,EAA0B38L,GAAS,CACvCu8L,EAA2B,EAAI,EAC/BE,EAAuBz8L,EAAK,OAAO,GAGrC,GAAI4jK,IAAgB,KAAa,YAEjC,MAAMg5B,EAAmB,CACvB,cAAA5wB,EACA,SAAAnI,EACA,WAAAT,EACA,YAAAU,CAAA,EAGI+4B,EAAuB,CAC3B,iBAAkBF,CAAA,EAGpB,SACGj6B,GAAc,SAAd,CAAuB,MAAOkB,EAC7B,SAAC3tG,EAAA2sG,GAAgB,SAAhB,CAAyB,MAAOg6B,EAC/B,SAAA1nH,GAAC2tF,GAAiB,SAAjB,CAA0B,MAAOg6B,EAEhC,UAAA5mI,EAACgmI,IAAA,CACC,KAAMK,EACN,QAASC,EACT,QAASC,CAAA,CACX,IAEC/qC,GAAO,SAAAhG,GACN,SAACx1F,EAAAimI,IAAA,CACC,YAACjpC,GACC,WAAAh9F,EAAC08F,GAAM,MAAK,wBAAwB,UAAWgpC,IAAQ,EACtD1lI,EAAA08F,GAAA,CAAM,KAAK,oBAAoB,UAAW8M,IAAU,EACvD,EACF,GACF,GACF,EACF,CACF,EAEJ,ECjEMq9B,IAAkB,CACtB,CAAE,GAAI,sBAAuB,KAAM,WAAM,OAAO,qBAA+B,EAAE,2BACjF,CAAE,GAAI,mBAAoB,KAAM,WAAM,OAAO,qBAA6B,EAAE,2BAC5E,CAAE,GAAI,uCAAwC,KAAM,WAAM,OAAO,qBAAwC,EAAE,sBAC3G,CAAE,GAAI,yBAA0B,KAAM,IAAMC,GAAA,WAAO,qBAA4B,EAAE,sBACjF,CAAE,GAAI,6BAA8B,KAAM,IAAMA,GAAA,YAA6C,mBAAAC,GAAA,SAAE,CACjG,EAKMC,IAAa,CACjB,CAAE,GAAI,6BAA8B,UAAWz9B,EAAgB,EAC/D,CAAE,GAAI,uBAAwB,UAAW48B,GAAU,CACrD,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAClDU,IAAgB,QAAQ,CAAC,CAAE,GAAAljN,EAAI,KAAAsjN,KAAW,CAClC,MAAA34M,EAAY,SAAS,eAAe3K,CAAE,EAC5C,GAAI2K,EAAW,CACP,MAAAwkD,EAAYo0J,OAAKD,CAAI,EAClBh9I,GAAA,OACP+V,EAACmnI,YAAS,SAAUnnI,EAAC,QAAG,EACtB,SAAAA,EAACltB,IAAS,CACZ,GAAaxkD,CAAA,CAEjB,EACD,EAED04M,IAAW,QAAQ,CAAC,CAAE,GAAArjN,EAAI,UAAAmvD,KAAgB,CAClC,MAAAxkD,EAAY,SAAS,eAAe3K,CAAE,EACxC2K,GACF27D,GAAS,OAAO+V,EAACltB,EAAS,IAAIxkD,CAAS,CACzC,CACD,CACH,CAAC,EClCD,MAAM84M,GAAc,CAChB,YAAYjjN,EAAahG,EAAWkpN,EAAc,CAC9C,KAAK,YAAcljN,EACnB,KAAK,UAAYhG,EACjB,KAAK,aAAekpN,EACpB,KAAK,kBAAoB,IAAI,GAChC,CACD,SAAU,CACN,KAAK,YAAY,iBAAiB,KAAK,UAAW,KAAM,KAAK,YAAY,CAC5E,CACD,YAAa,CACT,KAAK,YAAY,oBAAoB,KAAK,UAAW,KAAM,KAAK,YAAY,CAC/E,CACD,iBAAiBC,EAAS,CACtB,KAAK,kBAAkB,IAAIA,CAAO,CACrC,CACD,oBAAoBA,EAAS,CACzB,KAAK,kBAAkB,OAAOA,CAAO,CACxC,CACD,YAAYjsN,EAAO,CACf,MAAMksN,EAAgBC,IAAYnsN,CAAK,EACvC,UAAWisN,KAAW,KAAK,SAAU,CACjC,GAAIC,EAAc,4BACd,MAGAD,EAAQ,YAAYC,CAAa,CAExC,CACJ,CACD,aAAc,CACV,OAAO,KAAK,kBAAkB,KAAO,CACxC,CACD,IAAI,UAAW,CACX,OAAO,MAAM,KAAK,KAAK,iBAAiB,EAAE,KAAK,CAACrqN,EAAMC,IAAU,CAC5D,MAAMsqN,EAAYvqN,EAAK,MAAOwqN,EAAavqN,EAAM,MACjD,OAAOsqN,EAAYC,EAAa,GAAKD,EAAYC,EAAa,EAAI,CAC9E,CAAS,CACJ,CACL,CACA,SAASF,IAAYnsN,EAAO,CACxB,GAAI,gCAAiCA,EACjC,OAAOA,EAEN,CACD,KAAM,CAAE,yBAAAssN,CAA0B,EAAGtsN,EACrC,OAAO,OAAO,OAAOA,EAAO,CACxB,4BAA6B,GAC7B,0BAA2B,CACvB,KAAK,4BAA8B,GACnCssN,EAAyB,KAAK,IAAI,CACrC,CACb,CAAS,CACJ,CACL,CAEA,MAAMC,GAAW,CACb,YAAYC,EAAa,CACrB,KAAK,YAAcA,EACnB,KAAK,kBAAoB,IAAI,IAC7B,KAAK,QAAU,EAClB,CACD,OAAQ,CACC,KAAK,UACN,KAAK,QAAU,GACf,KAAK,eAAe,QAAS7kD,GAAkBA,EAAc,QAAO,CAAE,EAE7E,CACD,MAAO,CACC,KAAK,UACL,KAAK,QAAU,GACf,KAAK,eAAe,QAASA,GAAkBA,EAAc,WAAU,CAAE,EAEhF,CACD,IAAI,gBAAiB,CACjB,OAAO,MAAM,KAAK,KAAK,kBAAkB,QAAQ,EAAE,OAAO,CAAC4Q,EAAW9wJ,IAAQ8wJ,EAAU,OAAO,MAAM,KAAK9wJ,EAAI,OAAQ,EAAC,EAAG,EAAE,CAC/H,CACD,iBAAiBwkM,EAAS,CACtB,KAAK,6BAA6BA,CAAO,EAAE,iBAAiBA,CAAO,CACtE,CACD,oBAAoBA,EAASQ,EAAsB,GAAO,CACtD,KAAK,6BAA6BR,CAAO,EAAE,oBAAoBA,CAAO,EAClEQ,GACA,KAAK,8BAA8BR,CAAO,CACjD,CACD,YAAYrmN,EAAOpG,EAASwD,EAAS,GAAI,CACrC,KAAK,YAAY,YAAY4C,EAAO,SAASpG,CAAO,GAAIwD,CAAM,CACjE,CACD,8BAA8BipN,EAAS,CACnC,MAAMtkD,EAAgB,KAAK,6BAA6BskD,CAAO,EAC1DtkD,EAAc,gBACfA,EAAc,WAAU,EACxB,KAAK,6BAA6BskD,CAAO,EAEhD,CACD,6BAA6BA,EAAS,CAClC,KAAM,CAAE,YAAAnjN,EAAa,UAAAhG,EAAW,aAAAkpN,CAAY,EAAKC,EAC3CS,EAAmB,KAAK,oCAAoC5jN,CAAW,EACvE03K,EAAW,KAAK,SAAS19K,EAAWkpN,CAAY,EACtDU,EAAiB,OAAOlsC,CAAQ,EAC5BksC,EAAiB,MAAQ,GACzB,KAAK,kBAAkB,OAAO5jN,CAAW,CAChD,CACD,6BAA6BmjN,EAAS,CAClC,KAAM,CAAE,YAAAnjN,EAAa,UAAAhG,EAAW,aAAAkpN,CAAY,EAAKC,EACjD,OAAO,KAAK,mBAAmBnjN,EAAahG,EAAWkpN,CAAY,CACtE,CACD,mBAAmBljN,EAAahG,EAAWkpN,EAAc,CACrD,MAAMU,EAAmB,KAAK,oCAAoC5jN,CAAW,EACvE03K,EAAW,KAAK,SAAS19K,EAAWkpN,CAAY,EACtD,IAAIrkD,EAAgB+kD,EAAiB,IAAIlsC,CAAQ,EACjD,OAAK7Y,IACDA,EAAgB,KAAK,oBAAoB7+J,EAAahG,EAAWkpN,CAAY,EAC7EU,EAAiB,IAAIlsC,EAAU7Y,CAAa,GAEzCA,CACV,CACD,oBAAoB7+J,EAAahG,EAAWkpN,EAAc,CACtD,MAAMrkD,EAAgB,IAAIokD,IAAcjjN,EAAahG,EAAWkpN,CAAY,EAC5E,OAAI,KAAK,SACLrkD,EAAc,QAAO,EAElBA,CACV,CACD,oCAAoC7+J,EAAa,CAC7C,IAAI4jN,EAAmB,KAAK,kBAAkB,IAAI5jN,CAAW,EAC7D,OAAK4jN,IACDA,EAAmB,IAAI,IACvB,KAAK,kBAAkB,IAAI5jN,EAAa4jN,CAAgB,GAErDA,CACV,CACD,SAAS5pN,EAAWkpN,EAAc,CAC9B,MAAMhzL,EAAQ,CAACl2B,CAAS,EACxB,cAAO,KAAKkpN,CAAY,EACnB,KAAM,EACN,QAASl6M,GAAQ,CAClBknB,EAAM,KAAK,GAAGgzL,EAAal6M,CAAG,EAAI,GAAK,GAAG,GAAGA,CAAG,EAAE,CAC9D,CAAS,EACMknB,EAAM,KAAK,GAAG,CACxB,CACL,CAEA,MAAM2zL,IAAiC,CACnC,KAAK,CAAE,MAAA3sN,EAAO,MAAAG,GAAS,CACnB,OAAIA,GACAH,EAAM,gBAAe,EAClB,EACV,EACD,QAAQ,CAAE,MAAAA,EAAO,MAAAG,GAAS,CACtB,OAAIA,GACAH,EAAM,eAAc,EACjB,EACV,EACD,KAAK,CAAE,MAAAA,EAAO,MAAAG,EAAO,QAAAN,CAAO,EAAI,CAC5B,OAAIM,EACON,IAAYG,EAAM,OAGlB,EAEd,CACL,EACM4sN,IAAoB,gFAC1B,SAASC,IAA4BC,EAAkB,CAEnD,MAAMrvM,EADSqvM,EAAiB,OACT,MAAMF,GAAiB,GAAK,GACnD,IAAI9pN,EAAY2a,EAAQ,CAAC,EACrBsvM,EAAYtvM,EAAQ,CAAC,EACzB,OAAIsvM,GAAa,CAAC,CAAC,UAAW,QAAS,UAAU,EAAE,SAASjqN,CAAS,IACjEA,GAAa,IAAIiqN,CAAS,GAC1BA,EAAY,IAET,CACH,YAAaC,IAAiBvvM,EAAQ,CAAC,CAAC,EACxC,UAAA3a,EACA,aAAc2a,EAAQ,CAAC,EAAIwvM,IAAkBxvM,EAAQ,CAAC,CAAC,EAAI,CAAE,EAC7D,WAAYA,EAAQ,CAAC,EACrB,WAAYA,EAAQ,CAAC,EACrB,UAAAsvM,CACR,CACA,CACA,SAASC,IAAiBE,EAAiB,CACvC,GAAIA,GAAmB,SACnB,OAAO,OAEN,GAAIA,GAAmB,WACxB,OAAO,QAEf,CACA,SAASD,IAAkBjB,EAAc,CACrC,OAAOA,EACF,MAAM,GAAG,EACT,OAAO,CAACxiN,EAAS9B,IAAU,OAAO,OAAO8B,EAAS,CAAE,CAAC9B,EAAM,QAAQ,KAAM,EAAE,CAAC,EAAG,CAAC,KAAK,KAAKA,CAAK,CAAG,GAAG,EAAE,CAChH,CACA,SAASylN,IAAqBrkN,EAAa,CACvC,GAAIA,GAAe,OACf,MAAO,SAEN,GAAIA,GAAe,SACpB,MAAO,UAEf,CAEA,SAAS21D,GAASt+D,EAAO,CACrB,OAAOA,EAAM,QAAQ,sBAAuB,CAAC+D,EAAG44E,IAASA,EAAK,YAAW,CAAE,CAC/E,CACA,SAASswI,GAAkBjtN,EAAO,CAC9B,OAAOs+D,GAASt+D,EAAM,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,CAAC,CACjE,CACA,SAASktN,GAAWltN,EAAO,CACvB,OAAOA,EAAM,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAM,MAAM,CAAC,CACxD,CACA,SAASmtN,GAAUntN,EAAO,CACtB,OAAOA,EAAM,QAAQ,WAAY,CAAC+D,EAAG44E,IAAS,IAAIA,EAAK,YAAa,GAAE,CAC1E,CACA,SAAS7+D,IAAS9d,EAAO,CACrB,OAAOA,EAAM,MAAM,SAAS,GAAK,EACrC,CAEA,MAAMotN,GAAO,CACT,YAAY1tN,EAASuN,EAAOo0E,EAAYgsI,EAAQ,CAC5C,KAAK,QAAU3tN,EACf,KAAK,MAAQuN,EACb,KAAK,YAAco0E,EAAW,aAAe3hF,EAC7C,KAAK,UAAY2hF,EAAW,WAAaisI,IAA8B5tN,CAAO,GAAK+F,GAAM,oBAAoB,EAC7G,KAAK,aAAe47E,EAAW,cAAgB,GAC/C,KAAK,WAAaA,EAAW,YAAc57E,GAAM,oBAAoB,EACrE,KAAK,WAAa47E,EAAW,YAAc57E,GAAM,qBAAqB,EACtE,KAAK,UAAY47E,EAAW,WAAa,GACzC,KAAK,OAASgsI,CACjB,CACD,OAAO,SAAS9lN,EAAO8lN,EAAQ,CAC3B,OAAO,IAAI,KAAK9lN,EAAM,QAASA,EAAM,MAAOmlN,IAA4BnlN,EAAM,OAAO,EAAG8lN,CAAM,CACjG,CACD,UAAW,CACP,MAAME,EAAc,KAAK,UAAY,IAAI,KAAK,SAAS,GAAK,GACtD5kN,EAAc,KAAK,gBAAkB,IAAI,KAAK,eAAe,GAAK,GACxE,MAAO,GAAG,KAAK,SAAS,GAAG4kN,CAAW,GAAG5kN,CAAW,KAAK,KAAK,UAAU,IAAI,KAAK,UAAU,EAC9F,CACD,eAAe9I,EAAO,CAClB,GAAI,CAAC,KAAK,UACN,MAAO,GAEX,MAAM2tN,EAAW,KAAK,UAAU,MAAM,GAAG,EACnCn+F,EAAY,CAAC,OAAQ,OAAQ,MAAO,OAAO,EAC3C,CAAChgH,EAAMo+M,EAAMC,EAAKriG,CAAK,EAAIgE,EAAU,IAAKkO,GAAaiwF,EAAS,SAASjwF,CAAQ,CAAC,EACxF,GAAI19H,EAAM,UAAYwP,GAAQxP,EAAM,UAAY4tN,GAAQ5tN,EAAM,SAAW6tN,GAAO7tN,EAAM,WAAawrH,EAC/F,MAAO,GAEX,MAAMsiG,EAAiBH,EAAS,OAAQ77M,GAAQ,CAAC09G,EAAU,SAAS19G,CAAG,CAAC,EAAE,CAAC,EAC3E,OAAKg8M,GAGA,OAAO,UAAU,eAAe,KAAK,KAAK,YAAaA,CAAc,GACtEloN,GAAM,gCAAgC,KAAK,SAAS,EAAE,EAEnD,KAAK,YAAYkoN,CAAc,EAAE,YAAW,IAAO9tN,EAAM,IAAI,eALzD,EAMd,CACD,IAAI,QAAS,CACT,MAAMsjC,EAAS,GACT5e,EAAU,IAAI,OAAO,SAAS,KAAK,UAAU,eAAgB,GAAG,EACtE,SAAW,CAAE,KAAAjlB,EAAM,MAAAU,KAAW,MAAM,KAAK,KAAK,QAAQ,UAAU,EAAG,CAC/D,MAAMwD,EAAQlE,EAAK,MAAMilB,CAAO,EAC1B5S,EAAMnO,GAASA,EAAM,CAAC,EACxBmO,IACAwxB,EAAOm7B,GAAS3sD,CAAG,CAAC,EAAIi8M,IAAS5tN,CAAK,EAE7C,CACD,OAAOmjC,CACV,CACD,IAAI,iBAAkB,CAClB,OAAO6pL,IAAqB,KAAK,WAAW,CAC/C,CACD,IAAI,aAAc,CACd,OAAO,KAAK,OAAO,WACtB,CACL,CACA,MAAMa,GAAoB,CACtB,EAAG,IAAM,QACT,OAAQ,IAAM,QACd,KAAM,IAAM,SACZ,QAAS,IAAM,SACf,MAAQ16M,GAAOA,EAAE,aAAa,MAAM,GAAK,SAAW,QAAU,QAC9D,OAAQ,IAAM,SACd,SAAU,IAAM,OACpB,EACA,SAASm6M,IAA8B5tN,EAAS,CAC5C,MAAMgN,EAAUhN,EAAQ,QAAQ,YAAW,EAC3C,GAAIgN,KAAWmhN,GACX,OAAOA,GAAkBnhN,CAAO,EAAEhN,CAAO,CAEjD,CACA,SAAS+F,GAAMpG,EAAS,CACpB,MAAM,IAAI,MAAMA,CAAO,CAC3B,CACA,SAASuuN,IAAS5tN,EAAO,CACrB,GAAI,CACA,OAAO,KAAK,MAAMA,CAAK,CAC1B,MACW,CACR,OAAOA,CACV,CACL,CAEA,MAAM8tN,GAAQ,CACV,YAAY1xM,EAASzb,EAAQ,CACzB,KAAK,QAAUyb,EACf,KAAK,OAASzb,CACjB,CACD,IAAI,OAAQ,CACR,OAAO,KAAK,OAAO,KACtB,CACD,IAAI,aAAc,CACd,OAAO,KAAK,OAAO,WACtB,CACD,IAAI,cAAe,CACf,OAAO,KAAK,OAAO,YACtB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,QAAQ,UACvB,CACD,YAAYd,EAAO,CACX,KAAK,qBAAqBA,CAAK,GAAK,KAAK,oBAAoBA,CAAK,GAClE,KAAK,gBAAgBA,CAAK,CAEjC,CACD,IAAI,WAAY,CACZ,OAAO,KAAK,OAAO,SACtB,CACD,IAAI,QAAS,CACT,MAAMsF,EAAS,KAAK,WAAW,KAAK,UAAU,EAC9C,GAAI,OAAOA,GAAU,WACjB,OAAOA,EAEX,MAAM,IAAI,MAAM,WAAW,KAAK,MAAM,kCAAkC,KAAK,UAAU,GAAG,CAC7F,CACD,oBAAoBtF,EAAO,CACvB,KAAM,CAAE,QAAAH,CAAO,EAAK,KAAK,OACnB,CAAE,wBAAAquN,CAAyB,EAAG,KAAK,QAAQ,YACjD,IAAIC,EAAS,GACb,SAAW,CAAC1uN,EAAMU,CAAK,IAAK,OAAO,QAAQ,KAAK,YAAY,EACxD,GAAIV,KAAQyuN,EAAyB,CACjC,MAAMxmM,EAASwmM,EAAwBzuN,CAAI,EAC3C0uN,EAASA,GAAUzmM,EAAO,CAAE,KAAAjoB,EAAM,MAAAU,EAAO,MAAAH,EAAO,QAAAH,CAAO,CAAE,CAC5D,KAEG,UAGR,OAAOsuN,CACV,CACD,gBAAgBnuN,EAAO,CACnB,KAAM,CAAE,OAAAJ,EAAQ,cAAAwuN,CAAe,EAAGpuN,EAClC,GAAI,CACA,KAAM,CAAE,OAAAsjC,CAAM,EAAK,KAAK,OAClB+qL,EAAc,OAAO,OAAOruN,EAAO,CAAE,OAAAsjC,CAAM,CAAE,EACnD,KAAK,OAAO,KAAK,KAAK,WAAY+qL,CAAW,EAC7C,KAAK,QAAQ,iBAAiB,KAAK,WAAY,CAAE,MAAAruN,EAAO,OAAAJ,EAAQ,cAAAwuN,EAAe,OAAQ,KAAK,UAAY,EAC3G,OACMxoN,EAAO,CACV,KAAM,CAAE,WAAAka,EAAY,WAAAwuM,EAAY,QAAAzuN,EAAS,MAAAuN,CAAK,EAAK,KAC7CpK,EAAS,CAAE,WAAA8c,EAAY,WAAAwuM,EAAY,QAAAzuN,EAAS,MAAAuN,EAAO,MAAApN,GACzD,KAAK,QAAQ,YAAY4F,EAAO,oBAAoB,KAAK,MAAM,IAAK5C,CAAM,CAC7E,CACJ,CACD,qBAAqBhD,EAAO,CACxB,MAAM8I,EAAc9I,EAAM,OAC1B,OAAIA,aAAiB,eAAiB,KAAK,OAAO,eAAeA,CAAK,EAC3D,GAEP,KAAK,UAAY8I,EACV,GAEFA,aAAuB,SAAW,KAAK,QAAQ,SAASA,CAAW,EACjE,KAAK,MAAM,gBAAgBA,CAAW,EAGtC,KAAK,MAAM,gBAAgB,KAAK,OAAO,OAAO,CAE5D,CACD,IAAI,YAAa,CACb,OAAO,KAAK,QAAQ,UACvB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,OAAO,UACtB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,OAAQ,CACR,OAAO,KAAK,QAAQ,KACvB,CACL,CAEA,MAAMylN,EAAgB,CAClB,YAAY1uN,EAAS2F,EAAU,CAC3B,KAAK,qBAAuB,CAAE,WAAY,GAAM,UAAW,GAAM,QAAS,IAC1E,KAAK,QAAU3F,EACf,KAAK,QAAU,GACf,KAAK,SAAW2F,EAChB,KAAK,SAAW,IAAI,IACpB,KAAK,iBAAmB,IAAI,iBAAkBgpN,GAAc,KAAK,iBAAiBA,CAAS,CAAC,CAC/F,CACD,OAAQ,CACC,KAAK,UACN,KAAK,QAAU,GACf,KAAK,iBAAiB,QAAQ,KAAK,QAAS,KAAK,oBAAoB,EACrE,KAAK,QAAO,EAEnB,CACD,MAAMjkN,EAAU,CACR,KAAK,UACL,KAAK,iBAAiB,aACtB,KAAK,QAAU,IAEnBA,IACK,KAAK,UACN,KAAK,iBAAiB,QAAQ,KAAK,QAAS,KAAK,oBAAoB,EACrE,KAAK,QAAU,GAEtB,CACD,MAAO,CACC,KAAK,UACL,KAAK,iBAAiB,cACtB,KAAK,iBAAiB,aACtB,KAAK,QAAU,GAEtB,CACD,SAAU,CACN,GAAI,KAAK,QAAS,CACd,MAAMkT,EAAU,IAAI,IAAI,KAAK,oBAAqB,GAClD,UAAW5d,KAAW,MAAM,KAAK,KAAK,QAAQ,EACrC4d,EAAQ,IAAI5d,CAAO,GACpB,KAAK,cAAcA,CAAO,EAGlC,UAAWA,KAAW,MAAM,KAAK4d,CAAO,EACpC,KAAK,WAAW5d,CAAO,CAE9B,CACJ,CACD,iBAAiB2uN,EAAW,CACxB,GAAI,KAAK,QACL,UAAWC,KAAYD,EACnB,KAAK,gBAAgBC,CAAQ,CAGxC,CACD,gBAAgBA,EAAU,CAClBA,EAAS,MAAQ,aACjB,KAAK,uBAAuBA,EAAS,OAAQA,EAAS,aAAa,EAE9DA,EAAS,MAAQ,cACtB,KAAK,oBAAoBA,EAAS,YAAY,EAC9C,KAAK,kBAAkBA,EAAS,UAAU,EAEjD,CACD,uBAAuB7lN,EAAMxE,EAAe,CACxC,MAAMvE,EAAU+I,EACZ,KAAK,SAAS,IAAI/I,CAAO,EACrB,KAAK,SAAS,yBAA2B,KAAK,aAAaA,CAAO,EAClE,KAAK,SAAS,wBAAwBA,EAASuE,CAAa,EAG5D,KAAK,cAAcvE,CAAO,EAGzB,KAAK,aAAaA,CAAO,GAC9B,KAAK,WAAWA,CAAO,CAE9B,CACD,oBAAoB6xB,EAAO,CACvB,UAAW9oB,KAAQ,MAAM,KAAK8oB,CAAK,EAAG,CAClC,MAAM7xB,EAAU,KAAK,gBAAgB+I,CAAI,EACrC/I,GACA,KAAK,YAAYA,EAAS,KAAK,aAAa,CAEnD,CACJ,CACD,kBAAkB6xB,EAAO,CACrB,UAAW9oB,KAAQ,MAAM,KAAK8oB,CAAK,EAAG,CAClC,MAAM7xB,EAAU,KAAK,gBAAgB+I,CAAI,EACrC/I,GAAW,KAAK,gBAAgBA,CAAO,GACvC,KAAK,YAAYA,EAAS,KAAK,UAAU,CAEhD,CACJ,CACD,aAAaA,EAAS,CAClB,OAAO,KAAK,SAAS,aAAaA,CAAO,CAC5C,CACD,oBAAoB6uN,EAAO,KAAK,QAAS,CACrC,OAAO,KAAK,SAAS,oBAAoBA,CAAI,CAChD,CACD,YAAYA,EAAMC,EAAW,CACzB,UAAW9uN,KAAW,KAAK,oBAAoB6uN,CAAI,EAC/CC,EAAU,KAAK,KAAM9uN,CAAO,CAEnC,CACD,gBAAgB+I,EAAM,CAClB,GAAIA,EAAK,UAAY,KAAK,aACtB,OAAOA,CAEd,CACD,gBAAgB/I,EAAS,CACrB,OAAIA,EAAQ,aAAe,KAAK,QAAQ,YAC7B,GAGA,KAAK,QAAQ,SAASA,CAAO,CAE3C,CACD,WAAWA,EAAS,CACX,KAAK,SAAS,IAAIA,CAAO,GACtB,KAAK,gBAAgBA,CAAO,IAC5B,KAAK,SAAS,IAAIA,CAAO,EACrB,KAAK,SAAS,gBACd,KAAK,SAAS,eAAeA,CAAO,EAInD,CACD,cAAcA,EAAS,CACf,KAAK,SAAS,IAAIA,CAAO,IACzB,KAAK,SAAS,OAAOA,CAAO,EACxB,KAAK,SAAS,kBACd,KAAK,SAAS,iBAAiBA,CAAO,EAGjD,CACL,CAEA,MAAM+uN,GAAkB,CACpB,YAAY/uN,EAASuE,EAAeoB,EAAU,CAC1C,KAAK,cAAgBpB,EACrB,KAAK,SAAWoB,EAChB,KAAK,gBAAkB,IAAI+oN,GAAgB1uN,EAAS,IAAI,CAC3D,CACD,IAAI,SAAU,CACV,OAAO,KAAK,gBAAgB,OAC/B,CACD,IAAI,UAAW,CACX,MAAO,IAAI,KAAK,aAAa,GAChC,CACD,OAAQ,CACJ,KAAK,gBAAgB,OACxB,CACD,MAAM0K,EAAU,CACZ,KAAK,gBAAgB,MAAMA,CAAQ,CACtC,CACD,MAAO,CACH,KAAK,gBAAgB,MACxB,CACD,SAAU,CACN,KAAK,gBAAgB,SACxB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,gBAAgB,OAC/B,CACD,aAAa1K,EAAS,CAClB,OAAOA,EAAQ,aAAa,KAAK,aAAa,CACjD,CACD,oBAAoB6uN,EAAM,CACtB,MAAM/qN,EAAQ,KAAK,aAAa+qN,CAAI,EAAI,CAACA,CAAI,EAAI,GAC3CjxM,EAAU,MAAM,KAAKixM,EAAK,iBAAiB,KAAK,QAAQ,CAAC,EAC/D,OAAO/qN,EAAM,OAAO8Z,CAAO,CAC9B,CACD,eAAe5d,EAAS,CAChB,KAAK,SAAS,yBACd,KAAK,SAAS,wBAAwBA,EAAS,KAAK,aAAa,CAExE,CACD,iBAAiBA,EAAS,CAClB,KAAK,SAAS,2BACd,KAAK,SAAS,0BAA0BA,EAAS,KAAK,aAAa,CAE1E,CACD,wBAAwBA,EAASuE,EAAe,CACxC,KAAK,SAAS,8BAAgC,KAAK,eAAiBA,GACpE,KAAK,SAAS,6BAA6BvE,EAASuE,CAAa,CAExE,CACL,CAEA,SAASmnB,IAAI9D,EAAK3V,EAAK3R,EAAO,CAC1B0uN,GAAMpnM,EAAK3V,CAAG,EAAE,IAAI3R,CAAK,CAC7B,CACA,SAAS2uN,IAAIrnM,EAAK3V,EAAK3R,EAAO,CAC1B0uN,GAAMpnM,EAAK3V,CAAG,EAAE,OAAO3R,CAAK,EAC5B4uN,IAAMtnM,EAAK3V,CAAG,CAClB,CACA,SAAS+8M,GAAMpnM,EAAK3V,EAAK,CACrB,IAAItO,EAASikB,EAAI,IAAI3V,CAAG,EACxB,OAAKtO,IACDA,EAAS,IAAI,IACbikB,EAAI,IAAI3V,EAAKtO,CAAM,GAEhBA,CACX,CACA,SAASurN,IAAMtnM,EAAK3V,EAAK,CACrB,MAAMtO,EAASikB,EAAI,IAAI3V,CAAG,EACtBtO,GAAU,MAAQA,EAAO,MAAQ,GACjCikB,EAAI,OAAO3V,CAAG,CAEtB,CAEA,MAAMk9M,EAAS,CACX,aAAc,CACV,KAAK,YAAc,IAAI,GAC1B,CACD,IAAI,MAAO,CACP,OAAO,MAAM,KAAK,KAAK,YAAY,KAAM,EAC5C,CACD,IAAI,QAAS,CAET,OADa,MAAM,KAAK,KAAK,YAAY,OAAM,CAAE,EACrC,OAAO,CAACxrN,EAAQmxD,IAAQnxD,EAAO,OAAO,MAAM,KAAKmxD,CAAG,CAAC,EAAG,CAAE,EACzE,CACD,IAAI,MAAO,CAEP,OADa,MAAM,KAAK,KAAK,YAAY,OAAM,CAAE,EACrC,OAAO,CAAC9iD,EAAM8iD,IAAQ9iD,EAAO8iD,EAAI,KAAM,CAAC,CACvD,CACD,IAAI7iD,EAAK3R,EAAO,CACZorB,IAAI,KAAK,YAAazZ,EAAK3R,CAAK,CACnC,CACD,OAAO2R,EAAK3R,EAAO,CACf2uN,IAAI,KAAK,YAAah9M,EAAK3R,CAAK,CACnC,CACD,IAAI2R,EAAK3R,EAAO,CACZ,MAAMqD,EAAS,KAAK,YAAY,IAAIsO,CAAG,EACvC,OAAOtO,GAAU,MAAQA,EAAO,IAAIrD,CAAK,CAC5C,CACD,OAAO2R,EAAK,CACR,OAAO,KAAK,YAAY,IAAIA,CAAG,CAClC,CACD,SAAS3R,EAAO,CAEZ,OADa,MAAM,KAAK,KAAK,YAAY,OAAM,CAAE,EACrC,KAAMw0D,GAAQA,EAAI,IAAIx0D,CAAK,CAAC,CAC3C,CACD,gBAAgB2R,EAAK,CACjB,MAAMtO,EAAS,KAAK,YAAY,IAAIsO,CAAG,EACvC,OAAOtO,EAAS,MAAM,KAAKA,CAAM,EAAI,EACxC,CACD,gBAAgBrD,EAAO,CACnB,OAAO,MAAM,KAAK,KAAK,WAAW,EAC7B,OAAO,CAAC,CAAC6tB,EAAMxqB,CAAM,IAAMA,EAAO,IAAIrD,CAAK,CAAC,EAC5C,IAAI,CAAC,CAAC2R,EAAKm9M,CAAO,IAAMn9M,CAAG,CACnC,CACL,CA2BA,MAAMo9M,GAAiB,CACnB,YAAYrvN,EAASsF,EAAUK,EAAU6G,EAAU,GAAI,CACnD,KAAK,SAAWlH,EAChB,KAAK,QAAUkH,EACf,KAAK,gBAAkB,IAAIkiN,GAAgB1uN,EAAS,IAAI,EACxD,KAAK,SAAW2F,EAChB,KAAK,iBAAmB,IAAIwpN,EAC/B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,gBAAgB,OAC/B,CACD,OAAQ,CACJ,KAAK,gBAAgB,OACxB,CACD,MAAMzkN,EAAU,CACZ,KAAK,gBAAgB,MAAMA,CAAQ,CACtC,CACD,MAAO,CACH,KAAK,gBAAgB,MACxB,CACD,SAAU,CACN,KAAK,gBAAgB,SACxB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,gBAAgB,OAC/B,CACD,aAAa1K,EAAS,CAClB,MAAM4d,EAAU5d,EAAQ,QAAQ,KAAK,QAAQ,EAC7C,OAAI,KAAK,SAAS,qBACP4d,GAAW,KAAK,SAAS,qBAAqB5d,EAAS,KAAK,OAAO,EAEvE4d,CACV,CACD,oBAAoBixM,EAAM,CACtB,MAAM/qN,EAAQ,KAAK,aAAa+qN,CAAI,EAAI,CAACA,CAAI,EAAI,GAC3CjxM,EAAU,MAAM,KAAKixM,EAAK,iBAAiB,KAAK,QAAQ,CAAC,EAAE,OAAQ/qN,GAAU,KAAK,aAAaA,CAAK,CAAC,EAC3G,OAAOA,EAAM,OAAO8Z,CAAO,CAC9B,CACD,eAAe5d,EAAS,CACpB,KAAK,gBAAgBA,CAAO,CAC/B,CACD,iBAAiBA,EAAS,CACtB,KAAK,kBAAkBA,CAAO,CACjC,CACD,wBAAwBA,EAASsvN,EAAgB,CAC7C,MAAM1xM,EAAU,KAAK,aAAa5d,CAAO,EACnCuvN,EAAgB,KAAK,iBAAiB,IAAI,KAAK,SAAUvvN,CAAO,EAClE,CAAC4d,GAAW2xM,GACZ,KAAK,kBAAkBvvN,CAAO,CAErC,CACD,gBAAgBA,EAAS,CACjB,KAAK,SAAS,kBACd,KAAK,SAAS,gBAAgBA,EAAS,KAAK,SAAU,KAAK,OAAO,EAClE,KAAK,iBAAiB,IAAI,KAAK,SAAUA,CAAO,EAEvD,CACD,kBAAkBA,EAAS,CACvB,KAAK,SAAS,kBAAkBA,EAAS,KAAK,SAAU,KAAK,OAAO,EACpE,KAAK,iBAAiB,OAAO,KAAK,SAAUA,CAAO,CACtD,CACL,CAEA,MAAMwvN,GAAkB,CACpB,YAAYxvN,EAAS2F,EAAU,CAC3B,KAAK,QAAU3F,EACf,KAAK,SAAW2F,EAChB,KAAK,QAAU,GACf,KAAK,UAAY,IAAI,IACrB,KAAK,iBAAmB,IAAI,iBAAkBgpN,GAAc,KAAK,iBAAiBA,CAAS,CAAC,CAC/F,CACD,OAAQ,CACC,KAAK,UACN,KAAK,QAAU,GACf,KAAK,iBAAiB,QAAQ,KAAK,QAAS,CAAE,WAAY,GAAM,kBAAmB,EAAI,CAAE,EACzF,KAAK,QAAO,EAEnB,CACD,MAAO,CACC,KAAK,UACL,KAAK,iBAAiB,cACtB,KAAK,iBAAiB,aACtB,KAAK,QAAU,GAEtB,CACD,SAAU,CACN,GAAI,KAAK,QACL,UAAWpqN,KAAiB,KAAK,oBAC7B,KAAK,iBAAiBA,EAAe,IAAI,CAGpD,CACD,iBAAiBoqN,EAAW,CACxB,GAAI,KAAK,QACL,UAAWC,KAAYD,EACnB,KAAK,gBAAgBC,CAAQ,CAGxC,CACD,gBAAgBA,EAAU,CACtB,MAAMrqN,EAAgBqqN,EAAS,cAC3BrqN,GACA,KAAK,iBAAiBA,EAAeqqN,EAAS,QAAQ,CAE7D,CACD,iBAAiBrqN,EAAew7K,EAAU,CACtC,MAAM9tK,EAAM,KAAK,SAAS,4BAA4B1N,CAAa,EACnE,GAAI0N,GAAO,KAAM,CACR,KAAK,UAAU,IAAI1N,CAAa,GACjC,KAAK,kBAAkB0N,EAAK1N,CAAa,EAE7C,MAAMjE,EAAQ,KAAK,QAAQ,aAAaiE,CAAa,EAIrD,GAHI,KAAK,UAAU,IAAIA,CAAa,GAAKjE,GACrC,KAAK,sBAAsBA,EAAO2R,EAAK8tK,CAAQ,EAE/Cz/K,GAAS,KAAM,CACf,MAAMy/K,EAAW,KAAK,UAAU,IAAIx7K,CAAa,EACjD,KAAK,UAAU,OAAOA,CAAa,EAC/Bw7K,GACA,KAAK,oBAAoB9tK,EAAK1N,EAAew7K,CAAQ,CAC5D,MAEG,KAAK,UAAU,IAAIx7K,EAAejE,CAAK,CAE9C,CACJ,CACD,kBAAkB2R,EAAK1N,EAAe,CAC9B,KAAK,SAAS,mBACd,KAAK,SAAS,kBAAkB0N,EAAK1N,CAAa,CAEzD,CACD,sBAAsBjE,EAAO2R,EAAK8tK,EAAU,CACpC,KAAK,SAAS,uBACd,KAAK,SAAS,sBAAsBz/K,EAAO2R,EAAK8tK,CAAQ,CAE/D,CACD,oBAAoB9tK,EAAK1N,EAAew7K,EAAU,CAC1C,KAAK,SAAS,qBACd,KAAK,SAAS,oBAAoB9tK,EAAK1N,EAAew7K,CAAQ,CAErE,CACD,IAAI,qBAAsB,CACtB,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,sBAAsB,OAAO,KAAK,sBAAsB,CAAC,CAAC,CAC5F,CACD,IAAI,uBAAwB,CACxB,OAAO,MAAM,KAAK,KAAK,QAAQ,UAAU,EAAE,IAAK+nC,GAAcA,EAAU,IAAI,CAC/E,CACD,IAAI,wBAAyB,CACzB,OAAO,MAAM,KAAK,KAAK,UAAU,KAAM,EAC1C,CACL,CAEA,MAAM2H,EAAkB,CACpB,YAAYzvN,EAASuE,EAAeoB,EAAU,CAC1C,KAAK,kBAAoB,IAAIopN,IAAkB/uN,EAASuE,EAAe,IAAI,EAC3E,KAAK,SAAWoB,EAChB,KAAK,gBAAkB,IAAIwpN,EAC9B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,kBAAkB,OACjC,CACD,OAAQ,CACJ,KAAK,kBAAkB,OAC1B,CACD,MAAMzkN,EAAU,CACZ,KAAK,kBAAkB,MAAMA,CAAQ,CACxC,CACD,MAAO,CACH,KAAK,kBAAkB,MAC1B,CACD,SAAU,CACN,KAAK,kBAAkB,SAC1B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,kBAAkB,OACjC,CACD,IAAI,eAAgB,CAChB,OAAO,KAAK,kBAAkB,aACjC,CACD,wBAAwB1K,EAAS,CAC7B,KAAK,cAAc,KAAK,qBAAqBA,CAAO,CAAC,CACxD,CACD,6BAA6BA,EAAS,CAClC,KAAM,CAAC0vN,EAAiBC,CAAa,EAAI,KAAK,wBAAwB3vN,CAAO,EAC7E,KAAK,gBAAgB0vN,CAAe,EACpC,KAAK,cAAcC,CAAa,CACnC,CACD,0BAA0B3vN,EAAS,CAC/B,KAAK,gBAAgB,KAAK,gBAAgB,gBAAgBA,CAAO,CAAC,CACrE,CACD,cAAc4mB,EAAQ,CAClBA,EAAO,QAAS/e,GAAU,KAAK,aAAaA,CAAK,CAAC,CACrD,CACD,gBAAgB+e,EAAQ,CACpBA,EAAO,QAAS/e,GAAU,KAAK,eAAeA,CAAK,CAAC,CACvD,CACD,aAAaA,EAAO,CAChB,KAAK,SAAS,aAAaA,CAAK,EAChC,KAAK,gBAAgB,IAAIA,EAAM,QAASA,CAAK,CAChD,CACD,eAAeA,EAAO,CAClB,KAAK,SAAS,eAAeA,CAAK,EAClC,KAAK,gBAAgB,OAAOA,EAAM,QAASA,CAAK,CACnD,CACD,wBAAwB7H,EAAS,CAC7B,MAAM4vN,EAAiB,KAAK,gBAAgB,gBAAgB5vN,CAAO,EAC7D6vN,EAAgB,KAAK,qBAAqB7vN,CAAO,EACjD8vN,EAAsBC,IAAIH,EAAgBC,CAAa,EAAE,UAAU,CAAC,CAACG,EAAeC,CAAY,IAAM,CAACC,IAAeF,EAAeC,CAAY,CAAC,EACxJ,OAAIH,GAAuB,GAChB,CAAC,GAAI,EAAE,EAGP,CAACF,EAAe,MAAME,CAAmB,EAAGD,EAAc,MAAMC,CAAmB,CAAC,CAElG,CACD,qBAAqB9vN,EAAS,CAC1B,MAAMuE,EAAgB,KAAK,cACrB4rN,EAAcnwN,EAAQ,aAAauE,CAAa,GAAK,GAC3D,OAAO6rN,IAAiBD,EAAanwN,EAASuE,CAAa,CAC9D,CACL,CACA,SAAS6rN,IAAiBD,EAAanwN,EAASuE,EAAe,CAC3D,OAAO4rN,EACF,KAAM,EACN,MAAM,KAAK,EACX,OAAQ/qN,GAAYA,EAAQ,MAAM,EAClC,IAAI,CAACA,EAASmI,KAAW,CAAE,QAAAvN,EAAS,cAAAuE,EAAe,QAAAa,EAAS,MAAAmI,CAAO,EAAC,CAC7E,CACA,SAASwiN,IAAI/tN,EAAMC,EAAO,CACtB,MAAMuU,EAAS,KAAK,IAAIxU,EAAK,OAAQC,EAAM,MAAM,EACjD,OAAO,MAAM,KAAK,CAAE,OAAAuU,CAAQ,EAAE,CAACnS,EAAGkJ,IAAU,CAACvL,EAAKuL,CAAK,EAAGtL,EAAMsL,CAAK,CAAC,CAAC,CAC3E,CACA,SAAS2iN,IAAeluN,EAAMC,EAAO,CACjC,OAAOD,GAAQC,GAASD,EAAK,OAASC,EAAM,OAASD,EAAK,SAAWC,EAAM,OAC/E,CAEA,MAAMouN,EAAkB,CACpB,YAAYrwN,EAASuE,EAAeoB,EAAU,CAC1C,KAAK,kBAAoB,IAAI8pN,GAAkBzvN,EAASuE,EAAe,IAAI,EAC3E,KAAK,SAAWoB,EAChB,KAAK,oBAAsB,IAAI,QAC/B,KAAK,uBAAyB,IAAI,OACrC,CACD,IAAI,SAAU,CACV,OAAO,KAAK,kBAAkB,OACjC,CACD,OAAQ,CACJ,KAAK,kBAAkB,OAC1B,CACD,MAAO,CACH,KAAK,kBAAkB,MAC1B,CACD,SAAU,CACN,KAAK,kBAAkB,SAC1B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,kBAAkB,OACjC,CACD,IAAI,eAAgB,CAChB,OAAO,KAAK,kBAAkB,aACjC,CACD,aAAakC,EAAO,CAChB,KAAM,CAAE,QAAA7H,CAAS,EAAG6H,EACd,CAAE,MAAAvH,CAAO,EAAG,KAAK,yBAAyBuH,CAAK,EACjDvH,IACA,KAAK,6BAA6BN,CAAO,EAAE,IAAI6H,EAAOvH,CAAK,EAC3D,KAAK,SAAS,oBAAoBN,EAASM,CAAK,EAEvD,CACD,eAAeuH,EAAO,CAClB,KAAM,CAAE,QAAA7H,CAAS,EAAG6H,EACd,CAAE,MAAAvH,CAAO,EAAG,KAAK,yBAAyBuH,CAAK,EACjDvH,IACA,KAAK,6BAA6BN,CAAO,EAAE,OAAO6H,CAAK,EACvD,KAAK,SAAS,sBAAsB7H,EAASM,CAAK,EAEzD,CACD,yBAAyBuH,EAAO,CAC5B,IAAIkuH,EAAc,KAAK,oBAAoB,IAAIluH,CAAK,EACpD,OAAKkuH,IACDA,EAAc,KAAK,WAAWluH,CAAK,EACnC,KAAK,oBAAoB,IAAIA,EAAOkuH,CAAW,GAE5CA,CACV,CACD,6BAA6B/1H,EAAS,CAClC,IAAIswN,EAAgB,KAAK,uBAAuB,IAAItwN,CAAO,EAC3D,OAAKswN,IACDA,EAAgB,IAAI,IACpB,KAAK,uBAAuB,IAAItwN,EAASswN,CAAa,GAEnDA,CACV,CACD,WAAWzoN,EAAO,CACd,GAAI,CAEA,MAAO,CAAE,MADK,KAAK,SAAS,mBAAmBA,CAAK,CACtC,CACjB,OACM9B,EAAO,CACV,MAAO,CAAE,MAAAA,CAAK,CACjB,CACJ,CACL,CAEA,MAAMwqN,GAAgB,CAClB,YAAY7zM,EAAS/W,EAAU,CAC3B,KAAK,QAAU+W,EACf,KAAK,SAAW/W,EAChB,KAAK,iBAAmB,IAAI,GAC/B,CACD,OAAQ,CACC,KAAK,oBACN,KAAK,kBAAoB,IAAI0qN,GAAkB,KAAK,QAAS,KAAK,gBAAiB,IAAI,EACvF,KAAK,kBAAkB,QAE9B,CACD,MAAO,CACC,KAAK,oBACL,KAAK,kBAAkB,OACvB,OAAO,KAAK,kBACZ,KAAK,qBAAoB,EAEhC,CACD,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,OACvB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,QAAQ,UACvB,CACD,IAAI,iBAAkB,CAClB,OAAO,KAAK,OAAO,eACtB,CACD,IAAI,QAAS,CACT,OAAO,KAAK,QAAQ,MACvB,CACD,IAAI,UAAW,CACX,OAAO,MAAM,KAAK,KAAK,iBAAiB,OAAQ,EACnD,CACD,cAAcpvN,EAAQ,CAClB,MAAMmrN,EAAU,IAAIgC,IAAQ,KAAK,QAASntN,CAAM,EAChD,KAAK,iBAAiB,IAAIA,EAAQmrN,CAAO,EACzC,KAAK,SAAS,iBAAiBA,CAAO,CACzC,CACD,iBAAiBnrN,EAAQ,CACrB,MAAMmrN,EAAU,KAAK,iBAAiB,IAAInrN,CAAM,EAC5CmrN,IACA,KAAK,iBAAiB,OAAOnrN,CAAM,EACnC,KAAK,SAAS,oBAAoBmrN,CAAO,EAEhD,CACD,sBAAuB,CACnB,KAAK,SAAS,QAASA,GAAY,KAAK,SAAS,oBAAoBA,EAAS,EAAI,CAAC,EACnF,KAAK,iBAAiB,OACzB,CACD,mBAAmBvkN,EAAO,CACtB,MAAM5G,EAASysN,IAAO,SAAS7lN,EAAO,KAAK,MAAM,EACjD,GAAI5G,EAAO,YAAc,KAAK,WAC1B,OAAOA,CAEd,CACD,oBAAoBjB,EAASiB,EAAQ,CACjC,KAAK,cAAcA,CAAM,CAC5B,CACD,sBAAsBjB,EAASiB,EAAQ,CACnC,KAAK,iBAAiBA,CAAM,CAC/B,CACL,CAEA,MAAMuvN,GAAc,CAChB,YAAY9zM,EAASg1L,EAAU,CAC3B,KAAK,QAAUh1L,EACf,KAAK,SAAWg1L,EAChB,KAAK,kBAAoB,IAAI8d,IAAkB,KAAK,QAAS,IAAI,EACjE,KAAK,mBAAqB,KAAK,WAAW,kBAC7C,CACD,OAAQ,CACJ,KAAK,kBAAkB,QACvB,KAAK,uCAAsC,CAC9C,CACD,MAAO,CACH,KAAK,kBAAkB,MAC1B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,OACvB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,QAAQ,UACvB,CACD,4BAA4BjrN,EAAe,CACvC,GAAIA,KAAiB,KAAK,mBACtB,OAAO,KAAK,mBAAmBA,CAAa,EAAE,IAErD,CACD,kBAAkB0N,EAAK1N,EAAe,CAClC,MAAMo9E,EAAa,KAAK,mBAAmBp9E,CAAa,EACnD,KAAK,SAAS0N,CAAG,GAClB,KAAK,sBAAsBA,EAAK0vE,EAAW,OAAO,KAAK,SAAS1vE,CAAG,CAAC,EAAG0vE,EAAW,OAAOA,EAAW,YAAY,CAAC,CAExH,CACD,sBAAsBrhF,EAAOV,EAAMmgL,EAAU,CACzC,MAAMp+F,EAAa,KAAK,uBAAuB/hF,CAAI,EAC/CU,IAAU,OAEVy/K,IAAa,OACbA,EAAWp+F,EAAW,OAAOA,EAAW,YAAY,GAExD,KAAK,sBAAsB/hF,EAAMU,EAAOy/K,CAAQ,EACnD,CACD,oBAAoB9tK,EAAK1N,EAAew7K,EAAU,CAC9C,MAAMp+F,EAAa,KAAK,uBAAuB1vE,CAAG,EAC9C,KAAK,SAASA,CAAG,EACjB,KAAK,sBAAsBA,EAAK0vE,EAAW,OAAO,KAAK,SAAS1vE,CAAG,CAAC,EAAG8tK,CAAQ,EAG/E,KAAK,sBAAsB9tK,EAAK0vE,EAAW,OAAOA,EAAW,YAAY,EAAGo+F,CAAQ,CAE3F,CACD,wCAAyC,CACrC,SAAW,CAAE,IAAA9tK,EAAK,KAAArS,EAAM,aAAAsM,EAAc,OAAAukN,CAAQ,IAAI,KAAK,iBAC/CvkN,GAAgB,MAAa,CAAC,KAAK,WAAW,KAAK,IAAI+F,CAAG,GAC1D,KAAK,sBAAsBrS,EAAM6wN,EAAOvkN,CAAY,EAAG,MAAS,CAG3E,CACD,sBAAsBtM,EAAMwsJ,EAAUskE,EAAa,CAC/C,MAAMC,EAAoB,GAAG/wN,CAAI,UAC3BgxN,EAAgB,KAAK,SAASD,CAAiB,EACrD,GAAI,OAAOC,GAAiB,WAAY,CACpC,MAAMjvI,EAAa,KAAK,uBAAuB/hF,CAAI,EACnD,GAAI,CACA,MAAMU,EAAQqhF,EAAW,OAAOyqE,CAAQ,EACxC,IAAI2zB,EAAW2wC,EACXA,IACA3wC,EAAWp+F,EAAW,OAAO+uI,CAAW,GAE5CE,EAAc,KAAK,KAAK,SAAUtwN,EAAOy/K,CAAQ,CACpD,OACMh6K,EAAO,CACV,MAAIA,aAAiB,YACjBA,EAAM,QAAU,mBAAmB,KAAK,QAAQ,UAAU,IAAI47E,EAAW,IAAI,OAAO57E,EAAM,OAAO,IAE/FA,CACT,CACJ,CACJ,CACD,IAAI,kBAAmB,CACnB,KAAM,CAAE,mBAAA8qN,CAAoB,EAAG,KAC/B,OAAO,OAAO,KAAKA,CAAkB,EAAE,IAAK5+M,GAAQ4+M,EAAmB5+M,CAAG,CAAC,CAC9E,CACD,IAAI,wBAAyB,CACzB,MAAM6+M,EAAc,GACpB,cAAO,KAAK,KAAK,kBAAkB,EAAE,QAAS7+M,GAAQ,CAClD,MAAM0vE,EAAa,KAAK,mBAAmB1vE,CAAG,EAC9C6+M,EAAYnvI,EAAW,IAAI,EAAIA,CAC3C,CAAS,EACMmvI,CACV,CACD,SAASvsN,EAAe,CACpB,MAAMo9E,EAAa,KAAK,uBAAuBp9E,CAAa,EACtDwsN,EAAgB,MAAMvD,GAAW7rI,EAAW,IAAI,CAAC,GACvD,OAAO,KAAK,SAASovI,CAAa,CACrC,CACL,CAEA,MAAMC,GAAe,CACjB,YAAYt0M,EAAS/W,EAAU,CAC3B,KAAK,QAAU+W,EACf,KAAK,SAAW/W,EAChB,KAAK,cAAgB,IAAIwpN,EAC5B,CACD,OAAQ,CACC,KAAK,oBACN,KAAK,kBAAoB,IAAIM,GAAkB,KAAK,QAAS,KAAK,cAAe,IAAI,EACrF,KAAK,kBAAkB,QAE9B,CACD,MAAO,CACC,KAAK,oBACL,KAAK,qBAAoB,EACzB,KAAK,kBAAkB,OACvB,OAAO,KAAK,kBAEnB,CACD,aAAa,CAAE,QAAAzvN,EAAS,QAASJ,CAAI,EAAI,CACjC,KAAK,MAAM,gBAAgBI,CAAO,GAClC,KAAK,cAAcA,EAASJ,CAAI,CAEvC,CACD,eAAe,CAAE,QAAAI,EAAS,QAASJ,CAAI,EAAI,CACvC,KAAK,iBAAiBI,EAASJ,CAAI,CACtC,CACD,cAAcI,EAASJ,EAAM,CACzB,IAAIY,EACC,KAAK,cAAc,IAAIZ,EAAMI,CAAO,IACrC,KAAK,cAAc,IAAIJ,EAAMI,CAAO,GACnCQ,EAAK,KAAK,qBAAuB,MAAQA,IAAO,QAAkBA,EAAG,MAAM,IAAM,KAAK,SAAS,gBAAgBR,EAASJ,CAAI,CAAC,EAErI,CACD,iBAAiBI,EAASJ,EAAM,CAC5B,IAAIY,EACA,KAAK,cAAc,IAAIZ,EAAMI,CAAO,IACpC,KAAK,cAAc,OAAOJ,EAAMI,CAAO,GACtCQ,EAAK,KAAK,qBAAuB,MAAQA,IAAO,QAAkBA,EAAG,MAAM,IAAM,KAAK,SAAS,mBAAmBR,EAASJ,CAAI,CAAC,EAExI,CACD,sBAAuB,CACnB,UAAWA,KAAQ,KAAK,cAAc,KAClC,UAAWI,KAAW,KAAK,cAAc,gBAAgBJ,CAAI,EACzD,KAAK,iBAAiBI,EAASJ,CAAI,CAG9C,CACD,IAAI,eAAgB,CAChB,MAAO,QAAQ,KAAK,QAAQ,UAAU,SACzC,CACD,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,OACvB,CACD,IAAI,OAAQ,CACR,OAAO,KAAK,QAAQ,KACvB,CACL,CAEA,SAASqxN,GAAiCC,EAAaC,EAAc,CACjE,MAAMC,EAAYC,GAA2BH,CAAW,EACxD,OAAO,MAAM,KAAKE,EAAU,OAAO,CAACztN,EAAQutN,KACxCI,IAAwBJ,EAAaC,CAAY,EAAE,QAASvxN,GAAS+D,EAAO,IAAI/D,CAAI,CAAC,EAC9E+D,GACR,IAAI,GAAK,CAAC,CACjB,CACA,SAAS4tN,IAAiCL,EAAaC,EAAc,CAEjE,OADkBE,GAA2BH,CAAW,EACvC,OAAO,CAACM,EAAON,KAC5BM,EAAM,KAAK,GAAGC,IAAwBP,EAAaC,CAAY,CAAC,EACzDK,GACR,CAAE,EACT,CACA,SAASH,GAA2BH,EAAa,CAC7C,MAAME,EAAY,GAClB,KAAOF,GACHE,EAAU,KAAKF,CAAW,EAC1BA,EAAc,OAAO,eAAeA,CAAW,EAEnD,OAAOE,EAAU,SACrB,CACA,SAASE,IAAwBJ,EAAaC,EAAc,CACxD,MAAMO,EAAaR,EAAYC,CAAY,EAC3C,OAAO,MAAM,QAAQO,CAAU,EAAIA,EAAa,EACpD,CACA,SAASD,IAAwBP,EAAaC,EAAc,CACxD,MAAMO,EAAaR,EAAYC,CAAY,EAC3C,OAAOO,EAAa,OAAO,KAAKA,CAAU,EAAE,IAAKz/M,GAAQ,CAACA,EAAKy/M,EAAWz/M,CAAG,CAAC,CAAC,EAAI,EACvF,CAEA,MAAM0/M,GAAe,CACjB,YAAYj1M,EAAS/W,EAAU,CAC3B,KAAK,QAAU+W,EACf,KAAK,SAAW/W,EAChB,KAAK,cAAgB,IAAIwpN,GACzB,KAAK,qBAAuB,IAAIA,GAChC,KAAK,oBAAsB,IAAI,GAClC,CACD,OAAQ,CACA,KAAK,oBAAoB,OAAS,IAClC,KAAK,kBAAkB,QAASyC,GAAe,CAC3C,MAAMtsN,EAAW,KAAK,SAASssN,CAAU,EACnCplN,EAAU,CAAE,WAAAolN,GACdtsN,GACA,KAAK,oBAAoB,IAAIssN,EAAY,IAAIvC,IAAiB,SAAS,KAAM/pN,EAAU,KAAMkH,CAAO,CAAC,CAEzH,CAAa,EACD,KAAK,oBAAoB,QAASqlN,GAAaA,EAAS,MAAK,CAAE,GAEnE,KAAK,kBAAkB,QAASn1M,GAAYA,EAAQ,QAAO,CAAE,CAChE,CACD,MAAO,CACC,KAAK,oBAAoB,KAAO,IAChC,KAAK,qBAAoB,EACzB,KAAK,oBAAoB,QAASm1M,GAAaA,EAAS,KAAI,CAAE,EAC9D,KAAK,oBAAoB,QAEhC,CACD,SAAU,CACN,KAAK,oBAAoB,QAASA,GAAaA,EAAS,QAAO,CAAE,CACpE,CACD,gBAAgB7xN,EAAS8xN,EAAW,CAAE,WAAAF,CAAU,EAAI,CAChD,MAAMG,EAAS,KAAK,UAAU/xN,EAAS4xN,CAAU,EAC7CG,GACA,KAAK,cAAcA,EAAQ/xN,EAAS4xN,CAAU,CAErD,CACD,kBAAkB5xN,EAAS8xN,EAAW,CAAE,WAAAF,CAAU,EAAI,CAClD,MAAMG,EAAS,KAAK,iBAAiB/xN,EAAS4xN,CAAU,EACpDG,GACA,KAAK,iBAAiBA,EAAQ/xN,EAAS4xN,CAAU,CAExD,CACD,qBAAqB5xN,EAAS,CAAE,WAAA4xN,GAAc,CAC1C,OAAQ,KAAK,UAAU5xN,EAAS4xN,CAAU,GACtC5xN,EAAQ,QAAQ,IAAI,KAAK,QAAQ,YAAY,OAAO,mBAAmB,KAAK4xN,CAAU,GAAG,CAChG,CACD,cAAcG,EAAQ/xN,EAAS4xN,EAAY,CACvC,IAAIpxN,EACC,KAAK,qBAAqB,IAAIoxN,EAAY5xN,CAAO,IAClD,KAAK,cAAc,IAAI4xN,EAAYG,CAAM,EACzC,KAAK,qBAAqB,IAAIH,EAAY5xN,CAAO,GAChDQ,EAAK,KAAK,oBAAoB,IAAIoxN,CAAU,KAAO,MAAQpxN,IAAO,QAAkBA,EAAG,MAAM,IAAM,KAAK,SAAS,gBAAgBuxN,EAAQ/xN,EAAS4xN,CAAU,CAAC,EAErK,CACD,iBAAiBG,EAAQ/xN,EAAS4xN,EAAY,CAC1C,IAAIpxN,EACA,KAAK,qBAAqB,IAAIoxN,EAAY5xN,CAAO,IACjD,KAAK,cAAc,OAAO4xN,EAAYG,CAAM,EAC5C,KAAK,qBAAqB,OAAOH,EAAY5xN,CAAO,GACnDQ,EAAK,KAAK,oBACN,IAAIoxN,CAAU,KAAO,MAAQpxN,IAAO,QAAkBA,EAAG,MAAM,IAAM,KAAK,SAAS,mBAAmBuxN,EAAQ/xN,EAAS4xN,CAAU,CAAC,EAE9I,CACD,sBAAuB,CACnB,UAAWA,KAAc,KAAK,qBAAqB,KAC/C,UAAW5xN,KAAW,KAAK,qBAAqB,gBAAgB4xN,CAAU,EACtE,UAAWG,KAAU,KAAK,cAAc,gBAAgBH,CAAU,EAC9D,KAAK,iBAAiBG,EAAQ/xN,EAAS4xN,CAAU,CAIhE,CACD,SAASA,EAAY,CACjB,OAAO,KAAK,MAAM,QAAQ,yBAAyBA,CAAU,CAChE,CACD,IAAI,oBAAqB,CACrB,MAAMI,EAAe,IAAI7C,GACzB,YAAK,OAAO,QAAQ,QAASp0M,GAAW,CACpC,MAAMm2M,EAAcn2M,EAAO,WAAW,sBACtBk2M,GAAiCC,EAAa,SAAS,EAC/D,QAASa,GAAWC,EAAa,IAAID,EAAQh3M,EAAO,UAAU,CAAC,CACnF,CAAS,EACMi3M,CACV,CACD,IAAI,mBAAoB,CACpB,OAAO,KAAK,mBAAmB,gBAAgB,KAAK,UAAU,CACjE,CACD,IAAI,gCAAiC,CACjC,OAAO,KAAK,mBAAmB,gBAAgB,KAAK,UAAU,CACjE,CACD,IAAI,mBAAoB,CACpB,MAAMC,EAAc,KAAK,+BACzB,OAAO,KAAK,OAAO,SAAS,OAAQv1M,GAAYu1M,EAAY,SAASv1M,EAAQ,UAAU,CAAC,CAC3F,CACD,UAAU1c,EAAS4xN,EAAY,CAC3B,MAAO,CAAC,CAAC,KAAK,UAAU5xN,EAAS4xN,CAAU,GAAK,CAAC,CAAC,KAAK,iBAAiB5xN,EAAS4xN,CAAU,CAC9F,CACD,UAAU5xN,EAAS4xN,EAAY,CAC3B,OAAO,KAAK,YAAY,qCAAqC5xN,EAAS4xN,CAAU,CACnF,CACD,iBAAiB5xN,EAAS4xN,EAAY,CAClC,OAAO,KAAK,cAAc,gBAAgBA,CAAU,EAAE,KAAMG,GAAWA,EAAO,UAAY/xN,CAAO,CACpG,CACD,IAAI,OAAQ,CACR,OAAO,KAAK,QAAQ,KACvB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,QAAQ,UACvB,CACD,IAAI,aAAc,CACd,OAAO,KAAK,QAAQ,WACvB,CACD,IAAI,QAAS,CACT,OAAO,KAAK,YAAY,MAC3B,CACL,CAEA,MAAMkyN,GAAQ,CACV,YAAYn3M,EAAQo3M,EAAO,CACvB,KAAK,iBAAmB,CAACC,EAAcjvN,EAAS,KAAO,CACnD,KAAM,CAAE,WAAA8c,EAAY,WAAAwuM,EAAY,QAAAzuN,CAAO,EAAK,KAC5CmD,EAAS,OAAO,OAAO,CAAE,WAAA8c,EAAY,WAAAwuM,EAAY,QAAAzuN,CAAO,EAAImD,CAAM,EAClE,KAAK,YAAY,iBAAiB,KAAK,WAAYivN,EAAcjvN,CAAM,CACnF,EACQ,KAAK,OAAS4X,EACd,KAAK,MAAQo3M,EACb,KAAK,WAAa,IAAIp3M,EAAO,sBAAsB,IAAI,EACvD,KAAK,gBAAkB,IAAIw1M,IAAgB,KAAM,KAAK,UAAU,EAChE,KAAK,cAAgB,IAAIC,IAAc,KAAM,KAAK,UAAU,EAC5D,KAAK,eAAiB,IAAIQ,IAAe,KAAM,IAAI,EACnD,KAAK,eAAiB,IAAIW,IAAe,KAAM,IAAI,EACnD,GAAI,CACA,KAAK,WAAW,aAChB,KAAK,iBAAiB,YAAY,CACrC,OACM5rN,EAAO,CACV,KAAK,YAAYA,EAAO,yBAAyB,CACpD,CACJ,CACD,SAAU,CACN,KAAK,gBAAgB,QACrB,KAAK,cAAc,QACnB,KAAK,eAAe,QACpB,KAAK,eAAe,QACpB,GAAI,CACA,KAAK,WAAW,UAChB,KAAK,iBAAiB,SAAS,CAClC,OACMA,EAAO,CACV,KAAK,YAAYA,EAAO,uBAAuB,CAClD,CACJ,CACD,SAAU,CACN,KAAK,eAAe,SACvB,CACD,YAAa,CACT,GAAI,CACA,KAAK,WAAW,aAChB,KAAK,iBAAiB,YAAY,CACrC,OACMA,EAAO,CACV,KAAK,YAAYA,EAAO,0BAA0B,CACrD,CACD,KAAK,eAAe,OACpB,KAAK,eAAe,OACpB,KAAK,cAAc,OACnB,KAAK,gBAAgB,MACxB,CACD,IAAI,aAAc,CACd,OAAO,KAAK,OAAO,WACtB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,OAAO,UACtB,CACD,IAAI,QAAS,CACT,OAAO,KAAK,YAAY,MAC3B,CACD,IAAI,YAAa,CACb,OAAO,KAAK,YAAY,UAC3B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,eAAgB,CAChB,OAAO,KAAK,QAAQ,aACvB,CACD,YAAYA,EAAOpG,EAASwD,EAAS,GAAI,CACrC,KAAM,CAAE,WAAA8c,EAAY,WAAAwuM,EAAY,QAAAzuN,CAAO,EAAK,KAC5CmD,EAAS,OAAO,OAAO,CAAE,WAAA8c,EAAY,WAAAwuM,EAAY,QAAAzuN,CAAO,EAAImD,CAAM,EAClE,KAAK,YAAY,YAAY4C,EAAO,SAASpG,CAAO,GAAIwD,CAAM,CACjE,CACD,gBAAgBnD,EAASJ,EAAM,CAC3B,KAAK,uBAAuB,GAAGA,CAAI,kBAAmBI,CAAO,CAChE,CACD,mBAAmBA,EAASJ,EAAM,CAC9B,KAAK,uBAAuB,GAAGA,CAAI,qBAAsBI,CAAO,CACnE,CACD,gBAAgB+xN,EAAQ/xN,EAASJ,EAAM,CACnC,KAAK,uBAAuB,GAAG2tN,GAAkB3tN,CAAI,CAAC,kBAAmBmyN,EAAQ/xN,CAAO,CAC3F,CACD,mBAAmB+xN,EAAQ/xN,EAASJ,EAAM,CACtC,KAAK,uBAAuB,GAAG2tN,GAAkB3tN,CAAI,CAAC,qBAAsBmyN,EAAQ/xN,CAAO,CAC9F,CACD,uBAAuB6hL,KAAe97J,EAAM,CACxC,MAAM0oM,EAAa,KAAK,WACpB,OAAOA,EAAW5sC,CAAU,GAAK,YACjC4sC,EAAW5sC,CAAU,EAAE,GAAG97J,CAAI,CAErC,CACL,CAEA,SAASssM,IAAMnB,EAAa,CACxB,OAAOoB,IAAOpB,EAAaqB,IAAqBrB,CAAW,CAAC,CAChE,CACA,SAASoB,IAAOpB,EAAah2L,EAAY,CACrC,MAAMs3L,EAAoB78I,IAAOu7I,CAAW,EACtCuB,EAAmBC,IAAoBxB,EAAY,UAAWh2L,CAAU,EAC9E,cAAO,iBAAiBs3L,EAAkB,UAAWC,CAAgB,EAC9DD,CACX,CACA,SAASD,IAAqBrB,EAAa,CAEvC,OADkBD,GAAiCC,EAAa,WAAW,EAC1D,OAAO,CAACyB,EAAmBC,IAAa,CACrD,MAAM13L,EAAa03L,EAAS1B,CAAW,EACvC,UAAWj/M,KAAOipB,EAAY,CAC1B,MAAMymD,EAAagxI,EAAkB1gN,CAAG,GAAK,GAC7C0gN,EAAkB1gN,CAAG,EAAI,OAAO,OAAO0vE,EAAYzmD,EAAWjpB,CAAG,CAAC,CACrE,CACD,OAAO0gN,CACV,EAAE,CAAE,EACT,CACA,SAASD,IAAoBrzN,EAAW67B,EAAY,CAChD,OAAO23L,IAAW33L,CAAU,EAAE,OAAO,CAACu3L,EAAkBxgN,IAAQ,CAC5D,MAAM0vE,EAAamxI,IAAsBzzN,EAAW67B,EAAYjpB,CAAG,EACnE,OAAI0vE,GACA,OAAO,OAAO8wI,EAAkB,CAAE,CAACxgN,CAAG,EAAG0vE,CAAU,CAAE,EAElD8wI,CACV,EAAE,CAAE,EACT,CACA,SAASK,IAAsBzzN,EAAW67B,EAAYjpB,EAAK,CACvD,MAAM8gN,EAAsB,OAAO,yBAAyB1zN,EAAW4S,CAAG,EAE1E,GAAI,EADoB8gN,GAAuB,UAAWA,GACpC,CAClB,MAAMpxI,EAAa,OAAO,yBAAyBzmD,EAAYjpB,CAAG,EAAE,MACpE,OAAI8gN,IACApxI,EAAW,IAAMoxI,EAAoB,KAAOpxI,EAAW,IACvDA,EAAW,IAAMoxI,EAAoB,KAAOpxI,EAAW,KAEpDA,CACV,CACL,CACA,MAAMkxI,IACE,OAAO,OAAO,uBAAyB,WAC/B5nM,GAAW,CAAC,GAAG,OAAO,oBAAoBA,CAAM,EAAG,GAAG,OAAO,sBAAsBA,CAAM,CAAC,EAG3F,OAAO,oBAGhB0qD,KAAU,IAAM,CAClB,SAASq9I,EAAkB9B,EAAa,CACpC,SAAS+B,GAAW,CAChB,OAAO,QAAQ,UAAU/B,EAAa,UAAW,UAAU,CAC9D,CACD,OAAA+B,EAAS,UAAY,OAAO,OAAO/B,EAAY,UAAW,CACtD,YAAa,CAAE,MAAO+B,CAAU,CAC5C,CAAS,EACD,QAAQ,eAAeA,EAAU/B,CAAW,EACrC+B,CACV,CACD,SAASC,GAAuB,CAI5B,MAAMvzM,EAAIqzM,EAHA,UAAY,CAClB,KAAK,EAAE,KAAK,IAAI,CAC5B,CACqC,EAC7B,OAAArzM,EAAE,UAAU,EAAI,UAAY,GACrB,IAAIA,CACd,CACD,GAAI,CACA,OAAAuzM,IACOF,CACV,MACa,CACV,OAAQ9B,GAAgB,cAAuBA,CAAY,CACnE,CACK,CACL,KAEA,SAASiC,IAAgBzB,EAAY,CACjC,MAAO,CACH,WAAYA,EAAW,WACvB,sBAAuBW,IAAMX,EAAW,qBAAqB,CACrE,CACA,CAEA,MAAM0B,GAAO,CACT,YAAYzG,EAAa+E,EAAY,CACjC,KAAK,YAAc/E,EACnB,KAAK,WAAawG,IAAgBzB,CAAU,EAC5C,KAAK,gBAAkB,IAAI,QAC3B,KAAK,kBAAoB,IAAI,GAChC,CACD,IAAI,YAAa,CACb,OAAO,KAAK,WAAW,UAC1B,CACD,IAAI,uBAAwB,CACxB,OAAO,KAAK,WAAW,qBAC1B,CACD,IAAI,UAAW,CACX,OAAO,MAAM,KAAK,KAAK,iBAAiB,CAC3C,CACD,uBAAuBS,EAAO,CAC1B,MAAMz1M,EAAU,KAAK,qBAAqBy1M,CAAK,EAC/C,KAAK,kBAAkB,IAAIz1M,CAAO,EAClCA,EAAQ,QAAO,CAClB,CACD,0BAA0By1M,EAAO,CAC7B,MAAMz1M,EAAU,KAAK,gBAAgB,IAAIy1M,CAAK,EAC1Cz1M,IACA,KAAK,kBAAkB,OAAOA,CAAO,EACrCA,EAAQ,WAAU,EAEzB,CACD,qBAAqBy1M,EAAO,CACxB,IAAIz1M,EAAU,KAAK,gBAAgB,IAAIy1M,CAAK,EAC5C,OAAKz1M,IACDA,EAAU,IAAIw1M,IAAQ,KAAMC,CAAK,EACjC,KAAK,gBAAgB,IAAIA,EAAOz1M,CAAO,GAEpCA,CACV,CACL,CAEA,MAAM22M,GAAS,CACX,YAAYlB,EAAO,CACf,KAAK,MAAQA,CAChB,CACD,IAAIvyN,EAAM,CACN,OAAO,KAAK,KAAK,IAAI,KAAK,WAAWA,CAAI,CAAC,CAC7C,CACD,IAAIA,EAAM,CACN,OAAO,KAAK,OAAOA,CAAI,EAAE,CAAC,CAC7B,CACD,OAAOA,EAAM,CACT,MAAMuwN,EAAc,KAAK,KAAK,IAAI,KAAK,WAAWvwN,CAAI,CAAC,GAAK,GAC5D,OAAOwe,IAAS+xM,CAAW,CAC9B,CACD,iBAAiBvwN,EAAM,CACnB,OAAO,KAAK,KAAK,uBAAuB,KAAK,WAAWA,CAAI,CAAC,CAChE,CACD,WAAWA,EAAM,CACb,MAAO,GAAGA,CAAI,QACjB,CACD,IAAI,MAAO,CACP,OAAO,KAAK,MAAM,IACrB,CACL,CAEA,MAAM0zN,GAAQ,CACV,YAAYnB,EAAO,CACf,KAAK,MAAQA,CAChB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,MAAM,UACrB,CACD,IAAIlgN,EAAK,CACL,MAAMrS,EAAO,KAAK,uBAAuBqS,CAAG,EAC5C,OAAO,KAAK,QAAQ,aAAarS,CAAI,CACxC,CACD,IAAIqS,EAAK3R,EAAO,CACZ,MAAMV,EAAO,KAAK,uBAAuBqS,CAAG,EAC5C,YAAK,QAAQ,aAAarS,EAAMU,CAAK,EAC9B,KAAK,IAAI2R,CAAG,CACtB,CACD,IAAIA,EAAK,CACL,MAAMrS,EAAO,KAAK,uBAAuBqS,CAAG,EAC5C,OAAO,KAAK,QAAQ,aAAarS,CAAI,CACxC,CACD,OAAOqS,EAAK,CACR,GAAI,KAAK,IAAIA,CAAG,EAAG,CACf,MAAMrS,EAAO,KAAK,uBAAuBqS,CAAG,EAC5C,YAAK,QAAQ,gBAAgBrS,CAAI,EAC1B,EACV,KAEG,OAAO,EAEd,CACD,uBAAuBqS,EAAK,CACxB,MAAO,QAAQ,KAAK,UAAU,IAAIw7M,GAAUx7M,CAAG,CAAC,EACnD,CACL,CAEA,MAAMshN,GAAM,CACR,YAAYtvC,EAAQ,CAChB,KAAK,mBAAqB,IAAI,QAC9B,KAAK,OAASA,CACjB,CACD,KAAKh5J,EAAQhZ,EAAKtS,EAAS,CACvB,IAAI6zN,EAAa,KAAK,mBAAmB,IAAIvoM,CAAM,EAC9CuoM,IACDA,EAAa,IAAI,IACjB,KAAK,mBAAmB,IAAIvoM,EAAQuoM,CAAU,GAE7CA,EAAW,IAAIvhN,CAAG,IACnBuhN,EAAW,IAAIvhN,CAAG,EAClB,KAAK,OAAO,KAAKtS,EAASsrB,CAAM,EAEvC,CACL,CAEA,SAASwoM,GAA4BlvN,EAAesD,EAAO,CACvD,MAAO,IAAItD,CAAa,MAAMsD,CAAK,IACvC,CAEA,MAAM6rN,GAAU,CACZ,YAAYvB,EAAO,CACf,KAAK,MAAQA,CAChB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,MAAM,UACrB,CACD,IAAI,QAAS,CACT,OAAO,KAAK,MAAM,MACrB,CACD,IAAIwB,EAAY,CACZ,OAAO,KAAK,KAAKA,CAAU,GAAK,IACnC,CACD,QAAQC,EAAa,CACjB,OAAOA,EAAY,OAAO,CAAC7zN,EAAQ4zN,IAAe5zN,GAAU,KAAK,WAAW4zN,CAAU,GAAK,KAAK,iBAAiBA,CAAU,EAAG,MAAS,CAC1I,CACD,WAAWC,EAAa,CACpB,OAAOA,EAAY,OAAO,CAAChpM,EAAS+oM,IAAe,CAC/C,GAAG/oM,EACH,GAAG,KAAK,eAAe+oM,CAAU,EACjC,GAAG,KAAK,qBAAqBA,CAAU,CAC1C,EAAE,CAAE,EACR,CACD,WAAWA,EAAY,CACnB,MAAMruN,EAAW,KAAK,yBAAyBquN,CAAU,EACzD,OAAO,KAAK,MAAM,YAAYruN,CAAQ,CACzC,CACD,eAAequN,EAAY,CACvB,MAAMruN,EAAW,KAAK,yBAAyBquN,CAAU,EACzD,OAAO,KAAK,MAAM,gBAAgBruN,CAAQ,CAC7C,CACD,yBAAyBquN,EAAY,CACjC,MAAMpvN,EAAgB,KAAK,OAAO,wBAAwB,KAAK,UAAU,EACzE,OAAOkvN,GAA4BlvN,EAAeovN,CAAU,CAC/D,CACD,iBAAiBA,EAAY,CACzB,MAAMruN,EAAW,KAAK,+BAA+BquN,CAAU,EAC/D,OAAO,KAAK,UAAU,KAAK,MAAM,YAAYruN,CAAQ,EAAGquN,CAAU,CACrE,CACD,qBAAqBA,EAAY,CAC7B,MAAMruN,EAAW,KAAK,+BAA+BquN,CAAU,EAC/D,OAAO,KAAK,MAAM,gBAAgBruN,CAAQ,EAAE,IAAKtF,GAAY,KAAK,UAAUA,EAAS2zN,CAAU,CAAC,CACnG,CACD,+BAA+BA,EAAY,CACvC,MAAME,EAAmB,GAAG,KAAK,UAAU,IAAIF,CAAU,GACzD,OAAOF,GAA4B,KAAK,OAAO,gBAAiBI,CAAgB,CACnF,CACD,UAAU7zN,EAAS2zN,EAAY,CAC3B,GAAI3zN,EAAS,CACT,KAAM,CAAE,WAAAigB,CAAY,EAAG,KACjB1b,EAAgB,KAAK,OAAO,gBAC5BuvN,EAAuB,KAAK,OAAO,wBAAwB7zM,CAAU,EAC3E,KAAK,MAAM,KAAKjgB,EAAS,UAAU2zN,CAAU,GAAI,kBAAkBpvN,CAAa,KAAK0b,CAAU,IAAI0zM,CAAU,UAAUG,CAAoB,KAAKH,CAAU,UAC/IpvN,CAAa,+EAA+E,CAC1G,CACD,OAAOvE,CACV,CACD,IAAI,OAAQ,CACR,OAAO,KAAK,MAAM,KACrB,CACL,CAEA,MAAM+zN,GAAU,CACZ,YAAY5B,EAAO6B,EAAmB,CAClC,KAAK,MAAQ7B,EACb,KAAK,kBAAoB6B,CAC5B,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,MAAM,UACrB,CACD,IAAI,QAAS,CACT,OAAO,KAAK,MAAM,MACrB,CACD,IAAIpC,EAAY,CACZ,OAAO,KAAK,KAAKA,CAAU,GAAK,IACnC,CACD,QAAQqC,EAAa,CACjB,OAAOA,EAAY,OAAO,CAAClC,EAAQH,IAAeG,GAAU,KAAK,WAAWH,CAAU,EAAG,MAAS,CACrG,CACD,WAAWqC,EAAa,CACpB,OAAOA,EAAY,OAAO,CAACC,EAAStC,IAAe,CAAC,GAAGsC,EAAS,GAAG,KAAK,eAAetC,CAAU,CAAC,EAAG,CAAE,EAC1G,CACD,yBAAyBA,EAAY,CACjC,MAAMrtN,EAAgB,KAAK,OAAO,wBAAwB,KAAK,WAAYqtN,CAAU,EACrF,OAAO,KAAK,kBAAkB,aAAartN,CAAa,CAC3D,CACD,WAAWqtN,EAAY,CACnB,MAAMtsN,EAAW,KAAK,yBAAyBssN,CAAU,EACzD,GAAItsN,EACA,OAAO,KAAK,YAAYA,EAAUssN,CAAU,CACnD,CACD,eAAeA,EAAY,CACvB,MAAMtsN,EAAW,KAAK,yBAAyBssN,CAAU,EACzD,OAAOtsN,EAAW,KAAK,gBAAgBA,EAAUssN,CAAU,EAAI,EAClE,CACD,YAAYtsN,EAAUssN,EAAY,CAE9B,OADiB,KAAK,MAAM,cAActsN,CAAQ,EAClC,OAAQtF,GAAY,KAAK,eAAeA,EAASsF,EAAUssN,CAAU,CAAC,EAAE,CAAC,CAC5F,CACD,gBAAgBtsN,EAAUssN,EAAY,CAElC,OADiB,KAAK,MAAM,cAActsN,CAAQ,EAClC,OAAQtF,GAAY,KAAK,eAAeA,EAASsF,EAAUssN,CAAU,CAAC,CACzF,CACD,eAAe5xN,EAASsF,EAAUssN,EAAY,CAC1C,MAAMuC,EAAsBn0N,EAAQ,aAAa,KAAK,MAAM,OAAO,mBAAmB,GAAK,GAC3F,OAAOA,EAAQ,QAAQsF,CAAQ,GAAK6uN,EAAoB,MAAM,GAAG,EAAE,SAASvC,CAAU,CACzF,CACL,CAEA,MAAMwC,EAAM,CACR,YAAYzG,EAAQ3tN,EAASigB,EAAYgkK,EAAQ,CAC7C,KAAK,QAAU,IAAIyvC,IAAU,IAAI,EACjC,KAAK,QAAU,IAAIL,IAAS,IAAI,EAChC,KAAK,KAAO,IAAIC,IAAQ,IAAI,EAC5B,KAAK,gBAAmBtzN,GACbA,EAAQ,QAAQ,KAAK,kBAAkB,IAAM,KAAK,QAE7D,KAAK,OAAS2tN,EACd,KAAK,QAAU3tN,EACf,KAAK,WAAaigB,EAClB,KAAK,MAAQ,IAAIszM,IAAMtvC,CAAM,EAC7B,KAAK,QAAU,IAAI8vC,IAAU,KAAK,cAAe/zN,CAAO,CAC3D,CACD,YAAYsF,EAAU,CAClB,OAAO,KAAK,QAAQ,QAAQA,CAAQ,EAAI,KAAK,QAAU,KAAK,cAAcA,CAAQ,EAAE,KAAK,KAAK,eAAe,CAChH,CACD,gBAAgBA,EAAU,CACtB,MAAO,CACH,GAAI,KAAK,QAAQ,QAAQA,CAAQ,EAAI,CAAC,KAAK,OAAO,EAAI,CAAE,EACxD,GAAG,KAAK,cAAcA,CAAQ,EAAE,OAAO,KAAK,eAAe,CACvE,CACK,CACD,cAAcA,EAAU,CACpB,OAAO,MAAM,KAAK,KAAK,QAAQ,iBAAiBA,CAAQ,CAAC,CAC5D,CACD,IAAI,oBAAqB,CACrB,OAAOmuN,GAA4B,KAAK,OAAO,oBAAqB,KAAK,UAAU,CACtF,CACD,IAAI,iBAAkB,CAClB,OAAO,KAAK,UAAY,SAAS,eACpC,CACD,IAAI,eAAgB,CAChB,OAAO,KAAK,gBACN,KACA,IAAIW,GAAM,KAAK,OAAQ,SAAS,gBAAiB,KAAK,WAAY,KAAK,MAAM,MAAM,CAC5F,CACL,CAEA,MAAMC,GAAc,CAChB,YAAYr0N,EAAS2tN,EAAQhoN,EAAU,CACnC,KAAK,QAAU3F,EACf,KAAK,OAAS2tN,EACd,KAAK,SAAWhoN,EAChB,KAAK,kBAAoB,IAAI0qN,GAAkB,KAAK,QAAS,KAAK,oBAAqB,IAAI,EAC3F,KAAK,4BAA8B,IAAI,QACvC,KAAK,qBAAuB,IAAI,OACnC,CACD,OAAQ,CACJ,KAAK,kBAAkB,OAC1B,CACD,MAAO,CACH,KAAK,kBAAkB,MAC1B,CACD,IAAI,qBAAsB,CACtB,OAAO,KAAK,OAAO,mBACtB,CACD,mBAAmBxoN,EAAO,CACtB,KAAM,CAAE,QAAA7H,EAAS,QAASigB,CAAU,EAAKpY,EACnCysN,EAAqB,KAAK,kCAAkCt0N,CAAO,EACzE,IAAImyN,EAAQmC,EAAmB,IAAIr0M,CAAU,EAC7C,OAAKkyM,IACDA,EAAQ,KAAK,SAAS,mCAAmCnyN,EAASigB,CAAU,EAC5Eq0M,EAAmB,IAAIr0M,EAAYkyM,CAAK,GAErCA,CACV,CACD,oBAAoBnyN,EAASM,EAAO,CAChC,MAAMi0N,GAAkB,KAAK,qBAAqB,IAAIj0N,CAAK,GAAK,GAAK,EACrE,KAAK,qBAAqB,IAAIA,EAAOi0N,CAAc,EAC/CA,GAAkB,GAClB,KAAK,SAAS,eAAej0N,CAAK,CAEzC,CACD,sBAAsBN,EAASM,EAAO,CAClC,MAAMi0N,EAAiB,KAAK,qBAAqB,IAAIj0N,CAAK,EACtDi0N,IACA,KAAK,qBAAqB,IAAIj0N,EAAOi0N,EAAiB,CAAC,EACnDA,GAAkB,GAClB,KAAK,SAAS,kBAAkBj0N,CAAK,EAGhD,CACD,kCAAkCN,EAAS,CACvC,IAAIs0N,EAAqB,KAAK,4BAA4B,IAAIt0N,CAAO,EACrE,OAAKs0N,IACDA,EAAqB,IAAI,IACzB,KAAK,4BAA4B,IAAIt0N,EAASs0N,CAAkB,GAE7DA,CACV,CACL,CAEA,MAAMh0C,GAAO,CACT,YAAYqsC,EAAa,CACrB,KAAK,YAAcA,EACnB,KAAK,cAAgB,IAAI0H,IAAc,KAAK,QAAS,KAAK,OAAQ,IAAI,EACtE,KAAK,mBAAqB,IAAIlF,GAC9B,KAAK,oBAAsB,IAAI,GAClC,CACD,IAAI,SAAU,CACV,OAAO,KAAK,YAAY,OAC3B,CACD,IAAI,QAAS,CACT,OAAO,KAAK,YAAY,MAC3B,CACD,IAAI,QAAS,CACT,OAAO,KAAK,YAAY,MAC3B,CACD,IAAI,qBAAsB,CACtB,OAAO,KAAK,OAAO,mBACtB,CACD,IAAI,SAAU,CACV,OAAO,MAAM,KAAK,KAAK,oBAAoB,OAAQ,EACtD,CACD,IAAI,UAAW,CACX,OAAO,KAAK,QAAQ,OAAO,CAACznM,EAAU3M,IAAW2M,EAAS,OAAO3M,EAAO,QAAQ,EAAG,CAAE,EACxF,CACD,OAAQ,CACJ,KAAK,cAAc,OACtB,CACD,MAAO,CACH,KAAK,cAAc,MACtB,CACD,eAAe22M,EAAY,CACvB,KAAK,iBAAiBA,EAAW,UAAU,EAC3C,MAAM32M,EAAS,IAAIq4M,IAAO,KAAK,YAAa1B,CAAU,EACtD,KAAK,cAAc32M,CAAM,EACzB,MAAMy5M,EAAY9C,EAAW,sBAAsB,UAC/C8C,GACAA,EAAU9C,EAAW,WAAY,KAAK,WAAW,CAExD,CACD,iBAAiBzxM,EAAY,CACzB,MAAMlF,EAAS,KAAK,oBAAoB,IAAIkF,CAAU,EAClDlF,GACA,KAAK,iBAAiBA,CAAM,CAEnC,CACD,kCAAkC/a,EAASigB,EAAY,CACnD,MAAMlF,EAAS,KAAK,oBAAoB,IAAIkF,CAAU,EACtD,GAAIlF,EACA,OAAOA,EAAO,SAAS,KAAM2B,GAAYA,EAAQ,SAAW1c,CAAO,CAE1E,CACD,YAAY+F,EAAOpG,EAASwD,EAAQ,CAChC,KAAK,YAAY,YAAY4C,EAAOpG,EAASwD,CAAM,CACtD,CACD,mCAAmCnD,EAASigB,EAAY,CACpD,OAAO,IAAIm0M,GAAM,KAAK,OAAQp0N,EAASigB,EAAY,KAAK,MAAM,CACjE,CACD,eAAekyM,EAAO,CAClB,KAAK,mBAAmB,IAAIA,EAAM,WAAYA,CAAK,EACnD,MAAMp3M,EAAS,KAAK,oBAAoB,IAAIo3M,EAAM,UAAU,EACxDp3M,GACAA,EAAO,uBAAuBo3M,CAAK,CAE1C,CACD,kBAAkBA,EAAO,CACrB,KAAK,mBAAmB,OAAOA,EAAM,WAAYA,CAAK,EACtD,MAAMp3M,EAAS,KAAK,oBAAoB,IAAIo3M,EAAM,UAAU,EACxDp3M,GACAA,EAAO,0BAA0Bo3M,CAAK,CAE7C,CACD,cAAcp3M,EAAQ,CAClB,KAAK,oBAAoB,IAAIA,EAAO,WAAYA,CAAM,EACvC,KAAK,mBAAmB,gBAAgBA,EAAO,UAAU,EACjE,QAASo3M,GAAUp3M,EAAO,uBAAuBo3M,CAAK,CAAC,CACjE,CACD,iBAAiBp3M,EAAQ,CACrB,KAAK,oBAAoB,OAAOA,EAAO,UAAU,EAClC,KAAK,mBAAmB,gBAAgBA,EAAO,UAAU,EACjE,QAASo3M,GAAUp3M,EAAO,0BAA0Bo3M,CAAK,CAAC,CACpE,CACL,CAEA,MAAMsC,IAAgB,CAClB,oBAAqB,kBACrB,gBAAiB,cACjB,gBAAiB,cACjB,wBAA0Bx0M,GAAe,QAAQA,CAAU,UAC3D,wBAAyB,CAACA,EAAY8xM,IAAW,QAAQ9xM,CAAU,IAAI8xM,CAAM,UAC7E,YAAa,OAAO,OAAO,OAAO,OAAO,CAAE,MAAO,QAAS,IAAK,MAAO,IAAK,SAAU,MAAO,IAAK,GAAI,UAAW,KAAM,YAAa,KAAM,YAAa,MAAO,aAAc,KAAM,OAAQ,IAAK,KAAK,EAAI2C,GAAkB,6BAA6B,MAAM,EAAE,EAAE,IAAKl/M,GAAM,CAACA,EAAGA,CAAC,CAAC,CAAC,CAAC,EAAGk/M,GAAkB,aAAa,MAAM,EAAE,EAAE,IAAKz8M,GAAM,CAACA,EAAGA,CAAC,CAAC,CAAC,CAAC,CACvV,EACA,SAASy8M,GAAkBn5M,EAAO,CAC9B,OAAOA,EAAM,OAAO,CAAC+lK,EAAM,CAAC9pK,EAAGY,CAAC,IAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEkpK,CAAI,EAAG,CAAE,CAAC9pK,CAAC,EAAGY,CAAG,GAAI,EAAE,CAClG,CAEA,MAAMu8M,GAAY,CACd,YAAY30N,EAAU,SAAS,gBAAiB2tN,EAAS8G,IAAe,CACpE,KAAK,OAAS,QACd,KAAK,MAAQ,GACb,KAAK,iBAAmB,CAACx0M,EAAYmyM,EAAcjvN,EAAS,KAAO,CAC3D,KAAK,OACL,KAAK,oBAAoB8c,EAAYmyM,EAAcjvN,CAAM,CAEzE,EACQ,KAAK,QAAUnD,EACf,KAAK,OAAS2tN,EACd,KAAK,WAAa,IAAIjB,IAAW,IAAI,EACrC,KAAK,OAAS,IAAIpsC,IAAO,IAAI,EAC7B,KAAK,wBAA0B,OAAO,OAAO,CAAE,EAAEwsC,GAA8B,CAClF,CACD,OAAO,MAAM9sN,EAAS2tN,EAAQ,CAC1B,MAAMhB,EAAc,IAAI,KAAK3sN,EAAS2tN,CAAM,EAC5C,OAAAhB,EAAY,MAAK,EACVA,CACV,CACD,MAAM,OAAQ,CACV,MAAMiI,IAAQ,EACd,KAAK,iBAAiB,cAAe,UAAU,EAC/C,KAAK,WAAW,QAChB,KAAK,OAAO,QACZ,KAAK,iBAAiB,cAAe,OAAO,CAC/C,CACD,MAAO,CACH,KAAK,iBAAiB,cAAe,UAAU,EAC/C,KAAK,WAAW,OAChB,KAAK,OAAO,OACZ,KAAK,iBAAiB,cAAe,MAAM,CAC9C,CACD,SAAS30M,EAAY40M,EAAuB,CACxC,KAAK,KAAK,CAAE,WAAA50M,EAAY,sBAAA40M,CAAuB,EAClD,CACD,qBAAqBj1N,EAAMioB,EAAQ,CAC/B,KAAK,wBAAwBjoB,CAAI,EAAIioB,CACxC,CACD,KAAK3a,KAAS0oH,EAAM,EACI,MAAM,QAAQ1oH,CAAI,EAAIA,EAAO,CAACA,EAAM,GAAG0oH,CAAI,GACnD,QAAS87F,GAAe,CAC5BA,EAAW,sBAAsB,YACjC,KAAK,OAAO,eAAeA,CAAU,CAErD,CAAS,CACJ,CACD,OAAOxkN,KAAS0oH,EAAM,EACE,MAAM,QAAQ1oH,CAAI,EAAIA,EAAO,CAACA,EAAM,GAAG0oH,CAAI,GACnD,QAAS31G,GAAe,KAAK,OAAO,iBAAiBA,CAAU,CAAC,CAC/E,CACD,IAAI,aAAc,CACd,OAAO,KAAK,OAAO,SAAS,IAAKvD,GAAYA,EAAQ,UAAU,CAClE,CACD,qCAAqC1c,EAASigB,EAAY,CACtD,MAAMvD,EAAU,KAAK,OAAO,kCAAkC1c,EAASigB,CAAU,EACjF,OAAOvD,EAAUA,EAAQ,WAAa,IACzC,CACD,YAAY3W,EAAOpG,EAASwD,EAAQ,CAChC,IAAI3C,EACJ,KAAK,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA,IAAkBb,EAASoG,EAAO5C,CAAM,GACzD3C,EAAK,OAAO,WAAa,MAAQA,IAAO,QAAkBA,EAAG,KAAK,OAAQb,EAAS,GAAI,EAAG,EAAGoG,CAAK,CACtG,CACD,oBAAoBka,EAAYmyM,EAAcjvN,EAAS,GAAI,CACvDA,EAAS,OAAO,OAAO,CAAE,YAAa,IAAI,EAAIA,CAAM,EACpD,KAAK,OAAO,eAAe,GAAG8c,CAAU,KAAKmyM,CAAY,EAAE,EAC3D,KAAK,OAAO,IAAI,WAAY,OAAO,OAAO,GAAIjvN,CAAM,CAAC,EACrD,KAAK,OAAO,UACf,CACL,CACA,SAASyxN,KAAW,CAChB,OAAO,IAAI,QAASvxN,GAAY,CACxB,SAAS,YAAc,UACvB,SAAS,iBAAiB,mBAAoB,IAAMA,EAAS,GAG7DA,GAEZ,CAAK,CACL,CAEA,SAASyxN,IAAwB5D,EAAa,CAE1C,OADgBD,GAAiCC,EAAa,SAAS,EACxD,OAAO,CAACh2L,EAAY65L,IACxB,OAAO,OAAO75L,EAAY85L,IAA6BD,CAAe,CAAC,EAC/E,CAAE,EACT,CACA,SAASC,IAA6B/iN,EAAK,CACvC,MAAO,CACH,CAAC,GAAGA,CAAG,OAAO,EAAG,CACb,KAAM,CACF,KAAM,CAAE,QAAA6jD,CAAS,EAAG,KACpB,GAAIA,EAAQ,IAAI7jD,CAAG,EACf,OAAO6jD,EAAQ,IAAI7jD,CAAG,EAErB,CACD,MAAM61M,EAAYhyJ,EAAQ,iBAAiB7jD,CAAG,EAC9C,MAAM,IAAI,MAAM,sBAAsB61M,CAAS,GAAG,CACrD,CACJ,CACJ,EACD,CAAC,GAAG71M,CAAG,SAAS,EAAG,CACf,KAAM,CACF,OAAO,KAAK,QAAQ,OAAOA,CAAG,CACjC,CACJ,EACD,CAAC,MAAMu7M,GAAWv7M,CAAG,CAAC,OAAO,EAAG,CAC5B,KAAM,CACF,OAAO,KAAK,QAAQ,IAAIA,CAAG,CAC9B,CACJ,CACT,CACA,CAEA,SAASgjN,IAAyB/D,EAAa,CAE3C,OADgBD,GAAiCC,EAAa,SAAS,EACxD,OAAO,CAACh2L,EAAYg6L,IACxB,OAAO,OAAOh6L,EAAYi6L,IAA8BD,CAAgB,CAAC,EACjF,CAAE,EACT,CACA,SAASC,IAA8Bv1N,EAAM,CACzC,MAAMw1N,EAAgB7H,GAAkB3tN,CAAI,EAC5C,MAAO,CACH,CAAC,GAAGw1N,CAAa,QAAQ,EAAG,CACxB,KAAM,CACF,MAAMrD,EAAS,KAAK,QAAQ,KAAKnyN,CAAI,EACrC,GAAImyN,EAAQ,CACR,MAAMsD,EAAmB,KAAK,YAAY,qCAAqCtD,EAAQnyN,CAAI,EAC3F,GAAIy1N,EACA,OAAOA,EAGP,MAAM,IAAI,MAAM,4BAA4Bz1N,CAAI,sCAAsC,KAAK,UAAU,cAAc,CAE1H,CACD,MAAM,IAAI,MAAM,2BAA2BA,CAAI,UAAU,KAAK,UAAU,cAAc,CACzF,CACJ,EACD,CAAC,GAAGw1N,CAAa,SAAS,EAAG,CACzB,KAAM,CACF,MAAMlB,EAAU,KAAK,QAAQ,QAAQt0N,CAAI,EACzC,OAAIs0N,EAAQ,OAAS,EACVA,EACF,IAAKnC,GAAW,CACjB,MAAMtD,EAAa,KAAK,YAAY,qCAAqCsD,EAAQnyN,CAAI,EACrF,GAAI6uN,EACA,OAAOA,EAGP,QAAQ,KAAK,iEAAiE7uN,CAAI,UAAU,KAAK,UAAU,IAAKmyN,CAAM,CAElJ,CAAqB,EACI,OAAQtD,GAAeA,CAAU,EAEnC,EACV,CACJ,EACD,CAAC,GAAG2G,CAAa,eAAe,EAAG,CAC/B,KAAM,CACF,MAAMrD,EAAS,KAAK,QAAQ,KAAKnyN,CAAI,EACrC,GAAImyN,EACA,OAAOA,EAGP,MAAM,IAAI,MAAM,2BAA2BnyN,CAAI,UAAU,KAAK,UAAU,cAAc,CAE7F,CACJ,EACD,CAAC,GAAGw1N,CAAa,gBAAgB,EAAG,CAChC,KAAM,CACF,OAAO,KAAK,QAAQ,QAAQx1N,CAAI,CACnC,CACJ,EACD,CAAC,MAAM4tN,GAAW4H,CAAa,CAAC,QAAQ,EAAG,CACvC,KAAM,CACF,OAAO,KAAK,QAAQ,IAAIx1N,CAAI,CAC/B,CACJ,CACT,CACA,CAEA,SAAS01N,IAAyBpE,EAAa,CAE3C,OADgBD,GAAiCC,EAAa,SAAS,EACxD,OAAO,CAACh2L,EAAYq6L,IACxB,OAAO,OAAOr6L,EAAYs6L,IAA8BD,CAAgB,CAAC,EACjF,CAAE,EACT,CACA,SAASC,IAA8B51N,EAAM,CACzC,MAAO,CACH,CAAC,GAAGA,CAAI,QAAQ,EAAG,CACf,KAAM,CACF,MAAMG,EAAS,KAAK,QAAQ,KAAKH,CAAI,EACrC,GAAIG,EACA,OAAOA,EAGP,MAAM,IAAI,MAAM,2BAA2BH,CAAI,UAAU,KAAK,UAAU,cAAc,CAE7F,CACJ,EACD,CAAC,GAAGA,CAAI,SAAS,EAAG,CAChB,KAAM,CACF,OAAO,KAAK,QAAQ,QAAQA,CAAI,CACnC,CACJ,EACD,CAAC,MAAM4tN,GAAW5tN,CAAI,CAAC,QAAQ,EAAG,CAC9B,KAAM,CACF,OAAO,KAAK,QAAQ,IAAIA,CAAI,CAC/B,CACJ,CACT,CACA,CAEA,SAAS61N,IAAwBvE,EAAa,CAC1C,MAAMwE,EAAuBnE,IAAiCL,EAAa,QAAQ,EAC7EyE,EAAwB,CAC1B,mBAAoB,CAChB,KAAM,CACF,OAAOD,EAAqB,OAAO,CAACzxN,EAAQ2xN,IAAwB,CAChE,MAAMC,EAAkBC,GAAyBF,EAAqB,KAAK,UAAU,EAC/ErxN,EAAgB,KAAK,KAAK,uBAAuBsxN,EAAgB,GAAG,EAC1E,OAAO,OAAO,OAAO5xN,EAAQ,CAAE,CAACM,CAAa,EAAGsxN,CAAe,CAAE,CACpE,EAAE,CAAE,EACR,CACJ,CACT,EACI,OAAOH,EAAqB,OAAO,CAACx6L,EAAY06L,IACrC,OAAO,OAAO16L,EAAY66L,IAAiCH,CAAmB,CAAC,EACvFD,CAAqB,CAC5B,CACA,SAASI,IAAiCH,EAAqBnH,EAAY,CACvE,MAAMiD,EAAaoE,GAAyBF,EAAqBnH,CAAU,EACrE,CAAE,IAAAx8M,EAAK,KAAArS,EAAM,OAAQo2N,EAAM,OAAQC,CAAO,EAAGvE,EACnD,MAAO,CACH,CAAC9xN,CAAI,EAAG,CACJ,KAAM,CACF,MAAMU,EAAQ,KAAK,KAAK,IAAI2R,CAAG,EAC/B,OAAI3R,IAAU,KACH01N,EAAK11N,CAAK,EAGVoxN,EAAW,YAEzB,EACD,IAAIpxN,EAAO,CACHA,IAAU,OACV,KAAK,KAAK,OAAO2R,CAAG,EAGpB,KAAK,KAAK,IAAIA,EAAKgkN,EAAM31N,CAAK,CAAC,CAEtC,CACJ,EACD,CAAC,MAAMktN,GAAW5tN,CAAI,CAAC,EAAE,EAAG,CACxB,KAAM,CACF,OAAO,KAAK,KAAK,IAAIqS,CAAG,GAAKy/M,EAAW,qBAC3C,CACJ,CACT,CACA,CACA,SAASoE,GAAyB,CAACjuN,EAAOquN,CAAc,EAAGzH,EAAY,CACnE,OAAO0H,IAAyC,CAC5C,WAAA1H,EACA,MAAA5mN,EACA,eAAAquN,CACR,CAAK,CACL,CACA,SAASE,GAAuBC,EAAU,CACtC,OAAQA,EAAQ,CACZ,KAAK,MACD,MAAO,QACX,KAAK,QACD,MAAO,UACX,KAAK,OACD,MAAO,SACX,KAAK,OACD,MAAO,SACX,KAAK,OACD,MAAO,QACd,CACL,CACA,SAASC,GAAsBpqN,EAAc,CACzC,OAAQ,OAAOA,EAAY,CACvB,IAAK,UACD,MAAO,UACX,IAAK,SACD,MAAO,SACX,IAAK,SACD,MAAO,QACd,CACD,GAAI,MAAM,QAAQA,CAAY,EAC1B,MAAO,QACX,GAAI,OAAO,UAAU,SAAS,KAAKA,CAAY,IAAM,kBACjD,MAAO,QACf,CACA,SAASqqN,IAAqB/7I,EAAS,CACnC,MAAMg8I,EAAiBJ,GAAuB57I,EAAQ,WAAW,IAAI,EACrE,GAAI,CAACg8I,EACD,OACJ,MAAMC,EAAmBH,GAAsB97I,EAAQ,WAAW,OAAO,EACzE,GAAIg8I,IAAmBC,EAAkB,CACrC,MAAMC,EAAel8I,EAAQ,WAAa,GAAGA,EAAQ,UAAU,IAAIA,EAAQ,KAAK,GAAKA,EAAQ,MAC7F,MAAM,IAAI,MAAM,uDAAuDk8I,CAAY,kCAAkCF,CAAc,qCAAqCh8I,EAAQ,WAAW,OAAO,iBAAiBi8I,CAAgB,IAAI,CAC1O,CACD,OAAOD,CACX,CACA,SAASG,IAAyBn8I,EAAS,CACvC,MAAMg8I,EAAiBD,IAAqB,CACxC,WAAY/7I,EAAQ,WACpB,MAAOA,EAAQ,MACf,WAAYA,EAAQ,cAC5B,CAAK,EACKo8I,EAAuBN,GAAsB97I,EAAQ,cAAc,EACnEq8I,EAAmBT,GAAuB57I,EAAQ,cAAc,EAChEnwE,EAAOmsN,GAAkBI,GAAwBC,EACvD,GAAIxsN,EACA,OAAOA,EACX,MAAMqsN,EAAel8I,EAAQ,WAAa,GAAGA,EAAQ,UAAU,IAAIA,EAAQ,cAAc,GAAKA,EAAQ,MACtG,MAAM,IAAI,MAAM,uBAAuBk8I,CAAY,UAAUl8I,EAAQ,KAAK,SAAS,CACvF,CACA,SAASs8I,IAA0BZ,EAAgB,CAC/C,MAAMG,EAAWD,GAAuBF,CAAc,EACtD,GAAIG,EACA,OAAOU,IAAoBV,CAAQ,EACvC,MAAMnqN,EAAegqN,EAAe,QACpC,OAAIhqN,IAAiB,OACVA,EACJgqN,CACX,CACA,SAASC,IAAyC37I,EAAS,CACvD,MAAMvoE,EAAM,GAAGw7M,GAAUjzI,EAAQ,KAAK,CAAC,SACjCnwE,EAAOssN,IAAyBn8I,CAAO,EAC7C,MAAO,CACH,KAAAnwE,EACA,IAAA4H,EACA,KAAM2sD,GAAS3sD,CAAG,EAClB,IAAI,cAAe,CACf,OAAO6kN,IAA0Bt8I,EAAQ,cAAc,CAC1D,EACD,IAAI,uBAAwB,CACxB,OAAO87I,GAAsB97I,EAAQ,cAAc,IAAM,MAC5D,EACD,OAAQw8I,IAAQ3sN,CAAI,EACpB,OAAQ4sN,GAAQ5sN,CAAI,GAAK4sN,GAAQ,OACzC,CACA,CACA,MAAMF,IAAsB,CACxB,IAAI,OAAQ,CACR,MAAO,EACV,EACD,QAAS,GACT,OAAQ,EACR,IAAI,QAAS,CACT,MAAO,EACV,EACD,OAAQ,EACZ,EACMC,IAAU,CACZ,MAAM12N,EAAO,CACT,MAAMib,EAAQ,KAAK,MAAMjb,CAAK,EAC9B,GAAI,CAAC,MAAM,QAAQib,CAAK,EACpB,MAAM,IAAI,UAAU,yDAAyDjb,CAAK,cAAcg2N,GAAsB/6M,CAAK,CAAC,GAAG,EAEnI,OAAOA,CACV,EACD,QAAQjb,EAAO,CACX,MAAO,EAAEA,GAAS,KAAO,OAAOA,CAAK,EAAE,YAAW,GAAM,QAC3D,EACD,OAAOA,EAAO,CACV,OAAO,OAAOA,CAAK,CACtB,EACD,OAAOA,EAAO,CACV,MAAM2qB,EAAS,KAAK,MAAM3qB,CAAK,EAC/B,GAAI2qB,IAAW,MAAQ,OAAOA,GAAU,UAAY,MAAM,QAAQA,CAAM,EACpE,MAAM,IAAI,UAAU,0DAA0D3qB,CAAK,cAAcg2N,GAAsBrrM,CAAM,CAAC,GAAG,EAErI,OAAOA,CACV,EACD,OAAO3qB,EAAO,CACV,OAAOA,CACV,CACL,EACM22N,GAAU,CACZ,QAASC,IACT,MAAOC,GACP,OAAQA,EACZ,EACA,SAASA,GAAU72N,EAAO,CACtB,OAAO,KAAK,UAAUA,CAAK,CAC/B,CACA,SAAS42N,IAAY52N,EAAO,CACxB,MAAO,GAAGA,CAAK,EACnB,CAEA,IAAA82N,GAAA,KAAiB,CACb,YAAY16M,EAAS,CACjB,KAAK,QAAUA,CAClB,CACD,WAAW,YAAa,CACpB,MAAO,EACV,CACD,OAAO,UAAU26M,EAAaC,EAAc,CAE3C,CACD,IAAI,aAAc,CACd,OAAO,KAAK,QAAQ,WACvB,CACD,IAAI,OAAQ,CACR,OAAO,KAAK,QAAQ,KACvB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,YAAa,CACb,OAAO,KAAK,MAAM,UACrB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,SAAU,CACV,OAAO,KAAK,MAAM,OACrB,CACD,IAAI,MAAO,CACP,OAAO,KAAK,MAAM,IACrB,CACD,YAAa,CACZ,CACD,SAAU,CACT,CACD,YAAa,CACZ,CACD,SAASr0N,EAAW,CAAE,OAAAlD,EAAS,KAAK,QAAS,OAAAoD,EAAS,CAAE,EAAE,OAAA5B,EAAS,KAAK,WAAY,QAAAg2N,EAAU,GAAM,WAAAr0N,EAAa,EAAM,EAAG,GAAI,CAC1H,MAAMmH,EAAO9I,EAAS,GAAGA,CAAM,IAAI0B,CAAS,GAAKA,EAC3C9C,EAAQ,IAAI,YAAYkK,EAAM,CAAE,OAAAlH,EAAQ,QAAAo0N,EAAS,WAAAr0N,CAAU,CAAE,EACnE,OAAAnD,EAAO,cAAcI,CAAK,EACnBA,CACV,CACL,EACAq3N,GAAW,UAAY,CACnB1C,IACAQ,IACAG,IACAR,GACJ,EACAuC,GAAW,QAAU,GACrBA,GAAW,QAAU,GACrBA,GAAW,OAAS,CAAE,ECn2EtB,MAAM7K,GAAcgI,IAAY,MAAO,EAGvChI,GAAY,MAAQ,GACpB,OAAO,SAAaA,GCHpB,MAAM8K,WAA4BD,EAAW,CAI3C,SAASr3N,EAAO,CACdA,EAAM,OAAO,UAAU,IAAI,KAAK,YAAY,EAE5Cw6E,GAAM,KAAKx6E,EAAM,OAAO,QAAQ,GAAG,EAAE,KAAMkC,GAAa,CACtD,KAAK,uBAAuB,UAAYA,EAAS,IACvD,CAAK,CACF,CAED,WAAWlC,EAAO,CACH,QAAQ,2FAA2F,IAEjG,KACbA,EAAM,OAAO,UAAU,IAAI,KAAK,YAAY,EAE5Cw6E,GAAM,IAAIx6E,EAAM,OAAO,QAAQ,GAAG,EAAE,KAAMkC,GAAa,CACrD,KAAK,uBAAuB,UAAYA,EAAS,IACzD,CAAO,EAEJ,CAED,OAAOlC,EAAO,CACC,QAAQ,kFAAkF,GAEzF,KACZA,EAAM,OAAO,UAAU,IAAI,KAAK,YAAY,EAE5Cw6E,GAAM,OAAOx6E,EAAM,OAAO,QAAQ,GAAG,EAAE,KAAMkC,GAAa,CACxD,KAAK,uBAAuB,UAAYA,EAAS,IACzD,CAAO,EAEJ,CACH,CAlCEk4L,GADIk9B,GACG,UAAU,CAAC,kBAAkB,GACpCl9B,GAFIk9B,GAEG,UAAU,CAAC,SAAS,GCHd,MAAKC,WAASF,EAAW,CAAzB,kCASbj9B,GAAA,gBAAW,IAEX,mBAAoB,CACd,KAAK,SACP,KAAK,aAAY,EAEjB,KAAK,YAAW,EAGlB,KAAK,aAAa,QAAQn4H,GAAS,CACjC,KAAK,SAAS,KAAK,SAAW,eAAiB,gBAAiB,CAAE,OAAQA,EAAO,CACvF,CAAK,CACF,CAED,uBAAuBpiE,EAAS,CAC9BA,EAAQ,UAAU,IAAI,KAAK,SAAW,KAAK,mBAAqB,KAAK,mBAAmB,CACzF,CAED,aAAc,CACZ,IAAI23N,EAA4B,EAEhC,KAAK,mBAAmB,QAAQ,SAAS53N,EAAQ,CAC1CA,EAAO,UAAU,SAAS,cAAc,GAAG43N,GACtD,CAAK,EAEGA,EAA4B,EAC9B,KAAK,YAAW,EAEhB,KAAK,aAAY,CAEpB,CAED,aAAc,CACZ,KAAK,cAAc,UAAU,QAAQ,KAAK,oBAAqB,KAAK,kBAAkB,EACtF,KAAK,SAAW,EACjB,CAED,cAAe,CACb,KAAK,cAAc,UAAU,QAAQ,KAAK,mBAAoB,KAAK,mBAAmB,EACtF,KAAK,SAAW,EACjB,CACH,CAjDEp9B,GADkBm9B,GACX,UAAU,CAAC,UAAW,cAAe,OAAO,GAEnDn9B,GAHkBm9B,GAGX,SAAS,CACd,cAAe,cACf,eAAgB,gBAChB,iBAAkB,cACnB,GCTH,MAAeE,IAAA,69HCKf,SAASC,IAAcC,EAAWvuF,EAAW,CAErC,MAAAwuF,EAAY,IAAI,KAAKD,CAAS,EAC9BE,EAAe,IAAI,KAAKzuF,CAAS,EAGjCtN,EAAe,IAAI,KAAK+7F,EAAa,YAAe,EAAAA,EAAa,WAAY,CAAC,EAC9EvkG,EAAa,IAAI,KAAKukG,EAAa,cAAeA,EAAa,SAAa,IAAG,CAAC,EAG/E,OAAAD,GAAa97F,GAAgB87F,GAAatkG,CACnD,CAEA,MAAAwkG,GAAe,CAAC,CAAE,MAAA33N,EAAO,KAAAq1B,EAAM,QAAAw0G,EAAS,QAAA9K,EAAS,SAAAhiC,EAAU,SAAAh6E,EAAU,UAAAU,KAAgB,CACnF,KAAM,CAACqpH,EAAeC,CAAgB,EAAIpqC,WAAS,EAAK,EAClD,CAACsmC,EAAWW,CAAY,EAAIjnC,WAASgsB,GAAO3uH,CAAK,EAAE,QAAQ,EAE3D6sE,EAAM6qB,WAEZkB,YAAU,IAAM,CACT2+H,IAAcv3N,EAAOipI,CAAS,GAAGW,EAAa5pI,CAAK,GACvD,CAACA,CAAK,CAAC,EAEJ,MAAA43N,EAAqB53N,GAAU,CACnC+8F,EAAS4xB,GAAO3uH,CAAK,EAAE,OAAQ,IAGjC,OAAIq1B,IAAS,QACJmvD,EAACinD,GAAA,CACN,UAAAhoH,EACA,UAAAwlH,EACA,QAASta,GAAOkb,CAAO,EACvB,QAASlb,GAAOoQ,CAAO,EACvB,aAAA6K,EACA,WAAavhG,GAAMuvL,EAAkBvvL,CAAC,EACtC,cAAeroC,CAAA,GAKjBwkF,EAAC5Q,GAAA,SACC,OAAQk5D,EACR,UAAW,CAAC,QAAQ,EACpB,MAAO,SACP,kBAAmB,GACnB,eAAgB,IAAMC,EAAiB,CAACD,CAAa,EACrD,IAAAjgE,EACA,QAAS,EACT,QACG2X,EAAA,OAAI,UAAU,iBAAiB,MAAO,CAAE,WAAY,OAAQ,OAAQ,mBACnE,WAAAA,EAACinD,GAAA,CACC,UAAAhoH,EACA,UAAAwlH,EACA,QAASta,GAAOkb,CAAO,EACvB,QAASlb,GAAOoQ,CAAO,EACvB,aAAA6K,EACA,WAAavhG,GAAM,CAAEuvL,EAAkBvvL,CAAC,EAAG0kG,EAAiB,EAAK,CAAE,EACnE,cAAe/sI,CAAA,GAEnB,EAGF,WAAC,MAAI,OAAO,CAAC,SAAU,YACrB,SAAAwkF,EAAC,SAAM,KAAK,OACL,IAAA3X,EACA,SAAU,GACV,QAAS,IAAMkgE,EAAiB,EAAI,EACpC,SAAAhqH,EACA,MAAO4rG,GAAO3uH,CAAK,EAAE,OAAO,kBAAkB,EAC9C,UAAU,iCACnB,GAGN,EC1EeyrI,IAAA,CAAC,CAAE,UAAAmjE,EAAW,aAAAipB,EAAc,aAAAC,EAAc,SAAA/6H,KACvD0G,GAAC,MAAI,WAAU,iBACb,UAAAA,GAAC,KACC,WAACjf,EAAA,OAAI,IAAK8yI,GAAY,GAAE,YAE1B,EAEA9yI,EAACmzI,GAAA,CACC,MAAO/oB,EACP,QAASipB,EACT,QAASC,EACT,SAAA/6H,EACA,KAAK,QACP,GACF,EChBF2yB,IAAe,CAAC,CAAE,IAAA1W,EAAK,YAAA++G,KAAkB,CAEvC,MAAMv2G,EADW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3C,IAAI,CAACxI,EAAK/rG,KACvB,CAAE,IAAKA,EAAM,GAAG,EAAG,KAAM+rG,GACjC,EAED,SACG,MAAI,WAAU,oBACb,SAACvV,GAAA,OAAI,UAAU,yCACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAG,QACpDA,EAAC,UAAO,UAAU,mCACV,KAAK,eACL,MAAOw0B,EACP,SAAW7lG,GAAM4kN,EAAY5kN,EAAE,OAAO,KAAK,EAC3C,MAAO,CAAE,MAAO,EAAG,EACxB,SAAKquG,EAAA,IAAI,CAACq3B,EAAO,IAAOr0D,EAAA,UAAsB,MAAOq0D,EAAM,GAAK,SAAAA,EAAM,MAAlCA,EAAM,EAAiC,CAAS,EACvF,EACF,EACF,EAEJ,ECpBAm/E,IAAe,CAAC,CAAE,WAAA7zH,EAAY,MAAAnkG,EAAO,SAAA+8F,CACnC,IAAA0G,GAAC,MAAI,WAAU,kDACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAQ,aACzDA,EAAC,UAAO,UAAU,2CACV,MAAOxkF,GAAS,GAChB,KAAK,uBACL,SAAA+8F,EACL,SAAAoH,EAAW,IAAI,CAACntF,EAAMnT,IACpB4/F,GAAA,UAAe,MAAOzsF,EAAK,GACzB,UAAKA,EAAA,MAAOA,EAAK,aAAe,aAAe,KADrCnT,CAEb,CACD,EACH,GACF,ECZao0N,IAAA,CAAC,CAAE,UAAArpB,EAAW,aAAAipB,EAAc,aAAAC,EAAc,SAAA/6H,KACvD0G,GAAC,MAAI,WAAU,8DACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAI,SAErDA,EAACmzI,GAAA,CACC,MAAO/oB,EACP,QAASipB,EACT,QAASC,EACT,SAAA/6H,CAAA,CACF,GACF,ECXFm7H,IAAe,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,kBAAAC,EAAmB,gBAAAC,KAAsB,CACtF,IAAIC,EAAe,GACfC,EAAa,GAEb,MAAM,QAAQN,EAAQ,IAAI,GAAKA,EAAQ,KAAK,OAAS,IACvDK,EAAeL,EAAQ,KACvBM,EAAaN,EAAQ,MAGvB,MAAMO,GACJP,GAAA,YAAAA,EAAS,2BACTK,EAAa,SAAW,GACxBC,EAAW,SAAW,EAGtB,OAAAh1H,GAAC,MAAI,WAAU,UACb,UAACA,GAAA,OAAI,UAAU,sDACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAK,UACtDA,EAAC,UAAO,UAAU,0CACV,SAAUk0I,EACV,MAAON,GAAa,GACpB,SAAWjlN,GAAMmlN,EAAkBnlN,EAAE,OAAO,KAAK,EACtD,SAAaqlN,EAAA,IAAI,CAACxhN,EAAMnT,IAAM2gF,EAAC,SAAe,OAAOxtE,EAAK,WAAa,SAAKA,EAAA,YAAjCnT,CAA4C,CAAS,EACnG,GACF,EACC2gF,EAAA,OAAI,UAAU,SAAS,SAAC,MACzBif,GAAC,MAAI,WAAU,oDACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAG,QACpDA,EAAC,UAAO,UAAU,wCACV,MAAO6zI,GAAW,GAClB,SAAUK,EACV,SAAWvlN,GAAMolN,EAAgBplN,EAAE,OAAO,KAAK,EACpD,SAAWslN,EAAA,IAAI,CAACzhN,EAAMnT,IAAM2gF,EAAC,SAAe,OAAOxtE,EAAK,SAAW,SAAKA,EAAA,UAA/BnT,CAAwC,CAAS,EAC7F,GACF,CACF,GAEJ,ECrCA80N,IAAe,CAAC,CAAE,eAAAC,EAAgB,MAAA54N,EAAO,SAAA+8F,CACvC,IAAA0G,GAAC,MAAI,WAAU,uDACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAc,mBAC/DA,EAAC,UAAO,UAAU,+CACV,MAAOxkF,GAAS,GAChB,KAAK,6BACL,SAAA+8F,EACL,SAAA67H,EAAe,IAAI,CAAC5hN,EAAMnT,IAAO4/F,GAAA,UAAe,MAAOzsF,EAAK,GAAK,UAAKA,EAAA,MAAOA,EAAK,QAAU,aAAe,KAA9DnT,CAAiE,CAAS,EAC1H,GACF,ECTFg1N,IAAe,CAAC,CAAE,QAAAvsB,EAAS,SAAAvvG,KACxB0G,GAAA,OAAI,UAAU,gCACb,UAACjf,EAAA,SAAM,UAAU,gBAAgB,SAAG,QACpCA,EAAC,MAAI,WAAU,qBACb,SAAAA,EAAC,SAAM,KAAK,WAAW,QAAA8nH,EAAkB,SAAAvvG,CAAA,CAAmB,CAC9D,IACF,ECLF+7H,IAAe,CAAC,CAAE,MAAAtzL,EACA,YAAAuzL,EACA,yBAAAC,EACA,QAAA1sB,EACA,UAAA2sB,EACA,QAAAC,EACA,iBAAAC,EACA,wBAAAC,EACA,oBAAAC,EACA,gBAAAC,EACA,wBAAAC,EACA,8BAAAC,EACA,gBAAAC,CAAgB,IAa9Bh2H,GAAC,MAAI,WAAU,kBACb,UAACA,GAAA,OAAI,UAAU,aACb,UAACA,GAAA,SAAM,UAAU,WACf,UAAAjf,EAAC,SAAM,KAAK,WACL,QAAA8nH,EACA,SAAU2sB,EACV,SAjBc9lN,GAAM,CAC3Bm5L,QAAUn5L,EAAE,OAAO,QACzBmmN,EAAgBhtB,CAAO,EAeA,CAAoB,EAEpC9nH,EAAA,QAAK,UAAU,QAAS,SAAMh/C,EAAA,EAE9BwzL,IAA6B,UAC5Bx0I,EAAC,SAAM,UAAU,gBACV,KAAM,EACN,KAAK,OACL,SAAU,CAAC8nH,EACX,MAAO4sB,EACP,SAtBY/lN,GAAM,CAC3B,MAAAnT,EAAQmT,EAAE,OAAO,MACvBsmN,EAAgBz5N,CAAK,EAoBI,CAAoB,GAEzC,EACC+4N,IAAgB,MACfv0I,EAACrR,GAAA,CACC,QAAS,CAAC,QAAS,OAAO,EAC1B,UAAU,QACV,QAASqR,EAAC5Q,GAAQ,IAAI,cAAgB,SAAYmlJ,EAAA,EAClD,SAAAv0I,EAAC,MAAI,WAAU,uCAAuC,GACxD,GAEJ,EACC60I,GACC51H,GAAC,MAAI,WAAU,8BACb,UAACA,GAAA,OAAI,UAAU,0CACb,UAACjf,EAAA,SAAM,UAAU,oCAAoC,SAAoB,yBACzEA,EAAC,SACC,UAAU,wCACV,MAAO20I,GAAoB,GAC3B,SAAUhmN,GAAKomN,EAAwBpmN,EAAE,OAAO,KAAK,EACrD,KAAK,SACL,SAAU,CAACm5L,CAAA,CACb,GACF,EACA7oG,GAAC,MAAI,WAAU,aACb,UAACjf,EAAA,SAAM,UAAU,oDAAoD,SAAM,WAC3EA,EAAC,SACC,UAAU,qCACV,MAAO40I,GAA2B,GAClC,SAAUjmN,GAAKqmN,EAA8BrmN,EAAE,OAAO,KAAK,EAC3D,SAAU,CAACm5L,CAAA,CACb,GACF,GACF,CAEN,IC5EFotB,IAAe,CAAC,CAAE,OAAAC,EAAQ,oBAAAC,EAAqB,oBAAAC,EAAqB,4BAAAC,EAA6B,kCAAAC,EAAmC,oBAAAV,WAE/H,SAAOM,EAAA,IAAKxhM,GACXqsD,EAACs0I,IAAA,CAEE,GAAG3gM,EACJ,gBAAkBm0K,GAAYstB,EAAoBzhM,EAAM,GAAIm0K,CAAO,EACnE,gBAAkBtsM,GAAU65N,EAAoB1hM,EAAM,GAAIn4B,CAAK,EAC/D,wBAA0BA,GAAU85N,EAA4B3hM,EAAM,GAAIn4B,CAAK,EAC/E,8BAAgCA,GAAU+5N,EAAkC5hM,EAAM,GAAIn4B,CAAK,EAC3F,oBAAAq5N,CAAA,EANKlhM,EAAM,EAOb,CAEJ,ICZF,SAAS6hM,GAAcL,EAAQM,EAAgB,CACtC,OAAAN,EAAO,IAAaxhM,GAAA,CACzB,IAAI+hM,EAAMD,EAAe,QAAW5hL,EAAG,WAAalgB,EAAM,EAAE,EAEtD,OAAAA,EAAA,QAAU+hM,EAAOA,EAAI,eAAe,SAAS,EAAIA,EAAI,QAAU,GAAQ,GAC7E/hM,EAAM,iBAAmB+hM,GAAA,YAAAA,EAAK,GACxB/hM,EAAA,SAAU+hM,GAAA,YAAAA,EAAK,UAAW,GAChC/hM,EAAM,iBAAmB+hM,GAAA,YAAAA,EAAK,iBAC9B/hM,EAAM,wBAA0B+hM,GAAA,YAAAA,EAAK,wBAE9B/hM,CAAA,CACR,CACH,CAEA,SAASgiM,GAAoBC,EAAY,CACvC,IAAIC,EAAmB,GAEvB,QAASx2N,EAAI,EAAGA,EAAIu2N,EAAW,OAAQv2N,IACjCu2N,EAAWv2N,CAAC,EAAE,UACGw2N,EAAAx2N,GAIhB,OAAAw2N,CACT,CAEA,SAASC,GAAkBX,EAAQM,EAAgB,CACjD,OAAOE,GAAoBH,GAAcL,EAAQM,CAAc,CAAC,EAAI,CACtE,CAEA,MAAeM,IAAA,CAAC,CAAE,OAAAZ,EAAQ,eAAAM,EAAgB,kBAAAO,EAAmB,oBAAAnB,KAA0B,CAC/E,MAACoB,EAAeC,CAAgB,EAAI/3H,WAAS23H,GAAkBX,EAAQM,CAAc,CAAC,EAE5FrhI,YAAU,IAAM,CACG8hI,EAAAJ,GAAkBX,EAAQM,CAAc,CAAC,GACzD,CAACN,CAAM,CAAC,EAEL,MAAAC,EAAsB,CAACe,EAASruB,IAAY,CAC1C,MAAAsuB,EAAoB,CAAC,GAAGX,CAAc,EACtChtN,EAAQ2tN,EAAkB,UAAgBv4M,KAAG,WAAas4M,CAAO,EAEnEruB,EACEr/L,EAAQ,GACQ2tN,EAAA3tN,CAAK,EAAE,QAAU,GAEjB2tN,EAAA,KAAK,CAAE,GAAI,GAAI,SAAUD,EAAS,QAAS,GAAI,QAAS,EAAM,GAG9E1tN,EAAQ,KAAsB2tN,EAAA3tN,CAAK,EAAE,QAAU,IAGrDutN,EAAkBI,CAAiB,GAG/Bf,EAAsB,CAACc,EAAS36N,IAAU,CACxC,MAAA46N,EAAoB,CAAC,GAAGX,CAAc,EACtChtN,EAAQ2tN,EAAkB,UAAgBv4M,KAAG,WAAas4M,CAAO,EACnE1tN,EAAQ,KAAsB2tN,EAAA3tN,CAAK,EAAE,QAAUjN,GACnDw6N,EAAkBI,CAAiB,GAG/Bd,EAA8B,CAACa,EAAS36N,IAAU,CAChD,MAAA46N,EAAoB,CAAC,GAAGX,CAAc,EAC5C,IAAI9hM,EAAQyiM,EAAkB,KAAWv4M,KAAG,WAAas4M,CAAO,EAChExiM,EAAM,iBAAsBn4B,EAC5Bw6N,EAAkBI,CAAiB,GAG/Bb,EAAoC,CAACY,EAAS36N,IAAU,CACtD,MAAA46N,EAAoB,CAAC,GAAGX,CAAc,EAC5C,IAAI9hM,EAAQyiM,EAAkB,KAAWv4M,KAAG,WAAas4M,CAAO,EAChExiM,EAAM,wBAA6Bn4B,EACnCw6N,EAAkBI,CAAiB,GAG/BR,EAAaJ,GAAcL,EAAQM,CAAc,EACjDY,EAAgBJ,EAAgBL,EAAaA,EAAW,MAAM,EAAG,CAAC,EAClEC,EAAmBF,GAAoBC,CAAU,EAEnD,OAAAA,IAAe,QAAaA,EAAW,SAAW,EAAU,KAG9D32H,GAAC,MAAI,WAAU,6CACb,UAACA,GAAA,OAAI,UAAU,wBACb,UAACjf,EAAA,OAAI,UAAU,cACb,SAAAA,EAAC,SAAM,UAAU,gCAAgC,kBAAM,CACzD,GACC60I,GACC51H,GAAC,MAAI,WAAU,4BACb,UAACjf,EAAA,SAAM,UAAU,6CAA6C,SAAoB,yBACjFA,EAAA,SAAM,UAAU,gCAAgC,SAAM,YACzD,GAEJ,EAEAif,GAAC,MAAI,WAAU,wBACb,UAAAjf,EAAC0nD,IAAA,CACC,OAAQ2uF,EACR,oBAAAjB,EACA,oBAAAC,EACA,4BAAAC,EACA,kCAAAC,EACA,oBAAAV,CAAA,CACF,EAECe,GAAcA,EAAW,OAAS,EACnC51I,EAAC,UAAO,KAAK,SACL,SAAU61I,EAAmB,EAC7B,UAAU,0CACV,QAAS,IAAMK,EAAiB,CAACD,CAAa,EACnD,WAAgB,YAAc,cAE7B,MACN,CACF,GAEJ,ECtHAK,IAAe,CAAC,CAAE,MAAA96N,EAAO,SAAA+8F,KACtB0G,GAAA,OAAI,UAAU,6DACb,UAACjf,EAAA,SAAM,UAAU,gCAAgC,SAAM,WACvDA,EAAC,SAAM,UAAU,2CACV,KAAK,mCACL,MAAO,CAAE,MAAO,KAAM,EACtB,KAAK,OACL,MAAAxkF,EACA,SAAA+8F,CAAA,CACP,GACF,ECVFg+H,IAAe,CAAC,CAAE,MAAA/6N,EAAO,SAAA+8F,KACtB0G,GAAA,OAAI,UAAU,uDACb,UAACjf,EAAA,SAAM,UAAU,iCAAiC,SAIlD,yBACAA,EAAC,SAAM,UAAU,oDACV,KAAK,4BACL,KAAK,MACL,MAAO,CAAE,MAAO,EAAG,EACnB,KAAK,SACL,MAAAxkF,EACA,SAAA+8F,CAAA,CAAmB,GAC5B,ECdFi+H,IAAe,CAAC,CAAE,OAAA1rE,CAAA,IAEd9qE,EAAC,OACE,SAAO8qE,EAAA,IAAI,CAAC7pJ,EAAOwH,IAClBu3E,EAAC,MAAgB,WAAU,YACzB,SAAAA,EAAC,OAAK,WAAU,aACb,SAAA/+E,CACH,IAHQwH,CAIV,CAEJ,ICTJ,IAAAguN,IAAA,KAAU,CACR,eAAez6N,EAAK,CAClB,OAAO65E,GAAM,CAAE,OAAQ,MAAO,IAAK75E,CAAG,CAAE,CACzC,CAED,aAAak6E,EAASvyE,EAAI+yN,EAAQ,CAEhC,MAAMC,EAAa,CAAE,OAAQ,MAAO,IADxB,UAAUzgJ,CAAO,0BAA0BvyE,CAAE,gBAAgB+yN,CAAM,EACnC,EAC5C,OAAO7gJ,GAAM8gJ,CAAU,CACxB,CAED,aAAaC,EAAkBxsB,EAAWysB,EAAWC,EAAaC,EAAmB,CACnF,MAAM/6N,EAAM,oBAAoB46N,CAAgB,SAE1Cj4L,EAAS,CACb,WAAYwrF,GAAOigF,CAAS,EAAE,OAAO,UAAU,EAC/C,kBAAmBysB,EACnB,aAAcC,EACd,oBAAqBC,EACrB,YAAa,cACd,EAED,OAAOlhJ,GAAM,CAAE,OAAQ,MAAO,IAAK75E,EAAK,OAAQ2iC,CAAM,CAAE,CACzD,CAED,cAAcm4L,EAAaJ,EAAQG,EAAW,CAC5C,MAAM76N,EAAM,cAAc86N,CAAW,aAGrC,OAAOjhJ,GAAM,CAAE,OAAQ,MAAO,IAAK75E,EAAK,OAFzB,CAAE,QAAS06N,EAAQ,WAAYG,CAAS,CAED,CAAE,CACzD,CACH,EAEA,MAAAG,GAAe,IAAI3gJ,ICjCb4gJ,IAAgB,SAASzkN,EAAM,CACnC,GAAI,CAACA,EAAK,iBAAyB,oBACnC,GAAIA,EAAK,OAAe,eACxB,GAAI,CAACA,EAAK,eAAuB,aAEjC,MAAMnB,EAAW,CACf,sBAAuB,EACvB,sBAAuB,EACvB,MAAO,UACP,SAAU,OAGL,WAAK,IAAI,KAAK,aAAa,QAASA,CAAQ,EAAE,OAAOmB,EAAK,KAAK,CAAC,EACzE,EAEM0kN,IAAS,CAAC,CAAE,OAAAC,CAAA,IAChBn3I,EAAC,MAAI,WAAU,aACb,SAAAif,GAAC,MAAI,WAAU,SACb,UAAAjf,EAAC,OAAK,WAAU,sBACb,SAAAm3I,EAAO,KACV,IACC,KAAE,MACF,KAAE,IACFn3I,EAAA,QAAK,UAAU,yBACb,WAAO,QACV,EACF,EACF,GAGFo3I,IAAe,CAAC,CAAE,QAAAzD,EAAS,UAAAC,EAAW,QAAAC,EAAS,kBAAAC,EAAmB,gBAAAC,KAAsB,CAChF,MAAAsD,GAAkB1D,EAAQ,MAAQ,IAAI,UAAUz4N,GAAWA,EAAQ,aAAe04N,CAAS,EAC3F0D,GAAgB3D,EAAQ,MAAQ,IAAI,UAAUz4N,GAAWA,EAAQ,WAAa24N,CAAO,EAErF0D,EAAY,SAAS73G,EAAQj3G,EAAO,CAKpC,GAJAkrN,EAAQ,0BAEA,CAAC0D,EAAgBC,EAAc7uN,CAAK,EAExC,MAAO,CAAC8O,EAAKlY,EAAGgX,IAAQkB,IAAQlB,EAAI,CAAC,CAAC,EAAU,SAExD,GAAI5N,IAAU,GACL,SACT,GAAWA,IAAU4uN,EAAgB,CACnC,MAAMlkN,EAAIwgN,EAAQ,KAAKlrN,EAAQ,CAAC,EAC5B0K,GAAG2gN,EAAkB3gN,EAAE,UAAU,UAC5B1K,IAAU6uN,EAAc,CACjC,MAAM3iM,EAAIg/L,EAAQ,KAAKlrN,EAAQ,CAAC,EAC5BksB,GAAGo/L,EAAgBp/L,EAAE,QAAQ,UACxBlsB,IAAU4uN,EAAiB,EACpCvD,EAAkBp0G,EAAO,UAAU,UAC1Bj3G,IAAU6uN,EAAe,EAClCvD,EAAgBr0G,EAAO,QAAQ,MAC1B,CACL,GAAI23G,EAAiB,GAAK5uN,GAAS6uN,EAAe,GAAK7uN,EAC9C,SAEPqrN,EAAkBp0G,EAAO,UAAU,EACnCq0G,EAAgBr0G,EAAO,QAAQ,CAEnC,GAGF,OAAIi0G,EAAQ,OAAS,SAAkB3zI,EAAAk3I,IAAA,CAAO,OAAQvD,EAAQ,MAAO,GAGnE3zI,EAAC,MAAI,WAAU,aACZ,SAAA2zI,EAAQ,MAAQA,EAAQ,KAAK,IAAI,CAACj0G,EAAQj3G,IAAU,CAC7C,MAAA2kF,EAAa3kF,GAAS4uN,GAAkB5uN,GAAS6uN,EACjD3tI,EAAa,CAAC+1B,EAAO,gBAAkBA,EAAO,OAGlD,OAAAzgB,GAAC,SACM,QAAS,IAAMs4H,EAAU73G,EAAQj3G,CAAK,EACtC,UAAW2vB,GAAW,CAAC,OAAQ,CAAE,SAAYuxD,EAAY,MAASyD,CAAW,CAAC,CAAC,EACnF,UAAOsyB,EAAA,WAAW,MAAIA,EAAO,SAC7B1/B,EAAA,QAAM,SAAci3I,IAAAv3G,CAAM,CAAE,KAJnBA,EAAO,OAOtB,EACH,EAEJ,ECnFA83G,IAAephK,GAAM,WAAW,CAAC,CAAE,aAAAunH,EAAc,MAAA38I,EAAO,QAAAy2L,EAAS,WAAAC,EAAY,SAAAt6J,EAAU,uBAAAu6J,GAA0BtvJ,IAC/G2X,EAAC,OAAI,GAAG,mBAAmB,UAAU,aAAa,kBAAgB,aAAa,KAAK,SAAS,SAAS,KAAK,IAAA3X,EACzG,SAAA2X,EAAC,OAAI,UAAU,eAAe,KAAK,WACjC,WAAC,OAAK,WAAU,cACd,SAACif,GAAA,OAAI,UAAU,gBACb,UAACA,GAAA,OAAI,UAAU,eACb,UAAAjf,EAAC,SAAO,WAAU,QAAQ,aAAW,QAAQ,eAAa,QAAQ,KAAK,SACrE,SAACA,EAAA,QAAK,cAAY,OAAO,cAAG,GAC9B,EACCA,EAAA,MAAG,UAAU,cAAe,SAAMh/C,EAAA,GACrC,EACAi+D,GAAC,MAAI,WAAU,aACZ,UAAYw4H,IAAA,WAAcz3I,EAAA,OAAI,UAAU,cAAc,MAAO,CAAE,WAAY,EAAG,EAAG,SAAU,eAC3Fy3I,IAAY,aAAer6J,CAAA,EAC9B,EACCq6J,IAAY,aACVz3I,EAAA,OAAI,UAAU,eACb,SAAAif,GAAC,MAAI,WAAU,+BACb,UAAAjf,EAAC,IAAE,WAAU,kBAAkB,eAAa,QAAQ,SAEpD,WAEAA,EAAC,UAAO,KAAK,SACL,SAAU23I,EACV,UAAU,6BACV,QAASD,EAAY,oBAE7B,GACF,CACF,GAEJ,EACF,GACF,EACF,CACD,ECnCM,SAASE,GAAwBjE,EAASv3L,EAAMzW,EAAO,GAAO,CACnE,GAAIguM,EAAQ,OAAS,OAAQ,MAAO,CAAE,UAAW,KAAM,QAAS,MAChE,GAAIA,EAAQ,yBAA0B,OAAOkE,IAA+BlE,CAAO,EAEnF,MAAM34M,EAAO24M,EAAQ,KACfmE,EAAa98M,EAAK,IAAI0kG,GAAUA,EAAO,UAAU,EACjDq4G,EAAW/8M,EAAK,IAAI0kG,GAAUA,EAAO,QAAQ,EACnD,GAAIo4G,EAAW,SAAS17L,EAAK,SAAS,GAAK27L,EAAS,SAAS37L,EAAK,OAAO,EAAG,OAAOA,EAGnF,MAAM47L,EADY,CAAE,GAAI,EAAG,GAAI,EAAG,GAAI,CAAG,EACTrE,EAAQ,cAAc,EAEtD,GAAIhuM,EAAM,CACR,MAAMkuM,EAAUkE,EAASC,EAAgB,CAAC,GAAKD,EAAS,CAAC,EACzD,MAAO,CAAE,UAAWD,EAAW,CAAC,EAAG,QAASjE,CAAS,CACzD,SACQz3L,EAAK,YAAc,MAAQA,EAAK,UAAY,KAAM,CAEpD,MAAMy3L,EAAUkE,EAASC,EAAgB,CAAC,GAAKD,EAAS,CAAC,EACzD,MAAO,CAAE,UAAWD,EAAW,CAAC,EAAG,QAASjE,CAAS,CAC3D,KAAW,CACL,MAAMoE,EAAsB9tG,GAAO/tF,EAAK,UAAW,OAAO,EAGpDje,EAFoBgsG,GAAO/tF,EAAK,QAAS,OAAO,EAEvB,KAAK67L,EAAqB,SAAS,EAC5D3wB,EAAgB,KAAK,KAAKnpL,EAAOw1M,EAAQ,cAAc,EAIvDuE,EAFYJ,EAAW,IAAI,CAACxgM,EAAM7uB,IAAU0vN,IAAY1vN,EAAO6uB,EAAM2gM,CAAmB,CAAC,EAAE,KAAKG,GAAS,EAEnF,CAAC,EACvBC,EAAcN,EAAS,OAAS,EAEtC,IAAIV,EAAiBa,EAAU,MAC3BZ,EAAeY,EAAU,MAAQ5wB,EAAgB,EAErD,OAAIgwB,EAAee,IAAaf,EAAee,GAExC,CAAE,UAAWP,EAAWT,CAAc,EAAG,QAASU,EAAST,CAAY,CAAG,CAClF,CAEL,CAEA,SAASO,IAA+BlE,EAAS,CAC/C,MAAM2E,EAAmB3E,EAAQ,KAAK,OAAOj0G,GAAU,CAACA,EAAO,MAAM,EAC/Do4G,EAAaQ,EAAiB,IAAI54G,GAAUA,EAAO,UAAU,EAC7Dq4G,EAAWO,EAAiB,IAAI54G,GAAUA,EAAO,QAAQ,EAE/D,MAAO,CAAE,UAAWo4G,EAAW,CAAC,EAAG,QAASC,EAASA,EAAS,OAAS,CAAC,CAAG,CAC7E,CAEA,SAASI,IAAY1vN,EAAO6uB,EAAMihM,EAAiB,CACjD,MAAMpxB,EAAah9E,GAAO7yF,EAAM,OAAO,EACjCnZ,EAAOgpL,EAAW,KAAKoxB,EAAiB,SAAS,EACvD,MAAO,CACL,MAAO9vN,EACP,KAAM6uB,EACN,SAAUnZ,EAAO,EAAI,EAAI,EACzB,WAAYgpL,EACZ,KAAM,KAAK,IAAIhpL,CAAI,CACpB,CACH,CAEA,SAASi6M,IAAUx9M,EAAGC,EAAG,CACvB,OAAOD,EAAE,KAAOC,EAAE,MAAQD,EAAE,SAAWC,EAAE,QAC3C,CClEA,MAAM29M,EAAgB,CAGpB,aAAc,CACZ,KAAK,QAAU,IAChB,CAED,KAAK7qN,EAAQ,KAAM,CACbA,IAAU,EACZ,EAAE,KAAK,KAAK,EAAE,MAAM,MAAM,EAE1B,KAAK,QAAU,WAAW,IAAM,CAC9B,EAAE,KAAK,KAAK,EAAE,MAAM,MAAM,CAC3B,EAAEA,GAAS,KAAK,YAAY,aAAa,CAE7C,CAED,MAAO,CACL,aAAa,KAAK,OAAO,EACzB,EAAE,KAAK,KAAK,EAAE,MAAM,MAAM,CAC3B,CAED,OAAO8qN,EAAgB,CACjBA,EACF,KAAK,KAAI,EAET,KAAK,KAAI,CAEZ,CAED,IAAI,OAAQ,CACV,OAAO,SAAS,eAAe,kBAAkB,CAClD,CACH,CAhCEhjC,GADI+iC,GACG,gBAAgB,KAoCb,MAACE,GAAkB,IAAIF,GChCnC,MAAMG,WAAmB,KAAM,CAAE,CAK1B,MAAMC,YAA6BD,EAAW,CACnD,YAAY7zN,EAAQ,CAClB,MAAM,qBAAqBA,EAAO,UAAW,GAAE,CAChD,CACH,CAKO,MAAM+zN,YAA6BF,EAAW,CACnD,YAAY7zN,EAAQ,CAClB,MAAM,qBAAqBA,EAAO,UAAW,GAAE,CAChD,CACH,CAKO,MAAMg0N,YAA6BH,EAAW,CACnD,YAAY7zN,EAAQ,CAClB,MAAM,qBAAqBA,EAAO,UAAW,GAAE,CAChD,CACH,CAKO,MAAMi0N,WAAsCJ,EAAW,CAAE,CAKzD,MAAMK,WAAyBL,EAAW,CAC/C,YAAYjtM,EAAM,CAChB,MAAM,gBAAgBA,CAAI,EAAE,CAC7B,CACH,CAKO,MAAMutM,WAA6BN,EAAW,CAAE,CAKhD,MAAMO,WAA4BP,EAAW,CAClD,aAAc,CACZ,MAAM,2BAA2B,CAClC,CACH,CCxDA,MAAMxlN,GAAI,UACRsB,GAAI,QACJH,GAAI,OAEO6kN,GAAa,CACxB,KAAMhmN,GACN,MAAOA,GACP,IAAKA,EACP,EAEaimN,GAAW,CACtB,KAAMjmN,GACN,MAAOsB,GACP,IAAKtB,EACP,EAEakmN,IAAwB,CACnC,KAAMlmN,GACN,MAAOsB,GACP,IAAKtB,GACL,QAASsB,EACX,EAEa6kN,GAAY,CACvB,KAAMnmN,GACN,MAAOmB,GACP,IAAKnB,EACP,EAEaomN,GAAY,CACvB,KAAMpmN,GACN,MAAOmB,GACP,IAAKnB,GACL,QAASmB,EACX,EAEaklN,GAAc,CACzB,KAAMrmN,GACN,OAAQA,EACV,EAEasmN,GAAoB,CAC/B,KAAMtmN,GACN,OAAQA,GACR,OAAQA,EACV,EAEaumN,GAAyB,CACpC,KAAMvmN,GACN,OAAQA,GACR,OAAQA,GACR,aAAcsB,EAChB,EAEaklN,GAAwB,CACnC,KAAMxmN,GACN,OAAQA,GACR,OAAQA,GACR,aAAcmB,EAChB,EAEaslN,GAAiB,CAC5B,KAAMzmN,GACN,OAAQA,GACR,UAAW,KACb,EAEa0mN,GAAuB,CAClC,KAAM1mN,GACN,OAAQA,GACR,OAAQA,GACR,UAAW,KACb,EAEa2mN,GAA4B,CACvC,KAAM3mN,GACN,OAAQA,GACR,OAAQA,GACR,UAAW,MACX,aAAcsB,EAChB,EAEaslN,GAA2B,CACtC,KAAM5mN,GACN,OAAQA,GACR,OAAQA,GACR,UAAW,MACX,aAAcmB,EAChB,EAEa0lN,GAAiB,CAC5B,KAAM7mN,GACN,MAAOA,GACP,IAAKA,GACL,KAAMA,GACN,OAAQA,EACV,EAEa8mN,GAA8B,CACzC,KAAM9mN,GACN,MAAOA,GACP,IAAKA,GACL,KAAMA,GACN,OAAQA,GACR,OAAQA,EACV,EAEa+mN,GAAe,CAC1B,KAAM/mN,GACN,MAAOsB,GACP,IAAKtB,GACL,KAAMA,GACN,OAAQA,EACV,EAEagnN,GAA4B,CACvC,KAAMhnN,GACN,MAAOsB,GACP,IAAKtB,GACL,KAAMA,GACN,OAAQA,GACR,OAAQA,EACV,EAEainN,IAA4B,CACvC,KAAMjnN,GACN,MAAOsB,GACP,IAAKtB,GACL,QAASsB,GACT,KAAMtB,GACN,OAAQA,EACV,EAEaknN,GAAgB,CAC3B,KAAMlnN,GACN,MAAOmB,GACP,IAAKnB,GACL,KAAMA,GACN,OAAQA,GACR,aAAcsB,EAChB,EAEa6lN,GAA6B,CACxC,KAAMnnN,GACN,MAAOmB,GACP,IAAKnB,GACL,KAAMA,GACN,OAAQA,GACR,OAAQA,GACR,aAAcsB,EAChB,EAEa8lN,GAAgB,CAC3B,KAAMpnN,GACN,MAAOmB,GACP,IAAKnB,GACL,QAASmB,GACT,KAAMnB,GACN,OAAQA,GACR,aAAcmB,EAChB,EAEakmN,GAA6B,CACxC,KAAMrnN,GACN,MAAOmB,GACP,IAAKnB,GACL,QAASmB,GACT,KAAMnB,GACN,OAAQA,GACR,OAAQA,GACR,aAAcmB,EAChB,EC1Ke,MAAMy8K,EAAK,CAMxB,IAAI,MAAO,CACT,MAAM,IAAImoC,EACX,CAOD,IAAI,MAAO,CACT,MAAM,IAAIA,EACX,CAQD,IAAI,UAAW,CACb,OAAO,KAAK,IACb,CAOD,IAAI,aAAc,CAChB,MAAM,IAAIA,EACX,CAWD,WAAWuB,EAAIhlM,EAAM,CACnB,MAAM,IAAIyjM,EACX,CAUD,aAAauB,EAAIvoK,EAAQ,CACvB,MAAM,IAAIgnK,EACX,CAQD,OAAOuB,EAAI,CACT,MAAM,IAAIvB,EACX,CAQD,OAAOwB,EAAW,CAChB,MAAM,IAAIxB,EACX,CAOD,IAAI,SAAU,CACZ,MAAM,IAAIA,EACX,CACH,CC7FA,IAAIyB,GAAY,KAMD,MAAMC,WAAmB7pC,EAAK,CAK3C,WAAW,UAAW,CACpB,OAAI4pC,KAAc,OAChBA,GAAY,IAAIC,IAEXD,EACR,CAGD,IAAI,MAAO,CACT,MAAO,QACR,CAGD,IAAI,MAAO,CACT,OAAO,IAAI,KAAK,eAAgB,EAAC,gBAAe,EAAG,QACpD,CAGD,IAAI,aAAc,CAChB,MAAO,EACR,CAGD,WAAWF,EAAI,CAAE,OAAAvoK,EAAQ,OAAAs1C,CAAM,EAAI,CACjC,OAAOqzH,GAAcJ,EAAIvoK,EAAQs1C,CAAM,CACxC,CAGD,aAAaizH,EAAIvoK,EAAQ,CACvB,OAAO4oK,GAAa,KAAK,OAAOL,CAAE,EAAGvoK,CAAM,CAC5C,CAGD,OAAOuoK,EAAI,CACT,MAAO,CAAC,IAAI,KAAKA,CAAE,EAAE,kBAAiB,CACvC,CAGD,OAAOC,EAAW,CAChB,OAAOA,EAAU,OAAS,QAC3B,CAGD,IAAI,SAAU,CACZ,MAAO,EACR,CACH,CCzDA,IAAIK,GAAW,GACf,SAASC,IAAQh5G,EAAM,CACrB,OAAK+4G,GAAS/4G,CAAI,IAChB+4G,GAAS/4G,CAAI,EAAI,IAAI,KAAK,eAAe,QAAS,CAChD,OAAQ,GACR,SAAUA,EACV,KAAM,UACN,MAAO,UACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,OAAQ,UACR,IAAK,OACX,CAAK,GAEI+4G,GAAS/4G,CAAI,CACtB,CAEA,MAAMi5G,IAAY,CAChB,KAAM,EACN,MAAO,EACP,IAAK,EACL,IAAK,EACL,KAAM,EACN,OAAQ,EACR,OAAQ,CACV,EAEA,SAASC,IAAYC,EAAKtpH,EAAM,CAC9B,MAAMupH,EAAYD,EAAI,OAAOtpH,CAAI,EAAE,QAAQ,UAAW,EAAE,EACtDnzE,EAAS,kDAAkD,KAAK08L,CAAS,EACzE,EAAGC,EAAQC,EAAMC,EAAOC,EAASC,EAAOC,EAASC,CAAO,EAAIj9L,EAC9D,MAAO,CAAC68L,EAAOF,EAAQC,EAAME,EAASC,EAAOC,EAASC,CAAO,CAC/D,CAEA,SAASC,IAAYT,EAAKtpH,EAAM,CAC9B,MAAMupH,EAAYD,EAAI,cAActpH,CAAI,EAClCgqH,EAAS,GACf,QAASx8N,EAAI,EAAGA,EAAI+7N,EAAU,OAAQ/7N,IAAK,CACzC,KAAM,CAAE,KAAAkG,EAAM,MAAA/J,CAAO,EAAG4/N,EAAU/7N,CAAC,EAC7Bo2G,EAAMwlH,IAAU11N,CAAI,EAEtBA,IAAS,MACXs2N,EAAOpmH,CAAG,EAAIj6G,EACJk0E,GAAY+lC,CAAG,IACzBomH,EAAOpmH,CAAG,EAAI,SAASj6G,EAAO,EAAE,EAEnC,CACD,OAAOqgO,CACT,CAEA,IAAIC,GAAgB,GAKL,MAAMC,WAAiBhrC,EAAK,CAKzC,OAAO,OAAOj2L,EAAM,CAClB,OAAKghO,GAAchhO,CAAI,IACrBghO,GAAchhO,CAAI,EAAI,IAAIihO,GAASjhO,CAAI,GAElCghO,GAAchhO,CAAI,CAC1B,CAMD,OAAO,YAAa,CAClBghO,GAAgB,GAChBf,GAAW,EACZ,CAUD,OAAO,iBAAiBtmN,EAAG,CACzB,OAAO,KAAK,YAAYA,CAAC,CAC1B,CAUD,OAAO,YAAYutG,EAAM,CACvB,GAAI,CAACA,EACH,MAAO,GAET,GAAI,CACF,WAAI,KAAK,eAAe,QAAS,CAAE,SAAUA,CAAM,GAAE,SAC9C,EACR,MAAW,CACV,MAAO,EACR,CACF,CAED,YAAYlnH,EAAM,CAChB,QAEA,KAAK,SAAWA,EAEhB,KAAK,MAAQihO,GAAS,YAAYjhO,CAAI,CACvC,CAOD,IAAI,MAAO,CACT,MAAO,MACR,CAOD,IAAI,MAAO,CACT,OAAO,KAAK,QACb,CAQD,IAAI,aAAc,CAChB,MAAO,EACR,CAWD,WAAW2/N,EAAI,CAAE,OAAAvoK,EAAQ,OAAAs1C,CAAM,EAAI,CACjC,OAAOqzH,GAAcJ,EAAIvoK,EAAQs1C,EAAQ,KAAK,IAAI,CACnD,CAUD,aAAaizH,EAAIvoK,EAAQ,CACvB,OAAO4oK,GAAa,KAAK,OAAOL,CAAE,EAAGvoK,CAAM,CAC5C,CAQD,OAAOuoK,EAAI,CACT,MAAM5oH,EAAO,IAAI,KAAK4oH,CAAE,EAExB,GAAI,MAAM5oH,CAAI,EAAG,MAAO,KAExB,MAAMspH,EAAMH,IAAQ,KAAK,IAAI,EAC7B,GAAI,CAACxuH,EAAMwD,EAAOwE,EAAKwnH,EAAQjhH,EAAM0yD,EAAQ90J,CAAM,EAAIwiN,EAAI,cACvDS,IAAYT,EAAKtpH,CAAI,EACrBqpH,IAAYC,EAAKtpH,CAAI,EAErBmqH,IAAW,OACbxvH,EAAO,CAAC,KAAK,IAAIA,CAAI,EAAI,GAM3B,MAAMyvH,EAAQC,GAAa,CACzB,KAAA1vH,EACA,MAAAwD,EACA,IAAAwE,EACA,KANmBuG,IAAS,GAAK,EAAIA,EAOrC,OAAA0yD,EACA,OAAA90J,EACA,YAAa,CACnB,CAAK,EAED,IAAIwjN,EAAO,CAACtqH,EACZ,MAAMuqH,EAAOD,EAAO,IACpB,OAAAA,GAAQC,GAAQ,EAAIA,EAAO,IAAOA,GAC1BH,EAAQE,IAAS,GAAK,IAC/B,CAQD,OAAOzB,EAAW,CAChB,OAAOA,EAAU,OAAS,QAAUA,EAAU,OAAS,KAAK,IAC7D,CAOD,IAAI,SAAU,CACZ,OAAO,KAAK,KACb,CACH,CC9NA,IAAI2B,GAAc,GAClB,SAASC,IAAYC,EAAW9mM,EAAO,GAAI,CACzC,MAAMtoB,EAAM,KAAK,UAAU,CAACovN,EAAW9mM,CAAI,CAAC,EAC5C,IAAI0lM,EAAMkB,GAAYlvN,CAAG,EACzB,OAAKguN,IACHA,EAAM,IAAI,KAAK,WAAWoB,EAAW9mM,CAAI,EACzC4mM,GAAYlvN,CAAG,EAAIguN,GAEdA,CACT,CAEA,IAAIqB,GAAc,GAClB,SAASC,GAAaF,EAAW9mM,EAAO,GAAI,CAC1C,MAAMtoB,EAAM,KAAK,UAAU,CAACovN,EAAW9mM,CAAI,CAAC,EAC5C,IAAI0lM,EAAMqB,GAAYrvN,CAAG,EACzB,OAAKguN,IACHA,EAAM,IAAI,KAAK,eAAeoB,EAAW9mM,CAAI,EAC7C+mM,GAAYrvN,CAAG,EAAIguN,GAEdA,CACT,CAEA,IAAIuB,GAAe,GACnB,SAASC,IAAaJ,EAAW9mM,EAAO,GAAI,CAC1C,MAAMtoB,EAAM,KAAK,UAAU,CAACovN,EAAW9mM,CAAI,CAAC,EAC5C,IAAImnM,EAAMF,GAAavvN,CAAG,EAC1B,OAAKyvN,IACHA,EAAM,IAAI,KAAK,aAAaL,EAAW9mM,CAAI,EAC3CinM,GAAavvN,CAAG,EAAIyvN,GAEfA,CACT,CAEA,IAAIC,GAAe,GACnB,SAASC,IAAaP,EAAW9mM,EAAO,GAAI,CAC1C,KAAM,CAAE,KAAAtT,EAAM,GAAG46M,CAAY,EAAKtnM,EAC5BtoB,EAAM,KAAK,UAAU,CAACovN,EAAWQ,CAAY,CAAC,EACpD,IAAIH,EAAMC,GAAa1vN,CAAG,EAC1B,OAAKyvN,IACHA,EAAM,IAAI,KAAK,mBAAmBL,EAAW9mM,CAAI,EACjDonM,GAAa1vN,CAAG,EAAIyvN,GAEfA,CACT,CAEA,IAAII,GAAiB,KACrB,SAASC,KAAe,CACtB,OAAID,KAGFA,GAAiB,IAAI,KAAK,eAAgB,EAAC,gBAAe,EAAG,OACtDA,GAEX,CAEA,IAAIE,GAAgB,GACpB,SAASC,IAAkBZ,EAAW,CACpC,IAAIxyM,EAAOmzM,GAAcX,CAAS,EAClC,GAAI,CAACxyM,EAAM,CACT,MAAMy9E,EAAS,IAAI,KAAK,OAAO+0H,CAAS,EAExCxyM,EAAO,gBAAiBy9E,EAASA,EAAO,YAAa,EAAGA,EAAO,SAC/D01H,GAAcX,CAAS,EAAIxyM,CAC5B,CACD,OAAOA,CACT,CAEA,SAASqzM,IAAkBC,EAAW,CAYpC,MAAMC,EAASD,EAAU,QAAQ,KAAK,EAClCC,IAAW,KACbD,EAAYA,EAAU,UAAU,EAAGC,CAAM,GAG3C,MAAMC,EAASF,EAAU,QAAQ,KAAK,EACtC,GAAIE,IAAW,GACb,MAAO,CAACF,CAAS,EACZ,CACL,IAAIx4N,EACA24N,EACJ,GAAI,CACF34N,EAAU43N,GAAaY,CAAS,EAAE,gBAAe,EACjDG,EAAcH,CACf,MAAW,CACV,MAAMI,EAAUJ,EAAU,UAAU,EAAGE,CAAM,EAC7C14N,EAAU43N,GAAagB,CAAO,EAAE,gBAAe,EAC/CD,EAAcC,CACf,CAED,KAAM,CAAE,gBAAAC,EAAiB,SAAAr0H,CAAU,EAAGxkG,EACtC,MAAO,CAAC24N,EAAaE,EAAiBr0H,CAAQ,CAC/C,CACH,CAEA,SAASs0H,IAAiBN,EAAWK,EAAiBE,EAAgB,CACpE,OAAIA,GAAkBF,KACfL,EAAU,SAAS,KAAK,IAC3BA,GAAa,MAGXO,IACFP,GAAa,OAAOO,CAAc,IAGhCF,IACFL,GAAa,OAAOK,CAAe,KAE9BL,CAIX,CAEA,SAASQ,IAAU/5L,EAAG,CACpB,MAAM8tE,EAAK,GACX,QAASvyG,EAAI,EAAGA,GAAK,GAAIA,IAAK,CAC5B,MAAMy+N,EAAKC,GAAS,IAAI,KAAM1+N,EAAG,CAAC,EAClCuyG,EAAG,KAAK9tE,EAAEg6L,CAAE,CAAC,CACd,CACD,OAAOlsH,CACT,CAEA,SAASosH,IAAYl6L,EAAG,CACtB,MAAM8tE,EAAK,GACX,QAASvyG,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,MAAMy+N,EAAKC,GAAS,IAAI,KAAM,GAAI,GAAK1+N,CAAC,EACxCuyG,EAAG,KAAK9tE,EAAEg6L,CAAE,CAAC,CACd,CACD,OAAOlsH,CACT,CAEA,SAASqsH,GAAUC,EAAKxsN,EAAQysN,EAAWC,EAAQ,CACjD,MAAMxwN,EAAOswN,EAAI,cAEjB,OAAItwN,IAAS,QACJ,KACEA,IAAS,KACXuwN,EAAUzsN,CAAM,EAEhB0sN,EAAO1sN,CAAM,CAExB,CAEA,SAAS2sN,IAAoBH,EAAK,CAChC,OAAIA,EAAI,iBAAmBA,EAAI,kBAAoB,OAC1C,GAGLA,EAAI,kBAAoB,QACxB,CAACA,EAAI,QACLA,EAAI,OAAO,WAAW,IAAI,GAC1B,IAAI,KAAK,eAAeA,EAAI,IAAI,EAAE,gBAAe,EAAG,kBAAoB,MAG9E,CAMA,MAAMI,GAAoB,CACxB,YAAYC,EAAMC,EAAa/oM,EAAM,CACnC,KAAK,MAAQA,EAAK,OAAS,EAC3B,KAAK,MAAQA,EAAK,OAAS,GAE3B,KAAM,CAAE,MAAAgpM,EAAO,MAAAxyK,EAAO,GAAGyyK,CAAS,EAAKjpM,EAEvC,GAAI,CAAC+oM,GAAe,OAAO,KAAKE,CAAS,EAAE,OAAS,EAAG,CACrD,MAAMC,EAAW,CAAE,YAAa,GAAO,GAAGlpM,CAAI,EAC1CA,EAAK,MAAQ,IAAGkpM,EAAS,qBAAuBlpM,EAAK,OACzD,KAAK,IAAMknM,IAAa4B,EAAMI,CAAQ,CACvC,CACF,CAED,OAAOt/N,EAAG,CACR,GAAI,KAAK,IAAK,CACZ,MAAMu/N,EAAQ,KAAK,MAAQ,KAAK,MAAMv/N,CAAC,EAAIA,EAC3C,OAAO,KAAK,IAAI,OAAOu/N,CAAK,CAClC,KAAW,CAEL,MAAMA,EAAQ,KAAK,MAAQ,KAAK,MAAMv/N,CAAC,EAAIw/N,GAAQx/N,EAAG,CAAC,EACvD,OAAOy/N,GAASF,EAAO,KAAK,KAAK,CAClC,CACF,CACH,CAMA,MAAMG,GAAkB,CACtB,YAAYjB,EAAIS,EAAM9oM,EAAM,CAC1B,KAAK,KAAOA,EACZ,KAAK,aAAe,OAEpB,IAAI4O,EACJ,GAAI,KAAK,KAAK,SAEZ,KAAK,GAAKy5L,UACDA,EAAG,KAAK,OAAS,QAAS,CAOnC,MAAMkB,EAAY,IAAMlB,EAAG,OAAS,IAC9BmB,EAAUD,GAAa,EAAI,WAAWA,CAAS,GAAK,UAAUA,CAAS,GACzElB,EAAG,SAAW,GAAK/B,GAAS,OAAOkD,CAAO,EAAE,OAC9C56L,EAAI46L,EACJ,KAAK,GAAKnB,IAIVz5L,EAAI,MACJ,KAAK,GAAKy5L,EAAG,SAAW,EAAIA,EAAKA,EAAG,QAAQ,KAAK,EAAE,KAAK,CAAE,QAASA,EAAG,MAAM,CAAE,EAC9E,KAAK,aAAeA,EAAG,KAE1B,MAAUA,EAAG,KAAK,OAAS,SAC1B,KAAK,GAAKA,EACDA,EAAG,KAAK,OAAS,QAC1B,KAAK,GAAKA,EACVz5L,EAAIy5L,EAAG,KAAK,OAIZz5L,EAAI,MACJ,KAAK,GAAKy5L,EAAG,QAAQ,KAAK,EAAE,KAAK,CAAE,QAASA,EAAG,MAAQ,GACvD,KAAK,aAAeA,EAAG,MAGzB,MAAMa,EAAW,CAAE,GAAG,KAAK,IAAI,EAC/BA,EAAS,SAAWA,EAAS,UAAYt6L,EACzC,KAAK,IAAMo4L,GAAa8B,EAAMI,CAAQ,CACvC,CAED,QAAS,CACP,OAAI,KAAK,aAGA,KAAK,cAAe,EACxB,IAAI,CAAC,CAAE,MAAAnjO,CAAO,IAAKA,CAAK,EACxB,KAAK,EAAE,EAEL,KAAK,IAAI,OAAO,KAAK,GAAG,SAAQ,CAAE,CAC1C,CAED,eAAgB,CACd,MAAM64B,EAAQ,KAAK,IAAI,cAAc,KAAK,GAAG,SAAQ,CAAE,EACvD,OAAI,KAAK,aACAA,EAAM,IAAK+hG,GAAS,CACzB,GAAIA,EAAK,OAAS,eAAgB,CAChC,MAAM8oG,EAAa,KAAK,aAAa,WAAW,KAAK,GAAG,GAAI,CAC1D,OAAQ,KAAK,GAAG,OAChB,OAAQ,KAAK,KAAK,YAC9B,CAAW,EACD,MAAO,CACL,GAAG9oG,EACH,MAAO8oG,CACnB,CACA,KACU,QAAO9oG,CAEjB,CAAO,EAEI/hG,CACR,CAED,iBAAkB,CAChB,OAAO,KAAK,IAAI,iBACjB,CACH,CAKA,MAAM8qM,GAAiB,CACrB,YAAYZ,EAAMa,EAAW3pM,EAAM,CACjC,KAAK,KAAO,CAAE,MAAO,OAAQ,GAAGA,CAAI,EAChC,CAAC2pM,GAAaC,OAChB,KAAK,IAAMvC,IAAayB,EAAM9oM,CAAI,EAErC,CAED,OAAO/K,EAAOgB,EAAM,CAClB,OAAI,KAAK,IACA,KAAK,IAAI,OAAOhB,EAAOgB,CAAI,EAE3B4zM,IAA2B5zM,EAAMhB,EAAO,KAAK,KAAK,QAAS,KAAK,KAAK,QAAU,MAAM,CAE/F,CAED,cAAcA,EAAOgB,EAAM,CACzB,OAAI,KAAK,IACA,KAAK,IAAI,cAAchB,EAAOgB,CAAI,EAElC,EAEV,CACH,CAEA,MAAM6zM,IAAuB,CAC3B,SAAU,EACV,YAAa,EACb,QAAS,CAAC,EAAG,CAAC,CAChB,EAMe,MAAMp2H,EAAO,CAC1B,OAAO,SAAS1zE,EAAM,CACpB,OAAO0zE,GAAO,OACZ1zE,EAAK,OACLA,EAAK,gBACLA,EAAK,eACLA,EAAK,aACLA,EAAK,WACX,CACG,CAED,OAAO,OAAO+xE,EAAQk2H,EAAiBE,EAAgB4B,EAAcC,EAAc,GAAO,CACxF,MAAMC,EAAkBl4H,GAAUm4H,GAAS,cAErCC,EAAUF,IAAoBD,EAAc,QAAUxC,IAAc,GACpE4C,EAAmBnC,GAAmBiC,GAAS,uBAC/CG,EAAkBlC,GAAkB+B,GAAS,sBAC7CI,EAAgBC,GAAqBR,CAAY,GAAKG,GAAS,oBACrE,OAAO,IAAIx2H,GAAOy2H,EAASC,EAAkBC,EAAiBC,EAAeL,CAAe,CAC7F,CAED,OAAO,YAAa,CAClB1C,GAAiB,KACjBR,GAAc,GACdE,GAAe,GACfG,GAAe,EAChB,CAED,OAAO,WAAW,CAAE,OAAAr1H,EAAQ,gBAAAk2H,EAAiB,eAAAE,EAAgB,aAAA4B,CAAc,EAAG,GAAI,CAChF,OAAOr2H,GAAO,OAAO3B,EAAQk2H,EAAiBE,EAAgB4B,CAAY,CAC3E,CAED,YAAYh4H,EAAQy4H,EAAWrC,EAAgB4B,EAAcE,EAAiB,CAC5E,KAAM,CAACQ,EAAcC,EAAuBC,CAAoB,EAAIhD,IAAkB51H,CAAM,EAE5F,KAAK,OAAS04H,EACd,KAAK,gBAAkBD,GAAaE,GAAyB,KAC7D,KAAK,eAAiBvC,GAAkBwC,GAAwB,KAChE,KAAK,aAAeZ,EACpB,KAAK,KAAO7B,IAAiB,KAAK,OAAQ,KAAK,gBAAiB,KAAK,cAAc,EAEnF,KAAK,cAAgB,CAAE,OAAQ,GAAI,WAAY,IAC/C,KAAK,YAAc,CAAE,OAAQ,GAAI,WAAY,IAC7C,KAAK,cAAgB,KACrB,KAAK,SAAW,GAEhB,KAAK,gBAAkB+B,EACvB,KAAK,kBAAoB,IAC1B,CAED,IAAI,aAAc,CAChB,OAAI,KAAK,mBAAqB,OAC5B,KAAK,kBAAoBrB,IAAoB,IAAI,GAG5C,KAAK,iBACb,CAED,aAAc,CACZ,MAAMgC,EAAe,KAAK,YACpBC,GACH,KAAK,kBAAoB,MAAQ,KAAK,kBAAoB,UAC1D,KAAK,iBAAmB,MAAQ,KAAK,iBAAmB,WAC3D,OAAOD,GAAgBC,EAAiB,KAAO,MAChD,CAED,MAAMC,EAAM,CACV,MAAI,CAACA,GAAQ,OAAO,oBAAoBA,CAAI,EAAE,SAAW,EAChD,KAEAp3H,GAAO,OACZo3H,EAAK,QAAU,KAAK,gBACpBA,EAAK,iBAAmB,KAAK,gBAC7BA,EAAK,gBAAkB,KAAK,eAC5BP,GAAqBO,EAAK,YAAY,GAAK,KAAK,aAChDA,EAAK,aAAe,EAC5B,CAEG,CAED,cAAcA,EAAO,GAAI,CACvB,OAAO,KAAK,MAAM,CAAE,GAAGA,EAAM,YAAa,EAAI,CAAE,CACjD,CAED,kBAAkBA,EAAO,GAAI,CAC3B,OAAO,KAAK,MAAM,CAAE,GAAGA,EAAM,YAAa,EAAK,CAAE,CAClD,CAED,OAAO7uN,EAAQwgD,EAAS,GAAO,CAC7B,OAAO+rK,GAAU,KAAMvsN,EAAQ8uN,GAAgB,IAAM,CACnD,MAAMjC,EAAOrsK,EAAS,CAAE,MAAOxgD,EAAQ,IAAK,SAAW,EAAG,CAAE,MAAOA,CAAQ,EACzEkkH,EAAY1jE,EAAS,SAAW,aAClC,OAAK,KAAK,YAAY0jE,CAAS,EAAElkH,CAAM,IACrC,KAAK,YAAYkkH,CAAS,EAAElkH,CAAM,EAAImsN,IAAWC,GAAO,KAAK,QAAQA,EAAIS,EAAM,OAAO,CAAC,GAElF,KAAK,YAAY3oG,CAAS,EAAElkH,CAAM,CAC/C,CAAK,CACF,CAED,SAASA,EAAQwgD,EAAS,GAAO,CAC/B,OAAO+rK,GAAU,KAAMvsN,EAAQ+uN,GAAkB,IAAM,CACrD,MAAMlC,EAAOrsK,EACP,CAAE,QAASxgD,EAAQ,KAAM,UAAW,MAAO,OAAQ,IAAK,SAAW,EACnE,CAAE,QAASA,CAAQ,EACvBkkH,EAAY1jE,EAAS,SAAW,aAClC,OAAK,KAAK,cAAc0jE,CAAS,EAAElkH,CAAM,IACvC,KAAK,cAAckkH,CAAS,EAAElkH,CAAM,EAAIssN,IAAaF,GACnD,KAAK,QAAQA,EAAIS,EAAM,SAAS,CAC1C,GAEa,KAAK,cAAc3oG,CAAS,EAAElkH,CAAM,CACjD,CAAK,CACF,CAED,WAAY,CACV,OAAOusN,GACL,KACA,OACA,IAAMyC,GACN,IAAM,CAGJ,GAAI,CAAC,KAAK,cAAe,CACvB,MAAMnC,EAAO,CAAE,KAAM,UAAW,UAAW,KAAK,EAChD,KAAK,cAAgB,CAACR,GAAS,IAAI,KAAM,GAAI,GAAI,CAAC,EAAGA,GAAS,IAAI,KAAM,GAAI,GAAI,EAAE,CAAC,EAAE,IAClFD,GAAO,KAAK,QAAQA,EAAIS,EAAM,WAAW,CACtD,CACS,CAED,OAAO,KAAK,aACb,CACP,CACG,CAED,KAAK7sN,EAAQ,CACX,OAAOusN,GAAU,KAAMvsN,EAAQivN,GAAc,IAAM,CACjD,MAAMpC,EAAO,CAAE,IAAK7sN,GAIpB,OAAK,KAAK,SAASA,CAAM,IACvB,KAAK,SAASA,CAAM,EAAI,CAACqsN,GAAS,IAAI,IAAK,EAAG,CAAC,EAAGA,GAAS,IAAI,KAAM,EAAG,CAAC,CAAC,EAAE,IAAKD,GAC/E,KAAK,QAAQA,EAAIS,EAAM,KAAK,CACtC,GAGa,KAAK,SAAS7sN,CAAM,CACjC,CAAK,CACF,CAED,QAAQosN,EAAIa,EAAUl9I,EAAO,CAC3B,MAAMrqC,EAAK,KAAK,YAAY0mL,EAAIa,CAAQ,EACtClmN,EAAU2+B,EAAG,cAAe,EAC5BwpL,EAAWnoN,EAAQ,KAAMrF,GAAMA,EAAE,KAAK,gBAAkBquE,CAAK,EAC/D,OAAOm/I,EAAWA,EAAS,MAAQ,IACpC,CAED,gBAAgBnrM,EAAO,GAAI,CAGzB,OAAO,IAAI6oM,IAAoB,KAAK,KAAM7oM,EAAK,aAAe,KAAK,YAAaA,CAAI,CACrF,CAED,YAAYqoM,EAAIa,EAAW,GAAI,CAC7B,OAAO,IAAII,IAAkBjB,EAAI,KAAK,KAAMa,CAAQ,CACrD,CAED,aAAalpM,EAAO,GAAI,CACtB,OAAO,IAAI0pM,IAAiB,KAAK,KAAM,KAAK,UAAS,EAAI1pM,CAAI,CAC9D,CAED,cAAcA,EAAO,GAAI,CACvB,OAAO6mM,IAAY,KAAK,KAAM7mM,CAAI,CACnC,CAED,WAAY,CACV,OACE,KAAK,SAAW,MAChB,KAAK,OAAO,YAAW,IAAO,SAC9B,IAAI,KAAK,eAAe,KAAK,IAAI,EAAE,kBAAkB,OAAO,WAAW,OAAO,CAEjF,CAED,iBAAkB,CAChB,OAAI,KAAK,aACA,KAAK,aACForM,KAGH1D,IAAkB,KAAK,MAAM,EAF7BoC,GAIV,CAED,gBAAiB,CACf,OAAO,KAAK,gBAAiB,EAAC,QAC/B,CAED,uBAAwB,CACtB,OAAO,KAAK,gBAAiB,EAAC,WAC/B,CAED,gBAAiB,CACf,OAAO,KAAK,gBAAiB,EAAC,OAC/B,CAED,OAAOvjH,EAAO,CACZ,OACE,KAAK,SAAWA,EAAM,QACtB,KAAK,kBAAoBA,EAAM,iBAC/B,KAAK,iBAAmBA,EAAM,cAEjC,CAED,UAAW,CACT,MAAO,UAAU,KAAK,MAAM,KAAK,KAAK,eAAe,KAAK,KAAK,cAAc,GAC9E,CACH,CC9hBA,IAAI2+G,GAAY,KAMD,MAAMmG,WAAwB/vC,EAAK,CAKhD,WAAW,aAAc,CACvB,OAAI4pC,KAAc,OAChBA,GAAY,IAAImG,GAAgB,CAAC,GAE5BnG,EACR,CAOD,OAAO,SAASn7L,EAAQ,CACtB,OAAOA,IAAW,EAAIshM,GAAgB,YAAc,IAAIA,GAAgBthM,CAAM,CAC/E,CAUD,OAAO,eAAe/qB,EAAG,CACvB,GAAIA,EAAG,CACL,MAAMyvB,EAAIzvB,EAAE,MAAM,uCAAuC,EACzD,GAAIyvB,EACF,OAAO,IAAI48L,GAAgBC,GAAa78L,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,CAAC,CAEtD,CACD,OAAO,IACR,CAED,YAAY1E,EAAQ,CAClB,QAEA,KAAK,MAAQA,CACd,CAOD,IAAI,MAAO,CACT,MAAO,OACR,CAQD,IAAI,MAAO,CACT,OAAO,KAAK,QAAU,EAAI,MAAQ,MAAMs7L,GAAa,KAAK,MAAO,QAAQ,CAAC,EAC3E,CAQD,IAAI,UAAW,CACb,OAAI,KAAK,QAAU,EACV,UAEA,UAAUA,GAAa,CAAC,KAAK,MAAO,QAAQ,CAAC,EAEvD,CAQD,YAAa,CACX,OAAO,KAAK,IACb,CAUD,aAAaL,EAAIvoK,EAAQ,CACvB,OAAO4oK,GAAa,KAAK,MAAO5oK,CAAM,CACvC,CAQD,IAAI,aAAc,CAChB,MAAO,EACR,CASD,QAAS,CACP,OAAO,KAAK,KACb,CAQD,OAAOwoK,EAAW,CAChB,OAAOA,EAAU,OAAS,SAAWA,EAAU,QAAU,KAAK,KAC/D,CAQD,IAAI,SAAU,CACZ,MAAO,EACR,CACH,CC/Ie,MAAMsG,YAAoBjwC,EAAK,CAC5C,YAAYkwC,EAAU,CACpB,QAEA,KAAK,SAAWA,CACjB,CAGD,IAAI,MAAO,CACT,MAAO,SACR,CAGD,IAAI,MAAO,CACT,OAAO,KAAK,QACb,CAGD,IAAI,aAAc,CAChB,MAAO,EACR,CAGD,YAAa,CACX,OAAO,IACR,CAGD,cAAe,CACb,MAAO,EACR,CAGD,QAAS,CACP,MAAO,IACR,CAGD,QAAS,CACP,MAAO,EACR,CAGD,IAAI,SAAU,CACZ,MAAO,EACR,CACH,CCxCO,SAASC,GAAc/9N,EAAOg+N,EAAa,CAEhD,GAAIzxJ,GAAYvsE,CAAK,GAAKA,IAAU,KAClC,OAAOg+N,EACF,GAAIh+N,aAAiB4tL,GAC1B,OAAO5tL,EACF,GAAI4sE,IAAS5sE,CAAK,EAAG,CAC1B,MAAMi+N,EAAUj+N,EAAM,cACtB,OAAIi+N,IAAY,UAAkBD,EACzBC,IAAY,SAAWA,IAAY,SAAiBxG,GAAW,SAC/DwG,IAAY,OAASA,IAAY,MAAcN,GAAgB,YAC5DA,GAAgB,eAAeM,CAAO,GAAKrF,GAAS,OAAO54N,CAAK,CAChF,KAAS,QAAI6sE,GAAS7sE,CAAK,EAChB29N,GAAgB,SAAS39N,CAAK,EAC5B,OAAOA,GAAU,UAAY,WAAYA,GAAS,OAAOA,EAAM,QAAW,WAG5EA,EAEA,IAAI69N,IAAY79N,CAAK,CAEhC,CCjCA,MAAMk+N,GAAmB,CACvB,KAAM,QACN,QAAS,QACT,KAAM,QACN,KAAM,QACN,KAAM,QACN,SAAU,QACV,KAAM,QACN,QAAS,wBACT,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,QACN,QAAS,QACT,KAAM,QACN,KAAM,QACN,KAAM,QACN,KAAM,KACR,EAEMC,GAAwB,CAC5B,KAAM,CAAC,KAAM,IAAI,EACjB,QAAS,CAAC,KAAM,IAAI,EACpB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,SAAU,CAAC,MAAO,KAAK,EACvB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,QAAS,CAAC,KAAM,IAAI,EACpB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,EACjB,KAAM,CAAC,KAAM,IAAI,CACnB,EAEMC,IAAeF,GAAiB,QAAQ,QAAQ,WAAY,EAAE,EAAE,MAAM,EAAE,EAEvE,SAASG,IAAYhxJ,EAAK,CAC/B,IAAIh1E,EAAQ,SAASg1E,EAAK,EAAE,EAC5B,GAAI,MAAMh1E,CAAK,EAAG,CAChBA,EAAQ,GACR,QAAS6D,EAAI,EAAGA,EAAImxE,EAAI,OAAQnxE,IAAK,CACnC,MAAMgY,EAAOm5D,EAAI,WAAWnxE,CAAC,EAE7B,GAAImxE,EAAInxE,CAAC,EAAE,OAAOgiO,GAAiB,OAAO,IAAM,GAC9C7lO,GAAS+lO,IAAa,QAAQ/wJ,EAAInxE,CAAC,CAAC,MAEpC,WAAW8N,KAAOm0N,GAAuB,CACvC,KAAM,CAACl1K,EAAK1zB,CAAG,EAAI4oM,GAAsBn0N,CAAG,EACxCkK,GAAQ+0C,GAAO/0C,GAAQqhB,IACzBl9B,GAAS6b,EAAO+0C,EAEnB,CAEJ,CACD,OAAO,SAAS5wD,EAAO,EAAE,CAC7B,KACI,QAAOA,CAEX,CAGA,IAAIimO,GAAkB,GACf,SAASC,KAAuB,CACrCD,GAAkB,EACpB,CAEO,SAASE,GAAW,CAAE,gBAAAjE,GAAmB5lJ,EAAS,GAAI,CAC3D,MAAM8pJ,EAAKlE,GAAmB,OAE9B,OAAK+D,GAAgBG,CAAE,IACrBH,GAAgBG,CAAE,EAAI,IAEnBH,GAAgBG,CAAE,EAAE9pJ,CAAM,IAC7B2pJ,GAAgBG,CAAE,EAAE9pJ,CAAM,EAAI,IAAI,OAAO,GAAGupJ,GAAiBO,CAAE,CAAC,GAAG9pJ,CAAM,EAAE,GAGtE2pJ,GAAgBG,CAAE,EAAE9pJ,CAAM,CACnC,CChFA,IAAIyxB,GAAM,IAAM,KAAK,IAAK,EACxB43H,GAAc,SACdtrG,GAAgB,KAChBgsG,GAAyB,KACzBC,GAAwB,KACxBC,GAAqB,GACrBC,GACAC,GAAsB,KAKT,MAAMtC,EAAS,CAK5B,WAAW,KAAM,CACf,OAAOp2H,EACR,CASD,WAAW,IAAIp2F,EAAG,CAChBo2F,GAAMp2F,CACP,CAOD,WAAW,YAAY6uG,EAAM,CAC3Bm/G,GAAcn/G,CACf,CAOD,WAAW,aAAc,CACvB,OAAOk/G,GAAcC,GAAavG,GAAW,QAAQ,CACtD,CAMD,WAAW,eAAgB,CACzB,OAAO/kG,EACR,CAMD,WAAW,cAAcruB,EAAQ,CAC/BquB,GAAgBruB,CACjB,CAMD,WAAW,wBAAyB,CAClC,OAAOq6H,EACR,CAMD,WAAW,uBAAuBnE,EAAiB,CACjDmE,GAAyBnE,CAC1B,CAMD,WAAW,uBAAwB,CACjC,OAAOoE,EACR,CAMD,WAAW,sBAAsBlE,EAAgB,CAC/CkE,GAAwBlE,CACzB,CAYD,WAAW,qBAAsB,CAC/B,OAAOqE,EACR,CASD,WAAW,oBAAoBzC,EAAc,CAC3CyC,GAAsBjC,GAAqBR,CAAY,CACxD,CAMD,WAAW,oBAAqB,CAC9B,OAAOuC,EACR,CAWD,WAAW,mBAAmBG,EAAY,CACxCH,GAAqBG,EAAa,GACnC,CAMD,WAAW,gBAAiB,CAC1B,OAAOF,EACR,CAMD,WAAW,eAAe5tN,EAAG,CAC3B4tN,GAAiB5tN,CAClB,CAMD,OAAO,aAAc,CACnB+0F,GAAO,WAAU,EACjB4yH,GAAS,WAAU,EACnBgC,GAAS,WAAU,EACnB2D,KACD,CACH,CCnLe,MAAMS,EAAQ,CAC3B,YAAYr9N,EAAQs9N,EAAa,CAC/B,KAAK,OAASt9N,EACd,KAAK,YAAcs9N,CACpB,CAED,WAAY,CACV,OAAI,KAAK,YACA,GAAG,KAAK,MAAM,KAAK,KAAK,WAAW,GAEnC,KAAK,MAEf,CACH,CCAA,MAAMC,GAAgB,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1EC,GAAa,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAErE,SAASC,GAAe72M,EAAMlwB,EAAO,CACnC,OAAO,IAAI2mO,GACT,oBACA,iBAAiB3mO,CAAK,aAAa,OAAOA,CAAK,UAAUkwB,CAAI,oBACjE,CACA,CAEO,SAASqoG,GAAUvnB,EAAMwD,EAAOwE,EAAK,CAC1C,MAAM3wE,EAAI,IAAI,KAAK,KAAK,IAAI2oE,EAAMwD,EAAQ,EAAGwE,CAAG,CAAC,EAE7ChI,EAAO,KAAOA,GAAQ,GACxB3oE,EAAE,eAAeA,EAAE,eAAgB,EAAG,IAAI,EAG5C,MAAM2+L,EAAK3+L,EAAE,YAEb,OAAO2+L,IAAO,EAAI,EAAIA,CACxB,CAEA,SAASC,GAAej2H,EAAMwD,EAAOwE,EAAK,CACxC,OAAOA,GAAOjI,GAAWC,CAAI,EAAI81H,GAAaD,IAAeryH,EAAQ,CAAC,CACxE,CAEA,SAAS0yH,GAAiBl2H,EAAMnC,EAAS,CACvC,MAAMz4E,EAAQ26E,GAAWC,CAAI,EAAI81H,GAAaD,GAC5CM,EAAS/wM,EAAM,UAAW,GAAM,EAAIy4E,CAAO,EAC3CmK,EAAMnK,EAAUz4E,EAAM+wM,CAAM,EAC9B,MAAO,CAAE,MAAOA,EAAS,EAAG,IAAAnuH,CAAG,CACjC,CAEO,SAASouH,GAAkBC,EAAY3wG,EAAa,CACzD,OAAS2wG,EAAa3wG,EAAc,GAAK,EAAK,CAChD,CAMO,SAAS4wG,GAAgBC,EAASC,EAAqB,EAAG9wG,EAAc,EAAG,CAChF,KAAM,CAAE,KAAA1lB,EAAM,MAAAwD,EAAO,IAAAwE,CAAK,EAAGuuH,EAC3B14H,EAAUo4H,GAAej2H,EAAMwD,EAAOwE,CAAG,EACzClC,EAAUswH,GAAkB7uG,GAAUvnB,EAAMwD,EAAOwE,CAAG,EAAG0d,CAAW,EAEtE,IAAI6F,EAAa,KAAK,OAAO1tB,EAAUiI,EAAU,GAAK0wH,GAAsB,CAAC,EAC3E1oH,EAEF,OAAIyd,EAAa,GACfzd,EAAW9N,EAAO,EAClBurB,EAAakrG,GAAgB3oH,EAAU0oH,EAAoB9wG,CAAW,GAC7D6F,EAAakrG,GAAgBz2H,EAAMw2H,EAAoB9wG,CAAW,GAC3E5X,EAAW9N,EAAO,EAClBurB,EAAa,GAEbzd,EAAW9N,EAGN,CAAE,SAAA8N,EAAU,WAAAyd,EAAY,QAAAzlB,EAAS,GAAG4wH,GAAWH,CAAO,EAC/D,CAEO,SAASI,GAAgBC,EAAUJ,EAAqB,EAAG9wG,EAAc,EAAG,CACjF,KAAM,CAAE,SAAA5X,EAAU,WAAAyd,EAAY,QAAAzlB,CAAS,EAAG8wH,EACxCC,EAAgBT,GAAkB7uG,GAAUzZ,EAAU,EAAG0oH,CAAkB,EAAG9wG,CAAW,EACzFoxG,EAAa9xH,GAAW8I,CAAQ,EAElC,IAAIjQ,EAAU0tB,EAAa,EAAIzlB,EAAU+wH,EAAgB,EAAIL,EAC3Dx2H,EAEEnC,EAAU,GACZmC,EAAO8N,EAAW,EAClBjQ,GAAWmH,GAAWhF,CAAI,GACjBnC,EAAUi5H,GACnB92H,EAAO8N,EAAW,EAClBjQ,GAAWmH,GAAW8I,CAAQ,GAE9B9N,EAAO8N,EAGT,KAAM,CAAE,MAAAtK,EAAO,IAAAwE,CAAG,EAAKkuH,GAAiBl2H,EAAMnC,CAAO,EACrD,MAAO,CAAE,KAAAmC,EAAM,MAAAwD,EAAO,IAAAwE,EAAK,GAAG0uH,GAAWE,CAAQ,EACnD,CAEO,SAASG,GAAmBC,EAAU,CAC3C,KAAM,CAAE,KAAAh3H,EAAM,MAAAwD,EAAO,IAAAwE,CAAG,EAAKgvH,EACvBn5H,EAAUo4H,GAAej2H,EAAMwD,EAAOwE,CAAG,EAC/C,MAAO,CAAE,KAAAhI,EAAM,QAAAnC,EAAS,GAAG64H,GAAWM,CAAQ,CAAC,CACjD,CAEO,SAASC,GAAmBC,EAAa,CAC9C,KAAM,CAAE,KAAAl3H,EAAM,QAAAnC,CAAS,EAAGq5H,EACpB,CAAE,MAAA1zH,EAAO,IAAAwE,CAAG,EAAKkuH,GAAiBl2H,EAAMnC,CAAO,EACrD,MAAO,CAAE,KAAAmC,EAAM,MAAAwD,EAAO,IAAAwE,EAAK,GAAG0uH,GAAWQ,CAAW,EACtD,CAQO,SAASC,GAAoB5vN,EAAKmqN,EAAK,CAK5C,GAHE,CAACxuJ,GAAY37D,EAAI,YAAY,GAC7B,CAAC27D,GAAY37D,EAAI,eAAe,GAChC,CAAC27D,GAAY37D,EAAI,aAAa,EACT,CAIrB,GAFE,CAAC27D,GAAY37D,EAAI,OAAO,GAAK,CAAC27D,GAAY37D,EAAI,UAAU,GAAK,CAAC27D,GAAY37D,EAAI,QAAQ,EAGtF,MAAM,IAAIglN,GACR,gEACR,EAEI,OAAKrpJ,GAAY37D,EAAI,YAAY,IAAGA,EAAI,QAAUA,EAAI,cACjD27D,GAAY37D,EAAI,eAAe,IAAGA,EAAI,WAAaA,EAAI,iBACvD27D,GAAY37D,EAAI,aAAa,IAAGA,EAAI,SAAWA,EAAI,eACxD,OAAOA,EAAI,aACX,OAAOA,EAAI,gBACX,OAAOA,EAAI,cACJ,CACL,mBAAoBmqN,EAAI,sBAAuB,EAC/C,YAAaA,EAAI,eAAgB,CACvC,CACA,KACI,OAAO,CAAE,mBAAoB,EAAG,YAAa,CAAC,CAElD,CAEO,SAAS0F,IAAmB7vN,EAAKivN,EAAqB,EAAG9wG,EAAc,EAAG,CAC/E,MAAM2xG,EAAYC,GAAU/vN,EAAI,QAAQ,EACtCgwN,EAAYC,GACVjwN,EAAI,WACJ,EACAkvN,GAAgBlvN,EAAI,SAAUivN,EAAoB9wG,CAAW,CAC9D,EACD+xG,EAAeD,GAAejwN,EAAI,QAAS,EAAG,CAAC,EAEjD,OAAK8vN,EAEOE,EAEAE,EAEE,GADL1B,GAAe,UAAWxuN,EAAI,OAAO,EAFrCwuN,GAAe,OAAQxuN,EAAI,UAAU,EAFrCwuN,GAAe,WAAYxuN,EAAI,QAAQ,CAMlD,CAEO,SAASmwN,IAAsBnwN,EAAK,CACzC,MAAM8vN,EAAYC,GAAU/vN,EAAI,IAAI,EAClCowN,EAAeH,GAAejwN,EAAI,QAAS,EAAGy9F,GAAWz9F,EAAI,IAAI,CAAC,EAEpE,OAAK8vN,EAEOM,EAEE,GADL5B,GAAe,UAAWxuN,EAAI,OAAO,EAFrCwuN,GAAe,OAAQxuN,EAAI,IAAI,CAI1C,CAEO,SAASqwN,GAAwBrwN,EAAK,CAC3C,MAAM8vN,EAAYC,GAAU/vN,EAAI,IAAI,EAClCswN,EAAaL,GAAejwN,EAAI,MAAO,EAAG,EAAE,EAC5CuwN,EAAWN,GAAejwN,EAAI,IAAK,EAAGk5F,GAAYl5F,EAAI,KAAMA,EAAI,KAAK,CAAC,EAExE,OAAK8vN,EAEOQ,EAEAC,EAEE,GADL/B,GAAe,MAAOxuN,EAAI,GAAG,EAF7BwuN,GAAe,QAASxuN,EAAI,KAAK,EAFjCwuN,GAAe,OAAQxuN,EAAI,IAAI,CAM1C,CAEO,SAASwwN,GAAmBxwN,EAAK,CACtC,KAAM,CAAE,KAAAgnG,EAAM,OAAA0yD,EAAQ,OAAA90J,EAAQ,YAAA6rN,CAAW,EAAKzwN,EACxC0wN,EACFT,GAAejpH,EAAM,EAAG,EAAE,GACzBA,IAAS,IAAM0yD,IAAW,GAAK90J,IAAW,GAAK6rN,IAAgB,EAClEE,EAAcV,GAAev2D,EAAQ,EAAG,EAAE,EAC1Ck3D,EAAcX,GAAerrN,EAAQ,EAAG,EAAE,EAC1CisN,EAAmBZ,GAAeQ,EAAa,EAAG,GAAG,EAEvD,OAAKC,EAEOC,EAEAC,EAEAC,EAEE,GADLrC,GAAe,cAAeiC,CAAW,EAFzCjC,GAAe,SAAU5pN,CAAM,EAF/B4pN,GAAe,SAAU90D,CAAM,EAF/B80D,GAAe,OAAQxnH,CAAI,CAQtC,CC7LO,SAASrrC,GAAYvrC,EAAG,CAC7B,OAAO,OAAOA,EAAM,GACtB,CAEO,SAAS6rC,GAAS7rC,EAAG,CAC1B,OAAO,OAAOA,GAAM,QACtB,CAEO,SAAS2/L,GAAU3/L,EAAG,CAC3B,OAAO,OAAOA,GAAM,UAAYA,EAAI,IAAM,CAC5C,CAEO,SAAS4rC,IAAS5rC,EAAG,CAC1B,OAAO,OAAOA,GAAM,QACtB,CAEO,SAAS+rC,IAAO/rC,EAAG,CACxB,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,eAC/C,CAIO,SAASk7L,IAAc,CAC5B,GAAI,CACF,OAAO,OAAO,KAAS,KAAe,CAAC,CAAC,KAAK,kBAC9C,MAAW,CACV,MAAO,EACR,CACH,CAEO,SAASwB,IAAoB,CAClC,GAAI,CACF,OACE,OAAO,KAAS,KAChB,CAAC,CAAC,KAAK,SACN,aAAc,KAAK,OAAO,WAAa,gBAAiB,KAAK,OAAO,UAExE,MAAW,CACV,MAAO,EACR,CACH,CAIO,SAASgE,IAAWC,EAAO,CAChC,OAAO,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAC9C,CAEO,SAASC,GAAO1uN,EAAK2uN,EAAI5lN,EAAS,CACvC,GAAI/I,EAAI,SAAW,EAGnB,OAAOA,EAAI,OAAO,CAAC4uN,EAAM7vN,IAAS,CAChC,MAAM8vN,EAAO,CAACF,EAAG5vN,CAAI,EAAGA,CAAI,EAC5B,OAAK6vN,GAEM7lN,EAAQ6lN,EAAK,CAAC,EAAGC,EAAK,CAAC,CAAC,IAAMD,EAAK,CAAC,EACtCA,EAFAC,CAMb,EAAK,IAAI,EAAE,CAAC,CACZ,CAEO,SAAS54F,IAAKv4H,EAAK0J,EAAM,CAC9B,OAAOA,EAAK,OAAO,CAAC7C,EAAGlI,KACrBkI,EAAElI,CAAC,EAAIqB,EAAIrB,CAAC,EACLkI,GACN,CAAE,EACP,CAEO,SAAS2pB,GAAexwB,EAAKiW,EAAM,CACxC,OAAO,OAAO,UAAU,eAAe,KAAKjW,EAAKiW,CAAI,CACvD,CAEO,SAASg2M,GAAqB3uN,EAAU,CAC7C,GAAIA,GAAY,KACd,OAAO,KACF,GAAI,OAAOA,GAAa,SAC7B,MAAM,IAAI4nN,GAAqB,iCAAiC,EAEhE,GACE,CAAC+K,GAAe3yN,EAAS,SAAU,EAAG,CAAC,GACvC,CAAC2yN,GAAe3yN,EAAS,YAAa,EAAG,CAAC,GAC1C,CAAC,MAAM,QAAQA,EAAS,OAAO,GAC/BA,EAAS,QAAQ,KAAMiC,GAAM,CAAC0wN,GAAe1wN,EAAG,EAAG,CAAC,CAAC,EAErD,MAAM,IAAI2lN,GAAqB,uBAAuB,EAExD,MAAO,CACL,SAAU5nN,EAAS,SACnB,YAAaA,EAAS,YACtB,QAAS,MAAM,KAAKA,EAAS,OAAO,CAC1C,CAEA,CAIO,SAAS2yN,GAAec,EAAOK,EAAQzlM,EAAK,CACjD,OAAOokM,GAAUgB,CAAK,GAAKA,GAASK,GAAUL,GAASplM,CACzD,CAGO,SAAS0lM,IAAS7gO,EAAG4O,EAAG,CAC7B,OAAO5O,EAAI4O,EAAI,KAAK,MAAM5O,EAAI4O,CAAC,CACjC,CAEO,SAAS2rN,GAAS37N,EAAOgQ,EAAI,EAAG,CACrC,MAAMkyN,EAAQliO,EAAQ,EACtB,IAAIinG,EACJ,OAAIi7H,EACFj7H,EAAS,KAAO,GAAK,CAACjnG,GAAO,SAASgQ,EAAG,GAAG,EAE5Ci3F,GAAU,GAAKjnG,GAAO,SAASgQ,EAAG,GAAG,EAEhCi3F,CACT,CAEO,SAASk7H,GAAalmO,EAAQ,CACnC,GAAI,EAAAswE,GAAYtwE,CAAM,GAAKA,IAAW,MAAQA,IAAW,IAGvD,OAAO,SAASA,EAAQ,EAAE,CAE9B,CAEO,SAASmmO,GAAcnmO,EAAQ,CACpC,GAAI,EAAAswE,GAAYtwE,CAAM,GAAKA,IAAW,MAAQA,IAAW,IAGvD,OAAO,WAAWA,CAAM,CAE5B,CAEO,SAASomO,GAAYC,EAAU,CAEpC,GAAI,EAAA/1J,GAAY+1J,CAAQ,GAAKA,IAAa,MAAQA,IAAa,IAExD,CACL,MAAM3hM,EAAI,WAAW,KAAO2hM,CAAQ,EAAI,IACxC,OAAO,KAAK,MAAM3hM,CAAC,CACpB,CACH,CAEO,SAAS+6L,GAAQp1H,EAAQi8H,EAAQC,EAAa,GAAO,CAC1D,MAAMC,EAAS,IAAMF,EAErB,OADYC,EAAa,KAAK,MAAQ,KAAK,OAC5Bl8H,EAASm8H,CAAM,EAAIA,CACpC,CAIO,SAASr5H,GAAWC,EAAM,CAC/B,OAAOA,EAAO,IAAM,IAAMA,EAAO,MAAQ,GAAKA,EAAO,MAAQ,EAC/D,CAEO,SAASgF,GAAWhF,EAAM,CAC/B,OAAOD,GAAWC,CAAI,EAAI,IAAM,GAClC,CAEO,SAASS,GAAYT,EAAMwD,EAAO,CACvC,MAAMC,EAAWm1H,IAASp1H,EAAQ,EAAG,EAAE,EAAI,EACzC61H,EAAUr5H,GAAQwD,EAAQC,GAAY,GAExC,OAAIA,IAAa,EACR1D,GAAWs5H,CAAO,EAAI,GAAK,GAE3B,CAAC,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAAE51H,EAAW,CAAC,CAE1E,CAGO,SAASisH,GAAanoN,EAAK,CAChC,IAAI8vB,EAAI,KAAK,IACX9vB,EAAI,KACJA,EAAI,MAAQ,EACZA,EAAI,IACJA,EAAI,KACJA,EAAI,OACJA,EAAI,OACJA,EAAI,WACR,EAGE,OAAIA,EAAI,KAAO,KAAOA,EAAI,MAAQ,IAChC8vB,EAAI,IAAI,KAAKA,CAAC,EAIdA,EAAE,eAAe9vB,EAAI,KAAMA,EAAI,MAAQ,EAAGA,EAAI,GAAG,GAE5C,CAAC8vB,CACV,CAGA,SAASkuE,GAAgBvF,EAAMw2H,EAAoB9wG,EAAa,CAE9D,MAAO,CADO0wG,GAAkB7uG,GAAUvnB,EAAM,EAAGw2H,CAAkB,EAAG9wG,CAAW,EACnE8wG,EAAqB,CACvC,CAEO,SAASC,GAAgB3oH,EAAU0oH,EAAqB,EAAG9wG,EAAc,EAAG,CACjF,MAAM1f,EAAaT,GAAgBuI,EAAU0oH,EAAoB9wG,CAAW,EACtEnf,EAAiBhB,GAAgBuI,EAAW,EAAG0oH,EAAoB9wG,CAAW,EACpF,OAAQ1gB,GAAW8I,CAAQ,EAAI9H,EAAaO,GAAkB,CAChE,CAEO,SAASiG,GAAexM,EAAM,CACnC,OAAIA,EAAO,GACFA,EACKA,EAAOmzH,GAAS,mBAAqB,KAAOnzH,EAAO,IAAOA,CAC1E,CAIO,SAASquH,GAAcJ,EAAIqL,EAAct+H,EAAQu+H,EAAW,KAAM,CACvE,MAAMl0H,EAAO,IAAI,KAAK4oH,CAAE,EACtBkE,EAAW,CACT,UAAW,MACX,KAAM,UACN,MAAO,UACP,IAAK,UACL,KAAM,UACN,OAAQ,SACd,EAEMoH,IACFpH,EAAS,SAAWoH,GAGtB,MAAMroM,EAAW,CAAE,aAAcooM,EAAc,GAAGnH,CAAQ,EAEpDjgM,EAAS,IAAI,KAAK,eAAe8oE,EAAQ9pE,CAAQ,EACpD,cAAcm0E,CAAI,EAClB,KAAMz+F,GAAMA,EAAE,KAAK,YAAW,IAAO,cAAc,EACtD,OAAOsrB,EAASA,EAAO,MAAQ,IACjC,CAGO,SAASqiM,GAAaiF,EAAYC,EAAc,CACrD,IAAIC,EAAU,SAASF,EAAY,EAAE,EAGjC,OAAO,MAAME,CAAO,IACtBA,EAAU,GAGZ,MAAMC,EAAS,SAASF,EAAc,EAAE,GAAK,EAC3CG,EAAeF,EAAU,GAAK,OAAO,GAAGA,EAAS,EAAE,EAAI,CAACC,EAASA,EACnE,OAAOD,EAAU,GAAKE,CACxB,CAIO,SAASC,GAAS7qO,EAAO,CAC9B,MAAM8qO,EAAe,OAAO9qO,CAAK,EACjC,GAAI,OAAOA,GAAU,WAAaA,IAAU,IAAM,OAAO,MAAM8qO,CAAY,EACzE,MAAM,IAAIrN,GAAqB,sBAAsBz9N,CAAK,EAAE,EAC9D,OAAO8qO,CACT,CAEO,SAASC,GAAgBxyN,EAAK+hJ,EAAY,CAC/C,MAAMq9B,EAAa,GACnB,UAAW/uJ,KAAKrwB,EACd,GAAIwwB,GAAexwB,EAAKqwB,CAAC,EAAG,CAC1B,MAAM9wB,EAAIS,EAAIqwB,CAAC,EACf,GAAuB9wB,GAAM,KAAM,SACnC6/K,EAAWr9B,EAAW1xH,CAAC,CAAC,EAAIiiM,GAAS/yN,CAAC,CACvC,CAEH,OAAO6/K,CACT,CASO,SAAS2nC,GAAat7L,EAAQ0yB,EAAQ,CAC3C,MAAM8jD,EAAQ,KAAK,MAAM,KAAK,IAAIx2E,EAAS,EAAE,CAAC,EAC5Cy2E,EAAU,KAAK,MAAM,KAAK,IAAIz2E,EAAS,EAAE,CAAC,EAC1CsqE,EAAOtqE,GAAU,EAAI,IAAM,IAE7B,OAAQ0yB,EAAM,CACZ,IAAK,QACH,MAAO,GAAG43C,CAAI,GAAGg1H,GAAS9oH,EAAO,CAAC,CAAC,IAAI8oH,GAAS7oH,EAAS,CAAC,CAAC,GAC7D,IAAK,SACH,MAAO,GAAGnM,CAAI,GAAGkM,CAAK,GAAGC,EAAU,EAAI,IAAIA,CAAO,GAAK,EAAE,GAC3D,IAAK,SACH,MAAO,GAAGnM,CAAI,GAAGg1H,GAAS9oH,EAAO,CAAC,CAAC,GAAG8oH,GAAS7oH,EAAS,CAAC,CAAC,GAC5D,QACE,MAAM,IAAI,WAAW,gBAAgB/jD,CAAM,sCAAsC,CACpF,CACH,CAEO,SAASgxK,GAAWnvN,EAAK,CAC9B,OAAOu4H,IAAKv4H,EAAK,CAAC,OAAQ,SAAU,SAAU,aAAa,CAAC,CAC9D,CChTO,MAAMyyN,IAAa,CACxB,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACF,EAEaC,GAAc,CACzB,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEaC,IAAe,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEhF,SAAS5pH,GAAOprG,EAAQ,CAC7B,OAAQA,EAAM,CACZ,IAAK,SACH,MAAO,CAAC,GAAGg1N,GAAY,EACzB,IAAK,QACH,MAAO,CAAC,GAAGD,EAAW,EACxB,IAAK,OACH,MAAO,CAAC,GAAGD,GAAU,EACvB,IAAK,UACH,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAI,EACvE,IAAK,UACH,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChF,QACE,OAAO,IACV,CACH,CAEO,MAAMG,GAAe,CAC1B,SACA,UACA,YACA,WACA,SACA,WACA,QACF,EAEaC,GAAgB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAEhEC,IAAiB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEzD,SAAS5yH,GAASviG,EAAQ,CAC/B,OAAQA,EAAM,CACZ,IAAK,SACH,MAAO,CAAC,GAAGm1N,GAAc,EAC3B,IAAK,QACH,MAAO,CAAC,GAAGD,EAAa,EAC1B,IAAK,OACH,MAAO,CAAC,GAAGD,EAAY,EACzB,IAAK,UACH,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC3C,QACE,OAAO,IACV,CACH,CAEO,MAAMG,GAAY,CAAC,KAAM,IAAI,EAEvBC,IAAW,CAAC,gBAAiB,aAAa,EAE1CC,IAAY,CAAC,KAAM,IAAI,EAEvBC,IAAa,CAAC,IAAK,GAAG,EAE5B,SAASljH,GAAKryG,EAAQ,CAC3B,OAAQA,EAAM,CACZ,IAAK,SACH,MAAO,CAAC,GAAGu1N,GAAU,EACvB,IAAK,QACH,MAAO,CAAC,GAAGD,GAAS,EACtB,IAAK,OACH,MAAO,CAAC,GAAGD,GAAQ,EACrB,QACE,OAAO,IACV,CACH,CAEO,SAASG,IAAoBpJ,EAAI,CACtC,OAAOgJ,GAAUhJ,EAAG,KAAO,GAAK,EAAI,CAAC,CACvC,CAEO,SAASqJ,IAAmBrJ,EAAIpsN,EAAQ,CAC7C,OAAOuiG,GAASviG,CAAM,EAAEosN,EAAG,QAAU,CAAC,CACxC,CAEO,SAASsJ,IAAiBtJ,EAAIpsN,EAAQ,CAC3C,OAAOorG,GAAOprG,CAAM,EAAEosN,EAAG,MAAQ,CAAC,CACpC,CAEO,SAASuJ,IAAevJ,EAAIpsN,EAAQ,CACzC,OAAOqyG,GAAKryG,CAAM,EAAEosN,EAAG,KAAO,EAAI,EAAI,CAAC,CACzC,CAEO,SAASwJ,IAAmB57M,EAAMhB,EAAO68M,EAAU,SAAUpjH,EAAS,GAAO,CAClF,MAAMtY,EAAQ,CACZ,MAAO,CAAC,OAAQ,KAAK,EACrB,SAAU,CAAC,UAAW,MAAM,EAC5B,OAAQ,CAAC,QAAS,KAAK,EACvB,MAAO,CAAC,OAAQ,KAAK,EACrB,KAAM,CAAC,MAAO,MAAO,MAAM,EAC3B,MAAO,CAAC,OAAQ,KAAK,EACrB,QAAS,CAAC,SAAU,MAAM,EAC1B,QAAS,CAAC,SAAU,MAAM,CAC9B,EAEQ27H,EAAW,CAAC,QAAS,UAAW,SAAS,EAAE,QAAQ97M,CAAI,IAAM,GAEnE,GAAI67M,IAAY,QAAUC,EAAU,CAClC,MAAMC,EAAQ/7M,IAAS,OACvB,OAAQhB,EAAK,CACX,IAAK,GACH,OAAO+8M,EAAQ,WAAa,QAAQ57H,EAAMngF,CAAI,EAAE,CAAC,CAAC,GACpD,IAAK,GACH,OAAO+7M,EAAQ,YAAc,QAAQ57H,EAAMngF,CAAI,EAAE,CAAC,CAAC,GACrD,IAAK,GACH,OAAO+7M,EAAQ,QAAU,QAAQ57H,EAAMngF,CAAI,EAAE,CAAC,CAAC,EAElD,CACF,CAED,MAAMg8M,EAAW,OAAO,GAAGh9M,EAAO,EAAE,GAAKA,EAAQ,EAC/Ci9M,EAAW,KAAK,IAAIj9M,CAAK,EACzBk9M,EAAWD,IAAa,EACxBE,EAAWh8H,EAAMngF,CAAI,EACrBo8M,EAAU3jH,EACNyjH,EACEC,EAAS,CAAC,EACVA,EAAS,CAAC,GAAKA,EAAS,CAAC,EAC3BD,EACA/7H,EAAMngF,CAAI,EAAE,CAAC,EACbA,EACN,OAAOg8M,EAAW,GAAGC,CAAQ,IAAIG,CAAO,OAAS,MAAMH,CAAQ,IAAIG,CAAO,EAC5E,CCjKA,SAASC,GAAgBC,EAAQC,EAAe,CAC9C,IAAIxzN,EAAI,GACR,UAAW1R,KAASilO,EACdjlO,EAAM,QACR0R,GAAK1R,EAAM,IAEX0R,GAAKwzN,EAAcllO,EAAM,GAAG,EAGhC,OAAO0R,CACT,CAEA,MAAMyzN,IAAyB,CAC7B,EAAGC,GACH,GAAIC,GACJ,IAAKC,GACL,KAAMC,GACN,EAAGC,GACH,GAAIC,GACJ,IAAKC,GACL,KAAMC,GACN,EAAGC,GACH,GAAIC,GACJ,IAAKC,GACL,KAAMC,GACN,EAAGC,GACH,GAAIC,GACJ,IAAKC,GACL,KAAMC,GACN,EAAGC,GACH,GAAIC,GACJ,IAAKC,GACL,KAAMC,EACR,EAMe,MAAMC,EAAU,CAC7B,OAAO,OAAO/hI,EAAQ/xE,EAAO,GAAI,CAC/B,OAAO,IAAI8zM,GAAU/hI,EAAQ/xE,CAAI,CAClC,CAED,OAAO,YAAY+zM,EAAK,CAItB,IAAIttM,EAAU,KACZutM,EAAc,GACdC,EAAY,GACd,MAAM1B,EAAS,GACf,QAAS3oO,EAAI,EAAGA,EAAImqO,EAAI,OAAQnqO,IAAK,CACnC,MAAMqR,EAAI84N,EAAI,OAAOnqO,CAAC,EAClBqR,IAAM,KACJ+4N,EAAY,OAAS,GACvBzB,EAAO,KAAK,CAAE,QAAS0B,GAAa,QAAQ,KAAKD,CAAW,EAAG,IAAKA,CAAa,GAEnFvtM,EAAU,KACVutM,EAAc,GACdC,EAAY,CAACA,GACJA,GAEAh5N,IAAMwrB,EADfutM,GAAe/4N,GAIX+4N,EAAY,OAAS,GACvBzB,EAAO,KAAK,CAAE,QAAS,QAAQ,KAAKyB,CAAW,EAAG,IAAKA,CAAW,CAAE,EAEtEA,EAAc/4N,EACdwrB,EAAUxrB,EAEb,CAED,OAAI+4N,EAAY,OAAS,GACvBzB,EAAO,KAAK,CAAE,QAAS0B,GAAa,QAAQ,KAAKD,CAAW,EAAG,IAAKA,CAAa,GAG5EzB,CACR,CAED,OAAO,uBAAuBjlO,EAAO,CACnC,OAAOmlO,IAAuBnlO,CAAK,CACpC,CAED,YAAYykG,EAAQmiI,EAAY,CAC9B,KAAK,KAAOA,EACZ,KAAK,IAAMniI,EACX,KAAK,UAAY,IAClB,CAED,wBAAwBs2H,EAAIroM,EAAM,CAChC,OAAI,KAAK,YAAc,OACrB,KAAK,UAAY,KAAK,IAAI,kBAAiB,GAElC,KAAK,UAAU,YAAYqoM,EAAI,CAAE,GAAG,KAAK,KAAM,GAAGroM,CAAM,GACzD,QACX,CAED,YAAYqoM,EAAIroM,EAAO,GAAI,CACzB,OAAO,KAAK,IAAI,YAAYqoM,EAAI,CAAE,GAAG,KAAK,KAAM,GAAGroM,CAAI,CAAE,CAC1D,CAED,eAAeqoM,EAAIroM,EAAM,CACvB,OAAO,KAAK,YAAYqoM,EAAIroM,CAAI,EAAE,OAAM,CACzC,CAED,oBAAoBqoM,EAAIroM,EAAM,CAC5B,OAAO,KAAK,YAAYqoM,EAAIroM,CAAI,EAAE,cAAa,CAChD,CAED,eAAepjB,EAAUojB,EAAM,CAE7B,OADW,KAAK,YAAYpjB,EAAS,MAAOojB,CAAI,EACtC,IAAI,YAAYpjB,EAAS,MAAM,SAAQ,EAAIA,EAAS,IAAI,SAAU,EAC7E,CAED,gBAAgByrN,EAAIroM,EAAM,CACxB,OAAO,KAAK,YAAYqoM,EAAIroM,CAAI,EAAE,gBAAe,CAClD,CAED,IAAItiB,EAAGwhB,EAAI,EAAG,CAEZ,GAAI,KAAK,KAAK,YACZ,OAAOmqM,GAAS3rN,EAAGwhB,CAAC,EAGtB,MAAMc,EAAO,CAAE,GAAG,KAAK,IAAI,EAE3B,OAAId,EAAI,IACNc,EAAK,MAAQd,GAGR,KAAK,IAAI,gBAAgBc,CAAI,EAAE,OAAOtiB,CAAC,CAC/C,CAED,yBAAyB2qN,EAAI0L,EAAK,CAChC,MAAMI,EAAe,KAAK,IAAI,YAAa,IAAK,KAC9CC,EAAuB,KAAK,IAAI,gBAAkB,KAAK,IAAI,iBAAmB,UAC9EzqO,EAAS,CAACq2B,EAAM61G,IAAY,KAAK,IAAI,QAAQwyF,EAAIroM,EAAM61G,CAAO,EAC9DwvF,EAAgBrlM,GACVqoM,EAAG,eAAiBA,EAAG,SAAW,GAAKroM,EAAK,OACvC,IAGFqoM,EAAG,QAAUA,EAAG,KAAK,aAAaA,EAAG,GAAIroM,EAAK,MAAM,EAAI,GAEjE4/E,EAAW,IACTu0H,EACIE,IAA4BhM,CAAE,EAC9B1+N,EAAO,CAAE,KAAM,UAAW,UAAW,KAAO,EAAE,WAAW,EAC/D4wG,EAAQ,CAACt+F,EAAQq4N,IACfH,EACII,IAAyBlM,EAAIpsN,CAAM,EACnCtS,EAAO2qO,EAAa,CAAE,MAAOr4N,CAAQ,EAAG,CAAE,MAAOA,EAAQ,IAAK,SAAS,EAAI,OAAO,EACxF4gG,EAAU,CAAC5gG,EAAQq4N,IACjBH,EACIK,IAA2BnM,EAAIpsN,CAAM,EACrCtS,EACE2qO,EAAa,CAAE,QAASr4N,CAAM,EAAK,CAAE,QAASA,EAAQ,MAAO,OAAQ,IAAK,SAAW,EACrF,SACD,EACPw4N,EAAcnnO,GAAU,CACtB,MAAM4mO,EAAaJ,GAAU,uBAAuBxmO,CAAK,EACzD,OAAI4mO,EACK,KAAK,wBAAwB7L,EAAI6L,CAAU,EAE3C5mO,CAEV,EACD83G,EAAOnpG,GACLk4N,EAAeO,IAAuBrM,EAAIpsN,CAAM,EAAItS,EAAO,CAAE,IAAKsS,CAAQ,EAAE,KAAK,EACnFu2N,EAAiBllO,GAAU,CAEzB,OAAQA,EAAK,CAEX,IAAK,IACH,OAAO,KAAK,IAAI+6N,EAAG,WAAW,EAChC,IAAK,IAEL,IAAK,MACH,OAAO,KAAK,IAAIA,EAAG,YAAa,CAAC,EAEnC,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,MAAM,EAC3B,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,OAAQ,CAAC,EAE9B,IAAK,KACH,OAAO,KAAK,IAAI,KAAK,MAAMA,EAAG,YAAc,EAAE,EAAG,CAAC,EACpD,IAAK,MACH,OAAO,KAAK,IAAI,KAAK,MAAMA,EAAG,YAAc,GAAG,CAAC,EAElD,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,MAAM,EAC3B,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,OAAQ,CAAC,EAE9B,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,KAAO,KAAO,EAAI,GAAKA,EAAG,KAAO,EAAE,EACxD,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,KAAO,KAAO,EAAI,GAAKA,EAAG,KAAO,GAAI,CAAC,EAC3D,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,IAAI,EACzB,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,KAAM,CAAC,EAE5B,IAAK,IAEH,OAAOhD,EAAa,CAAE,OAAQ,SAAU,OAAQ,KAAK,KAAK,MAAM,CAAE,EACpE,IAAK,KAEH,OAAOA,EAAa,CAAE,OAAQ,QAAS,OAAQ,KAAK,KAAK,MAAM,CAAE,EACnE,IAAK,MAEH,OAAOA,EAAa,CAAE,OAAQ,SAAU,OAAQ,KAAK,KAAK,MAAM,CAAE,EACpE,IAAK,OAEH,OAAOgD,EAAG,KAAK,WAAWA,EAAG,GAAI,CAAE,OAAQ,QAAS,OAAQ,KAAK,IAAI,MAAQ,GAC/E,IAAK,QAEH,OAAOA,EAAG,KAAK,WAAWA,EAAG,GAAI,CAAE,OAAQ,OAAQ,OAAQ,KAAK,IAAI,MAAQ,GAE9E,IAAK,IAEH,OAAOA,EAAG,SAEZ,IAAK,IACH,OAAOzoH,EAAQ,EAEjB,IAAK,IACH,OAAOw0H,EAAuBzqO,EAAO,CAAE,IAAK,SAAW,EAAE,KAAK,EAAI,KAAK,IAAI0+N,EAAG,GAAG,EACnF,IAAK,KACH,OAAO+L,EAAuBzqO,EAAO,CAAE,IAAK,SAAS,EAAI,KAAK,EAAI,KAAK,IAAI0+N,EAAG,IAAK,CAAC,EAEtF,IAAK,IAEH,OAAO,KAAK,IAAIA,EAAG,OAAO,EAC5B,IAAK,MAEH,OAAOxrH,EAAQ,QAAS,EAAI,EAC9B,IAAK,OAEH,OAAOA,EAAQ,OAAQ,EAAI,EAC7B,IAAK,QAEH,OAAOA,EAAQ,SAAU,EAAI,EAE/B,IAAK,IAEH,OAAO,KAAK,IAAIwrH,EAAG,OAAO,EAC5B,IAAK,MAEH,OAAOxrH,EAAQ,QAAS,EAAK,EAC/B,IAAK,OAEH,OAAOA,EAAQ,OAAQ,EAAK,EAC9B,IAAK,QAEH,OAAOA,EAAQ,SAAU,EAAK,EAEhC,IAAK,IAEH,OAAOu3H,EACHzqO,EAAO,CAAE,MAAO,UAAW,IAAK,SAAW,EAAE,OAAO,EACpD,KAAK,IAAI0+N,EAAG,KAAK,EACvB,IAAK,KAEH,OAAO+L,EACHzqO,EAAO,CAAE,MAAO,UAAW,IAAK,SAAW,EAAE,OAAO,EACpD,KAAK,IAAI0+N,EAAG,MAAO,CAAC,EAC1B,IAAK,MAEH,OAAO9tH,EAAM,QAAS,EAAI,EAC5B,IAAK,OAEH,OAAOA,EAAM,OAAQ,EAAI,EAC3B,IAAK,QAEH,OAAOA,EAAM,SAAU,EAAI,EAE7B,IAAK,IAEH,OAAO65H,EACHzqO,EAAO,CAAE,MAAO,SAAS,EAAI,OAAO,EACpC,KAAK,IAAI0+N,EAAG,KAAK,EACvB,IAAK,KAEH,OAAO+L,EACHzqO,EAAO,CAAE,MAAO,SAAS,EAAI,OAAO,EACpC,KAAK,IAAI0+N,EAAG,MAAO,CAAC,EAC1B,IAAK,MAEH,OAAO9tH,EAAM,QAAS,EAAK,EAC7B,IAAK,OAEH,OAAOA,EAAM,OAAQ,EAAK,EAC5B,IAAK,QAEH,OAAOA,EAAM,SAAU,EAAK,EAE9B,IAAK,IAEH,OAAO65H,EAAuBzqO,EAAO,CAAE,KAAM,SAAW,EAAE,MAAM,EAAI,KAAK,IAAI0+N,EAAG,IAAI,EACtF,IAAK,KAEH,OAAO+L,EACHzqO,EAAO,CAAE,KAAM,SAAS,EAAI,MAAM,EAClC,KAAK,IAAI0+N,EAAG,KAAK,WAAW,MAAM,EAAE,EAAG,CAAC,EAC9C,IAAK,OAEH,OAAO+L,EACHzqO,EAAO,CAAE,KAAM,SAAS,EAAI,MAAM,EAClC,KAAK,IAAI0+N,EAAG,KAAM,CAAC,EACzB,IAAK,SAEH,OAAO+L,EACHzqO,EAAO,CAAE,KAAM,SAAS,EAAI,MAAM,EAClC,KAAK,IAAI0+N,EAAG,KAAM,CAAC,EAEzB,IAAK,IAEH,OAAOjjH,EAAI,OAAO,EACpB,IAAK,KAEH,OAAOA,EAAI,MAAM,EACnB,IAAK,QACH,OAAOA,EAAI,QAAQ,EACrB,IAAK,KACH,OAAO,KAAK,IAAIijH,EAAG,SAAS,WAAW,MAAM,EAAE,EAAG,CAAC,EACrD,IAAK,OACH,OAAO,KAAK,IAAIA,EAAG,SAAU,CAAC,EAChC,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,UAAU,EAC/B,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,WAAY,CAAC,EAClC,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,eAAe,EACpC,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,gBAAiB,CAAC,EACvC,IAAK,KACH,OAAO,KAAK,IAAIA,EAAG,cAAc,WAAW,MAAM,EAAE,EAAG,CAAC,EAC1D,IAAK,OACH,OAAO,KAAK,IAAIA,EAAG,cAAe,CAAC,EACrC,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,OAAO,EAC5B,IAAK,MACH,OAAO,KAAK,IAAIA,EAAG,QAAS,CAAC,EAC/B,IAAK,IAEH,OAAO,KAAK,IAAIA,EAAG,OAAO,EAC5B,IAAK,KAEH,OAAO,KAAK,IAAIA,EAAG,QAAS,CAAC,EAC/B,IAAK,IACH,OAAO,KAAK,IAAI,KAAK,MAAMA,EAAG,GAAK,GAAI,CAAC,EAC1C,IAAK,IACH,OAAO,KAAK,IAAIA,EAAG,EAAE,EACvB,QACE,OAAOoM,EAAWnnO,CAAK,CAC1B,CACT,EAEI,OAAOglO,GAAgBwB,GAAU,YAAYC,CAAG,EAAGvB,CAAa,CACjE,CAED,yBAAyBtoH,EAAK6pH,EAAK,CACjC,MAAMY,EAAgBrnO,GAAU,CAC5B,OAAQA,EAAM,CAAC,EAAC,CACd,IAAK,IACH,MAAO,cACT,IAAK,IACH,MAAO,SACT,IAAK,IACH,MAAO,SACT,IAAK,IACH,MAAO,OACT,IAAK,IACH,MAAO,MACT,IAAK,IACH,MAAO,OACT,IAAK,IACH,MAAO,QACT,IAAK,IACH,MAAO,OACT,QACE,OAAO,IACV,CACF,EACDklO,EAAiBoC,GAAYtnO,GAAU,CACrC,MAAMkgB,EAASmnN,EAAarnO,CAAK,EACjC,OAAIkgB,EACK,KAAK,IAAIonN,EAAO,IAAIpnN,CAAM,EAAGlgB,EAAM,MAAM,EAEzCA,CAEV,EACD+e,EAASynN,GAAU,YAAYC,CAAG,EAClCc,EAAaxoN,EAAO,OAClB,CAACs+C,EAAO,CAAE,QAAAmqK,EAAS,IAAAhzN,CAAK,IAAMgzN,EAAUnqK,EAAQA,EAAM,OAAO7oD,CAAG,EAChE,CAAE,CACH,EACDizN,EAAY7qH,EAAI,QAAQ,GAAG2qH,EAAW,IAAIF,CAAY,EAAE,OAAQh2N,GAAMA,CAAC,CAAC,EAC1E,OAAO2zN,GAAgBjmN,EAAQmmN,EAAcuC,CAAS,CAAC,CACxD,CACH,CClYA,MAAMC,GAAY,+EAElB,SAASC,MAAkBn8H,EAAS,CAClC,MAAMo8H,EAAOp8H,EAAQ,OAAO,CAACzqE,EAAG,IAAMA,EAAI,EAAE,OAAQ,EAAE,EACtD,OAAO,OAAO,IAAI6mM,CAAI,GAAG,CAC3B,CAEA,SAASC,MAAqBC,EAAY,CACxC,OAAQz3N,GACNy3N,EACG,OACC,CAAC,CAACC,EAAYC,EAAY7sJ,CAAM,EAAGn3D,IAAO,CACxC,KAAM,CAACxP,EAAKyqG,EAAM5sG,CAAI,EAAI2R,EAAG3T,EAAG8qE,CAAM,EACtC,MAAO,CAAC,CAAE,GAAG4sJ,EAAY,GAAGvzN,CAAK,EAAEyqG,GAAQ+oH,EAAY31N,CAAI,CAC5D,EACD,CAAC,CAAE,EAAE,KAAM,CAAC,CACb,EACA,MAAM,EAAG,CAAC,CACjB,CAEA,SAASwjE,GAAMnkE,KAAM49H,EAAU,CAC7B,GAAI59H,GAAK,KACP,MAAO,CAAC,KAAM,IAAI,EAGpB,SAAW,CAACg6F,EAAOu8H,CAAS,IAAK34F,EAAU,CACzC,MAAMj/H,EAAIq7F,EAAM,KAAKh6F,CAAC,EACtB,GAAIrB,EACF,OAAO43N,EAAU53N,CAAC,CAErB,CACD,MAAO,CAAC,KAAM,IAAI,CACpB,CAEA,SAAS63N,MAAextN,EAAM,CAC5B,MAAO,CAACze,EAAOk/E,IAAW,CACxB,MAAMpmE,EAAM,GACZ,IAAIzY,EAEJ,IAAKA,EAAI,EAAGA,EAAIoe,EAAK,OAAQpe,IAC3ByY,EAAI2F,EAAKpe,CAAC,CAAC,EAAIimO,GAAatmO,EAAMk/E,EAAS7+E,CAAC,CAAC,EAE/C,MAAO,CAACyY,EAAK,KAAMomE,EAAS7+E,CAAC,CACjC,CACA,CAGA,MAAM6rO,GAAc,kCACdC,IAAkB,MAAMD,GAAY,MAAM,WAAWT,GAAU,MAAM,WACrEW,GAAmB,sDACnBC,GAAe,OAAO,GAAGD,GAAiB,MAAM,GAAGD,GAAe,EAAE,EACpEG,GAAwB,OAAO,OAAOD,GAAa,MAAM,IAAI,EAC7DE,IAAc,8CACdC,IAAe,8BACfC,IAAkB,mBAClBC,IAAqBT,GAAY,WAAY,aAAc,SAAS,EACpEU,IAAwBV,GAAY,OAAQ,SAAS,EACrDW,IAAc,wBACdC,GAAe,OACnB,GAAGT,GAAiB,MAAM,QAAQF,GAAY,MAAM,KAAKT,GAAU,MAAM,KAC3E,EACMqB,IAAwB,OAAO,OAAOD,GAAa,MAAM,IAAI,EAEnE,SAASE,GAAI/sO,EAAOy2G,EAAK93C,EAAU,CACjC,MAAMvqD,EAAIpU,EAAMy2G,CAAG,EACnB,OAAO/lC,GAAYt8D,CAAC,EAAIuqD,EAAW2nK,GAAalyN,CAAC,CACnD,CAEA,SAAS44N,IAAchtO,EAAOk/E,EAAQ,CAOpC,MAAO,CANM,CACX,KAAM6tJ,GAAI/sO,EAAOk/E,CAAM,EACvB,MAAO6tJ,GAAI/sO,EAAOk/E,EAAS,EAAG,CAAC,EAC/B,IAAK6tJ,GAAI/sO,EAAOk/E,EAAS,EAAG,CAAC,CACjC,EAEgB,KAAMA,EAAS,CAAC,CAChC,CAEA,SAAS+tJ,GAAejtO,EAAOk/E,EAAQ,CAQrC,MAAO,CAPM,CACX,MAAO6tJ,GAAI/sO,EAAOk/E,EAAQ,CAAC,EAC3B,QAAS6tJ,GAAI/sO,EAAOk/E,EAAS,EAAG,CAAC,EACjC,QAAS6tJ,GAAI/sO,EAAOk/E,EAAS,EAAG,CAAC,EACjC,aAAcsnJ,GAAYxmO,EAAMk/E,EAAS,CAAC,CAAC,CAC/C,EAEgB,KAAMA,EAAS,CAAC,CAChC,CAEA,SAASguJ,GAAiBltO,EAAOk/E,EAAQ,CACvC,MAAMiuJ,EAAQ,CAACntO,EAAMk/E,CAAM,GAAK,CAACl/E,EAAMk/E,EAAS,CAAC,EAC/CkuJ,EAAarL,GAAa/hO,EAAMk/E,EAAS,CAAC,EAAGl/E,EAAMk/E,EAAS,CAAC,CAAC,EAC9D8jC,EAAOmqH,EAAQ,KAAOrL,GAAgB,SAASsL,CAAU,EAC3D,MAAO,CAAC,GAAIpqH,EAAM9jC,EAAS,CAAC,CAC9B,CAEA,SAASmuJ,GAAgBrtO,EAAOk/E,EAAQ,CACtC,MAAM8jC,EAAOhjH,EAAMk/E,CAAM,EAAI69I,GAAS,OAAO/8N,EAAMk/E,CAAM,CAAC,EAAI,KAC9D,MAAO,CAAC,GAAI8jC,EAAM9jC,EAAS,CAAC,CAC9B,CAIA,MAAMouJ,IAAc,OAAO,MAAMlB,GAAiB,MAAM,GAAG,EAIrDmB,IACJ,+PAEF,SAASC,IAAmBxtO,EAAO,CACjC,KAAM,CAACyV,EAAGikG,EAASC,EAAU8zH,EAAS7zH,EAAQC,EAASC,EAAWC,EAAW2zH,CAAe,EAC1F1tO,EAEI2tO,EAAoBl4N,EAAE,CAAC,IAAM,IAC7Bm4N,EAAkB7zH,GAAaA,EAAU,CAAC,IAAM,IAEhD8zH,EAAc,CAACt3N,EAAKqsB,EAAQ,KAChCrsB,IAAQ,SAAcqsB,GAAUrsB,GAAOo3N,GAAsB,CAACp3N,EAAMA,EAEtE,MAAO,CACL,CACE,MAAOs3N,EAAYtH,GAAc7sH,CAAO,CAAC,EACzC,OAAQm0H,EAAYtH,GAAc5sH,CAAQ,CAAC,EAC3C,MAAOk0H,EAAYtH,GAAckH,CAAO,CAAC,EACzC,KAAMI,EAAYtH,GAAc3sH,CAAM,CAAC,EACvC,MAAOi0H,EAAYtH,GAAc1sH,CAAO,CAAC,EACzC,QAASg0H,EAAYtH,GAAczsH,CAAS,CAAC,EAC7C,QAAS+zH,EAAYtH,GAAcxsH,CAAS,EAAGA,IAAc,IAAI,EACjE,aAAc8zH,EAAYrH,GAAYkH,CAAe,EAAGE,CAAe,CACxE,CACL,CACA,CAKA,MAAM50H,IAAa,CACjB,IAAK,EACL,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,GACV,IAAK,GAAK,EACZ,EAEA,SAAS80H,GAAY3zH,EAAYT,EAASC,EAAUC,EAAQC,EAASC,EAAWC,EAAW,CACzF,MAAM55G,EAAS,CACb,KAAMu5G,EAAQ,SAAW,EAAIM,GAAessH,GAAa5sH,CAAO,CAAC,EAAI4sH,GAAa5sH,CAAO,EACzF,MAAOq0H,GAAoB,QAAQp0H,CAAQ,EAAI,EAC/C,IAAK2sH,GAAa1sH,CAAM,EACxB,KAAM0sH,GAAazsH,CAAO,EAC1B,OAAQysH,GAAaxsH,CAAS,CAClC,EAEE,OAAIC,IAAW55G,EAAO,OAASmmO,GAAavsH,CAAS,GACjDI,IACFh6G,EAAO,QACLg6G,EAAW,OAAS,EAChB6zH,GAAqB,QAAQ7zH,CAAU,EAAI,EAC3C8zH,GAAsB,QAAQ9zH,CAAU,EAAI,GAG7Ch6G,CACT,CAGA,MAAM44G,IACJ,kMAEF,SAASm1H,IAAeluO,EAAO,CAC7B,KAAM,CACR,CACMm6G,EACAP,EACAD,EACAD,EACAG,EACAC,EACAC,EACAS,EACA2zH,EACAnH,EACAC,CACN,EAAQjnO,EACJG,EAAS2tO,GAAY3zH,EAAYT,EAASC,EAAUC,EAAQC,EAASC,EAAWC,CAAS,EAE3F,IAAIv5E,EACJ,OAAIg6E,EACFh6E,EAASw4E,IAAWwB,CAAS,EACpB2zH,EACT3tM,EAAS,EAETA,EAASuhM,GAAaiF,EAAYC,CAAY,EAGzC,CAAC9mO,EAAQ,IAAI2hO,GAAgBthM,CAAM,CAAC,CAC7C,CAEA,SAASy5E,IAAkBxkG,EAAG,CAE5B,OAAOA,EACJ,QAAQ,qBAAsB,GAAG,EACjC,QAAQ,WAAY,GAAG,EACvB,MACL,CAIA,MAAM24N,IACF,6HACFC,IACE,yJACFC,IACE,4HAEJ,SAASC,GAAoBvuO,EAAO,CAClC,KAAM,CAAG,CAAAm6G,EAAYP,EAAQD,EAAUD,EAASG,EAASC,EAAWC,CAAS,EAAI/5G,EAEjF,MAAO,CADI8tO,GAAY3zH,EAAYT,EAASC,EAAUC,EAAQC,EAASC,EAAWC,CAAS,EAC3E+nH,GAAgB,WAAW,CAC7C,CAEA,SAAS0M,IAAaxuO,EAAO,CAC3B,KAAM,CAAG,CAAAm6G,EAAYR,EAAUC,EAAQC,EAASC,EAAWC,EAAWL,CAAO,EAAI15G,EAEjF,MAAO,CADI8tO,GAAY3zH,EAAYT,EAASC,EAAUC,EAAQC,EAASC,EAAWC,CAAS,EAC3E+nH,GAAgB,WAAW,CAC7C,CAEA,MAAM2M,IAA+B/C,GAAea,IAAaD,EAAqB,EAChFoC,IAAgChD,GAAec,IAAcF,EAAqB,EAClFqC,IAAmCjD,GAAee,IAAiBH,EAAqB,EACxFsC,IAAuBlD,GAAeW,EAAY,EAElDwC,GAA6BjD,GACjCoB,IACAC,GACAC,GACAG,EACF,EACMyB,IAA8BlD,GAClCc,IACAO,GACAC,GACAG,EACF,EACM0B,IAA+BnD,GACnCe,IACAM,GACAC,GACAG,EACF,EACM2B,IAA0BpD,GAC9BqB,GACAC,GACAG,EACF,EAMO,SAAS4B,IAAax5N,EAAG,CAC9B,OAAOmkE,GACLnkE,EACA,CAACg5N,IAA8BI,EAA0B,EACzD,CAACH,IAA+BI,GAA2B,EAC3D,CAACH,IAAkCI,GAA4B,EAC/D,CAACH,IAAsBI,GAAuB,CAClD,CACA,CAEO,SAASE,IAAiBz5N,EAAG,CAClC,OAAOmkE,GAAMqgC,IAAkBxkG,CAAC,EAAG,CAACsjG,IAASm1H,GAAc,CAAC,CAC9D,CAEO,SAASiB,IAAc15N,EAAG,CAC/B,OAAOmkE,GACLnkE,EACA,CAAC24N,IAASG,EAAmB,EAC7B,CAACF,IAAQE,EAAmB,EAC5B,CAACD,IAAOE,GAAY,CACxB,CACA,CAEO,SAASY,IAAiB35N,EAAG,CAClC,OAAOmkE,GAAMnkE,EAAG,CAAC83N,IAAaC,GAAkB,CAAC,CACnD,CAEA,MAAM6B,IAAqBzD,GAAkBqB,EAAc,EAEpD,SAASqC,IAAiB75N,EAAG,CAClC,OAAOmkE,GAAMnkE,EAAG,CAAC63N,IAAa+B,GAAkB,CAAC,CACnD,CAEA,MAAME,IAA+B7D,GAAekB,IAAaE,GAAqB,EAChF0C,IAAuB9D,GAAemB,EAAY,EAElD4C,IAAkC7D,GACtCqB,GACAC,GACAG,EACF,EAEO,SAASqC,IAASj6N,EAAG,CAC1B,OAAOmkE,GACLnkE,EACA,CAAC85N,IAA8BV,EAA0B,EACzD,CAACW,IAAsBC,GAA+B,CAC1D,CACA,CC9TA,MAAME,GAAU,mBAGHC,GAAiB,CAC1B,MAAO,CACL,KAAM,EACN,MAAO,EAAI,GACX,QAAS,EAAI,GAAK,GAClB,QAAS,EAAI,GAAK,GAAK,GACvB,aAAc,EAAI,GAAK,GAAK,GAAK,GAClC,EACD,KAAM,CACJ,MAAO,GACP,QAAS,GAAK,GACd,QAAS,GAAK,GAAK,GACnB,aAAc,GAAK,GAAK,GAAK,GAC9B,EACD,MAAO,CAAE,QAAS,GAAI,QAAS,GAAK,GAAI,aAAc,GAAK,GAAK,GAAM,EACtE,QAAS,CAAE,QAAS,GAAI,aAAc,GAAK,GAAM,EACjD,QAAS,CAAE,aAAc,GAAM,CAChC,EACDC,IAAe,CACb,MAAO,CACL,SAAU,EACV,OAAQ,GACR,MAAO,GACP,KAAM,IACN,MAAO,IAAM,GACb,QAAS,IAAM,GAAK,GACpB,QAAS,IAAM,GAAK,GAAK,GACzB,aAAc,IAAM,GAAK,GAAK,GAAK,GACpC,EACD,SAAU,CACR,OAAQ,EACR,MAAO,GACP,KAAM,GACN,MAAO,GAAK,GACZ,QAAS,GAAK,GAAK,GACnB,QAAS,GAAK,GAAK,GAAK,GACxB,aAAc,GAAK,GAAK,GAAK,GAAK,GACnC,EACD,OAAQ,CACN,MAAO,EACP,KAAM,GACN,MAAO,GAAK,GACZ,QAAS,GAAK,GAAK,GACnB,QAAS,GAAK,GAAK,GAAK,GACxB,aAAc,GAAK,GAAK,GAAK,GAAK,GACnC,EAED,GAAGD,EACJ,EACDE,GAAqB,OAAW,IAChCC,GAAsB,OAAW,KACjCC,IAAiB,CACf,MAAO,CACL,SAAU,EACV,OAAQ,GACR,MAAOF,GAAqB,EAC5B,KAAMA,GACN,MAAOA,GAAqB,GAC5B,QAASA,GAAqB,GAAK,GACnC,QAASA,GAAqB,GAAK,GAAK,GACxC,aAAcA,GAAqB,GAAK,GAAK,GAAK,GACnD,EACD,SAAU,CACR,OAAQ,EACR,MAAOA,GAAqB,GAC5B,KAAMA,GAAqB,EAC3B,MAAQA,GAAqB,GAAM,EACnC,QAAUA,GAAqB,GAAK,GAAM,EAC1C,QAAUA,GAAqB,GAAK,GAAK,GAAM,EAC/C,aAAeA,GAAqB,GAAK,GAAK,GAAK,IAAQ,CAC5D,EACD,OAAQ,CACN,MAAOC,GAAsB,EAC7B,KAAMA,GACN,MAAOA,GAAsB,GAC7B,QAASA,GAAsB,GAAK,GACpC,QAASA,GAAsB,GAAK,GAAK,GACzC,aAAcA,GAAsB,GAAK,GAAK,GAAK,GACpD,EACD,GAAGH,EACP,EAGMK,GAAe,CACnB,QACA,WACA,SACA,QACA,OACA,QACA,UACA,UACA,cACF,EAEMC,IAAeD,GAAa,MAAM,CAAC,EAAE,QAAO,EAGlD,SAAShpO,GAAM05G,EAAK4gH,EAAM7/L,EAAQ,GAAO,CAEvC,MAAMyuM,EAAO,CACX,OAAQzuM,EAAQ6/L,EAAK,OAAS,CAAE,GAAG5gH,EAAI,OAAQ,GAAI4gH,EAAK,QAAU,EAAK,EACvE,IAAK5gH,EAAI,IAAI,MAAM4gH,EAAK,GAAG,EAC3B,mBAAoBA,EAAK,oBAAsB5gH,EAAI,mBACnD,OAAQ4gH,EAAK,QAAU5gH,EAAI,MAC/B,EACE,OAAO,IAAIhD,GAASwyH,CAAI,CAC1B,CAEA,SAASC,GAAiBh3E,EAAQi3E,EAAM,CACtC,IAAIC,EAAMD,EAAK,cAAgB,EAC/B,UAAW3jN,KAAQwjN,IAAa,MAAM,CAAC,EACjCG,EAAK3jN,CAAI,IACX4jN,GAAOD,EAAK3jN,CAAI,EAAI0sI,EAAO1sI,CAAI,EAAE,cAGrC,OAAO4jN,CACT,CAGA,SAASC,GAAgBn3E,EAAQi3E,EAAM,CAGrC,MAAMzJ,EAASwJ,GAAiBh3E,EAAQi3E,CAAI,EAAI,EAAI,GAAK,EAEzDJ,GAAa,YAAY,CAAC/1J,EAAUh9C,IAAY,CAC9C,GAAKwzC,GAAY2/J,EAAKnzM,CAAO,CAAC,EA0B5B,OAAOg9C,EAzBP,GAAIA,EAAU,CACZ,MAAMs2J,EAAcH,EAAKn2J,CAAQ,EAAI0sJ,EAC/BzpM,EAAOi8H,EAAOl8H,CAAO,EAAEg9C,CAAQ,EAiB/Bu2J,EAAS,KAAK,MAAMD,EAAcrzM,CAAI,EAC5CkzM,EAAKnzM,CAAO,GAAKuzM,EAAS7J,EAC1ByJ,EAAKn2J,CAAQ,GAAKu2J,EAAStzM,EAAOypM,CACnC,CACD,OAAO1pM,CAIV,EAAE,IAAI,EAIP+yM,GAAa,OAAO,CAAC/1J,EAAUh9C,IAAY,CACzC,GAAKwzC,GAAY2/J,EAAKnzM,CAAO,CAAC,EAQ5B,OAAOg9C,EAPP,GAAIA,EAAU,CACZ,MAAMusJ,EAAW4J,EAAKn2J,CAAQ,EAAI,EAClCm2J,EAAKn2J,CAAQ,GAAKusJ,EAClB4J,EAAKnzM,CAAO,GAAKupM,EAAWrtE,EAAOl/E,CAAQ,EAAEh9C,CAAO,CACrD,CACD,OAAOA,CAIV,EAAE,IAAI,CACT,CAGA,SAASwzM,IAAaL,EAAM,CAC1B,MAAMM,EAAU,GAChB,SAAW,CAACxiO,EAAK3R,CAAK,IAAK,OAAO,QAAQ6zO,CAAI,EACxC7zO,IAAU,IACZm0O,EAAQxiO,CAAG,EAAI3R,GAGnB,OAAOm0O,CACT,CAee,MAAMhzH,EAAS,CAI5B,YAAY7qC,EAAQ,CAClB,MAAM89J,EAAW99J,EAAO,qBAAuB,YAAc,GAC7D,IAAIsmF,EAASw3E,EAAWZ,IAAiBH,IAErC/8J,EAAO,SACTsmF,EAAStmF,EAAO,QAMlB,KAAK,OAASA,EAAO,OAIrB,KAAK,IAAMA,EAAO,KAAOq3B,GAAO,OAAM,EAItC,KAAK,mBAAqBymI,EAAW,WAAa,SAIlD,KAAK,QAAU99J,EAAO,SAAW,KAIjC,KAAK,OAASsmF,EAId,KAAK,gBAAkB,EACxB,CAWD,OAAO,WAAW1tI,EAAO+K,EAAM,CAC7B,OAAOknF,GAAS,WAAW,CAAE,aAAcjyF,CAAK,EAAI+K,CAAI,CACzD,CAsBD,OAAO,WAAW1hB,EAAK0hB,EAAO,GAAI,CAChC,GAAI1hB,GAAO,MAAQ,OAAOA,GAAQ,SAChC,MAAM,IAAIklN,GACR,+DACEllN,IAAQ,KAAO,OAAS,OAAOA,CACzC,EACA,EAGI,OAAO,IAAI4oG,GAAS,CAClB,OAAQ4pH,GAAgBxyN,EAAK4oG,GAAS,aAAa,EACnD,IAAKxT,GAAO,WAAW1zE,CAAI,EAC3B,mBAAoBA,EAAK,mBACzB,OAAQA,EAAK,MACnB,CAAK,CACF,CAYD,OAAO,iBAAiBo6M,EAAc,CACpC,GAAI7/J,GAAS6/J,CAAY,EACvB,OAAOlzH,GAAS,WAAWkzH,CAAY,EAClC,GAAIlzH,GAAS,WAAWkzH,CAAY,EACzC,OAAOA,EACF,GAAI,OAAOA,GAAiB,SACjC,OAAOlzH,GAAS,WAAWkzH,CAAY,EAEvC,MAAM,IAAI5W,GACR,6BAA6B4W,CAAY,YAAY,OAAOA,CAAY,EAChF,CAEG,CAgBD,OAAO,QAAQvuN,EAAMmU,EAAM,CACzB,KAAM,CAACiJ,CAAM,EAAI0vM,IAAiB9sN,CAAI,EACtC,OAAIod,EACKi+E,GAAS,WAAWj+E,EAAQjJ,CAAI,EAEhCknF,GAAS,QAAQ,aAAc,cAAcr7F,CAAI,+BAA+B,CAE1F,CAkBD,OAAO,YAAYA,EAAMmU,EAAM,CAC7B,KAAM,CAACiJ,CAAM,EAAI4vM,IAAiBhtN,CAAI,EACtC,OAAIod,EACKi+E,GAAS,WAAWj+E,EAAQjJ,CAAI,EAEhCknF,GAAS,QAAQ,aAAc,cAAcr7F,CAAI,+BAA+B,CAE1F,CAQD,OAAO,QAAQxc,EAAQs9N,EAAc,KAAM,CACzC,GAAI,CAACt9N,EACH,MAAM,IAAIm0N,GAAqB,kDAAkD,EAGnF,MAAM1tD,EAAUzmK,aAAkBq9N,GAAUr9N,EAAS,IAAIq9N,GAAQr9N,EAAQs9N,CAAW,EAEpF,GAAIzC,GAAS,eACX,MAAM,IAAI7G,IAAqBvtD,CAAO,EAEtC,OAAO,IAAI5uD,GAAS,CAAE,QAAA4uD,CAAO,CAAE,CAElC,CAKD,OAAO,cAAc7/I,EAAM,CACzB,MAAMynK,EAAa,CACjB,KAAM,QACN,MAAO,QACP,QAAS,WACT,SAAU,WACV,MAAO,SACP,OAAQ,SACR,KAAM,QACN,MAAO,QACP,IAAK,OACL,KAAM,OACN,KAAM,QACN,MAAO,QACP,OAAQ,UACR,QAAS,UACT,OAAQ,UACR,QAAS,UACT,YAAa,eACb,aAAc,cACf,EAACznK,GAAOA,EAAK,YAAa,CAAO,EAElC,GAAI,CAACynK,EAAY,MAAM,IAAI6lC,GAAiBttM,CAAI,EAEhD,OAAOynK,CACR,CAOD,OAAO,WAAWhvJ,EAAG,CACnB,OAAQA,GAAKA,EAAE,iBAAoB,EACpC,CAMD,IAAI,QAAS,CACX,OAAO,KAAK,QAAU,KAAK,IAAI,OAAS,IACzC,CAOD,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAU,KAAK,IAAI,gBAAkB,IAClD,CAwBD,SAASqlM,EAAK/zM,EAAO,GAAI,CAEvB,MAAMq6M,EAAU,CACd,GAAGr6M,EACH,MAAOA,EAAK,QAAU,IAASA,EAAK,QAAU,EACpD,EACI,OAAO,KAAK,QACR8zM,GAAU,OAAO,KAAK,IAAKuG,CAAO,EAAE,yBAAyB,KAAMtG,CAAG,EACtEmF,EACL,CAgBD,QAAQl5M,EAAO,GAAI,CACjB,GAAI,CAAC,KAAK,QAAS,OAAOk5M,GAE1B,MAAMr6N,EAAI26N,GACP,IAAKvjN,GAAS,CACb,MAAMnU,EAAM,KAAK,OAAOmU,CAAI,EAC5B,OAAIgkD,GAAYn4D,CAAG,EACV,KAEF,KAAK,IACT,gBAAgB,CAAE,MAAO,OAAQ,YAAa,OAAQ,GAAGke,EAAM,KAAM/J,EAAK,MAAM,EAAG,EAAE,CAAC,CAAE,EACxF,OAAOnU,CAAG,CACrB,CAAO,EACA,OAAQpE,GAAMA,CAAC,EAElB,OAAO,KAAK,IACT,cAAc,CAAE,KAAM,cAAe,MAAOsiB,EAAK,WAAa,SAAU,GAAGA,EAAM,EACjF,OAAOnhB,CAAC,CACZ,CAOD,UAAW,CACT,OAAK,KAAK,QACH,CAAE,GAAG,KAAK,QADS,EAE3B,CAYD,OAAQ,CAEN,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,IAAIG,EAAI,IACR,OAAI,KAAK,QAAU,IAAGA,GAAK,KAAK,MAAQ,MACpC,KAAK,SAAW,GAAK,KAAK,WAAa,KAAGA,GAAK,KAAK,OAAS,KAAK,SAAW,EAAI,KACjF,KAAK,QAAU,IAAGA,GAAK,KAAK,MAAQ,KACpC,KAAK,OAAS,IAAGA,GAAK,KAAK,KAAO,MAClC,KAAK,QAAU,GAAK,KAAK,UAAY,GAAK,KAAK,UAAY,GAAK,KAAK,eAAiB,KACxFA,GAAK,KACH,KAAK,QAAU,IAAGA,GAAK,KAAK,MAAQ,KACpC,KAAK,UAAY,IAAGA,GAAK,KAAK,QAAU,MACxC,KAAK,UAAY,GAAK,KAAK,eAAiB,KAG9CA,GAAKoqN,GAAQ,KAAK,QAAU,KAAK,aAAe,IAAM,CAAC,EAAI,KACzDpqN,IAAM,MAAKA,GAAK,OACbA,CACR,CAkBD,UAAUghB,EAAO,GAAI,CACnB,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,MAAMs6M,EAAS,KAAK,WACpB,OAAIA,EAAS,GAAKA,GAAU,MAAiB,MAE7Ct6M,EAAO,CACL,qBAAsB,GACtB,gBAAiB,GACjB,cAAe,GACf,OAAQ,WACR,GAAGA,EACH,cAAe,EACrB,EAEqBsoM,GAAS,WAAWgS,EAAQ,CAAE,KAAM,KAAK,CAAE,EAC5C,UAAUt6M,CAAI,EAC/B,CAMD,QAAS,CACP,OAAO,KAAK,OACb,CAMD,UAAW,CACT,OAAO,KAAK,OACb,CAMD,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAI,CAC3C,OAAI,KAAK,QACA,sBAAsB,KAAK,UAAU,KAAK,MAAM,CAAC,KAEjD,+BAA+B,KAAK,aAAa,IAE3D,CAMD,UAAW,CACT,OAAK,KAAK,QAEH25M,GAAiB,KAAK,OAAQ,KAAK,MAAM,EAFtB,GAG3B,CAMD,SAAU,CACR,OAAO,KAAK,UACb,CAOD,KAAK3rM,EAAU,CACb,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAC5CtkC,EAAS,GAEX,UAAWuT,KAAKu8N,IACV1qM,GAAeo7E,EAAI,OAAQjtG,CAAC,GAAK6xB,GAAe,KAAK,OAAQ7xB,CAAC,KAChEvT,EAAOuT,CAAC,EAAIitG,EAAI,IAAIjtG,CAAC,EAAI,KAAK,IAAIA,CAAC,GAIvC,OAAOzM,GAAM,KAAM,CAAE,OAAQ9G,CAAM,EAAI,EAAI,CAC5C,CAOD,MAAMskC,EAAU,CACd,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAC9C,OAAO,KAAK,KAAKk8E,EAAI,OAAQ,EAC9B,CASD,SAAShiG,EAAI,CACX,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMxe,EAAS,GACf,UAAWuT,KAAK,OAAO,KAAK,KAAK,MAAM,EACrCvT,EAAOuT,CAAC,EAAI2zN,GAAS1oN,EAAG,KAAK,OAAOjL,CAAC,EAAGA,CAAC,CAAC,EAE5C,OAAOzM,GAAM,KAAM,CAAE,OAAQ9G,CAAM,EAAI,EAAI,CAC5C,CAUD,IAAIusB,EAAM,CACR,OAAO,KAAKixF,GAAS,cAAcjxF,CAAI,CAAC,CACzC,CASD,IAAI7sB,EAAQ,CACV,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,MAAMmxO,EAAQ,CAAE,GAAG,KAAK,OAAQ,GAAGzJ,GAAgB1nO,EAAQ89G,GAAS,aAAa,GACjF,OAAO12G,GAAM,KAAM,CAAE,OAAQ+pO,CAAO,EACrC,CAOD,YAAY,CAAE,OAAAxoI,EAAQ,gBAAAk2H,EAAiB,mBAAAuS,EAAoB,OAAA73E,CAAQ,EAAG,GAAI,CAExE,MAAM3iI,EAAO,CAAE,IADH,KAAK,IAAI,MAAM,CAAE,OAAA+xE,EAAQ,gBAAAk2H,CAAe,CAAE,EAClC,OAAAtlE,EAAQ,mBAAA63E,CAAkB,EAC9C,OAAOhqO,GAAM,KAAMwvB,CAAI,CACxB,CAUD,GAAG/J,EAAM,CACP,OAAO,KAAK,QAAU,KAAK,QAAQA,CAAI,EAAE,IAAIA,CAAI,EAAI,GACtD,CAiBD,WAAY,CACV,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAM2jN,EAAO,KAAK,WAClB,OAAAE,GAAgB,KAAK,OAAQF,CAAI,EAC1BppO,GAAM,KAAM,CAAE,OAAQopO,CAAI,EAAI,EAAI,CAC1C,CAOD,SAAU,CACR,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMA,EAAOK,IAAa,KAAK,UAAW,EAAC,WAAY,EAAC,SAAQ,CAAE,EAClE,OAAOzpO,GAAM,KAAM,CAAE,OAAQopO,CAAI,EAAI,EAAI,CAC1C,CAOD,WAAWxjI,EAAO,CAChB,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,GAAIA,EAAM,SAAW,EACnB,OAAO,KAGTA,EAAQA,EAAM,IAAKznE,GAAMu4E,GAAS,cAAcv4E,CAAC,CAAC,EAElD,MAAM8rM,EAAQ,CAAE,EACdC,EAAc,CAAE,EAChBd,EAAO,KAAK,WACd,IAAIe,EAEJ,UAAW19N,KAAKu8N,GACd,GAAIpjI,EAAM,QAAQn5F,CAAC,GAAK,EAAG,CACzB09N,EAAW19N,EAEX,IAAI44C,EAAM,EAGV,UAAW1D,KAAMuoL,EACf7kL,GAAO,KAAK,OAAO1D,CAAE,EAAEl1C,CAAC,EAAIy9N,EAAYvoL,CAAE,EAC1CuoL,EAAYvoL,CAAE,EAAI,EAIhBooB,GAASq/J,EAAK38N,CAAC,CAAC,IAClB44C,GAAO+jL,EAAK38N,CAAC,GAKf,MAAMrT,EAAI,KAAK,MAAMisD,CAAG,EACxB4kL,EAAMx9N,CAAC,EAAIrT,EACX8wO,EAAYz9N,CAAC,GAAK44C,EAAM,IAAOjsD,EAAI,KAAQ,GAG5C,MAAU2wE,GAASq/J,EAAK38N,CAAC,CAAC,IACzBy9N,EAAYz9N,CAAC,EAAI28N,EAAK38N,CAAC,GAM3B,UAAWvF,KAAOgjO,EACZA,EAAYhjO,CAAG,IAAM,IACvB+iO,EAAME,CAAQ,GACZjjO,IAAQijO,EAAWD,EAAYhjO,CAAG,EAAIgjO,EAAYhjO,CAAG,EAAI,KAAK,OAAOijO,CAAQ,EAAEjjO,CAAG,GAIxF,OAAAoiO,GAAgB,KAAK,OAAQW,CAAK,EAC3BjqO,GAAM,KAAM,CAAE,OAAQiqO,CAAK,EAAI,EAAI,CAC3C,CAOD,YAAa,CACX,OAAK,KAAK,QACH,KAAK,QACV,QACA,SACA,QACA,OACA,QACA,UACA,UACA,cACN,EAV8B,IAW3B,CAOD,QAAS,CACP,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMG,EAAU,GAChB,UAAW39N,KAAK,OAAO,KAAK,KAAK,MAAM,EACrC29N,EAAQ39N,CAAC,EAAI,KAAK,OAAOA,CAAC,IAAM,EAAI,EAAI,CAAC,KAAK,OAAOA,CAAC,EAExD,OAAOzM,GAAM,KAAM,CAAE,OAAQoqO,CAAO,EAAI,EAAI,CAC7C,CAMD,IAAI,OAAQ,CACV,OAAO,KAAK,QAAU,KAAK,OAAO,OAAS,EAAI,GAChD,CAMD,IAAI,UAAW,CACb,OAAO,KAAK,QAAU,KAAK,OAAO,UAAY,EAAI,GACnD,CAMD,IAAI,QAAS,CACX,OAAO,KAAK,QAAU,KAAK,OAAO,QAAU,EAAI,GACjD,CAMD,IAAI,OAAQ,CACV,OAAO,KAAK,QAAU,KAAK,OAAO,OAAS,EAAI,GAChD,CAMD,IAAI,MAAO,CACT,OAAO,KAAK,QAAU,KAAK,OAAO,MAAQ,EAAI,GAC/C,CAMD,IAAI,OAAQ,CACV,OAAO,KAAK,QAAU,KAAK,OAAO,OAAS,EAAI,GAChD,CAMD,IAAI,SAAU,CACZ,OAAO,KAAK,QAAU,KAAK,OAAO,SAAW,EAAI,GAClD,CAMD,IAAI,SAAU,CACZ,OAAO,KAAK,QAAU,KAAK,OAAO,SAAW,EAAI,GAClD,CAMD,IAAI,cAAe,CACjB,OAAO,KAAK,QAAU,KAAK,OAAO,cAAgB,EAAI,GACvD,CAOD,IAAI,SAAU,CACZ,OAAO,KAAK,UAAY,IACzB,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAU,KAAK,QAAQ,OAAS,IAC7C,CAMD,IAAI,oBAAqB,CACvB,OAAO,KAAK,QAAU,KAAK,QAAQ,YAAc,IAClD,CAQD,OAAOr0H,EAAO,CAKZ,GAJI,CAAC,KAAK,SAAW,CAACA,EAAM,SAIxB,CAAC,KAAK,IAAI,OAAOA,EAAM,GAAG,EAC5B,MAAO,GAGT,SAASy5B,EAAG66F,EAAIC,EAAI,CAElB,OAAID,IAAO,QAAaA,IAAO,EAAUC,IAAO,QAAaA,IAAO,EAC7DD,IAAOC,CACf,CAED,UAAWnsM,KAAK6qM,GACd,GAAI,CAACx5F,EAAG,KAAK,OAAOrxG,CAAC,EAAG43E,EAAM,OAAO53E,CAAC,CAAC,EACrC,MAAO,GAGX,MAAO,EACR,CACH,CCr9BA,MAAMuqM,GAAU,mBAGhB,SAAS6B,IAAiBzhO,EAAOwlB,EAAK,CACpC,MAAI,CAACxlB,GAAS,CAACA,EAAM,QACZ0hO,GAAS,QAAQ,0BAA0B,EACzC,CAACl8M,GAAO,CAACA,EAAI,QACfk8M,GAAS,QAAQ,wBAAwB,EACvCl8M,EAAMxlB,EACR0hO,GAAS,QACd,mBACA,qEAAqE1hO,EAAM,MAAK,CAAE,YAAYwlB,EAAI,MAAK,CAAE,EAC/G,EAEW,IAEX,CAce,MAAMk8M,EAAS,CAI5B,YAAY3+J,EAAQ,CAIlB,KAAK,EAAIA,EAAO,MAIhB,KAAK,EAAIA,EAAO,IAIhB,KAAK,QAAUA,EAAO,SAAW,KAIjC,KAAK,gBAAkB,EACxB,CAQD,OAAO,QAAQhtE,EAAQs9N,EAAc,KAAM,CACzC,GAAI,CAACt9N,EACH,MAAM,IAAIm0N,GAAqB,kDAAkD,EAGnF,MAAM1tD,EAAUzmK,aAAkBq9N,GAAUr9N,EAAS,IAAIq9N,GAAQr9N,EAAQs9N,CAAW,EAEpF,GAAIzC,GAAS,eACX,MAAM,IAAI9G,IAAqBttD,CAAO,EAEtC,OAAO,IAAIklE,GAAS,CAAE,QAAAllE,CAAO,CAAE,CAElC,CAQD,OAAO,cAAcx8J,EAAOwlB,EAAK,CAC/B,MAAMm8M,EAAaC,GAAiB5hO,CAAK,EACvC6hO,EAAWD,GAAiBp8M,CAAG,EAE3Bs8M,EAAgBL,IAAiBE,EAAYE,CAAQ,EAE3D,OAAIC,GACK,IAAIJ,GAAS,CAClB,MAAOC,EACP,IAAKE,CACb,CAAO,CAIJ,CAQD,OAAO,MAAM7hO,EAAO00B,EAAU,CAC5B,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAC5Cq6L,EAAK6S,GAAiB5hO,CAAK,EAC7B,OAAO0hO,GAAS,cAAc3S,EAAIA,EAAG,KAAKn+G,CAAG,CAAC,CAC/C,CAQD,OAAO,OAAOprF,EAAKkP,EAAU,CAC3B,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAC5Cq6L,EAAK6S,GAAiBp8M,CAAG,EAC3B,OAAOk8M,GAAS,cAAc3S,EAAG,MAAMn+G,CAAG,EAAGm+G,CAAE,CAChD,CAUD,OAAO,QAAQx8M,EAAMmU,EAAM,CACzB,KAAM,CAAChhB,EAAG9F,CAAC,GAAK2S,GAAQ,IAAI,MAAM,IAAK,CAAC,EACxC,GAAI7M,GAAK9F,EAAG,CACV,IAAII,EAAO+hO,EACX,GAAI,CACF/hO,EAAQgvN,GAAS,QAAQtpN,EAAGghB,CAAI,EAChCq7M,EAAe/hO,EAAM,OACtB,MAAW,CACV+hO,EAAe,EAChB,CAED,IAAIv8M,EAAKw8M,EACT,GAAI,CACFx8M,EAAMwpM,GAAS,QAAQpvN,EAAG8mB,CAAI,EAC9Bs7M,EAAax8M,EAAI,OAClB,MAAW,CACVw8M,EAAa,EACd,CAED,GAAID,GAAgBC,EAClB,OAAON,GAAS,cAAc1hO,EAAOwlB,CAAG,EAG1C,GAAIu8M,EAAc,CAChB,MAAMnxH,EAAMhD,GAAS,QAAQhuG,EAAG8mB,CAAI,EACpC,GAAIkqF,EAAI,QACN,OAAO8wH,GAAS,MAAM1hO,EAAO4wG,CAAG,CAEnC,SAAUoxH,EAAY,CACrB,MAAMpxH,EAAMhD,GAAS,QAAQloG,EAAGghB,CAAI,EACpC,GAAIkqF,EAAI,QACN,OAAO8wH,GAAS,OAAOl8M,EAAKorF,CAAG,CAElC,CACF,CACD,OAAO8wH,GAAS,QAAQ,aAAc,cAAcnvN,CAAI,+BAA+B,CACxF,CAOD,OAAO,WAAW6iB,EAAG,CACnB,OAAQA,GAAKA,EAAE,iBAAoB,EACpC,CAMD,IAAI,OAAQ,CACV,OAAO,KAAK,QAAU,KAAK,EAAI,IAChC,CAMD,IAAI,KAAM,CACR,OAAO,KAAK,QAAU,KAAK,EAAI,IAChC,CAMD,IAAI,SAAU,CACZ,OAAO,KAAK,gBAAkB,IAC/B,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAU,KAAK,QAAQ,OAAS,IAC7C,CAMD,IAAI,oBAAqB,CACvB,OAAO,KAAK,QAAU,KAAK,QAAQ,YAAc,IAClD,CAOD,OAAOzY,EAAO,eAAgB,CAC5B,OAAO,KAAK,QAAU,KAAK,WAAeA,CAAK,EAAE,IAAIA,CAAI,EAAI,GAC9D,CAWD,MAAMA,EAAO,eAAgB+J,EAAM,CACjC,GAAI,CAAC,KAAK,QAAS,MAAO,KAC1B,MAAM1mB,EAAQ,KAAK,MAAM,QAAQ2c,EAAM+J,CAAI,EAC3C,IAAIlB,EACJ,OAAIkB,GAAA,MAAAA,EAAM,eACRlB,EAAM,KAAK,IAAI,YAAY,CAAE,OAAQxlB,EAAM,MAAM,CAAE,EAEnDwlB,EAAM,KAAK,IAEbA,EAAMA,EAAI,QAAQ7I,EAAM+J,CAAI,EACrB,KAAK,MAAMlB,EAAI,KAAKxlB,EAAO2c,CAAI,EAAE,IAAIA,CAAI,CAAC,GAAK6I,EAAI,QAAS,IAAK,KAAK,IAAI,QAAO,EACzF,CAOD,QAAQ7I,EAAM,CACZ,OAAO,KAAK,QAAU,KAAK,QAAS,GAAI,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,KAAK,EAAGA,CAAI,EAAI,EACjF,CAMD,SAAU,CACR,OAAO,KAAK,EAAE,QAAO,IAAO,KAAK,EAAE,SACpC,CAOD,QAAQslN,EAAU,CAChB,OAAK,KAAK,QACH,KAAK,EAAIA,EADU,EAE3B,CAOD,SAASA,EAAU,CACjB,OAAK,KAAK,QACH,KAAK,GAAKA,EADS,EAE3B,CAOD,SAASA,EAAU,CACjB,OAAK,KAAK,QACH,KAAK,GAAKA,GAAY,KAAK,EAAIA,EADZ,EAE3B,CASD,IAAI,CAAE,MAAAjiO,EAAO,IAAAwlB,CAAG,EAAK,GAAI,CACvB,OAAK,KAAK,QACHk8M,GAAS,cAAc1hO,GAAS,KAAK,EAAGwlB,GAAO,KAAK,CAAC,EADlC,IAE3B,CAOD,WAAW08M,EAAW,CACpB,GAAI,CAAC,KAAK,QAAS,MAAO,GAC1B,MAAMC,EAASD,EACV,IAAIN,EAAgB,EACpB,OAAQ9sM,GAAM,KAAK,SAASA,CAAC,CAAC,EAC9B,KAAK,CAAC,EAAGhpB,IAAM,EAAE,WAAaA,EAAE,UAAU,EAC7CpC,EAAU,GACZ,GAAI,CAAE,EAAAhE,CAAC,EAAK,KACV,EAAI,EAEN,KAAOA,EAAI,KAAK,GAAG,CACjB,MAAM08N,EAAQD,EAAO,CAAC,GAAK,KAAK,EAC9B97N,EAAO,CAAC+7N,EAAQ,CAAC,KAAK,EAAI,KAAK,EAAIA,EACrC14N,EAAQ,KAAKg4N,GAAS,cAAch8N,EAAGW,CAAI,CAAC,EAC5CX,EAAIW,EACJ,GAAK,CACN,CAED,OAAOqD,CACR,CAQD,QAAQgrB,EAAU,CAChB,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAE9C,GAAI,CAAC,KAAK,SAAW,CAACk8E,EAAI,SAAWA,EAAI,GAAG,cAAc,IAAM,EAC9D,MAAO,GAGT,GAAI,CAAE,EAAAlrG,CAAC,EAAK,KACVyM,EAAM,EACN9L,EAEF,MAAMqD,EAAU,GAChB,KAAOhE,EAAI,KAAK,GAAG,CACjB,MAAM08N,EAAQ,KAAK,MAAM,KAAKxxH,EAAI,SAAUp7G,GAAMA,EAAI2c,CAAG,CAAC,EAC1D9L,EAAO,CAAC+7N,EAAQ,CAAC,KAAK,EAAI,KAAK,EAAIA,EACnC14N,EAAQ,KAAKg4N,GAAS,cAAch8N,EAAGW,CAAI,CAAC,EAC5CX,EAAIW,EACJ8L,GAAO,CACR,CAED,OAAOzI,CACR,CAOD,cAAc24N,EAAe,CAC3B,OAAK,KAAK,QACH,KAAK,QAAQ,KAAK,OAAM,EAAKA,CAAa,EAAE,MAAM,EAAGA,CAAa,EAD/C,EAE3B,CAOD,SAASp1H,EAAO,CACd,OAAO,KAAK,EAAIA,EAAM,GAAK,KAAK,EAAIA,EAAM,CAC3C,CAOD,WAAWA,EAAO,CAChB,OAAK,KAAK,QACH,CAAC,KAAK,GAAM,CAACA,EAAM,EADA,EAE3B,CAOD,SAASA,EAAO,CACd,OAAK,KAAK,QACH,CAACA,EAAM,GAAM,CAAC,KAAK,EADA,EAE3B,CAOD,QAAQA,EAAO,CACb,OAAK,KAAK,QACH,KAAK,GAAKA,EAAM,GAAK,KAAK,GAAKA,EAAM,EADlB,EAE3B,CAOD,OAAOA,EAAO,CACZ,MAAI,CAAC,KAAK,SAAW,CAACA,EAAM,QACnB,GAGF,KAAK,EAAE,OAAOA,EAAM,CAAC,GAAK,KAAK,EAAE,OAAOA,EAAM,CAAC,CACvD,CASD,aAAaA,EAAO,CAClB,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMvnG,EAAI,KAAK,EAAIunG,EAAM,EAAI,KAAK,EAAIA,EAAM,EAC1CrtG,EAAI,KAAK,EAAIqtG,EAAM,EAAI,KAAK,EAAIA,EAAM,EAExC,OAAIvnG,GAAK9F,EACA,KAEA8hO,GAAS,cAAch8N,EAAG9F,CAAC,CAErC,CAQD,MAAMqtG,EAAO,CACX,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMvnG,EAAI,KAAK,EAAIunG,EAAM,EAAI,KAAK,EAAIA,EAAM,EAC1CrtG,EAAI,KAAK,EAAIqtG,EAAM,EAAI,KAAK,EAAIA,EAAM,EACxC,OAAOy0H,GAAS,cAAch8N,EAAG9F,CAAC,CACnC,CAQD,OAAO,MAAM0iO,EAAW,CACtB,KAAM,CAACjxK,EAAOrtC,CAAK,EAAIs+M,EACpB,KAAK,CAACz2N,EAAGC,IAAMD,EAAE,EAAIC,EAAE,CAAC,EACxB,OACC,CAAC,CAACy2N,EAAOp1M,CAAO,EAAG1pB,IACZ0pB,EAEMA,EAAQ,SAAS1pB,CAAI,GAAK0pB,EAAQ,WAAW1pB,CAAI,EACnD,CAAC8+N,EAAOp1M,EAAQ,MAAM1pB,CAAI,CAAC,EAE3B,CAAC8+N,EAAM,OAAO,CAACp1M,CAAO,CAAC,EAAG1pB,CAAI,EAJ9B,CAAC8+N,EAAO9+N,CAAI,EAOvB,CAAC,GAAI,IAAI,CACjB,EACI,OAAIugB,GACFqtC,EAAM,KAAKrtC,CAAK,EAEXqtC,CACR,CAOD,OAAO,IAAIixK,EAAW,CACpB,IAAItiO,EAAQ,KACVwiO,EAAe,EACjB,MAAM94N,EAAU,CAAE,EAChB+4N,EAAOH,EAAU,IAAKhyO,GAAM,CAC1B,CAAE,KAAMA,EAAE,EAAG,KAAM,GAAK,EACxB,CAAE,KAAMA,EAAE,EAAG,KAAM,GAAK,CAChC,CAAO,EACDoyO,EAAY,MAAM,UAAU,OAAO,GAAGD,CAAI,EAC1Cn7N,EAAMo7N,EAAU,KAAK,CAAC72N,EAAGC,IAAMD,EAAE,KAAOC,EAAE,IAAI,EAEhD,UAAWxb,KAAKgX,EACdk7N,GAAgBlyO,EAAE,OAAS,IAAM,EAAI,GAEjCkyO,IAAiB,EACnBxiO,EAAQ1P,EAAE,MAEN0P,GAAS,CAACA,GAAU,CAAC1P,EAAE,MACzBoZ,EAAQ,KAAKg4N,GAAS,cAAc1hO,EAAO1P,EAAE,IAAI,CAAC,EAGpD0P,EAAQ,MAIZ,OAAO0hO,GAAS,MAAMh4N,CAAO,CAC9B,CAOD,cAAc44N,EAAW,CACvB,OAAOZ,GAAS,IAAI,CAAC,IAAI,EAAE,OAAOY,CAAS,CAAC,EACzC,IAAKhyO,GAAM,KAAK,aAAaA,CAAC,CAAC,EAC/B,OAAQA,GAAMA,GAAK,CAACA,EAAE,QAAO,CAAE,CACnC,CAMD,UAAW,CACT,OAAK,KAAK,QACH,IAAI,KAAK,EAAE,MAAO,OAAM,KAAK,EAAE,MAAO,KADnBsvO,EAE3B,CAMD,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAI,CAC3C,OAAI,KAAK,QACA,qBAAqB,KAAK,EAAE,MAAO,WAAU,KAAK,EAAE,MAAO,MAE3D,+BAA+B,KAAK,aAAa,IAE3D,CAoBD,eAAehF,EAAaxB,GAAoB1yM,EAAO,GAAI,CACzD,OAAO,KAAK,QACR8zM,GAAU,OAAO,KAAK,EAAE,IAAI,MAAM9zM,CAAI,EAAGk0M,CAAU,EAAE,eAAe,IAAI,EACxEgF,EACL,CAQD,MAAMl5M,EAAM,CACV,OAAK,KAAK,QACH,GAAG,KAAK,EAAE,MAAMA,CAAI,CAAC,IAAI,KAAK,EAAE,MAAMA,CAAI,CAAC,GADxBk5M,EAE3B,CAQD,WAAY,CACV,OAAK,KAAK,QACH,GAAG,KAAK,EAAE,UAAW,KAAI,KAAK,EAAE,UAAW,IADxBA,EAE3B,CASD,UAAUl5M,EAAM,CACd,OAAK,KAAK,QACH,GAAG,KAAK,EAAE,UAAUA,CAAI,CAAC,IAAI,KAAK,EAAE,UAAUA,CAAI,CAAC,GADhCk5M,EAE3B,CAaD,SAASx2H,EAAY,CAAE,UAAAwF,EAAY,KAAK,EAAK,GAAI,CAC/C,OAAK,KAAK,QACH,GAAG,KAAK,EAAE,SAASxF,CAAU,CAAC,GAAGwF,CAAS,GAAG,KAAK,EAAE,SAASxF,CAAU,CAAC,GADrDw2H,EAE3B,CAcD,WAAWjjN,EAAM+J,EAAM,CACrB,OAAK,KAAK,QAGH,KAAK,EAAE,KAAK,KAAK,EAAG/J,EAAM+J,CAAI,EAF5BknF,GAAS,QAAQ,KAAK,aAAa,CAG7C,CASD,aAAa+0H,EAAO,CAClB,OAAOjB,GAAS,cAAciB,EAAM,KAAK,CAAC,EAAGA,EAAM,KAAK,CAAC,CAAC,CAC3D,CACH,CCroBe,MAAMC,EAAK,CAMxB,OAAO,OAAO3vH,EAAO29G,GAAS,YAAa,CACzC,MAAMrnN,EAAQylN,GAAS,IAAG,EAAG,QAAQ/7G,CAAI,EAAE,IAAI,CAAE,MAAO,EAAI,GAE5D,MAAO,CAACA,EAAK,aAAe1pG,EAAM,SAAWA,EAAM,IAAI,CAAE,MAAO,CAAG,GAAE,MACtE,CAOD,OAAO,gBAAgB0pG,EAAM,CAC3B,OAAO+5G,GAAS,YAAY/5G,CAAI,CACjC,CAgBD,OAAO,cAAc7+G,EAAO,CAC1B,OAAO+9N,GAAc/9N,EAAOw8N,GAAS,WAAW,CACjD,CASD,OAAO,eAAe,CAAE,OAAAn4H,EAAS,KAAM,OAAAoqI,EAAS,IAAM,EAAG,GAAI,CAC3D,OAAQA,GAAUzoI,GAAO,OAAO3B,CAAM,GAAG,gBAC1C,CAUD,OAAO,0BAA0B,CAAE,OAAAA,EAAS,KAAM,OAAAoqI,EAAS,IAAM,EAAG,GAAI,CACtE,OAAQA,GAAUzoI,GAAO,OAAO3B,CAAM,GAAG,uBAC1C,CASD,OAAO,mBAAmB,CAAE,OAAAA,EAAS,KAAM,OAAAoqI,EAAS,IAAM,EAAG,GAAI,CAE/D,OAAQA,GAAUzoI,GAAO,OAAO3B,CAAM,GAAG,eAAc,EAAG,OAC3D,CAmBD,OAAO,OACL91F,EAAS,OACT,CAAE,OAAA81F,EAAS,KAAM,gBAAAk2H,EAAkB,KAAM,OAAAkU,EAAS,KAAM,eAAAhU,EAAiB,SAAS,EAAK,CAAE,EACzF,CACA,OAAQgU,GAAUzoI,GAAO,OAAO3B,EAAQk2H,EAAiBE,CAAc,GAAG,OAAOlsN,CAAM,CACxF,CAeD,OAAO,aACLA,EAAS,OACT,CAAE,OAAA81F,EAAS,KAAM,gBAAAk2H,EAAkB,KAAM,OAAAkU,EAAS,KAAM,eAAAhU,EAAiB,SAAS,EAAK,CAAE,EACzF,CACA,OAAQgU,GAAUzoI,GAAO,OAAO3B,EAAQk2H,EAAiBE,CAAc,GAAG,OAAOlsN,EAAQ,EAAI,CAC9F,CAgBD,OAAO,SAASA,EAAS,OAAQ,CAAE,OAAA81F,EAAS,KAAM,gBAAAk2H,EAAkB,KAAM,OAAAkU,EAAS,IAAI,EAAK,GAAI,CAC9F,OAAQA,GAAUzoI,GAAO,OAAO3B,EAAQk2H,EAAiB,IAAI,GAAG,SAAShsN,CAAM,CAChF,CAcD,OAAO,eACLA,EAAS,OACT,CAAE,OAAA81F,EAAS,KAAM,gBAAAk2H,EAAkB,KAAM,OAAAkU,EAAS,IAAI,EAAK,CAAE,EAC7D,CACA,OAAQA,GAAUzoI,GAAO,OAAO3B,EAAQk2H,EAAiB,IAAI,GAAG,SAAShsN,EAAQ,EAAI,CACtF,CAUD,OAAO,UAAU,CAAE,OAAA81F,EAAS,IAAI,EAAK,GAAI,CACvC,OAAO2B,GAAO,OAAO3B,CAAM,EAAE,UAAS,CACvC,CAYD,OAAO,KAAK91F,EAAS,QAAS,CAAE,OAAA81F,EAAS,IAAM,EAAG,GAAI,CACpD,OAAO2B,GAAO,OAAO3B,EAAQ,KAAM,SAAS,EAAE,KAAK91F,CAAM,CAC1D,CAWD,OAAO,UAAW,CAChB,MAAO,CAAE,SAAU2tN,GAAW,EAAI,WAAYwB,GAAmB,EAClE,CACH,CC1MA,SAASgR,GAAQC,EAASC,EAAO,CAC/B,MAAMC,EAAelU,GAAOA,EAAG,MAAM,EAAG,CAAE,cAAe,EAAI,CAAE,EAAE,QAAQ,KAAK,EAAE,QAAS,EACvFlsH,EAAKogI,EAAYD,CAAK,EAAIC,EAAYF,CAAO,EAC/C,OAAO,KAAK,MAAMn1H,GAAS,WAAW/K,CAAE,EAAE,GAAG,MAAM,CAAC,CACtD,CAEA,SAASqgI,IAAe/zJ,EAAQ6zJ,EAAOlmI,EAAO,CAC5C,MAAMqmI,EAAU,CACd,CAAC,QAAS,CAACt3N,EAAGC,IAAMA,EAAE,KAAOD,EAAE,IAAI,EACnC,CAAC,WAAY,CAACA,EAAGC,IAAMA,EAAE,QAAUD,EAAE,SAAWC,EAAE,KAAOD,EAAE,MAAQ,CAAC,EACpE,CAAC,SAAU,CAACA,EAAGC,IAAMA,EAAE,MAAQD,EAAE,OAASC,EAAE,KAAOD,EAAE,MAAQ,EAAE,EAC/D,CACE,QACA,CAACA,EAAGC,IAAM,CACR,MAAMmiG,EAAO60H,GAAQj3N,EAAGC,CAAC,EACzB,OAAQmiG,EAAQA,EAAO,GAAM,CAC9B,CACF,EACD,CAAC,OAAQ60H,EAAO,CACpB,EAEQp5N,EAAU,GACVq5N,EAAU5zJ,EAChB,IAAIi0J,EAAaC,EAUjB,SAAW,CAAC1mN,EAAM2mN,CAAM,IAAKH,EACvBrmI,EAAM,QAAQngF,CAAI,GAAK,IACzBymN,EAAczmN,EAEdjT,EAAQiT,CAAI,EAAI2mN,EAAOn0J,EAAQ6zJ,CAAK,EACpCK,EAAYN,EAAQ,KAAKr5N,CAAO,EAE5B25N,EAAYL,GAEdt5N,EAAQiT,CAAI,IACZwyD,EAAS4zJ,EAAQ,KAAKr5N,CAAO,EAKzBylE,EAAS6zJ,IAEXK,EAAYl0J,EAEZzlE,EAAQiT,CAAI,IACZwyD,EAAS4zJ,EAAQ,KAAKr5N,CAAO,IAG/BylE,EAASk0J,GAKf,MAAO,CAACl0J,EAAQzlE,EAAS25N,EAAWD,CAAW,CACjD,CAEe,SAAQh0N,IAAE2zN,EAASC,EAAOlmI,EAAOp2E,EAAM,CACpD,GAAI,CAACyoD,EAAQzlE,EAAS25N,EAAWD,CAAW,EAAIF,IAAeH,EAASC,EAAOlmI,CAAK,EAEpF,MAAMymI,EAAkBP,EAAQ7zJ,EAE1Bq0J,EAAkB1mI,EAAM,OAC3B,GAAM,CAAC,QAAS,UAAW,UAAW,cAAc,EAAE,QAAQ,CAAC,GAAK,CACzE,EAEM0mI,EAAgB,SAAW,IACzBH,EAAYL,IACdK,EAAYl0J,EAAO,KAAK,CAAE,CAACi0J,CAAW,EAAG,CAAC,CAAE,GAG1CC,IAAcl0J,IAChBzlE,EAAQ05N,CAAW,GAAK15N,EAAQ05N,CAAW,GAAK,GAAKG,GAAmBF,EAAYl0J,KAIxF,MAAMz6C,EAAWk5E,GAAS,WAAWlkG,EAASgd,CAAI,EAElD,OAAI88M,EAAgB,OAAS,EACpB51H,GAAS,WAAW21H,EAAiB78M,CAAI,EAC7C,QAAQ,GAAG88M,CAAe,EAC1B,KAAK9uM,CAAQ,EAETA,CAEX,CCtFA,MAAM+uM,IAAc,oDAEpB,SAASC,GAAQhkI,EAAO/0B,EAAQr6E,GAAMA,EAAG,CACvC,MAAO,CAAE,MAAAovG,EAAO,MAAO,CAAC,CAACh6F,CAAC,IAAMilE,EAAK8nJ,IAAY/sN,CAAC,CAAC,EACrD,CAEA,MAAMi+N,IAAO,IACPC,GAAc,KAAKD,GAAI,IACvBE,GAAoB,IAAI,OAAOD,GAAa,GAAG,EAErD,SAASE,IAAap+N,EAAG,CAGvB,OAAOA,EAAE,QAAQ,MAAO,MAAM,EAAE,QAAQm+N,GAAmBD,EAAW,CACxE,CAEA,SAASG,GAAqBr+N,EAAG,CAC/B,OAAOA,EACJ,QAAQ,MAAO,EAAE,EACjB,QAAQm+N,GAAmB,GAAG,EAC9B,aACL,CAEA,SAASG,GAAMn0O,EAASo0O,EAAY,CAClC,OAAIp0O,IAAY,KACP,KAEA,CACL,MAAO,OAAOA,EAAQ,IAAIi0O,GAAY,EAAE,KAAK,GAAG,CAAC,EACjD,MAAO,CAAC,CAACp+N,CAAC,IACR7V,EAAQ,UAAWS,GAAMyzO,GAAqBr+N,CAAC,IAAMq+N,GAAqBzzO,CAAC,CAAC,EAAI2zO,CACxF,CAEA,CAEA,SAASxzM,GAAOivE,EAAOtxF,EAAQ,CAC7B,MAAO,CAAE,MAAAsxF,EAAO,MAAO,CAAC,CAAG,CAAAzqE,EAAG5wB,CAAC,IAAM2tN,GAAa/8L,EAAG5wB,CAAC,EAAG,OAAA+J,CAAM,CACjE,CAEA,SAASkD,GAAOouF,EAAO,CACrB,MAAO,CAAE,MAAAA,EAAO,MAAO,CAAC,CAACh6F,CAAC,IAAMA,EAClC,CAEA,SAASw+N,IAAYz3O,EAAO,CAC1B,OAAOA,EAAM,QAAQ,8BAA+B,MAAM,CAC5D,CAMA,SAAS03O,IAAanwO,EAAOm7N,EAAK,CAChC,MAAM5wM,EAAMq0M,GAAWzD,CAAG,EACxBiV,EAAMxR,GAAWzD,EAAK,KAAK,EAC3BkV,EAAQzR,GAAWzD,EAAK,KAAK,EAC7BmV,EAAO1R,GAAWzD,EAAK,KAAK,EAC5BoV,EAAM3R,GAAWzD,EAAK,KAAK,EAC3BqV,EAAW5R,GAAWzD,EAAK,OAAO,EAClCsV,EAAa7R,GAAWzD,EAAK,OAAO,EACpCuV,EAAW9R,GAAWzD,EAAK,OAAO,EAClCwV,EAAY/R,GAAWzD,EAAK,OAAO,EACnCyV,EAAYhS,GAAWzD,EAAK,OAAO,EACnC0V,EAAYjS,GAAWzD,EAAK,OAAO,EACnCqM,EAAWn2N,IAAO,CAAE,MAAO,OAAO6+N,IAAY7+N,EAAE,GAAG,CAAC,EAAG,MAAO,CAAC,CAACK,CAAC,IAAMA,EAAG,QAAS,KA4H/EiX,GA3HOtX,GAAM,CACf,GAAIrR,EAAM,QACR,OAAOwnO,EAAQn2N,CAAC,EAElB,OAAQA,EAAE,IAAG,CAEX,IAAK,IACH,OAAO2+N,GAAM7U,EAAI,KAAK,OAAO,EAAG,CAAC,EACnC,IAAK,KACH,OAAO6U,GAAM7U,EAAI,KAAK,MAAM,EAAG,CAAC,EAElC,IAAK,IACH,OAAOuU,GAAQgB,CAAQ,EACzB,IAAK,KACH,OAAOhB,GAAQkB,EAAW36H,EAAc,EAC1C,IAAK,OACH,OAAOy5H,GAAQY,CAAI,EACrB,IAAK,QACH,OAAOZ,GAAQmB,CAAS,EAC1B,IAAK,SACH,OAAOnB,GAAQa,CAAG,EAEpB,IAAK,IACH,OAAOb,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EACpB,IAAK,MACH,OAAOJ,GAAM7U,EAAI,OAAO,QAAS,EAAI,EAAG,CAAC,EAC3C,IAAK,OACH,OAAO6U,GAAM7U,EAAI,OAAO,OAAQ,EAAI,EAAG,CAAC,EAC1C,IAAK,IACH,OAAOuU,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EACpB,IAAK,MACH,OAAOJ,GAAM7U,EAAI,OAAO,QAAS,EAAK,EAAG,CAAC,EAC5C,IAAK,OACH,OAAO6U,GAAM7U,EAAI,OAAO,OAAQ,EAAK,EAAG,CAAC,EAE3C,IAAK,IACH,OAAOuU,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EAEpB,IAAK,IACH,OAAOV,GAAQe,CAAU,EAC3B,IAAK,MACH,OAAOf,GAAQW,CAAK,EAEtB,IAAK,KACH,OAAOX,GAAQU,CAAG,EACpB,IAAK,IACH,OAAOV,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EACpB,IAAK,IACH,OAAOV,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EACpB,IAAK,IACH,OAAOV,GAAQc,CAAQ,EACzB,IAAK,IACH,OAAOd,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EACpB,IAAK,IACH,OAAOV,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EACpB,IAAK,IACH,OAAOV,GAAQe,CAAU,EAC3B,IAAK,MACH,OAAOf,GAAQW,CAAK,EACtB,IAAK,IACH,OAAO/yN,GAAOqzN,CAAS,EACzB,IAAK,KACH,OAAOrzN,GAAOkzN,CAAQ,EACxB,IAAK,MACH,OAAOd,GAAQnlN,CAAG,EAEpB,IAAK,IACH,OAAOylN,GAAM7U,EAAI,UAAW,EAAE,CAAC,EAEjC,IAAK,OACH,OAAOuU,GAAQY,CAAI,EACrB,IAAK,KACH,OAAOZ,GAAQkB,EAAW36H,EAAc,EAE1C,IAAK,IACH,OAAOy5H,GAAQc,CAAQ,EACzB,IAAK,KACH,OAAOd,GAAQU,CAAG,EAEpB,IAAK,IACL,IAAK,IACH,OAAOV,GAAQnlN,CAAG,EACpB,IAAK,MACH,OAAOylN,GAAM7U,EAAI,SAAS,QAAS,EAAK,EAAG,CAAC,EAC9C,IAAK,OACH,OAAO6U,GAAM7U,EAAI,SAAS,OAAQ,EAAK,EAAG,CAAC,EAC7C,IAAK,MACH,OAAO6U,GAAM7U,EAAI,SAAS,QAAS,EAAI,EAAG,CAAC,EAC7C,IAAK,OACH,OAAO6U,GAAM7U,EAAI,SAAS,OAAQ,EAAI,EAAG,CAAC,EAE5C,IAAK,IACL,IAAK,KACH,OAAO1+L,GAAO,IAAI,OAAO,QAAQ+zM,EAAS,MAAM,SAASJ,EAAI,MAAM,KAAK,EAAG,CAAC,EAC9E,IAAK,MACH,OAAO3zM,GAAO,IAAI,OAAO,QAAQ+zM,EAAS,MAAM,KAAKJ,EAAI,MAAM,IAAI,EAAG,CAAC,EAGzE,IAAK,IACH,OAAO9yN,GAAO,oBAAoB,EAGpC,IAAK,IACH,OAAOA,GAAO,WAAW,EAC3B,QACE,OAAOkqN,EAAQn2N,CAAC,CACnB,CACP,GAEuBrR,CAAK,GAAK,CAC7B,cAAeyvO,GACnB,EAEE,OAAA9mN,EAAK,MAAQ3oB,EAEN2oB,CACT,CAEA,MAAMmoN,IAA0B,CAC9B,KAAM,CACJ,UAAW,KACX,QAAS,OACV,EACD,MAAO,CACL,QAAS,IACT,UAAW,KACX,MAAO,MACP,KAAM,MACP,EACD,IAAK,CACH,QAAS,IACT,UAAW,IACZ,EACD,QAAS,CACP,MAAO,MACP,KAAM,MACP,EACD,UAAW,IACX,UAAW,IACX,OAAQ,CACN,QAAS,IACT,UAAW,IACZ,EACD,OAAQ,CACN,QAAS,IACT,UAAW,IACZ,EACD,OAAQ,CACN,QAAS,IACT,UAAW,IACZ,EACD,OAAQ,CACN,QAAS,IACT,UAAW,IACZ,EACD,aAAc,CACZ,KAAM,QACN,MAAO,KACR,CACH,EAEA,SAASC,IAAa19G,EAAMuzG,EAAYoK,EAAc,CACpD,KAAM,CAAE,KAAAxuO,EAAM,MAAA/J,CAAO,EAAG46H,EAExB,GAAI7wH,IAAS,UAAW,CACtB,MAAMyuO,EAAU,QAAQ,KAAKx4O,CAAK,EAClC,MAAO,CACL,QAAS,CAACw4O,EACV,IAAKA,EAAU,IAAMx4O,CAC3B,CACG,CAED,MAAMI,EAAQ+tO,EAAWpkO,CAAI,EAK7B,IAAI0uO,EAAa1uO,EACbA,IAAS,SACPokO,EAAW,QAAU,KACvBsK,EAAatK,EAAW,OAAS,SAAW,SACnCA,EAAW,WAAa,KAC7BA,EAAW,YAAc,OAASA,EAAW,YAAc,MAC7DsK,EAAa,SAEbA,EAAa,SAKfA,EAAaF,EAAa,OAAS,SAAW,UAGlD,IAAIx8N,EAAMs8N,IAAwBI,CAAU,EAK5C,GAJI,OAAO18N,GAAQ,WACjBA,EAAMA,EAAI3b,CAAK,GAGb2b,EACF,MAAO,CACL,QAAS,GACT,IAAAA,CACN,CAIA,CAEA,SAAS28N,IAAWroI,EAAO,CAEzB,MAAO,CAAC,IADGA,EAAM,IAAKznE,GAAMA,EAAE,KAAK,EAAE,OAAO,CAACN,EAAG,IAAM,GAAGA,CAAC,IAAI,EAAE,MAAM,IAAK,EAAE,CAC/D,IAAK+nE,CAAK,CAC1B,CAEA,SAAS7sG,IAAMmE,EAAOsrG,EAAO7gF,EAAU,CACrC,MAAM9U,EAAU3V,EAAM,MAAMsrG,CAAK,EAEjC,GAAI31F,EAAS,CACX,MAAMs/C,EAAM,GACZ,IAAI+7K,EAAa,EACjB,UAAW90O,KAAKuuB,EACd,GAAI2W,GAAe3W,EAAUvuB,CAAC,EAAG,CAC/B,MAAM2kC,EAAIpW,EAASvuB,CAAC,EAClB8d,EAAS6mB,EAAE,OAASA,EAAE,OAAS,EAAI,EACjC,CAACA,EAAE,SAAWA,EAAE,QAClBo0B,EAAIp0B,EAAE,MAAM,IAAI,CAAC,CAAC,EAAIA,EAAE,MAAMlrB,EAAQ,MAAMq7N,EAAYA,EAAah3N,CAAM,CAAC,GAE9Eg3N,GAAch3N,CACf,CAEH,MAAO,CAACrE,EAASs/C,CAAG,CACxB,KACI,OAAO,CAACt/C,EAAS,EAAE,CAEvB,CAEA,SAASs7N,IAAoBt7N,EAAS,CACpC,MAAMu7N,EAAWtxO,GAAU,CACzB,OAAQA,EAAK,CACX,IAAK,IACH,MAAO,cACT,IAAK,IACH,MAAO,SACT,IAAK,IACH,MAAO,SACT,IAAK,IACL,IAAK,IACH,MAAO,OACT,IAAK,IACH,MAAO,MACT,IAAK,IACH,MAAO,UACT,IAAK,IACL,IAAK,IACH,MAAO,QACT,IAAK,IACH,MAAO,OACT,IAAK,IACL,IAAK,IACH,MAAO,UACT,IAAK,IACH,MAAO,aACT,IAAK,IACH,MAAO,WACT,IAAK,IACH,MAAO,UACT,QACE,OAAO,IACV,CACL,EAEE,IAAIi/G,EAAO,KACPsyH,EACJ,OAAK5kK,GAAY52D,EAAQ,CAAC,IACxBkpG,EAAO+5G,GAAS,OAAOjjN,EAAQ,CAAC,GAG7B42D,GAAY52D,EAAQ,CAAC,IACnBkpG,IACHA,EAAO,IAAI8+G,GAAgBhoN,EAAQ,CAAC,GAEtCw7N,EAAiBx7N,EAAQ,GAGtB42D,GAAY52D,EAAQ,CAAC,IACxBA,EAAQ,GAAKA,EAAQ,EAAI,GAAK,EAAI,GAG/B42D,GAAY52D,EAAQ,CAAC,IACpBA,EAAQ,EAAI,IAAMA,EAAQ,IAAM,EAClCA,EAAQ,GAAK,GACJA,EAAQ,IAAM,IAAMA,EAAQ,IAAM,IAC3CA,EAAQ,EAAI,IAIZA,EAAQ,IAAM,GAAKA,EAAQ,IAC7BA,EAAQ,EAAI,CAACA,EAAQ,GAGlB42D,GAAY52D,EAAQ,CAAC,IACxBA,EAAQ,EAAI0sN,GAAY1sN,EAAQ,CAAC,GAY5B,CATM,OAAO,KAAKA,CAAO,EAAE,OAAO,CAACorB,EAAGxxB,IAAM,CACjD,MAAMoxB,EAAIuwM,EAAQ3hO,CAAC,EACnB,OAAIoxB,IACFI,EAAEJ,CAAC,EAAIhrB,EAAQpG,CAAC,GAGXwxB,CACR,EAAE,CAAE,GAES89E,EAAMsyH,CAAc,CACpC,CAEA,IAAIC,GAAqB,KAEzB,SAASC,KAAmB,CAC1B,OAAKD,KACHA,GAAqBxW,GAAS,WAAW,aAAa,GAGjDwW,EACT,CAEA,SAASE,IAAsB1xO,EAAOykG,EAAQ,CAC5C,GAAIzkG,EAAM,QACR,OAAOA,EAGT,MAAM4mO,EAAaJ,GAAU,uBAAuBxmO,EAAM,GAAG,EACvD+e,EAAS4yN,GAAmB/K,EAAYniI,CAAM,EAEpD,OAAI1lF,GAAU,MAAQA,EAAO,SAAS,MAAS,EACtC/e,EAGF+e,CACT,CAEO,SAAS6yN,GAAkB7yN,EAAQ0lF,EAAQ,CAChD,OAAO,MAAM,UAAU,OAAO,GAAG1lF,EAAO,IAAK1N,GAAMqgO,IAAsBrgO,EAAGozF,CAAM,CAAC,CAAC,CACtF,CAMO,MAAMotI,EAAY,CACvB,YAAYptI,EAAQt1C,EAAQ,CAO1B,GANA,KAAK,OAASs1C,EACd,KAAK,OAASt1C,EACd,KAAK,OAASyiL,GAAkBpL,GAAU,YAAYr3K,CAAM,EAAGs1C,CAAM,EACrE,KAAK,MAAQ,KAAK,OAAO,IAAKpzF,GAAM8+N,IAAa9+N,EAAGozF,CAAM,CAAC,EAC3D,KAAK,kBAAoB,KAAK,MAAM,KAAMpzF,GAAMA,EAAE,aAAa,EAE3D,CAAC,KAAK,kBAAmB,CAC3B,KAAM,CAACygO,EAAajnN,CAAQ,EAAIsmN,IAAW,KAAK,KAAK,EACrD,KAAK,MAAQ,OAAOW,EAAa,GAAG,EACpC,KAAK,SAAWjnN,CACjB,CACF,CAED,kBAAkBzqB,EAAO,CACvB,GAAK,KAAK,QAEH,CACL,KAAM,CAAC2xO,EAAYh8N,CAAO,EAAI9Z,IAAMmE,EAAO,KAAK,MAAO,KAAK,QAAQ,EAClE,CAAChE,EAAQ6iH,EAAMsyH,CAAc,EAAIx7N,EAC7Bs7N,IAAoBt7N,CAAO,EAC3B,CAAC,KAAM,KAAM,MAAS,EAC5B,GAAIyrB,GAAezrB,EAAS,GAAG,GAAKyrB,GAAezrB,EAAS,GAAG,EAC7D,MAAM,IAAIigN,GACR,uDACV,EAEM,MAAO,CACL,MAAA51N,EACA,OAAQ,KAAK,OACb,MAAO,KAAK,MACZ,WAAA2xO,EACA,QAAAh8N,EACA,OAAA3Z,EACA,KAAA6iH,EACA,eAAAsyH,CACR,CACK,KArBC,OAAO,CAAE,MAAAnxO,EAAO,OAAQ,KAAK,OAAQ,cAAe,KAAK,cAsB5D,CAED,IAAI,SAAU,CACZ,MAAO,CAAC,KAAK,iBACd,CAED,IAAI,eAAgB,CAClB,OAAO,KAAK,kBAAoB,KAAK,kBAAkB,cAAgB,IACxE,CACH,CAEO,SAAS4xO,GAAkBvtI,EAAQrkG,EAAO+uD,EAAQ,CAEvD,OADe,IAAI0iL,GAAYptI,EAAQt1C,CAAM,EAC/B,kBAAkB/uD,CAAK,CACvC,CAEO,SAAS6xO,IAAgBxtI,EAAQrkG,EAAO+uD,EAAQ,CACrD,KAAM,CAAE,OAAA/yD,EAAQ,KAAA6iH,EAAM,eAAAsyH,EAAgB,cAAAW,GAAkBF,GAAkBvtI,EAAQrkG,EAAO+uD,CAAM,EAC/F,MAAO,CAAC/yD,EAAQ6iH,EAAMsyH,EAAgBW,CAAa,CACrD,CAEO,SAASP,GAAmB/K,EAAYniI,EAAQ,CACrD,GAAI,CAACmiI,EACH,OAAO,KAIT,MAAMvyL,EADYmyL,GAAU,OAAO/hI,EAAQmiI,CAAU,EAChC,YAAY6K,IAAkB,GAC7CngN,EAAQ+iB,EAAG,gBACX28L,EAAe38L,EAAG,kBACxB,OAAO/iB,EAAM,IAAKM,GAAMm/M,IAAan/M,EAAGg1M,EAAYoK,CAAY,CAAC,CACnE,CCncA,MAAMpF,GAAU,mBACVuG,GAAW,OAEjB,SAASC,GAAgBnzH,EAAM,CAC7B,OAAO,IAAImgH,GAAQ,mBAAoB,aAAangH,EAAK,IAAI,oBAAoB,CACnF,CAMA,SAASozH,GAAuBtX,EAAI,CAClC,OAAIA,EAAG,WAAa,OAClBA,EAAG,SAAWgF,GAAgBhF,EAAG,CAAC,GAE7BA,EAAG,QACZ,CAKA,SAASuX,GAA4BvX,EAAI,CACvC,OAAIA,EAAG,gBAAkB,OACvBA,EAAG,cAAgBgF,GACjBhF,EAAG,EACHA,EAAG,IAAI,sBAAuB,EAC9BA,EAAG,IAAI,eAAgB,CAC7B,GAESA,EAAG,aACZ,CAIA,SAAS73N,GAAMqvO,EAAM/U,EAAM,CACzB,MAAMrkM,EAAU,CACd,GAAIo5M,EAAK,GACT,KAAMA,EAAK,KACX,EAAGA,EAAK,EACR,EAAGA,EAAK,EACR,IAAKA,EAAK,IACV,QAASA,EAAK,OAClB,EACE,OAAO,IAAIvX,GAAS,CAAE,GAAG7hM,EAAS,GAAGqkM,EAAM,IAAKrkM,CAAO,CAAE,CAC3D,CAIA,SAASq5M,GAAUC,EAASrxM,EAAGmtJ,EAAI,CAEjC,IAAImkD,EAAWD,EAAUrxM,EAAI,GAAK,IAGlC,MAAMuxM,EAAKpkD,EAAG,OAAOmkD,CAAQ,EAG7B,GAAItxM,IAAMuxM,EACR,MAAO,CAACD,EAAUtxM,CAAC,EAIrBsxM,IAAaC,EAAKvxM,GAAK,GAAK,IAG5B,MAAMwxM,EAAKrkD,EAAG,OAAOmkD,CAAQ,EAC7B,OAAIC,IAAOC,EACF,CAACF,EAAUC,CAAE,EAIf,CAACF,EAAU,KAAK,IAAIE,EAAIC,CAAE,EAAI,GAAK,IAAM,KAAK,IAAID,EAAIC,CAAE,CAAC,CAClE,CAGA,SAASC,GAAQnb,EAAIj7L,EAAQ,CAC3Bi7L,GAAMj7L,EAAS,GAAK,IAEpB,MAAMqE,EAAI,IAAI,KAAK42L,CAAE,EAErB,MAAO,CACL,KAAM52L,EAAE,eAAgB,EACxB,MAAOA,EAAE,YAAW,EAAK,EACzB,IAAKA,EAAE,WAAY,EACnB,KAAMA,EAAE,YAAa,EACrB,OAAQA,EAAE,cAAe,EACzB,OAAQA,EAAE,cAAe,EACzB,YAAaA,EAAE,mBAAoB,CACvC,CACA,CAGA,SAASgyM,GAAQ9hO,EAAKyrB,EAAQwiF,EAAM,CAClC,OAAOuzH,GAAUrZ,GAAanoN,CAAG,EAAGyrB,EAAQwiF,CAAI,CAClD,CAGA,SAAS8zH,GAAWR,EAAM31H,EAAK,CAC7B,MAAMo2H,EAAOT,EAAK,EAChB9oI,EAAO8oI,EAAK,EAAE,KAAO,KAAK,MAAM31H,EAAI,KAAK,EACzC3P,EAAQslI,EAAK,EAAE,MAAQ,KAAK,MAAM31H,EAAI,MAAM,EAAI,KAAK,MAAMA,EAAI,QAAQ,EAAI,EAC3EjvG,EAAI,CACF,GAAG4kO,EAAK,EACR,KAAA9oI,EACA,MAAAwD,EACA,IACE,KAAK,IAAIslI,EAAK,EAAE,IAAKroI,GAAYT,EAAMwD,CAAK,CAAC,EAC7C,KAAK,MAAM2P,EAAI,IAAI,EACnB,KAAK,MAAMA,EAAI,KAAK,EAAI,CAC3B,EACDq2H,EAAcr5H,GAAS,WAAW,CAChC,MAAOgD,EAAI,MAAQ,KAAK,MAAMA,EAAI,KAAK,EACvC,SAAUA,EAAI,SAAW,KAAK,MAAMA,EAAI,QAAQ,EAChD,OAAQA,EAAI,OAAS,KAAK,MAAMA,EAAI,MAAM,EAC1C,MAAOA,EAAI,MAAQ,KAAK,MAAMA,EAAI,KAAK,EACvC,KAAMA,EAAI,KAAO,KAAK,MAAMA,EAAI,IAAI,EACpC,MAAOA,EAAI,MACX,QAASA,EAAI,QACb,QAASA,EAAI,QACb,aAAcA,EAAI,YACxB,CAAK,EAAE,GAAG,cAAc,EACpB61H,EAAUtZ,GAAaxrN,CAAC,EAE1B,GAAI,CAAC+pN,EAAIt2L,CAAC,EAAIoxM,GAAUC,EAASO,EAAMT,EAAK,IAAI,EAEhD,OAAIU,IAAgB,IAClBvb,GAAMub,EAEN7xM,EAAImxM,EAAK,KAAK,OAAO7a,CAAE,GAGlB,CAAE,GAAAA,EAAI,EAAAt2L,EACf,CAIA,SAAS8xM,GAAoBv3M,EAAQw3M,EAAYzgN,EAAMy8B,EAAQ5wC,EAAMgzN,EAAgB,CACnF,KAAM,CAAE,QAAA6B,EAAS,KAAAn0H,CAAM,EAAGvsF,EAC1B,GAAKiJ,GAAU,OAAO,KAAKA,CAAM,EAAE,SAAW,GAAMw3M,EAAY,CAC9D,MAAME,EAAqBF,GAAcl0H,EACvCszH,EAAOvX,GAAS,WAAWr/L,EAAQ,CACjC,GAAGjJ,EACH,KAAM2gN,EACN,eAAA9B,CACR,CAAO,EACH,OAAO6B,EAAUb,EAAOA,EAAK,QAAQtzH,CAAI,CAC7C,KACI,QAAO+7G,GAAS,QACd,IAAIoE,GAAQ,aAAc,cAAc7gN,CAAI,wBAAwB4wC,CAAM,EAAE,CAClF,CAEA,CAIA,SAASmkL,GAAavY,EAAI5rK,EAAQokL,EAAS,GAAM,CAC/C,OAAOxY,EAAG,QACNyL,GAAU,OAAOpgI,GAAO,OAAO,OAAO,EAAG,CACvC,OAAAmtI,EACA,YAAa,EACrB,CAAO,EAAE,yBAAyBxY,EAAI5rK,CAAM,EACtC,IACN,CAEA,SAASqkL,GAAUpyM,EAAGgqL,EAAU,CAC9B,MAAMqoB,EAAaryM,EAAE,EAAE,KAAO,MAAQA,EAAE,EAAE,KAAO,EACjD,IAAIzzB,EAAI,GACR,OAAI8lO,GAAcryM,EAAE,EAAE,MAAQ,IAAGzzB,GAAK,KACtCA,GAAKouN,GAAS36L,EAAE,EAAE,KAAMqyM,EAAa,EAAI,CAAC,EAEtCroB,GACFz9M,GAAK,IACLA,GAAKouN,GAAS36L,EAAE,EAAE,KAAK,EACvBzzB,GAAK,IACLA,GAAKouN,GAAS36L,EAAE,EAAE,GAAG,IAErBzzB,GAAKouN,GAAS36L,EAAE,EAAE,KAAK,EACvBzzB,GAAKouN,GAAS36L,EAAE,EAAE,GAAG,GAEhBzzB,CACT,CAEA,SAAS+lO,GACPtyM,EACAgqL,EACAuoB,EACAC,EACAC,EACAC,EACA,CACA,IAAInmO,EAAIouN,GAAS36L,EAAE,EAAE,IAAI,EACzB,OAAIgqL,GACFz9M,GAAK,IACLA,GAAKouN,GAAS36L,EAAE,EAAE,MAAM,GACpBA,EAAE,EAAE,cAAgB,GAAKA,EAAE,EAAE,SAAW,GAAK,CAACuyM,KAChDhmO,GAAK,MAGPA,GAAKouN,GAAS36L,EAAE,EAAE,MAAM,GAGtBA,EAAE,EAAE,cAAgB,GAAKA,EAAE,EAAE,SAAW,GAAK,CAACuyM,KAChDhmO,GAAKouN,GAAS36L,EAAE,EAAE,MAAM,GAEpBA,EAAE,EAAE,cAAgB,GAAK,CAACwyM,KAC5BjmO,GAAK,IACLA,GAAKouN,GAAS36L,EAAE,EAAE,YAAa,CAAC,IAIhCyyM,IACEzyM,EAAE,eAAiBA,EAAE,SAAW,GAAK,CAAC0yM,EACxCnmO,GAAK,IACIyzB,EAAE,EAAI,GACfzzB,GAAK,IACLA,GAAKouN,GAAS,KAAK,MAAM,CAAC36L,EAAE,EAAI,EAAE,CAAC,EACnCzzB,GAAK,IACLA,GAAKouN,GAAS,KAAK,MAAM,CAAC36L,EAAE,EAAI,EAAE,CAAC,IAEnCzzB,GAAK,IACLA,GAAKouN,GAAS,KAAK,MAAM36L,EAAE,EAAI,EAAE,CAAC,EAClCzzB,GAAK,IACLA,GAAKouN,GAAS,KAAK,MAAM36L,EAAE,EAAI,EAAE,CAAC,IAIlC0yM,IACFnmO,GAAK,IAAMyzB,EAAE,KAAK,SAAW,KAExBzzB,CACT,CAGA,MAAMomO,GAAoB,CACtB,MAAO,EACP,IAAK,EACL,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,YAAa,CACd,EACDC,IAAwB,CACtB,WAAY,EACZ,QAAS,EACT,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,YAAa,CACd,EACDC,IAA2B,CACzB,QAAS,EACT,KAAM,EACN,OAAQ,EACR,OAAQ,EACR,YAAa,CACjB,EAGM/H,GAAe,CAAC,OAAQ,QAAS,MAAO,OAAQ,SAAU,SAAU,aAAa,EACrFgI,IAAmB,CACjB,WACA,aACA,UACA,OACA,SACA,SACA,aACD,EACDC,IAAsB,CAAC,OAAQ,UAAW,OAAQ,SAAU,SAAU,aAAa,EAGrF,SAASC,IAAczrN,EAAM,CAC3B,MAAMynK,EAAa,CACjB,KAAM,OACN,MAAO,OACP,MAAO,QACP,OAAQ,QACR,IAAK,MACL,KAAM,MACN,KAAM,OACN,MAAO,OACP,OAAQ,SACR,QAAS,SACT,QAAS,UACT,SAAU,UACV,OAAQ,SACR,QAAS,SACT,YAAa,cACb,aAAc,cACd,QAAS,UACT,SAAU,UACV,WAAY,aACZ,YAAa,aACb,YAAa,aACb,SAAU,WACV,UAAW,WACX,QAAS,SACb,EAAIznK,EAAK,YAAW,CAAE,EAEpB,GAAI,CAACynK,EAAY,MAAM,IAAI6lC,GAAiBttM,CAAI,EAEhD,OAAOynK,CACT,CAEA,SAASikD,GAA4B1rN,EAAM,CACzC,OAAQA,EAAK,YAAa,GACxB,IAAK,eACL,IAAK,gBACH,MAAO,eACT,IAAK,kBACL,IAAK,mBACH,MAAO,kBACT,IAAK,gBACL,IAAK,iBACH,MAAO,gBACT,QACE,OAAOyrN,IAAczrN,CAAI,CAC5B,CACH,CAqBA,SAAS2rN,IAAmBr1H,EAAM,CAChC,OAAKs1H,GAAqBt1H,CAAI,IACxBu1H,KAAiB,SACnBA,GAAe5X,GAAS,OAG1B2X,GAAqBt1H,CAAI,EAAIA,EAAK,OAAOu1H,EAAY,GAEhDD,GAAqBt1H,CAAI,CAClC,CAKA,SAASw1H,GAAQzjO,EAAK0hB,EAAM,CAC1B,MAAMusF,EAAOk/G,GAAczrM,EAAK,KAAMkqM,GAAS,WAAW,EAC1D,GAAI,CAAC39G,EAAK,QACR,OAAO+7G,GAAS,QAAQoX,GAAgBnzH,CAAI,CAAC,EAG/C,MAAMk8G,EAAM/0H,GAAO,WAAW1zE,CAAI,EAElC,IAAIglM,EAAIt2L,EAGR,GAAKurC,GAAY37D,EAAI,IAAI,EAevB0mN,EAAKkF,GAAS,UAfY,CAC1B,UAAWv7L,KAAK6qM,GACVv/J,GAAY37D,EAAIqwB,CAAC,CAAC,IACpBrwB,EAAIqwB,CAAC,EAAI0yM,GAAkB1yM,CAAC,GAIhC,MAAMmnI,EAAU64D,GAAwBrwN,CAAG,GAAKwwN,GAAmBxwN,CAAG,EACtE,GAAIw3J,EACF,OAAOwyD,GAAS,QAAQxyD,CAAO,EAGjC,MAAMksE,EAAeJ,IAAmBr1H,CAAI,EAC5C,CAACy4G,EAAIt2L,CAAC,EAAI0xM,GAAQ9hO,EAAK0jO,EAAcz1H,CAAI,CAC7C,CAIE,OAAO,IAAI+7G,GAAS,CAAE,GAAAtD,EAAI,KAAAz4G,EAAM,IAAAk8G,EAAK,EAAA/5L,CAAC,CAAE,CAC1C,CAEA,SAASuzM,GAAa3oO,EAAOwlB,EAAKkB,EAAM,CACtC,MAAMmzF,EAAQl5C,GAAYj6C,EAAK,KAAK,EAAI,GAAOA,EAAK,MAClDy8B,EAAS,CAACxhD,EAAGgb,KACXhb,EAAImuN,GAAQnuN,EAAGk4G,GAASnzF,EAAK,UAAY,EAAI,EAAG,EAAI,EAClClB,EAAI,IAAI,MAAMkB,CAAI,EAAE,aAAaA,CAAI,EACtC,OAAO/kB,EAAGgb,CAAI,GAEjC2mN,EAAU3mN,GACJ+J,EAAK,UACFlB,EAAI,QAAQxlB,EAAO2c,CAAI,EAEd,EADL6I,EAAI,QAAQ7I,CAAI,EAAE,KAAK3c,EAAM,QAAQ2c,CAAI,EAAGA,CAAI,EAAE,IAAIA,CAAI,EAG5D6I,EAAI,KAAKxlB,EAAO2c,CAAI,EAAE,IAAIA,CAAI,EAI3C,GAAI+J,EAAK,KACP,OAAOy8B,EAAOmgL,EAAO58M,EAAK,IAAI,EAAGA,EAAK,IAAI,EAG5C,UAAW/J,KAAQ+J,EAAK,MAAO,CAC7B,MAAM/K,EAAQ2nN,EAAO3mN,CAAI,EACzB,GAAI,KAAK,IAAIhB,CAAK,GAAK,EACrB,OAAOwnC,EAAOxnC,EAAOgB,CAAI,CAE5B,CACD,OAAOwmC,EAAOnjD,EAAQwlB,EAAM,GAAK,EAAGkB,EAAK,MAAMA,EAAK,MAAM,OAAS,CAAC,CAAC,CACvE,CAEA,SAASkiN,GAASC,EAAS,CACzB,IAAIniN,EAAO,CAAE,EACXxU,EACF,OAAI22N,EAAQ,OAAS,GAAK,OAAOA,EAAQA,EAAQ,OAAS,CAAC,GAAM,UAC/DniN,EAAOmiN,EAAQA,EAAQ,OAAS,CAAC,EACjC32N,EAAO,MAAM,KAAK22N,CAAO,EAAE,MAAM,EAAGA,EAAQ,OAAS,CAAC,GAEtD32N,EAAO,MAAM,KAAK22N,CAAO,EAEpB,CAACniN,EAAMxU,CAAI,CACpB,CAKA,IAAIs2N,GAOAD,GAAuB,GAsBZ,MAAMvZ,EAAS,CAI5B,YAAYjsJ,EAAQ,CAClB,MAAMkwC,EAAOlwC,EAAO,MAAQ6tJ,GAAS,YAErC,IAAIp0D,EACFz5F,EAAO,UACN,OAAO,MAAMA,EAAO,EAAE,EAAI,IAAIqwJ,GAAQ,eAAe,EAAI,QACxDngH,EAAK,QAAkC,KAAxBmzH,GAAgBnzH,CAAI,GAIvC,KAAK,GAAKtyC,GAAYoC,EAAO,EAAE,EAAI6tJ,GAAS,IAAG,EAAK7tJ,EAAO,GAE3D,IAAIphE,EAAI,KACNyzB,EAAI,KACN,GAAI,CAAConI,EAGH,GAFkBz5F,EAAO,KAAOA,EAAO,IAAI,KAAO,KAAK,IAAMA,EAAO,IAAI,KAAK,OAAOkwC,CAAI,EAGtF,CAACtxG,EAAGyzB,CAAC,EAAI,CAAC2tC,EAAO,IAAI,EAAGA,EAAO,IAAI,CAAC,MAC/B,CAGL,MAAM+lK,EAAK7nK,GAAS8B,EAAO,CAAC,GAAK,CAACA,EAAO,IAAMA,EAAO,EAAIkwC,EAAK,OAAO,KAAK,EAAE,EAC7EtxG,EAAIklO,GAAQ,KAAK,GAAIiC,CAAE,EACvBtsE,EAAU,OAAO,MAAM76J,EAAE,IAAI,EAAI,IAAIyxN,GAAQ,eAAe,EAAI,KAChEzxN,EAAI66J,EAAU,KAAO76J,EACrByzB,EAAIonI,EAAU,KAAOssE,CACtB,CAMH,KAAK,MAAQ71H,EAIb,KAAK,IAAMlwC,EAAO,KAAOq3B,GAAO,OAAM,EAItC,KAAK,QAAUoiE,EAIf,KAAK,SAAW,KAIhB,KAAK,cAAgB,KAIrB,KAAK,EAAI76J,EAIT,KAAK,EAAIyzB,EAIT,KAAK,gBAAkB,EACxB,CAWD,OAAO,KAAM,CACX,OAAO,IAAI45L,GAAS,EAAE,CACvB,CAuBD,OAAO,OAAQ,CACb,KAAM,CAACtoM,EAAMxU,CAAI,EAAI02N,GAAS,SAAS,EACrC,CAACnrI,EAAMwD,EAAOwE,EAAKuG,EAAM0yD,EAAQ90J,EAAQ6rN,CAAW,EAAIvjN,EAC1D,OAAOu2N,GAAQ,CAAE,KAAAhrI,EAAM,MAAAwD,EAAO,IAAAwE,EAAK,KAAAuG,EAAM,OAAA0yD,EAAQ,OAAA90J,EAAQ,YAAA6rN,CAAa,EAAE/uM,CAAI,CAC7E,CA2BD,OAAO,KAAM,CACX,KAAM,CAACA,EAAMxU,CAAI,EAAI02N,GAAS,SAAS,EACrC,CAACnrI,EAAMwD,EAAOwE,EAAKuG,EAAM0yD,EAAQ90J,EAAQ6rN,CAAW,EAAIvjN,EAE1D,OAAAwU,EAAK,KAAOqrM,GAAgB,YACrB0W,GAAQ,CAAE,KAAAhrI,EAAM,MAAAwD,EAAO,IAAAwE,EAAK,KAAAuG,EAAM,OAAA0yD,EAAQ,OAAA90J,EAAQ,YAAA6rN,CAAa,EAAE/uM,CAAI,CAC7E,CASD,OAAO,WAAWo8E,EAAMhtG,EAAU,GAAI,CACpC,MAAM41N,EAAKvqJ,IAAO2hC,CAAI,EAAIA,EAAK,QAAS,EAAG,IAC3C,GAAI,OAAO,MAAM4oH,CAAE,EACjB,OAAOsD,GAAS,QAAQ,eAAe,EAGzC,MAAM+Z,EAAY5W,GAAcr8N,EAAQ,KAAM86N,GAAS,WAAW,EAClE,OAAKmY,EAAU,QAIR,IAAI/Z,GAAS,CAClB,GAAItD,EACJ,KAAMqd,EACN,IAAK3uI,GAAO,WAAWtkG,CAAO,CACpC,CAAK,EAPQk5N,GAAS,QAAQoX,GAAgB2C,CAAS,CAAC,CAQrD,CAaD,OAAO,WAAW56H,EAAcr4G,EAAU,GAAI,CAC5C,GAAKmrE,GAASktC,CAAY,EAInB,OAAIA,EAAe,CAACg4H,IAAYh4H,EAAeg4H,GAE7CnX,GAAS,QAAQ,wBAAwB,EAEzC,IAAIA,GAAS,CAClB,GAAI7gH,EACJ,KAAMgkH,GAAcr8N,EAAQ,KAAM86N,GAAS,WAAW,EACtD,IAAKx2H,GAAO,WAAWtkG,CAAO,CACtC,CAAO,EAXD,MAAM,IAAIo0N,GACR,yDAAyD,OAAO/7G,CAAY,eAAeA,CAAY,EAC/G,CAWG,CAaD,OAAO,YAAYD,EAASp4G,EAAU,GAAI,CACxC,GAAKmrE,GAASitC,CAAO,EAGnB,OAAO,IAAI8gH,GAAS,CAClB,GAAI9gH,EAAU,IACd,KAAMikH,GAAcr8N,EAAQ,KAAM86N,GAAS,WAAW,EACtD,IAAKx2H,GAAO,WAAWtkG,CAAO,CACtC,CAAO,EAND,MAAM,IAAIo0N,GAAqB,wCAAwC,CAQ1E,CAmCD,OAAO,WAAWllN,EAAK0hB,EAAO,GAAI,CAChC1hB,EAAMA,GAAO,GACb,MAAM+jO,EAAY5W,GAAczrM,EAAK,KAAMkqM,GAAS,WAAW,EAC/D,GAAI,CAACmY,EAAU,QACb,OAAO/Z,GAAS,QAAQoX,GAAgB2C,CAAS,CAAC,EAGpD,MAAM5Z,EAAM/0H,GAAO,WAAW1zE,CAAI,EAC5B09J,EAAaozC,GAAgBxyN,EAAKqjO,EAA2B,EAC7D,CAAE,mBAAApU,EAAoB,YAAA9wG,CAAW,EAAKyxG,GAAoBxwC,EAAY+qC,CAAG,EAEzE6Z,EAAQpY,GAAS,IAAK,EAC1B8X,EAAgB/nK,GAAYj6C,EAAK,cAAc,EAE3CqiN,EAAU,OAAOC,CAAK,EADtBtiN,EAAK,eAETuiN,EAAkB,CAACtoK,GAAYyjH,EAAW,OAAO,EACjD8kD,EAAqB,CAACvoK,GAAYyjH,EAAW,IAAI,EACjD+kD,EAAmB,CAACxoK,GAAYyjH,EAAW,KAAK,GAAK,CAACzjH,GAAYyjH,EAAW,GAAG,EAChFglD,EAAiBF,GAAsBC,EACvCE,EAAkBjlD,EAAW,UAAYA,EAAW,WAQtD,IAAKglD,GAAkBH,IAAoBI,EACzC,MAAM,IAAIrf,GACR,qEACR,EAGI,GAAImf,GAAoBF,EACtB,MAAM,IAAIjf,GAA8B,wCAAwC,EAGlF,MAAMsf,EAAcD,GAAoBjlD,EAAW,SAAW,CAACglD,EAG/D,IAAItsI,EACFysI,EACAC,EAAS3C,GAAQmC,EAAON,CAAY,EAClCY,GACFxsI,EAAQorI,IACRqB,EAAgBvB,IAChBwB,EAASzV,GAAgByV,EAAQvV,EAAoB9wG,CAAW,GACvD8lH,GACTnsI,EAAQqrI,IACRoB,EAAgBtB,IAChBuB,EAAShV,GAAmBgV,CAAM,IAElC1sI,EAAQojI,GACRqJ,EAAgBxB,IAIlB,IAAI0B,EAAa,GACjB,UAAWp0M,KAAKynE,EAAO,CACrB,MAAMv4F,EAAI6/K,EAAW/uJ,CAAC,EACjBsrC,GAAYp8D,CAAC,EAEPklO,EACTrlD,EAAW/uJ,CAAC,EAAIk0M,EAAcl0M,CAAC,EAE/B+uJ,EAAW/uJ,CAAC,EAAIm0M,EAAOn0M,CAAC,EAJxBo0M,EAAa,EAMhB,CAGD,MAAMC,EAAqBJ,EACrBzU,IAAmBzwC,EAAY6vC,EAAoB9wG,CAAW,EAC9D8lH,EACA9T,IAAsB/wC,CAAU,EAChCixC,GAAwBjxC,CAAU,EACtC5nB,EAAUktE,GAAsBlU,GAAmBpxC,CAAU,EAE/D,GAAI5nB,EACF,OAAOwyD,GAAS,QAAQxyD,CAAO,EAIjC,MAAMmtE,EAAYL,EACZlV,GAAgBhwC,EAAY6vC,EAAoB9wG,CAAW,EAC3D8lH,EACAvU,GAAmBtwC,CAAU,EAC7BA,EACJ,CAACwlD,EAASC,CAAW,EAAI/C,GAAQ6C,EAAWjB,EAAcK,CAAS,EACnExC,EAAO,IAAIvX,GAAS,CAClB,GAAI4a,EACJ,KAAMb,EACN,EAAGc,EACH,IAAA1a,CACR,CAAO,EAGH,OAAI/qC,EAAW,SAAWglD,GAAkBpkO,EAAI,UAAYuhO,EAAK,QACxDvX,GAAS,QACd,qBACA,uCAAuC5qC,EAAW,OAAO,kBAAkBmiD,EAAK,MAAK,CAAE,EAC/F,EAGSA,EAAK,QAIHA,EAHEvX,GAAS,QAAQuX,EAAK,OAAO,CAIvC,CAmBD,OAAO,QAAQh0N,EAAMmU,EAAO,GAAI,CAC9B,KAAM,CAAC45M,EAAM6G,CAAU,EAAIjI,IAAa3sN,CAAI,EAC5C,OAAO20N,GAAoB5G,EAAM6G,EAAYzgN,EAAM,WAAYnU,CAAI,CACpE,CAiBD,OAAO,YAAYA,EAAMmU,EAAO,GAAI,CAClC,KAAM,CAAC45M,EAAM6G,CAAU,EAAIhI,IAAiB5sN,CAAI,EAChD,OAAO20N,GAAoB5G,EAAM6G,EAAYzgN,EAAM,WAAYnU,CAAI,CACpE,CAkBD,OAAO,SAASA,EAAMmU,EAAO,GAAI,CAC/B,KAAM,CAAC45M,EAAM6G,CAAU,EAAI/H,IAAc7sN,CAAI,EAC7C,OAAO20N,GAAoB5G,EAAM6G,EAAYzgN,EAAM,OAAQA,CAAI,CAChE,CAgBD,OAAO,WAAWnU,EAAMkoN,EAAK/zM,EAAO,GAAI,CACtC,GAAIi6C,GAAYpuD,CAAI,GAAKouD,GAAY85J,CAAG,EACtC,MAAM,IAAIvQ,GAAqB,kDAAkD,EAGnF,KAAM,CAAE,OAAAzxH,EAAS,KAAM,gBAAAk2H,EAAkB,IAAM,EAAGjoM,EAChDojN,EAAc1vI,GAAO,SAAS,CAC5B,OAAA3B,EACA,gBAAAk2H,EACA,YAAa,EACrB,CAAO,EACD,CAAC2R,EAAM6G,EAAY5B,EAAgB/oE,CAAO,EAAIypE,IAAgB6D,EAAav3N,EAAMkoN,CAAG,EACtF,OAAIj+D,EACKwyD,GAAS,QAAQxyD,CAAO,EAExB0qE,GAAoB5G,EAAM6G,EAAYzgN,EAAM,UAAU+zM,CAAG,GAAIloN,EAAMgzN,CAAc,CAE3F,CAKD,OAAO,WAAWhzN,EAAMkoN,EAAK/zM,EAAO,GAAI,CACtC,OAAOsoM,GAAS,WAAWz8M,EAAMkoN,EAAK/zM,CAAI,CAC3C,CAuBD,OAAO,QAAQnU,EAAMmU,EAAO,GAAI,CAC9B,KAAM,CAAC45M,EAAM6G,CAAU,EAAIxH,IAASptN,CAAI,EACxC,OAAO20N,GAAoB5G,EAAM6G,EAAYzgN,EAAM,MAAOnU,CAAI,CAC/D,CAQD,OAAO,QAAQxc,EAAQs9N,EAAc,KAAM,CACzC,GAAI,CAACt9N,EACH,MAAM,IAAIm0N,GAAqB,kDAAkD,EAGnF,MAAM1tD,EAAUzmK,aAAkBq9N,GAAUr9N,EAAS,IAAIq9N,GAAQr9N,EAAQs9N,CAAW,EAEpF,GAAIzC,GAAS,eACX,MAAM,IAAI/G,IAAqBrtD,CAAO,EAEtC,OAAO,IAAIwyD,GAAS,CAAE,QAAAxyD,CAAO,CAAE,CAElC,CAOD,OAAO,WAAWpnI,EAAG,CACnB,OAAQA,GAAKA,EAAE,iBAAoB,EACpC,CAQD,OAAO,mBAAmBwlM,EAAYmP,EAAa,GAAI,CACrD,MAAMC,EAAYrE,GAAmB/K,EAAYxgI,GAAO,WAAW2vI,CAAU,CAAC,EAC9E,OAAQC,EAAmBA,EAAU,IAAK3kO,GAAOA,EAAIA,EAAE,IAAM,IAAK,EAAE,KAAK,EAAE,EAAvD,IACrB,CASD,OAAO,aAAao1N,EAAKsP,EAAa,GAAI,CAExC,OADiBnE,GAAkBpL,GAAU,YAAYC,CAAG,EAAGrgI,GAAO,WAAW2vI,CAAU,CAAC,EAC5E,IAAK1kO,GAAMA,EAAE,GAAG,EAAE,KAAK,EAAE,CAC1C,CAED,OAAO,YAAa,CAClBmjO,GAAe,OACfD,GAAuB,EACxB,CAWD,IAAI5rN,EAAM,CACR,OAAO,KAAKA,CAAI,CACjB,CAQD,IAAI,SAAU,CACZ,OAAO,KAAK,UAAY,IACzB,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAU,KAAK,QAAQ,OAAS,IAC7C,CAMD,IAAI,oBAAqB,CACvB,OAAO,KAAK,QAAU,KAAK,QAAQ,YAAc,IAClD,CAOD,IAAI,QAAS,CACX,OAAO,KAAK,QAAU,KAAK,IAAI,OAAS,IACzC,CAOD,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAU,KAAK,IAAI,gBAAkB,IAClD,CAOD,IAAI,gBAAiB,CACnB,OAAO,KAAK,QAAU,KAAK,IAAI,eAAiB,IACjD,CAMD,IAAI,MAAO,CACT,OAAO,KAAK,KACb,CAMD,IAAI,UAAW,CACb,OAAO,KAAK,QAAU,KAAK,KAAK,KAAO,IACxC,CAOD,IAAI,MAAO,CACT,OAAO,KAAK,QAAU,KAAK,EAAE,KAAO,GACrC,CAOD,IAAI,SAAU,CACZ,OAAO,KAAK,QAAU,KAAK,KAAK,KAAK,EAAE,MAAQ,CAAC,EAAI,GACrD,CAOD,IAAI,OAAQ,CACV,OAAO,KAAK,QAAU,KAAK,EAAE,MAAQ,GACtC,CAOD,IAAI,KAAM,CACR,OAAO,KAAK,QAAU,KAAK,EAAE,IAAM,GACpC,CAOD,IAAI,MAAO,CACT,OAAO,KAAK,QAAU,KAAK,EAAE,KAAO,GACrC,CAOD,IAAI,QAAS,CACX,OAAO,KAAK,QAAU,KAAK,EAAE,OAAS,GACvC,CAOD,IAAI,QAAS,CACX,OAAO,KAAK,QAAU,KAAK,EAAE,OAAS,GACvC,CAOD,IAAI,aAAc,CAChB,OAAO,KAAK,QAAU,KAAK,EAAE,YAAc,GAC5C,CAQD,IAAI,UAAW,CACb,OAAO,KAAK,QAAU0pN,GAAuB,IAAI,EAAE,SAAW,GAC/D,CAQD,IAAI,YAAa,CACf,OAAO,KAAK,QAAUA,GAAuB,IAAI,EAAE,WAAa,GACjE,CASD,IAAI,SAAU,CACZ,OAAO,KAAK,QAAUA,GAAuB,IAAI,EAAE,QAAU,GAC9D,CAMD,IAAI,WAAY,CACd,OAAO,KAAK,SAAW,KAAK,IAAI,eAAc,EAAG,SAAS,KAAK,OAAO,CACvE,CAQD,IAAI,cAAe,CACjB,OAAO,KAAK,QAAUC,GAA4B,IAAI,EAAE,QAAU,GACnE,CAQD,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAUA,GAA4B,IAAI,EAAE,WAAa,GACtE,CAOD,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAUA,GAA4B,IAAI,EAAE,SAAW,GACpE,CAOD,IAAI,SAAU,CACZ,OAAO,KAAK,QAAU9R,GAAmB,KAAK,CAAC,EAAE,QAAU,GAC5D,CAQD,IAAI,YAAa,CACf,OAAO,KAAK,QAAUoO,GAAK,OAAO,QAAS,CAAE,OAAQ,KAAK,GAAG,CAAE,EAAE,KAAK,MAAQ,CAAC,EAAI,IACpF,CAQD,IAAI,WAAY,CACd,OAAO,KAAK,QAAUA,GAAK,OAAO,OAAQ,CAAE,OAAQ,KAAK,GAAG,CAAE,EAAE,KAAK,MAAQ,CAAC,EAAI,IACnF,CAQD,IAAI,cAAe,CACjB,OAAO,KAAK,QAAUA,GAAK,SAAS,QAAS,CAAE,OAAQ,KAAK,GAAG,CAAE,EAAE,KAAK,QAAU,CAAC,EAAI,IACxF,CAQD,IAAI,aAAc,CAChB,OAAO,KAAK,QAAUA,GAAK,SAAS,OAAQ,CAAE,OAAQ,KAAK,GAAG,CAAE,EAAE,KAAK,QAAU,CAAC,EAAI,IACvF,CAQD,IAAI,QAAS,CACX,OAAO,KAAK,QAAU,CAAC,KAAK,EAAI,GACjC,CAOD,IAAI,iBAAkB,CACpB,OAAI,KAAK,QACA,KAAK,KAAK,WAAW,KAAK,GAAI,CACnC,OAAQ,QACR,OAAQ,KAAK,MACrB,CAAO,EAEM,IAEV,CAOD,IAAI,gBAAiB,CACnB,OAAI,KAAK,QACA,KAAK,KAAK,WAAW,KAAK,GAAI,CACnC,OAAQ,OACR,OAAQ,KAAK,MACrB,CAAO,EAEM,IAEV,CAMD,IAAI,eAAgB,CAClB,OAAO,KAAK,QAAU,KAAK,KAAK,YAAc,IAC/C,CAMD,IAAI,SAAU,CACZ,OAAI,KAAK,cACA,GAGL,KAAK,OAAS,KAAK,IAAI,CAAE,MAAO,EAAG,IAAK,CAAG,GAAE,QAC7C,KAAK,OAAS,KAAK,IAAI,CAAE,MAAO,CAAG,GAAE,MAG1C,CASD,oBAAqB,CACnB,GAAI,CAAC,KAAK,SAAW,KAAK,cACxB,MAAO,CAAC,IAAI,EAEd,MAAMqH,EAAQ,MACRC,EAAW,IACXzD,EAAUtZ,GAAa,KAAK,CAAC,EAC7Bgd,EAAW,KAAK,KAAK,OAAO1D,EAAUwD,CAAK,EAC3CG,EAAS,KAAK,KAAK,OAAO3D,EAAUwD,CAAK,EAEzCI,EAAK,KAAK,KAAK,OAAO5D,EAAU0D,EAAWD,CAAQ,EACnDvD,EAAK,KAAK,KAAK,OAAOF,EAAU2D,EAASF,CAAQ,EACvD,GAAIG,IAAO1D,EACT,MAAO,CAAC,IAAI,EAEd,MAAM2D,EAAM7D,EAAU4D,EAAKH,EACrBK,EAAM9D,EAAUE,EAAKuD,EACrBj3E,EAAK4zE,GAAQyD,EAAKD,CAAE,EACpBn3E,EAAK2zE,GAAQ0D,EAAK5D,CAAE,EAC1B,OACE1zE,EAAG,OAASC,EAAG,MACfD,EAAG,SAAWC,EAAG,QACjBD,EAAG,SAAWC,EAAG,QACjBD,EAAG,cAAgBC,EAAG,YAEf,CAACh8J,GAAM,KAAM,CAAE,GAAIozO,CAAK,GAAGpzO,GAAM,KAAM,CAAE,GAAIqzO,CAAG,CAAE,CAAC,EAErD,CAAC,IAAI,CACb,CAQD,IAAI,cAAe,CACjB,OAAO/sI,GAAW,KAAK,IAAI,CAC5B,CAQD,IAAI,aAAc,CAChB,OAAOU,GAAY,KAAK,KAAM,KAAK,KAAK,CACzC,CAQD,IAAI,YAAa,CACf,OAAO,KAAK,QAAUuE,GAAW,KAAK,IAAI,EAAI,GAC/C,CASD,IAAI,iBAAkB,CACpB,OAAO,KAAK,QAAUyxH,GAAgB,KAAK,QAAQ,EAAI,GACxD,CAQD,IAAI,sBAAuB,CACzB,OAAO,KAAK,QACRA,GACE,KAAK,cACL,KAAK,IAAI,sBAAuB,EAChC,KAAK,IAAI,eAAgB,CAC1B,EACD,GACL,CAQD,sBAAsBxtM,EAAO,GAAI,CAC/B,KAAM,CAAE,OAAA+xE,EAAQ,gBAAAk2H,EAAiB,SAAAr0H,CAAU,EAAGkgI,GAAU,OACtD,KAAK,IAAI,MAAM9zM,CAAI,EACnBA,CACN,EAAM,gBAAgB,IAAI,EACtB,MAAO,CAAE,OAAA+xE,EAAQ,gBAAAk2H,EAAiB,eAAgBr0H,CAAQ,CAC3D,CAYD,MAAM7pE,EAAS,EAAG/J,EAAO,GAAI,CAC3B,OAAO,KAAK,QAAQqrM,GAAgB,SAASthM,CAAM,EAAG/J,CAAI,CAC3D,CAQD,SAAU,CACR,OAAO,KAAK,QAAQkqM,GAAS,WAAW,CACzC,CAWD,QAAQ39G,EAAM,CAAE,cAAA7D,EAAgB,GAAO,iBAAAo7H,EAAmB,EAAO,EAAG,GAAI,CAEtE,GADAv3H,EAAOk/G,GAAcl/G,EAAM29G,GAAS,WAAW,EAC3C39G,EAAK,OAAO,KAAK,IAAI,EACvB,OAAO,KACF,GAAKA,EAAK,QAEV,CACL,IAAIw3H,EAAQ,KAAK,GACjB,GAAIr7H,GAAiBo7H,EAAkB,CACrC,MAAME,EAAcz3H,EAAK,OAAO,KAAK,EAAE,EACjC03H,EAAQ,KAAK,WACnB,CAACF,CAAK,EAAI3D,GAAQ6D,EAAOD,EAAaz3H,CAAI,CAC3C,CACD,OAAO/7G,GAAM,KAAM,CAAE,GAAIuzO,EAAO,KAAAx3H,CAAI,CAAE,CACvC,KATC,QAAO+7G,GAAS,QAAQoX,GAAgBnzH,CAAI,CAAC,CAUhD,CAQD,YAAY,CAAE,OAAAxa,EAAQ,gBAAAk2H,EAAiB,eAAAE,CAAc,EAAK,GAAI,CAC5D,MAAMM,EAAM,KAAK,IAAI,MAAM,CAAE,OAAA12H,EAAQ,gBAAAk2H,EAAiB,eAAAE,CAAc,CAAE,EACtE,OAAO33N,GAAM,KAAM,CAAE,IAAAi4N,CAAK,EAC3B,CAQD,UAAU12H,EAAQ,CAChB,OAAO,KAAK,YAAY,CAAE,OAAAA,CAAQ,EACnC,CAeD,IAAI3oG,EAAQ,CACV,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,MAAMs0L,EAAaozC,GAAgB1nO,EAAQu4O,EAA2B,EAChE,CAAE,mBAAApU,EAAoB,YAAA9wG,CAAa,EAAGyxG,GAAoBxwC,EAAY,KAAK,GAAG,EAE9EwmD,EACF,CAACjqK,GAAYyjH,EAAW,QAAQ,GAChC,CAACzjH,GAAYyjH,EAAW,UAAU,GAClC,CAACzjH,GAAYyjH,EAAW,OAAO,EACjC6kD,EAAkB,CAACtoK,GAAYyjH,EAAW,OAAO,EACjD8kD,EAAqB,CAACvoK,GAAYyjH,EAAW,IAAI,EACjD+kD,EAAmB,CAACxoK,GAAYyjH,EAAW,KAAK,GAAK,CAACzjH,GAAYyjH,EAAW,GAAG,EAChFglD,EAAiBF,GAAsBC,EACvCE,EAAkBjlD,EAAW,UAAYA,EAAW,WAEtD,IAAKglD,GAAkBH,IAAoBI,EACzC,MAAM,IAAIrf,GACR,qEACR,EAGI,GAAImf,GAAoBF,EACtB,MAAM,IAAIjf,GAA8B,wCAAwC,EAGlF,IAAIiX,EACA2J,EACF3J,EAAQ7M,GACN,CAAE,GAAGL,GAAgB,KAAK,EAAGE,EAAoB9wG,CAAW,EAAG,GAAGihE,CAAY,EAC9E6vC,EACA9wG,CACR,EACgBxiD,GAAYyjH,EAAW,OAAO,GAGxC68C,EAAQ,CAAE,GAAG,KAAK,SAAQ,EAAI,GAAG78C,CAAU,EAIvCzjH,GAAYyjH,EAAW,GAAG,IAC5B68C,EAAM,IAAM,KAAK,IAAI/iI,GAAY+iI,EAAM,KAAMA,EAAM,KAAK,EAAGA,EAAM,GAAG,IAPtEA,EAAQvM,GAAmB,CAAE,GAAGF,GAAmB,KAAK,CAAC,EAAG,GAAGpwC,CAAU,CAAE,EAW7E,KAAM,CAACsnC,EAAIt2L,CAAC,EAAI0xM,GAAQ7F,EAAO,KAAK,EAAG,KAAK,IAAI,EAChD,OAAO/pO,GAAM,KAAM,CAAE,GAAAw0N,EAAI,EAAAt2L,CAAG,EAC7B,CAeD,KAAKV,EAAU,CACb,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAC9C,OAAOx9B,GAAM,KAAM6vO,GAAW,KAAMn2H,CAAG,CAAC,CACzC,CAQD,MAAMl8E,EAAU,CACd,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMk8E,EAAMhD,GAAS,iBAAiBl5E,CAAQ,EAAE,OAAM,EACtD,OAAOx9B,GAAM,KAAM6vO,GAAW,KAAMn2H,CAAG,CAAC,CACzC,CAcD,QAAQj0F,EAAM,CAAE,eAAAkuN,EAAiB,EAAK,EAAK,GAAI,CAC7C,GAAI,CAAC,KAAK,QAAS,OAAO,KAE1B,MAAMz1M,EAAI,CAAE,EACV01M,EAAiBl9H,GAAS,cAAcjxF,CAAI,EAC9C,OAAQmuN,EAAc,CACpB,IAAK,QACH11M,EAAE,MAAQ,EAEZ,IAAK,WACL,IAAK,SACHA,EAAE,IAAM,EAEV,IAAK,QACL,IAAK,OACHA,EAAE,KAAO,EAEX,IAAK,QACHA,EAAE,OAAS,EAEb,IAAK,UACHA,EAAE,OAAS,EAEb,IAAK,UACHA,EAAE,YAAc,EAChB,KAIH,CAED,GAAI01M,IAAmB,QACrB,GAAID,EAAgB,CAClB,MAAM1nH,EAAc,KAAK,IAAI,eAAc,EACrC,CAAE,QAAA5f,CAAS,EAAG,KAChBA,EAAU4f,IACZ/tF,EAAE,WAAa,KAAK,WAAa,GAEnCA,EAAE,QAAU+tF,CACpB,MACQ/tF,EAAE,QAAU,EAIhB,GAAI01M,IAAmB,WAAY,CACjC,MAAM51M,EAAI,KAAK,KAAK,KAAK,MAAQ,CAAC,EAClCE,EAAE,OAASF,EAAI,GAAK,EAAI,CACzB,CAED,OAAO,KAAK,IAAIE,CAAC,CAClB,CAcD,MAAMzY,EAAM+J,EAAM,CAChB,OAAO,KAAK,QACR,KAAK,KAAK,CAAE,CAAC/J,CAAI,EAAG,CAAC,CAAE,EACpB,QAAQA,EAAM+J,CAAI,EAClB,MAAM,CAAC,EACV,IACL,CAgBD,SAAS+zM,EAAK/zM,EAAO,GAAI,CACvB,OAAO,KAAK,QACR8zM,GAAU,OAAO,KAAK,IAAI,cAAc9zM,CAAI,CAAC,EAAE,yBAAyB,KAAM+zM,CAAG,EACjFmF,EACL,CAqBD,eAAehF,EAAaxB,GAAoB1yM,EAAO,GAAI,CACzD,OAAO,KAAK,QACR8zM,GAAU,OAAO,KAAK,IAAI,MAAM9zM,CAAI,EAAGk0M,CAAU,EAAE,eAAe,IAAI,EACtEgF,EACL,CAeD,cAAcl5M,EAAO,GAAI,CACvB,OAAO,KAAK,QACR8zM,GAAU,OAAO,KAAK,IAAI,MAAM9zM,CAAI,EAAGA,CAAI,EAAE,oBAAoB,IAAI,EACrE,EACL,CAgBD,MAAM,CACJ,OAAAy8B,EAAS,WACT,gBAAAwkL,EAAkB,GAClB,qBAAAC,EAAuB,GACvB,cAAAC,EAAgB,GAChB,aAAAC,EAAe,EAChB,EAAG,GAAI,CACN,GAAI,CAAC,KAAK,QACR,OAAO,KAGT,MAAMiD,EAAM5nL,IAAW,WAEvB,IAAIxhD,EAAI6lO,GAAU,KAAMuD,CAAG,EAC3B,OAAAppO,GAAK,IACLA,GAAK+lO,GAAU,KAAMqD,EAAKpD,EAAiBC,EAAsBC,EAAeC,CAAY,EACrFnmO,CACR,CAUD,UAAU,CAAE,OAAAwhD,EAAS,UAAU,EAAK,GAAI,CACtC,OAAK,KAAK,QAIHqkL,GAAU,KAAMrkL,IAAW,UAAU,EAHnC,IAIV,CAOD,eAAgB,CACd,OAAOmkL,GAAa,KAAM,cAAc,CACzC,CAiBD,UAAU,CACR,qBAAAM,EAAuB,GACvB,gBAAAD,EAAkB,GAClB,cAAAE,EAAgB,GAChB,cAAAmD,EAAgB,GAChB,aAAAlD,EAAe,GACf,OAAA3kL,EAAS,UACV,EAAG,GAAI,CACN,OAAK,KAAK,SAIF6nL,EAAgB,IAAM,IAG5BtD,GACE,KACAvkL,IAAW,WACXwkL,EACAC,EACAC,EACAC,CACD,EAbM,IAeV,CAQD,WAAY,CACV,OAAOR,GAAa,KAAM,gCAAiC,EAAK,CACjE,CAUD,QAAS,CACP,OAAOA,GAAa,KAAK,MAAO,EAAE,iCAAiC,CACpE,CAOD,WAAY,CACV,OAAK,KAAK,QAGHE,GAAU,KAAM,EAAI,EAFlB,IAGV,CAcD,UAAU,CAAE,cAAAK,EAAgB,GAAM,YAAAoD,EAAc,GAAO,mBAAAC,EAAqB,EAAM,EAAG,GAAI,CACvF,IAAIzQ,EAAM,eAEV,OAAIwQ,GAAepD,KACbqD,IACFzQ,GAAO,KAELwQ,EACFxQ,GAAO,IACEoN,IACTpN,GAAO,OAIJ6M,GAAa,KAAM7M,EAAK,EAAI,CACpC,CAcD,MAAM/zM,EAAO,GAAI,CACf,OAAK,KAAK,QAIH,GAAG,KAAK,WAAW,IAAI,KAAK,UAAUA,CAAI,CAAC,GAHzC,IAIV,CAMD,UAAW,CACT,OAAO,KAAK,QAAU,KAAK,MAAK,EAAKk5M,EACtC,CAMD,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAI,CAC3C,OAAI,KAAK,QACA,kBAAkB,KAAK,MAAK,CAAE,WAAW,KAAK,KAAK,IAAI,aAAa,KAAK,MAAM,KAE/E,+BAA+B,KAAK,aAAa,IAE3D,CAMD,SAAU,CACR,OAAO,KAAK,UACb,CAMD,UAAW,CACT,OAAO,KAAK,QAAU,KAAK,GAAK,GACjC,CAMD,WAAY,CACV,OAAO,KAAK,QAAU,KAAK,GAAK,IAAO,GACxC,CAMD,eAAgB,CACd,OAAO,KAAK,QAAU,KAAK,MAAM,KAAK,GAAK,GAAI,EAAI,GACpD,CAMD,QAAS,CACP,OAAO,KAAK,OACb,CAMD,QAAS,CACP,OAAO,KAAK,UACb,CASD,SAASl5M,EAAO,GAAI,CAClB,GAAI,CAAC,KAAK,QAAS,MAAO,GAE1B,MAAMtT,EAAO,CAAE,GAAG,KAAK,CAAC,EAExB,OAAIsT,EAAK,gBACPtT,EAAK,eAAiB,KAAK,eAC3BA,EAAK,gBAAkB,KAAK,IAAI,gBAChCA,EAAK,OAAS,KAAK,IAAI,QAElBA,CACR,CAMD,UAAW,CACT,OAAO,IAAI,KAAK,KAAK,QAAU,KAAK,GAAK,GAAG,CAC7C,CAmBD,KAAK+3N,EAAexuN,EAAO,eAAgB+J,EAAO,GAAI,CACpD,GAAI,CAAC,KAAK,SAAW,CAACykN,EAAc,QAClC,OAAOv9H,GAAS,QAAQ,wCAAwC,EAGlE,MAAMw9H,EAAU,CAAE,OAAQ,KAAK,OAAQ,gBAAiB,KAAK,gBAAiB,GAAG1kN,GAE3Eo2E,EAAQg5H,IAAWn5M,CAAI,EAAE,IAAIixF,GAAS,aAAa,EACvDy9H,EAAeF,EAAc,UAAY,KAAK,QAAS,EACvDpI,EAAUsI,EAAe,KAAOF,EAChCnI,EAAQqI,EAAeF,EAAgB,KACvCG,EAASl8N,IAAK2zN,EAASC,EAAOlmI,EAAOsuI,CAAO,EAE9C,OAAOC,EAAeC,EAAO,OAAM,EAAKA,CACzC,CAUD,QAAQ3uN,EAAO,eAAgB+J,EAAO,GAAI,CACxC,OAAO,KAAK,KAAKsoM,GAAS,IAAG,EAAIryM,EAAM+J,CAAI,CAC5C,CAOD,MAAMykN,EAAe,CACnB,OAAO,KAAK,QAAUzJ,GAAS,cAAc,KAAMyJ,CAAa,EAAI,IACrE,CAaD,QAAQA,EAAexuN,EAAM+J,EAAM,CACjC,GAAI,CAAC,KAAK,QAAS,MAAO,GAE1B,MAAM2rF,EAAU84H,EAAc,UACxBI,EAAiB,KAAK,QAAQJ,EAAc,KAAM,CAAE,cAAe,EAAI,CAAE,EAC/E,OACEI,EAAe,QAAQ5uN,EAAM+J,CAAI,GAAK2rF,GAAWA,GAAWk5H,EAAe,MAAM5uN,EAAM+J,CAAI,CAE9F,CASD,OAAOumF,EAAO,CACZ,OACE,KAAK,SACLA,EAAM,SACN,KAAK,QAAO,IAAOA,EAAM,QAAS,GAClC,KAAK,KAAK,OAAOA,EAAM,IAAI,GAC3B,KAAK,IAAI,OAAOA,EAAM,GAAG,CAE5B,CAoBD,WAAWn3G,EAAU,GAAI,CACvB,GAAI,CAAC,KAAK,QAAS,OAAO,KAC1B,MAAMsd,EAAOtd,EAAQ,MAAQk5N,GAAS,WAAW,CAAE,EAAE,CAAE,KAAM,KAAK,KAAM,EACtElyJ,EAAUhnE,EAAQ,QAAW,KAAOsd,EAAO,CAACtd,EAAQ,QAAUA,EAAQ,QAAW,EACnF,IAAIgnG,EAAQ,CAAC,QAAS,SAAU,OAAQ,QAAS,UAAW,SAAS,EACjEngF,EAAO7mB,EAAQ,KACnB,OAAI,MAAM,QAAQA,EAAQ,IAAI,IAC5BgnG,EAAQhnG,EAAQ,KAChB6mB,EAAO,QAEFgsN,GAAav1N,EAAM,KAAK,KAAK0pD,CAAO,EAAG,CAC5C,GAAGhnE,EACH,QAAS,SACT,MAAAgnG,EACA,KAAAngF,CACN,CAAK,CACF,CAeD,mBAAmB7mB,EAAU,GAAI,CAC/B,OAAK,KAAK,QAEH6yO,GAAa7yO,EAAQ,MAAQk5N,GAAS,WAAW,GAAI,CAAE,KAAM,KAAK,IAAM,GAAG,KAAM,CACtF,GAAGl5N,EACH,QAAS,OACT,MAAO,CAAC,QAAS,SAAU,MAAM,EACjC,UAAW,EACjB,CAAK,EAPyB,IAQ3B,CAOD,OAAO,OAAOosO,EAAW,CACvB,GAAI,CAACA,EAAU,MAAMlT,GAAS,UAAU,EACtC,MAAM,IAAI9E,GAAqB,yCAAyC,EAE1E,OAAO8L,GAAOkM,EAAY5xO,GAAMA,EAAE,QAAS,EAAE,KAAK,GAAG,CACtD,CAOD,OAAO,OAAO4xO,EAAW,CACvB,GAAI,CAACA,EAAU,MAAMlT,GAAS,UAAU,EACtC,MAAM,IAAI9E,GAAqB,yCAAyC,EAE1E,OAAO8L,GAAOkM,EAAY5xO,GAAMA,EAAE,QAAS,EAAE,KAAK,GAAG,CACtD,CAWD,OAAO,kBAAkBiiB,EAAMkoN,EAAK3kO,EAAU,GAAI,CAChD,KAAM,CAAE,OAAA2iG,EAAS,KAAM,gBAAAk2H,EAAkB,IAAM,EAAG74N,EAChDg0O,EAAc1vI,GAAO,SAAS,CAC5B,OAAA3B,EACA,gBAAAk2H,EACA,YAAa,EACrB,CAAO,EACH,OAAOqX,GAAkB8D,EAAav3N,EAAMkoN,CAAG,CAChD,CAKD,OAAO,kBAAkBloN,EAAMkoN,EAAK3kO,EAAU,GAAI,CAChD,OAAOk5N,GAAS,kBAAkBz8M,EAAMkoN,EAAK3kO,CAAO,CACrD,CAcD,OAAO,kBAAkB2kO,EAAK3kO,EAAU,GAAI,CAC1C,KAAM,CAAE,OAAA2iG,EAAS,KAAM,gBAAAk2H,EAAkB,IAAM,EAAG74N,EAChDg0O,EAAc1vI,GAAO,SAAS,CAC5B,OAAA3B,EACA,gBAAAk2H,EACA,YAAa,EACrB,CAAO,EACH,OAAO,IAAIkX,GAAYiE,EAAarP,CAAG,CACxC,CAYD,OAAO,iBAAiBloN,EAAMi5N,EAAc9kN,EAAO,GAAI,CACrD,GAAIi6C,GAAYpuD,CAAI,GAAKouD,GAAY6qK,CAAY,EAC/C,MAAM,IAAIthB,GACR,+DACR,EAEI,KAAM,CAAE,OAAAzxH,EAAS,KAAM,gBAAAk2H,EAAkB,IAAM,EAAGjoM,EAChDojN,EAAc1vI,GAAO,SAAS,CAC5B,OAAA3B,EACA,gBAAAk2H,EACA,YAAa,EACrB,CAAO,EAEH,GAAI,CAACmb,EAAY,OAAO0B,EAAa,MAAM,EACzC,MAAM,IAAIthB,GACR,4CAA4C4f,CAAW,2CACZ0B,EAAa,MAAM,EACtE,EAGI,KAAM,CAAE,OAAAp7O,EAAQ,KAAA6iH,EAAM,eAAAsyH,EAAgB,cAAAW,CAAa,EAAKsF,EAAa,kBAAkBj5N,CAAI,EAE3F,OAAI2zN,EACKlX,GAAS,QAAQkX,CAAa,EAE9BgB,GACL92O,EACA6iH,EACAvsF,EACA,UAAU8kN,EAAa,MAAM,GAC7Bj5N,EACAgzN,CACR,CAEG,CAQD,WAAW,YAAa,CACtB,OAAOnM,EACR,CAMD,WAAW,UAAW,CACpB,OAAOC,EACR,CAMD,WAAW,uBAAwB,CACjC,OAAOoS,GACR,CAMD,WAAW,WAAY,CACrB,OAAOnS,EACR,CAMD,WAAW,WAAY,CACrB,OAAOC,EACR,CAMD,WAAW,aAAc,CACvB,OAAOC,EACR,CAMD,WAAW,mBAAoB,CAC7B,OAAOC,EACR,CAMD,WAAW,wBAAyB,CAClC,OAAOC,EACR,CAMD,WAAW,uBAAwB,CACjC,OAAOC,EACR,CAMD,WAAW,gBAAiB,CAC1B,OAAOC,EACR,CAMD,WAAW,sBAAuB,CAChC,OAAOC,EACR,CAMD,WAAW,2BAA4B,CACrC,OAAOC,EACR,CAMD,WAAW,0BAA2B,CACpC,OAAOC,EACR,CAMD,WAAW,gBAAiB,CAC1B,OAAOC,EACR,CAMD,WAAW,6BAA8B,CACvC,OAAOI,EACR,CAMD,WAAW,cAAe,CACxB,OAAOH,EACR,CAMD,WAAW,2BAA4B,CACrC,OAAOI,EACR,CAMD,WAAW,2BAA4B,CACrC,OAAOqR,GACR,CAMD,WAAW,eAAgB,CACzB,OAAOxR,EACR,CAMD,WAAW,4BAA6B,CACtC,OAAOI,EACR,CAMD,WAAW,eAAgB,CACzB,OAAOH,EACR,CAMD,WAAW,4BAA6B,CACtC,OAAOI,EACR,CACH,CAKO,SAASqH,GAAiB+J,EAAa,CAC5C,GAAI3c,GAAS,WAAW2c,CAAW,EACjC,OAAOA,EACF,GAAIA,GAAeA,EAAY,SAAW1qK,GAAS0qK,EAAY,QAAO,CAAE,EAC7E,OAAO3c,GAAS,WAAW2c,CAAW,EACjC,GAAIA,GAAe,OAAOA,GAAgB,SAC/C,OAAO3c,GAAS,WAAW2c,CAAW,EAEtC,MAAM,IAAIzhB,GACR,8BAA8ByhB,CAAW,aAAa,OAAOA,CAAW,EAC9E,CAEA,CCn+EA,MAAAC,GAAe,CAAC,CAAE,IAAA3+O,EAAK,SAAAoyL,KAAe,CACpC,MAAM/lH,EAAM6qB,WACN,CAACukI,EAASmjB,CAAU,EAAIz8I,WAAS,SAAS,EAE1C,CAACwB,EAAY2vC,CAAa,EAAInxC,EAAA,SAAS,CAAE,GACzC,CAACi2H,EAAgBymB,CAAiB,EAAI18I,EAAA,SAAS,CAAE,GACjD,CAACg3H,EAAQ2lB,CAAS,EAAI38I,EAAA,SAAS,CAAE,GACjC,CAACw1H,EAASonB,CAAU,EAAI58I,EAAA,SAAS,CAAE,GACnC,CAACk1H,EAAc2nB,CAAe,EAAI78I,WAAS,IAAI,EAC/C,CAACm1H,EAAc2nB,CAAe,EAAI98I,WAAS,IAAI,EAE/C,CAAC04H,EAAWqkB,CAAY,EAAI/8I,WAAS,EAAE,EACvC,CAACu4H,EAAQykB,CAAS,EAAIh9I,WAAS,IAAI,EACnC,CAACisG,EAAWC,CAAY,EAAIlsG,eAAa,IAAI,EAC7C,CAAC24H,EAAaskB,CAAc,EAAIj9I,WAAS,IAAI,EAC7C,CAACy4H,EAAkBykB,CAAmB,EAAIl9I,WAAS,IAAI,EACvD,CAACm9I,EAAYC,CAAa,EAAIp9I,WAAS,EAAK,EAC5C,CAACy1H,EAAW4nB,CAAY,EAAIr9I,WAAS,IAAI,EACzC,CAAC01H,GAAS4nB,EAAU,EAAIt9I,WAAS,IAAI,EACrC,CAACqW,GAAKknI,EAAM,EAAIv9I,WAAS,IAAI,EAC7B,CAACs3H,GAAgBO,EAAiB,EAAI73H,EAAA,SAAS,CAAE,GACjD,CAACw9I,GAAiBC,EAAkB,EAAIz9I,WAAS,CAAC,EAClD,CAAC09I,GAAuBC,EAAwB,EAAI39I,WAAS,EAAE,EAC/D,CAAC02H,EAAqBknB,EAAsB,EAAI59I,WAAS,EAAK,EAC9D,CAAC69I,GAAgBC,EAAiB,EAAI99I,WAAS,EAAK,EACpD,CAAC44H,GAAmBmlB,EAAoB,EAAI/9I,WAAS,IAAI,EACzD,CAAC2sD,GAAQqqC,EAAS,EAAIh3F,EAAA,SAAS,CAAE,GACjC,CAACtpE,GAAYsnN,EAAa,EAAIh+I,WAAS,EAAK,EAE5Cw5H,GAAyB7mI,UAAQ,IAAM,CAC3C,MAAMjyF,GAAS,CAACi4N,EAAa1sB,EAAWwpB,EAAWC,GAAS+C,CAAgB,EACtEwlB,GAAUlhP,IAAYA,KAAY,KACjC,OAAA2D,GAAO,KAAKu9O,EAAM,GAAKvnN,EAAA,EAC7B,CAACiiM,EAAa1sB,EAAWwpB,EAAWC,GAAS+C,EAAkB/hM,EAAU,CAAC,EAE7Eu/D,YAAU,IAAM,CACdhe,GAAI,eAAep6E,CAAG,EAAE,KAAK,CAAC,CAAE,KAAA+tB,MAAW,WACzC,MAAMsyN,GAAetyN,GAAK,WACpBuyN,GAAavyN,GAAK,SAClBwyN,GAAexyN,GAAK,WAEpByyN,GAAiBze,GAAS,WAAWwe,GAAc,YAAY,EAC/DppO,GAAIqpO,GAAe,WACnBhoI,GAAMgoI,GAAe,QAE3BtB,EAAanxN,GAAK,EAAE,EACVoxN,GAAAz/O,GAAAquB,GAAK,OAAL,YAAAruB,GAAW,EAAE,EACvB2uM,EAAal3L,EAAC,EACduoO,GAAOlnI,EAAG,EACV4mI,EAAerxN,GAAK,YAAY,EAChCsxN,EAAoBtxN,GAAK,kBAAkB,EAC3CwxN,EAAcxxN,GAAK,WAAW,EAC9ByxN,EAAazxN,GAAK,UAAU,EAC5B0xN,GAAW1xN,GAAK,QAAQ,EACxBisM,GAAkBjsM,GAAK,eAAe,EACtC6xN,GAAmB7xN,GAAK,gBAAgB,EACf+xN,GAAA/xN,GAAK,yBAA2B,EAAE,EAC3DixN,EAAgBjxN,GAAK,cAAc,EACnCkxN,EAAgBlxN,GAAK,cAAc,EACnCgyN,GAAuBhyN,GAAK,qBAAqB,EACjDkyN,GAAkBlyN,GAAK,gBAAgB,EAClBmyN,GAAAnyN,GAAK,MAAM,mBAAmB,EAE/CqsD,GAAA,aAAarsD,GAAK,SAAUA,GAAK,IAAIpuB,GAAAouB,GAAK,OAAL,YAAApuB,GAAW,EAAE,EAAE,KAAM4B,IAAa,QAC3D+xI,EAAA/xI,GAAS,KAAK,UAAU,EAElC64E,GAAA,cAAcrsD,GAAK,cAAcruB,GAAAquB,GAAK,OAAL,YAAAruB,GAAW,GAAIquB,GAAK,EAAE,EAAE,KAAM0yN,IAAc,CAC7D5B,EAAA4B,GAAU,KAAK,eAAe,EACtC3B,EAAA2B,GAAU,KAAK,MAAM,EAE/B,MAAMC,GAAsB3yN,GAAK,mBAC3B4yN,GAAe5yN,GAAK,GACpB6yN,GAAiB7yN,GAAK,aACtB8yN,GAAuB9yN,GAAK,MAAM,oBAGrCqsD,GAAA,aAAasmK,GAAqBH,GAAcI,GAAcC,GAAgBC,EAAoB,EAClG,KAAMC,IAAc,CACb,MAAAC,GAAYnlB,GAAwBklB,GAAU,KAAM,CAAE,UAAWT,GAAc,QAASC,EAAA,CAAY,EAC1GvB,EAAW+B,GAAU,IAAI,EACzBtB,EAAauB,GAAU,SAAS,EAChCtB,GAAWsB,GAAU,OAAO,EAC5BnC,EAAW,WAAW,EACtB,EAAEvyK,EAAI,OAAO,EAAE,MAAM,MAAM,CAC9B,GAAE,MAAO15D,IAAMquO,GAAe,CAAC,CACjC,GAAE,MAAOruO,IAAMquO,GAAe,CAAC,CACjC,GAAE,MAAOruO,IAAMquO,GAAe,CAAC,CACjC,GAAE,MAAOruO,IAAMquO,GAAe,CAAC,CAClC,EAAG,CAAE,GAEC,MAAAA,GAAiB/7O,IAAU,CACxB,qBAAc,QAAS,uBAAuB,EACrD25O,EAAW,QAAQ,GAGfqC,GAAuB,SAAStuO,GAAG,CACjC,MAAAiuO,GAAiBjuO,GAAE,OAAO,MAEhCysO,EAAewB,EAAc,EAE7BxmK,GAAI,cAAcwmK,GAAgBlmB,EAAQG,CAAS,EAAE,KAAM4lB,IAAc,QACjE,MAAAS,GAAYT,GAAU,KAAK,OAE7B,IAAArmB,GAAoB,CAAC,GAAGX,EAAc,EAE1CynB,GAAU,OAAgBvpN,OAAM,OAAO,EAAE,IAAaA,IAAA,CAC9B8hM,GAAe,KAAM0nB,IAAkBA,GAAc,WAAaxpN,GAAM,EAAE,IAE1E,QACFyiM,GAAA,KAAK,CAAE,GAAI,GAAI,SAAUziM,GAAM,GAAI,QAAS,GAAI,QAAS,EAAM,EACnF,CACD,EAED,MAAMypN,KAAO1hP,GAAA+gP,GAAU,KAAK,gBAAgB,CAAC,IAAhC,YAAA/gP,GAAmC,KAAM,KAEpCm/O,EAAA4B,GAAU,KAAK,eAAe,EAChD3B,EAAUoC,EAAS,EACnBlnB,GAAkBI,EAAiB,EACnCilB,EAAoB+B,EAAG,EAEnBA,GACUC,GAAAjzC,EAAWgzC,GAAKR,EAAc,EAE1C,QAAQ,IAAI,wDAAwD,CACtE,CACD,GAGGU,GAA4B,SAAS3uO,GAAG,CACtC,MAAA+tO,GAAsB/tO,GAAE,OAAO,MACrC0sO,EAAoBqB,EAAmB,EAC3BW,GAAAjzC,EAAWsyC,GAAqB5lB,CAAW,GAGnDymB,GAAwB,SAAShB,GAAc,CACnDlyC,EAAakyC,EAAY,EACbc,GAAAd,GAAc3lB,EAAkBE,CAAW,GAGhD,SAAAumB,GAAYjzC,GAAWwsB,GAAkBE,GAAa,CACzD1gJ,GAAA,aAAawgJ,GAAkBxsB,GAAWysB,EAAWC,GAAaC,EAAiB,EAAE,KAAMx5N,IAAa,CAC1G,MAAMw/O,GAAYnlB,GAAwBr6N,GAAS,KAAM,CAAE,UAAAq2N,EAAsB,QAAAC,GAAkB,EACnGknB,EAAWx9O,GAAS,IAAI,EACxBi+O,EAAauB,GAAU,SAAS,EAChCtB,GAAWsB,GAAU,OAAO,EAC7B,EAAE,MAAOpuO,IAAM,QAAQ,IAAIA,EAAC,CAAC,CAChC,CAEA,MAAM6uO,GAAmB7uO,IAAM4sO,EAAc5sO,GAAE,OAAO,OAAO,EACvD8uO,GAAyBnmN,IAASkkN,EAAalkN,EAAI,EACnDomN,GAAuBpmN,IAASmkN,GAAWnkN,EAAI,EA6EnD,OAAA0oD,EAACnZ,IAAA,CAAM,IAAAwB,EAAU,MAHL+lH,EAAW,yBAA2B,oBAGnB,QAAAqpC,EAAkB,WAvEjC9oN,IAAM,CAGlB,GAFFA,GAAA,eAEEgpN,GAA+B,SAEnCwkB,GAAc,EAAI,EAClBzjB,GAAgB,KAAK,EAErB,MAAMilB,GAAWxoB,EAAO,IAAI5wN,IAAKA,GAAE,EAAE,EAC/Bq5O,GAAqB7f,GAAS,WAAW3zB,CAAS,EAAE,SAAS,YAAY,EAEzErgL,GAAO,CACX,QAAS,CACP,aAAc+sM,EACd,WAAY8mB,GACZ,eAAgB,CAACA,GAAoBhqB,CAAS,EAAE,KAAK,GAAG,EACxD,aAAc,CAACgqB,GAAoB/pB,EAAO,EAAE,KAAK,GAAG,EACpD,mBAAoB+C,EACpB,2BAA4BnB,GAAe,IAAsBooB,IAAA,CAC/D,IAAIC,GAAU,GAEd,OAAKH,GAAS,SAASE,GAAe,QAAQ,EAEnCA,GAAe,UAAY,OAC1BC,GAAA,GAEVA,GAAU,CAACD,GAAe,QAJhBC,GAAA,GAOL,CACL,GAAID,GAAe,GACnB,SAAUA,GAAe,SACzB,eAAgBA,GAAe,QAC/B,iBAAkBA,GAAe,iBACjC,wBAAyBA,GAAe,wBACxC,SAAUC,EAAA,CACZ,CACD,EACD,iBAAkBnC,GAClB,wBAAyBE,EAC3B,GAGEztD,IACGrkK,GAAA,QAAW,IAASyqF,GACpBzqF,GAAA,YAAiB,EAAE,IAAI,EAAE,yBAAyB,EAAI0/K,IAAQA,GAAI,KAAK,EACvE1/K,GAAA,QAAW,kBAAuBuxN,GAGnCzlK,GAAA,IAAI75E,EAAI,QAAQ,QAAS,EAAE,EAAG+tB,EAAI,EAAE,KAAK,IAAM,CACnD,MAAMg0N,GAAY,EAAE,iCAAiC,EAAE,KAAK,YAAY,EAExEloK,GAAM,IAAIkoK,EAAS,EAAE,KAAMxgP,IAAa,CAC/B,oBAAa,OAAOA,GAAS,IAAI,EACxCm7N,GAAgB,KAAK,EACrB,EAAErwJ,EAAI,OAAO,EAAE,MAAM,MAAM,EAC3B,WAAW,IAAM8zK,GAAc,EAAK,EAAG,GAAG,EAC3C,EAAE,MAAOxtO,IAAM,CACd+pN,GAAgB,KAAK,EACrB,WAAW,IAAMyjB,GAAc,EAAK,EAAG,GAAG,EAC3C,EACF,EAAE,MAAOl7O,IAAU,CAClBy3N,GAAgB,KAAK,EACrByjB,GAAc,EAAK,EACThnD,GAAAl0L,GAAM,SAAS,KAAK,MAAM,EACrC,GAOM,uBAAA02N,GACL,SAAA14H,GAAC,MAAI,WAAU,eACZ,WAACmvF,GACAnvF,GAAC,MAAI,WAAU,MACb,UAACjf,EAAA,OAAI,UAAU,2CACb,SAAAA,EAACinD,IAAA,CACC,UAAAmjE,EACA,aAAAipB,EACA,aAAAC,EACA,SAAUiqB,EAAA,GAEd,EACAv9J,EAAC,MAAI,WAAU,2CACb,SAAAA,EAACo3I,IAAA,CACC,QAAAzD,EACA,UAAAC,EACA,QAAAC,GACA,kBAAmB4pB,GACnB,gBAAiBC,EAAA,GAErB,GACF,IAGD,MAAI,WAAU,yBACb,SAACz+I,GAAA,OAAI,UAAU,mBACb,UAACjf,EAAA,OAAI,UAAU,yBACb,SAAAA,EAACg+J,IAAA,CACC,MAAOlnB,EACP,WAAAn3H,EACA,SAAUs9I,EAAA,GAEd,EAEC,CAAC7uD,GACCpuG,EAAA,OAAI,UAAU,2BACb,SAAAA,EAACi+J,IAAA,CACC,UAAA7zC,EACA,aAAAipB,EACA,aAAAC,EACA,SAAUiqB,EAAA,GAEd,EAGFt+I,GAAC,MAAI,WAAU,2BACb,UAACjf,EAAA,OAAI,UAAU,wBACb,SAAAA,EAAC0zI,IAAA,CACC,QAAAC,EACA,UAAAC,EACA,QAAAC,GACA,kBAAmB4pB,GACnB,gBAAiBC,EAAA,GAErB,EAECtvD,GACEpuG,EAAA,OAAI,UAAU,oBACb,WAACkrC,IAAI,KAAA1W,GAAU,YApINA,IAAQknI,GAAOlnI,EAAG,CAoIC,CAAgB,CAC9C,IAEJ,GAEF,CACF,KAEC,MAAI,WAAU,yBACb,SAACvV,GAAA,OAAI,UAAU,mBACb,UAACjf,EAAA,OAAI,UAAU,+BACb,SAAAA,EAACm0I,IAAA,CACC,eAAAC,EACA,MAAOwC,EACP,SAAU0mB,EAAA,GAEd,EAEClvD,GAAY4tD,IACVh8J,EAAA,OAAI,UAAU,oBACb,SAACA,EAAAq0I,IAAA,CAAY,QAASinB,EAAY,SAAUkC,EAAgB,GAC9D,GAEJ,CACF,GAEC3oB,KACE,MAAI,WAAU,yBACb,SAAC51H,GAAA,OAAI,UAAU,mBACb,UAACjf,EAAA,OAAI,UAAU,iCACb,SAAAA,EAACu2I,IAAA,CACC,MAAOolB,GACP,SAvKqBhtO,IAAMitO,GAAmBjtO,GAAE,OAAO,KAAK,CAuKlD,GAEd,EAEAqxE,EAAC,MAAI,WAAU,wCACb,SAAAA,EAACs2I,IAAA,CACC,MAAOulB,GACP,SA7K2BltO,IAAMmtO,GAAyBntO,GAAE,OAAO,KAAK,CA6K9D,GAEd,GACF,CACF,GAIFqxE,EAAC,MAAI,WAAU,MACb,SAAAA,EAAC,MAAI,WAAU,YACb,SAAAif,GAAC,MAAI,WAAU,6BACb,UAACjf,EAAA,OAAI,UAAU,oCACb,SAAAA,EAACk+J,IAAA,CACC,OAAA/oB,EACA,eAAAM,GACA,kBAAAO,GACA,oBAAAnB,CAAA,GAEJ,EAEA70I,EAAC6qE,KAAM,OAAAC,GAAe,EACxB,EACF,GACF,GACF,GAGN,ECnXA,MAAAqzF,WAA6BzrB,EAAW,CAAxC,kCASEj9B,GAAA,gBAAW,IAEX,SAAU,CACV,CAEA,uBAAuBv6L,EAAS,CAC9BA,EAAQ,UAAU,IAAI,KAAK,SAAW,KAAK,mBAAqB,KAAK,mBAAmB,CAC1F,CAEA,mBAAoB,CACd,KAAK,UACP,KAAK,SAAS,EACd,KAAK,SAAS,cAAc,IAE5B,KAAK,OAAO,EACZ,KAAK,SAAS,cAAc,EAEhC,CAEA,QAAS,CACH,KAAK,mBAAmB,CAAC,IAC3B,KAAK,kBAAkB,UAAU,OAAO,KAAK,qBAAqB,EAClE,KAAK,mBAAmB,UAAU,OAAO,KAAK,qBAAqB,EACnE,KAAK,cAAc,UAAU,QAAQ,KAAK,oBAAqB,KAAK,kBAAkB,EACtF,KAAK,SAAW,GAEpB,CAEA,UAAW,CACL,KAAK,mBAAmB,CAAC,IAC3B,KAAK,kBAAkB,UAAU,IAAI,KAAK,qBAAqB,EAC/D,KAAK,mBAAmB,UAAU,IAAI,KAAK,qBAAqB,EAChE,KAAK,cAAc,UAAU,QAAQ,KAAK,mBAAoB,KAAK,mBAAmB,EACtF,KAAK,SAAW,GAEpB,CAEA,YAAYG,EAAO,CACb,IAAA+iP,EAAW,SAAS,eAAe,oBAAoB,EAE3D,GAAI,CAACA,EAAU,CACP,MAAAC,EAAU,SAAS,cAAc,KAAK,EACpCA,EAAA,aAAa,KAAM,oBAAoB,EAEtC,cAAK,YAAYA,CAAO,EAEtBD,EAAA,SAAS,eAAe,oBAAoB,CACzD,CAEAn0K,GAAS,uBAAuBm0K,CAAQ,EAC/Bn0K,GAAA,SAAQ4nG,GAAK,KAAKx2K,EAAM,OAAO,IAAI,EAAI+iP,CAAQ,CAC1D,CACF,CA5DE3oD,GADF0oD,GACS,UAAU,CAAC,cAAe,eAAgB,SAAS,GAE1D1oD,GAHF0oD,GAGS,SAAS,CACd,cAAe,cACf,eAAgB,gBAChB,iBAAkB,iBCTtB,MAAMG,WAAyB5rB,EAAW,CAQ1C,CAPEj9B,GADI6oD,GACG,UAAU,CAAC,UAAW,cAAe,OAAO,GAEnD7oD,GAHI6oD,GAGG,SAAS,CACd,cAAe,cACf,eAAgB,gBAChB,iBAAkB,cACnB,GCPH,MAAMC,WAAuB7rB,EAAW,CAGtC,SAAU,CACR,MAAM8rB,EAAU,KAAK,QAAQ,cAAc,iBAAiB,EAExDA,GACF,EAAEA,CAAO,EAAE,YAAY,CACrB,KAAM,EACN,YAAa,EACb,KAAM,GACN,MAAO,EACf,CAAO,CAEJ,CACH,CAdE/oD,GADI8oD,GACG,UAAU,CAAC,UAAU,GCAf,MAAKE,YAAS/rB,EAAW,CACtC,SAAU,CACR,KAAK,eAAe,KAAK,QAAQ,UAAU,SAAS,UAAU,CAAC,CAChE,CAED,QAAS,CACP,MAAMgsB,EAAa,KAAK,QAAQ,QAAQ,WAExC7oK,GAAM,IAAI,eAAe6oK,CAAU,SAAS,EAAE,KAAMnhP,GAAa,CAC/D,KAAM,CAAE,KAAAwsB,CAAM,EAAGxsB,EACXohP,EAAW50N,EAAK,SAAW,QAEjC,KAAK,eAAe40N,CAAQ,CAClC,CAAK,CACF,CAED,eAAeA,EAAU,CACvB,KAAM,CAAE,QAAAC,CAAO,EAAM,KAAK,QAC1B,KAAK,KAAOA,EAAQ,KACpB,KAAK,aAAeA,EAAQ,aAE5B,MAAMC,EAAW,KAAK,MAAQ,KAAK,aAE/BF,GACF,KAAK,QAAQ,UAAU,IAAI,UAAU,EACjCE,IAAS,KAAK,QAAQ,UAAY,KAAK,gBAE3C,KAAK,QAAQ,UAAU,OAAO,UAAU,EACpCA,IAAS,KAAK,QAAQ,UAAY,KAAK,MAE9C,CACH,CChCe,MAAMC,YAA0BpsB,EAAW,CAExD,SAAU,CACR,MAAMjtM,EAAO,EAAE,KAAK,OAAO,EACrBnlB,EAAU,KAAK,QAAQ,cAAc,eAAe,EAAE,UACtDs+O,EAAU,KAAK,QAAQ,QACvB/vK,EAAU+vK,EAAQ,SAAW,QAC7BpyK,EAAYoyK,EAAQ,WAAa,QAEvCn5N,EAAK,QAAQ,CACX,KAAM,GACN,QAASopD,EACT,UAAWrC,EACX,QAASlsE,CACf,CAAK,CACF,CACH,CChBA,MAAMy+O,GAAU,CACd,YAAYC,EAAe,CACzB,KAAK,cAAgBA,CACtB,CAED,OAAQ,CACN,EAAE,wBAAwB,EAAE,GAAG,QAAU,GAAM,CAC7C,MAAMv7K,EAAQ,EAAE,eAAe,EAC/BA,EAAM,MAAM,MAAM,EAElB,MAAMgrC,EAAQ,oDAEd,IAAIwwI,EAAM,GACV,EAAE,oBAAoB,EAAE,KAAK,OAAO,EAAE,OAAO,CAACx2O,EAAOoV,IAAO,CACtD4wF,EAAM,KAAK,EAAE5wF,CAAE,EAAE,KAAK,MAAM,CAAC,GAAGohO,EAAI,KAAK,EAAEphO,CAAE,EAAE,IAAK,EAChE,CAAO,EAEDg4D,GACG,IAAI,EAAE,OAAO,QAAQ,KAAM,CAAE,OAAQ,CAAE,GAAIopK,CAAG,EAAI,EAClD,KAAK,CAAC,CAAE,KAAAl1N,CAAI,IAAO05C,EAAM,KAAK,aAAa,EAAE,KAAK15C,CAAI,CAAC,CAChE,CAAK,EAED,EAAE,aAAa,EAAE,GAAG,QAAS,IAAM,CACjC,MAAM05C,EAAQ,EAAE,eAAe,EACzBy7K,EAAQ,EAAEz7K,EAAM,KAAK,MAAM,CAAC,EAElCoS,GACG,KAAKqpK,EAAM,KAAK,QAAQ,EAAG,IAAI,SAASA,EAAM,CAAC,CAAC,CAAC,EACjD,KAAK3hP,GAAY,CAChB,MAAMkxG,EAAQ,2CACR0wI,EAAS,sDACTvtN,EAAQ,EAAE,oBAAoB,EAEpC,IAAIwtN,EAAU,GACdxtN,EAAM,KAAK,OAAO,EAAE,OAAO,CAACnpB,EAAOoV,IAAO,CACxC,MAAM/iB,EAAO,EAAE+iB,CAAE,EAAE,KAAK,MAAM,EAC9B,GAAIshO,EAAO,KAAKrkP,CAAI,EAAG,CACrB,MAAMkE,EAAQmgP,EAAO,KAAK,EAAEthO,CAAE,EAAE,KAAK,MAAM,CAAC,EAC5CuhO,EAAQ,KAAK,SAASpgP,EAAM,CAAC,CAAC,CAAC,CAChC,CACb,CAAW,EAED,IAAIm7F,EAAY,EACZilJ,EAAQ,SAAW,IAAGjlJ,EAAY,KAAK,IAAI,GAAGilJ,CAAO,EAAI,GAE7D,MAAMC,EAAU9hP,EAAS,KAAK,QAAQkxG,EAAO,CAACzvG,EAAOyJ,IAE5C,gCADU,SAASA,CAAK,EAAI0xF,CACY,GAChD,EAEDvoE,EAAM,OAAOytN,CAAO,EACpB57K,EAAM,MAAM,MAAM,EAClBA,EAAM,KAAK,aAAa,EAAE,KAAK,EAAE,EAE7B,KAAK,eAAe,KAAK,cAAa,CACpD,CAAS,EACA,MAAM,IAAM,OAAO,cAAc,QAAS,0BAA0B,CAAC,CAC9E,CAAK,CACF,CACH,CC1DA,MAAM67K,YAA6B5sB,EAAW,CAC5C,SAAU,CACR,MAAMh4N,EAAO,EAAE,KAAK,OAAO,EAE3B,SAAS6kP,GAAU,CACjB7kP,EAAK,KAAK,wBAAwB,EAAE,MAAOiU,GAAM,CAC/C,MAAMm5L,EAAU,EAAEn5L,EAAE,MAAM,EAAE,KAAK,QAAQ,IAAM,QACzC6wO,EAAa9kP,EAAK,KAAK,aAAa,EAE1C,EAAE,KAAK8kP,EAAY,CAAC/2O,EAAOoV,IAAO,EAAEA,CAAE,EAAE,KAAK,UAAWiqL,CAAO,EAAE,QAAQ,QAAQ,CAAC,CAC1F,CAAO,EAEDptM,EAAK,KAAK,+BAA+B,EAAE,MAAOiU,GAAM,CACtD,MAAMm5L,EAAU,EAAEn5L,EAAE,MAAM,EAAE,KAAK,QAAQ,IAAM,QACzC6wO,EAAa9kP,EAAK,KAAK,oBAAoB,EAEjD,EAAE,KAAK8kP,EAAY,CAAC/2O,EAAOoV,IAAO,CAC5B,EAAEA,CAAE,EAAE,GAAG,UAAU,GAAG,EAAEA,CAAE,EAAE,KAAK,UAAWiqL,CAAO,EAAE,QAAQ,QAAQ,CACnF,CAAS,CACT,CAAO,EAEDptM,EAAK,KAAK,aAAa,EAAE,GAAG,SAAWiU,GAAM,CAC3C,MAAM1T,EAAS,EAAE0T,EAAE,MAAM,EACnB8wO,EAAexkP,EAAO,QAAQ,IAAI,EAAE,KAAK,oBAAoB,EAC7DsjB,EAAW,CAACtjB,EAAO,GAAG,UAAU,EAEtCwkP,EAAa,KAAK,WAAYlhO,CAAQ,EACtCkhO,EAAa,KAAK,UAAWlhO,EAAW,GAAQkhO,EAAa,KAAK,QAAQ,IAAM,EAAI,CAC5F,CAAO,EAED,MAAMC,EAAiB,EAAE,mBAAmB,EAE5CA,EAAe,GAAG,SAAW/wO,GAAM,CACjC,MAAMgxO,EAAa,EAAEhxO,EAAE,MAAM,EAAE,IAAG,EAC5BixO,EAAqBllP,EAAK,KAAK,sBAAsB,EACrDmlP,EAAyB,CAAC,cAAe,eAAe,EAAE,SAASF,CAAU,EACnFC,EAAmB,OAAOC,CAAsB,CACxD,CAAO,EAGD,MAAMC,EAAkBplP,EAAK,KAAK,aAAa,EACzCqlP,EAAiBrlP,EAAK,KAAK,kBAAkB,EAE/ColP,EAAgB,OAAS,GAAGC,EAAe,KAAI,EACnD,EAAE,KAAKD,EAAiB,CAACzgP,EAAGwe,IAAO,EAAEA,CAAE,EAAE,QAAQ,QAAQ,CAAC,EAC1D6hO,EAAe,QAAQ,QAAQ,CAChC,CAED,MAAMM,EAAY,IAAIjB,IAAU,IAAM,CACpCQ,GACN,CAAK,EAEDA,IACAS,EAAU,MAAK,CAChB,CACH,CCxDA,SAAShwK,IAAS78D,EAAG,CACjB,MAAMs2F,EAAS,WAAWt2F,CAAC,EAC3B,MAAO,CAAC,MAAMs2F,CAAM,GAAK,SAASA,CAAM,CAC5C,CACA,SAASw2I,GAAaz0K,EAAQ,CAE1B,OAAQ,OAAOA,GAAW,UACtBA,EAAOA,EAAO,OAAS,CAAC,IAAM,KAC9BwE,IAASxE,EAAO,UAAU,EAAGA,EAAO,OAAS,CAAC,CAAC,CACvD,CACA,SAAS00K,GAAYhlP,EAASswE,EAAQ,CAG9BA,IAAW,IAAMtwE,GAAY,MAAsCA,EAAQ,SAC3EA,EAAQ,MAAM,QAAU,OAEhC,CACA,SAASilP,IAAYjlP,EAASswE,EAAQ,CAG9BA,IAAW,IAAMtwE,GAAY,MAAsCA,EAAQ,SAC3EA,EAAQ,MAAM,QAAU,GAEhC,CACA,MAAMklP,IAA0B,CAC5B,UAAW,gBACX,YAAa,oBACb,cAAe,sBACf,sBAAuB,gCACvB,sBAAuB,gCACvB,0BAA2B,oCAC3B,OAAQ,aACR,iBAAkB,0BAClB,iBAAkB,0BAClB,qBAAsB,6BAC1B,EACA,SAASC,GAAsBC,EAAuB90K,EAAQ,CAC1D,MAAO,CACH80K,EAAsB,OACtB90K,IAAW,GAAK80K,EAAsB,iBACtC90K,EAAS,GAAK80K,EAAsB,qBACpC90K,IAAW,QAAU80K,EAAsB,gBAC9C,EACI,OAAQhtO,GAAMA,CAAC,EACf,KAAK,GAAG,CACjB,CAEA,MAAMitO,IAAqB,CACvB,iBACA,wBACA,yBACA,WACA,YACA,mBACA,QACA,WACA,SACA,SACA,uBACA,yBACA,OACJ,EACMC,IAAiBC,GAAmB,CACtC,KAAM,CAAE,eAAAC,EAAiB,GAAO,sBAAAJ,EAAwB,GAAI,uBAAAK,EAAyB,GAAM,SAAAvjL,EAAU,UAAAn+C,EAAY,GAAI,iBAAA2hO,EAAkB,MAAOC,EAAY,EAAG,SAAUC,EAAe,IAAK,OAAAtsN,EAAS,OAAQ,OAAAg3C,EAAQ,qBAAAu1K,EAAsB,uBAAAC,EAAwB,MAAAplP,CAAK,EAAM6kP,EACvQ50H,EAAW,OAAO,OAAO,CAAE,EAAE40H,CAAc,EACjDF,IAAmB,QAASU,IAAY,CACpC,OAAOp1H,EAASo1H,EAAO,CAC/B,CAAK,EAED,MAAMC,EAAahuJ,SAAO1nB,CAAM,EAC1B21K,EAAiBjuJ,SAAO,IAAI,EAC5BkuJ,EAA4BluJ,WAC5BmuJ,EAAYnuJ,WACZouJ,EAAepuJ,SAAO,OAAO,OAAO,OAAO,OAAO,GAAIktJ,GAAuB,EAAGE,CAAqB,CAAC,EACtGvjK,EAAY,OAAO,OAAW,IAC9BwkK,EAAuBruJ,SAAOnW,GAAa,OAAO,WAClD,OAAO,WAAW,0BAA0B,EAAE,QAC9C,EAAK,EACLpvE,EAAQ4zO,EAAqB,QAAU,EAAIV,EAC3Cp9M,EAAW89M,EAAqB,QAAU,EAAIT,EACpD,IAAIU,EAAah2K,EACbi2K,EAAe,UACf,OAAOD,GAAe,UAEtBA,EAAah2K,EAAS,EAAI,EAAIA,EAC9Bi2K,EAAe,UAEVxB,GAAauB,CAAU,IAE5BA,EAAah2K,IAAW,KAAO,EAAIA,EACnCi2K,EAAe,UAEnB,KAAM,CAACC,EAAeC,CAAgB,EAAIxjJ,EAAQ,SAACqjJ,CAAU,EACvD,CAAChqI,EAAUoqI,CAAW,EAAIzjJ,EAAQ,SAACsjJ,CAAY,EAC/C,CAACI,EAAgBC,EAAiB,EAAI3jJ,EAAQ,SAAC,EAAK,EACpD,CAAC4jJ,GAA0BC,EAA2B,EAAI7jJ,EAAQ,SAACkiJ,GAAsBiB,EAAa,QAAS91K,CAAM,CAAC,EAE5H4oB,YAAU,IAAM,CAEZ8rJ,GAAYiB,EAAe,QAASO,CAAa,CAGpD,EAAE,CAAE,GAELttJ,YAAU,IAAM,CACZ,GAAI5oB,IAAW01K,EAAW,SAAWC,EAAe,QAAS,CACzDhB,IAAYgB,EAAe,QAASD,EAAW,OAAO,EAEtDC,EAAe,QAAQ,MAAM,SAAW,SACxC,MAAMc,GAAgBd,EAAe,QAAQ,aAC7CA,EAAe,QAAQ,MAAM,SAAW,GAExC,MAAMe,GAAgBz+M,EAAW91B,EACjC,IAAIw0O,GACAC,EACAC,GAAkB,SAClBC,GACJ,MAAMC,GAAsBrB,EAAW,UAAY,OAC/C,OAAO11K,GAAW,UAElB22K,GAAY32K,EAAS,EAAI,EAAIA,EAC7B42K,EAAgBD,IAEXlC,GAAaz0K,CAAM,GAExB22K,GAAY32K,IAAW,KAAO,EAAIA,EAClC42K,EAAgBD,KAKhBA,GAAYF,GACZG,EAAgB,OAChBC,GAAkB,QAElBE,KAEAH,EAAgBD,GAGhBA,GAAYF,IAGhB,MAAMO,GAA8B,CAChClB,EAAa,QAAQ,WACpBJ,EAAW,UAAY,QAAU11K,EAAS01K,EAAW,UAClDI,EAAa,QAAQ,aACxB91K,IAAW,QAAUA,EAAS01K,EAAW,UACtCI,EAAa,QAAQ,cACzBc,IAAkB,GAAKd,EAAa,QAAQ,sBAC5Cc,IAAkB,QAAUd,EAAa,QAAQ,sBACjDc,EAAgB,GAAKd,EAAa,QAAQ,yBAC7C,EACI,OAAQhuO,IAAMA,EAAC,EACf,KAAK,GAAG,EAEPmvO,GAA+BpC,GAAsBiB,EAAa,QAASc,CAAa,EAI9FT,EAAiBQ,EAAS,EAC1BP,EAAY,QAAQ,EACpBE,GAAkB,CAACS,EAAmB,EACtCP,GAA4BQ,EAA2B,EAEvD,aAAanB,EAAU,OAAO,EAC9B,aAAaD,EAA0B,OAAO,EAC1CmB,IAGAD,GAAwB,GAExBjB,EAAU,QAAU,WAAW,IAAM,CACjCM,EAAiBS,CAAa,EAC9BR,EAAYS,EAAe,EAC3BP,GAAkBQ,EAAqB,EAEvCtB,GAA2B,MAAqDA,EAAuBoB,CAAa,CACvH,EAAE,EAAE,EAELhB,EAA0B,QAAU,WAAW,IAAM,CACjDU,GAAkB,EAAK,EACvBE,GAA4BS,EAA4B,EAGxDvC,GAAYiB,EAAe,QAASiB,CAAa,EAEjDrB,GAAyB,MAAmDA,EAAqBqB,CAAa,CACjH,EAAEF,EAAa,IAIhBlB,GAA2B,MAAqDA,EAAuBmB,EAAS,EAEhHd,EAAU,QAAU,WAAW,IAAM,CACjCM,EAAiBS,CAAa,EAC9BR,EAAYS,EAAe,EAC3BP,GAAkB,EAAK,EACvBE,GAA4BS,EAA4B,EAIpDj3K,IAAW,QAEX00K,GAAYiB,EAAe,QAASgB,EAAS,EAGjDpB,GAAyB,MAAmDA,EAAqBoB,EAAS,CAC7G,EAAED,EAAa,EAEvB,CACD,OAAAhB,EAAW,QAAU11K,EACd,IAAM,CACT,aAAa61K,EAAU,OAAO,EAC9B,aAAaD,EAA0B,OAAO,CAC1D,CAGA,EAAO,CAAC51K,CAAM,CAAC,EAEX,MAAMk3K,GAAiB,OAAO,OAAO,OAAO,OAAO,GAAI9mP,CAAK,EAAG,CAAE,OAAQ8lP,EAAe,SAAUlqI,IAAa57G,GAAU,KAA2B,OAASA,EAAM,SAAS,CAAE,EAC1KimP,GAAkBlB,IAClB+B,GAAe,WAAa,UAAUj/M,CAAQ,MAAMjP,CAAM,IAAI7mB,CAAK,KAE/D/R,GAAU,MAAoCA,EAAM,aACpD8mP,GAAe,WAAa,GAAG9mP,EAAM,UAAU,KAAK8mP,GAAe,UAAU,IAGjFA,GAAe,iBAAmBA,GAAe,YAErD,MAAMC,GAAe,GACjBjC,IACAiC,GAAa,WAAa,WAAWl/M,CAAQ,MAAMjP,CAAM,IAAI7mB,CAAK,KAElEg1O,GAAa,iBAAmBA,GAAa,WACzCjB,IAAkB,IAClBiB,GAAa,QAAU,IAK/B,MAAMngL,GADoB,OAAOqpD,EAAS,aAAa,EAAM,IACtBA,EAAS,aAAa,EAAIrgD,IAAW,EAC5E,OAAQpV,GAAM,cAAc,MAAO,OAAO,OAAO,CAAE,EAAEy1D,EAAU,CAAE,cAAerpD,GAAY,UAAW,GAAGu/K,EAAwB,IAAI9iO,CAAS,GAAI,MAAOyjO,GAAgB,EACtKtsL,GAAM,cAAc,MAAO,CAAE,UAAWwqL,EAAkB,MAAO+B,GAAc,IAAKxB,GAAkB/jL,CAAQ,CAAC,CACvH,EClPAwlL,IAAe,CAAC,CAAE,SAAAxlL,EAAU,KAAApxC,EAAM,OAAAs9C,EAAQ,QAAAiwI,EAAS,SAAAtyI,EAAU,UAAAhoD,EAAW,MAAA+hB,KAEpEi+D,GAACp4B,IAAM,KAAA76C,EAAY,OAAAs9C,EAAgB,SAAUrC,EAAW,SAAW,GAAO,gBAAiBhoD,EACzF,UAAA+gE,EAACnZ,GAAM,OAAN,CAAa,YAAW,GACvB,SAAAmZ,EAACnZ,GAAM,MAAN,CAAa,SAAA7lC,GAAgB,oCAAqC,GACrE,EACCg/C,EAAAnZ,GAAM,KAAN,CACE,SAAAzJ,CACH,GACA6hC,GAACp4B,GAAM,OAAN,CACC,UAACmZ,EAAAroB,GAAA,CAAO,QAAS2R,EAAQ,SAAK,UAC7BiwI,CAAA,EACH,CACF,ICbElsH,IAAUz+D,GAAU,CACxB,KAAM,CAAE,YAAAi0N,EAAa,eAAAC,GAAmBl0N,EAAM,YAE1C,OAAAA,EAAM,QAAUk0N,KAEfj2J,GAAW,OAAX,CAAmB,GAAGj+D,EAAO,WAAYi0N,EACxC,UAAA7iK,EAAC,SAAM,KAAK,WAAW,QAAS6iK,EAAa,SAAU,IAAM,KAAK,EACjE,IAAI,KAEP,IAKD5jJ,GAAApS,GAAW,OAAX,CAAmB,GAAGj+D,EACrB,UAACoxD,EAAA,SAAM,KAAK,WAAW,QAASpxD,EAAM,WAAY,SAAU,IAAM,KAAK,EACtE,IACAA,EAAM,KACT,GAEJ,ECrBMm7D,IAAiB,CAAC,CAAE,SAAA3sB,EAAU,GAAGxuC,KAAY,CAC3C,MAAC/vB,EAAQsE,CAAK,EAAIi6D,EACxB,IAAI2lL,EAAY,GAEZ,aAAM,QAAQlkP,CAAM,IAClB+vB,EAAM,YAAY,YACPm0N,EAAA,MACJlkP,EAAO,OAAS,EACbkkP,EAAA,GAAGlkP,EAAO,MAAM,aAEhBkkP,EAAAlkP,EAAO,CAAC,EAAE,MAAM,SACxBA,EAAO,OAAS,KAAIkkP,EAAYlkP,EAAO,UAAU,EAAG,EAAE,EAAI,SAK/DogG,GAAApS,GAAW,eAAX,CAA2B,GAAGj+D,EAC5B,UAAAm0N,EACA5/O,CACH,GAEJ,EClBM6/O,GAAmB,IAEVC,GAAA,CAAC,CAAE,mBAAAC,EAAoB,QAAAr+O,EAAS,SAAA0zF,EAAU,GAAG3pE,KAAY,CAClE,IAAAi+D,EAAa,CAAEQ,YAEf61J,IAAoBr2J,EAAW,eAAoB9C,KAEjD,MAAAo5J,EAAYryJ,UAAQ,IACL,CAAC,CAAE,GAAIkyJ,EAAkB,GAC1B,OAAOn+O,CAAO,EAC/B,CAACA,CAAO,CAAC,EAENg+O,EAAch+O,EAAQ,SAAW+pB,EAAM,MAAM,OAE7Cw0N,EAAkB9vO,GAAM,CAC5B,MAAMzU,EAASyU,EAAE,IAAI/O,GAAKA,EAAE,EAAE,EACxB8+O,EAAOx+O,EAAQ,OAAON,GAAK1F,EAAO,SAAS0F,EAAE,EAAE,CAAC,EACtDg0F,EAAS8qJ,CAAI,GAwBb,OAAArjK,EAACsjK,GAAA,CACE,GAAG10N,EACJ,QAASu0N,EACT,QAAO,GACP,kBAAmB,GACnB,oBAAqB,GACrB,eAAgB,GAChB,WAAAt2J,EACA,SA7BmB,CAACv5E,EAAGiwO,IAAe,CAClC,MAAE,OAAA56O,EAAQ,OAAAxM,CAAW,EAAAonP,EAE3B,GAAI,CAAC,QAAS,cAAc,EAAE,SAASpnP,CAAM,EAC3C,OAAOinP,EAAe9vO,CAAC,EAGrB3K,IAAW,SAEXA,EAAO,KAAOq6O,GAEdI,EADEP,EACa,CAAE,EAEFh+O,CAFE,EAKnBu+O,EAAe9vO,CAAC,EAClB,EAaE,YAAAuvO,EACA,eAAgBG,EAAA,EAGtB,ECzDAQ,IAAe,CAAC,CAAE,SAAApmL,CAAA,IAEd4iB,EAACrR,GAAA,CACC,QAAS,CAAC,QAAS,OAAO,EAC1B,UAAU,QACV,QAASqR,EAAC5Q,GAAQ,IAAI,cAAgB,SAAAhS,EAAS,EAC/C,SAAA4iB,EAAC,MAAI,WAAU,WAAW,KCQ1ByjK,IAAgB,CAAC,CAAE,OAAAC,EAAQ,UAAAC,EAAW,QAAA9+O,EAAS,SAAA0Z,CAAS,IAC3DyhE,EAAA,OAAI,UAAU,oBACZ,WAAQ,IAAI,CAAC,CAAE,MAAAxkF,EAAO,MAAA06D,EAAO,KAAAt1B,CAAA,IAC5Bq+D,GAAC,QAAkB,SAAS,UAAUzjG,CAAK,GACzC,UAAAwkF,EAAC,SACC,KAAK,QACL,KAAK,SACL,QAAS0jK,IAAWloP,EACpB,SAAA+iB,EACA,SAAU,IAAMolO,EAAUnoP,CAAK,EACjC,EACC06D,EACAt1B,GAASo/C,EAAAwjK,IAAA,CAAU,SAAK5iN,CAAA,KATfplC,CAUZ,CACD,CACH,GAGaooP,GAAA,CAAC,CAAE,KAAA53N,EAAM,QAAAslJ,EAAS,QAAAp7F,EAAS,oBAAA2tK,KAA0B,CAClE,MAAMC,EAA2BD,IAAwB,qBACnDE,EAAgBD,EAA2B,kBAAoB,UAE/D,CAACE,EAAeC,CAAgB,EAAI9lJ,WAAS,CAAC,EAC9C,CAAC+lJ,EAAeC,CAAgB,EAAIhmJ,WAAS,EAAK,EAClD,CAACulJ,EAAQU,CAAU,EAAIjmJ,WAAS4lJ,CAAa,EAC7C,CAACx5H,EAAWkc,CAAY,EAAItoC,eAAa,IAAI,EAC7C,CAACqsB,EAASmc,CAAU,EAAIxoC,eAAa,IAAI,EACzC,CAACy2F,EAAOC,CAAQ,EAAI12F,EAAA,SAAS,CAAE,GAC/B,CAACwB,EAAY2vC,CAAa,EAAInxC,EAAA,SAAS,CAAE,GACzC,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,EAAA,SAAS,CAAE,GACjC,CAACkmJ,EAAYC,CAAa,EAAInmJ,WAAS,EAAK,EAC5C,CAAComJ,EAAiBC,CAAkB,EAAIrmJ,WAAS,EAAK,EACtD,CAACsmJ,EAAkBC,CAAmB,EAAIvmJ,WAAS,EAAK,EACxD,CAACovF,EAAiBo3D,CAAkB,EAAIxmJ,WAASjoB,CAAO,EAExD,CAAC0uK,EAAeC,EAAgB,EAAI1mJ,EAAA,SAAS,CAAE,GAC/C,CAACkxC,GAAoBy1G,EAAqB,EAAI3mJ,EAAA,SAAS,CAAE,GACzD,CAAC4mJ,GAAeC,EAAgB,EAAI7mJ,WAAS,EAAE,EAC/C,CAACS,GAAQwuF,EAAS,EAAIjvF,EAAA,SAAS,CAAE,GACjC,CAACtpE,GAAYsnN,EAAa,EAAIh+I,WAAS,EAAK,EAE5C8mJ,GAAa/xJ,WACbgyJ,EAAUhyJ,WAEViyJ,GAAgBr0J,EAAA,QAAQ,IAAMgzJ,EAChC,CACE,CAAE,MAAO,kBAAmB,MAAO,iBAAkB,EACrD,CAAE,MAAO,kBAAmB,MAAO,iBAAkB,EACrD,CAAE,MAAO,iBAAkB,MAAO,gBAAiB,EACnD,CAAE,MAAO,cAAe,MAAO,aAAc,GAE/C,CACE,CAAE,MAAO,UAAW,MAAO,iBAAkB,KAAM,4CAA6C,EAChG,CAAE,MAAO,MAAO,MAAO,aAAc,KAAM,4CAA6C,EACxF,CAAE,MAAO,iBAAkB,MAAO,iBAAkB,KAAM,iCAAkC,EAC5F,CAAE,MAAO,cAAe,MAAO,4BAA6B,KAAM,uCAAwC,CAC5G,EAAG,CAACA,CAAwB,GAG1BH,GAAayB,IAAU,CAC3BhB,EAAWgB,EAAK,GAEZA,KAAU,kBAAoBA,KAAU,iBAC1CjB,EAAiB,EAAK,EACtBW,GAAsBnlJ,CAAU,EAClC,EAGFvL,YAAU,IAAMs+C,GAAA,EAAY,CAAC66C,CAAe,CAAC,EAC7Cn5F,EAAA,UAAU,IAAMskI,GAAgB,OAAO7jM,EAAU,EAAG,CAACA,EAAU,CAAC,EAE1D,MAAA4hI,GAAQ3lE,UAAQ,IAAOuzJ,GAAcE,EAAkB,CAACF,EAAYE,CAAe,CAAC,EACpFc,GAAoBv0J,UAAQ,IACzB8zJ,EAAc,OAAS,GAAKnuF,IAAS,CAAC5hI,GAC5C,CAAC4hI,GAAOmuF,EAAe/vN,EAAU,CAAC,EAE/BywN,GAAc,IAAM,CACxBhB,EAAc,EAAK,EAEnB,IAAI3lN,GAAS,GAEbA,GAAO,OAAS+kN,EAChB/kN,GAAO,aAAe0wG,GAAmB,IAAIzvC,IAAYA,GAAS,EAAE,EACpEjhE,GAAO,gBAAkBulN,EACzBvlN,GAAO,SAAW4uJ,EAClB5uJ,GAAO,qBAAuBklN,EAE1BK,IACFvlN,GAAO,UAAYwrF,GAAOI,CAAS,EAAE,OAAO,UAAU,EACtD5rF,GAAO,QAAUwrF,GAAOK,CAAO,EAAE,OAAO,UAAU,GAGpD30C,GAAM,IAAI,iDAAkD,CAAE,OAAAl3C,GAAgB,EAAE,KAAiBphC,IAAA,CACzF,MAAAu5L,GAAUv5L,GAAS,KAAK,SACxBgoP,GAAmB3wD,EAAM,OAAO3+G,IAAQ6gH,GAAQ,SAAS7gH,GAAK,EAAE,CAAC,EAEvE4uK,GAAiBU,EAAgB,EAE7BzuD,GAAQ,SAAW,IACrBmtD,EAAiB,MAAM,EACvB,WAAW,IAAM,CAAEA,EAAiB,CAAC,GAAK,GAAI,GAGhDK,EAAc,EAAI,EACnB,EAAE,MAAW31O,IAAA,CACL,qBAAc,QAAS,sBAAsB,EACpD21O,EAAc,EAAI,EACnB,GAGGkB,GAA4B72O,IAAM,CAChC,MAAAm5L,GAAUn5L,GAAE,OAAO,QACRw1O,EAAAx1O,GAAE,OAAO,OAAO,EAC7Bm5L,IAAS67C,GAAU,KAAK,GAGxBjxG,GAAW,IAAM,CAOrB,GANAmyG,GAAiB,CAAE,GACnBC,GAAsB,CAAE,GACxBE,GAAiB,EAAE,EACnBV,EAAc,EAAK,EACnBE,EAAmB,EAAK,EAEpBj3D,EAAiB,CACb,MAAAk4D,GAAyB5vK,GAAM,IAAI,iDAAiD03G,CAAe,mBAAmBs2D,IAAwB,qBAAuB,oBAAsB,SAAS,EAAE,EACtM6B,GAAqB7vK,GAAM,IAAI,uCAAuC03G,CAAe,8BAA8Bs2D,CAAmB,EAAE,EACxIlkJ,GAAa9pB,GAAM,IAAI,2BAA2B03G,CAAe,yCAAyCs2D,CAAmB,EAAE,EAErIhuK,GACG,IAAI,CAAC4vK,GAAwBC,GAAoB/lJ,EAAU,CAAC,EAC5D,KAAK9pB,GAAM,OAAO,SAAS8vK,GAAMC,GAAMC,GAAM,CACxCF,GAAK,KAAK,MAAuBX,GAAA;AAAA;AAAA;AAAA,EAAWW,GAAK,KAAK,IAAI,EACrD9wD,EAAA+wD,GAAK,KAAK,UAAU,EAC7BtB,EAAc,EAAI,EACJh1G,EAAAu2G,GAAK,KAAK,UAAU,EACZf,GAAAe,GAAK,KAAK,UAAU,EAC1CrB,EAAmB,EAAI,CACxB,EAAC,OAEJ3uK,GACG,IAAI,gDAAgDguK,CAAmB,EAAE,EACzE,KAAMtmP,IAAa,CACZ,MAAAuoP,GAAUvoP,GAAS,KAAK,QAE1BuoP,GAAQ,SAAW,IAEvB14D,GAAU04D,EAAO,EACGpB,EAAAoB,GAAQ,OAAS,CAAC,EACnBnB,EAAAmB,GAAQ,CAAC,EAAE,EAAE,GACjC,CACL,EAGIC,GAAc,IAAM,CACxB5wD,EAAU,CAAE,GACZgnD,GAAc,EAAI,EAEZ,MAAA/4O,GAAW,IAAI,SAErBwhP,EAAc,QAAQ,CAAC,CAAE,GAAAjhP,EAAA,EAAM8E,KAAU,CACvCrF,GAAS,OAAO,kCAAkCqF,EAAK,aAAc9E,EAAE,EACxE,EAEDP,GAAS,OAAO,UAAW6hP,GAAW,QAAQ,KAAK,EACnD7hP,GAAS,OAAO,OAAQ8hP,EAAQ,QAAQ,MAAM,CAAC,CAAC,EACvC9hP,GAAA,OAAO,uBAAwBygP,CAAmB,EAE3DhuK,GAAM,KAAK,iBAAiB03G,CAAe,iBAAkBnqL,EAAQ,EAAE,KAAiB7F,IAAA,CACtF,OAAO,cAAc,UAAWA,GAAS,KAAK,MAAM,EACpD4+O,GAAc,EAAK,EACnB7qE,EAAQ,EAAK,EACd,EAAE,MAAerwK,IAAA,CACZA,GAAM,SAAS,SAAW,IAClBk0L,EAAAl0L,GAAM,SAAS,KAAK,MAAM,EAE7B,qBAAc,QAAS,sBAAsB,EAEtDk7O,GAAc,EAAK,EACpB,GAGG6J,GAAoC,IACjCtC,GAAU,kBAAoBA,GAAU,cAI/C,OAAA1jK,EAACnZ,IAAA,CACC,MAAO,4BAA4Bi9K,EAA2B,UAAY,WAAW,GACrF,KAAA93N,EACA,OAAQ,IAAMslJ,EAAQ,EAAK,EAC3B,QAAUtxF,EAAAroB,GAAA,CAAO,QAAQ,UAAU,QAASouL,GAAa,SAAU,CAACV,GAAmB,SAAI,SAC3F,SAAU,GACV,UAAU,cAEV,SAAApmJ,GAAC,OAAK,WAAU,qBACb,UACCwlJ,GAAAzkK,EAAC,MAAI,WAAU,aACb,SAAAA,EAACoY,GAAA,CACC,QAASwG,GACT,mBAAuBloE,GAAI,MAC3B,mBAAuBA,GAAI,GAC3B,MAAOkoE,GAAO,KAAcC,OAAM,KAAO0uF,CAAe,EACxD,SAAY5+K,IAAMg2O,EAAmBh2O,GAAE,EAAE,EACzC,YAAY,oBAEhB,EAEFswF,GAAC,MAAI,WAAU,aACb,UAAAjf,EAACimK,GAAA,CACC,QAASrxD,EACT,mBAA0BjsL,GAAO,QAAU,GAAGA,GAAO,IAAI,aAAeA,GAAO,KAC/E,mBAA0BA,GAAO,GACjC,mBAAoB,GACpB,MAAOi8O,EACP,SAAUC,GACV,WAAY,CAACR,EACb,YAAY,uBACd,EACCrkK,EAAA6qE,GAAA,CAAM,OAAAC,EAAgB,KAAK,qBAAqB,IACnD,IAEC01F,IAAc,IAAG,gBAAgB,SAAU,IAAK,OAAQwD,EACvD,SAAAhkK,EAAC,MAAI,WAAU,0BACb,SAACA,EAAA,KAAE,UAAU,cAAc,mGAE3B,EACF,CACF,GAEAA,EAACyjK,IAAA,CACC,OAAAC,EACA,UAAAC,GACA,QAASwB,GACT,SAAUjB,CAAA,CACZ,EAEC,CAACJ,GAEE7kJ,GAAAlf,GAAA,WAACkf,GAAA,OAAI,UAAU,sBACb,UAAAjf,EAAC,SAAM,SAAQ,aACdA,EAAA,OAAI,UAAU,WACb,WAAC,MACC,UAAAA,EAACimK,GAAA,CACC,QAAStmJ,EACT,mBAA0Bh3F,GAAO,kBACjC,mBAA0BA,GAAO,GACjC,MAAO0mI,GACP,SAAUy1G,GACV,WAAY,CAACP,GAAmByB,GAAkC,EAClE,mBAAoB,GACpB,YAAY,yBAEhB,CACF,IACF,EAEA/mJ,GAAC,MAAI,WAAU,6BACb,UAACA,GAAA,SAAM,QAAQ,OAAO,4BAEnB,IACDjf,EAAC,SAAM,KAAK,WACL,KAAK,gBACL,SAAWrxE,IAAM62O,GAAyB72O,EAAC,EAC3C,SAAUq3O,GAAkC,EAC5C,QAAS9B,CAAA,CAAc,GAChC,EAECA,IACE,MAAI,WAAU,gBACb,SAACjlJ,GAAA,OAAI,UAAU,8BACb,UAACjf,EAAA,OAAI,UAAU,mBACb,SAAAA,EAACkmK,GAAA,CACC,SAAUz/G,EACV,MAAOlc,CAAA,GAEX,EACCvqC,EAAA,QAAK,UAAU,KAAK,SAAE,OACvBA,EAAC,MAAI,WAAU,mBACb,SAAAA,EAACkmK,GAAA,CACC,SAAUv/G,EACV,MAAOnc,CAAA,GAEX,EACF,EACF,GACE,KAEJxqC,EAAC,MAAI,WAAU,UAAU,IAC3B,GACF,EAEDA,EAAA,OAAI,UAAU,aACb,SAACA,EAAA,UAAO,KAAK,SAAS,UAAU,kBAAkB,QAASslK,GAAa,gBAAK,GAC/E,EAEArmJ,GAAC,MAAI,WAAU,gDACb,UAAAjf,EAAC,YACC,KAAK,wBACL,SAAS,WACT,UAAU,eACV,YAAY,gBACZ,KAAM,EACN,IAAKilK,GACL,aAAcF,EAAA,CAChB,EACC/kK,EAAA6qE,GAAA,CAAM,OAAAC,EAAgB,KAAK,SAAS,IACvC,EAEA7rD,GAAC,MAAI,WAAU,gDACb,UAACA,GAAA,SAAM,QAAQ,0BAA0B,4BAGtC,OAAK,OAAO,CAAE,WAAY,KAAO,SAElC,8EACF,EACAjf,EAAC,SACC,KAAK,OACL,IAAKklK,EACL,KAAK,2BACL,kBAAgB,0BAClB,EACCllK,EAAA6qE,GAAA,CAAM,OAAAC,EAAgB,KAAK,MAAM,IACpC,GACF,GAGN,ECnVA,MAAqBq7F,YAAqCzzB,EAAW,CACnE,SAAU,CACR,KAAK,QAAQ,iBAAiB,QAAU,GAAM,CACtC,MAAAx8I,EAAU,EAAE,OAAO,QAAQ,QAE3BkwK,EAAa,SAAS,cAAc,KAAK,EAC1C,aAAQ,sBAAsB,WAAYA,CAAU,EAEzDn8K,GAAS,OAAO+V,EAAC6xF,GAAK,SAAA37F,CAAiB,GAAIkwK,CAAU,EACtD,CACH,CACF,CCdA,MAAMC,WAAqC3zB,EAAW,CAGpD,SAAU,CACR,KAAK,eAAe,iBAAiB,SAAW,GAAM,KAAK,uBAAuB,EAAE,OAAO,OAAO,CAAC,EACnG,KAAK,uBAAuB,KAAK,eAAe,OAAO,CACxD,CAED,uBAAuBza,EAAW,CAChC,MAAMlxM,EAAQ,KAAK,kBAEfkxM,EACFlxM,EAAM,UAAU,OAAO,QAAQ,EAE/BA,EAAM,UAAU,IAAI,QAAQ,CAE/B,CACH,CAhBE0uL,GADI4wD,GACG,UAAU,CAAC,WAAY,aAAa,GCA7C,MAAMC,WAAyC5zB,EAAW,CAGxD,SAAU,CACR,KAAK,eAAiB,EACvB,CAED,UAAU,EAAG,OAGX,GAFA,EAAE,eAAc,EAEZ,KAAK,eAAgB,OAEzB,KAAK,eAAiB,GAEtB,MAAM12N,EAAM,EAAE,OAAO,QAAQ,IACvBuqP,EAAiB,SAAS,cAAc,mBAAmB,EAC3D9iL,EAAQ,SAAS,eAAe,YAAY,EAC5CnjE,EAAUmjE,EAAM,cAAc,gBAAgB,EAC9CyS,GAAUx6E,EAAA6qP,GAAA,YAAAA,EAAgB,UAAhB,YAAA7qP,EAAyB,SAEzCm6E,GACG,IAAI75E,EAAK,CAAE,OAAQ,CAAE,SAAUk6E,CAAO,CAAE,CAAC,EACzC,KAAM34E,GAAa,CAClB+C,EAAQ,UAAY/C,EAAS,KAC7B,EAAEkmE,CAAK,EAAE,MAAM,MAAM,EACrB,KAAK,eAAiB,EAC9B,CAAO,CACJ,CAED,YAAY,EAAG,CACb,MAAMxoE,EAAS,EAAE,OACXe,EAAM,GAAGf,EAAO,QAAQ,GAAG,aAAaA,EAAO,KAAK,GACpD6F,EAAO,KAAK,WACZ0lP,EAA2B,KAAK,uBAEtC,GAAIvrP,EAAO,QAAU,aACnB,OAAA6F,EAAK,MAAQ,GACb0lP,EAAyB,QAAU,GAE5B,KAGT3wK,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChCuD,EAAK,MAAQvD,EAAS,KAAK,KAC3BipP,EAAyB,QAAUjpP,EAAS,KAAK,OACvD,CAAK,CACF,CACH,CA9CEk4L,GADI6wD,GACG,UAAU,CAAC,OAAQ,kBAAkB,ICC7C,SAAS1rO,EAAE,CAAc,SAASC,EAAEA,EAAEnK,EAAE,CAAC,KAAK,OAAO,GAAG,KAAK,WAAW,GAAG,KAAK,SAASkK,EAAEC,CAAC,EAAE,KAAK,SAAS,KAAI,EAAG,KAAK,SAAoBA,EAAE,UAAb,SAAqB,KAAK,SAAS,KAAK,UAAUA,EAAE,aAAa,UAAU,EAAE,KAAK,YAAYnK,GAAGA,EAAE,UAAU,KAAK,gBAAgBmK,EAAE,aAAa,aAAa,EAAE,KAAK,SAAS,KAAK,aAAa,EAAE,GAAG,KAAK,UAAU,KAAK,IAAI,EAAE,KAAK,gBAAgB,MAAM,EAAE,KAAK,WAAWD,EAAE,yCAAyC,EAAE,KAAK,OAAOA,EAAE,mCAAmC,KAAK,gBAAgB,KAAK,EAAE,SAAS,KAAK,UAAU,EAAE,KAAK,SAAS,OAAO,KAAK,UAAU,EAAE,KAAK,MAAMlK,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,SAASA,EAAEkK,EAAEC,EAAE,CAAC,GAAe,OAAOD,EAAEC,CAAC,GAAtB,WAAwB,CAAC,IAAInK,EAAEkK,EAAEC,CAAC,EAAED,EAAEC,CAAC,EAAE,SAASD,EAAE,CAAC,OAAOA,EAAElK,CAAC,CAAC,CAAC,CAAC,CAAC,SAASmzB,EAAEjpB,EAAEC,EAAE,CAAC,GAAe,OAAOD,EAAEC,CAAC,GAAtB,WAAwB,CAAC,IAAInK,EAAEkK,EAAEC,CAAC,EAAED,EAAEC,CAAC,EAAE,UAAU,CAAC,OAAOnK,CAAC,CAAC,CAAC,CAAC,SAAS/B,EAAEiM,EAAE,CAAC,OAAOA,EAAEvb,EAAE,KAAKub,CAAC,EAAE,KAAI,EAAG,EAAE,CAAC,SAASkpB,EAAElpB,EAAE,CAAC,IAAIC,EAAE,EAAE,GAAG,SAAS,UAAU,CAACD,EAAE,MAAK,EAAG,IAAIlK,EAAE,SAAS,UAAU,YAAW,EAAGA,EAAE,UAAU,YAAY,CAACkK,EAAE,MAAM,MAAM,EAAEC,EAAEnK,EAAE,KAAK,MAAM,MAAMkK,EAAE,gBAAqBA,EAAE,gBAAP,OAAyBC,EAAED,EAAE,gBAAgB,OAAOC,CAAC,CAAC,SAASkpB,EAAElpB,EAAEnK,EAAE,CAAC,IAAImzB,EAAE,GAAG,OAAOjpB,EAAE,KAAKlK,EAAE,SAASkK,EAAElK,EAAE,CAAC,GAAa,OAAOA,GAAjB,UAAoBmK,EAAE,QAAQnK,EAAE,OAAOmzB,EAAE,GAAG,GAAG,GAAGhpB,EAAE,QAAQnK,EAAE,MAAM,CAAC,IAAI/B,EAAE,CAAC+B,EAAE,eAAe,QAAQ,GAAGmK,EAAE,SAASnK,EAAE,OAAOozB,EAAE,CAACpzB,EAAE,eAAe,UAAU,GAAGmK,EAAE,WAAWnK,EAAE,SAASqzB,EAAE,CAACrzB,EAAE,eAAe,SAAS,GAAGmK,EAAE,UAAUnK,EAAE,QAAQ,GAAG/B,GAAGm1B,GAAGC,EAAE,OAAOF,EAAE,GAAG,EAAE,CAAC,CAAC,EAAEA,CAAC,CAAC,IAAIG,EAAE,CAAC,SAAS,SAASppB,EAAE,CAAC,MAAM,kBAAkB,EAAE,UAAU,SAASA,EAAE,CAAC,OAAOA,GAAEA,EAAE,SAAQ,CAAI,EAAE,SAAS,SAASA,EAAE,CAAC,OAAO,KAAK,UAAUA,CAAC,CAAC,EAAE,UAAU,SAASA,EAAE,CAAC,OAAO,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,OAAO,SAAS,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,UAAU,IAAI,eAAe,KAAK,yBAAyB,GAAG,YAAY,SAASA,EAAEC,EAAE,CAACA,EAAE,KAAM,EAAC,OAAM,CAAE,EAAE,UAAU,GAAG,gBAAgB,EAAE,EAAEA,EAAE,UAAU,CAAC,YAAYA,EAAE,IAAI,SAASA,EAAEnK,EAAEmzB,EAAE,CAAC,IAAIC,EAAE,KAAK,GAAG,EAAEA,EAAE,QAAQ,SAASA,EAAE,WAAW,QAAQA,EAAE,QAAQ,WAAWjpB,IAAI,IAAIA,GAAG,CAAC,GAAa,OAAOA,GAAjB,UAAoBipB,EAAE,QAAQ,YAAYjpB,EAAED,EAAE,KAAKC,CAAC,GAAa,OAAOA,GAAjB,UAAoB,CAACipB,EAAE,YAAY,KAAK,qDAAqD,GAAG,CAACjpB,EAAE,SAAU,EAAC,MAAM,OAAO,EAAE,CAAC,GAAGipB,EAAE,UAAU,CAACA,EAAE,UAAUA,EAAE,WAAW,OAAO,GAAGA,EAAE,OAAOA,EAAE,WAAW,CAAC,CAAC,EAAY,OAAOjpB,GAAjB,UAA8B,KAAK,SAAS,CAAC,EAAE,UAA3B,QAAmC,CAAC,IAAIkpB,EAAED,EAAE,QAAQ,eAAeA,EAAE,QAAQ,eAAeA,EAAE,QAAQ,UAAUE,EAAEnpB,EAAE,MAAMkpB,CAAC,EAAE,GAAGC,EAAE,OAAO,EAAE,CAAC,QAAQ3kC,EAAE,EAAEA,EAAE2kC,EAAE,OAAO3kC,IAAI,KAAK,IAAI2kC,EAAE3kC,CAAC,EAAE,EAAE,EAAE,OAAO,KAAKqR,GAAGozB,EAAE,QAAO,EAAG,CAAC,CAAC,IAAIrxB,EAAEqxB,EAAE,QAAQ,UAAUjpB,CAAC,EAAEnI,EAAEoxB,EAAE,QAAQ,SAASjpB,CAAC,EAAEvG,EAAEwvB,EAAE,QAAQ,SAASjpB,CAAC,EAAEzH,EAAE0wB,EAAE,QAAQ,UAAUjpB,CAAC,EAAE1H,EAAEyH,EAAE,KAAKkpB,EAAE,WAAW,SAASlpB,EAAE,CAAC,OAAOkpB,EAAE,QAAQ,UAAUlpB,CAAC,IAAInI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAACU,GAAG2wB,EAAE,QAAQ,iBAAiB,GAAG,EAAEA,EAAE,MAAK,EAAG,SAAU,EAAC,OAAOjpB,EAAE,OAAO,EAAEipB,EAAE,QAAQ,gBAAgB,CAAC,IAAIK,EAAEvpB,EAAE,MAAM,gBAAgB,CAAC,KAAKC,EAAE,OAAO,GAAG,QAAQgpB,CAAC,CAAC,EAAE,GAAGC,EAAE,SAAS,QAAQK,CAAC,EAAE,CAACA,EAAE,OAAO,CAACL,EAAE,WAAW,KAAKjpB,CAAC,EAAE,IAAI8Z,EAAE/Z,EAAE,oBAAoBjM,EAAE2F,CAAC,GAAUlB,IAAP,KAAS,YAAYA,EAAE,IAAI,KAAKzE,EAAE+D,CAAC,EAAE,yCAAyC,EAAEiiB,EAAE,KAAK,OAAO9Z,CAAC,EAAEipB,EAAE,iBAAkB,EAAC,OAAOnP,CAAC,EAAEA,EAAE,MAAM,GAAG,EAAE,IAAIsP,EAAErpB,EAAE,iBAAiB,mBAAmBnI,CAAC,EAAE,KAAKqxB,EAAE,QAAQ,EAAE,QAAQlpB,EAAE,iBAAiBjM,EAAE8D,CAAC,EAAE,KAAKqxB,EAAE,QAAQ,EAAE,OAAO,GAAGA,EAAE,UAAU,CAACG,EAAE,CAAC,IAAIC,EAAEtpB,EAAE,oBAAoBjM,EAAE+D,CAAC,EAAE,WAAW,EAAEwxB,EAAE,KAAK,OAAOrpB,CAAC,EAAEqpB,EAAE,KAAK,QAAQzxB,CAAC,EAAEqxB,EAAE,SAAS,OAAOI,CAAC,CAAC,CAACxzB,GAAGozB,EAAE,WAAWA,EAAE,QAAQ,UAAUA,EAAE,WAAW,QAAQA,EAAE,MAAK,EAAG,WAAW,SAASA,EAAE,QAAQ,iBAAiBA,EAAE,WAAW,SAAS,yBAAyB,EAAElpB,EAAE,iCAAiCkpB,EAAE,UAAU,EAAE,QAAQA,EAAE,OAAO,UAAU,MAAM,EAAE,EAAE,KAAK,OAAOA,EAAE,SAAS,QAAQlpB,EAAE,MAAM,kBAAkB,CAAC,KAAKC,EAAE,QAAQgpB,CAAC,CAAC,CAAC,EAAEC,EAAE,SAAS,QAAQlpB,EAAE,MAAM,YAAY,CAAC,KAAKC,EAAE,QAAQgpB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAUC,EAAE,QAAQ,YAAY,CAAC,IAAIrvB,EAAEmG,EAAE,OAAOkpB,EAAE,UAAU,EAAE,OAAO,UAAU,CAAC,OAAOlpB,EAAE,IAAI,EAAE,KAAK,MAAM,IAAIzH,CAAC,CAAC,EAAE2wB,EAAE,QAAQ,YAAYjpB,EAAEpG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,SAASoG,EAAEnK,EAAEmzB,EAAE,CAAC,IAAIl1B,EAAE,KAAK,GAAGA,EAAE,cAAckM,EAAY,OAAOA,GAAjB,SAAmBD,EAAE,KAAKjM,EAAE,WAAW,SAASiM,EAAE,CAAC,OAAOjM,EAAE,QAAQ,UAAUiM,CAAC,GAAGjM,EAAE,QAAQ,UAAUkM,CAAC,CAAC,CAAC,EAAED,EAAE,KAAKjM,EAAE,WAAW,SAASiM,EAAE,CAAC,OAAOjM,EAAE,QAAQ,UAAUiM,CAAC,GAAGC,CAAC,CAAC,EAAEA,EAAEA,EAAEA,EAAE,OAAO,CAAC,GAAGA,EAAE,CAAC,IAAI,EAAED,EAAE,MAAM,mBAAmB,CAAC,KAAKC,EAAE,OAAO,GAAG,QAAQgpB,CAAC,CAAC,EAAE,GAAGl1B,EAAE,SAAS,QAAQ,CAAC,EAAE,EAAE,OAAO,OAAOiM,EAAE,OAAOjM,EAAE,UAAU,EAAE,OAAO,UAAU,CAAC,OAAOiM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAIC,CAAC,CAAC,EAAE,OAAM,EAAGD,EAAE,SAASjM,EAAE,QAAQ,EAAE,OAAO,UAAU,CAAC,OAAOiM,EAAE,IAAI,EAAE,KAAK,MAAM,IAAIC,CAAC,CAAC,EAAE,OAAQ,EAAMD,EAAE,QAAQC,EAAElM,EAAE,UAAU,IAA7B,IAAgCA,EAAE,WAAW,OAAOiM,EAAE,QAAQC,EAAElM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC+B,GAAG/B,EAAE,QAAS,EAACA,EAAE,QAAQ,QAAQA,EAAE,WAAW,QAAQA,EAAE,WAAW,YAAY,yBAAyB,EAAEA,EAAE,SAAS,QAAQiM,EAAE,MAAM,cAAc,CAAC,KAAKC,EAAE,QAAQgpB,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,UAAU,CAAC,IAAIhpB,EAAE,KAAK,IAAID,EAAE,OAAOC,EAAE,UAAU,EAAE,SAASD,EAAE,SAASC,EAAE,QAAQ,EAAE,OAAQ,EAACA,EAAE,WAAW,OAAO,GAAGA,EAAE,WAAW,MAAMA,EAAE,QAAS,GAAE,QAAQ,UAAU,CAAC,IAAIA,EAAE,KAAKD,EAAE,OAAOC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC,IAAInK,EAAEkK,EAAE,IAAI,EAAEipB,EAAEnzB,EAAE,KAAK,MAAM,EAAEozB,EAAEjpB,EAAE,QAAQ,UAAUgpB,CAAC,EAAEE,EAAElpB,EAAE,QAAQ,SAASgpB,CAAC,EAAEG,EAAEnpB,EAAE,QAAQ,SAASgpB,CAAC,EAAE,GAAGnzB,EAAE,KAAK,QAAQ,IAAI,EAAEA,EAAE,SAAS,OAAO/B,EAAEq1B,CAAC,CAAC,EAAEtzB,EAAE,SAAU,EAAC,OAAO,UAAU,CAAC,OAAU,KAAK,UAAR,CAAgB,CAAC,EAAE,CAAC,EAAE,UAAU/B,EAAEo1B,CAAC,EAAElpB,EAAE,SAAS,CAAC,IAAIxb,EAAEub,EAAE,SAASC,EAAE,QAAQ,EAAE,OAAO,UAAU,CAAC,OAAOD,EAAE,IAAI,EAAE,KAAK,MAAM,IAAIipB,CAAC,CAAC,EAAExkC,EAAE,KAAK,QAAQykC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,OAAO,KAAK,UAAU,EAAE,QAAQ,UAAU,CAAC,IAAIjpB,EAAE,KAAKnK,EAAEkK,EAAE,IAAIC,EAAE,QAAQ,SAASD,EAAE,CAAC,OAAOC,EAAE,QAAQ,UAAUD,CAAC,EAAE,SAAQ,CAAE,CAAC,EAAEC,EAAE,SAAS,IAAInK,EAAE,EAAE,EAAE,QAAQ,QAAQ,CAAC,EAAE,MAAM,SAASmK,EAAE,CAAC,IAAIlM,EAAE,KAAK,GAAGA,EAAE,QAAQiM,EAAE,OAAO,GAAGopB,EAAEnpB,CAAC,EAAElM,EAAE,cAAcA,EAAE,QAAQ,UAAU,IAAI+B,EAAE/B,EAAE,QAAQ,WAAW,EAAE+B,EAAE/B,EAAE,QAAQ,UAAU,EAAEk1B,EAAEl1B,EAAE,QAAQ,UAAU,EAAEA,EAAE,QAAQ,UAAU,CAAC,IAAItP,EAAEsP,EAAE,QAAQ,WAAW,CAAE,EAACk1B,EAAExkC,EAAE,QAAQ,EAAEsP,EAAE,OAAO,UAAUiM,EAAE,OAAO,GAAGvb,EAAE,CAAC,OAAO,SAASwb,EAAEnK,EAAE,CAAC,SAASmzB,EAAEjpB,EAAE,CAAC,QAAQC,EAAE,CAAE,EAACgpB,EAAE,EAAEA,EAAEjpB,EAAE,OAAOipB,IAAI,CAAC,IAAIE,EAAEp1B,EAAE,QAAQ,SAASiM,EAAEipB,CAAC,CAAC,EAAEC,EAAEC,CAAC,EAAEnpB,EAAEipB,CAAC,EAAEhpB,EAAE,KAAKkpB,CAAC,CAAC,CAACrzB,EAAEmK,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAIipB,EAAE,KAAK,IAAIC,EAAE1kC,EAAE,OAAOwb,CAAC,EAAED,EAAE,WAAWmpB,EAAE,OAAO,EAAEA,EAAE,QAAQF,CAAC,EAAEjpB,EAAE,WAAWmpB,EAAE,IAAI,EAAEA,EAAE,KAAKF,CAAC,EAAEjpB,EAAE,KAAKmpB,CAAC,EAAE,KAAKF,CAAC,CAAC,EAAE,QAAQ,SAASjpB,EAAE,CAAC,OAAOjM,EAAE,IAAI,KAAK,IAAIiM,CAAC,CAAC,EAAE,KAAK,IAAIA,CAAC,CAAC,EAAE,QAAQ,SAASA,EAAE,CAAC,OAAWA,EAAE,YAAa,EAAC,QAAQ,KAAK,MAAM,OAAO,YAAa,KAA5D,EAA6D,EAAE,OAAO,SAASA,EAAE,CAAC,OAAOA,EAAE,MAAM,EAAE,YAAY,SAASA,EAAE,CAAC,IAAIC,EAAE,IAAI,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,EAAE,OAAOD,EAAE,QAAQC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGlM,EAAE,QAAQ,YAAY,CAAC,IAAI8D,EAAE,KAAKC,EAAE,GAAG4B,EAAE3F,EAAE,QAAQ,YAAYiM,EAAE,QAAQtG,CAAC,GAAG7B,EAAE6B,EAAE,CAAC,EAAE5B,EAAE4B,EAAE,CAAC,GAAG5B,EAAE4B,EAAE3F,EAAE,OAAO,UAAU8D,EAAEC,CAAC,EAAE,GAAG,qBAAqBkI,EAAE,MAAM,SAASA,EAAEC,EAAE,CAACnI,EAAE,SAAS/D,EAAE,IAAIkM,EAAEnI,EAAE,QAAQ,CAAC,EAAE/D,EAAE,IAAIkM,CAAC,EAAElM,EAAE,OAAO,UAAU,MAAM,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,CAACA,EAAE,WAAW,GAAG,QAAQiM,EAAE,MAAM,SAASA,EAAE,CAACjM,EAAE,SAAS,KAAK,UAAU,GAAGA,EAAE,OAAO,WAAW,UAAU,EAAEA,EAAE,OAAO,MAAO,GAAEA,CAAC,CAAC,EAAEA,EAAE,QAAQ,WAAWA,EAAE,QAAQ,WAAWA,EAAE,OAAO,GAAG,WAAWiM,EAAE,MAAM,SAASC,EAAE,CAAKD,EAAE,iCAAiCjM,EAAE,UAAU,EAAE,SAArD,IAA8DA,EAAE,IAAIA,EAAE,OAAO,IAAG,CAAE,EAAEA,EAAE,OAAO,IAAI,EAAE,EAAE,EAAEA,CAAC,CAAC,EAAEA,EAAE,WAAW,GAAG,UAAU,QAAQiM,EAAE,MAAM,SAASC,EAAE,CAAC,IAAInK,EAAEkK,EAAEC,EAAE,MAAM,EAAEgpB,EAAEl1B,EAAE,iBAAgB,EAAG,GAAGA,EAAE,SAAS,KAAK,UAAU,EAAE,OAAO,KAAKA,EAAE,OAAO,KAAK,WAAW,UAAU,EAAE,OAAOkM,EAAE,MAAK,CAAE,IAAK,GAAE,GAAOipB,EAAEpzB,EAAE,CAAC,CAAC,IAAV,EAAY,CAAC,IAAIqzB,EAAEF,EAAE,KAAM,EAACE,EAAE,QAAQp1B,EAAE,OAAOo1B,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,IAAK,IAAG,GAAOD,EAAEpzB,EAAE,CAAC,CAAC,IAAV,EAAY,CAAC,IAAIszB,EAAEH,EAAE,KAAM,EAACG,EAAE,QAAQr1B,EAAE,OAAOq1B,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,IAAK,IAAG,IAAI3kC,EAAEwkC,EAAE,KAAM,EAAKnzB,EAAE,MAAM,SAAZ,GAAoBrR,EAAE,CAAC,IAAIA,EAAE,OAAOwkC,CAAC,EAAEnzB,EAAE,MAAK,GAAI,MAAM,IAAK,IAAG,IAAI+B,EAAEoxB,EAAE,KAAI,EAAOnzB,EAAE,IAAG,EAAG,SAAZ,GAAoB+B,EAAE,CAAC,IAAIA,EAAE,MAAMoxB,CAAC,EAAEnzB,EAAE,MAAK,EAAG,CAAOA,EAAE,IAAK,EAAC,OAAsBA,EAAE,KAAK,OAAO,KAAK,IAAI,KAAK,UAAUA,EAAE,IAAK,EAAC,MAAM,CAAC,CAAC,EAAE/B,CAAC,CAAC,EAAEA,EAAE,WAAW,GAAG,WAAW,QAAQiM,EAAE,MAAM,SAASC,EAAE,CAAC,IAAInK,EAAEkK,EAAEC,EAAE,MAAM,EAAE,GAAGlM,EAAE,SAAS,KAAK,UAAU,EAAE,OAAO,KAAKA,EAAE,OAAO,KAAK,WAAW,UAAU,EAAE,IAAIk1B,EAAEnzB,EAAE,IAAG,EAAGozB,EAAEn1B,EAAE,QAAQ,UAAUk1B,EAAE,QAAQl1B,EAAE,QAAQ,SAASA,EAAE,QAAQ,YAAYo1B,EAAElpB,EAAElM,EAAE,QAAQ,WAAW,GAAGm1B,KAASD,EAAE,SAAN,IAAel1B,EAAE,IAAIm1B,EAAED,EAAE,OAAO,EAAEl1B,EAAE,QAAQ,QAAQ,EAAEk1B,CAAC,EAAEnzB,EAAE,IAAI,EAAE,GAAG/B,EAAE,QAAQ,2BAA2B,IAAIkM,EAAE,eAAc,GAAUnK,EAAE,IAAG,EAAG,OAAsBA,EAAE,KAAK,OAAO,KAAK,IAAI,KAAK,UAAUA,EAAE,IAAG,EAAG,MAAM,CAAC,CAAC,EAAE/B,CAAC,CAAC,EAAEA,EAAE,WAAW,GAAG,QAAQ,qBAAqBiM,EAAE,MAAM,SAASC,EAAE,CAAClM,EAAE,SAAS,KAAK,UAAU,GAAGA,EAAE,OAAOiM,EAAEC,EAAE,MAAM,EAAE,QAAQ,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC,EAAElM,CAAC,CAAC,EAAEA,EAAE,QAAQ,YAAYq1B,EAAE,YAAsBr1B,EAAE,SAAS,CAAC,EAAE,UAAxB,QAAgCA,EAAE,IAAIA,EAAE,SAAS,KAAK,EAAEiM,EAAE,SAASjM,EAAE,QAAQ,EAAE,KAAK,UAAU,CAACA,EAAE,IAAIiM,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,UAAU,CAAC,IAAIA,EAAE,KAAKA,EAAE,WAAW,IAAI,WAAW,OAAO,EAAEA,EAAE,WAAW,IAAI,QAAQ,eAAe,EAAEA,EAAE,WAAW,OAAM,EAAGA,EAAE,SAAS,WAAW,WAAW,EAAEA,EAAE,SAAS,KAAI,CAAE,EAAE,MAAM,UAAU,CAAC,KAAK,OAAO,MAAO,GAAE,MAAM,UAAU,CAAC,OAAO,KAAK,MAAM,EAAE,iBAAiB,UAAU,CAAC,QAAQC,EAAE,KAAK,OAAO,CAAC,EAAEnK,EAAE,KAAK,WAAW,CAAC,EAAEmK,GAAGA,EAAE,aAAanK,GAAGmK,EAAEA,EAAE,WAAW,OAAOD,EAAEC,CAAC,CAAC,CAAC,EAAED,EAAE,GAAG,UAAU,SAASlK,EAAEmzB,EAAEl1B,EAAE,CAAC,IAAIm1B,EAAE,CAAE,EAAC,OAAO,KAAK,KAAK,UAAU,CAAC,IAAIC,EAAEnpB,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,GAAGmpB,EAAE,GAAGrzB,GAAGmzB,GAAG,GAAYE,EAAErzB,CAAC,IAAZ,OAAc,CAAC,GAAOqzB,EAAErzB,CAAC,EAAE,SAAT,GAA0B/B,IAAT,OAAW,IAAIq1B,EAAED,EAAErzB,CAAC,EAAEmzB,EAAE,KAAKl1B,CAAC,MAAO,KAAIq1B,EAAED,EAAErzB,CAAC,EAAEmzB,CAAC,EAAWG,IAAT,QAAYF,EAAE,KAAKE,CAAC,CAAC,OAAOF,EAAE,KAAKC,CAAC,OAAOA,EAAE,IAAIlpB,EAAE,KAAKnK,CAAC,EAAEkK,EAAE,IAAI,EAAE,KAAK,YAAYmpB,CAAC,EAAED,EAAE,KAAKC,CAAC,EAAa,KAAK,UAAhB,UAAyBnpB,EAAE,SAASA,EAAE,IAAI,CAAC,EAAE,KAAK,WAAW,UAAU,EAAEA,EAAE,IAAI,EAAE,IAAIA,EAAE,IAAI,EAAE,IAAG,CAAE,CAAC,CAAC,EAAY,OAAOlK,GAAjB,SAAmBozB,EAAE,OAAO,EAAEA,EAAEA,EAAE,CAAC,EAAEA,CAAC,EAAElpB,EAAE,GAAG,UAAU,YAAYC,EAAE,IAAIxb,EAAEub,EAAE,SAAS,EAAEA,EAAE,UAAU,CAACA,EAAE,mEAAmE,EAAE,UAAS,CAAE,CAAC,CAAC,GAAE,OAAO,MAAM,ECD71R,MAAM6rO,YAA4B/zB,EAAW,CAC3C,SAAU,CACR,MAAMz3N,EAAS,KAAK,QAEpB,EAAEA,CAAM,EAAE,YACV,EAAE,8BAA8B,EAAE,KAAK,QAAS,IAAI,CACrD,CACH,CCXA,MAAMyrP,EAAW,CACf,aAAc,CAAG,CAEjB,UAAUxH,EAAOziP,EAAQquJ,EAAQ,CAC/B,EAAE,KAAKA,EAAQ,CAACtvJ,EAAO2R,IAAQ,CAC7B,MAAM3M,EAAW,IAAM,CAAC/D,EAAQ0Q,CAAG,EAAE,OAAQ0Q,GACpCA,CACR,EAAE,KAAK,GAAG,EAEL8oO,EAAYzH,EAAM,KAAK1+O,CAAQ,EAAE,QAAQ,aAAa,EACtDmmP,EAAU,SAAS,WAAW,EAC9BA,EAAU,OAAO,6BAA8BnrP,EAAM,KAAK,IAAI,UAAW,CACrF,CAAK,CACF,CAED,aAAa0jP,EAAO,CAClBA,EAAM,KAAK,YAAY,EAAE,YAAY,WAAW,EAChDA,EAAM,KAAK,cAAc,EAAE,OAAM,CAClC,CAED,QAAQr6O,EAAU,GAAI,CACpB,MAAM+hP,EAAc/hP,EACdq6O,EAAQ0H,EAAY,KACpB3lE,EAAY2lE,EAAY,UACxBp7C,EAAUo7C,EAAY,QACtBjmP,EAASimP,EAAY,QAAU,OAC/BnqP,EAASmqP,EAAY,QAAU,GAErC,KAAK,aAAa1H,CAAK,EAERA,EAAM,KAAK,IAAI,EAI9B,EAAE,KAAK,CACL,KAAMv+O,EACN,IAAKu+O,EAAM,KAAK,QAAQ,EACxB,KAAMA,EAAM,UAAW,EACvB,QAAU3hP,GAAa,CAAM0jL,GAAWA,EAAU1jL,CAAQ,CAAI,EAC9D,MAAQA,GAAa,CACfA,EAAS,SAAW,KACtB2hP,EAAM,KAAK,oBAAoB,EAAE,KAAK,WAAY,EAAK,EACvD,KAAK,UAAUA,EAAOziP,GAASc,EAAS,cAAgB,CAAE,GAAE,MAAM,GAElE,OAAO,cAAc,QAAS,sBAAsB,EAGlDiuM,GAASA,EAAQjuM,CAAQ,CAC9B,CACP,CAAK,CACF,CACH,CC9CA,MAAMspP,YAAsCn0B,EAAW,CACrD,UAAU,EAAG,CACX,EAAE,eAAc,EAEhB,MAAMo0B,EAAkB,sHAGxBjxK,GACG,IAAI,EAAE,OAAO,IAAI,EACjB,KAAKt4E,GAAY,CAChB,MAAMkmE,EAAQ,SAAS,cAAc,kBAAkB,EACjDsjL,EAAetjL,EAAM,cAAc,gBAAgB,EAEzDsjL,EAAa,UAAYxpP,EAAS,KAElC,MAAMypP,EAAgBD,EAAa,cAAc,gBAAgB,EAC3DE,EAAmB,SAAS,cAAc,KAAK,EACrDA,EAAiB,UAAYH,EAC7BG,EAAiB,UAAU,IAAI,cAAc,EAC7CD,EAAc,YAAYC,CAAgB,EAC1C,EAAExjL,CAAK,EAAE,MAAM,MAAM,CAC7B,CAAO,EACA,MAAOxiE,GAAU,CAChB,OAAO,cAAc,QAAS,sBAAsB,CAC5D,CAAO,CACJ,CAED,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,MAAMvG,EAAO,KAAK,QACZ+oE,EAAQ/oE,EAAK,QAAQ,QAAQ,EAEnC,IAAIgsP,GAAY,EAAC,QAAQ,CACvB,KAAM,EAAE,EAAE,MAAM,EAChB,UAAW,IAAM,CACf,EAAEjjL,CAAK,EAAE,MAAM,MAAM,EACrB,OAAO,cAAc,UAAW,kBAAkB,CACnD,EACD,QAAU15C,GAAS,CACjB,MAAM+gI,EAAS/gI,EAAK,aAAa,OAC3Bk9N,EAAmBvsP,EAAK,cAAc,eAAe,EAEvDowJ,EAAO,SACTm8F,EAAiB,UAAU,IAAI,QAAQ,EAEvCA,EAAiB,UAAU,OAAO,QAAQ,EAG5CvuB,GAAgB,KAAI,CACrB,CACP,CAAK,CACF,CACH,CCvDA,MAAMwuB,WAA2Cx0B,EAAW,CAG1D,SAAU,CACR,MAAMy0B,EAAsB,KAAK,2BAA2B,CAAC,EAE7D,GAAIA,EAAqB,CACvB,MAAMR,EAAYQ,EAAoB,QAAQ,aAAa,EAE3D,KAAK,oBAAoB,iBAAiB,SAAU,SAASx4O,EAAG,CAC1DA,EAAE,OAAO,QAAU,UACrBw4O,EAAoB,MAAQ,GAC5B,EAAER,CAAS,EAAE,SAEb,EAAEA,CAAS,EAAE,OACbQ,EAAoB,MAAQx4O,EAAE,OAAO,MAE/C,CAAO,EAED,KAAK,SAAQ,CACnB,CACG,CAED,UAAW,CACT,MAAM3S,EAAM,KAAK,QAAQ,QAAQ,UAC3BorP,EAAmB,KAAK,QAAQ,cAAc,kBAAkB,EAChEC,EAAwB,KAAK,oBAAoB,MACjDC,EAAuB,KAAK,0BAA0B,OAAS,EAC/DC,EAAgBF,IAA0B,SAAWC,EAAsBD,EAE7EA,IAA0B,OAC5B,KAAK,kBAAkB,UAAU,IAAI,QAAQ,EAC7C,KAAK,kBAAkB,cAAc,UAAU,EAAE,MAAQ,IAEzD,KAAK,kBAAkB,UAAU,OAAO,QAAQ,EAGlDxxK,GACG,IAAI75E,EAAK,CAAE,OAAQ,CAAE,eAAgBurP,CAAa,CAAE,CAAC,EACrD,KAAMhqP,GAAa,CAClB6pP,EAAiB,UAAY7pP,EAAS,IAC9C,CAAO,CACJ,CACH,CA1CEk4L,GADIyxD,GACG,UAAU,CAAC,gBAAiB,sBAAuB,aAAa,GCDzE,MAAMM,YAAuC90B,EAAW,CACtD,SAAU,CACR,KAAK,QAAQ,iBAAiB,QAAU,GAAM,CAC5C,EAAE,eAAc,EAEhB,EAAE,QAAQ,EAAE,MAAM,MAAM,EAExB,MAAM12N,EAAM,KAAK,QAAQ,QAAQ,KAC3BynE,EAAQ,SAAS,cAAc,eAAe,EAC9CnjE,EAAUmjE,EAAM,cAAc,gBAAgB,EAEpDoS,GACG,IAAI75E,CAAG,EACP,KAAMuB,GAAa,CAClB+C,EAAQ,UAAY/C,EAAS,KAE7B,EAAEkmE,CAAK,EAAE,MAAM,MAAM,CAC/B,CAAS,CACT,CAAK,CACF,CACH,CCrBA,MAAMgkL,GAAiB,mBAEvB,MAAMC,WAA2Bh1B,EAAW,CAI1C,SAAU,CACR,KAAK,WAAW,KAAK,GAAG,EACxB,KAAK,oBAAsB,KAAK,kBAChC,KAAK,QAAQ,iBAAiB,SAAU,KAAK,kBAAkB,KAAK,IAAI,CAAC,EACzE,KAAK,QAAQ,iBAAiB+0B,GAAgB,KAAK,kBAAkB,KAAK,IAAI,CAAC,CAChF,CAED,YAAa,CACX,KAAK,QAAQ,oBAAoBA,GAAgB,KAAK,kBAAkB,KAAK,IAAI,CAAC,CACnF,CAED,kBAAkBpsP,EAAO,CACvB,KAAK,oBAAmB,CACzB,CAED,kBAAkBA,EAAO,CACvB,KAAK,WAAW,KAAK,GAAG,CACzB,CAED,QAAS,CACP,KAAK,oBAAmB,CACzB,CAED,IAAI,KAAM,CACR,MAAM+H,EAAW,KAAK,gBAAkB,IAAI,SAAS,KAAK,YAAY,EAAI,IAAI,SACxEu7B,EAAS,IAAI,gBAAgBv7B,CAAQ,EAErCukP,EAAmB,KAAK,YAAY,QAAQ,GAAG,EACrD,OAAO,KAAK,aAAeA,IAAqB,GAAK,IAAM,KAAOhpN,EAAO,SAAQ,EAAK,IAAM,KAAK,WAClG,CAED,WAAW3iC,EAAK,CACd,MAAMA,EAAK,CAAE,QAAS,CAAE,OAAQ,4BAA4B,EAAI,EAC7D,KAAKkoC,GAAKA,EAAE,MAAM,EAClB,KAAKlmC,GAAQ,MAAM,oBAAoBA,CAAI,CAAC,EAC5C,MAAM,IAAM,OAAO,cAAc,QAAS,sBAAsB,CAAC,CACrE,CAED,KAAK4pP,EAAQC,EAAS,CACpB,IAAI7rP,EAAM,KAAK,IACX4rP,IAAS5rP,GAAO,iBAAmB4rP,GACnCC,IAAS7rP,GAAO,cAAgB6rP,GAEpC,KAAK,WAAW7rP,CAAG,CACpB,CAED,YAAY,EAAG,CACb,EAAE,eAAc,EAEhB,MAAM41B,EAAQ,KAAK,YACbylC,EAAO,EAAE,OAAO,aAAa,MAAM,EACzC,KAAK,WAAWA,CAAI,EAEpB,EAAE,YAAY,EAAE,QAAQ,CAAE,UAAW,EAAEzlC,CAAK,EAAE,OAAM,EAAG,GAAG,EAAI,GAAG,CAClE,CAED,sBAAuB,CACrB,MAAMA,EAAQ,KAAK,YACb,CAAE,OAAAg2N,EAAQ,QAAAC,GAAYj2N,EAAM,QAElC,KAAK,YAAY,iBAAiB,kBAAkB,EAAE,QAAS12B,GAAY,CACzE,MAAMoF,EAAUpF,EAAQ,UACxBA,EAAQ,UAAY,GAEpB,MAAMkxB,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,UAAU,IAAI,iBAAiB,EAEnC,MAAM07N,EAAO,SAAS,cAAc,KAAK,EACnCC,EAAkBH,IAAW1sP,EAAQ,QAAQ,OAC7C8sP,EAAY,SAAS,cAAc,KAAK,EAC9CA,EAAU,UAAU,IAAI,iBAAiB,EACzCA,EAAU,UAAY1nP,EAEtBpF,EAAQ,UAAU,IAAI,SAAS,EAC/B4sP,EAAK,UAAU,IAAI,SAAS,EACxBC,GAAiBD,EAAK,UAAU,IAAID,CAAO,EAE/Cz7N,EAAI,YAAY07N,CAAI,EACpB17N,EAAI,YAAY47N,CAAS,EACzB9sP,EAAQ,YAAYkxB,CAAG,EAEvBlxB,EAAQ,iBAAiB,QAAS,IAAM,CACtC,IAAI+sP,EAAK,KACLF,IAAiBE,EAAKJ,IAAY,OAAS,MAAQ,QACvD,KAAK,KAAK3sP,EAAQ,QAAQ,OAAQ+sP,CAAE,CAC5C,CAAO,CAGP,CAAK,EAED,KAAK,QAAQ,iBAAiB,iBAAiB,EAAE,QAASC,GAAa,CACrEA,EAAS,iBAAiB,QAAUv5O,GAAM,CACxCA,EAAE,eAAc,EAChB,KAAK,YAAYA,CAAC,CAC1B,CAAO,CACP,CAAK,CACF,CAED,iBAAkB,CAChB,OAAO,EAAE,SAAS,IAAM,CACtB,KAAM,CAAE,OAAAi5O,EAAQ,QAAAC,CAAO,EAAK,KAAK,YAAY,QAE7C,IAAI7rP,EAAM,KAAK,IACX4rP,IAAS5rP,GAAO,iBAAmB4rP,GACnCC,IAAS7rP,GAAO,cAAgB6rP,GAEpC,KAAK,WAAW7rP,CAAG,CACpB,EAAE,GAAG,CACP,CACH,CAhHEy5L,GADIiyD,GACG,UAAU,CAAC,SAAU,OAAQ,QAAS,SAAU,QAAQ,GAC/DjyD,GAFIiyD,GAEG,SAAS,CAAE,OAAQ,OAAQ,OAAQ,MAAM,GCHlD,MAAMS,YAAsCz1B,EAAW,CACrD,iBAAiB,EAAG,CAClB,MAAMh4N,EAAO,EAAE,OAAO,KAChB0I,EAAW,IAAI,SAAS1I,CAAI,EAElCm7E,GACG,IAAIn7E,EAAK,OAAQ0I,CAAQ,EACzB,MAAOuL,GAAM,OAAO,cAAc,QAAS,sBAAsB,CAAC,CACtE,CACH,CCVA,MAAMy5O,YAAwB11B,EAAW,CACvC,SAAU,CACR,KAAM,CAAE,OAAAyE,EAAQ,MAAAl2N,CAAK,EAAK,KAAK,QAAQ,QAEnCk2N,GAAQ,OAAO,cAAc,UAAWA,CAAM,EAC9Cl2N,GAAO,OAAO,cAAc,QAASA,CAAK,CAC/C,CACH,CCNA,MAAMonP,YAAkC31B,EAAW,CACjD,MAAMr3N,EAAO,CACX,MAAMW,EAAMX,EAAM,OAAO,QAAQ,IAE3BitP,EAAa,KAAK,KAEpBA,IAAe,OACjB,KAAK,UAAUtsP,CAAG,EAElBssP,EAAW,OAAM,CAEpB,CAED,IAAK,CACH,OAAO,KAAK,QAAQ,iBAAiB,kBAAkB,EAAE,CAAC,CAC3D,CAED,UAAUtsP,EAAK,CACb,MAAMA,CAAG,EACN,KAAKuB,GAAY,CAChB,GAAI,CAACA,EAAS,GACZ,MAAM,IAAI,MAAM,6BAA6B,EAE/C,OAAOA,EAAS,MACxB,CAAO,EACA,KAAMS,GAAS,CACd,KAAK,QAAQ,WAAaA,EAC1B,KAAK,GAAI,EAAC,MAAM,QAAU,UAE1B,MAAMuqP,EAAgB,KAAK,KAE3B,SAAS,iBAAiB,QAAUltP,GAAU,CACvC,KAAK,QAAQ,SAASA,EAAM,MAAM,GAAGktP,EAAc,QAClE,CAAS,EAEaA,EAAc,iBAAiB,GAAG,EAE1C,QAAQ/1O,GAAQ,CACpBA,EAAK,iBAAiB,QAAS,IAAM,WAAW,IAAM+1O,EAAc,SAAU,GAAG,CAAC,CAC5F,CAAS,CACT,CAAK,CACF,CACH,CC1CA,MAAMC,WAAwC91B,EAAW,CAGvD,SAAU,CACT,CAED,QAAQr3N,EAAO,CACb,MAAMW,EAAMX,EAAM,OAAO,QAAQ,IAEjCw6E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,KAAK,uBAAuB,UAAYA,EAAS,IACvD,CAAK,CACF,CAED,cAAclC,EAAO,CACnB,KAAK,oBAAoB,EAAI,EAE7B,MAAMotP,EAAU,KAAK,QAAQ,QACvB/J,EAAarjP,EAAM,OAAO,MAE1BqtP,EAAc,CAAC,GADED,EAAQ,iBAAiB,eAAe,CACzB,EAAE,IAAKh/C,GACpC,kBAAoBA,EAAI,QAAQ,aACxC,EACKztM,EAAM,qBAAuB0iP,EAAa,uBAAyBgK,EAAY,KAAK,GAAG,EAE7F7yK,GAAM,IAAI75E,CAAG,EAAE,KAAK,SAASuB,EAAU,CACrC,MAAMorP,EAAYF,EAAQ,iBAAiB,aAAa,EAAE,CAAC,EAEtDE,IAELA,EAAU,UAAYprP,EAAS,KACrC,CAAK,CACF,CAED,sBAAsBlC,EAAO,CAC3B,KAAK,oBAAoB,EAAI,EAE7B,MAAMotP,EAAU,KAAK,QAAQ,QACvB/J,EAAarjP,EAAM,OAAO,MAC1ButP,EAAiBH,EAAQ,iBAAiB,wBAAwB,EACnD,KAAK,uBAAuB,iBAAiB,oBAAoB,EAAE,CAAC,EACzF,MAAMC,EAAc,CAAC,GAAGE,CAAc,EAAE,IAAKn/C,GACpC,kBAAoBA,EAAI,QAAQ,eACxC,EACKztM,EAAM,qBAAuB0iP,EAAa,gCAAkCgK,EAAY,KAAK,GAAG,EAEtG7yK,GAAM,IAAI75E,CAAG,EAAE,KAAK,SAASuB,EAAU,CACrC,MAAMsrP,EAAoBJ,EAAQ,iBAAiB,8BAA8B,EAAE,CAAC,EAE/EI,IAELA,EAAkB,UAAYtrP,EAAS,KAC7C,CAAK,CACF,CAED,qBAAqBlC,EAAO,CAC1B,MAAMG,EAAQH,EAAM,OAAO,MAE3B,KAAK,oBAAoBG,EAAM,SAAW,CAAC,CAC5C,CAED,oBAAoB+iB,EAAU,CAC5B,MAAM+2I,EAAS,KAAK,uBAAuB,iBAAiB,oBAAoB,EAAE,CAAC,EAE/EA,IAAQA,EAAO,SAAW/2I,EAC/B,CAED,WAAWljB,EAAO,CAChBA,EAAM,eAAc,EAEpB,MAAMytP,EAAkBztP,EAAM,OAAO,QAAQ,gBACvC0tP,EAAe,KAAK,QAAQ,QAAQ,iBAAiBD,CAAe,EAAE,CAAC,EACvEpuP,EAAO,SAAS,cAAc,MAAM,EAG1C,CAAC,GAFc,KAAK,uBAAuB,QAEjC,EAAE,IAAK+mF,GAAU/mF,EAAK,YAAY+mF,CAAK,CAAC,EAElD5L,GAAM,CACJ,OAAQ,OACR,IAAKx6E,EAAM,OAAO,QAAQ,IAC1B,KAAM,EAAEX,CAAI,EAAE,gBAAiB,CACrC,CAAK,EAAE,KAAM6C,GAAa,CAChBwrP,GAAc,EAAEA,CAAY,EAAE,OAAOxrP,EAAS,IAAI,CAC5D,CAAK,CACF,CACH,CApFEk4L,GADI+yD,GACG,UAAU,CAAC,kBAAkB,GCFtC,MAAMQ,WAAwCt2B,EAAW,CAGvD,WAAWr3N,EAAO,CAChBA,EAAM,eAAgB,EACtB,MAAM4tP,EAAsB,KAAK,QAAQ,uBAAuB,0BAA0B,EACpE,MAAM,KAAKA,CAAmB,EAAE,KAAK/tP,GAClDA,EAAQ,qBAAqB,OAAO,EAAE,CAAC,EAAE,OACjD,EAGC,SAAS,eAAe,yBAAyB,EAAE,OAAQ,EAE3D,KAAK,wBAAwB,UAAU,OAAO,QAAQ,CAEzD,CACH,CAfEu6L,GADIuzD,GACG,UAAU,CAAE,mBAAqB,GCH1C,IAAAE,GAAA,KAAU,CACR,OAAO,QAAQruP,EAAS+K,EAAU,CAC5B,QAAQ/K,CAAO,IAAM,GACvB+K,IAEA,QAAQ,IAAI,sBAAsB,CAErC,CAED,OAAO,aAAa3E,EAAO2E,EAAU,CAC/B3E,EAAM,SAAS,SAAW,IAC5B2E,EAAS3E,CAAK,EAEd,OAAO,cAAc,QAAS,sBAAsB,CAEvD,CAED,OAAO,YAAYkoP,EAAW,CAC5B,MAAMv3N,EAAQ,SAAS,cAAc,4CAA4Cu3N,CAAS,IAAI,EAE1Fv3N,EACFA,EAAM,cAAc,IAAI,YAAY,kBAAkB,CAAC,EAEvD,QAAQ,MAAM,oDAAoD,CAErE,CACH,EAEA,OAAO,IAAMw3N,GCxBb,MAAMC,WAA8B32B,EAAW,CAG7C,cAAcr3N,EAAO,CACnBA,EAAM,eAAc,EAEpB,MAAMooE,EAAQ,KAAK,gBACbsjL,EAAe,KAAK,mBAE1B,GAAI,CAACA,EAAc,MAAO,GAE1BlxK,GACG,IAAIx6E,EAAM,OAAO,IAAI,EACrB,KAAMkC,GAAa,CAClBwpP,EAAa,UAAYxpP,EAAS,KAElC,WAAW,IAAM,CACf,EAAEkmE,CAAK,EAAE,MAAM,MAAM,CACtB,EAAE,GAAG,CACd,CAAO,CACJ,CAED,OAAOpoE,EAAO,CACZA,EAAM,eAAc,EAEpB,MAAMooE,EAAQ,KAAK,gBACb/oE,EAAOW,EAAM,OACbiuP,EAAqB5uP,EAAK,cAAc,+DAA+D,EAE7G,GAAI,CAAC,aAAc,kBAAkB,EAAE,SAAS4uP,GAAA,YAAAA,EAAoB,KAAK,EAAG,CAC1E,MAAMC,EAAgB,KAAK,mCAE3B,GAAIA,EAAc,OAAS,EAAG,CAK5B,MAAM3zD,EAAU;AAAA,EAJW2zD,EAAc,IAAK1rO,GACrC,GAAGA,EAAG,cAAc,WAAW,MAAMA,EAAG,QAAQ,UAAU,EAClE,EAIkC,KAAK;AAAA,CAAI,EAE5C,GAAI,CAAC,QAAQ+3K,CAAO,EAAG,MAAO,EAC/B,CACF,CAED,MAAMxyL,EAAW,IAAI,SAAS1I,CAAI,EAElCm7E,GACG,KAAKn7E,EAAK,OAAQ0I,EAAU,CAC3B,QAAS,CAAE,mBAAoB,gBAAkB,CACzD,CAAO,EACA,KAAM7F,GAAa,CAClB,EAAEkmE,CAAK,EAAE,MAAM,MAAM,EACjBlmE,EAAS,KAAK,iBAChB,KAAK,cAAcA,EAAS,KAAK,gBAAgB,EAEjD6rP,GAAI,YAAY,0BAA0B,CAEpD,CAAO,EACA,MAAOnoP,GAAU,CAChB,QAAQ,IAAIA,CAAK,EACjB,KAAK,aAAaA,EAAM,SAAUwiE,CAAK,CAC/C,CAAO,CACJ,CAED,cAAc2O,EAAM,CAClByD,GAAM,IAAIzD,EAAM,CAAE,QAAS,CAAE,OAAU,6BAAgC,GAAE,KAAMluC,GAAM,CACnF,MAAM,oBAAoBA,EAAE,IAAI,CACtC,CAAK,EAAE,MAAOjjC,GAAU,OAAO,cAAc,QAAS,sBAAsB,CAAC,CAC1E,CAED,eAAgB,CACd,MAAO,CAAC,GAAG,KAAK,uBAAuB,EAAE,OAAQ4c,GAAOA,EAAG,OAAO,CACnE,CAED,kCAAmC,CACjC,MAAO,CAAC,GAAG,KAAK,cAAa,CAAE,EAAE,OAAQA,GAAOA,EAAG,QAAQ,YAAc,aAAa,CACvF,CAED,aAAatgB,EAAUkmE,EAAO,CACxBlmE,EAAS,SAAW,MACtBkmE,EAAM,cAAc,gBAAgB,EAAE,UAAYlmE,EAAS,KAE9D,CAED,gBAAiB,CACf,KAAK,mBAAmB,EAAI,CAC7B,CAED,kBAAmB,CACjB,KAAK,mBAAmB,EAAK,CAC9B,CAED,mBAAmBisP,EAAS,CAC1B,KAAK,wBAAwB,QAAS3rO,GAAOA,EAAG,QAAU2rO,CAAO,CAClE,CACH,CA/FE/zD,GADI4zD,GACG,UAAU,CAAC,YAAa,eAAgB,kBAAkB,GCAnE,IAAII,GAAkB,OAAO,OAAU,KAAe,OAAO,iBAAmB,OAAO,gBAAgB,KAAK,MAAM,GAAK,OAAO,SAAY,KAAe,OAAO,SAAS,iBAAmB,YAAc,SAAS,gBAAgB,KAAK,QAAQ,EAC5OC,IAAQ,IAAI,WAAW,EAAE,EAEd,SAASC,KAAM,CAC5B,GAAI,CAACF,GACH,MAAM,IAAI,MAAM,0GAA0G,EAG5H,OAAOA,GAAgBC,GAAK,CAC9B,CCVA,IAAIE,GAAY,GAEhB,QAASvqP,GAAI,EAAGA,GAAI,IAAK,EAAEA,GACzBuqP,GAAUvqP,EAAC,GAAKA,GAAI,KAAO,SAAS,EAAE,EAAE,OAAO,CAAC,EAGlD,SAASwqP,IAAYC,EAAKtqN,EAAQ,CAChC,IAAIngC,EAAImgC,GAAU,EACduqN,EAAMH,GAEV,MAAO,CAACG,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG,IAAK0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG,IAAK0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG,IAAK0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG,IAAK0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,EAAG0qP,EAAID,EAAIzqP,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CACrR,CCZA,SAAS2qP,GAAGnlP,EAASilP,EAAKtqN,EAAQ,CAChC,IAAIngC,EAAIyqP,GAAOtqN,GAAU,EAErB,OAAO36B,GAAW,WACpBilP,EAAMjlP,IAAY,SAAW,IAAI,MAAM,EAAE,EAAI,KAC7CA,EAAU,MAGZA,EAAUA,GAAW,GACrB,IAAIolP,EAAOplP,EAAQ,SAAWA,EAAQ,KAAO8kP,OAK7C,GAHAM,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,GAC3BA,EAAK,CAAC,EAAIA,EAAK,CAAC,EAAI,GAAO,IAEvBH,EACF,QAASvoM,EAAK,EAAGA,EAAK,GAAI,EAAEA,EAC1BuoM,EAAIzqP,EAAIkiD,CAAE,EAAI0oM,EAAK1oM,CAAE,EAIzB,OAAOuoM,GAAOD,IAAYI,CAAI,CAChC,CCtBA,MAAMC,EAAS,CACb,OAAO,IAAIngO,EAAMllB,EAAU,GAAI,CAC7B,MAAMe,EAAWf,EAAQ,SACnBslP,EAAa,SAAS,eAAe,YAAY,EAGjDC,EADS,IAAI,YACO,gBAAgBrgO,EAAM,WAAW,EACrDsgO,EAAWD,EAAW,cAAc,KAAK,EAEzCE,EAAaC,KAEnB,OAAIF,GACFA,EAAS,aAAa,WAAYC,CAAU,EAE9CH,EAAW,YAAYC,EAAW,IAAI,EAElCxkP,GAAYA,IAET,SAAS,cAAc,iBAAmB0kP,EAAa,IAAI,CACnE,CACH,CClBA,MAAME,WAA8B93B,EAAW,CAG7C,+BAA+Br3N,EAAO,CACpCA,EAAM,eAAc,EAEpB,MAAMovP,EAAY,sBAAwBpvP,EAAM,OAAO,GAAK,kCAE5Dw6E,GAAM,KAAK40K,CAAS,EAAE,KAAMltP,GAAa,CACvC,KAAK,aAAa,UAAYA,EAAS,KAAK,OAAS,8BAAgC,yBAC3F,CAAK,CACF,CAED,kBAAkB,EAAG,CACnB,EAAE,eAAc,EAEhB,MAAMvB,EAAM,KAAK,QAAQ,QAAQ,IAEjC65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,oBAAsB15C,GAAS,WACpD,MAAMpmB,GAAKm/F,GAAAnnG,GAAAD,EAAAquB,EAAK,SAAL,YAAAruB,EAAa,WAAb,YAAAC,EAAuB,OAAvB,YAAAmnG,EAA6B,GACvB,MAAM,KAAK,SAAS,uBAAuB,cAAcn/F,CAAE,EAAE,CAAC,EAEtE,QAASzI,GAAYA,EAAQ,OAAQ,GAE9C,EAAEuoE,CAAK,EAAE,MAAM,MAAM,EAErB,WAAW,IAAM,CACC,SAAS,cAAc,oCAAoC,GAC9D,EAAE,MAAM,EAAE,SAAS,YAAY,CAC7C,EAAE,GAAG,CACd,CAAO,CACP,CAAK,CACF,CACH,CAnCEgyH,GADI+0D,GACG,UAAU,CAAC,QAAQ,GCFb,MAAKE,WAASh4B,EAAW,CAGtC,SAAU,CACR,KAAK,KAAO,GACZ,KAAK,WAAa,GAClB,KAAK,UAAY,IAClB,CAED,WAAW,EAAG,CACZ,MAAMp9D,EAAS,EAAE,OAMjB,GAJAA,EAAO,SAAW,GAElB,KAAK,KAAO,CAAC,KAAK,KAEd,KAAK,KAAM,CACbA,EAAO,UAAY,uBACnB,KAAK,aAAa,UAAU,OAAO,QAAQ,EAE3C,MAAMq1F,EAAc,EAAE,OAAO,QAAQ,YAEhC,KAAK,WAAW,eAAeA,CAAW,IAC7C,KAAK,WAAWA,CAAW,EAAI,SAAS,eAAe,cAAc,EAAE,WAGzE,MAAMhlC,EAAU,IAAM,CACpBrwD,EAAO,SAAW,GAClB,KAAK,aAAa,UAAU,IAAI,QAAQ,EACxC,KAAK,WAAW,UAAY,KAAK,UACjC,MAAMs1F,EAAc,KAAK,WAAW,iBAAiB,QAAQ,EAC7D,KAAK,IAAIA,EAAYA,EAAY,OAAQ,CAAC,CAAC,CAC5C,EAEG,KAAK,UACPjlC,IAEA9vI,GAAM,IAAI,EAAE,OAAO,QAAQ,QAAQ,EAAE,KAAKt4E,GAAY,CACpD,KAAK,UAAYA,EAAS,KAC1BooN,GACV,CAAS,CAET,MACMrwD,EAAO,UAAY,yBACnB,KAAK,WAAW,UAAY,GAC5B,KAAK,IAAI,EAAE,MAAM,EACjBA,EAAO,SAAW,EAErB,CAED,QAAQ,EAAG,CACT,EAAE,eAAc,EAChB,KAAK,IAAI,EAAE,MAAM,CAClB,CAED,IAAIr6J,EAAQ,CACV,MAAMqT,EAAY,SAAS,eAAe,cAAc,EAClDu8O,EAA8B,SAAS,eAAe,8BAA8B,EACpF1lP,EAAOlK,EAAO,QAAQ,KACtB0vP,EAAc1vP,EAAO,QAAQ,YAC7B4iB,EAAK,KAAK,QAEhB5iB,EAAO,UAAU,IAAI,iBAAiB,EACtCqT,EAAU,UAAU,IAAI,SAAS,EAEjC,MAAMw8O,EAAkBvmP,GAAMsZ,EAAG,iBAAiB,UAAUtZ,CAAC,EAAE,EAAE,QAAQsZ,GAAMA,EAAG,UAAU,OAAOtZ,CAAC,CAAC,EAE/FwmP,EAAc/sP,GAAS,CAC3BsQ,EAAU,UAAU,OAAO,SAAS,EACpCA,EAAU,UAAYtQ,EAEtB8sP,EAAe,gBAAgB,EAC/BA,EAAe,iBAAiB,EAEhC7vP,EAAO,UAAU,IAAI,gBAAgB,EAErC,MAAM+vP,EAAc,SAAS,cAAc,uBAAuB,EAC5DC,EAA2B,SAAS,cAAc,8CAA8C,EAChGC,EAAmB,SAAS,cAAc,qBAAqB,EAErE,CAACF,EAAaC,EAA0BC,CAAgB,EAAE,QAASrtO,GAAO,CACpEA,IACFA,EAAG,MAAM,QAAU,KAAK,KAAO,OAAS,QAElD,CAAO,CACF,EAEKstO,EAAiC,IAAM,CACvCR,EACFE,EAA4B,UAAU,IAAI,QAAQ,EAElDA,EAA4B,UAAU,OAAO,QAAQ,CAExD,EAEG,KAAK,WAAW,eAAeF,CAAW,EAC5CI,EAAW,KAAK,WAAWJ,CAAW,CAAC,EAEvC90K,GAAM,IAAI1wE,CAAI,EAAE,KAAK5H,GAAY,CAC/B,KAAK,WAAWotP,CAAW,EAAIptP,EAAS,KACxCwtP,EAAWxtP,EAAS,IAAI,CAChC,CAAO,EAGCstP,GAA6BM,GAClC,CACH,CAzGE11D,GADkBi1D,GACX,UAAU,CAAC,OAAQ,QAAQ,GCFpC,MAAMU,EAAI,CACR,OAAOznP,EAAIiC,EAAU,CAEnB,MAAMyxD,EADM,SAAS,cAAc,8BAA8B,EAChD,aAAa,MAAM,EAC9Bg0L,EAAS,SAAS,eAAe,cAAc,EAC/CC,EAAY,CAAE,OAAQ,cAE5B,QAAQ,IAAI,CACVz1K,GAAM,IAAIxe,EAAM,CAAE,OAAQi0L,EAAW,QAAS,CAAE,mBAAoB,gBAAgB,EAAI,EACxFz1K,GAAM,IAAIw1K,EAAO,QAAQ,IAAK,CAAE,QAAS,CAAE,mBAAoB,gBAAgB,EAAI,CACpF,GAAE,KAAK,CAAC,CAAC9tP,EAAUk/O,CAAS,IAAM,CACjC,SAAS,eAAe,YAAY,EAAE,UAAYl/O,EAAS,KAE3D,MAAMguP,EAAY,SAAS,eAAe5nP,CAAE,EACxC4nP,GAAWA,EAAU,eAAe,CAAE,SAAU,QAAQ,CAAE,EAE9DF,EAAO,UAAY5O,EAAU,KAEzB72O,GAAUA,GACpB,CAAK,EACE,MAAM,IAAM,CACX,MAAMwmB,EAAM,SAAS,cAAc,KAAK,EACxCA,EAAI,UAAY,qBAChBA,EAAI,YAAc,uBAElB,MAAMo/N,EAAmB,SAAS,eAAe,YAAY,EAC7DA,EAAiB,UAAY,GAC7BA,EAAiB,YAAYp/N,CAAG,EAE5BxmB,GAAUA,GACtB,CAAO,CACJ,CACH,CC1BA,MAAA6lP,WAA6B/4B,EAAW,CAGtC,SAAU,CACR,KAAK,qBAAqB,CAC5B,CAEA,sBAAuB,CACjBp9D,MAAS,SAAS,uBAAuB,iBAAiB,EAC1Do2F,EAAe,SAAS,eAAe,oBAAoB,EAE3DA,GAAgBp2F,GAAUA,EAAO,OAAS,IACxCo2F,EAAa,UAAU,SAAW,EACpCp2F,EAAO,CAAC,EAAE,MAAM,QAAU,QAE1BA,EAAO,CAAC,EAAE,MAAM,QAAU,OAGhC,CAEA,MAAM,EAAG,CACP,EAAE,eAAe,EAEjB,MAAMA,EAAS,EAAE,OACXj+F,EAAOi+F,EAAO,QAAQ,IACtBq2F,EAAcr2F,EAAO,QAAQ,YAEnCA,EAAO,SAAW,GAClBojE,GAAgB,KAAK,EAGlB7iJ,GAAA,KAAKxe,EAAM,CAAE,aAAcs0L,EAAa,EACxC,KAAMpuP,GAAa,CACd,KAAK,YACF,cAAS,OAAO,YAAa,IAAM,CACtCm7N,GAAgB,KAAK,EACtB,EAEM,gBAAWn7N,EAAS,KAAK,UAClC,CACD,EACA,MAAO0D,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,EACvDy3N,GAAgB,KAAK,EACrBpjE,EAAO,SAAW,GACrB,CACH,CAEA,+BAA+Br6J,EAAQ,CACrC,KAAK,YAAYA,CAAM,CACzB,CAEA,aAAa,EAAG,CACd,EAAE,eAAe,EACZ,iBAAY,EAAE,MAAM,CAC3B,CAEA,KAAK,EAAG,CACN,EAAE,eAAe,EAEjB,MAAMq6J,EAAS,EAAE,OACX,CAAE,IAAAt5J,CAAQ,IAAE,OAAO,QAEzB,GAAIs5J,EAAO,SAAiB,SAC5B,KAAK,cAAcA,CAAM,EAEzBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CACvB2sP,GAAA,IAAI3sP,EAAS,IAAI,EAC1B,WAAW,IAAM,KAAK,aAAa+3J,CAAM,EAAG,GAAG,EAChD,EAAE,MAAO3mJ,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB,KAAK,aAAa2mJ,CAAM,CAC1B,CACD,CACH,CAEA,kBAAkB,EAAG,CACnB,EAAE,eAAe,EAEjB,MAAMA,EAAS,EAAE,OACX,CAAE,IAAAt5J,CAAQ,IAAE,OAAO,QAEzB,GAAIs5J,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAiBuB,GAAA,CAC9B,MAAMkmE,EAAOymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CACvD,WAAW,IAAM,CAAE+3J,EAAO,SAAW,IAAS,GAAG,GAChD,EAEC7xF,EAAA,iBAAiB,oBAAqB,IAAM,CAC3C,cAAS,OAAO,YAAa,IAAM,CACpC,EAAAA,CAAK,EAAE,MAAM,MAAM,EACrBi1J,GAAgB,KAAK,EACtB,EACF,EACF,EAAE,MAAM,IAAM,CACbpjE,EAAO,SAAW,GACnB,CACH,CAEA,OAAO,EAAG,CACN,iBAEF,MAAMA,EAAS,EAAE,OACXj+F,EAAOi+F,EAAO,QAAQ,IAE5BA,EAAO,SAAW,GAClBojE,GAAgB,KAAK,EAEZ,cAAK,QAAQ,kBAAoB,OAE1C7iJ,GACG,OAAOxe,CAAI,EACX,KAAM95D,GAAa,CACX,gBAAS,KAAK,QAAQ,kBAC7B,KAAK,SAAS,OAAO,eAAgB,IAAMm7N,GAAgB,MAAM,EAClE,EACA,MAAOz3N,GAAU,CACT,gBAAS,KAAK,QAAQ,kBAC7By3N,GAAgB,KAAK,EACrB,OAAO,cAAc,QAASz3N,EAAM,SAAS,KAAK,KAAK,EACvDq0J,EAAO,SAAW,GACnB,CACL,CAEA,kBAAkB,EAAG,CACnB,EAAE,eAAe,EAEjB,MAAMA,EAAS,EAAE,OACX,CAAE,IAAAt5J,CAAQ,IAAE,OAAO,QAEzB,GAAIs5J,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CACxD,WAAW,IAAM,CAAE+3J,EAAO,SAAW,IAAS,GAAG,GAChD,EAEC7xF,EAAA,iBAAiB,oBAAqB,IAAM,CAC3C,cAAS,OAAO,YAAa,IAAM,CACpC,EAAAA,CAAK,EAAE,MAAM,MAAM,EACrBi1J,GAAgB,KAAK,EACtB,EACF,EACF,EAAE,MAAO/pN,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB2mJ,EAAO,SAAW,EACpB,CACD,CACH,CAEA,OAAO,EAAG,CACR,EAAE,eAAe,EAEjB,MAAMA,EAAS,EAAE,OACX,CAAE,IAAAt5J,EAAK,SAAA4vP,CAAS,EAAI,EAAE,OAAO,QAEnC,GAAIt2F,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CAC1D,WAAW,IAAM,CAAE+3J,EAAO,SAAW,IAAS,GAAG,GACjD,EAEI7xF,EAAA,iBAAiB,oBAAqB,IAAM,CAC9C,EAAAA,CAAK,EAAE,MAAM,MAAM,EAEjB,KAAK,YACF,cAAS,OAAO,GAAI,IAAM,CAC7Bi1J,GAAgB,KAAK,EACtB,EAED,KAAK,cAAckzB,CAAQ,CAC7B,CACD,EACF,EAAE,MAAOj9O,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB2mJ,EAAO,SAAW,EACpB,CACD,CACH,CAEA,oBAAoB,EAAG,CACrB,EAAE,eAAe,EAEjB,MAAMA,EAAS,EAAE,OACX,CAAE,IAAAt5J,EAAK,SAAA4vP,CAAS,EAAI,EAAE,OAAO,QAEnC,GAAIt2F,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CACxD,WAAW,IAAM,CAAE+3J,EAAO,SAAW,IAAS,GAAG,GACjD,EAEE7xF,EAAA,iBAAiB,oBAAqB,IAAM,CAC9C,EAAAA,CAAK,EAAE,MAAM,MAAM,EAEjB,KAAK,YACF,cAAS,OAAO,GAAI,IAAM,CAC7Bi1J,GAAgB,KAAK,EACtB,EAED,KAAK,cAAckzB,CAAQ,CAC7B,CACD,EACF,EAAE,MAAOj9O,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB2mJ,EAAO,SAAW,EACpB,CACD,CACH,CAEA,0BAA0B,EAAG,CAC3B,EAAE,eAAe,EAEjB,MAAMA,EAAS,EAAE,OACX,CAAE,IAAAt5J,CAAQ,IAAE,OAAO,QAEzB,GAAIs5J,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CAC1D,WAAW,IAAM,CAAE+3J,EAAO,SAAW,IAAS,GAAG,GACjD,EAEI7xF,EAAA,iBAAiB,oBAAqB,IAAM,CAC3C,cAAS,OAAO,GAAI,IAAM,CAC3B,EAAAA,CAAK,EAAE,MAAM,MAAM,EACrBi1J,GAAgB,KAAK,EACtB,EACF,EACF,EAAE,MAAO/pN,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB2mJ,EAAO,SAAW,EACpB,CACD,CACH,CAEA,+CAA+Cp6J,EAAS,CAClD,OAAO,SAAS,KAAK,UAAU,CAAC,IAAM,sBAAsB,KAAK,0BAA0BA,CAAO,CACxG,CAEA,4BAA4B,EAAG,CAC7B,EAAE,eAAe,EACZ,+BAA0B,EAAE,MAAM,CACzC,CAEA,0BAA0Bo6J,EAAQ,CAC1B,MAAE,IAAAt5J,CAAI,EAAIs5J,EAAO,QAEvB,GAAIA,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CAC1D,WAAW,IAAM,CAAE+3J,EAAO,SAAW,IAAS,GAAG,GACjD,EAEI7xF,EAAA,iBAAiB,oBAAqB,IAAM,CAC3C,cAAS,OAAO,GAAI,IAAM,CAC3B,EAAAA,CAAK,EAAE,MAAM,MAAM,EACrBi1J,GAAgB,KAAK,EACtB,EACF,EACF,EAAE,MAAO/pN,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB2mJ,EAAO,SAAW,EACpB,CACD,CACH,CAEA,oBAAqB,CACjB,+BAA6B,EAAE,MAAM,MAAM,CAC/C,CAEA,WAAWj6J,EAAO,CAChBA,EAAM,eAAe,EAErBq9N,GAAgB,KAAK,CAAC,EACtB,MAAMz9N,EAASI,EAAM,OACfX,EAAOO,EAAO,QAAQ,MAAM,EAC5Be,EAAMtB,EAAK,aAAa,QAAQ,EAAI,QACpCqvB,EAAO,IAAI,SAASrvB,CAAI,EAEvBO,EAAA,aAAa,WAAY,UAAU,EAE1C46E,GACG,MAAM75E,EAAK+tB,CAAI,EACf,KAAK,IAAM,CACH,oBAAa,OAAO,GAAO,CAAE,UAAW,IAAM2uM,GAAgB,KAAK,EAAG,EAC9E,EACA,MAAOz3N,GAAU,OAChBy3N,GAAgB,KAAK,EACrBz9N,EAAO,gBAAgB,UAAU,IAE7BS,EAAAuF,EAAM,WAAN,YAAAvF,EAAgB,UAAW,IAC7B,OAAO,cAAc,QAASuF,EAAM,SAAS,KAAK,MAAM,EAEjD,qBAAc,QAAS,sBAAsB,CACtD,CACD,CACL,CAEA,oBAAoB,EAAG,CACrB,EAAE,eAAe,EAEjB,KAAM,CAAE,IAAAjF,CAAQ,IAAE,OAAO,QAEnB,MAAAA,EAAK,CAAE,SAAU,SAAS,EAAE,KAAMuB,GAAa,CAC/C,GAAAA,EAAS,OAAS,iBACb,gBAAS,KAAOA,EAAS,QAEzB,QAAAA,CACT,CACD,EAAE,MAAOoR,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB,OAAO,SAAW,EACpB,CACD,CACH,CAEA,cAAc,EAAG,CACf,GAAI,CAAC,KAAK,YAAoB,SAE9B,EAAE,eAAe,EAEZ,cAAS,OAAO,GAAI,IAAM,CAEb,SAAS,eADV,cAC+B,EAEtC,eAAe,CAAE,SAAU,QAAU,GAC9C,CACH,CAEA,IAAI,UAAW,CACb,OAAO,IAAIk9O,EACb,CAEA,IAAI,aAAc,CACT,gBAAS,eAAe,cAAc,IAAM,IACrD,CAEA,YAAYv2F,EAAQ,CACZ,MAAAj+F,EAAOi+F,EAAO,QAAQ,IACtBxpJ,EAAW,SAAS,eAAe,oBAAoB,EAEzD,GAAAA,EAAS,YAAc,GAAI,CAC7BA,EAAS,eAAe,CAAC,SAAU,QAAS,GAC5C,MACF,CAEA,GAAIwpJ,EAAO,SAAiB,SAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAIxe,CAAI,EAAE,KAAM95D,GAAa,CACjC,SAAS,eAAe,oBAAoB,EAAE,UAAYA,EAAS,KAE7D,MAAAsgB,EAAK,SAAS,eAAe,wBAAwB,EAErDiuO,EAAc,IAAMhlC,GAAA,WAAO,qBAA4B,uBAE7D,GAAIjpM,EAAI,CACA/R,QAAW,SAAS,eAAe,oBAAoB,EAClD,eAAMA,EAAS,eAAe,CAAC,SAAU,QAAS,GAAG,GAAG,EACnEwpJ,EAAO,SAAW,GAEZ,MAAAxiG,EAAYo0J,OAAK4kC,CAAW,EACzB7hL,GAAA,OAAQ+V,EAAAmnI,EAAA,UAAS,SAAUnnI,EAAC,MAAG,IAAI,SAACA,EAAAltB,EAAA,CAAS,EAAE,GAAaj1C,CAAE,CACzE,EACD,EAAE,MAAO5c,GAAU,CACX,qBAAc,QAAS,sBAAsB,EACpDq0J,EAAO,SAAW,GACnB,CACH,CAEA,cAAcA,EAAQ,CACpBA,EAAO,SAAW,GAClBA,EAAO,aAAa,WAAY,UAAU,CAC5C,CAEA,aAAaA,EAAQ,CACnBA,EAAO,SAAW,GAClBA,EAAO,gBAAgB,UAAU,CACnC,CAEA,cAAcs2F,EAAU,CACtB/1K,GAAM,IAAI+1K,EAAU,CAAE,QAAS,CAAE,OAAU,6BAAgC,GAAE,KAAM1nN,GAAM,CACjF,0BAAoBA,EAAE,IAAI,EACjC,EAAE,MAAM,IAAM,OAAO,cAAc,QAAS,sBAAsB,CAAC,CACtE,CAEA,qBAAqB,EAAG,CACtB,EAAE,eAAe,EAGX,MAAAmzB,EADS,EAAE,OACG,aAAa,MAAM,EACjC00L,EAAM,SAAS,cAAc,iCAAiC,EAEpE,GAAIA,EAAK,CACPA,EAAI,MAAM,EAEV,WAAW,IAAM,CACT,MAAAjgP,EAAW,SAAS,eAAe,yBAAyB,EAE9DA,IAAa,MAAMA,EAAS,eAAe,CAAE,SAAU,QAAU,IACpE,GAAG,EAEN,MACF,CAEA,OAAO,SAAS,KAAOurD,CACzB,CACF,CA/aEo+H,GADFg2D,GACS,UAAU,CAAC,kBAAmB,iCAAiC,GCPzD,MAAKO,WAASt5B,EAAW,CAGtC,SAAU,CACR,KAAK,MAAQ,EAEb,SAAS,iBAAiB,qBAAuBr3N,GAAU,CACzD,KAAK,YAAYA,EAAM,MAAM,CACnC,CAAK,EAED,SAAS4wP,EAAoBpuO,EAAI,CAC3B,OAAO,QAAW,YAAcA,aAAc,SAC9CA,EAAKA,EAAG,CAAC,GAGb,IAAIwhB,EAAOxhB,EAAG,wBACd,OACIwhB,EAAK,KAAO,GACZA,EAAK,MAAQ,GACbA,EAAK,SAAW,OAAO,aAAe,SAAS,gBAAgB,eAC/DA,EAAK,QAAU,OAAO,YAAc,SAAS,gBACxC,YAEV,CAED,EAAE,WAAW,EAAE,GAAG,QAAS,UAAW,CACpC,IAAI/wB,EACJA,EACG,EAAE,IAAI,EAAE,GAAG,QAAQ,EAEhB,EAAE,IAAI,EAAE,OAAQ,EAAC,OAAM,EADvB,EAAE,IAAI,EAAE,GAAG,UAAU,EAAI,EAAE,IAAI,EAAE,SAAS,OAAQ,EAAC,OAAQ,EAAG,EAAE,IAAI,EAAE,OAAQ,EAAC,OAAQ,EAAC,OAAQ,EAAC,OAAQ,EAE1G29O,EAAoB39O,CAAS,GAChCA,EAAU,CAAC,EAAE,gBAErB,CAAK,CACF,CAED,YAAYslB,EAAO,CACjB,KAAK,OAASA,EACd,KAAK,eAAe,SAAY,KAAK,MAAQ,CAC9C,CAED,eAAe,EAAG,CAChB,MAAMs4N,EAAW,EAAE,OAAO,QAAQ,WAAW,EACvCC,EAAsBD,EAAS,QAAQ,oBAE7C,GAAIC,IAAwB,GAAI,OAEhC,MAAMC,EAAgBD,EAAoB,MAAM,GAAG,EAEnD,KAAK,cACF,OAAQtuO,GAAOA,EAAG,QAAQ,UAAYquO,EAAS,QAAQ,EAAE,EACzD,IAAK15O,GAAS,CACb,IAAI+L,EAAW,KACX8tO,EAAc75O,EAAK,iBAAiB,yBAAyB,EAE7D45O,EAAc,SAAS,EAAE,OAAO,KAAK,GACvC7tO,EAAW,GACX/L,EAAK,UAAU,OAAO,MAAM,IAE5B+L,EAAW,GACX/L,EAAK,UAAU,IAAI,MAAM,GAG3B,CAAC,GAAG65O,CAAW,EAAE,IAAKxuO,GAAOA,EAAG,SAAWU,CAAQ,CAC3D,CAAO,CACJ,CAED,cAAc,EAAG,CACf,GAAI,KAAK,WAAW,cAAe,GAAI,GAAM,OAE7C,EAAE,eAAc,EAEhB,MAAMtjB,EAAS,EAAE,KAAK,WAAW,iBAAiB,UAAU,CAAC,EAAE,CAAC,EAC1DqxP,EAAUrxP,EAAO,QAAQ,WAAW,EAI1C,GAFAA,EAAO,eAAc,EAEjBqxP,EAAS,CACX,MAAMC,EAAU,EAAE,yBAAyBD,EAAQ,EAAE,IAAI,EAErDC,GAASA,EAAQ,IAAI,MAAM,CAChC,CACF,CACH,CAnFE92D,GADkBu2D,GACX,UAAU,CAAC,WAAY,SAAU,MAAM,GCChD,MAAMQ,WAA2B95B,EAAW,CAC1C,SAAU,CACR,KAAK,WAAa,GAClB,KAAK,OAAS,KAAK,QAAQ,QAAQ,OACnC,KAAK,MAAQ,EAAE,KAAK,OAAO,EAC3B,KAAK,KAAO,KAAK,QAAQ,cAAc,MAAM,EAC7C,KAAK,mBAAqB,KAAK,QAAQ,iBAAiB,qBAAqB,EAEzE,KAAK,MACP,KAAK,KAAK,iBAAiB,SAAW,GAAM,CAC1C,EAAE,eAAc,EAChB,KAAK,SAAQ,CACrB,CAAO,EAGH,KAAK,MAAM,MAAM,MAAM,EACvB,KAAK,MAAM,MAAM,CAAE,SAAU,SAAU,SAAU,EAAK,CAAE,EAExD,KAAK,MAAM,GAAG,gBAAkB,GAAM,CAChC,KAAK,YAAY,EAAE,eAAc,CAC3C,CAAK,EAED,KAAK,MAAM,GAAG,kBAAoB,GAAM,CACtC,EAAE,eAAc,EAChB,KAAK,QAAQ,QACnB,CAAK,CACF,CAED,UAAW,CACT,MAAMh4N,EAAO,KAAK,KACZsB,EAAMtB,EAAK,aAAa,QAAQ,EAGtC,GADI,KAAK,YACLsB,IAAQ,KAAM,MAAO,GAEzB,KAAK,cAAc,EAAI,EACvB,KAAK,aAAY,EAEjB,MAAM6I,EAAU,CACd,OAAQnK,EAAK,aAAa,QAAQ,GAAK,OACvC,IAAKA,EAAK,aAAa,QAAQ,EAC/B,KAAM,IAAI,SAASA,CAAI,CACxB,EAEDm7E,GAAMhxE,CAAO,EACV,KAAMtH,GAAa,KAAK,UAAUA,CAAQ,CAAC,EAC3C,MAAO0D,GAAU,CAChB,KAAK,cAAc,EAAK,EAExB,KAAM,CAAE,SAAA1D,CAAU,EAAG0D,EAEjB1D,EAAS,SAAW,IACtB,KAAK,WAAWA,EAAS,MAAQ,IAAI,MAAM,EAE3C,OAAO,cAAc,QAAS,sBAAsB,EAGtD,KAAK,SAAS0D,CAAK,CAC3B,CAAO,CACJ,CAED,UAAU6pJ,EAAQ,CAChB,MAAMruJ,EAAS,KAAK,OACd/B,EAAO,KAAK,KAElB,OAAO,KAAKowJ,CAAM,EAAE,QAAS39I,GAAQ,CAEnC,MAAM0jF,EADQi6D,EAAO39I,CAAG,EACD,KAAK,IAAI,EAEhC,GAAIA,IAAQ,OAAQ,CAClB,MAAMs/O,EAAgB/xP,EAAK,cAAc,qBAAqB,EAE1D+xP,IACFA,EAAa,UAAY,6BAA6B57J,CAAQ,UAExE,KAAa,CACL,MAAMrwF,EAAW,IAAM,CAAC/D,EAAQ0Q,CAAG,EAAE,OAAO0Q,GAAMA,CAAE,EAAE,KAAK,GAAG,EAG9D,GAFgBnjB,EAAK,cAAc8F,CAAQ,IAE3B,KAAM,OAEtB,MAAMmmP,EAAYjsP,EAAK,cAAc8F,CAAQ,EAAE,QAAQ,aAAa,EAEpE,GAAImmP,IAAc,KAAM,OAExB,MAAM+F,EAAe,SAAS,cAAc,MAAM,EAClDA,EAAa,UAAY,cACzBA,EAAa,YAAc77J,EAE3B81J,EAAU,UAAU,IAAI,WAAW,EACnCA,EAAU,YAAY+F,CAAY,CACnC,CACP,CAAK,CACF,CAED,cAAe,CACb,MAAMhyP,EAAO,KAAK,KACZiyP,EAAcjyP,EAAK,iBAAiB,YAAY,EAChDkyP,EAAgBlyP,EAAK,iBAAiB,cAAc,EAE1DiyP,EAAY,QAASE,GAAeA,EAAW,UAAU,OAAO,WAAW,CAAC,EAC5ED,EAAc,QAASF,GAAiBA,EAAa,WAAW,YAAYA,CAAY,CAAC,CAC1F,CAED,cAAcpvN,EAAQ,CACpB,KAAK,WAAaA,EAEd,KAAK,YACPo7L,GAAgB,KAAI,EACpB,KAAK,mBAAmB,QAAQx9N,GAAWA,EAAQ,UAAU,OAAO,QAAQ,CAAC,IAE7Ew9N,GAAgB,KAAI,EACpB,KAAK,mBAAmB,QAAQx9N,GAAWA,EAAQ,UAAU,IAAI,QAAQ,CAAC,EAE7E,CAED,UAAUqC,EAAU,CAClB,KAAK,cAAc,EAAK,EACxB,MAAMuvP,EAAe,IAAI,YAAY,oBAAqB,CAAE,OAAQ,CAAE,SAAUvvP,CAAU,EAAE,EAC5F,KAAK,QAAQ,cAAcuvP,CAAY,CAExC,CAED,SAAS7rP,EAAO,CACd,MAAM8rP,EAAa,IAAI,YAAY,kBAAmB,CAAE,OAAQ,CAAE,MAAO9rP,CAAO,EAAE,EAClF,KAAK,QAAQ,cAAc8rP,CAAU,CACtC,CACH,CC/HA,MAAMC,YAA4Bt6B,EAAW,CAC3C,OAAO,EAAG,CACR,EAAE,eAAc,EAGhB,MAAM12N,EADS,EAAE,OACE,QAAQ,IAE3B65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,oBAAsBpoE,GAAU,CACrD,OAAO,cAAc,UAAWA,EAAM,OAAO,SAAS,KAAK,MAAM,EACjE,EAAEooE,CAAK,EAAE,MAAM,MAAM,EACrB,MAAM90D,EAAI,IAAI,YAAY,mBAAoB,CAAE,OAAQ,CAAI,EAAE,EAC9D,SAAS,cAAcA,CAAC,CAChC,CAAO,CACP,CAAK,CACF,CAED,KAAK,EAAG,CACN,EAAE,eAAc,EAGhB,MAAM3S,EADS,EAAE,OACE,QAAQ,IAE3B65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAM6V,EAAI82O,GAAS,IAAI3sP,EAAS,IAAI,EAEpC6V,EAAE,iBAAiB,oBAAsB/X,GAAU,CACjD,OAAO,cAAc,UAAWA,EAAM,OAAO,SAAS,KAAK,MAAM,EACjE,EAAE+X,CAAC,EAAE,MAAM,MAAM,EACjB,MAAMzE,EAAI,IAAI,YAAY,mBAAoB,CAAE,OAAQ,CAAI,EAAE,EAC9D,SAAS,cAAcA,CAAC,CAChC,CAAO,CACP,CAAK,CACF,CAED,YAAY,EAAG,CACb,EAAE,eAAc,EAGhB,MAAM3S,EADS,EAAE,OACE,QAAQ,IAE3B65E,GAAM,KAAK75E,CAAG,EAAE,KAAMuB,GAAa,CACjC,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD,MAAMoR,EAAI,IAAI,YAAY,mBAAoB,CAAE,OAAQ,CAAI,EAAE,EAC9D,SAAS,cAAcA,CAAC,CAC9B,CAAK,CACF,CACH,CCnDa,MAAAs+O,IAAiB9pP,GAAU,CAEhC,MAAA+J,EADO/J,EAAM,MAAM,CAAC,EACR,KAAO,KAAO,KAChC,IAAItI,EAAU,KAEd,OAAIqS,EAAO,GACCrS,EAAA,+DACDqS,GAAQ,IACPrS,EAAA,2CAGRA,IAASsI,EAAM,MAAQ,IAEpBtI,CACT,ECXAqyP,IAAe,CAAC,CAAE,IAAA9/L,EACA,MAAA3kD,EACA,UAAA0kP,EACA,KAAA76C,EACA,WAAA86C,EACA,eAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,UAAA94B,EACA,SAAAl2M,EACA,YAAAivO,EAAc,EAAI,IAAM,CAExC,KAAM,CAACC,EAAWC,CAAY,EAAIvvJ,WAAS,EAAK,EAC1C,CAACwvJ,EAAeC,CAAgB,EAAIzvJ,WAAS,EAAK,EAClD,CAAC0vJ,EAAWC,CAAY,EAAI3vJ,WAAS,EAAK,EAC1C,CAAC4vJ,EAAkBC,CAAmB,EAAI7vJ,WAAS,EAAE,EACrD,CAAC8vJ,EAAoBC,CAAqB,EAAI/vJ,WAAS,EAAK,EAC5D,CAACgwJ,EAAeC,CAAgB,EAAIjwJ,WAAS,CAAC,EAE9C+mJ,EAAUhyJ,WAEV6tC,EAAWjwC,UAAQ,IAAMroF,IAAU,GAAKgsN,EAAW,CAAChsN,EAAOgsN,CAAS,CAAC,EAErE45B,EAAS,IAAM,CACf,IAAA3B,GAAeO,IAAc/H,EAAQ,OAAO,EAEhD,GAAIwH,GAAc,CAChBoB,EAAa,EAAI,EACjBE,EAAoBtB,EAAY,EAChC,MACF,CAEAoB,EAAa,EAAK,EAEdN,EACSc,IAEXZ,EAAa,EAAI,CACnB,EAGIa,EAAW5/O,IAAM,CACrBA,GAAE,eAAe,EACjB++O,EAAa,EAAK,EACPY,GAAA,EASPA,EAAa,IAAM,CACjB,MAAAlrP,GAAW,IAAI,SACrBA,GAAS,IAAI,OAAQ8hP,EAAQ,QAAQ,MAAM,CAAC,CAAC,EAE7CkJ,EAAiB,CAAC,EAClBR,EAAiB,EAAI,EACZY,IAGN34K,GAAA,KAAKs3K,EAAW/pP,GAAU,CACzB,iBAAmCqrP,IAAA,CACjC,MAAMC,GAAW,KAAK,MAAOD,GAAc,OAASA,GAAc,MAAS,GAAG,EAC9EL,EAAiBM,EAAQ,CAC3B,EACD,EACA,KAAiBnxP,IAAA,CACV,MAAE,KAAAwsB,EAAS,EAAAxsB,GACjBqwP,EAAiB,EAAK,EACXR,EAAA,CAAE,KAAMrjO,GAAK,SAAU,IAAKA,GAAK,SAAU,UAAWA,GAAK,UAAY,GACzE4kO,GAAA,CACV,EACA,MAAO1tP,IAAU,CAChB2sP,EAAiB,EAAK,EACtBQ,EAAiB,CAAC,EAEdntP,GAAM,SAAS,SAAW,MAC5BikP,EAAQ,QAAQ,MAAQ,GACxB4I,EAAa,EAAI,EACjBE,EAAoB/sP,GAAM,SAAS,KAAK,OAAO,IAAI,GAG5C0tP,GAAA,CACV,GAGLv6J,YAAU,IAAM,CACd,MAAMjxF,GAAQ+hP,EAAQ,QAClBA,EAAQ,SAAe/hP,GAAA,kBAAkB49H,EAAW,8BAAgC,EAAE,GACzF,CAACA,CAAQ,CAAC,EAEP,MAAA6tH,EAAajgP,IAAM,CACvBA,GAAE,eAAe,EAEb2jM,IAAS,KACI+6C,KAENmB,IACTN,EAAsB,EAAI,EAC1Br4K,GAAM,OAAOy8H,EAAK,SAAS,EAAE,KAAiB/0M,IAAA,CAC5C2wP,EAAsB,EAAK,EAClBS,IACMtB,GAAA,CAChB,EAAE,MAAM,IAAM,CACba,EAAsB,EAAK,EAClBS,GAAA,CACV,EACH,EAGIH,EAAW,IAAM,CAAEjB,EAAa,CAAC,GACjCoB,EAAW,IAAM,CAAEpB,EAAa,EAAE,GAElCsB,GAAgB/9J,UAAQ,IACxB,EAAAm9J,GACA37C,IAAS,MAAQ,CAACk7C,GAClBF,IAAoB,GAAKh7C,IAAS,MAGrC,CAACg7C,EAAiBh7C,EAAM27C,CAAkB,CAAC,EAExCa,GAAgBzuK,GAAW0gD,EAAW,WAAa,EAAE,EAGzD,OAAA9hC,GAAC,MAAI,YAAU7xC,EACb,UAAC6xC,GAAA,OAAI,UAAU,+BACZ,UAAAw1H,GAAcz0I,EAAA,QAAK,MAAO,CAAE,SAAU,WAAY,IAAK,EAAG,MAAO,IAAK,eAAgB,MAAU,QAAM,WAAW,SAAC,MAElH2tK,GACA3tK,EAAA,OAAI,UAAU,SACb,WAAC,MAAI,WAAU,kBAAkB,MAAO,CAAE,MAAO,QAAQmuK,CAAa,WAAc,GACtF,EAGAlvJ,GAAC,MAAI,WAAU,aACZ,UAAAwuJ,GAAcztK,EAAA,KAAE,KAAK,IAAI,MAAO,CAAE,aAAc,CAAE,EAAG,QAAUrxE,IAAM4/O,EAAQ5/O,EAAC,EAAG,SAAO,YACxFkgP,IAAkB7uK,EAAA,KAAE,KAAK,IAAI,QAAUrxE,IAAMigP,EAAUjgP,EAAC,EAAG,SAAM,YACpE,EAEC2jM,EACEtyH,EAAA,KAAE,KAAMsyH,EAAK,IAAK,OAAO,SAAU,SAAKA,EAAA,KAAK,EAC9CtyH,EAAC,SACC,KAAK,OACL,UAAW8uK,GACX,IAAK5J,EACL,SAAUmJ,EACV,SAAAttH,EACA,SAAAxiH,EACA,QAAU5P,IAAM,CAEXoyH,GACapyH,GAAE,OACV,eAAe,CACnB,SAAU,SACV,MAAO,SACR,CAEL,EAAE,GAER,EAECk/O,GACA7tK,EAAA,OAAI,UAAU,YACb,WAAC,MAAI,WAAU,aACX,SAAA+tK,CAAA,CACJ,CACF,EAEF,GAEJ,EC7KAgB,IAAe,CAAC,CAAE,UAAA5B,EACA,cAAA6B,EACA,UAAAv6B,EACA,SAAAl2M,EACA,cAAAgkF,EACA,YAAAirJ,EAAc,GACd,eAAAyB,EAAiB,CAAE,IAAM,CAEzC,KAAM,CAACC,EAAWC,CAAY,EAAIhxJ,WAAS6wJ,CAAa,EAElDI,EAAezgP,GAAM,CACzBA,EAAE,eAAe,EACJwgP,EAAA,CAAC,GAAGD,EAAW,CAAE,IAAK3E,KAAU,KAAM,IAAM,EAAC,GAGtD6C,EAAa,CAAC3kP,EAAO6pM,IAAS,CAC5B,MAAA+8C,EAAmB,CAAC,GAAGH,CAAS,EACrBG,EAAA5mP,CAAK,EAAE,KAAU6pM,EAClC68C,EAAaE,CAAgB,GAGzBhC,EAAkB5kP,GAAU,CAC5B,GAAAymP,EAAU,OAAS,EAAG,CACxB,MAAMG,EAAmBH,EAAU,OAAO,CAAC3vP,EAAGF,IAAMA,IAAMoJ,CAAK,EAC/D0mP,EAAaE,CAAgB,MACxB,CACC,MAAAA,EAAmB,CAAC,GAAGH,CAAS,EACrBG,EAAA5mP,CAAK,EAAE,KAAU,KAClC0mP,EAAaE,CAAgB,CAC/B,GAGIC,EAAah8O,GAAM,CACvB,GAAI,CAACivF,EAAsB,YAEvB,IAAAlnG,EAAQ,IAAI,YAAY,qBAAsB,CAChD,QAAS,GACT,WAAY,GACZ,OAAQiY,CAAA,CACT,EAEDivF,EAAc,cAAclnG,CAAK,GAG7Bk0P,EAAc96B,GAAay6B,EAAU,MAAO3qP,GAAMA,EAAE,OAAS,IAAI,EAEvE,UACG,MACC,WAAAy7E,EAAC,MACE,UAAAkvK,EAAU,IAAI,CAACp/O,EAAUrH,IACxBu3E,EAACktK,IAAA,CACC,MAAAzkP,EACA,gBAAiBymP,EAAU,OAE3B,IAAKp/O,EAAS,IACd,UAAAq9O,EACA,KAAMr9O,EAAS,KACf,WAAaia,GAASqjO,EAAW3kP,EAAOshB,CAAI,EAC5C,eAAgB,IAAOsjO,EAAe5kP,CAAK,EAC3C,aAAc6mP,EACd,YAAA9B,EACA,UAAW+B,EACX,SAAAhxO,CAAA,EATKzO,EAAS,GAWjB,GACH,EAECo/O,EAAU,SAAWD,GACpBjvK,EAAC,OAAI,SAAgD,qDAGtDkvK,EAAU,OAASD,GAClBjvK,EAAC,IAAE,MAAK,IAAI,QAAUrxE,GAAMygP,EAAYzgP,CAAC,EAAG,SAAoB,wBAEpE,GAEJ,EC1EA,MAAA6gP,YAA6B98B,EAAW,CACtC,SAAU,CACR,MAAM70M,EAAK,KAAK,QACVu/C,EAAWv/C,EAAG,iBAAiB,KAAK,EACpC0kF,EAAgB1kF,EAAG,QAAQ,gDAAgD,EAEjF,IAAIqxO,EAAY,GAEhB9xL,EAAS,QAAa74D,GAAA,CACpB,MAAMq8B,EAAOr8B,EAAE,QACf2qP,EAAU,KAAK,CACb,GAAItuN,EAAK,GACT,KAAM,CAAE,KAAMA,EAAK,SAAU,IAAKA,EAAK,QAAS,UAAWA,EAAK,SAAU,EAC1E,IAAK2pN,GAAO,EACb,EACF,EAEG2E,EAAU,SAAW,GAAGA,EAAU,KAAK,CAAE,IAAK3E,KAAU,KAAM,KAAM,EAExE,MAAMkF,EAAoBzvK,EAAC+uK,IAAA,CACzB,cAAAxsJ,EACA,cAAe2sJ,EACf,UAAWrxO,EAAG,QAAQ,YAAc,OACpC,SAAUA,EAAG,QAAQ,WAAa,OAClC,UAAWA,EAAG,QAAQ,UACtB,eAAgB,SAASA,EAAG,QAAQ,gBAAkB,CAAC,EACvD,YAAaA,EAAG,QAAQ,cAAgB,UAGjCosD,GAAA,OAAOwlL,EAAmB5xO,CAAE,CACvC,CACF,CClCA,MAAM6xO,YAAsCh9B,EAAW,CACrD,SAAU,CAGR,MAAMi9B,EAAsB,CAC1B,QAAS,sBACT,GAJqB,KAAK,QAAQ,QAAQ,EAK3C,EAEKnvE,EAAe,IAAI,MAAM,cAAc,OAAOmvE,EAAqB,CACvE,UAAW,IAAM,CAAEnvE,EAAa,KAAK,CAAE,EAAG,EAC1C,SAAWz2J,GAAS,CACd,CAAC,YAAa,QAAQ,EAAE,SAASA,EAAK,MAAM,IAC9Cy2J,EAAa,YAAW,EAEpBz2J,EAAK,SAAW,SAClB,EAAE,8BAA8B,EAAE,MAAM,MAAM,EAE9C,KAAK,SAAS,OAAO,cAAc,EAGxC,CACP,CAAK,CACF,CAED,IAAI,UAAW,CACb,OAAO,IAAI8hO,EACZ,CACH,CC5BA,MAAM+D,WAAmCl9B,EAAW,CAIlD,SAAU,CACR,KAAK,WAAU,CAChB,CAED,WAAWr3N,EAAO,CAChB,GAAI,CAAC,KAAK,kBAAkB,CAAC,EAAG,MAAO,GAEnCA,GAAA,MAAAA,EAAO,SACT,KAAK,mBAAmB,MAAQ,GAChC,KAAK,sBAAsB,MAAQ,GACnC,KAAK,oBAAoB,MAAQ,IAGnC,KAAK,UAAS,EACd,KAAK,aAAY,EACjB,KAAK,WAAU,EACf,KAAK,wBAAuB,CAC7B,CAED,WAAY,CACV,MAAMw0P,EAAY,KAAK,mBAAmB,QAAQ,oBAAoB,EAClD,CAAC,aAAc,sBAAuB,sBACrC,mBAAoB,4BACpB,2BAA2B,EAEhC,SAAS,KAAK,iBAAiB,KAAK,EAClDA,EAAU,UAAU,OAAO,QAAQ,EAEnCA,EAAU,UAAU,IAAI,QAAQ,CAEnC,CAED,cAAe,CACb,MAAMtgH,EAAc,CAAE,iBAAkB,yBAClCugH,EAA6B,KAAK,sBAAsB,QAAQ,oBAAoB,EAE1F,EAAE,KAAK,qBAAqB,EAAE,WAAW,KAAK,sBAAsB,EAEpE,KAAK,cAAcvgH,EAAaugH,CAA0B,CAC3D,CAED,YAAa,CACX,MAAMvgH,EAAc,CAAE,oBAAqB,uBACrCwgH,EAA2B,KAAK,oBAAoB,QAAQ,kBAAkB,EAEpF,EAAE,KAAK,mBAAmB,EAAE,WAAW,KAAK,sBAAsB,EAElE,KAAK,cAAcxgH,EAAawgH,CAAwB,CACzD,CAED,cAAclrP,EAAS5J,EAAQ,CAC7B,MAAMi7D,EAAQj7D,EAAO,cAAc,OAAO,EAEtC4J,EAAQ,KAAK,iBAAiB,KAAK,GACrC5J,EAAO,UAAU,OAAO,QAAQ,EAC5Bi7D,IAAOA,EAAM,UAAYrxD,EAAQ,KAAK,iBAAiB,KAAK,IAEhE5J,EAAO,UAAU,IAAI,QAAQ,CAEhC,CAED,yBAA0B,CACxB,MAAM+0P,EAA8B,KAAK,2BAA4B,EAAC,CAAC,EACjEzgH,EAAc,CAAC,kBAAkB,EACjC0gH,EAAc,KAAK,mBAEzB,GAAID,GAA+BzgH,EAAY,SAAS,KAAK,iBAAiB,KAAK,EAAG,CACpF,MAAM2gH,EAAuBF,EAA4B,QAAQ,WAE7DC,EAAY,QAAU,KAAI,KAAK,mBAAmB,MAAQC,EAC/D,CACF,CAED,2BAA2BryO,EAAI,CAC7B,MAAO,CAAC,GAAG,KAAK,iBAAgB,CAAE,EAAE,OAAQA,GAAOA,EAAG,QAAQ,UAAU,CACzE,CAED,kBAAmB,CAGjB,MAAO,CAAC,GAFW,SAAS,iBAAiB,sCAAsC,CAE9D,EAAE,OAAQA,GAAOA,EAAG,OAAO,CACjD,CACH,CArFE43K,GADIm6D,GACG,SAAS,CAAE,kBAAmB,CAAE,OAAQ,eAAgB,UAAW,EAAI,CAAE,GAChFn6D,GAFIm6D,GAEG,UAAU,CAAC,aAAc,eAAgB,gBAAiB,iBAAiB,GCDrE,MAAKO,YAASz9B,EAAW,CACtC,OAAO,EAAG,CACR,MAAM/uN,EAAK,EAAE,OAAO,QAAQ,GAE5BkyE,GAAM,IAAI,2CAA2ClyE,CAAE,EAAE,EAAE,KAAKpG,GAAY,CAC1E,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,4BAA8B90D,GAAM,CACzD,KAAM,CAAE,KAAAob,CAAI,EAAKpb,EAAE,OAEnB,EAAE80D,CAAK,EAAE,MAAM,MAAM,EACrB,OAAO,cAAc,UAAW15C,EAAK,OAAO,EAC5C,SAAS,eAAe,cAAcA,EAAK,mBAAmB,EAAE,EAAE,UAAYA,EAAK,UAC3F,CAAO,CACP,CAAK,CACF,CACH,CChBe,MAAKqmO,YAAS19B,EAAW,CACtC,SAAU,CACR,KAAM,CAAE,mBAAA29B,CAAoB,EAAG,KAAK,QAAQ,QAExCA,IAAuB,mBACzB,KAAK,UAAS,CAEjB,CAED,OAAO,EAAG,CACR,MAAM/6F,EAAS,EAAE,OACjB,GAAIA,EAAO,SAAU,MAAO,GAC5BA,EAAO,SAAW,GAClB,KAAK,UAAU,IAAMA,EAAO,SAAW,EAAK,CAC7C,CAED,UAAU1vJ,EAAU,CAClB,MAAM5J,EAAM,KAAK,QAAQ,QAAQ,IAEjC65E,GAAM,IAAI75E,CAAG,EAAE,KAAKuB,GAAY,CAC9B,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExC,EAAEkmE,CAAK,EAAE,GAAG,kBAAmB,IAAM,CAC/B79D,GAAUA,GACtB,CAAO,EAED69D,EAAM,iBAAiB,4BAA8B90D,GAAM,CACzD,KAAM,CAAE,KAAAob,CAAI,EAAKpb,EAAE,OACfob,EAAK,wBAAuB,aAAa,iBAAmB,oBAChE,QAAQ,IAAI,oBAAqBA,EAAK,QAAQ,EAC9C,OAAO,SAAS,QAAQA,EAAK,aAAa,CAClD,CAAO,CACP,CAAK,EAAE,MAAM,IAAM,CACb,OAAO,cAAc,QAAS,sBAAsB,EAChDnkB,GAAUA,GACpB,CAAK,CACF,CACH,CCzCe,SAAS0qP,KAAM,CAC5B,IAAI9vE,EAAe,KAEnB,SAAS3/I,EAAUl9B,EAAI4sP,EAAY,CACjC/vE,EAAe,IAAI,MAAM,cAAc,OACrC,CAAE,QAAS,sBAAuB,GAAI78K,CAAI,EAC1C,CACE,UAAW,IAAM68K,EAAa,KAAK,EAAE,EACrC,SAAWz2J,GAAS,CAClB,OAAQA,EAAK,OAAM,CACjB,IAAK,YACL,IAAK,SACHy2J,EAAa,YAAW,EACxB+vE,EAAWxmO,CAAI,EACf,MACF,IAAK,iBACHwmO,EAAWxmO,CAAI,EACf,MACF,IAAK,UACH,QAAQ,IAAI,gCAAgC,EAC5C,MACF,QACE,QAAQ,IAAI,mBAAmBA,EAAK,MAAM,EAAE,EAC5C,KACH,CACF,CACF,CACP,CACG,CAED,MAAO,CAAE,UAAW8W,CAAW,CACjC,CC/BO,MAAM2vN,IAAgB,CAC3B,KAAM,CACJ,MAAO,UACP,WAAY,0CACZ,cAAe,cACf,SAAU,OACV,gBAAiB,CACf,MAAO,SACR,CACF,EACD,QAAS,CACP,MAAO,UACP,UAAW,SACZ,CACH,ECZe,SAASC,IAAW,CAAE,OAAAC,EAAQ,SAAAC,EAAU,iBAAAC,EAAkB,gBAAAC,CAAe,EAAI,CAC1F,MAAMC,EAAiBJ,EAAO,SAAS,CACrC,MAAO,CAAC,CAAE,OAAQ,oDAAqD,EACvE,OAAQ,IACZ,CAAG,EAGKK,EAAiB,CAAE,MAAOP,IAAe,QADxB,CAAE,MAAO,QAAS,MAAO,QAAS,QAAS,UACI,EAChEQ,EAAaF,EAAe,OAAO,aAAcC,CAAc,EAC/DE,EAAaH,EAAe,OAAO,aAAcC,CAAc,EAC/DG,EAAUJ,EAAe,OAAO,UAAWC,CAAc,EAE/DC,EAAW,MAAM,qBAAqB,EACtCC,EAAW,MAAM,qBAAqB,EACtCC,EAAQ,MAAM,kBAAkB,EAEhC,MAAMxxP,EAAW,CAACsxP,EAAYC,EAAYC,CAAO,EAE3Cx2P,EADU,SAAS,cAAc,eAAe,EACjC,cAAc,sBAAsB,EACnDuG,EAAQvG,EAAK,cAAc,QAAQ,EAC1BA,EAAK,cAAc,uBAAuB,EAEzD,MAAMy2P,EAAY,IAAM,CACtBz2P,EAAK,MAAK,EACVgF,EAAS,QAAQxE,GAAWA,EAAQ,MAAO,GAC3C+F,EAAM,UAAU,OAAO,SAAS,EAChCmwP,GACD,EAEKA,EAAe,IAAM,CACzB12P,EAAK,cAAc,uBAAuB,EAAE,gBAAgB,UAAU,EACtE,MAAM,UAAU,QAAQ,KACtBA,EAAK,iBAAiB,4DAA4D,EACjFyI,GAAUA,EAAM,gBAAgB,UAAU,CACjD,EAEQ0tP,GAAiBA,GACtB,EAEKQ,EAAgB,IAAM,CAC1B32P,EAAK,cAAc,uBAAuB,EAAE,aAAa,WAAY,UAAU,EAC/E,MAAM,UAAU,QAAQ,KACtBA,EAAK,iBAAiB,4DAA4D,EACjFyI,GAAUA,EAAM,aAAa,WAAY,MAAM,CACtD,EAEQytP,GAAkBA,GACvB,EAEKU,EAA2B,IAAM,CACrC,IAAIC,EAAS,SAAS,cAAc,OAAO,EAC3CA,EAAO,KAAO,SACdA,EAAO,MAAM,QAAU,OACvB72P,EAAK,YAAY62P,CAAM,EACvBA,EAAO,MAAK,EACZA,EAAO,OAAM,CACd,EAED72P,EAAK,iBAAiB,SAAWiU,GAAM,CAGrC,GAFAA,EAAE,eAAc,EAEZ,CAAAA,EAAE,OAAO,SAEb,KAAI6iP,EAAmB,GASvB,GAPA,MAAM,UAAU,QAAQ,KAAK92P,EAAK,iBAAiB,OAAO,EAAIyI,GAAU,CACtE,GAAIA,EAAM,eAAiB,CAACA,EAAM,cAAa,EAAI,CACjDquP,EAAmB,GACnB,MACD,CACP,CAAK,EAEG,CAACA,EAAkB,CACrBF,IACA,MACD,CAEDD,IAEAI,IACJ,CAAG,EAED,MAAMA,EAAe,IAAM,CACzB,MAAM32P,EAAOJ,EAAK,cAAc,mBAAmB,EAC7CuwN,EAAMvwN,EAAK,cAAc,kBAAkB,EAE3CuQ,EAAiB,CACrB,KAAMnQ,EAAOA,EAAK,MAAQ,OAC1B,YAAamwN,EAAMA,EAAI,MAAQ,MACrC,EAEI0lC,EAASK,EAAY/lP,CAAc,CACpC,EAED,OAAAymP,IAAiBh3P,EAAMgF,CAAQ,EAExB,CACL,UAAWyxP,EACX,aAAcC,EACd,cAAeC,CAChB,CACH,CAEA,SAASK,IAAiBh3P,EAAMgF,EAAU,CACxC,MAAMiyP,EAAc,GACd1wP,EAAQvG,EAAK,cAAc,QAAQ,EACnCgyP,EAAezrP,EAAM,cAAc,UAAU,EAEnDvB,EAAS,QAAQ,CAACxE,EAASgmB,IAAQ,CACjChmB,EAAQ,GAAG,SAAWG,GAAU,CAC9B,GAAIA,EAAM,MACR4F,EAAM,UAAU,IAAI,SAAS,EAC7B0wP,EAAYzwO,CAAG,EAAI7lB,EAAM,MAAM,QAC/BqxP,EAAa,UAAYrxP,EAAM,MAAM,YAChC,CACLs2P,EAAYzwO,CAAG,EAAI,KAEnB,IAAI0wO,EAAY,OACb,KAAKD,CAAW,EAChB,KAAM,EACN,OAAO,CAACE,EAAiB1kP,IAAQ0kP,GAAmBF,EAAYxkP,CAAG,EAAG,IAAI,EAEzEykP,EACFlF,EAAa,UAAYkF,EAEzB3wP,EAAM,UAAU,OAAO,SAAS,CAEnC,CACP,CAAK,CACL,CAAG,CACH,CC/He,MAAK6wP,WAASp/B,EAAW,CAAzB,kCA6Cbj9B,GAAA,oBAAe,CAACu7D,EAAY/lP,IAAmB,CAC7C,MAAM8mP,EAAc,IAAI,YAAY,kBAAkB,EACtD,KAAK,MAAM,cAAcA,CAAW,EAEpC,KAAK,YAAW,EAEhB,KAAK,gBAAe,EAAG,KAAKh+O,GAAO,CACjC,KAAK,YAAYA,EAAKi9O,EAAY/lP,CAAc,CACtD,CAAK,EAAE,MAAO0D,GAAM,CAId,GAHA,KAAK,YAAW,EAChB,KAAK,aAAY,EAEbA,EAAE,SAAS,SAAW,IAAK,CAC7B,MAAMqjP,EAAc,IAAI,YAAY,mBAAoB,CAAE,OAAQ,CAAE,KAAMrjP,EAAE,SAAS,IAAI,CAAI,GAC7F,KAAK,MAAM,cAAcqjP,CAAW,CAC5C,MACQ,KAAK,aAAa,sBAAsB,CAEhD,CAAK,CACF,GA2CDv8D,GAAA,mBAAc,IAAK,CACjB,SAAS,KAAK,QAAQ,kBAAoB,OACtC,MAAK,UACT,KAAK,cAAc,MAAM,QAAU,GACpC,GAEDA,GAAA,mBAAc,IAAM,CACd,KAAK,UACT,OAAO,SAAS,KAAK,QAAQ,kBAC7B,KAAK,cAAc,MAAM,QAAU,OACpC,GAlHD,SAAU,CACR,MAAMmpD,EAAU,KAAK,QAAQ,QAE7B,KAAK,cAAgBA,EAAQ,cAC7B,KAAK,OAAS,KAAK,cAAgB,OAAO,IAAI,OAAO,QAAS,CAAE,cAAe,KAAK,aAAe,GAAI,IAAI,OAC3G,KAAK,SAAYA,EAAQ,SACzB,KAAK,QAAUA,EAAQ,UAAY,QAAU,GAC7C,KAAK,mBAAqBA,EAAQ,mBAClC,KAAK,gBAAkBA,EAAQ,gBAC/B,KAAK,QAAUqT,MAEf,KAAK,MAAQ,KAAK,QAAQ,QAAQ,+BAA+B,EAE7D,KAAK,UACP,KAAK,cAAc,MAAM,QAAU,GACnC,SAAS,KAAK,QAAQ,kBAAoB,OAE1C,WAAW,IAAM,KAAK,gBAAe,EAAG,KAAKl+O,GAAO,CAClD,KAAK,UAAUA,EAAI,EAAE,EACrB,KAAK,eAAeA,CAAG,CAC/B,CAAO,EAAG,GAAG,GAIL,KAAK,qBAAuB,oBAC9B,KAAK,YAAW,EAChB,KAAK,kBAAkB,CACrB,GAAI6qO,EAAQ,eACZ,aAAcA,EAAQ,YAC9B,CAAO,GAGH,KAAM,CAAE,aAAAwS,CAAc,EAAGX,IAAW,CAClC,OAAQ,KAAK,OACb,SAAU,KAAK,aACf,gBAAiB,KAAK,YACtB,iBAAkB,KAAK,WAC7B,CAAK,EAED,KAAK,aAAeW,CACrB,CAuBD,eAAec,EAAc,CAC3B,KAAM,CAAE,GAAAvuP,EAAI,QAAAwuP,CAAS,EAAGD,EACxBr8K,GACG,KAAK,WAAWs8K,CAAO,qDAAqDD,EAAa,EAAE,EAAE,EAC7F,KAAM,EACN,MAAM,IAAM,OAAO,cAAc,sBAAsB,CAAC,CAC5D,CAED,YAAYA,EAAclB,EAAY/lP,EAAgB,CACpD,MAAM8S,EAAQ,CACZ,eAAgB,CACd,KAAMizO,EACN,gBAAiB,CACf,KAAM/lP,EAAe,IACtB,CACF,CACF,EAED,KAAK,kBAAkBinP,EAAcn0O,CAAK,CAC3C,CAED,kBAAkBm0O,EAAcn0O,EAAO,CACrC,KAAM,CAAE,GAAApa,EAAI,aAAAyuP,CAAc,EAAGF,EAEvBG,EAAY,KAAK,cAAcD,CAAY,EAEjD,GAAIC,IAAc,KAAM,CACtB,KAAK,aAAa,mBAAmB,EACrC,MACD,CAEDA,EAAUD,EAAcr0O,CAAK,EAAE,KAAM5e,GAAW,CAC1CA,EAAO,OACT,KAAK,YAAa,EAClB,KAAK,aAAa,CAAE,QAASA,EAAO,MAAM,QAAS,GAEnD,KAAK,UAAUwE,CAAE,CAEzB,CAAK,CACF,CAcD,iBAAkB,CAChB,MAAMP,EAAW,KAAK,SAAW,IAAI,SAAS,EAAE,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAI,GAE3E,OAAOyyE,GACJ,KAAK,KAAK,gBAAiBzyE,EAAU,CAAE,QAAS,CAAE,mBAAoB,gBAAgB,EAAI,EAC1F,KAAK7F,GAAY,CAChB,GAAIA,EAAS,KAAK,OAChB,OAAO,SAAS,aAEhB,QAAOA,EAAS,KAAK,YAE/B,CAAO,CACJ,CAED,cAAcwsB,EAAM,CAClB,MAAM+iO,EAAe,IAAI,YAAY,4BAA6B,CAAE,OAAQ,CAAE,KAAM/iO,CAAM,EAAE,EAC5F,KAAK,MAAM,cAAc+iO,CAAY,CACtC,CAED,aAAa/iO,EAAM,CACjB,MAAM+iO,EAAe,IAAI,YAAY,2BAA4B,CAAE,OAAQ,CAAE,KAAM/iO,CAAM,EAAE,EAC3F,KAAK,MAAM,cAAc+iO,CAAY,EAEjC/iO,EAAK,SAAS,OAAO,cAAc,QAASA,EAAK,OAAO,EAC5D,KAAK,YAAW,EAChB,KAAK,aAAY,CAClB,CAED,UAAUuoO,EAAgB,CACxB,OAAO,KAAK,QAAQ,UAAUA,EAAiBvoO,GAAS,CACtD,OAAQA,EAAK,OAAM,CACjB,IAAK,YACH,KAAK,cAAcA,CAAI,EACvB,MACF,IAAK,SACH,KAAK,aAAaA,CAAI,EACtB,KACH,CACP,CAAK,CACF,CAED,cAAcqoO,EAAc,CAC1B,IAAIC,EAAY,KAKhB,MAHI,SAAS,KAAKD,CAAY,IAAGC,EAAY,KAAK,OAAO,kBACrD,OAAO,KAAKD,CAAY,IAAGC,EAAY,KAAK,OAAO,oBAEnDA,GAAsD,IAG3D,CACH,CAzKE58D,GADkBq8D,GACX,UAAU,CAAC,SAAS,GCFd,MAAKS,YAAS7/B,EAAW,CACtC,SAAU,CACR,KAAK,wBAAuB,CAC7B,CAED,OAAO,EAAG,CACR,MAAM12N,EAAM,EAAE,OAAO,QAAQ,IAE7B65E,GAAM,IAAI75E,CAAG,EAAE,KAAKuB,GAAY,CAC9B,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,4BAA8B90D,GAAM,CACzD,EAAE80D,CAAK,EAAE,MAAM,MAAM,EAErB,OAAO,WAAa,GACpB,OAAO,aAAa,EAAE,iCAAiC,EAAG,EAAI,EAC9D,OAAO,kBAAiB,CAChC,CAAO,EAEDA,EAAM,iBAAiB,mBAAqB90D,GAAM,CAChD,MAAMm8I,EAASn8I,EAAE,OAAO,KAAK,OAC7B,OAAO,cAAc,QAASm8I,EAAO,IAAI,CACjD,CAAO,CACP,CAAK,CACF,CAED,yBAA0B,CACxB,MAAMi0C,EAAW,OAAO,YAAc,IAC1B,IAAI,IAAI,OAAO,SAAS,IAAI,EACrB,aAAa,IAAI,YAAY,IAEjC,mBACb,WAAW,IAAM,CACf,MAAMyzD,EAAkBzzD,EAAW,eAAiB,mBAC9C0zD,EAAiB,SAAS,cAAc,GAAGD,CAAe,2BAA2B,EAE3F,GAAIC,EAAgB,CAClB,MAAMjzN,EAASizN,EAAe,sBAAuB,EAAC,IAAM,OAAO,YACnE,OAAO,SAAS,CACd,IAAKjzN,EACL,SAAU,QACtB,CAAW,CACF,CACF,EAAE,GAAG,CAET,CACH,CC9Ce,MAAKkzN,YAAShgC,EAAW,CACtC,IAAI,EAAG,CACL,MAAM12N,EAAM,EAAE,OAAO,QAAQ,IAEvBs5J,EAAS,EAAE,OACjB,GAAIA,EAAO,SAAU,MAAO,GAC5BA,EAAO,SAAW,GAElBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAKuB,GAAY,CAC9B,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CAC1D,WAAW,IAAM,CAAE+3J,EAAO,SAAW,EAAK,EAAI,GAAG,CAClD,EAAC,EAGF7xF,EAAM,iBAAiB,4BAA8B90D,GAAM,CACzD,KAAM,CAAE,KAAAob,CAAI,EAAKpb,EAAE,OAEnB,EAAE80D,CAAK,EAAE,MAAM,MAAM,EACrB,OAAO,cAAc,UAAW15C,EAAK,OAAO,CACpD,CAAO,EAED05C,EAAM,iBAAiB,2BAA6B90D,GAAM,CACvCA,EAAE,MAC3B,CAAO,EAED80D,EAAM,iBAAiB,mBAAqB90D,GAAM,CAChD,MAAMm8I,EAASn8I,EAAE,OAAO,KAAK,OAE7B,KAAK,UAAUm8I,CAAM,CAC7B,CAAO,EAEDrnF,EAAM,iBAAiB,mBAAqB90D,GAAM,CAChD,KAAK,aAAY,CACzB,CAAO,CACP,CAAK,EAAE,MAAM,IAAM,CACb2mJ,EAAO,SAAW,GAClB,OAAO,cAAc,QAAS,sBAAsB,CAC1D,CAAK,CACF,CAED,cAAe,CACb,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,OAAM,CACzD,CAED,UAAUxK,EAAQ,CAChB,KAAK,aAAY,EAEjB,EAAE,KAAKA,EAAQ,CAACtvJ,EAAO2R,IAAQ,CAC7B,MAAM26O,EAAO,6BAA6BtsP,EAAM,KAAK,IAAI,CAAC,UAC1D,EAAE,mBAAqB2R,CAAG,EAAE,QAAQ,aAAa,EAAE,OAAO26O,CAAI,CACpE,CAAK,CACF,CACH,CCrDe,MAAK6K,YAASjgC,EAAW,CACtC,UAAU,EAAG,CACP,EAAE,OAAO,QAAQ,WAAa,QAClC,KAAK,eAAe,MAAM,CAC3B,CACD,UAAU,EAAG,CACP,EAAE,OAAO,QAAQ,WAAa,QAClC,KAAK,eAAe,MAAM,CAC3B,CAED,eAAe14H,EAAW,CACxB,MAAM44J,EAAS,EAAE,OAAO,EAElBC,EADkB,EAAE,cAAc,EAAE,IAAG,IACR,MAAQ,EAAI,EAC3CC,EAAgB94J,IAAc,OAAS,CAAC64J,EAAWA,EACnD34I,EAAc04I,EAAO,WAAW,SAAS,EACzCpxH,EAAUrX,GAAOjQ,CAAW,EAAE,SAAS44I,EAAe,MAAM,EAAE,OAAQ,EAE5EF,EAAO,WAAW,UAAWpxH,CAAO,CACrC,CACH,CCrBe,MAAMuxH,WAA6BrgC,EAAW,CAK3D,SAAU,CACR,MAAMjtM,EAAO,KAAK,QACZysC,EAASzsC,EAAK,QAAQ,QAAU,eAChCutO,EAAYvtO,EAAK,QAAQ,WAAa,GACtCnX,EAAYmX,EAAK,QAAQ,UACzBwtO,EAAuB,OAAO,KAAK,iBAAiB,EACpD1oI,EAAY9kG,EAAK,QAAQ,WAAa,KACtC+kG,EAAU/kG,EAAK,QAAQ,SAAW,KAElCytO,EAAa,EAAEztO,CAAI,EAAE,WAAW,CACpC,OAAQysC,EACR,UAAW8gM,EACX,UAAW1kP,EACX,UAAWi8G,EACX,QAASC,CACf,CAAK,EAEGyoI,GAAsBC,EAAW,GAAG,aAAcD,CAAoB,EAE1EC,EAAW,GAAG,aAAe73P,GAAU,CACrC,MAAMsT,EAAI,IAAI,YAAY,SAAU,CAClC,OAAQ,CAAE,aAActT,EAAM,IAAM,EACpC,QAAS,GACT,WAAY,GACZ,OAAQ,KAAK,OACrB,CAAO,EAED,KAAK,QAAQ,cAAcsT,CAAC,CAClC,CAAK,CACF,CACH,CAlCE8mL,GADmBs9D,GACZ,SAAS,CACd,aAAc,MAClB,GCFA,MAAMI,EAAY,CAChB,MAAO,CACL,MAAMC,EAAY,MAAM,KAAK,EAAE,gDAAgD,CAAC,EAChF,IAAIC,EAAgB,EAAE,6CAA6C,EAAE,IAAG,EACpEC,EAAU,EAAE,gDAAgD,EAAE,IAAG,EACrE,MAAMC,EAAa,IAAM,CACvBH,EAAU,QAAS3pD,GAAQ,CACzB,IAAI+pD,EAAYH,EAChB,MAAMI,EAAe,EAAEhqD,CAAG,EAAE,KAAK,wBAAwB,EAAE,CAAC,EAExDgqD,IACFD,EAAYC,EAAa,YAAY,QAGnCH,GAAW,OAASD,GAAiB,OAE9BC,GAAW,OAASD,GAAiBG,EAD9C,EAAE/pD,CAAG,EAAE,OAGE6pD,GAAW,OAASD,GAAiBG,EAC9C,EAAE/pD,CAAG,EAAE,OACE6pD,GAAW,WAAaD,GAAiB,OAMzCC,GAAW,WAAaD,GAAiBG,EAL7C/pD,EAAI,UAAU,SAAS,SAAS,EAGnC,EAAEA,CAAG,EAAE,OAFP,EAAEA,CAAG,EAAE,OAWT,EAAEA,CAAG,EAAE,MAEjB,CAAO,CACP,EAEQ4pD,GAAiBC,GACnBC,IAGE,EAAE,mCAAmC,EAAE,GAAG,UAAU,GACtD,EAAE,UAAU,EAAE,OAIhB,EAAE,6BAA6B,EAAE,OAAQl4P,GAAU,CACjDg4P,EAAgBh4P,EAAM,OAAO,gBAAgB,CAAC,EAAE,MAChDk4P,GACN,CAAK,EAED,EAAE,mBAAmB,EAAE,WAAW,CAChC,OAAQ,aACR,UAAW,GACX,SAAU,GACV,UAAW,4BACjB,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,gBAAiB,IAAM,CAC7C,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAC5B,EAAE,+BAA+B,EAAE,IAAI,EAAE,EACzC,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAClC,EAAE,qCAAqC,EAAE,KAAK,UAAW,EAAK,EAC9D,EAAE,gBAAgB,EAAE,MAC1B,CAAK,EAED,EAAE,kBAAkB,EAAE,MAAM,IAAM,CAChC,EAAE,gBAAgB,EAAE,MAC1B,CAAK,EAED,KAAK,OAAM,EACX,KAAK,OAAM,EACX,KAAK,SAAQ,EACb,KAAK,SAAQ,CACd,CAED,QAAS,CACP,MAAMG,EAAgB,EAAE,uCAAuC,EACzDC,EAAsB,EAAE,6CAA6C,EAEvED,EAAc,OAAS,GAAG,OAAO,aAAaA,EAAe,GAAM,EAAI,EACvEC,EAAoB,OAAS,GAAG,OAAO,aAAaA,EAAqB,GAAM,EAAI,CACxF,CAED,QAAS,CACP,EAAE,qBAAqB,EAAE,GAAG,QAAS,qBAAuBt4P,GAAU,CAGpE,MAAMouM,EAFQ,EAAEpuM,EAAM,MAAM,EAEV,QAAQ,IAAI,EACxBu4P,EAAYnqD,EAAI,KAAK,sBAAsB,EAC3CoqD,EAAkBpqD,EAAI,KAAK,sBAAsB,EACjDqqD,EAAYrqD,EAAI,KAAK,sBAAsB,EAEjDmqD,EAAU,KAAK,WAAY,EAAK,EAChCC,EAAgB,KAAK,WAAY,EAAK,EACtCA,EAAgB,WAAW,CACzB,OAAQ,aACR,UAAW,GACX,SAAU,GACV,UAAW,4BACnB,CAAO,EACDC,EAAU,KAAK,WAAY,EAAK,EAEhCrqD,EAAI,KAAK,OAAO,EAAE,KAAI,EACtBA,EAAI,KAAK,OAAO,EAAE,KAAI,CAC5B,CAAK,CACF,CAED,UAAW,CACT,EAAE,sBAAsB,EAAE,MAAOpuM,GAAU,CAGzC,MAAMouM,EAFQ,EAAEpuM,EAAM,MAAM,EAEV,QAAQ,IAAI,EACxBu4P,EAAYnqD,EAAI,KAAK,sBAAsB,EAC3CoqD,EAAkBpqD,EAAI,KAAK,sBAAsB,EACjDqqD,EAAYrqD,EAAI,KAAK,sBAAsB,EAEjDmqD,EAAU,IAAInqD,EAAI,KAAK,MAAM,CAAC,EAC9BmqD,EAAU,KAAK,WAAY,EAAI,EAC/BC,EAAgB,IAAIpqD,EAAI,KAAK,MAAM,CAAC,EACpCoqD,EAAgB,KAAK,WAAY,EAAI,EACrCC,EAAU,KAAK,UAAWrqD,EAAI,KAAK,yBAAyB,CAAC,EAC7DqqD,EAAU,KAAK,WAAY,EAAI,EAE/BrqD,EAAI,KAAK,OAAO,EAAE,KAAI,EACtBA,EAAI,KAAK,OAAO,EAAE,KAAI,CAC5B,CAAK,CACF,CAED,QAAS,CACP,EAAE,oBAAoB,EAAE,MAAOpuM,GAAU,CACvC,MAAM0X,EAAQ,EAAE1X,EAAM,MAAM,EAEtBouM,EAAM12L,EAAM,QAAQ,IAAI,EACxB6gP,EAAYnqD,EAAI,KAAK,sBAAsB,EAC3CoqD,EAAkBpqD,EAAI,KAAK,sBAAsB,EACjDqqD,EAAYrqD,EAAI,KAAK,sBAAsB,EAEjD,EAAE,KAAK,CACL,IAAK12L,EAAM,KAAK,KAAK,EACrB,OAAQ,MACR,KAAM,CACJ,aAAc,CACZ,kBAAmB6gP,EAAU,IAAK,EAClC,WAAYC,EAAgB,IAAK,EACjC,wBAAyBC,EAAU,GAAG,UAAU,CACjD,CACF,EAED,QAAS,IAAM,CACbF,EAAU,KAAK,WAAY,EAAI,EAC/BC,EAAgB,KAAK,WAAY,EAAI,EACrCC,EAAU,KAAK,WAAY,EAAI,EAE/BrqD,EAAI,KAAK,OAAQmqD,EAAU,IAAK,GAChCnqD,EAAI,KAAK,OAAQoqD,EAAgB,IAAK,GACtCpqD,EAAI,KAAK,0BAA2BqqD,EAAU,GAAG,UAAU,CAAC,EAC5DrqD,EAAI,KAAK,OAAO,EAAE,KAAI,EACtBA,EAAI,KAAK,OAAO,EAAE,KAAI,EAEtB,KAAK,OAAM,CACZ,CACT,CAAO,CACP,CAAK,CACF,CAED,UAAW,CACT,EAAE,sBAAsB,EAAE,MAAOpuM,GAAU,CACzC,MAAM0X,EAAQ,EAAE1X,EAAM,MAAM,EACtB04P,EAAQ,KAERtqD,EAAM12L,EAAM,QAAQ,IAAI,EACxB/W,EAAM+W,EAAM,KAAK,KAAK,EACtBihP,EAAcjhP,EAAM,KAAK,YAAY,EAE3C8iE,GAAM,IAAIm+K,CAAW,EAAE,KAAMz2P,GAAa,CACxC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EACxBkmE,EAAM,uBAAuB,oBAAoB,EAAE,CAAC,EAE5D,iBAAiB,QAAS,IAAM,CACtCoS,GACG,OAAO75E,CAAG,EACV,KAAK,IAAM,CACVytM,EAAI,OAAM,EACVsqD,EAAM,OAAM,EACZ,EAAEtwL,CAAK,EAAE,MAAM,MAAM,CACnC,CAAa,EACA,MAAM,IAAM,OAAO,cAAc,QAAS,sBAAsB,CAAC,CAC9E,CAAS,CACT,CAAO,CACP,CAAK,CACF,CAED,oBAAqB,CACnB,MAAMwwL,EAAU,SAAS,uBAAuB,mBAAmB,EAAE,CAAC,EAEjEA,IAELA,EAAQ,MAAM,YAAc,cAC5BA,EAAQ,MAAM,OAAS,YAEvB,WAAW,IAAM,CACfA,EAAQ,uBAAuB,eAAe,EAAI,CACnD,EAAE,GAAG,EACP,CACH,CC7Me,MAAKC,WAASxhC,EAAW,CAGtC,SAAU,CACR,MAAMyhC,EAAc,IAAIhB,GACxBgB,EAAY,KAAI,EAChB,KAAK,aACL,KAAK,aAAa,SAAW,KAAK,WAAW,MAAM,QAAU,EAE7D,KAAK,WAAW,iBAAiB,SAAW94P,GAAS,CACnD,KAAK,aAAa,SAAWA,EAAM,OAAO,MAAM,QAAU,CAChE,CAAK,EAED,KAAK,QAAQ,iBAAiB,SAAWA,GAAU,CACjDA,EAAM,eAAc,EAEpB,MAAMwJ,EAAU,CACd,OAAQ,KAAK,QAAQ,aAAa,QAAQ,GAAK,OAC/C,IAAK,KAAK,QAAQ,aAAa,QAAQ,EACvC,KAAM,IAAI,SAAS,KAAK,OAAO,CAChC,EAEDgxE,GAAMhxE,CAAO,EACV,KAAMtH,GAAa,MAAM,oBAAoBA,EAAS,IAAI,CAAC,EAC3D,MAAO0D,GAAU,CAAE,MAAM,oBAAoBA,EAAM,SAAS,IAAI,EAAG,CAC5E,CAAK,EAEwB,SAAS,cAAc,qBAAqB,EAEpD,iBAAiB,oBAAqB,IAAM,CAC3D,KAAK,aAAa,SAAW,GAE7B,MAAMmzP,EAAc,KAAK,QAAQ,QAAQ,YAEzC,IAAId,EAAU,EAAE,gDAAgD,EAAE,IAAG,EACjEz0J,EAAQ,EAAE,6CAA6C,EAAE,IAAG,EAC5Dw1J,EAAUD,EAAY,QAAQ,kBAAmB,sBAAsB,EAC3EC,GAAW,oBAAoBf,GAAW,EAAE,eAAez0J,CAAK,GAEhEhpB,GAAM,IAAIw+K,CAAO,EAAE,KAAM/zP,GAAY,CACnC,EAAE,iCAAiC,EAAE,MAAK,EAAG,OAAOA,EAAQ,IAAI,EAChE,MAAMg0P,EAAe,SAAS,cAAc,qBAAqB,EACzC,KAAK,YAAY,qCAAqCA,EAAc,WAAW,EAGvF,QAAO,EACvBH,EAAY,KAAI,CACxB,CAAO,CACP,CAAK,CACF,CAED,UAAU,EAAG,CACX,EAAE,eAAc,EAChB,KAAK,aAAa,EAAE,OAAQ,MAAM,CACnC,CAED,aAAa,EAAG,CACd,EAAE,eAAc,EAChB,KAAK,aAAa,EAAE,OAAQ,QAAQ,CACrC,CAED,aAAa7+F,EAAQ30J,EAAQ,CAC3B,MAAM3E,EAAMs5J,EAAO,QAAQ,IACrBi/F,EAASj/F,EAAO,QAAQ,IAAI,EAElCz/E,GAAM,CAAE,OAAQl1E,EAAQ,IAAK3E,EAAK,EAAE,KAAMuB,GAAa,CACrDg3P,EAAO,UAAYh3P,EAAS,KAAK,OACvC,CAAK,EAAE,MAAM,IAAM,OAAO,cAAc,QAAS,sBAAsB,CAAC,CACrE,CACH,CApEEk4L,GADkBy+D,GACX,UAAU,CAAC,SAAU,MAAM,GCL7B,SAASM,GAAcC,EAAY,CACxC,GAAIA,EAAY,CACd,IAAIC,EAAc,IAAI,IAAID,EAAY,OAAO,SAAS,MAAM,EAC5DC,EAAY,aAAa,IAAI,KAAM,KAAK,IAAG,CAAE,EAC7C,OAAO,SAAWA,EAAY,SAAU,CACzC,CACH,CCAA,MAAMC,YAAsCjiC,EAAW,CACrD,SAAU,CACsB,SAAS,cAAc,sBAAsB,EAEjD,QAAU,OAClC,KAAK,QAAQ,OAEhB,CAED,KAAK,EAAG,CACN,EAAE,eAAc,EAEhB,MAAMp9D,EAAS,EAAE,OACX,CAAE,IAAAt5J,CAAK,EAAG,EAAE,OAAO,QACnB,CAAE,SAAA44P,EAAU,YAAAC,EAAa,aAAAC,CAAc,EAAG,EAAE,OAAO,QAEzD,GAAIx/F,EAAO,SAAU,MAAO,GAG5B,GAFAA,EAAO,SAAW,GAEds/F,IAAa,UACf/+K,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CAC1D,WAAW,IAAM,CAAE+3J,EAAO,SAAW,EAAK,EAAI,GAAG,CAClD,EAAE,EAEH7xF,EAAM,iBAAiB,oBAAqB,IAAM,CAChD,EAAEA,CAAK,EAAE,MAAM,MAAM,CAC/B,CAAS,CACT,CAAO,EAAE,MAAO90D,GAAM,CACVA,EAAE,SAAS,SAAW,IACxB,OAAO,SAAS,SAEhB2mJ,EAAO,SAAW,EAE5B,CAAO,MACI,CACL,MAAMz6J,EAAU,iDAAmDg6P,EAAc,MAAQC,EACzE,iFAChB9vC,GAAU,QAAQnqN,EAAS,KAAM,KAAM,EAAK,EAC5Cy6J,EAAO,SAAW,EACnB,CACF,CAED,WAAW,EAAG,CACZ,KAAM,CAAE,IAAAt5J,CAAK,EAAG,EAAE,OAAO,QAEzBw4P,GAAcx4P,CAAG,CAClB,CACH,CCnDA,MAAM+4P,IAAc,ggKAEdC,IAAe,2mBASfpmM,GAAS,CAAC3zD,EAAQm7B,IAAe,CACrC,UAAWjpB,KAAOipB,EAChBn7B,EAAOkS,CAAG,EAAIipB,EAAWjpB,CAAG,EAE9B,OAAOlS,CACT,EAgBMssO,GAAU,UACV+F,GAAQ,QACR2nB,GAAQ,QACRC,GAAe,eACfC,GAAe,eACf9iL,GAAS,SACT+iL,GAAQ,QACRC,IAAS,SACTC,IAAc,cACdp6O,GAAa,aAQnB,SAASq6O,IAAcz6P,EAAMqiB,EAAQ,CACnC,OAAMriB,KAAQqiB,IACZA,EAAOriB,CAAI,EAAI,IAEVqiB,EAAOriB,CAAI,CACpB,CAQA,SAAS06P,GAAY,EAAGxtJ,EAAO7qF,EAAQ,CACjC6qF,EAAMu/H,EAAO,IACfv/H,EAAMktJ,EAAY,EAAI,GACtBltJ,EAAMmtJ,EAAY,EAAI,IAEpBntJ,EAAMslI,EAAK,IACbtlI,EAAMktJ,EAAY,EAAI,GACtBltJ,EAAMitJ,EAAK,EAAI,IAEbjtJ,EAAMktJ,EAAY,IACpBltJ,EAAMmtJ,EAAY,EAAI,IAEpBntJ,EAAMitJ,EAAK,IACbjtJ,EAAMmtJ,EAAY,EAAI,IAEpBntJ,EAAMmtJ,EAAY,IACpBntJ,EAAM31B,EAAM,EAAI,IAEd21B,EAAMotJ,EAAK,IACbptJ,EAAM31B,EAAM,EAAI,IAElB,UAAW3/D,KAAKs1F,EAAO,CACrB,MAAM7R,EAAQo/J,IAAc7iP,EAAGyK,CAAM,EACjCg5E,EAAM,QAAQ,CAAC,EAAI,GACrBA,EAAM,KAAK,CAAC,CAEf,CACH,CAQA,SAASs/J,IAAc,EAAGt4O,EAAQ,CAChC,MAAMhe,EAAS,GACf,UAAWuR,KAAKyM,EACVA,EAAOzM,CAAC,EAAE,QAAQ,CAAC,GAAK,IAC1BvR,EAAOuR,CAAC,EAAI,IAGhB,OAAOvR,CACT,CAoBA,SAASu0D,GAAM3wD,EAAO,CAChBA,IAAU,SACZA,EAAQ,MAIV,KAAK,EAAI,GAGT,KAAK,GAAK,GAEV,KAAK,GAAK,KAEV,KAAK,EAAIA,CACX,CAMA2wD,GAAM,OAAS,GACfA,GAAM,UAAY,CAChB,SAAU,CACR,MAAO,CAAC,CAAC,KAAK,CACf,EAOD,GAAGvwD,EAAO,CACR,MAAM6H,EAAQ,KACR2nD,EAAY3nD,EAAM,EAAE7H,CAAK,EAC/B,GAAIwvD,EACF,OAAOA,EAET,QAAStzD,EAAI,EAAGA,EAAI2L,EAAM,GAAG,OAAQ3L,IAAK,CACxC,MAAMovG,EAAQzjG,EAAM,GAAG3L,CAAC,EAAE,CAAC,EACrBszD,EAAY3nD,EAAM,GAAG3L,CAAC,EAAE,CAAC,EAC/B,GAAIszD,GAAa87C,EAAM,KAAKtrG,CAAK,EAC/B,OAAOwvD,CAEV,CAED,OAAO3nD,EAAM,EACd,EAQD,IAAI7H,EAAOuyP,EAAW,CACpB,OAAIA,IAAc,SAChBA,EAAY,IAEPA,EAAYvyP,KAAS,KAAK,EAAI,CAAC,CAAC,KAAK,GAAGA,CAAK,CACrD,EASD,GAAGwyP,EAAQvgP,EAAM4yF,EAAO7qF,EAAQ,CAC9B,QAAS9d,EAAI,EAAGA,EAAIs2P,EAAO,OAAQt2P,IACjC,KAAK,GAAGs2P,EAAOt2P,CAAC,EAAG+V,EAAM4yF,EAAO7qF,CAAM,CAEzC,EAUD,GAAGkuI,EAAQj2I,EAAM4yF,EAAO7qF,EAAQ,CAC9BA,EAASA,GAAUu2C,GAAM,OACzB,IAAIf,EACJ,OAAIv9C,GAAQA,EAAK,EACfu9C,EAAYv9C,GAGZu9C,EAAY,IAAIe,GAAMt+C,CAAI,EACtB4yF,GAAS7qF,GACXq4O,GAAYpgP,EAAM4yF,EAAO7qF,CAAM,GAGnC,KAAK,GAAG,KAAK,CAACkuI,EAAQ14F,CAAS,CAAC,EACzBA,CACR,EAWD,GAAGxvD,EAAOiS,EAAM4yF,EAAO7qF,EAAQ,CAC7B,IAAInS,EAAQ,KACZ,MAAMiN,EAAM9U,EAAM,OAClB,GAAI,CAAC8U,EACH,OAAOjN,EAET,QAAS3L,EAAI,EAAGA,EAAI4Y,EAAM,EAAG5Y,IAC3B2L,EAAQA,EAAM,GAAG7H,EAAM9D,CAAC,CAAC,EAE3B,OAAO2L,EAAM,GAAG7H,EAAM8U,EAAM,CAAC,EAAG7C,EAAM4yF,EAAO7qF,CAAM,CACpD,EA2BD,GAAGha,EAAOiS,EAAM4yF,EAAO7qF,EAAQ,CAC7BA,EAASA,GAAUu2C,GAAM,OACzB,MAAM1oD,EAAQ,KAGd,GAAIoK,GAAQA,EAAK,EACf,OAAApK,EAAM,EAAE7H,CAAK,EAAIiS,EACVA,EAET,MAAMhB,EAAIgB,EAIV,IAAIu9C,EACFijM,EAAgB5qP,EAAM,GAAG7H,CAAK,EAUhC,GATIyyP,GACFjjM,EAAY,IAAIe,GAChB9E,GAAO+D,EAAU,EAAGijM,EAAc,CAAC,EACnCjjM,EAAU,GAAG,KAAK,MAAMA,EAAU,GAAIijM,EAAc,EAAE,EACtDjjM,EAAU,GAAKijM,EAAc,GAC7BjjM,EAAU,EAAIijM,EAAc,GAE5BjjM,EAAY,IAAIe,GAEdt/C,EAAG,CAEL,GAAI+I,EACF,GAAIw1C,EAAU,GAAK,OAAOA,EAAU,GAAM,SAAU,CAClD,MAAMkjM,EAAWjnM,GAAO6mM,IAAc9iM,EAAU,EAAGx1C,CAAM,EAAG6qF,CAAK,EACjEwtJ,GAAYphP,EAAGyhP,EAAU14O,CAAM,CAChC,MAAU6qF,GACTwtJ,GAAYphP,EAAG4zF,EAAO7qF,CAAM,EAGhCw1C,EAAU,EAAIv+C,CACf,CAED,OAAApJ,EAAM,EAAE7H,CAAK,EAAIwvD,EACVA,CACR,CACH,EAWA,MAAMtqB,GAAK,CAACr9B,EAAO7H,EAAOiS,EAAM4yF,EAAO7qF,IAAWnS,EAAM,GAAG7H,EAAOiS,EAAM4yF,EAAO7qF,CAAM,EAU/E0U,GAAK,CAAC7mB,EAAOqgJ,EAAQj2I,EAAM4yF,EAAO7qF,IAAWnS,EAAM,GAAGqgJ,EAAQj2I,EAAM4yF,EAAO7qF,CAAM,EAUjFs9M,GAAK,CAACzvN,EAAO7H,EAAOiS,EAAM4yF,EAAO7qF,IAAWnS,EAAM,GAAG7H,EAAOiS,EAAM4yF,EAAO7qF,CAAM,EAU/E24O,GAAK,CAAC9qP,EAAO7H,EAAOiS,EAAM4yF,EAAO7qF,IAAWnS,EAAM,GAAG7H,EAAOiS,EAAM4yF,EAAO7qF,CAAM,EAQ/E44O,GAAO,OACPC,GAAQ,QAGRC,GAAY,YAGZC,GAAM,MAGNC,GAAO,OAKPC,GAAS,SAKTC,GAAe,eAGfC,GAAM,MAGNC,GAAK,KAGLC,GAAO,KAGPC,GAAY,YACZC,GAAc,cACdC,GAAmB,mBACnBC,GAAY,YACZC,GAAa,aACbC,GAAe,eACfC,GAAoB,oBACpBC,GAAa,aAGbC,GAAY,YACZC,GAAa,aACbC,GAAW,WACXC,GAAK,KACLC,GAAY,YACZC,GAAW,WACXC,GAAQ,QACRC,GAAQ,QACRC,GAAQ,QACRC,GAAS,SACTC,GAAM,MACNC,GAAS,SACTC,GAAc,cACdC,GAAS,SACTC,GAAU,UACVC,GAAO,OACPC,GAAO,OACPC,GAAQ,QACRC,GAAQ,QACRC,GAAQ,QAERC,GAAO,OACPC,GAAQ,QACRC,GAAQ,QACRC,GAAa,aAGbC,GAAU,QAGVC,GAAM,MAEZ,IAAIC,GAAkB,OAAO,OAAO,CACnC,UAAW,KACX,KAAM5C,GACN,MAAOC,GACP,UAAWC,GACX,IAAKC,GACL,KAAMC,GACN,OAAQC,GACR,aAAcC,GACd,IAAKC,GACL,GAAIC,GACJ,GAAIC,GACJ,UAAWC,GACX,YAAaC,GACb,iBAAkBC,GAClB,UAAWC,GACX,WAAYC,GACZ,aAAcC,GACd,kBAAmBC,GACnB,WAAYC,GACZ,UAAWC,GACX,WAAYC,GACZ,SAAUC,GACV,GAAIC,GACJ,UAAWC,GACX,SAAUC,GACV,MAAOC,GACP,MAAOC,GACP,MAAOC,GACP,OAAQC,GACR,IAAKC,GACL,OAAQC,GACR,YAAaC,GACb,OAAQC,GACR,QAASC,GACT,KAAMC,GACN,KAAMC,GACN,MAAOC,GACP,MAAOC,GACP,MAAOC,GACP,KAAMC,GACN,MAAOC,GACP,MAAOC,GACP,WAAYC,GACZ,MAAOC,GACP,IAAKC,EACN,CAAC,EAGD,MAAME,GAAe,QACfC,GAAS,uBAAQ,EACjBC,GAAQ,2BAAY,EAEpBC,GAAQ,KACRC,GAAQ,KAgBRC,GAAK;AAAA,EACLC,IAAkB,IAClBC,IAAe,IAErB,IAAIC,GAAO,KACTC,GAAQ,KAuBV,SAASC,IAAOC,EAAe,CACzBA,IAAkB,SACpBA,EAAgB,IAIlB,MAAMp8O,EAAS,GACfu2C,GAAM,OAASv2C,EAEf,MAAMq8O,EAAQ,IAAI9lM,GACd0lM,IAAQ,OACVA,GAAOK,GAAW1E,GAAW,GAE3BsE,IAAS,OACXA,GAAQI,GAAWzE,GAAY,GAIjCc,GAAG0D,EAAO,IAAKtC,EAAU,EACzBpB,GAAG0D,EAAO,IAAK/C,EAAS,EACxBX,GAAG0D,EAAO,IAAK9C,EAAW,EAC1BZ,GAAG0D,EAAO,IAAK7C,EAAgB,EAC/Bb,GAAG0D,EAAO,IAAK5C,EAAS,EACxBd,GAAG0D,EAAO,IAAK3C,EAAU,EACzBf,GAAG0D,EAAO,IAAK1C,EAAY,EAC3BhB,GAAG0D,EAAO,IAAKzC,EAAiB,EAChCjB,GAAG0D,EAAO,IAAKxC,EAAU,EACzBlB,GAAG0D,EAAO,IAAKvC,EAAS,EACxBnB,GAAG0D,EAAO,IAAKrC,EAAQ,EACvBrB,GAAG0D,EAAO,IAAKpC,EAAE,EACjBtB,GAAG0D,EAAO,IAAKlC,EAAQ,EACvBxB,GAAG0D,EAAO,IAAKjC,EAAK,EACpBzB,GAAG0D,EAAO,IAAKhC,EAAK,EACpB1B,GAAG0D,EAAO,IAAK/B,EAAK,EACpB3B,GAAG0D,EAAO,IAAK9B,EAAM,EACrB5B,GAAG0D,EAAO,IAAK7B,EAAG,EAClB7B,GAAG0D,EAAO,IAAK5B,EAAM,EACrB9B,GAAG0D,EAAO,IAAK3B,EAAW,EAC1B/B,GAAG0D,EAAO,IAAK1B,EAAM,EACrBhC,GAAG0D,EAAO,IAAKzB,EAAO,EACtBjC,GAAG0D,EAAO,IAAKxB,EAAI,EACnBlC,GAAG0D,EAAO,IAAKvB,EAAI,EACnBnC,GAAG0D,EAAO,IAAKtB,EAAK,EACpBpC,GAAG0D,EAAO,IAAKrB,EAAK,EACpBrC,GAAG0D,EAAO,IAAKpB,EAAK,EACpBtC,GAAG0D,EAAO,IAAKlB,EAAK,EACpBxC,GAAG0D,EAAO,IAAKnB,EAAI,EACnBvC,GAAG0D,EAAO,IAAKjB,EAAK,EACpBzC,GAAG0D,EAAO,IAAKhB,EAAU,EACzB1C,GAAG0D,EAAO,KAAMnC,EAAS,EACzB,MAAMqC,EAAM7nO,GAAG2nO,EAAOT,GAAOzC,GAAK,CAChC,CAAC/uB,EAAO,EAAG,EACf,CAAG,EACD11M,GAAG6nO,EAAKX,GAAOW,CAAG,EAGlB,MAAMC,EAAO9nO,GAAG2nO,EAAOZ,GAAc7C,GAAM,CACzC,CAACzoB,EAAK,EAAG,EACb,CAAG,EACDz7M,GAAG8nO,EAAMf,GAAce,CAAI,EAG3B,MAAMC,EAAQ/nO,GAAG2nO,EAAOX,GAAQ7C,GAAO,CACrC,CAACf,EAAK,EAAG,EACb,CAAG,EACDpjO,GAAG+nO,EAAOhB,EAAY,EACtB/mO,GAAG+nO,EAAOf,GAAQe,CAAK,EAKvB,MAAMC,EAAKhoO,GAAG2nO,EAAOR,GAAOzC,GAAI,CAC9B,CAACr7O,EAAU,EAAG,EAClB,CAAG,EACD46O,GAAG0D,EAAOP,GAAIzC,GAAM,CAClB,CAACt7O,EAAU,EAAG,EAClB,CAAG,EACD46O,GAAG+D,EAAIZ,EAAE,EACTpnO,GAAGgoO,EAAIb,GAAOa,CAAE,EAIhB,MAAMC,EAAQjoO,GAAG2nO,EAAOV,GAAOL,GAAS,CACtC,CAACrD,EAAK,EAAG,EACb,CAAG,EACDvjO,GAAGioO,EAAOhB,GAAOgB,CAAK,EACtBhE,GAAGgE,EAAOZ,IAAiBY,CAAK,EAGhC,MAAMC,EAAcjE,GAAGgE,EAAOX,GAAY,EAC1CtnO,GAAGkoO,EAAajB,GAAOgB,CAAK,EAK5B,MAAME,EAAS,CAAC,CAACpB,GAAce,CAAI,CAAC,EAC9BM,EAAU,CAAC,CAACrB,GAAc,IAAI,EAAG,CAACC,GAAQe,CAAK,CAAC,EACtD,QAASv6P,EAAI,EAAGA,EAAI+5P,GAAK,OAAQ/5P,IAC/B66P,GAAOV,EAAOJ,GAAK/5P,CAAC,EAAG62P,GAAKH,GAAMiE,CAAM,EAE1C,QAAS36P,EAAI,EAAGA,EAAIg6P,GAAM,OAAQh6P,IAChC66P,GAAOV,EAAOH,GAAMh6P,CAAC,EAAG82P,GAAMH,GAAOiE,CAAO,EAE9CzE,GAAYU,GAAK,CACf,IAAK,GACL,MAAO,EACR,EAAE/4O,CAAM,EACTq4O,GAAYW,GAAM,CAChB,KAAM,GACN,MAAO,EACR,EAAEh5O,CAAM,EAKT+8O,GAAOV,EAAO,OAAQpD,GAAQL,GAAMiE,CAAM,EAC1CE,GAAOV,EAAO,SAAUpD,GAAQL,GAAMiE,CAAM,EAC5CE,GAAOV,EAAO,OAAQnD,GAAcN,GAAMiE,CAAM,EAChDE,GAAOV,EAAO,QAASnD,GAAcN,GAAMiE,CAAM,EACjDE,GAAOV,EAAO,MAAOnD,GAAcN,GAAMiE,CAAM,EAC/CE,GAAOV,EAAO,OAAQnD,GAAcN,GAAMiE,CAAM,EAChDxE,GAAYY,GAAQ,CAClB,OAAQ,GACR,MAAO,EACR,EAAEj5O,CAAM,EACTq4O,GAAYa,GAAc,CACxB,YAAa,GACb,MAAO,EACR,EAAEl5O,CAAM,EAGTo8O,EAAgBA,EAAc,KAAK,CAAC3+O,EAAGC,IAAMD,EAAE,CAAC,EAAIC,EAAE,CAAC,EAAI,EAAI,EAAE,EACjE,QAASxb,EAAI,EAAGA,EAAIk6P,EAAc,OAAQl6P,IAAK,CAC7C,MAAM86P,EAAMZ,EAAcl6P,CAAC,EAAE,CAAC,EAExB2oG,EADqBuxJ,EAAcl6P,CAAC,EAAE,CAAC,EACV,CACjC,CAACg2P,GAAM,EAAG,EAChB,EAAQ,CACF,CAACC,GAAW,EAAG,EACrB,EACQ6E,EAAI,QAAQ,GAAG,GAAK,EACtBnyJ,EAAM31B,EAAM,EAAI,GACNumL,GAAa,KAAKuB,CAAG,EAEtBpB,GAAM,KAAKoB,CAAG,EACvBnyJ,EAAMktJ,EAAY,EAAI,GAEtBltJ,EAAMslI,EAAK,EAAI,GAJftlI,EAAMu/H,EAAO,EAAI,GAMnB9M,GAAG++B,EAAOW,EAAKA,EAAKnyJ,CAAK,CAC1B,CAGD,OAAAyyH,GAAG++B,EAAO,YAAavD,GAAW,CAChC,MAAO,EACX,CAAG,EAGDuD,EAAM,GAAK,IAAI9lM,GAAMglM,EAAG,EACjB,CACL,MAAOc,EACP,OAAQ5qM,GAAO,CACb,OAAAzxC,CACD,EAAEw7O,EAAE,CACT,CACA,CAWA,SAASyB,IAAMrrP,EAAOyhE,EAAK,CAKzB,MAAM6pL,EAAWC,IAAc9pL,EAAI,QAAQ,SAAU9/D,GAAKA,EAAE,YAAa,EAAC,EACpE6pP,EAAYF,EAAS,OACrBv4O,EAAS,GAIf,IAAIo8D,EAAS,EAGTs8K,EAAa,EAGjB,KAAOA,EAAaD,GAAW,CAC7B,IAAIvvP,EAAQ+D,EACR4jD,EAAY,KACZ8nM,EAAc,EACdC,EAAkB,KAClBC,EAAe,GACfC,EAAoB,GACxB,KAAOJ,EAAaD,IAAc5nM,EAAY3nD,EAAM,GAAGqvP,EAASG,CAAU,CAAC,IACzExvP,EAAQ2nD,EAGJ3nD,EAAM,WACR2vP,EAAe,EACfC,EAAoB,EACpBF,EAAkB1vP,GACT2vP,GAAgB,IACzBA,GAAgBN,EAASG,CAAU,EAAE,OACrCI,KAEFH,GAAeJ,EAASG,CAAU,EAAE,OACpCt8K,GAAUm8K,EAASG,CAAU,EAAE,OAC/BA,IAIFt8K,GAAUy8K,EACVH,GAAcI,EACdH,GAAeE,EAGf74O,EAAO,KAAK,CACV,EAAG44O,EAAgB,EAEnB,EAAGlqL,EAAI,MAAM0N,EAASu8K,EAAav8K,CAAM,EAEzC,EAAGA,EAASu8K,EAEZ,EAAGv8K,CACT,CAAK,CACF,CAED,OAAOp8D,CACT,CAaA,SAASw4O,IAAc9pL,EAAK,CAC1B,MAAMrxE,EAAS,GACT8Y,EAAMu4D,EAAI,OAChB,IAAI/nE,EAAQ,EACZ,KAAOA,EAAQwP,GAAK,CAClB,IAAIS,EAAQ83D,EAAI,WAAW/nE,CAAK,EAC5BkQ,EACAw/D,EAAOz/D,EAAQ,OAAUA,EAAQ,OAAUjQ,EAAQ,IAAMwP,IAAQU,EAAS63D,EAAI,WAAW/nE,EAAQ,CAAC,GAAK,OAAUkQ,EAAS,MAAS63D,EAAI/nE,CAAK,EAC9I+nE,EAAI,MAAM/nE,EAAOA,EAAQ,CAAC,EAC5BtJ,EAAO,KAAKg5E,CAAI,EAChB1vE,GAAS0vE,EAAK,MACf,CACD,OAAOh5E,CACT,CAWA,SAAS+6P,GAAOlvP,EAAO7H,EAAOiR,EAAGymP,EAAUC,EAAI,CAC7C,IAAI1lP,EACJ,MAAM6C,EAAM9U,EAAM,OAClB,QAAS9D,EAAI,EAAGA,EAAI4Y,EAAM,EAAG5Y,IAAK,CAChC,MAAM84E,EAAOh1E,EAAM9D,CAAC,EAChB2L,EAAM,EAAEmtE,CAAI,EACd/iE,EAAOpK,EAAM,EAAEmtE,CAAI,GAEnB/iE,EAAO,IAAIs+C,GAAMmnM,CAAQ,EACzBzlP,EAAK,GAAK0lP,EAAG,QACb9vP,EAAM,EAAEmtE,CAAI,EAAI/iE,GAElBpK,EAAQoK,CACT,CACD,OAAAA,EAAO,IAAIs+C,GAAMt/C,CAAC,EAClBgB,EAAK,GAAK0lP,EAAG,QACb9vP,EAAM,EAAE7H,EAAM8U,EAAM,CAAC,CAAC,EAAI7C,EACnBA,CACT,CAQA,SAASqkP,GAAWsB,EAAS,CAC3B,MAAMC,EAAQ,GACRpyO,EAAQ,GACd,IAAIvpB,EAAI,EACJqmO,EAAS,aACb,KAAOrmO,EAAI07P,EAAQ,QAAQ,CACzB,IAAIE,EAAgB,EACpB,KAAOv1B,EAAO,QAAQq1B,EAAQ17P,EAAI47P,CAAa,CAAC,GAAK,GACnDA,IAGF,GAAIA,EAAgB,EAAG,CACrBD,EAAM,KAAKpyO,EAAM,KAAK,EAAE,CAAC,EACzB,QAASsyO,EAAW,SAASH,EAAQ,UAAU17P,EAAGA,EAAI47P,CAAa,EAAG,EAAE,EAAGC,EAAW,EAAGA,IACvFtyO,EAAM,IAAG,EAEXvpB,GAAK47P,CACX,MACMryO,EAAM,KAAKmyO,EAAQ17P,CAAC,CAAC,EACrBA,GAEH,CACD,OAAO27P,CACT,CAmFA,MAAM/pP,GAAW,CACf,gBAAiB,OACjB,OAAQ,KACR,OAAQssD,GACR,WAAYA,GACZ,MAAO,GACP,QAAS,IACT,OAAQ,KACR,IAAK,KACL,SAAU,GACV,SAAU,IACV,UAAW,KACX,WAAY,KACZ,WAAY,CAAE,EACd,OAAQ,IACV,EAYA,SAAS49L,GAAQ1lO,EAAM2lO,EAAe,CAChCA,IAAkB,SACpBA,EAAgB,MAElB,IAAIj3N,EAAIyqB,GAAO,CAAE,EAAE39C,EAAQ,EACvBwkB,IACF0O,EAAIyqB,GAAOzqB,EAAG1O,aAAgB0lO,GAAU1lO,EAAK,EAAIA,CAAI,GAIvD,MAAM4lO,EAAcl3N,EAAE,WAChBm3N,EAAuB,GAC7B,QAAS,EAAI,EAAG,EAAID,EAAY,OAAQ,IACtCC,EAAqB,KAAKD,EAAY,CAAC,EAAE,YAAa,GAGxD,KAAK,EAAIl3N,EACLi3N,IACF,KAAK,cAAgBA,GAEvB,KAAK,WAAaE,CACpB,CACAH,GAAQ,UAAY,CAClB,EAAGlqP,GAIH,WAAY,CAAE,EAKd,cAAcsqP,EAAI,CAChB,OAAOA,CACR,EAOD,MAAMx4P,EAAO,CACX,OAAO,KAAK,IAAI,WAAYA,EAAM,SAAQ,EAAIA,CAAK,CACpD,EAcD,IAAIoK,EAAK6S,EAAUjd,EAAO,CACxB,MAAMy4P,EAAax7O,GAAY,KAC/B,IAAIrX,EAAS,KAAK,EAAEwE,CAAG,EACvB,OAAKxE,IAGD,OAAOA,GAAW,UACpBA,EAAS5F,EAAM,KAAK4F,EAASA,EAAO5F,EAAM,CAAC,EAAIkO,GAAS9D,CAAG,EACvD,OAAOxE,GAAW,YAAc6yP,IAClC7yP,EAASA,EAAOqX,EAAUjd,CAAK,IAExB,OAAO4F,GAAW,YAAc6yP,IACzC7yP,EAASA,EAAOqX,EAAUjd,EAAM,EAAGA,CAAK,GAEnC4F,EACR,EAQD,OAAOwE,EAAK6S,EAAUjd,EAAO,CAC3B,IAAIgR,EAAM,KAAK,EAAE5G,CAAG,EACpB,OAAI,OAAO4G,GAAQ,YAAciM,GAAY,OAC3CjM,EAAMA,EAAIiM,EAAUjd,EAAM,EAAGA,CAAK,GAE7BgR,CACR,EAQD,OAAOhR,EAAO,CACZ,MAAMw4P,EAAKx4P,EAAM,OAAO,IAAI,EAE5B,OADiB,KAAK,IAAI,SAAU,KAAMA,CAAK,GAAK,KAAK,eACzCw4P,EAAIx4P,EAAM,EAAGA,CAAK,CACnC,CACH,EACA,SAASw6D,GAAKhmD,EAAK,CACjB,OAAOA,CACT,CAEA,IAAI1S,GAAuB,OAAO,OAAO,CACxC,UAAW,KACX,SAAUoM,GACV,QAASkqP,GACT,OAAQvsM,EACT,CAAC,EAWD,SAAS6sM,GAAWjgQ,EAAOsmB,EAAQ,CACjC,KAAK,EAAI,QACT,KAAK,EAAItmB,EACT,KAAK,GAAKsmB,CACZ,CAeA25O,GAAW,UAAY,CACrB,OAAQ,GAKR,UAAW,CACT,OAAO,KAAK,CACb,EAOD,OAAOpG,EAAQ,CACb,OAAO,KAAK,UACb,EAKD,kBAAkBxwP,EAAS,CACzB,MAAM0S,EAAM,KAAK,WACX2N,EAAWrgB,EAAQ,IAAI,WAAY0S,EAAK,IAAI,EAC5C6jN,EAAYv2N,EAAQ,IAAI,SAAU0S,EAAK,IAAI,EACjD,OAAO2N,GAAYk2M,EAAU,OAASl2M,EAAWk2M,EAAU,UAAU,EAAGl2M,CAAQ,EAAI,IAAMk2M,CAC3F,EAMD,gBAAgBv2N,EAAS,CACvB,OAAOA,EAAQ,IAAI,aAAc,KAAK,OAAOA,EAAQ,IAAI,iBAAiB,CAAC,EAAG,IAAI,CACnF,EAKD,YAAa,CACX,OAAO,KAAK,GAAG,CAAC,EAAE,CACnB,EAMD,UAAW,CACT,OAAO,KAAK,GAAG,KAAK,GAAG,OAAS,CAAC,EAAE,CACpC,EAUD,SAAS62P,EAAU,CACjB,OAAIA,IAAa,SACfA,EAAWzqP,GAAS,iBAEf,CACL,KAAM,KAAK,EACX,MAAO,KAAK,SAAU,EACtB,OAAQ,KAAK,OACb,KAAM,KAAK,OAAOyqP,CAAQ,EAC1B,MAAO,KAAK,WAAY,EACxB,IAAK,KAAK,SAAU,CAC1B,CACG,EAKD,kBAAkB72P,EAAS,CACzB,MAAO,CACL,KAAM,KAAK,EACX,MAAO,KAAK,kBAAkBA,CAAO,EACrC,OAAQ,KAAK,OACb,KAAM,KAAK,gBAAgBA,CAAO,EAClC,MAAO,KAAK,WAAY,EACxB,IAAK,KAAK,SAAU,CAC1B,CACG,EAMD,SAASA,EAAS,CAChB,OAAOA,EAAQ,IAAI,WAAY,KAAK,SAAQ,EAAI,IAAI,CACrD,EAKD,OAAOA,EAAS,CACd,MAAM9B,EAAQ,KACRs0D,EAAO,KAAK,OAAOxyD,EAAQ,IAAI,iBAAiB,CAAC,EACjD82P,EAAgB92P,EAAQ,IAAI,aAAcwyD,EAAM,IAAI,EACpDnvD,EAAUrD,EAAQ,IAAI,UAAWwyD,EAAMt0D,CAAK,EAC5CzC,EAAU,KAAK,kBAAkBuE,CAAO,EACxCuW,EAAa,GACb6D,EAAYpa,EAAQ,IAAI,YAAawyD,EAAMt0D,CAAK,EAChD9H,EAAS4J,EAAQ,IAAI,SAAUwyD,EAAMt0D,CAAK,EAC1C64P,EAAM/2P,EAAQ,IAAI,MAAOwyD,EAAMt0D,CAAK,EACpCgb,EAAQlZ,EAAQ,OAAO,aAAcwyD,EAAMt0D,CAAK,EAChD84P,EAAiBh3P,EAAQ,OAAO,SAAUwyD,EAAMt0D,CAAK,EAC3D,OAAAqY,EAAW,KAAOugP,EACd18O,IACF7D,EAAW,MAAQ6D,GAEjBhkB,IACFmgB,EAAW,OAASngB,GAElB2gQ,IACFxgP,EAAW,IAAMwgP,GAEf79O,GACF6wC,GAAOxzC,EAAY2C,CAAK,EAEnB,CACL,QAAA7V,EACA,WAAAkT,EACA,QAAA9a,EACA,eAAAu7P,CACN,CACG,CACH,EAQA,SAASC,GAAiBv2P,EAAMqpB,EAAO,CACrC,MAAMmtO,UAAcN,EAAW,CAC7B,YAAYjgQ,EAAOsmB,EAAQ,CACzB,MAAMtmB,EAAOsmB,CAAM,EACnB,KAAK,EAAIvc,CACV,CACF,CACD,UAAWovB,KAAK/F,EACdmtO,EAAM,UAAUpnO,CAAC,EAAI/F,EAAM+F,CAAC,EAE9B,OAAAonO,EAAM,EAAIx2P,EACHw2P,CACT,CAKA,MAAMC,GAAQF,GAAiB,QAAS,CACtC,OAAQ,GACR,QAAS,CACP,MAAO,UAAY,KAAK,UACzB,CACH,CAAC,EAKKl5E,GAAOk5E,GAAiB,MAAM,EAM9BG,IAAKH,GAAiB,IAAI,EAM1BI,GAAMJ,GAAiB,MAAO,CAClC,OAAQ,GAQR,OAAOzG,EAAQ,CACb,OAAIA,IAAW,SACbA,EAASpkP,GAAS,iBAGb,KAAK,cAAgB,KAAK,EAAI,GAAGokP,CAAM,MAAM,KAAK,CAAC,EAC3D,EAKD,aAAc,CACZ,MAAMvzO,EAAS,KAAK,GACpB,OAAOA,EAAO,QAAU,GAAKA,EAAO,CAAC,EAAE,IAAMm0O,IAAan0O,EAAO,CAAC,EAAE,IAAM01O,EAC3E,CACH,CAAC,EA2BK2E,GAAYnjP,GAAO,IAAI06C,GAAM16C,CAAG,EAMtC,SAASojP,IAAOhnM,EAAM,CACpB,GAAI,CACF,OAAAj4C,CACD,EAAGi4C,EAEJ,MAAMinM,EAAcl/O,EAAO,OAAO,OAAO,CAAC85O,GAAWE,GAAUC,GAAIC,GAAWC,GAAUC,GAAOG,GAAQE,GAAQE,GAAQxB,GAAKyB,GAASC,GAAMC,GAAMC,GAAOI,GAAOI,GAAKH,GAAOC,EAAU,CAAC,EAKhL8D,EAAiB,CAACpF,GAAYH,GAAmBF,GAAYC,GAAcE,GAAYQ,GAAOC,GAAOE,GAAKE,GAAalB,GAAkBF,GAAWC,GAAaE,GAAWuB,GAAOC,GAAOC,EAAI,EAI9LkE,EAAqB,CAACtF,GAAWC,GAAYC,GAAUE,GAAWC,GAAUC,GAAOV,GAAYa,GAAQE,GAAQE,GAAQrB,GAAWsB,GAASC,GAAMC,GAAMC,GAAOC,GAAOG,GAAOI,GAAKH,GAAOC,EAAU,EAMlMgB,EAAQ2C,KACRK,EAAY1G,GAAG0D,EAAOjB,EAAK,EACjClwN,GAAGm0N,EAAWD,EAAoBC,CAAS,EAC3Cn0N,GAAGm0N,EAAWr/O,EAAO,OAAQq/O,CAAS,EACtC,MAAMC,EAASN,GAAW,EACxBO,EAASP,GAAW,EACpBQ,EAAcR,GAAS,EACzB9zN,GAAGmxN,EAAOr8O,EAAO,OAAQs/O,CAAM,EAC/Bp0N,GAAGmxN,EAAOr8O,EAAO,OAAQu/O,CAAM,EAC/Br0N,GAAGmxN,EAAOr8O,EAAO,YAAaw/O,CAAW,EAEzCt0N,GAAGo0N,EAAQF,EAAoBC,CAAS,EACxCn0N,GAAGo0N,EAAQt/O,EAAO,OAAQs/O,CAAM,EAChC,MAAMG,EAAc9G,GAAG2G,EAAQrF,EAAE,EAEjCtB,GAAG0G,EAAWpF,GAAIwF,CAAW,EAG7B9G,GAAG4G,EAAQtF,GAAIwF,CAAW,EAC1B9G,GAAG6G,EAAavF,GAAIwF,CAAW,EAC/B,MAAMC,EAAe/G,GAAG0G,EAAW7E,EAAG,EACtCtvN,GAAGw0N,EAAcN,EAAoBC,CAAS,EAC9Cn0N,GAAGw0N,EAAc1/O,EAAO,OAAQq/O,CAAS,EACzC,MAAMM,EAAcX,KACpB9zN,GAAGu0N,EAAaz/O,EAAO,OAAQ2/O,CAAW,EAC1Cz0N,GAAGy0N,EAAa3/O,EAAO,OAAQ2/O,CAAW,EAC1C,MAAMC,EAAiBjH,GAAGgH,EAAanF,EAAG,EAC1CtvN,GAAG00N,EAAgB5/O,EAAO,OAAQ2/O,CAAW,EAC7C,MAAME,EAAUb,GAAUH,EAAK,EAC/B3zN,GAAG00N,EAAgB5/O,EAAO,IAAK6/O,CAAO,EACtC30N,GAAG00N,EAAgB5/O,EAAO,KAAM6/O,CAAO,EACvClH,GAAG8G,EAAa3G,GAAW+G,CAAO,EAGlC,MAAMC,EAAoBnH,GAAGgH,EAAahF,EAAM,EAChDzvN,GAAG40N,EAAmB9/O,EAAO,OAAQ2/O,CAAW,EAChDz0N,GAAG20N,EAAS7/O,EAAO,OAAQ2/O,CAAW,EACtChH,GAAGkH,EAASrF,GAAKoF,CAAc,EAC/BjH,GAAGkH,EAASlF,GAAQmF,CAAiB,EAGrC,MAAMC,EAAapH,GAAGkH,EAASxF,EAAK,EAEpCnvN,GAAG60N,EAAY//O,EAAO,QAAS6+O,EAAK,EAIpC,MAAMmB,EAAerH,GAAG2G,EAAQ3E,EAAM,EAChCsF,EAAYtH,GAAG2G,EAAQ9E,EAAG,EAChCtvN,GAAG80N,EAAchgP,EAAO,OAAQs/O,CAAM,EACtCp0N,GAAG+0N,EAAWb,EAAoBC,CAAS,EAC3Cn0N,GAAG+0N,EAAWjgP,EAAO,OAAQs/O,CAAM,EACnC,MAAMY,EAAelB,GAAUD,EAAG,EAClC7zN,GAAG+0N,EAAWjgP,EAAO,IAAKkgP,CAAY,EACtCh1N,GAAG+0N,EAAWjgP,EAAO,KAAMkgP,CAAY,EACvCh1N,GAAGg1N,EAAclgP,EAAO,OAAQs/O,CAAM,EACtCp0N,GAAGg1N,EAAcd,EAAoBC,CAAS,EAC9C1G,GAAGuH,EAAc1F,GAAKyF,CAAS,EAC/BtH,GAAGuH,EAAcvF,GAAQqF,CAAY,EACrCrH,GAAGuH,EAAcjG,GAAIwF,CAAW,EAChC,MAAMU,EAAoBxH,GAAGuH,EAAc7F,EAAK,EAC1C+F,EAAwBpB,GAAUD,EAAG,EAC3C7zN,GAAGi1N,EAAmBngP,EAAO,QAASogP,CAAqB,EAG3D,MAAMC,EAAQrB,GAAUD,EAAG,EAGrBuB,EAAetB,KAGrB9zN,GAAGm1N,EAAOnB,EAAamB,CAAK,EAC5Bn1N,GAAGm1N,EAAOlB,EAAgBmB,CAAY,EACtCp1N,GAAGo1N,EAAcpB,EAAamB,CAAK,EACnCn1N,GAAGo1N,EAAcnB,EAAgBmB,CAAY,EAI7C3H,GAAGuH,EAAc/E,GAAOkF,CAAK,EAC7B1H,GAAGyH,EAAuBjF,GAAOkF,CAAK,EAGtC,MAAME,EAAc5H,GAAG4G,EAAQlF,EAAK,EAC9BmG,EAAmB7H,GAAG6G,EAAanF,EAAK,EACxCoG,EAAwB9H,GAAG6H,EAAkBrF,EAAK,EAElDuF,EAAY/H,GAAG8H,EAAuBtF,EAAK,EAGjDjwN,GAAGq0N,EAAQv/O,EAAO,OAAQs/O,CAAM,EAChC3G,GAAG4G,EAAQ/E,GAAKyF,CAAS,EACzBtH,GAAG4G,EAAQ5E,GAAQqF,CAAY,EAC/B90N,GAAGs0N,EAAax/O,EAAO,OAAQs/O,CAAM,EACrC3G,GAAG6G,EAAahF,GAAKyF,CAAS,EAC9BtH,GAAG6G,EAAa7E,GAAQqF,CAAY,EAGpC90N,GAAGq1N,EAAavgP,EAAO,OAAQqgP,CAAK,EACpC1H,GAAG4H,EAAapF,GAAOkF,CAAK,EAC5Bn1N,GAAGw1N,EAAW1gP,EAAO,OAAQqgP,CAAK,EAClCn1N,GAAGw1N,EAAWxB,EAAamB,CAAK,EAChC1H,GAAG+H,EAAWvF,GAAOkF,CAAK,EAG1B,MAAMM,EAAehI,GAAG0H,EAAO/G,EAAS,EAClCsH,EAAiBjI,GAAG0H,EAAO9G,EAAW,EACtCsH,EAAsBlI,GAAG0H,EAAO7G,EAAgB,EAChDsH,GAAenI,GAAG0H,EAAO5G,EAAS,EAExCd,GAAG2H,EAAchH,GAAWqH,CAAY,EACxChI,GAAG2H,EAAc/G,GAAaqH,CAAc,EAC5CjI,GAAG2H,EAAc9G,GAAkBqH,CAAmB,EACtDlI,GAAG2H,EAAc7G,GAAWqH,EAAY,EAGxCnI,GAAGgI,EAAcjH,GAAY2G,CAAK,EAClC1H,GAAGiI,EAAgBjH,GAAc0G,CAAK,EACtC1H,GAAGkI,EAAqBjH,GAAmByG,CAAK,EAChD1H,GAAGmI,GAAcjH,GAAYwG,CAAK,EAClC1H,GAAGgI,EAAcjH,GAAY2G,CAAK,EAKlC,MAAMU,GAAgB/B,GAAUD,EAAG,EAC7BiC,GAAkBhC,GAAUD,EAAG,EAC/BkC,GAAuBjC,GAAUD,EAAG,EACpCmC,GAAgBlC,GAAUD,EAAG,EACnC7zN,GAAGy1N,EAAczB,EAAa6B,EAAa,EAC3C71N,GAAG01N,EAAgB1B,EAAa8B,EAAe,EAC/C91N,GAAG21N,EAAqB3B,EAAa+B,EAAoB,EACzD/1N,GAAG41N,GAAc5B,EAAagC,EAAa,EAC3C,MAAMC,GAAmBnC,KACnBoC,GAAqBpC,KACrBqC,GAA0BrC,KAC1BsC,GAAmBtC,KACzB,OAAA9zN,GAAGy1N,EAAcxB,CAAc,EAC/Bj0N,GAAG01N,EAAgBzB,CAAc,EACjCj0N,GAAG21N,EAAqB1B,CAAc,EACtCj0N,GAAG41N,GAAc3B,CAAc,EAG/Bj0N,GAAG61N,GAAe7B,EAAa6B,EAAa,EAC5C71N,GAAG81N,GAAiB9B,EAAa8B,EAAe,EAChD91N,GAAG+1N,GAAsB/B,EAAa+B,EAAoB,EAC1D/1N,GAAGg2N,GAAehC,EAAagC,EAAa,EAC5Ch2N,GAAG61N,GAAe5B,EAAgB4B,EAAa,EAC/C71N,GAAG81N,GAAiB7B,EAAgB6B,EAAe,EACnD91N,GAAG+1N,GAAsB9B,EAAgB8B,EAAoB,EAC7D/1N,GAAGg2N,GAAe/B,EAAgB+B,EAAa,EAC/Ch2N,GAAGi2N,GAAkBjC,EAAaiC,EAAgB,EAClDj2N,GAAGk2N,GAAoBlC,EAAa8B,EAAe,EACnD91N,GAAGm2N,GAAyBnC,EAAa+B,EAAoB,EAC7D/1N,GAAGo2N,GAAkBpC,EAAagC,EAAa,EAC/Ch2N,GAAGi2N,GAAkBhC,EAAgBgC,EAAgB,EACrDj2N,GAAGk2N,GAAoBjC,EAAgBiC,EAAkB,EACzDl2N,GAAGm2N,GAAyBlC,EAAgBkC,EAAuB,EACnEn2N,GAAGo2N,GAAkBnC,EAAgBmC,EAAgB,EAGrD3I,GAAGqI,GAAiBrH,GAAc0G,CAAK,EACvC1H,GAAGsI,GAAsBrH,GAAmByG,CAAK,EACjD1H,GAAGuI,GAAerH,GAAYwG,CAAK,EACnC1H,GAAGoI,GAAerH,GAAY2G,CAAK,EACnC1H,GAAGyI,GAAoBzH,GAAc0G,CAAK,EAC1C1H,GAAG0I,GAAyBzH,GAAmByG,CAAK,EACpD1H,GAAG2I,GAAkBzH,GAAYwG,CAAK,EACtC1H,GAAGwI,GAAkBtH,GAAYwG,CAAK,EACtC1H,GAAG0D,EAAOvD,GAAWoH,CAAY,EACjCvH,GAAG0D,EAAOhD,GAAMyF,GAAE,EAEX,CACL,MAAOzC,EACP,OAAQb,EACZ,CACA,CAYA,SAAS+F,IAAI3vP,EAAO5L,EAAO2e,EAAQ,CACjC,IAAI7J,EAAM6J,EAAO,OACbo8D,EAAS,EACTygL,EAAS,GACTC,EAAa,GACjB,KAAO1gL,EAASjmE,GAAK,CACnB,IAAIjN,EAAQ+D,EACR8vP,EAAc,KACdlsM,EAAY,KACZmsM,EAAc,EACdpE,EAAkB,KAClBC,EAAe,GACnB,KAAOz8K,EAASjmE,GAAO,EAAE4mP,EAAc7zP,EAAM,GAAG8W,EAAOo8D,CAAM,EAAE,CAAC,IAG9D0gL,EAAW,KAAK98O,EAAOo8D,GAAQ,CAAC,EAElC,KAAOA,EAASjmE,IAAQ06C,EAAYksM,GAAe7zP,EAAM,GAAG8W,EAAOo8D,CAAM,EAAE,CAAC,IAE1E2gL,EAAc,KACd7zP,EAAQ2nD,EAGJ3nD,EAAM,WACR2vP,EAAe,EACfD,EAAkB1vP,GACT2vP,GAAgB,GACzBA,IAEFz8K,IACA4gL,IAEF,GAAInE,EAAe,EAIjBz8K,GAAU4gL,EACN5gL,EAASjmE,IACX2mP,EAAW,KAAK98O,EAAOo8D,CAAM,CAAC,EAC9BA,SAEG,CAGD0gL,EAAW,OAAS,IACtBD,EAAO,KAAKI,GAAen8E,GAAMz/K,EAAOy7P,CAAU,CAAC,EACnDA,EAAa,IAIf1gL,GAAUy8K,EACVmE,GAAenE,EAGf,MAAMqE,EAAQtE,EAAgB,EACxBuE,EAAYn9O,EAAO,MAAMo8D,EAAS4gL,EAAa5gL,CAAM,EAC3DygL,EAAO,KAAKI,GAAeC,EAAO77P,EAAO87P,CAAS,CAAC,CACpD,CACF,CAGD,OAAIL,EAAW,OAAS,GACtBD,EAAO,KAAKI,GAAen8E,GAAMz/K,EAAOy7P,CAAU,CAAC,EAE9CD,CACT,CAUA,SAASI,GAAeC,EAAO77P,EAAO2e,EAAQ,CAC5C,MAAMo9O,EAAWp9O,EAAO,CAAC,EAAE,EACrBq9O,EAASr9O,EAAOA,EAAO,OAAS,CAAC,EAAE,EACnCtmB,EAAQ2H,EAAM,MAAM+7P,EAAUC,CAAM,EAC1C,OAAO,IAAIH,EAAMxjQ,EAAOsmB,CAAM,CAChC,CAMA,MAAMs9O,GAAO,CACX,QAAS,KACT,OAAQ,KACR,WAAY,CAAE,EACd,YAAa,CAAE,EACf,cAAe,CAAE,EACjB,YAAa,EACf,EA+GA,SAASz5O,KAAO,CAEdy5O,GAAK,QAAU9F,IAAO8F,GAAK,aAAa,EACxC,QAAS//P,EAAI,EAAGA,EAAI+/P,GAAK,WAAW,OAAQ//P,IAC1C+/P,GAAK,WAAW//P,CAAC,EAAE,CAAC,EAAE,CACpB,QAAS+/P,GAAK,OACpB,CAAK,EAIHA,GAAK,OAAShD,IAAOgD,GAAK,QAAQ,MAAM,EACxC,QAAS//P,EAAI,EAAGA,EAAI+/P,GAAK,YAAY,OAAQ//P,IAC3C+/P,GAAK,YAAY//P,CAAC,EAAE,CAAC,EAAE,CACrB,QAAS+/P,GAAK,QACd,OAAQA,GAAK,MACnB,CAAK,EAEHA,GAAK,YAAc,EACrB,CAOA,SAAS9lP,GAASk3D,EAAK,CACrB,OAAK4uL,GAAK,aACRz5O,MAEK+4O,IAAIU,GAAK,OAAO,MAAO5uL,EAAK4pL,IAAMgF,GAAK,QAAQ,MAAO5uL,CAAG,CAAC,CACnE,CCjvDA,MAAM6uL,GAAY,EAChBC,IAAW,EAOb,SAASC,IAAyBz+O,EAAQ0+O,EAAUp6F,EAAa,CAC/D,IAAIq6F,EAAer6F,EAAYA,EAAY,OAAS,CAAC,EACrDtkJ,EAAO,aAAa2+O,EAAcD,CAAQ,EAC1C,QAASngQ,EAAI+lK,EAAY,OAAS,EAAG/lK,GAAK,EAAGA,IAC3CyhB,EAAO,aAAaskJ,EAAY/lK,CAAC,EAAGogQ,CAAY,EAChDA,EAAer6F,EAAY/lK,CAAC,CAEhC,CAQA,SAASqgQ,IAAc59O,EAAQjd,EAASyS,EAAK,CAC3C,MAAMnY,EAAS,GACf,QAASE,EAAI,EAAGA,EAAIyiB,EAAO,OAAQziB,IAAK,CACtC,MAAM0D,EAAQ+e,EAAOziB,CAAC,EAClB0D,EAAM,IAAM,MAAQ8B,EAAQ,IAAI,OAAO,EACzC1F,EAAO,KAAKmY,EAAI,cAAc,IAAI,CAAC,EAC1B,CAACvU,EAAM,QAAU,CAAC8B,EAAQ,MAAM9B,CAAK,EAC9C5D,EAAO,KAAKmY,EAAI,eAAevU,EAAM,SAAU,EAAC,EAEhD5D,EAAO,KAAK0F,EAAQ,OAAO9B,CAAK,CAAC,CAEpC,CACD,OAAO5D,CACT,CASA,SAASwgQ,GAAqBzkQ,EAAS2J,EAASyS,EAAK,CAEnD,GAAI,CAACpc,GAAWA,EAAQ,WAAamkQ,GACnC,MAAM,IAAI,MAAM,kBAAkBnkQ,CAAO,0BAA0B,EAIrE,GAAIA,EAAQ,UAAY,KAAO2J,EAAQ,WAAW,QAAQ3J,EAAQ,OAAO,GAAK,EAE5E,OAAOA,EAET,IAAI0kQ,EAAe1kQ,EAAQ,WAC3B,KAAO0kQ,GAAc,CACnB,IAAIpvL,EAAK1uD,EAAQiL,EACjB,OAAQ6yO,EAAa,SAAQ,CAC3B,KAAKP,GACHM,GAAqBC,EAAc/6P,EAASyS,CAAG,EAC/C,MACF,KAAKgoP,IACH,CAGE,GAFA9uL,EAAMovL,EAAa,UACnB99O,EAASxI,GAASk3D,CAAG,EACjB1uD,EAAO,SAAW,GAAKA,EAAO,SAAW,GAAKA,EAAO,CAAC,EAAE,IAAM,OAEhE,MAEFiL,EAAQ2yO,IAAc59O,EAAQjd,EAASyS,CAAG,EAG1CioP,IAAyBrkQ,EAAS0kQ,EAAc7yO,CAAK,EAGrD6yO,EAAe7yO,EAAMA,EAAM,OAAS,CAAC,EACrC,KACD,CACJ,CACD6yO,EAAeA,EAAa,WAC7B,CACD,OAAO1kQ,CACT,CAKA,SAAS2kQ,GAAiBvoP,EAAK,CAC7B,OAAO89C,GAAQ,CACb,GAAI,CACF,QAAAltD,EACA,WAAAkT,EACA,QAAA9a,EACA,eAAAu7P,CACD,EAAGzmM,EACJ,MAAMjwD,EAAOmS,EAAI,cAAcpP,CAAO,EACtC,UAAWwZ,KAAQtG,EACjBjW,EAAK,aAAauc,EAAMtG,EAAWsG,CAAI,CAAC,EAE1C,GAAIm6O,GAAkB12P,EAAK,iBACzB,UAAW9J,KAASwgQ,EAClB12P,EAAK,iBAAiB9J,EAAOwgQ,EAAexgQ,CAAK,CAAC,EAGtD,OAAA8J,EAAK,YAAYmS,EAAI,eAAehX,CAAO,CAAC,EACrC6E,CACX,CACA,CAWA,SAAS26P,GAAe5kQ,EAASu6B,EAAMne,EAAK,CACtCme,IAAS,SACXA,EAAO,MAELne,IAAQ,SACVA,EAAM,MAER,GAAI,CACFA,EAAMA,GAAO,UAAY,QAAU,OAAO,UAAY,QAAU,OAAO,QAC3E,MAAc,CAA0B,CACtC,GAAI,CAACA,EACH,MAAM,IAAI,MAAM,sKAAgL,EAElM,MAAMzS,EAAU,IAAIs2P,GAAQ1lO,EAAMoqO,GAAiBvoP,CAAG,CAAC,EACvD,OAAOqoP,GAAqBzkQ,EAAS2J,EAASyS,CAAG,CACnD,CAIAwoP,GAAe,OAASH,GACxBG,GAAe,iBAAmBD,GAMlCC,GAAe,UAAY,CAACrqO,EAAMne,IAAQ,IAAI6jP,GAAQ1lO,EAAMoqO,GAAiBvoP,CAAG,CAAC,ECjJjF,MAAMyoP,YAA0BrtC,EAAW,CACzC,SAAU,CACRotC,GAAe,KAAK,OAAO,CAC5B,CACH,CCLA,MAAME,YAAwCttC,EAAW,CACvD,SAAU,CACR,KAAK,QAAQ,iBAAiB,SAAW,GAAM,CAC7C,MAAMvvN,EAAQ,EAAE,OAEV88P,EADO98P,EAAM,MAAM,CAAC,EACJ,KAAO,KAAO,KACpC,IAAIupP,EAAe,KAEfuT,EAAW,GACbvT,EAAe,+DACNuT,GAAY,IACrBvT,EAAe,2CAGbA,IACFvpP,EAAM,MAAQ,GACd,OAAO,cAAc,QAASupP,CAAY,EAElD,CAAK,CACF,CAGH,CCnBA,MAAMwT,YAA2BxtC,EAAW,CAC1C,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,EAChC,CAED,QAAQ,EAAG,CACT,EAAE,eAAc,EAEhB,MAAM12N,EADO,EAAE,OACE,aAAa,MAAM,EAEpC65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,KAAK,cAAa,CACxB,CAAK,EAAE,MAAO0D,GAAU,CAClBmoP,GAAI,aAAanoP,EAAQ0N,GAAM,OAAO,cAAc,QAASA,EAAE,SAAS,KAAK,OAAO,KAAK,IAAI,CAAC,CAAC,CACrG,CAAK,CACF,CAED,oBAAoB,EAAG,CACrB,EAAE,eAAc,EAGhB,MAAM3S,EADS,EAAE,OACE,QAAQ,IAE3B65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,oBAAsBpoE,GAAU,CACrD,OAAO,cAAc,UAAWA,EAAM,OAAO,SAAS,KAAK,MAAM,EACjE,EAAEooE,CAAK,EAAE,MAAM,MAAM,EACrB2lL,GAAI,YAAY,wBAAwB,CAChD,CAAO,CACP,CAAK,CACF,CAED,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAxK,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,OAAO+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CAC3C,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,wBAAwB,CAChD,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAAC,CAC9F,CAAO,CACP,CAAK,CACF,CAED,kBAAkB,EAAG,CACnB,EAAE,eAAc,EAEhB40E,GAAM,IAAI,EAAE,OAAO,QAAQ,GAAG,EAAE,KAAKt4E,GAAY,CAC/C,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,oBAAsB15C,GAAS,WACpD,MAAMotM,GAASr0H,GAAAnnG,GAAAD,EAAAquB,EAAK,SAAL,YAAAruB,EAAa,WAAb,YAAAC,EAAuB,OAAvB,YAAAmnG,EAA6B,OAC5C,OAAO,cAAc,UAAWq0H,CAAM,EACtC,EAAE1zJ,CAAK,EAAE,MAAM,MAAM,EACrB,KAAK,cAAa,CAC1B,CAAO,CACP,CAAK,CACF,CAED,qBAAqB,EAAG,CACtB,EAAE,eAAc,EAEhB2lL,GAAI,QAAQ,EAAE,OAAO,QAAQ,QAAS,IAAM,CAC1CvzK,GAAM,OAAO,EAAE,OAAO,QAAQ,GAAG,EAAE,KAAMt4E,GAAa,CACpD,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD,KAAK,cAAa,CAC1B,CAAO,CACP,CAAK,CACF,CAED,cAAcmhP,EAAY,CACxB7oK,GAAM,IAAI,qBAAqB,KAAK,EAAE,GAAI,CAAE,QAAS,CAAE,OAAU,4BAA8B,EAAE,EAAE,KAAM3xC,GAAM,CAC7G,MAAM,oBAAoBA,EAAE,IAAI,CACtC,CAAK,EAAE,MAAOjjC,GAAU,OAAO,cAAc,QAAS,sBAAsB,CAAC,CAC1E,CACH,CCjFA,MAAMk/P,GAAa,CACjB,YAAe,WAAM,OAAO,qBAA4B,0BACxD,UAAa,WAAM,OAAO,qBAAgC,sBAC5D,EAEA,MAAAC,WAA6B1tC,EAAW,CAKtC,SAAU,CACR,GAAI,CAACytC,GAAW,KAAK,SAAS,EAC5B,MAAM,IAAI,UAAU,IAAI,KAAK,SAAS,2BAA2B,EAGnE,MAAMrtM,EAAYo0J,OAAKi5C,GAAW,KAAK,SAAS,CAAC,EAC3Ct7P,EAAU,KAAK,QAAQ,QAEpBolE,GAAA,OACP+V,EAACmnI,WAAS,UAAWnnI,EAAA,OAAG,GACtB,SAACA,EAAAltB,EAAA,CAAW,GAAGjuD,CAAA,CAAQ,CACzB,GAAa,KAAK,QAEtB,CACF,CAlBE4wL,GADF2qE,GACS,SAAS,CACd,KAAM,SCRV,MAAMC,YAA4B3tC,EAAY,CAC5C,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,GAC/B,KAAK,iBAAmB,KAAK,QAAQ,QAAQ,iBAC7C,QAAQ,IAAI,KAAK,gBAAgB,CAClC,CAED,QAAQ,EAAG,CACT,MAAMz3N,EAAS,EAAE,OAEXwmF,EAAQxmF,EAAO,aAAa,MAAM,EAClC8uB,EAAO,CAAE,CAAC03D,CAAK,EAAGxmF,EAAO,OAAO,EAEtC46E,GAAM,KAAK,8BAA8B,KAAK,EAAE,WAAY9rD,CAAI,EAAE,KAAMxsB,GAAa,CACnFtC,EAAO,QAAUsC,EAAS,KAAKkkF,CAAK,CAC1C,CAAK,CACF,CAED,GAAG,EAAG,CACJ,EAAE,eAAc,EAEhB,KAAM,CAACw9J,EAAKx2O,CAAK,EAAI,KAAK,WAAW,CAAC,EAEtC,GAAIA,EAAQ,EAAG,CACb,MAAM8a,EAAO07N,EAAIx2O,EAAQ,CAAC,EAC1Bw2O,EAAIx2O,EAAQ,CAAC,EAAIw2O,EAAIx2O,CAAK,EAC1Bw2O,EAAIx2O,CAAK,EAAI8a,CACd,CAED,KAAK,aAAa07N,CAAG,CACtB,CAED,KAAK,EAAG,CACN,EAAE,eAAc,EAEhB,KAAM,CAACA,EAAKx2O,CAAK,EAAI,KAAK,WAAW,CAAC,EAEtC,GAAIA,EAAQw2O,EAAI,OAAS,GAAKx2O,IAAU,GAAI,CAC1C,MAAM8a,EAAO07N,EAAIx2O,EAAQ,CAAC,EAC1Bw2O,EAAIx2O,EAAQ,CAAC,EAAIw2O,EAAIx2O,CAAK,EAC1Bw2O,EAAIx2O,CAAK,EAAI8a,CACd,CAED,KAAK,aAAa07N,CAAG,CACtB,CAED,WAAW,EAAG,CAEZ,MAAMqhB,EADQ,EAAE,OAAO,QAAQ,OAAO,EACnB,iBAAiB,iCAAiC,EAC/DrhB,EAAM,MAAM,KAAKqhB,CAAI,EAAE,IAAI72D,GAAO,SAASA,EAAI,QAAQ,EAAE,CAAC,EAC1D9lM,EAAK,KAAK,QAAQ,QAAQ,GAC1B8E,EAAQw2O,EAAI,QAAQ,SAASt7O,CAAE,CAAC,EAEtC,MAAO,CAACs7O,EAAKx2O,CAAK,CACnB,CAED,aAAaw2O,EAAK,CAChBppK,GACG,KAAK,qCAAsC,CAAE,IAAKopK,CAAG,CAAE,EACvD,KAAM1hP,GAAa,CAClBs4E,GACG,IAAI,6BAA8B,CAAE,OAAQ,CAAE,MAAO,GAAM,mBAAoB,KAAK,gBAAgB,EAAI,EACxG,KAAKt4E,GAAY,MAAM,oBAAoBA,EAAS,IAAI,CAAC,CACpE,CAAO,CACJ,CACH,CCjEA,MAAMgjQ,YAAiC7tC,EAAW,CAChD,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,EAChC,CAED,QAAQ,EAAG,CACT,EAAE,eAAc,EAGhB,MAAM12N,EADO,EAAE,OACE,aAAa,MAAM,EAEpC65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,KAAK,OAAM,CACjB,CAAK,EAAE,MAAO0D,GAAU,CAClB,OAAO,cAAc,QAAS,EAAE,SAAS,KAAK,OAAO,KAAK,IAAI,CAAC,CACrE,CAAK,CACF,CAED,QAAS,CACP,MAAMjF,EAAM,iCAAiC,KAAK,EAAE,GAEpD65E,GAAM,IAAI75E,EAAK,CAAE,QAAS,CAAE,OAAU,4BAA4B,EAAI,EACnE,KAAMkoC,GAAM,CACX,MAAM,oBAAoBA,EAAE,IAAI,CACxC,CAAO,EACA,MAAOjjC,GAAU,OAAO,cAAc,QAAS,sBAAsB,CAAC,CAC1E,CACH,CCzBA,MAAMu/P,WAAuC9tC,EAAW,CAGtD,SAAU,CACR,MAAM3oM,EAAO,KAAK,QAAQ,QAC1B,KAAK,GAAKA,EAAK,GACf,KAAK,WAAaA,EAAK,UACxB,CAED,QAAQ,EAAG,CACT,EAAE,eAAc,EAEhB,MAAM/tB,EAAM,EAAE,OAAO,aAAa,MAAM,EAExC65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC6rP,GAAI,YAAY,oCAAoC,CAC1D,CAAK,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAQ0N,GAAM,OAAO,cAAc,QAASA,EAAE,SAAS,KAAK,OAAO,KAAK,IAAI,CAAC,CAAC,CACrG,CAAK,CACF,CAED,WAAW,EAAG,CACZ,MAAMmX,EAAU,CACd,eAAgB,KAAK,iBACrB,kBAAmB,KAAK,kBACzB,EAED,OAAO,KAAKA,CAAO,EAAE,IAAK3Y,GAAQ,CAChC,IAAIlS,EAAS6qB,EAAQ3Y,CAAG,EACpBhK,EAAQlI,EAAO,cAAc,QAAQ,EAErCkS,IAAQ,EAAE,OAAO,OACnBlS,EAAO,UAAU,OAAO,MAAM,EAC9BkI,EAAM,SAAW,KAEjBlI,EAAO,UAAU,IAAI,MAAM,EAC3BkI,EAAM,SAAW,GACjB,KAAK,uBAAuB,UAAU,IAAI,MAAM,GAElDA,EAAM,MAAQ,EACpB,CAAK,CACF,CAED,mBAAmB,EAAG,CAChB,SAAS,EAAE,OAAO,KAAK,EAAI,EAC7B,KAAK,uBAAuB,UAAU,IAAI,MAAM,EAEhD,KAAK,uBAAuB,UAAU,OAAO,MAAM,CAEtD,CAED,KAAK,EAAG,CACN,EAAE,eAAc,EAGhB,MAAMnH,EADS,EAAE,OACE,QAAQ,IAE3B65E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,oBAAsBpoE,GAAU,CACrD,OAAO,cAAc,UAAWA,EAAM,OAAO,SAAS,KAAK,MAAM,EACjE,EAAEooE,CAAK,EAAE,MAAM,MAAM,EACrB2lL,GAAI,YAAY,oCAAoC,CAC5D,CAAO,CACP,CAAK,CACF,CACH,CAlEE3zD,GADI+qE,GACG,UAAU,CAAC,aAAc,eAAgB,kBAAkB,GCJpE,MAAMC,WAAiC/tC,EAAW,CAGhD,SAAU,CACR,KAAK,6CAA6C,KAAK,eAAe,EACtE,KAAK,gBAAgB,iBAAiB,SAAU,KAAK,iBAAiB,KAAK,IAAI,CAAC,CACjF,CAED,mCAAmCr3N,EAAO,CACxC,MAAMysM,EAAUzsM,EAAM,OAAO,QAE7B,KAAK,QAAQ,cAAc,2BAA2B,EAAE,OAAS,CAACysM,CACnE,CAED,iBAAiBzsM,EAAO,CACtB,KAAK,6CAA6CA,EAAM,MAAM,CAC/D,CAED,6CAA6CqlQ,EAAY,CACvD,MAAMC,EAAgB,KAAK,QAAQ,QAAQ,cACrCn1I,EAAiB,MAAM,KAAKk1I,EAAW,eAAe,EAAE,CAAC,EAAE,MACjE,KAAK,4BAA4B,OAAS,EAAEl1I,GAAkB,WAAam1I,GAAiB,MAC7F,CACH,CAtBElrE,GADIgrE,GACG,UAAU,CAAC,YAAa,uBAAuB,GCFxD,MAAMv8N,WAAU/wB,EAAE,CAChB,IAAIiB,EAAG,CACLA,EAAE,eAAc,EAChB,MAAMzF,EAAI,KAAK,eAAe,UAAU,QAAQ,cAAe,IAAI,KAAI,EAAG,UAAU,SAAU,GAC9F,KAAK,aAAa,mBAAmB,cAAeA,CAAC,CACtD,CACD,OAAOyF,EAAG,CACRA,EAAE,eAAc,EAChB,MAAMzF,EAAIyF,EAAE,OAAO,QAAQ,KAAK,oBAAoB,EACpD,GAAIzF,EAAE,QAAQ,YAAc,OAC1BA,EAAE,OAAM,MACL,CACHA,EAAE,MAAM,QAAU,OAClB,MAAMiM,EAAIjM,EAAE,cAAc,yBAAyB,EACnDiM,EAAE,MAAQ,GACX,CACF,CACH,CACAspB,GAAE,QAAU,CAAC,SAAU,UAAU,EACjCA,GAAE,OAAS,CACT,gBAAiB,CACf,KAAM,OACN,QAAS,sBACV,CACH,ECvBA,MAAM08N,WAA+BluC,EAAW,CAG9C,SAAU,CACR,MAAMmuC,EAAe,KAAK,mBAAmB,QAE7C,KAAK,mBAAmB,QAAS19P,GAAU,CAAEA,EAAM,SAAW,CAAC09P,CAAY,CAAE,CAC9E,CAED,OAAOxlQ,EAAO,CACZ,MAAMylQ,EAAe,KAAK,MAAMzlQ,EAAM,OAAO,OAAO,EACrC,KAAK,mBACb,QAAQ8H,GAAS,CAAGA,EAAM,SAAW,CAAC29P,CAAY,CAAE,CAC5D,CAED,kBAAmB,CACjB,OAAO,KAAK,QAAQ,iBAAiB,+BAA+B,CACrE,CACH,CAjBErrE,GADImrE,GACG,UAAU,CAAC,cAAc,GCAlC,MAAMG,WAAoCruC,EAAW,CAMnD,SAAU,CACY,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAChC,IAAI,mBAAmB,GAEpC,QACf,KAAK,QAAQ,OAEhB,CAED,gBAAgBr3N,EAAO,CACrBA,EAAM,eAAc,EAEhB,KAAK,iBAKP2pN,GAAU,QAJS,6NAIW,WAAY,uBAAuB,EAC9D,KAAM7lN,GAAW,CACZA,EAAO,aACX,KAAK,iBAAmB,GACxB,KAAK,QAAQ,UAAU,IAAI,oBAAoB,EAC/C,KAAK,QAAQ,QACb,KAAK,iBAAmB,GACxB,KAAK,QAAQ,UAAU,OAAO,oBAAoB,GAElD,OAAO,SAAW,KAAK,mBAEjC,CAAO,GAED,KAAK,QAAQ,UAAU,IAAI,oBAAoB,EAC/C,KAAK,QAAQ,QAEhB,CACH,CAvCEs2L,GADIsrE,GACG,SAAS,CACd,YAAa,QACb,eAAgB,MACjB,GCLH,MAAMC,YAAiCtuC,EAAW,CAChD,OAAQ,CACN,eAAe,MAAK,EACpB,CAAC,cAAc,EAAE,QAASvlN,GAAQ,aAAa,WAAWA,CAAG,CAAC,CAC/D,CACH,CCLA,MAAM8zP,YAA4BvuC,EAAW,CAC3C,SAAU,CACR,EAAE,kBAAkB,EAAE,WAAW,CAC/B,OAAQ,eACR,UAAW,GACX,UAAW,MACX,UAAW,CACjB,CAAK,EAED,MAAMwuC,EAAmB,IAAM,CAC7B,MAAM3pP,EAAM,EAAE,6CAA6C,EAAE,IAAG,EAChE,EAAE,wBAAwB,EAAE,OAAOA,IAAQ,GAAG,CAC/C,EAEK4pP,EAA+B,IAAM,CACzC,MAAM5pP,EAAM,EAAE,gDAAgD,EAAE,IAAK,EACrE,EAAE,wBAAwB,EAAE,OAAOA,IAAQ,SAAS,CACrD,EAEK6pP,EAAoB,IAAM,CAC9B,MAAMC,EAA2B,EAAE,2BAA2B,EACxDC,EAAe,EAAE,4BAA4B,EAC3B,EAAE,+CAA+C,EAEzD,IAAI,CAACA,EAAa,GAAG,UAAU,CAAC,EAChDD,EAAyB,OAAOC,EAAa,GAAG,UAAU,CAAC,CAC5D,EAED,EAAE,qCAAqC,EAAE,GAAG,SAAUJ,CAAgB,EACtE,EAAE,gDAAgD,EAAE,GAAG,SAAUC,CAA4B,EAC7F,EAAE,uCAAuC,EAAE,GAAG,SAAUC,CAAiB,EAEzEA,IACAF,IACAC,GACD,CACH,CCpCA,MAAMI,WAA8B7uC,EAAW,CAG7C,SAAU,CACR,KAAK,SAAW,EACjB,CAED,gBAAgBr3N,EAAO,CACrB,KAAK,SAAW,CAAC,KAAK,SAEtB,MAAM+4B,EAAW,KAAK,SAEtB,KAAK,QAAQ,iBAAiB,2CAA2C,EAAE,QAASvW,GAAO,CACzF,MAAMi1H,EAAYj1H,EAAG,UAEjBuW,EACF0+G,EAAU,OAAO,QAAQ,EAEzBA,EAAU,IAAI,QAAQ,CAE9B,CAAK,EAED,MAAMwiB,EAAS,KAAK,aACdvrI,EAAOurI,EAAO,QAEpBA,EAAO,UAAYlhI,EAAWrK,EAAK,aAAeA,EAAK,UACxD,CACH,CA1BE0rK,GADI8rE,GACG,UAAU,CAAC,QAAQ,GCD5B,MAAMC,WAA0B9uC,EAAW,CACzC,SAAU,CACR,KAAK,QAAQ,iBAAiB,QAAS,KAAK,iBAAiB,CAC9D,CAED,mBAAoB,CAClB,CAAC,cAAc,EAAE,QAASvlN,GAAQ,aAAa,WAAWA,CAAG,CAAC,CAC/D,CACH,CCLe,MAAKs0P,WAAS/uC,EAAW,CAGtC,SAAU,CACR,KAAK,OAAO,KAAK,OAAO,CACzB,CAED,wBAAwB70M,EAAI,CAC1B,KAAK,QAAUA,EAAG,OACnB,CAED,OAAO,EAAG,CACR,KAAK,QAAU,EAAE,OAAO,QACxB,KAAK,OAAO,KAAK,OAAO,CACzB,CAED,OAAO7S,EAAO,CAENA,EACF,KAAK,YAAY,UAAU,OAAO,QAAQ,EAE1C,KAAK,YAAY,UAAU,IAAI,QAAQ,CAG5C,CACH,CAxBEyqL,GADkBgsE,GACX,UAAU,CAAC,WAAY,OAAO,GCJxB,MAAKC,WAAShvC,EAAW,CAGtC,SAAU,CACR,MAAM,QAAO,EACb,KAAK,WAAa,KAAK,iBAAiB,MACxC,KAAK,WAAU,CAChB,CAED,aAAa,EAAG,CACd,MAAMivC,EAAc,EAAE,OACtB,KAAK,iBAAiB,MAAQA,EAAY,QAAQ,WAClD,KAAK,WAAaA,EAAY,QAAQ,WACtC,KAAK,WAAU,CAChB,CAED,YAAa,CACP,KAAK,aAAe,wBACtB,KAAK,WAAW,UAAU,IAAI,QAAQ,EAEtC,KAAK,WAAW,UAAU,OAAO,QAAQ,CAE5C,CACH,CAtBElsE,GADkBisE,GACX,UAAU,CAAC,aAAc,MAAM,GCCxC,MAAME,YAAwBlvC,EAAW,CACvC,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAksB,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,OAAO+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CAC3C,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,oBAAoB,CAC5C,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,CAC5B,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CACjE,CAAS,CACT,CAAO,CACP,CAAK,CACF,CAED,gBAAgB,EAAG,CACjB,MAAM4gQ,EAAuB,EAAE,OAAO,QAAQ,qBAC9C,gBAAS,OAAS,2BAA2BA,CAAoB,WAC1D,EACR,CACH,CCzBe,MAAMC,YAAmCpvC,EAAW,CACjE,SAAU,CACR,SAAS,iBAAiB,+BAAiCr3N,GAAU,CACnE,KAAK,QAAQ,MAAM,QAAUA,EAAM,OAAO,YAAc,EAAI,QAAU,OACtE,KAAK,QAAQ,YAAcA,EAAM,OAAO,WAC9C,CAAK,CACF,CACH,CCNA,MAAM0mQ,WAA+CrvC,EAAW,CAG9D,SAAU,CACR,KAAK,iBAAmB,KAExB,OAAO,yBAA4Bn7M,GAAQ,CACzC,KAAK,iBAAmB,OAAOA,EAAI,IAAI,EAAE,OAAO,YAAY,EAC5D,KAAK,eAAc,CACpB,CACF,CAED,gBAAiB,CACf,MAAMvb,EAAM,KAAK,QAAQ,OAEzB65E,GACG,IAAI75E,EAAK,CACR,OAAQ,CAAE,kBAAmB,KAAK,gBAAkB,EACpD,QAAS,CAAE,OAAU,4BAA8B,CAC3D,CAAO,EACA,KAAMkoC,GAAM,MAAM,oBAAoBA,EAAE,IAAI,CAAC,EAC7C,MAAOv1B,GAAM,OAAO,cAAc,QAASA,EAAE,SAAS,KAAK,MAAM,CAAC,CACtE,CACH,CAtBE8mL,GADIssE,GACG,UAAU,CAAC,kBAAkB,GCDvB,MAAKC,YAAStvC,EAAW,CACtC,SAAU,CACR,MAAMuvC,EAAc,SAAS,cAAc,cAAc,EACnDC,EAAe,SAAS,iBAAiB,wCAAwC,EACjFC,EAAaF,EAAY,QAAQ,WACjCG,EAAyBH,EAAY,QAAQ,uBAC7C/rL,EAAU+rL,EAAY,QAAQ,QAE9BI,EAAchnQ,GAAU,CAC5B,IAAIinQ,EAAW,SAAS,iBAAiB,gDAAgD,EAAE,CAAC,EACxF7qL,EAASwqL,EAAY,MAEzBpsL,GAAM,IAAI,iBAAkB,CAAE,OAAQ,CAAE,OAAQ4B,EAAQ,YAAa0qL,EAAY,SAAUjsL,EAAS,SAAUosL,EAAU,0BAA2BF,EAAwB,OAAQ,cAAc,EAAI,EAC/L,KAAM7kQ,GAAa,CAAE,MAAM,oBAAoBA,EAAS,IAAI,EAAG,CACtE,EAEK2sL,EAAW,CAACtkL,EAAU28P,IAAa,CACvC,IAAIlrO,EACJ,MAAO,IAAIpW,IAAS,CAChB,aAAaoW,CAAK,EAClBA,EAAQ,WAAW,IAAM,CACrBzxB,EAAS,GAAGqb,CAAI,CACnB,EAAEshP,CAAQ,CACrB,CACK,EAEDN,EAAY,iBAAiB,QAAS/3E,EAASm4E,EAAY,GAAG,CAAC,EAC/D,MAAM,KAAKH,CAAY,EAAE,QAAS/+P,GAAU,CAAEA,EAAM,iBAAiB,SAAU+mL,EAASm4E,EAAY,CAAC,CAAC,CAAG,EAC1G,CACH,CC5Be,MAAKG,WAAS9vC,EAAW,CAGtC,SAAS,EAAG,CACV,EAAE,eAAc,EAEhB,MAAMp9D,EAAS,EAAE,OACX,CAAE,IAAAt5J,CAAG,EAAKs5J,EAAO,QAEvBz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,KAAM,EAAE,EAE5CkmE,EAAM,iBAAiB,oBAAqB,IAAM,CAChD,EAAEA,CAAK,EAAE,MAAM,MAAM,EACrB6xF,EAAO,UAAY,YAC3B,CAAO,CACP,CAAK,CACF,CAED,YAAY,EAAG,CACb,EAAE,eAAc,EAEhB,MAAMr6J,EAAS,EAAE,OACXP,EAAOO,EAAO,QAAQ,MAAM,EAC5B,CAAE,IAAAe,EAAK,GAAA2H,GAAO1I,EAAO,QAE3B46E,GAAM,OAAO75E,CAAG,EAAE,KAAMuB,GAAa,CAGnC,MAAMklQ,EAFS,IAAI,YACO,gBAAgBllQ,EAAS,KAAM,WAAW,EACtC,cAAc,MAAM,EAC5CmlQ,EAAiB,SAAS,cAAc,eAAe/+P,CAAE,EAAE,EAE7D++P,IAAgBA,EAAe,UAAY,aAE/ChoQ,EAAK,UAAY+nQ,EAAW,SAClC,CAAK,CACF,CAED,aAAa,EAAG,CACd,MAAMnwD,EAAO,EAAE,OAAO,MAAM,CAAC,EAE7B,GAAIA,EAAM,CACR,MAAMqwD,EAAS,IAAI,WAEnBA,EAAO,OAAUtnQ,GAAU,CACzB,MAAMunQ,EAAe,KAAK,mBAC1BA,EAAa,IAAMvnQ,EAAM,OAAO,OAChCunQ,EAAa,UAAU,OAAO,MAAM,CAC5C,EAEMD,EAAO,cAAcrwD,CAAI,CAC1B,CACF,CACH,CApDE7c,GADkB+sE,GACX,UAAU,CAAC,cAAc,GCHlC,MAAMK,WAAgCnwC,EAAW,CAG/C,eAAer3N,EAAO,CACpBA,EAAM,eAAc,EAEpB,MAAMW,EAAMX,EAAM,OAAO,QAAQ,YACjC,OAAO,SAAS,QAAQW,CAAG,CAC5B,CACH,CAREy5L,GADIotE,GACG,UAAU,CAAC,SAAS,GCA7B,MAAMC,IAA0B,IAAM,CACpC,KAAM,CAAC92O,EAAMslJ,CAAO,EAAInzE,WAAS,EAAI,EAGnC,OAAAne,EAAAD,GAAA,CACG,YAASC,EAAA6xF,GAAA,CAAK,KAAA7lJ,EAAY,QAAAslJ,EAAkB,oBAAqB,oBAAqB,EACzF,EAEJ,ECNA,MAAqByxF,YAA4CrwC,EAAW,CAC1E,SAAU,CACR,KAAK,QAAQ,iBAAiB,QAAU,GAAM,CACtC,MAAA0zB,EAAa,SAAS,cAAc,KAAK,EAE/C,KAAK,QAAQ,WAAW,aAAaA,EAAY,KAAK,QAAQ,WAAW,EAEzEn8K,GAAS,OAAO+V,EAAC6xF,IAAK,IAAIu0E,CAAU,EACrC,CACH,CACF,CCVA,MAAM4c,YAA+BtwC,EAAW,CAC9C,KAAK,EAAG,CACN,EAAE,eAAc,EAEhB,MAAMp9D,EAAS,EAAE,OACX,CAAE,IAAAt5J,EAAK,UAAAmtP,GAAc7zF,EAAO,QAElCz/E,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMkmE,EAAQymL,GAAS,IAAI3sP,EAAS,IAAI,EAExCkmE,EAAM,iBAAiB,oBAAsBpoE,GAAU,CACrD,MAAM0uB,EAAO1uB,EAAM,OAAO,SAAS,KAEnC,OAAO,cAAc,UAAW0uB,EAAK,MAAM,EAE3C,EAAE05C,CAAK,EAAE,MAAM,MAAM,EAEjB,KAAK,YACP,OAAO,kBAAiB,EAExB2lL,GAAI,YAAYD,CAAS,CAEnC,CAAO,CACP,CAAK,CACF,CAED,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAvK,EAAS,WAAAxjO,GAAe,EAAE,OAE9BA,EAAW,UAEfguO,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,OAAO+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CAC3C,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAYxK,EAAQ,SAAS,CACzC,CAAO,EAAE,MAAO39O,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,CAC5B,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CACjE,CAAS,CACT,CAAO,CACP,CAAK,CACF,CAED,WAAW,EAAG,CACZ,EAAE,eAAc,EAEhB,KAAM,CAAE,IAAAjF,EAAK,OAAAg6B,CAAQ,EAAG,EAAE,OAAO,QAEjC6/C,GACG,IAAI75E,EAAK,CAAE,aAAc,CAAE,OAAQg6B,CAAM,CAAE,CAAC,EAC5C,KAAMz4B,GAAa,CAClB,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,6BAA6B,CACrD,CAAO,CACJ,CAED,IAAI,aAAc,CAChB,OAAO,SAAS,eAAe,cAAc,IAAM,IACpD,CACH,CC/DA,MAAM6Z,WAAuCvwC,EAAW,CAGtD,SAAU,CACR,KAAK,kBAAoB,EAC1B,CAED,0BAA0Br3N,EAAO,CAC/BA,EAAM,eAAc,EAEhB,KAAK,kBACP,KAAK,cAAcA,CAAK,EAExB,KAAK,cAAcA,CAAK,CAE3B,CAED,cAAcA,EAAO,CACnB,MAAMJ,EAASI,EAAM,OACfiT,EAAY,KAAK,0BAA0B,CAAC,EAC5C6jP,EAAUl3P,EAAO,QAAQ,QAE/B,GAAI,CAACqT,EAAW,OAAO,KAEvBunE,GACG,IAAI,kCAAmC,CACtC,OAAQ,CAAE,SAAUs8K,CAAS,EAC7B,QAAS,CACP,OAAQ,4BACT,CACT,CAAO,EACA,KAAM50P,GAAa,CAClB+Q,EAAU,UAAY/Q,EAAS,KAC/BtC,EAAO,UAAY,kCACnB,KAAK,kBAAoB,EACjC,CAAO,EACA,MAAOgG,GAAU,CAChB,QAAQ,MAAM,iCAAkCA,CAAK,EACrDqN,EAAU,UAAY,wEAC9B,CAAO,CACJ,CAED,cAAcjT,EAAO,CACnB,KAAK,0BAA0B,QAAQiT,GAAaA,EAAU,UAAY,EAAE,EAC5E,KAAK,kBAAoB,GACzBjT,EAAM,OAAO,UAAY,iCAC1B,CACH,CA9CEo6L,GADIwtE,GACG,UAAU,CAAC,oBAAoB,GCDzB,MAAKC,WAASxwC,EAAW,CAGtC,SAAU,CACR,KAAK,aAAa,iBAAiB,SAAU,KAAK,SAAS,KAAK,IAAI,CAAC,CACtE,CAED,SAASr3N,EAAO,CACd,MAAMJ,EAASI,EAAM,OAEfW,EADOf,EAAO,QAAQ,MAAM,EACjB,aAAa,QAAQ,EAEtC46E,GACG,IAAI75E,EAAK,CAAE,gBAAiBf,EAAO,KAAK,CAAE,EAC1C,MAAOgG,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,MAAM,CAChE,CAAO,CACJ,CACH,CAjBEw0L,GADkBytE,GACX,UAAU,CAAC,QAAQ,GCF5B,MAAMn/E,GAAS,QACTo/E,GAAiB,CACrB,QAAS,QACT,IAAK,UACL,MAAO,QACP,KAAM,UACN,SAAU,eACZ,EAEe,MAAMC,WAAwC1wC,EAAW,CAGtE,SAAU,CACR,MAAM17B,EAAc,KAAK,QAAQ,QAAQ,YAErCA,GAAe,yBAA2BA,GAAe,0CAC3D,KAAK,mBAAmB,iBAAiB,QAAU37L,GAAU,CAC3D,GAAIA,EAAM,OAAO,QAAS,CACxB,MAAMooE,EAAQ,EAAE,4BAA4B,EACtC4/L,EAAc5/L,EAAM,KAAK,oCAAoC,EAC7D6/L,EAAY7/L,EAAM,KAAK,kCAAkC,EACzD8/L,EAAc9/L,EAAM,KAAK,oCAAoC,EAC7D+/L,EAAY//L,EAAM,KAAK,kCAAkC,EACzDggM,EAAmBhgM,EAAM,KAAK,yCAAyC,EAGvEigM,EAAmBL,EAAY,WAAW,SAAS,EACnDM,EAAiBL,EAAU,WAAW,SAAS,EAErD,GAAI,CAACI,GAAoB,CAACC,EAAgB,CACxC,MAAMp5I,EAAY,IAAI,KAAI,EAAG,mBAAmBw5D,GAAQo/E,EAAc,EAChE34I,EAAU,IAAI,KAAI,EAAG,mBAAmBu5D,GAAQo/E,EAAc,EAC9DS,EAAY,QACZC,EAAU,QAEhBR,EAAY,WAAW,UAAW94I,CAAS,EAC3C+4I,EAAU,WAAW,UAAW94I,CAAO,EACvC+4I,EAAY,IAAIK,CAAS,EACzBJ,EAAU,IAAIK,CAAO,EACrBJ,EAAiB,KAAK,UAAW,EAAI,CACtC,CAED,KAAK,sBAAsB,OAAS,EAC9C,MACU,KAAK,sBAAsB,OAAS,EAE9C,CAAO,EAED,KAAK,QAAQ,MAAM,QAAU,MAEhC,CACH,CAzCEhuE,GADmB2tE,GACZ,UAAU,CAAC,YAAa,UAAW,eAAgB,iBAAiB,GCT7E,MAAMU,WAA0CpxC,EAAW,CAIzD,SAAU,SACR,KAAK,aAAch3N,EAAA,KAAK,mBAAmB,CAAC,IAAzB,YAAAA,EAA4B,MAC/C,KAAK,WAAYC,EAAA,KAAK,iBAAiB,CAAC,IAAvB,YAAAA,EAA0B,MAE3C,OAAO,kBAAqB4b,GAAQ,CAClC,KAAK,UAAY,OAAOA,EAAI,IAAI,EAAE,OAAO,YAAY,EACrD,KAAK,OAAM,CACZ,CACF,CAED,qBAAqB,EAAG,CAEtB,MAAMwsP,EADS,EAAE,OACU,QAAQ,KAAK,CAAC,EAErCA,EAAY,QAAU,IAAIA,EAAY,OAAM,EAEhD,KAAK,OAAM,CACZ,CAED,wBAAwB,EAAG,CACzB,KAAK,YAAc,EAAE,OAAO,MAC5B,KAAK,OAAM,EACX,KAAK,KAAK,CAAC,aAAc,KAAK,WAAW,CAAC,CAC3C,CAED,4BAA4B,EAAG,CAC7B,MAAM9oQ,EAAS,EAAE,OACXe,EAAMf,EAAO,QAAQ,IAE3B46E,GACG,IAAI75E,EAAK,CAAE,yBAA0Bf,EAAO,OAAO,CAAE,EACrD,KAAMsC,GAAa,CAClBtC,EAAO,QAAQ,gBAAgB,EAAE,UAAYsC,EAAS,IAC9D,CAAO,EACA,MAAOoR,GAAM,CACZ,OAAO,cAAc,QAASA,EAAE,SAAS,KAAK,MAAM,CAC5D,CAAO,CACJ,CAED,UAAU,EAAG,CACX,EAAE,eAAc,EAEhBknE,GACG,KAAK,EAAE,OAAO,IAAI,EAClB,KAAMt4E,GAAa,CAClB,KAAK,wBAAwB,mBAAmB,YAAaA,EAAS,IAAI,EAC1E,KAAK,KAAI,CACjB,CAAO,CACJ,CAED,aAAa,EAAG,CACd,EAAE,eAAc,EAEhBs4E,GACG,OAAO,EAAE,OAAO,IAAI,EACpB,KAAMt4E,GAAa,CAClB,EAAE,OAAO,QAAQ,gBAAgB,EAAE,UAAY,GAC/C,KAAK,KAAI,CACjB,CAAO,CACJ,CAED,QAAS,CACPs4E,GACG,IACC,KAAK,2BAA2B,QAAQ,IACxC,CACE,0BAA2B,KAAK,qBAAqB,MACrD,WAAY,KAAK,UACjB,aAAc,KAAK,WACpB,EACD,CACE,QAAS,CACP,OAAU,4BACX,CACF,CACF,EACA,KAAM3xC,GAAM,MAAM,oBAAoBA,EAAE,IAAI,CAAC,EAC7C,MAAO,GAAM,OAAO,cAAc,QAAS,EAAE,SAAS,KAAK,MAAM,CAAC,CACtE,CAED,KAAKvF,EAAQ,CACXk3C,GACG,IAAI,KAAK,qBAAqB,OAAQ,CACrC,OAAQl3C,EACR,QAAS,CACP,OAAU,4BACX,CACT,CAAO,EACA,KAAMuF,GAAM,MAAM,oBAAoBA,EAAE,IAAI,CAAC,EAC7C,MAAOv1B,GAAM,OAAO,cAAc,QAASA,EAAE,SAAS,KAAK,MAAM,CAAC,CACtE,CACH,CA9FE8mL,GADIquE,GACG,UAAU,CAAC,iBAAkB,iBAAkB,YACpC,cAAe,uBAAwB,mBAAmB,GCD/D,MAAME,YAA2BC,EAAe,CAC7D,SAAU,CACR,MAAM,QAAO,CACd,CAED,UAAU1mQ,EAAU,CAClB,GAAI,CACF,KAAK,SAAS,OAAO,YAAa,IAAM,CACtC,YAAY,IAAM,CAAE,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,GAAK,GAAG,EACxDm7N,GAAgB,KAAI,EACpB,KAAK,cAAc,EAAK,CAChC,CAAO,CACF,OAAQ/pN,EAAG,CACV,QAAQ,IAAIA,CAAC,CACd,CACF,CAED,SAAS1N,EAAO,CACDA,EAAM,SAAS,KAEnB,aACP,KAAK,SAAS,OAAO,YAAa,IAAM,CAAE,EAE7C,CAED,IAAI,UAAW,CACb,OAAO,IAAI4qP,EACZ,CACH,CChCA,SAAS3lI,IAAStU,EAAI,CACpB,GAAI,OAAOA,GAAO,SAChB,MAAM,IAAI,UAAU,mBAAmB,EAGzC,MAAO,CACL,KAAM,KAAK,MAAMA,EAAK,KAAQ,EAC9B,MAAO,KAAK,MAAMA,EAAK,IAAO,EAAI,GAClC,QAAS,KAAK,MAAMA,EAAK,GAAK,EAAI,GAClC,QAAS,KAAK,MAAMA,EAAK,GAAI,EAAI,GACjC,GAAI,KAAK,MAAMA,CAAE,EAAI,GACtB,CACH,CAEA,SAASsyJ,GAAS1oQ,EAAOkqO,EAAQ,CAC/BA,EAASA,GAAU,EAEnB,IAAIl1J,EAAMh1E,EAAM,SAAU,EACtB0R,EAAO,EAEX,OAAAA,EAAOw4N,EAASl1J,EAAI,OAAS,EAC7BA,EAAM,IAAI,MAAMtjE,CAAI,EAAE,KAAK,GAAG,EAAE,OAAOsjE,CAAG,EAEnCA,CACT,CAEA,SAAS2zL,IAAS1gO,EAAU,CAC1B,OAAOA,GAAY,KAAQ,IAAM,EACnC,CAEO,SAAS2gO,IAAgBxyJ,EAAI,CAClC,MAAMyyJ,EAAazyJ,EAAK,EAAI,CAACA,EAAKA,EAC5B9H,EAAOq6J,IAAQvyJ,CAAE,EACjBx9F,EAAI8xG,IAAQm+I,CAAU,EACtBpnJ,EAAUinJ,GAAQ9vP,EAAE,OAAO,EACjC,IAAIwlE,EAAS,GAEb,OAAAA,EAASkwB,GAAS11F,EAAE,KAAO,GAAMA,EAAE,OAAS,IAAM8vP,GAAQ9vP,EAAE,OAAO,EAAI,IAAM6oG,EAEtErjC,CACT,CCrCe,MAAM0qL,YAAgC5xC,EAAW,CAAjD,kCA4Cbj9B,GAAA,8BAAyB,IAAM,CACzB,SAAS,kBAAoB,WAC/B,KAAK,aAAa,KAAK,CAAE,QAAS,WAAa,EAElD,GA/CD,SAAU,CACR,KAAK,MAAQ,KAEb,MAAMmpD,EAAU,KAAK,QAAQ,QAC7B,KAAK,OAASA,EAAQ,OACtB,KAAK,SAAW,OAChB,KAAK,KAAOA,EAAQ,KACpB,KAAK,YAAcA,EAAQ,YAC3B,KAAK,SAAW,GAEhB,MAAMmV,EAAQ,KAEd,KAAK,aAAe,IAAI,MAAM,cAAc,OAAO,CAAE,QAAS,mBAAoB,QAAS,KAAK,MAAM,EAAI,CACxG,UAAW,IAAM,CACfA,EAAM,MAAK,EACX,SAAS,iBAAiB,mBAAoB,KAAK,sBAAsB,CAC1E,EAED,aAAc,IAAM,CAClBA,EAAM,KAAI,EACV,SAAS,oBAAoB,mBAAoB,KAAK,sBAAsB,CAC7E,EAED,SAAWwQ,GAAQ,OACjB,OAAQA,EAAI,QAAO,CACjB,IAAK,QACHxQ,EAAM,UAAWr4P,EAAA6oQ,EAAI,OAAJ,YAAA7oQ,EAAU,iBAC3Bq4P,EAAM,MAAK,EACX,MACF,IAAK,UACHA,EAAM,SAAW,EACZ,SAAS,KAAK,QAAQ,oBAAmB,OAAO,SAAS,KAAO,KAAK,aAAe,KACzF,MACF,IAAK,WACH,OAAO,SAAS,KAAO,KAAK,aAAe,IAC3C,MACF,QACE,QAAQ,IAAI,aAAa,CAC5B,CACF,CACP,CAAK,CACF,CAQD,YAAa,CACX,KAAK,aAAa,aACnB,CAED,OAAQ,CACN,KAAK,KAAI,EACT,KAAK,WAAU,EACX,KAAK,UAAY,GAAG,KAAK,YAAW,EAExC,MAAMyQ,EAAgB,IAAM,CAC1B,KAAK,WAAU,EACf,KAAK,YAAW,CACjB,EAED,KAAK,MAAQ,YAAY,IAAM,CAC7B,KAAK,WAED,KAAK,UAAY,EACnBA,IAEA,KAAK,WAAU,CAElB,EAAE,GAAI,CACR,CAED,aAAc,CACZ,GAAI,KAAK,SAAU,OAEnB,SAASC,GAAgB,CACvB,MAAMC,EAAc,SAAS,cAAc,KAAK,EAChD,OAAAA,EAAY,UAAU,IAAI,iBAAiB,EACpCA,CACR,CAED,SAASC,EAAqB/1P,EAAe,CAEvCA,GAAiB,CAACA,EAAc,cAAc,kBAAkB,GAClEA,EAAc,aAAa61P,EAAe,EAAE71P,EAAc,UAAU,CAEvE,CAED,MAAMg2P,EAAiB,SAAS,eAAe,gBAAgB,EAC/DD,EAAqBC,CAAc,EAEnC,MAAM1Z,EAAmB,SAAS,eAAe,oBAAoB,EACrE,GAAIA,GAAoBA,EAAiB,gBAAiB,CACxD,MAAM2Z,EAAe,SAAS,eAAe,oBAAoB,EACjEF,EAAqBE,CAAY,CAClC,CAED,MAAMC,EAAc,SAAS,eAAe,cAAc,EAC1DH,EAAqBG,CAAW,EAEhC,KAAK,SAAW,EACjB,CAGD,YAAa,CACX,KAAK,QAAQ,UAAY,KAAK,YAAW,EACzC,KAAK,QAAQ,UAAU,OAAO,WAAW,CAC1C,CAED,aAAc,CACZ,IAAIxjP,EAAO,KAAK,KACXA,IAAMA,EAAO,gEAElB,MAAMyjP,EAAc,SAAS,KAAK,QAAQ,GAAK,EACzCthO,EAAWshO,EAAc,EAAI,EAAIA,EAEvC,OAAOzjP,EAAK,QAAQ,QAAS8iP,IAAe3gO,EAAW,GAAI,CAAC,CAC7D,CAED,MAAO,CACD,KAAK,OAAO,cAAc,KAAK,KAAK,CACzC,CACH,CC9HO,SAASuhO,KAA6B,CAC3C,MAAMC,EAAe,yCACfC,EAAkB,EAAE,8BAA8B,EAElD7zP,EAAW,CACf,QAAS,CACP,WAAY,EAAE,mCAAmC,EACjD,YAAa,EAAE,uEAAuE,EACtF,QAAU,EAAE,IAAI4zP,CAAY,8BAA8B,EAC1D,uBAAwB,EAAE,IAAIA,CAAY,2CAA2C,CACtF,EACD,QAAS,CACP,WAAY,EAAE,mCAAmC,EACjD,YAAa,EAAE,+EAA+E,EAC9F,QAAS,EAAE,IAAIA,CAAY,8BAA8B,EACzD,uBAAwB,EAAE,IAAIA,CAAY,2CAA2C,CACtF,CACF,EAEKE,EAAuBrqQ,GAAS,CACpC,MAAMsqQ,EAAU/zP,EAASvW,CAAI,EAAE,QAE/B,IAAIuqQ,EAAqB,EAAE,IAAIJ,CAAY,IAAInqQ,CAAI,aAAa,EAC5DwqQ,EAAmB,EAAE,IAAIL,CAAY,IAAInqQ,CAAI,WAAW,EAE5DsqQ,EAAQ,GAAG,SAAU,IAAMG,EAAgBzqQ,CAAI,CAAC,EAChDuqQ,EAAmB,KAAK,CAAChmQ,EAAGmmQ,IAAoB,EAAEA,CAAe,EAAE,GAAG,SAAU,IAAMD,EAAgBzqQ,CAAI,CAAC,CAAC,EAC5GwqQ,EAAiB,KAAK,CAACjmQ,EAAGomQ,IAAkB,EAAEA,CAAa,EAAE,GAAG,SAAU,IAAMF,EAAgBzqQ,CAAI,CAAC,CAAC,CACvG,EAEKyqQ,EAAkB,SAASzqQ,EAAM,CACrC,MAAM4qQ,EAA0Br0P,EAASvW,CAAI,EAAE,uBACzC6qQ,EAA0Bt0P,EAASvW,CAAI,EAAE,YACfuW,EAASvW,CAAI,EAAE,QAE/C,IAAIgtM,EAAU49D,EAAuB,GAAG,UAAU,EAE7C59D,IAEL69D,EAAY,KAAK,WAAY79D,CAAO,EACpC69D,EAAY,IAAIC,EAAS9qQ,CAAI,CAAC,EAC/B,EAED,SAAS8qQ,EAAS9qQ,EAAM,CACFuW,EAASvW,CAAI,EAAE,YACnC,MAAMsqQ,EAAU/zP,EAASvW,CAAI,EAAE,QAE/B,IAAI+qQ,EAAO,WAAWT,EAAQ,IAAK,GAC/BpvJ,EAAQ8vJ,EAAShrQ,CAAI,EAGzB,OAFYirQ,EAAUF,EAAK7vJ,CAAK,CAGjC,CAED,SAAS+vJ,EAAUt8J,EAAQ,CACzB,OAAQ,KAAK,KAAKA,EAAS,GAAM,EAAG,GACrC,CAED,SAASq8J,EAAShrQ,EAAM,CAGtB,OAFYkrQ,EAAaC,EAAQnrQ,EAAM,OAAO,EAAGmrQ,EAAQnrQ,EAAM,KAAK,CAAC,CAGtE,CAED,SAASmrQ,EAAQnrQ,EAAMgR,EAAU,CAC/B,MAAMo6P,EAAW,EAAE,IAAIjB,CAAY,eAAenqQ,CAAI,IAAIgR,CAAQ,UAAU,EAAE,IAAG,EAC3Eq6P,EAAU,EAAE,IAAIlB,CAAY,eAAenqQ,CAAI,IAAIgR,CAAQ,WAAW,EAAE,IAAG,EAEjF,OAAOq+G,GAAO,GAAG+7I,CAAQ,IAAIC,CAAO,GAAI,OAAO,CAChD,CAED,MAAMC,EAAsCtrQ,GAAS,CACnD,MAAM6qQ,EAAct0P,EAASvW,CAAI,EAAE,YAEnB,EAAE,IAAIA,CAAI,uCAAuC,EAEvD,GAAG,QAAU6T,GAAM,CAC3Bg3P,EAAY,KAAK,WAAYh3P,EAAE,OAAO,QAAU,MAAM,EACtD42P,EAAgBzqQ,CAAI,EACpBurQ,GACN,CAAK,CACF,EAEKC,EAAmC,UAAW,CAClD,EAAE,iCAAiC,EAAE,GAAG,QAAS,IAAM,CACrDj1P,EAAS,QAAQ,YAAY,KAAK,WAAY,EAAK,EACnDA,EAAS,QAAQ,YAAY,KAAK,WAAY,EAAK,CACzD,CAAK,CACF,EAEK20P,EAAe,SAASpyC,EAAWC,EAAS,CAChD,OAAID,EAAU,cAAcC,CAAO,EAC1B,EAECA,EAAQ,KAAKD,EAAW,SAAS,EAAI,EAEhD,EAEK2yC,EAAqC,UAAW,CACpDrB,EAAgB,GAAG,SAAU,UAAW,CAClCA,EAAgB,GAAG,UAAU,IAC/BK,EAAgB,SAAS,EACzBA,EAAgB,SAAS,EACzBl0P,EAAS,QAAQ,uBAAuB,KAAK,UAAW,EAAI,EAC5DA,EAAS,QAAQ,uBAAuB,KAAK,UAAW,EAAI,EAC5Dg1P,IAER,CAAK,CACF,EAEKA,EAAmC,UAAW,CAClD,IAAIG,EAAiBn1P,EAAS,QAAQ,uBAAuB,GAAG,UAAU,EACtEo1P,EAAiBp1P,EAAS,QAAQ,uBAAuB,GAAG,UAAU,EAEtE,CAACm1P,GAAkB,CAACC,GAAgBvB,EAAgB,KAAK,UAAW,EAAK,EAAE,SAE/E7zP,EAAS,QAAQ,WAAW,YAAY,SAAU,CAACm1P,CAAc,EACjEn1P,EAAS,QAAQ,WAAW,YAAY,SAAU,CAACo1P,CAAc,CAClE,EAEDtB,EAAoB,SAAS,EAC7BA,EAAoB,SAAS,EAC7BiB,EAAmC,SAAS,EAC5CA,EAAmC,SAAS,EAC5CE,IACAC,IACAF,GACF,CC7HA,MAAMK,YAAgCh0C,EAAW,CAC/C,SAAU,CACR,KAAK,KAAM,CACZ,CAED,MAAO,CACL,KAAK,QAAU,KAAK,QAAQ,QAAQ,QAEpC,EAAE,kBAAkB,EAAE,WAAW,CAC/B,OAAQ,eACR,UAAW,GACX,UAAW,MACX,UAAW,CACjB,CAAK,EAED,MAAM51G,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAM,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3FzvF,EAAQ,CAAC,GAAI,MAAM,EAEnBs5O,EAAe,EAAE,+BAA+B,EAChDC,EAAwB,EAAE,0EAA0E,EACpGC,EAAuB,EAAE,yEAAyE,EAClGC,EAAiB,EAAE,kCAAkC,EACrDC,EAAyB,EAAE,6DAA6D,EACxFC,EAAiC,EAAE,qEAAqE,EACxGC,EAAwB,EAAE,4DAA4D,EACtFC,EAAgC,EAAE,oEAAoE,EAEtGC,EAA6B,EAAE,iEAAiE,EAChGC,EAAqC,EAAE,yEAAyE,EAChHC,EAA4B,EAAE,gEAAgE,EAC9FC,EAAoC,EAAE,wEAAwE,EAE9GC,EAAsB,EAAE,wEAAwE,EAChGC,EAA6B,EAAE,gFAAgF,EAC/GC,EAAqB,EAAE,uEAAuE,EAC9FC,EAA4B,EAAE,+EAA+E,EAE7GC,EAAyB,EAAE,4EAA4E,EACvGC,EAAgC,EAAE,oFAAoF,EACtHC,EAAwB,EAAE,2EAA2E,EACrGC,EAA+B,EAAE,mFAAmF,EAEpHC,EAAwB,EAAE,yEAAyE,EACnGC,EAAuB,EAAE,wEAAwE,EAEjGC,EAAqB,EAAE,uEAAuE,EAC9FC,EAAqB,EAAE,+EAA+E,EAEtGC,EAAa,EAAE,8BAA8B,EAE7CC,EAAoBC,GAAc,CACtC,EAAE,eAAe,EAAE,OAAO1B,EAAa,IAAG,IAAO,QAAQ,EACzD2B,GAA0BD,CAAS,CACpC,EAEKE,EAA8B,IAAM,CACxC,IAAIzgE,EAAU8+D,EAAsB,GAAG,UAAU,EACjDG,EAAuB,OAAOj/D,CAAO,EACrCk/D,EAA+B,OAAOl/D,CAAO,EAC7Cq/D,EAA2B,OAAOr/D,CAAO,EACzCs/D,EAAmC,OAAOt/D,CAAO,EAC9CA,GAAWqgE,EAAW,KAAK,UAAW,CAACrgE,CAAO,EAAE,SACnD0gE,IACD,EAEKC,EAA6B,IAAM,CACvC,IAAI3gE,EAAU++D,EAAqB,GAAG,UAAU,EAChDI,EAAsB,OAAOn/D,CAAO,EACpCo/D,EAA8B,OAAOp/D,CAAO,EAC5Cu/D,EAA0B,OAAOv/D,CAAO,EACxCw/D,EAAkC,OAAOx/D,CAAO,CACjD,EAEKs5D,GAAoB,IAAM,CAC9B,IAAIt5D,EAAUg/D,EAAe,GAAG,UAAU,EACtC4B,GAAS,EAAE,6GAA6G,EAC5H,EAAE,8BAA8B,EAAE,OAAO5gE,CAAO,EAChD4gE,GAAO,IAAI,CAAC5gE,CAAO,EAEf,EAAE,yBAAyB,EAAE,KAAK,WAAW,IAAM,KACrD++D,EAAqB,KAAK,UAAWD,EAAsB,GAAG,UAAU,CAAC,EACzE6B,EAA4B,EAE5BT,EAAqB,KAAK,UAAWD,EAAsB,GAAG,UAAU,CAAC,EACzEY,KAEA7rJ,EAAO,QAAQ9M,IAAS,CACtB3iF,EAAM,QAAQu7O,IAAa,CACzB,MAAMC,GAAe,EAAE,2DAA2DD,EAAS,UAAU54J,EAAK,EAAE,EACxF,EAAE,0DAA0D44J,EAAS,UAAU54J,EAAK,EAAE,EAE9F,KAAK,UAAW64J,GAAa,GAAG,UAAU,CAAC,CACnE,CAAW,CACX,CAAS,GAEHL,IACD,EAEKM,GAAwB,IAAM,CAClC,IAAIhhE,EAAUqgE,EAAW,GAAG,UAAU,EAClCO,GAAS,EAAE,qGAAqG,EACpH,EAAE,0BAA0B,EAAE,OAAO5gE,CAAO,EAC5C4gE,GAAO,IAAI,CAAC5gE,CAAO,EACdA,GAKHg/D,EAAe,KAAK,UAAW,CAACh/D,CAAO,EAAE,OAAM,EAC/CigE,EAAsB,KAAK,UAAW,CAACjgE,CAAO,EAAE,OAAM,EACtD8+D,EAAsB,KAAK,UAAW,CAAC9+D,CAAO,EAAE,OAAM,EACtD8+D,EAAsB,KAAK,WAAY9+D,CAAO,IAP9CmgE,EAAmB,KAAK,WAAYngE,CAAO,EAC3CogE,EAAmB,KAAK,WAAYpgE,CAAO,EAC3CihE,MAOFjC,EAAe,KAAK,WAAYh/D,CAAO,EACvCigE,EAAsB,KAAK,WAAYjgE,CAAO,CAC/C,EAEKkhE,GAA2B,IAAM,CACrC,IAAIlhE,EAAUigE,EAAsB,GAAG,UAAU,EACjD,EAAE,oCAAoC,EAAE,OAAOjgE,CAAO,EACtD,EAAE,yCAAyC,EAAE,OAAOA,CAAO,EAC3D0gE,IACD,EAEKG,GAA0B,IAAM,CACpC,IAAI7gE,EAAUkgE,EAAqB,GAAG,UAAU,EAChD,EAAE,mCAAmC,EAAE,OAAOlgE,CAAO,EACrD,EAAE,wCAAwC,EAAE,OAAOA,CAAO,CAC3D,EAEKihE,GAAe,IAAM,CACzB,MAAME,EAAiB,CAAClB,EAAsB,GAAG,UAAU,GACxDA,EAAsB,GAAG,UAAU,GAClCJ,EAAuB,IAAG,IAAO,IACjCC,EAA8B,QAAU,GAEtCrpP,GAAW,EAAEgpP,EAAoB,IAAK,IAAK,IAC/CC,EAA2B,IAAG,IAAO,IACrCyB,GAEF,EAAE,sGAAsG,EAAE,IAAI1qP,GAAW,IAAM,CAAC,EAChIqoP,EAAsB,KAAK,WAAYroP,EAAQ,CAChD,EAEK2qP,GAAc,IAAM,CACxB,MAAMD,EAAiB,CAACjB,EAAqB,GAAG,UAAU,GACvDA,EAAqB,GAAG,UAAU,GACjCH,EAAsB,IAAG,IAAO,IAChCC,EAA6B,QAAU,GAErCvpP,GAAW,EAAEkpP,EAAmB,IAAK,IAAK,IAC9CC,EAA0B,IAAG,IAAO,IACpCuB,GAEF,EAAE,qGAAqG,EAAE,IAAI1qP,GAAW,IAAM,CAAC,EAC/HsoP,EAAqB,KAAK,WAAYtoP,EAAQ,CAC/C,EAEDooP,EAAa,GAAG,SAAU,IAAMyB,EAAiB,EAAI,CAAC,EACtDxB,EAAsB,GAAG,SAAU2B,CAA2B,EAC9D1B,EAAqB,GAAG,SAAU4B,CAA0B,EAC5D3B,EAAe,GAAG,SAAU1F,EAAiB,EAE7CmG,EAAoB,GAAG,QAASwB,EAAY,EAC5CvB,EAA2B,GAAG,QAASuB,EAAY,EACnDtB,EAAmB,GAAG,QAASyB,EAAW,EAC1CxB,EAA0B,GAAG,QAASwB,EAAW,EAEjDnB,EAAsB,GAAG,SAAUiB,EAAwB,EAC3DhB,EAAqB,GAAG,SAAUW,EAAuB,EAEzDR,EAAW,GAAG,SAAUW,EAAqB,EAG7C,EAAE,6BAA6B,EAAE,GAAG,SAAU,SAASjrP,EAAI,CACzD,MAAM4wF,GAAM,gHACN9qG,GAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EACtB3E,GAAQyvG,GAAM,KAAK9qG,EAAE,EACrBwlQ,GAAYnqQ,GAAM,CAAC,IAAM,OAAS,GAAK,OACvCoqQ,GAAQ,mBAAmBpqQ,GAAM,CAAC,CAAC,eAAemqQ,EAAS,UAAUnqQ,GAAM,CAAC,CAAC,GAEnF,EAAEoqQ,EAAK,EAAE,KAAK,UAAW,CAAC,EAAE,IAAI,EAAE,KAAK,SAAS,CAAC,CACvD,CAAK,EAED,MAAMd,GAA6BD,GAAc,CAC/C,EAAE,iDAAiD,EAAE,KAAK,SAAShpQ,GAAGwe,GAAI,CACxE,MAAM4W,GAAU,EAAE5W,EAAE,EAAE,KAAK,SAAS,EACpC,GAAI4W,KAAY,OAAW,OAC3B,MAAM40O,GAAQ,EAAE,+BAA+B,EAAE,IAAG,EACpD,EAAExrP,EAAE,EAAE,OAAO,WAAW4W,EAAO,IAAM,WAAW40O,EAAK,CAAC,CAC9D,CAAO,EAED,MAAMC,GAAkB,EAAE,+EAA+E,EACnG5yG,GAAU4yG,GAAgB,OAAS,EAGzC,GAFA,EAAE,6CAA6C,EAAE,OAAO5yG,EAAO,EAE3DA,IAAW2xG,EAAW,CACxB,MAAMkB,GAAsBD,GAAgB,OAAO,sBAAwB,EAE3E,GAAIC,GAAoB,OAAS,EAAG,CAClC,MAAM/tQ,GAAQ,EAAE+tQ,GAAoB,CAAC,CAAC,EAAE,IAAK,EAC7C,EAAE,0CAA0C,EAAE,IAAI/tQ,EAAK,EAAE,OAAQ,CAClE,CACF,CAED,MAAMguQ,GAAsB,EAAE,0CAA0C,EAExE,GAAI9yG,IAAW8yG,GAAoB,IAAG,IAAO,KAAM,CACjD,MAAMC,GAAwBH,GAAgB,CAAC,EAAE,MAEjDE,GAAoB,IAAIC,EAAqB,EAAE,OAAM,CACtD,CAEG/yG,IAAW8yG,GAAoB,IAAG,IAAO,IACdF,GAAgB,OAAO,oCAAsC,EAErE,KAAK,CAACjqQ,GAAGwe,KAAOA,GAAG,OAAM,CAAE,CAEnD,EAEK2qP,GAA6C,IAAM,CACvD,IAAI1gE,EAAU8+D,EAAsB,GAAG,UAAU,GAC/CmB,EAAsB,GAAG,UAAU,GACnCjB,EAAe,GAAG,UAAU,EAE9BqB,EAAW,KAAK,WAAYrgE,CAAO,EAC/BA,IACFqgE,EAAW,KAAK,UAAW,CAACrgE,CAAO,EACnCghE,KAEH,EAEKY,GAAsB,EAAE,0CAA0C,EAClEC,GAA2BD,GAAoB,KAAK,OAAO,GAAK,GACtEA,GAAoB,IAAIC,EAAwB,EAAE,OAAQ,EAE1D,EAAE,kCAAkC,EAAE,GAAG,QAAUtuQ,GAAU,CAC3D,MAAMuuQ,GAAY,eAAe,QAAQ,qCAAqC,GAI9DvuQ,EAAM,OAAO,SAEduuQ,IAAa,MAAQA,KAAc,SAChD5kD,GAAU,QANM,6LAMa,MAAO,IAAI,EACrC,KAAM7lN,IAAW,CACZA,GAAO,aACT,eAAe,QAAQ,sCAAuC,EAAI,EAClE,OAAO,SAAW,iBAAiB,KAAK,OAAO,uCAE/C,eAAe,QAAQ,sCAAuC,EAAK,CAEjF,CAAW,CAEX,CAAK,EAEDipQ,IACAG,IACAE,IACArH,KACA4H,KACAL,KACAI,KACAG,KACAJ,KACAR,KACAtD,MACAwD,IACD,CACH,CC9Qe,MAAKqB,WAASn3C,EAAW,CAGtC,SAAU,CAER,MAAMmxB,EADK,KAAK,QACe,QAAQ,oBAEvChuK,GACG,IAAI,oBAAqB,CAAE,OAAQ,CAAE,qBAAsBguK,CAAmB,EAAI,EAClF,KAAMimB,GAAc,CACnB,KAAK,oBAAoB,IAAIjsP,GAAM,CACjCA,EAAG,mBAAmB,YAAaisP,EAAU,IAAI,CAC3D,CAAS,CACT,CAAO,EAAE,MAAM,IAAM,EAAE,CACpB,CACH,CAdEr0E,GADkBo0E,GACX,UAAU,CAAC,cAAc,GCDnB,MAAKE,YAASr3C,EAAW,CACtC,SAAU,CACR,MAAM,QAAO,EACb,KAAK,IAAM,KAAK,QAAQ,aAAa,MAAM,CAC5C,CAED,UAAU,EAAG,CACX,EAAE,eAAc,EAEhB78I,GACG,KAAK,KAAK,GAAG,EACb,KAAK,IAAM,CACV,OAAO,aAAa,EAAE,mCAAmC,EAAG,EAAI,CACxE,CAAO,EACA,MAAOlnE,GAAM,CACZ,OAAO,cAAc,QAAS,yBAAyBA,CAAC,EAAE,CAClE,CAAO,CACJ,CACH,CClBe,MAAKq7P,YAASt3C,EAAW,CACtC,SAAU,CACR,KAAK,kBAAoB,EAAE,qBAAqB,CACjD,CAED,KAAKr3N,EAAO,CACVA,EAAM,eAAc,EAEpB,MAAM4uQ,EAAU,EAAE5uQ,EAAM,MAAM,EAC1B4uQ,EAAQ,OAAO,IAAI,EAAE,SAAS,UAAU,GAE5C,KAAK,UAAUA,EAAQ,KAAK,MAAM,CAAC,CACpC,CAED,YAAY5uQ,EAAO,CACjBA,EAAM,eAAc,EAEpB,KAAK,UAAU,EAAEA,EAAM,MAAM,EAAE,KAAK,MAAM,CAAC,CAC5C,CAED,cAAcX,EAAM,CAClBA,EAAK,KAAK,iBAAiB,EAAE,GAAG,QAAUW,GAAU,CAClDA,EAAM,eAAc,EAEpB,MAAM4uQ,EAAU,EAAE5uQ,EAAM,aAAa,EAErC4uQ,EAAQ,KAAK,WAAY,EAAI,EAE7B,MAAM/qB,EAAQ+qB,EAAQ,QAAQ,MAAM,EAEpC,EAAE,KAAK,CACL,KAAM,OACN,IAAK/qB,EAAM,KAAK,QAAQ,EACxB,KAAMA,EAAM,UAAW,EAEvB,QAAS,IAAM,CACb,MAAMgrB,EAAS,KAAK,kBAAkB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAC1DC,EAAa,KAAK,kBAAkB,KAAK,MAAM,EAAE,KAAK,aAAa,EAEzE,KAAK,kBAAkB,MAAM,MAAM,EAE/BD,IACE,EAAE,eAAe,EAAE,OAAS,EAC9B,KAAK,WAAW,EAAK,GAEjBC,IACF,OAAO,aAAa,iBAAmB,oBAGzC,SAAS,QAAQA,GAAc,SAAS,IAAI,GAAK,SAAS,UAG/D,EAED,MAAQpgP,GAAS,CACf,KAAK,cAAcA,EAAK,YAAY,CACrC,CACT,CAAO,CACP,CAAK,CACF,CAED,UAAU/tB,EAAK,CACb65E,GACG,IAAI75E,EAAK,CAAE,QAAS,CAAE,mBAAoB,gBAAgB,CAAE,CAAC,EAC7D,KAAMuB,GAAY,CACjB,KAAM,CAAE,KAAAwsB,CAAM,EAAGxsB,EACjB,KAAK,kBAAkB,KAAK,eAAe,EAAE,IAAI,QAAS,EAAE,EAC5D,KAAK,cAAcwsB,CAAI,EACvB,KAAK,kBAAkB,MAAM,MAAM,CAC3C,CAAO,EAAE,MAAM,IAAM,CACb,OAAO,cAAc,QAAS,sBAAsB,CAC5D,CAAO,CACJ,CAED,cAAczpB,EAAS,CACrB,KAAK,kBAAkB,KAAK,gBAAgB,EAAE,QAAQ,OAAOA,CAAO,EAEpE,MAAM5F,EAAO,KAAK,kBAAkB,KAAK,MAAM,EAC3CA,IACEA,EAAK,KAAK,aAAa,IAAM,QAC/B,KAAK,kBAAkB,KAAK,eAAe,EAAE,IAAI,QAASA,EAAK,KAAK,aAAa,CAAC,EAGpF,KAAK,cAAcA,CAAI,EAE1B,CAGD,WAAW0vQ,EAAY,CACrB,EAAE,eAAe,EAAE,QAAQ,YAAY,CACxC,CACH,CC1Fe,MAAKC,YAAS33C,EAAW,CACtC,SAAU,CACR,KAAK,iBAAmB,KAAK,QAAQ,iBAAiB,uCAAuC,CAC9F,CAED,QAAS,CACP,KAAK,WAAU,CAChB,CAED,YAAYr3N,EAAO,CACjBA,EAAM,eAAc,EACpB,KAAK,wBAAwB,EAAI,CAClC,CAED,aAAaA,EAAO,CAClBA,EAAM,eAAc,EACpB,KAAK,wBAAwB,EAAK,CACnC,CAED,wBAAwBiiC,EAAQ,CAC9B,KAAK,iBAAiB,QAAQpiC,GAAWA,EAAQ,QAAUoiC,CAAM,EACjE,KAAK,WAAU,CAChB,CAED,eAAgB,CACd,KAAK,WAAU,CAChB,CAED,aAAajiC,EAAO,CAGlB,GAAI,EAFyB,KAAK,QAAQ,cAAc,4BAA4B,IAAM,MAE/D,CACzB,KAAK,WAAU,EACf,MACD,CAED,MAAM66E,EAAU76E,EAAM,OAAO,MAE7Bw6E,GACG,IAAI,mBAAmBK,CAAO,YAAY,EAC1C,KAAK34E,GAAY,CAChB,KAAM,CAAE,KAAAwsB,CAAM,EAAGxsB,EAEXoqI,EAAQ,EAAE,IAAI59G,EAAOzW,GAClB,iBAAmBA,EAAE,CAAC,EAAI,IAAMA,EAAE,CAAC,EAAI,WAC/C,EAEKuK,EAAK,EAAE,wCAAwC,EAErDA,EAAG,WAAW,SACdA,EAAG,OAAO8pH,CAAK,EAEf,KAAK,WAAU,CACvB,CAAO,EACA,MAAM,IAAM,KAAK,WAAU,CAAE,CACjC,CAED,kBAAkBtsI,EAAO,CACvB,KAAK,WAAU,EACf,MAAMivQ,EAAe,KAAK,QAAQ,cAAc,+CAA+C,EAAE,MAC7E,KAAK,QAAQ,cAAc,eAAe,EAClD,UAAU,OAAO,SAAUA,IAAiB,QAAQ,CACjE,CAED,YAAa,CACX,MAAMC,EAAkB,KAAK,QAAQ,QAAQ,+BAA+B,EAExEA,EACFA,EAAgB,cAAc,IAAI,YAAY,SAAU,CAAE,OAAQ,CAAE,KAAM,mBAAoB,CAAC,CAAC,EAEhG,QAAQ,MAAM,oDAAoD,CAErE,CACH,CC3EA,MAAMC,WAAgC93C,EAAW,CAG/C,SAAU,CACR,KAAK,eAAe,iBAAiB,SAAU,IAAM,CACnD,KAAK,aAAa,SAAW,CAAC,KAAK,eAAe,OACxD,CAAK,CACF,CACH,CAPEj9B,GADI+0E,GACG,UAAU,CAAC,SAAU,UAAU,GCExC,MAAMC,YAAgC/3C,EAAW,CAC/C,UAAU,EAAG,CACX,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAksB,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,OAAO+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CAC3C,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,uCAAuC,CAC/D,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAAC,CAC9F,CAAO,CACP,CAAK,CACF,CACH,CCfA,MAAMypQ,YAA2Ch4C,EAAW,CAC1D,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,MAAMp9D,EAAS,EAAE,OACX,CAAE,IAAAt5J,EAAK,QAAAnB,CAAO,EAAK,EAAE,OAAO,QAElC,GAAIy6J,EAAO,SAAU,MAAO,GAC5BA,EAAO,SAAW,GAEd,QAAQz6J,CAAO,IAAM,GACvBg7E,GAAM,OAAO75E,CAAG,EAAE,KAAMuB,GAAa,CACnC,MAAMglG,EAAgB,EAAE,OAAO,cACzBooK,EAAgB,SAAS,cAAc,4BAA4B,EACrEpoK,GAAeA,EAAc,SAC7BooK,GAAeA,EAAc,OACzC,CAAO,EAAE,MAAO1pQ,GAAU,CAClB,QAAQ,IAAIA,CAAK,EACjBq0J,EAAO,SAAW,GAClB8zF,GAAI,aAAanoP,EAAO,IAAM,CAC5B,OAAO,cAAc,QAAS,EAAE,SAAS,OAAO,CAC1D,CAAS,CACT,CAAO,EAEDq0J,EAAO,SAAW,EAErB,CACH,CC9Be,MAAMs1G,YAAiCl4C,EAAW,CAE/D,SAAU,CACR,MAAMjtM,EAAO,EAAE,KAAK,OAAO,EACrBm5N,EAAU,KAAK,QAAQ,QACvB/vK,EAAU+vK,EAAQ,SAAW,QAC7BpyK,EAAYoyK,EAAQ,WAAa,QACjC5iP,EAAM4iP,EAAQ,IACdisB,EAAejsB,EAAQ,aAG7Bn5N,EAAK,QAAQ,CACX,KAAM,GACN,QAASopD,EACT,UAAWrC,EACX,SAAU,GACV,QAAS,yDAAyDq+L,CAAY,UAAU7uQ,CAAG,iDACjG,CAAK,CACF,CACH,CCfe,MAAK8uQ,YAASp4C,EAAW,CACtC,SAAU,CACR,KAAK,SAAW,GAChB,KAAK,IAAM,KAAK,QAAQ,QAAQ,GACjC,CAED,MAAM,QAAQ,EAAG,OACf,EAAE,eAAc,EAChB,KAAK,cAAa,EAElB,GAAI,CACF,MAAMq4C,EAAe,MAAM,KAAK,UAEhC,GAAIA,EAAa,SAAW,IAC1B,GAAI,CACF,MAAMl1L,GAAM,KAAK,KAAK,GAAG,EAEzB,KAAK,SAAS,OAAO,eAAgB,IAAM,CACzC6iJ,GAAgB,KAAI,CAChC,CAAW,CACF,OAAQz3N,EAAO,CACd,KAAK,aAAY,IAEbvF,EAAAuF,EAAM,WAAN,YAAAvF,EAAgB,UAAW,KAC7B,KAAK,SAAS,OAAO,YAAa,IAAM,CAAE,GAE1C,OAAO,cAAc,QAASuF,EAAM,SAAS,KAAK,MAAM,GAExD,OAAO,cAAc,QAAS,sBAAsB,CAEvD,MAEDipP,GAAS,IAAI6gB,EAAa,KAAM,CAAE,SAAU,KAAK,YAAY,CAAE,CAElE,MAAe,CACd,KAAK,aAAY,CAClB,CACF,CAED,SAAU,CACR,OAAOl1L,GAAM,IAAI,KAAK,GAAG,CAC1B,CAED,eAAgB,CACd,KAAK,SAAW,GAChB,KAAK,QAAQ,SAAW,GACxB,KAAK,QAAQ,aAAa,WAAY,UAAU,EAChD6iJ,GAAgB,KAAI,CACrB,CAED,cAAe,CACb,WAAW,IAAM,CACf,KAAK,SAAW,GAChB,KAAK,QAAQ,SAAW,GACxB,KAAK,QAAQ,gBAAgB,UAAU,EACvCA,GAAgB,KAAI,CACrB,EAAE,GAAG,CACP,CAED,IAAI,UAAW,CACb,OAAO,IAAImzB,EACZ,CACH,CChEe,MAAKmf,YAASt4C,EAAW,CACtC,SAAU,CACR,KAAK,MAAQ,EAAE,qBAAqB,CACrC,CAED,WAAW,EAAG,CACZ,EAAE,eAAc,EAChB,KAAK,mBAAmB,EAAE,OAAO,aAAa,MAAM,CAAC,CACtD,CAED,mBAAmBvtN,EAAM,CACvB0wE,GAAM,IAAI1wE,CAAI,EAAE,KAAM5H,GAAa,CACjC,KAAK,MAAM,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOA,EAAS,IAAI,EAC9D,KAAK,MAAM,MAAM,MAAM,CAC7B,CAAK,EAAE,MAAM,IAAM,CACb,OAAO,cAAc,QAAS,sBAAsB,CAC1D,CAAK,CACF,CAED,cAAc,EAAG,CACf,EAAE,eAAc,EAEhB,KAAM,CAAE,SAAAkqM,CAAU,EAAG,EAAE,OAAO,QACxB/sM,EAAO,EAAE,OAAO,QAAQ,MAAM,EAC9B0I,EAAW,IAAI,SAAS1I,CAAI,EAC5ByB,EAASzB,EAAK,aAAa,QAAQ,EACnCuwQ,EAAWvwQ,EAAK,QAAQ,UAAayB,EAAS,QAEpD05E,GAAM,KAAK15E,EAAQiH,CAAQ,EAAE,KAAK,IAAM,CACtC,KAAK,MAAM,KAAK,gBAAgB,EAAE,MAAK,EACvC,KAAK,MAAM,MAAM,MAAM,EAEvByyE,GAAM,IAAIo1L,CAAQ,EAAE,KAAM1tQ,GAAa,CACrC,QAAQ,IAAIkqM,CAAQ,EACpB,MAAMgC,EAAM,SAAS,uBAAuBhC,CAAQ,EAAE,CAAC,EACvD,GAAKgC,EAEL,GAAIA,EAAI,QAAQ,YAAa,CAC3B,MAAMyhE,EAAgB,SAAS,cAAc,OAAO,EACpDA,EAAc,UAAY3tQ,EAAS,KACnC,MAAM4tQ,EAAUD,EAAc,cAAc,cAAc,EAAE,UAC5DzhE,EAAI,cAAc,QAAQ,EAAE,UAAY0hE,CAClD,KAAe,CACL,MAAMC,EAAU,SAAS,uBAAuB3jE,EAAW,OAAO,EAAE,CAAC,EAGrE,GAFI2jE,GAASA,EAAQ,SAEjB7tQ,EAAS,SAAW,KACtB,GAAIksM,EAAK,CACWA,EAAI,cACtB,MAAM4hE,EAAkB5hE,EAAI,cAAc,sBAAsB,EAC1DyhE,EAAgB,SAAS,cAAc,OAAO,EACpDA,EAAc,UAAY3tQ,EAAS,KAEhB2tQ,EAAc,cAAc,IAAI,EACnD,MAAMC,EAAUD,EAAc,cAAc,cAAc,EAAE,UACtDI,EAAa7hE,EAAI,UAAU,SAAS,mBAAmB,EAAIA,EAAI,mBAAqBA,EAE1FA,EAAI,cAAc,aAAayhE,EAAc,cAAc,IAAI,EAAGI,EAAW,WAAW,EACpFH,IACFE,EAAgB,MAAM,QAAU,GAChC5hE,EAAI,cAAc,UAAU,EAAE,UAAY0hE,GAE5C1hE,EAAI,UAAU,IAAI,WAAW,CAC9B,UAEGA,EAAK,CACP,MAAM4hE,EAAkB5hE,EAAI,cAAc,sBAAsB,EAEhE4hE,EAAgB,MAAM,QAAU,OAChC5hE,EAAI,UAAU,OAAO,WAAW,CACjC,CAEJ,CACT,CAAO,EAAE,MAAO96L,GAAM,CACd,QAAQ,MAAMA,CAAC,EACf,OAAO,cAAc,QAAS,sBAAsB,CAC5D,CAAO,CACP,CAAK,EAAE,MAAOA,GAAM,CACd,QAAQ,MAAMA,CAAC,EACf,OAAO,cAAc,QAAS,sBAAsB,CAC1D,CAAK,CACF,CAEH,CCvFA;AAAA;AAAA;AAAA,IAaA,SAASmxE,GAAc7gE,EAAW/W,EAASqjQ,EAAY,CACrD,MAAM1tP,EAAK,SAAS,cAAc3V,CAAO,EAEzC,OAAI+W,IACFpB,EAAG,UAAYoB,GAGbssP,GACFA,EAAW,YAAY1tP,CAAE,EAGpBA,CACT,CAUA,SAAS2tP,IAAkBjnQ,EAAGC,EAAG8mB,EAAO,CACtC,IAAI+pC,EAAY,eAAe9wD,CAAC,MAAMC,GAAK,CAAC,QAE5C,OAAI8mB,IAAU,SACZ+pC,GAAa,YAAY/pC,CAAK,IAAIA,CAAK,OAGlC+pC,CACT,CASA,SAASo2M,GAAe5tP,EAAIlM,EAAGqyB,EAAG,CAChCnmB,EAAG,MAAM,MAAQ,OAAOlM,GAAM,SAAW,GAAGA,CAAC,KAAOA,EACpDkM,EAAG,MAAM,OAAS,OAAOmmB,GAAM,SAAW,GAAGA,CAAC,KAAOA,CACvD,CAKA,MAAM0nO,GAAa,CACjB,KAAM,OACN,QAAS,UACT,OAAQ,SACR,MAAO,OACT,EASA,SAASC,IAAeh9P,EAAG,CACzB,MAAO,WAAYA,GAAKA,EAAE,SAAW,GAAKA,EAAE,SAAWA,EAAE,SAAWA,EAAE,QAAUA,EAAE,QACpF,CAUA,SAASi9P,GAAsBjjQ,EAAQkjQ,EAAgB/qP,EAAS,SAAU,CAExE,IAAIphB,EAAW,GAEf,GAAIiJ,aAAkB,QACpBjJ,EAAW,CAACiJ,CAAM,UACTA,aAAkB,UAAY,MAAM,QAAQA,CAAM,EAC3DjJ,EAAW,MAAM,KAAKiJ,CAAM,MACvB,CACL,MAAMnI,EAAW,OAAOmI,GAAW,SAAWA,EAASkjQ,EAEnDrrQ,IACFd,EAAW,MAAM,KAAKohB,EAAO,iBAAiBtgB,CAAQ,CAAC,EAE1D,CAED,OAAOd,CACT,CAQA,SAASosQ,IAAYnuP,EAAI,CACvB,OAAO,OAAOA,GAAO,YAAcA,EAAG,WAAaA,EAAG,UAAU,IAClE,CAOA,SAASqmL,IAAW,CAClB,MAAO,CAAC,EAAE,UAAU,QAAU,UAAU,OAAO,MAAM,QAAQ,EAC/D,CA4NA,IAAA+nE,IAAA,KAAsB,CAKpB,YAAYxmQ,EAAMmC,EAAS,CACzB,KAAK,KAAOnC,EACZ,KAAK,iBAAmB,GAEpBmC,GACF,OAAO,OAAO,KAAMA,CAAO,CAE9B,CAED,gBAAiB,CACf,KAAK,iBAAmB,EACzB,CAEH,EAOAskQ,IAAA,KAAgB,CACd,aAAc,CAIZ,KAAK,WAAa,GAKlB,KAAK,SAAW,GAGhB,KAAK,KAAO,OAGZ,KAAK,QAAU,MAChB,CASD,UAAUlxQ,EAAM6iB,EAAIyuF,EAAW,IAAK,CAClC,IAAI6/J,EAAqBC,EAAsBC,EAE1C,KAAK,SAASrxQ,CAAI,IACrB,KAAK,SAASA,CAAI,EAAI,KAGvBmxQ,EAAsB,KAAK,SAASnxQ,CAAI,KAAO,MAAQmxQ,IAAwB,QAAUA,EAAoB,KAAK,CACjH,GAAAtuP,EACA,SAAAyuF,CACN,CAAK,GACA8/J,EAAuB,KAAK,SAASpxQ,CAAI,KAAO,MAAQoxQ,IAAyB,QAAUA,EAAqB,KAAK,CAACE,EAAIC,IAAOD,EAAG,SAAWC,EAAG,QAAQ,GAC1JF,EAAa,KAAK,QAAU,MAAQA,IAAe,QAAUA,EAAW,UAAUrxQ,EAAM6iB,EAAIyuF,CAAQ,CACtG,CAQD,aAAatxG,EAAM6iB,EAAI,CACjB,KAAK,SAAS7iB,CAAI,IAEpB,KAAK,SAASA,CAAI,EAAI,KAAK,SAASA,CAAI,EAAE,OAAOioB,GAAUA,EAAO,KAAOpF,CAAE,GAGzE,KAAK,MACP,KAAK,KAAK,aAAa7iB,EAAM6iB,CAAE,CAElC,CASD,aAAa7iB,KAASmmB,EAAM,CAC1B,IAAIqrP,EAEJ,OAACA,EAAuB,KAAK,SAASxxQ,CAAI,KAAO,MAAQwxQ,IAAyB,QAAUA,EAAqB,QAAQvpP,GAAU,CAEjI9B,EAAK,CAAC,EAAI8B,EAAO,GAAG,MAAM,KAAM9B,CAAI,CAC1C,CAAK,EACMA,EAAK,CAAC,CACd,CAQD,GAAGnmB,EAAM6iB,EAAI,CACX,IAAI4uP,EAAuBC,EAEtB,KAAK,WAAW1xQ,CAAI,IACvB,KAAK,WAAWA,CAAI,EAAI,KAGzByxQ,EAAwB,KAAK,WAAWzxQ,CAAI,KAAO,MAAQyxQ,IAA0B,QAAUA,EAAsB,KAAK5uP,CAAE,GAI5H6uP,EAAc,KAAK,QAAU,MAAQA,IAAgB,QAAUA,EAAY,GAAG1xQ,EAAM6iB,CAAE,CACxF,CAQD,IAAI7iB,EAAM6iB,EAAI,CACZ,IAAI8uP,EAEA,KAAK,WAAW3xQ,CAAI,IAEtB,KAAK,WAAWA,CAAI,EAAI,KAAK,WAAWA,CAAI,EAAE,OAAOwlC,GAAY3iB,IAAO2iB,CAAQ,IAGjFmsO,EAAc,KAAK,QAAU,MAAQA,IAAgB,QAAUA,EAAY,IAAI3xQ,EAAM6iB,CAAE,CACzF,CASD,SAAS7iB,EAAM4M,EAAS,CACtB,IAAIglQ,EAEJ,GAAI,KAAK,KACP,OAAO,KAAK,KAAK,SAAS5xQ,EAAM4M,CAAO,EAGzC,MAAMrM,EAEN,IAAIsxQ,IAAgB7xQ,EAAM4M,CAAO,EACjC,OAACglQ,EAAyB,KAAK,WAAW5xQ,CAAI,KAAO,MAAQ4xQ,IAA2B,QAAUA,EAAuB,QAAQpsO,GAAY,CAC3IA,EAAS,KAAK,KAAMjlC,CAAK,CAC/B,CAAK,EACMA,CACR,CAEH,EAEAuxQ,IAAA,KAAkB,CAKhB,YAAYC,EAAUv+P,EAAW,CAO/B,GAFA,KAAK,QAAUwxE,GAAc,mCAAoC+sL,EAAW,MAAQ,MAAOv+P,CAAS,EAEhGu+P,EAAU,CACZ,MAAMC,EAEN,KAAK,QACLA,EAAM,SAAW,QACjBA,EAAM,IAAM,GACZA,EAAM,IAAMD,EACZC,EAAM,aAAa,OAAQ,cAAc,CAC1C,CAED,KAAK,QAAQ,aAAa,cAAe,MAAM,CAChD,CAOD,iBAAiB56O,EAAOs5C,EAAQ,CACzB,KAAK,UAIN,KAAK,QAAQ,UAAY,OAI3BigM,GAAe,KAAK,QAAS,IAAK,MAAM,EACxC,KAAK,QAAQ,MAAM,gBAAkB,MACrC,KAAK,QAAQ,MAAM,UAAYD,IAAkB,EAAG,EAAGt5O,EAAQ,GAAG,GAElEu5O,GAAe,KAAK,QAASv5O,EAAOs5C,CAAM,EAE7C,CAED,SAAU,CACR,IAAIuhM,GAECA,EAAgB,KAAK,WAAa,MAAQA,IAAkB,QAAUA,EAAc,YACvF,KAAK,QAAQ,SAGf,KAAK,QAAU,IAChB,CAEH,EAUAC,IAAA,KAAc,CAMZ,YAAYC,EAAUruM,EAAUn2D,EAAO,CACrC,KAAK,SAAWm2D,EAChB,KAAK,KAAOquM,EACZ,KAAK,MAAQxkQ,EAGb,KAAK,QAAU,OAGf,KAAK,YAAc,OAGnB,KAAK,MAAQ,OACb,KAAK,oBAAsB,EAC3B,KAAK,qBAAuB,EAC5B,KAAK,MAAQ,OAAO,KAAK,KAAK,CAAC,GAAK,OAAO,KAAK,KAAK,KAAK,GAAK,EAC/D,KAAK,OAAS,OAAO,KAAK,KAAK,CAAC,GAAK,OAAO,KAAK,KAAK,MAAM,GAAK,EACjE,KAAK,WAAa,GAClB,KAAK,SAAW,GAChB,KAAK,WAAa,GAGlB,KAAK,MAAQijQ,GAAW,KAEpB,KAAK,KAAK,KACZ,KAAK,KAAO,KAAK,KAAK,KACb,KAAK,KAAK,IACnB,KAAK,KAAO,QAEZ,KAAK,KAAO,OAGd,KAAK,SAAS,SAAS,cAAe,CACpC,QAAS,IACf,CAAK,CACF,CAED,mBAAoB,CACd,KAAK,aAAe,CAAC,KAAK,gBAAe,GAE3C,WAAW,IAAM,CACX,KAAK,cACP,KAAK,YAAY,UACjB,KAAK,YAAc,OAEtB,EAAE,GAAI,CAEV,CASD,KAAKwB,EAAQhD,EAAQ,CACnB,GAAI,KAAK,OAAS,KAAK,eAAc,EACnC,GAAK,KAAK,YAKH,CACL,MAAMiD,EAAgB,KAAK,YAAY,QAEnCA,GAAiB,CAACA,EAAc,eAClC,KAAK,MAAM,UAAU,QAAQA,CAAa,CAE7C,KAXsB,CACrB,MAAMC,EAAiB,KAAK,SAAS,aAAa,iBAElD,KAAK,KAAK,MAAQ,KAAK,MAAM,aAAe,KAAK,KAAK,KAAO,GAAO,IAAI,EACxE,KAAK,YAAc,IAAI7/K,IAAY6/K,EAAgB,KAAK,MAAM,SAAS,CAC/E,CASQ,KAAK,SAAW,CAAClD,GAIjB,KAAK,SAAS,SAAS,cAAe,CACxC,QAAS,KACT,OAAAgD,CACD,GAAE,mBAIC,KAAK,kBACP,KAAK,QAAUptL,GAAc,YAAa,KAAK,EAG3C,KAAK,qBACP,KAAK,UAAUotL,CAAM,IAGvB,KAAK,QAAUptL,GAAc,gBAAiB,KAAK,EACnD,KAAK,QAAQ,UAAY,KAAK,KAAK,MAAQ,IAGzCoqL,GAAU,KAAK,OACjB,KAAK,MAAM,kBAAkB,EAAI,EAEpC,CAQD,UAAUgD,EAAQ,CAChB,IAAIG,EAAgBC,EAEpB,GAAI,CAAC,KAAK,eAAc,GAAM,CAAC,KAAK,SAAW,KAAK,SAAS,SAAS,mBAAoB,CACxF,QAAS,KACT,OAAAJ,CACD,GAAE,iBACD,OAGF,MAAMK,EAEN,KAAK,QACL,KAAK,kBAAiB,EAElB,KAAK,KAAK,SACZA,EAAa,OAAS,KAAK,KAAK,QAGlCA,EAAa,KAAOF,EAAiB,KAAK,KAAK,OAAS,MAAQA,IAAmB,OAASA,EAAiB,GAC7GE,EAAa,KAAOD,EAAiB,KAAK,KAAK,OAAS,MAAQA,IAAmB,OAASA,EAAiB,GAC7G,KAAK,MAAQ5B,GAAW,QAEpB6B,EAAa,SACf,KAAK,SAAQ,GAEbA,EAAa,OAAS,IAAM,CAC1B,KAAK,SAAQ,CACrB,EAEMA,EAAa,QAAU,IAAM,CAC3B,KAAK,QAAO,CACpB,EAEG,CAQD,SAASC,EAAO,CACd,KAAK,MAAQA,EACb,KAAK,SAAW,GAChB,KAAK,SAAWA,EAAM,IACvB,CAMD,UAAW,CACT,KAAK,MAAQ9B,GAAW,OAEpB,KAAK,OAAS,KAAK,UACrB,KAAK,SAAS,SAAS,eAAgB,CACrC,MAAO,KAAK,MACZ,QAAS,IACjB,CAAO,EAEG,KAAK,MAAM,UAAY,KAAK,MAAM,eAAiB,CAAC,KAAK,QAAQ,aACnE,KAAK,OAAM,EACX,KAAK,MAAM,kBAAkB,EAAI,IAG/B,KAAK,QAAUA,GAAW,QAAU,KAAK,QAAUA,GAAW,QAChE,KAAK,kBAAiB,EAG3B,CAMD,SAAU,CACR,KAAK,MAAQA,GAAW,MAEpB,KAAK,QACP,KAAK,aAAY,EACjB,KAAK,SAAS,SAAS,eAAgB,CACrC,MAAO,KAAK,MACZ,QAAS,GACT,QAAS,IACjB,CAAO,EACD,KAAK,SAAS,SAAS,YAAa,CAClC,MAAO,KAAK,MACZ,QAAS,IACjB,CAAO,EAEJ,CAMD,WAAY,CACV,OAAO,KAAK,SAAS,aAAa,mBAAoB,KAAK,QAAUA,GAAW,QAAS,IAAI,CAC9F,CAMD,SAAU,CACR,OAAO,KAAK,QAAUA,GAAW,KAClC,CAMD,gBAAiB,CACf,OAAO,KAAK,OAAS,OACtB,CASD,iBAAiBx5O,EAAOs5C,EAAQ,CAC9B,GAAK,KAAK,UAIN,KAAK,aACP,KAAK,YAAY,iBAAiBt5C,EAAOs5C,CAAM,EAG7C,MAAK,SAAS,SAAS,gBAAiB,CAC1C,QAAS,KACT,MAAAt5C,EACA,OAAAs5C,CACD,GAAE,mBAIHigM,GAAe,KAAK,QAASv5O,EAAOs5C,CAAM,EAEtC,KAAK,eAAc,GAAM,CAAC,KAAK,QAAO,IAAI,CAC5C,MAAMiiM,EAAsB,CAAC,KAAK,qBAAuBv7O,EACzD,KAAK,oBAAsBA,EAC3B,KAAK,qBAAuBs5C,EAExBiiM,EACF,KAAK,UAAU,EAAK,EAEpB,KAAK,kBAAiB,EAGpB,KAAK,OACP,KAAK,SAAS,SAAS,kBAAmB,CACxC,MAAO,KAAK,MACZ,MAAAv7O,EACA,OAAAs5C,EACA,QAAS,IACnB,CAAS,CAEJ,CACF,CAMD,YAAa,CACX,OAAO,KAAK,SAAS,aAAa,oBAAqB,KAAK,kBAAoB,KAAK,QAAUkgM,GAAW,MAAO,IAAI,CACtH,CAMD,mBAAoB,CAMlB,GAAI,CAAC,KAAK,eAAc,GAAM,CAAC,KAAK,SAAW,CAAC,KAAK,KAAK,OACxD,OAGF,MAAMt0D,EAEN,KAAK,QACCs2D,EAAa,KAAK,SAAS,aAAa,mBAAoB,KAAK,oBAAqB,IAAI,GAE5F,CAACt2D,EAAM,QAAQ,iBAAmBs2D,EAAa,SAASt2D,EAAM,QAAQ,gBAAiB,EAAE,KAC3FA,EAAM,MAAQs2D,EAAa,KAC3Bt2D,EAAM,QAAQ,gBAAkB,OAAOs2D,CAAU,EAEpD,CAMD,gBAAiB,CACf,OAAO,KAAK,SAAS,aAAa,wBAAyB,KAAK,eAAc,EAAI,IAAI,CACvF,CAMD,UAAW,CACL,KAAK,SAAS,SAAS,kBAAmB,CAC5C,QAAS,IACV,GAAE,kBAIH,KAAK,KAAK,EAAI,CACf,CAMD,iBAAkB,CAChB,OAAO,KAAK,SAAS,aAAa,uBAAwB,KAAK,UAAS,EAAI,IAAI,CACjF,CAMD,SAAU,CACR,KAAK,SAAW,GAChB,KAAK,MAAQ,OAET,MAAK,SAAS,SAAS,iBAAkB,CAC3C,QAAS,IACV,GAAE,mBAIH,KAAK,OAAM,EAEP,KAAK,cACP,KAAK,YAAY,UACjB,KAAK,YAAc,QAGjB,KAAK,kBAAoB,KAAK,UAChC,KAAK,QAAQ,OAAS,KACtB,KAAK,QAAQ,QAAU,KACvB,KAAK,QAAU,QAElB,CAMD,cAAe,CACb,GAAI,KAAK,MAAO,CACd,IAAIC,EAAuBC,EAE3B,IAAIC,EAAa/tL,GAAc,kBAAmB,KAAK,EACvD+tL,EAAW,WAAaF,GAAyBC,EAAyB,KAAK,SAAS,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,YAAc,MAAQD,IAA0B,OAASA,EAAwB,GAClQE,EAEA,KAAK,SAAS,aAAa,sBAAuBA,EAAY,IAAI,EAClE,KAAK,QAAU/tL,GAAc,0CAA2C,KAAK,EAC7E,KAAK,QAAQ,YAAY+tL,CAAU,EACnC,KAAK,MAAM,UAAU,UAAY,GACjC,KAAK,MAAM,UAAU,YAAY,KAAK,OAAO,EAC7C,KAAK,MAAM,kBAAkB,EAAI,EACjC,KAAK,kBAAiB,CACvB,CACF,CAMD,QAAS,CACP,GAAI,KAAK,YAAc,CAAC,KAAK,QAC3B,OAKF,GAFA,KAAK,WAAa,GAEd,KAAK,QAAUnC,GAAW,MAAO,CACnC,KAAK,aAAY,EACjB,MACD,CAED,GAAI,KAAK,SAAS,SAAS,gBAAiB,CAC1C,QAAS,IACV,GAAE,iBACD,OAGF,MAAMoC,EAAkB,WAAY,KAAK,QAErC,KAAK,iBAaHA,GAAkB,KAAK,QAAU,CAAC,KAAK,MAAM,UAAY9pE,GAAQ,IACnE,KAAK,WAAa,GAKlB,KAAK,QAAQ,OAAQ,EAAC,MAAM,IAAM,CAAE,GAAE,QAAQ,IAAM,CAClD,KAAK,WAAa,GAClB,KAAK,YAAW,CAC1B,CAAS,GAED,KAAK,YAAW,EAET,KAAK,OAAS,CAAC,KAAK,QAAQ,YACrC,KAAK,MAAM,UAAU,YAAY,KAAK,OAAO,CAEhD,CAQD,UAAW,CACL,KAAK,SAAS,SAAS,kBAAmB,CAC5C,QAAS,IACV,GAAE,kBAAoB,CAAC,KAAK,QAIzB,KAAK,eAAgB,GAAI,KAAK,YAAc,CAACA,KAG/C,KAAK,YAAW,EACP,KAAK,WACd,KAAK,KAAK,GAAO,EAAI,EAGnB,KAAK,MAAM,eACb,KAAK,MAAM,cAAc,aAAa,cAAe,OAAO,EAE/D,CAMD,YAAa,CACX,KAAK,SAAS,SAAS,oBAAqB,CAC1C,QAAS,IACf,CAAK,EAEG,KAAK,OAAS,KAAK,MAAM,eAC3B,KAAK,MAAM,cAAc,aAAa,cAAe,MAAM,CAE9D,CAMD,QAAS,CACP,KAAK,WAAa,GAEd,MAAK,SAAS,SAAS,gBAAiB,CAC1C,QAAS,IACV,GAAE,mBAIC,KAAK,SAAW,KAAK,QAAQ,YAC/B,KAAK,QAAQ,SAGX,KAAK,aAAe,KAAK,YAAY,SACvC,KAAK,YAAY,QAAQ,SAE5B,CAMD,aAAc,CACP,KAAK,aAIN,KAAK,SAAS,SAAS,qBAAsB,CAC/C,QAAS,IACV,GAAE,mBAKC,KAAK,OAAS,KAAK,SAAW,CAAC,KAAK,QAAQ,YAC9C,KAAK,MAAM,UAAU,YAAY,KAAK,OAAO,GAG3C,KAAK,QAAU0nE,GAAW,QAAU,KAAK,QAAUA,GAAW,QAChE,KAAK,kBAAiB,GAEzB,CAEH,EAeA,SAASqC,IAAgBlpQ,EAASmpQ,EAAM,CACtC,GAAInpQ,EAAQ,kBAAmB,CAC7B,MAAMopQ,EAAkBppQ,EAAQ,kBAAkBA,EAASmpQ,CAAI,EAE/D,GAAIC,EACF,OAAOA,CAEV,CAED,MAAO,CACL,EAAG,SAAS,gBAAgB,YAK5B,EAAG,OAAO,WACd,CACA,CAqCA,SAASC,GAAmBlkP,EAAMnlB,EAASspQ,EAAclB,EAAUxkQ,EAAO,CACxE,IAAI2lQ,EAAe,EAEnB,GAAIvpQ,EAAQ,UACVupQ,EAAevpQ,EAAQ,UAAUspQ,EAAclB,EAAUxkQ,CAAK,EAAEuhB,CAAI,UAC3DnlB,EAAQ,QACjBupQ,EAAevpQ,EAAQ,QAAQmlB,CAAI,MAC9B,CACL,MAAMqkP,EAAiB,UAAYrkP,EAAK,CAAC,EAAE,YAAW,EAAKA,EAAK,MAAM,CAAC,EAEnEnlB,EAAQwpQ,CAAc,IAExBD,EAAevpQ,EAAQwpQ,CAAc,EAExC,CAED,OAAO,OAAOD,CAAY,GAAK,CACjC,CASA,SAASE,IAAezpQ,EAASspQ,EAAclB,EAAUxkQ,EAAO,CAC9D,MAAO,CACL,EAAG0lQ,EAAa,EAAID,GAAmB,OAAQrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EAAIylQ,GAAmB,QAASrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EAC3J,EAAG0lQ,EAAa,EAAID,GAAmB,MAAOrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EAAIylQ,GAAmB,SAAUrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,CAC/J,CACA,CAEA,MAAM8lQ,GAAkB,IAgBxB,IAAAC,IAAA,KAAgB,CAOd,YAAY3pQ,EAASooQ,EAAUxkQ,EAAOulQ,EAAM,CAC1C,KAAK,KAAOA,EACZ,KAAK,QAAUnpQ,EACf,KAAK,SAAWooQ,EAChB,KAAK,MAAQxkQ,EAGb,KAAK,YAAc,KAGnB,KAAK,YAAc,KACnB,KAAK,IAAM,EACX,KAAK,KAAO,EACZ,KAAK,MAAQ,EACb,KAAK,QAAU,EACf,KAAK,UAAY,EACjB,KAAK,IAAM,EACX,KAAK,IAAM,CACZ,CAYD,OAAO2pB,EAAU2yD,EAAW0pL,EAAa,CAEvC,MAAMC,EAAc,CAClB,EAAGt8O,EACH,EAAG2yD,CACT,EACI,KAAK,YAAc2pL,EACnB,KAAK,YAAcD,EACnB,MAAME,EAASF,EAAY,EAAIC,EAAY,EACrCE,EAASH,EAAY,EAAIC,EAAY,EAC3C,KAAK,IAAM,KAAK,IAAI,EAAGC,EAASC,EAASD,EAASC,CAAM,EACxD,KAAK,KAAO,KAAK,IAAI,EAAGD,EAASC,EAASD,EAASC,CAAM,EAGzD,KAAK,MAAQ,KAAK,IAAI,EAAGA,CAAM,EAC/B,KAAK,QAAU,KAAK,cACpB,KAAK,UAAY,KAAK,gBACtB,KAAK,IAAM,KAAK,IAAI,KAAK,QAAS,KAAK,UAAW,KAAK,QAAS,GAChE,KAAK,IAAM,KAAK,IAAI,KAAK,IAAK,KAAK,QAAS,KAAK,SAAS,EAEtD,KAAK,MACP,KAAK,KAAK,SAAS,mBAAoB,CACrC,WAAY,KACZ,UAAW,KAAK,QACxB,CAAO,CAEJ,CAUD,sBAAsBC,EAAc,CAClC,MAAMzhI,EAENyhI,EAAe,YACTnyD,EAAc,KAAK,QAAQtvE,CAAU,EAE3C,GAAKsvE,EAIL,OAAI,OAAOA,GAAgB,WAClBA,EAAY,IAAI,EAGrBA,IAAgB,OACX,KAAK,KAGVA,IAAgB,MACX,KAAK,IAGP,OAAOA,CAAW,CAC1B,CAYD,eAAgB,CACd,IAAIoyD,EAAgB,KAAK,sBAAsB,WAAW,EAE1D,OAAIA,IAKJA,EAAgB,KAAK,IAAI,EAAG,KAAK,IAAM,CAAC,EAEpC,KAAK,aAAeA,EAAgB,KAAK,YAAY,EAAIP,KAC3DO,EAAgBP,GAAkB,KAAK,YAAY,GAG9CO,EACR,CASD,aAAc,CACZ,OAAO,KAAK,sBAAsB,SAAS,GAAK,KAAK,GACtD,CAWD,SAAU,CAGR,OAAO,KAAK,sBAAsB,KAAK,GAAK,KAAK,IAAI,EAAG,KAAK,IAAM,CAAC,CACrE,CAEH,EAaA,SAASC,GAAa9B,EAAUruM,EAAUn2D,EAAO,CAC/C,MAAMnI,EAAUs+D,EAAS,sBAAsBquM,EAAUxkQ,CAAK,EAG9D,IAAIumQ,EACJ,KAAM,CACJ,QAAAnqQ,CACD,EAAG+5D,EAGJ,GAAI/5D,EAAS,CACXmqQ,EAAY,IAAIC,IAAUpqQ,EAASooQ,EAAU,EAAE,EAC/C,IAAIkB,EAEAvvM,EAAS,KACXuvM,EAAevvM,EAAS,KAAK,aAE7BuvM,EAAeJ,IAAgBlpQ,EAAS+5D,CAAQ,EAGlD,MAAM6vM,EAAcH,IAAezpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EACzEumQ,EAAU,OAAO1uQ,EAAQ,MAAOA,EAAQ,OAAQmuQ,CAAW,CAC5D,CAED,OAAAnuQ,EAAQ,SAAQ,EAEZ0uQ,GACF1uQ,EAAQ,iBAAiB,KAAK,KAAKA,EAAQ,MAAQ0uQ,EAAU,OAAO,EAAG,KAAK,KAAK1uQ,EAAQ,OAAS0uQ,EAAU,OAAO,CAAC,EAG/G1uQ,CACT,CAaA,SAAS4uQ,IAAczmQ,EAAOm2D,EAAU,CACtC,MAAMquM,EAAWruM,EAAS,YAAYn2D,CAAK,EAE3C,GAAI,CAAAm2D,EAAS,SAAS,gBAAiB,CACrC,MAAAn2D,EACA,SAAAwkQ,CACD,GAAE,iBAIH,OAAO8B,GAAa9B,EAAUruM,EAAUn2D,CAAK,CAC/C,SAWA,cAA6B0mQ,GAAU,CAMrC,aAAc,CACZ,IAAIC,EAEJ,IAAIC,EAAW,EACf,MAAMC,GAAcF,EAAgB,KAAK,WAAa,MAAQA,IAAkB,OAAS,OAASA,EAAc,WAE5GE,GAAc,WAAYA,EAE5BD,EAAWC,EAAW,OACbA,GAAc,YAAaA,IAE/BA,EAAW,QACdA,EAAW,MAAQ,KAAK,uBAAuBA,EAAW,OAAO,GAG/DA,EAAW,QACbD,EAAWC,EAAW,MAAM,SAKhC,MAAMj0Q,EAAQ,KAAK,SAAS,WAAY,CACtC,WAAAi0Q,EACA,SAAAD,CACN,CAAK,EACD,OAAO,KAAK,aAAa,WAAYh0Q,EAAM,SAAUi0Q,CAAU,CAChE,CAQD,sBAAsBC,EAAW9mQ,EAAO,CACtC,OAAO,IAAI+mQ,IAAQD,EAAW,KAAM9mQ,CAAK,CAC1C,CAaD,YAAYA,EAAO,CACjB,IAAIgnQ,EAEJ,MAAMH,GAAcG,EAAiB,KAAK,WAAa,MAAQA,IAAmB,OAAS,OAASA,EAAe,WAGnH,IAAIC,EAAiB,GAEjB,MAAM,QAAQJ,CAAU,EAE1BI,EAAiBJ,EAAW7mQ,CAAK,EACxB6mQ,GAAc,YAAaA,IAK/BA,EAAW,QACdA,EAAW,MAAQ,KAAK,uBAAuBA,EAAW,OAAO,GAGnEI,EAAiBJ,EAAW,MAAM7mQ,CAAK,GAGzC,IAAIwkQ,EAAWyC,EAEXzC,aAAoB,UACtBA,EAAW,KAAK,sBAAsBA,CAAQ,GAKhD,MAAM5xQ,EAAQ,KAAK,SAAS,WAAY,CACtC,SAAU4xQ,GAAY,CAAE,EACxB,MAAAxkQ,CACN,CAAK,EACD,OAAO,KAAK,aAAa,WAAYpN,EAAM,SAAUoN,CAAK,CAC3D,CAUD,uBAAuBknQ,EAAgB,CACrC,IAAIC,EAAgBC,EAEpB,OAAKD,EAAiB,KAAK,WAAa,MAAQA,IAAmB,QAAUA,EAAe,WAAaC,EAAiB,KAAK,WAAa,MAAQA,IAAmB,QAAUA,EAAe,cACvLjE,GAAsB,KAAK,QAAQ,SAAU,KAAK,QAAQ,cAAe+D,CAAc,GAAK,GAG9F,CAACA,CAAc,CACvB,CASD,sBAAsBz0Q,EAAS,CAE7B,MAAM+xQ,EAAW,CACf,QAAA/xQ,CACN,EACU40Q,EAEN50Q,EAAQ,UAAY,IAAMA,EAAUA,EAAQ,cAAc,GAAG,EAE7D,GAAI40Q,EAAQ,CAGV7C,EAAS,IAAM6C,EAAO,QAAQ,SAAWA,EAAO,KAE5CA,EAAO,QAAQ,aACjB7C,EAAS,OAAS6C,EAAO,QAAQ,YAGnC7C,EAAS,MAAQ6C,EAAO,QAAQ,UAAY,SAASA,EAAO,QAAQ,UAAW,EAAE,EAAI,EACrF7C,EAAS,OAAS6C,EAAO,QAAQ,WAAa,SAASA,EAAO,QAAQ,WAAY,EAAE,EAAI,EAExF7C,EAAS,EAAIA,EAAS,MACtBA,EAAS,EAAIA,EAAS,OAElB6C,EAAO,QAAQ,WACjB7C,EAAS,KAAO6C,EAAO,QAAQ,UAGjC,MAAMC,EAAc70Q,EAAQ,cAAc,KAAK,EAE/C,GAAI60Q,EAAa,CACf,IAAIC,EAIJ/C,EAAS,KAAO8C,EAAY,YAAcA,EAAY,IACtD9C,EAAS,KAAO+C,EAAwBD,EAAY,aAAa,KAAK,KAAO,MAAQC,IAA0B,OAASA,EAAwB,EACjJ,EAEGF,EAAO,QAAQ,aAAeA,EAAO,QAAQ,WAC/C7C,EAAS,aAAe,GAE3B,CAED,OAAO,KAAK,aAAa,cAAeA,EAAU/xQ,EAAS40Q,CAAM,CAClE,CAUD,aAAa7C,EAAUxkQ,EAAO,CAC5B,OAAOsmQ,GAAa9B,EAAU,KAAMxkQ,CAAK,CAC1C,CAEH,EA0CA,MAAMwnQ,YAA2BC,GAAe,CAI9C,YAAYrrQ,EAAS,CACnB,QAGA,KAAK,QAAUA,GAAW,GAC1B,KAAK,KAAO,EACZ,KAAK,WAAa,GAMlB,KAAK,kBAAoB,OACzB,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,CAC1D,CAOD,MAAO,CAEL+mQ,GAAsB,KAAK,QAAQ,QAAS,KAAK,QAAQ,eAAe,EAAE,QAAQ+D,GAAkB,CAClGA,EAAe,iBAAiB,QAAS,KAAK,kBAAmB,EAAK,CAC5E,CAAK,CACF,CAMD,kBAAkB,EAAG,CAEnB,GAAIhE,IAAe,CAAC,GACjB,OAAO,KAER,OAYF,IAAIwE,EAAe,CACjB,EAAG,EAAE,QACL,EAAG,EAAE,OACX,EAEQ,CAACA,EAAa,GAAK,CAACA,EAAa,IACnCA,EAAe,MAGjB,IAAIC,EAAe,KAAK,gBAAgB,CAAC,EACzCA,EAAe,KAAK,aAAa,eAAgBA,EAAc,EAAG,IAAI,EAGtE,MAAMd,EAAa,CACjB,QAEA,EAAE,aACR,EAEQc,GAAgB,IAClB,EAAE,eAAc,EAChB,KAAK,YAAYA,EAAcd,EAAYa,CAAY,EAE1D,CASD,gBAAgB,EAAG,CAEjB,GAAI,KAAK,QAAQ,kBACf,OAAO,KAAK,QAAQ,kBAAkB,KAAK,KAAM,CAAC,EAGpD,MAAME,EAEN,EAAE,OAIIC,EAHgB1E,GAAsB,KAAK,QAAQ,SAAU,KAAK,QAAQ,cAEhF,EAAE,aAAa,EACyB,UAAUtuM,GAASA,IAAU+yM,GAAiB/yM,EAAM,SAAS+yM,CAAa,CAAC,EAEnH,OAAIC,IAAsB,GACjBA,EACE,KAAK,QAAQ,UAAY,KAAK,QAAQ,cAExC,GAIF,CACR,CAWD,YAAY7nQ,EAAO6mQ,EAAYa,EAAc,CAE3C,GAAI,OAAO,MAAQ,CAAC,KAAK,QACvB,MAAO,GAIT,GAAI,CAACb,GAAc,KAAK,QAAQ,SAAW,KAAK,QAAQ,SAAU,CAChE,MAAMiB,EAAkB3E,GAAsB,KAAK,QAAQ,OAAO,EAE9D2E,EAAgB,CAAC,IACnBjB,EAAa,CACX,QAASiB,EAAgB,CAAC,CACpC,EAEK,CAGD,YAAK,QAAQ,MAAQ9nQ,EAErB,KAAK,QAAQ,kBAAoB0nQ,EACjC,KAAK,WAAa,GAClB,KAAK,QAAQ1nQ,EAAO6mQ,CAAU,EACvB,EACR,CASD,QAAQ7mQ,EAAO6mQ,EAAY,CACzB,KAAM,CACJ,QAAAzqQ,CACD,EAAG,KAEAyqQ,IACFzqQ,EAAQ,WAAayqQ,GAMvB,MAAMkB,EAAe,GACfC,EAAiB,OAAO5rQ,EAAQ,WAEtC,GAAIinQ,IAAYjnQ,EAAQ,UAAU,EAChC2rQ,EAAa,KAAK,QAAQ,QAE1B3rQ,EAAQ,UAAU,CAAC,MACd,IAAI4rQ,IAAmB,SAC5B,MAAM,IAAI,MAAM,6CAA6C,EACxD,GAAIA,IAAmB,WAC5BD,EAAa,KAEb3rQ,EAAQ,WAAU,CAAE,MAEpB,OAAM,IAAI,MAAM,yBAAyB,EAIvC,OAAOA,EAAQ,aAAgB,YAEjC2rQ,EAAa,KAAK3rQ,EAAQ,YAAa,GAGrCA,EAAQ,oBAAsB,IAAS4D,GAAS,IAClD,KAAK,kBAAoBymQ,IAAczmQ,EAAO,IAAI,GAIpD,MAAM2kD,EAAM,EAAE,KAAK,KACnB,QAAQ,IAAIojN,CAAY,EAAE,KAAKE,GAAmB,CAChD,GAAI,KAAK,WAAY,CACnB,MAAMC,EAAaD,EAAgB,CAAC,EAEpC,KAAK,gBAAgBC,EAAYvjN,CAAG,CACrC,CACP,CAAK,CACF,CAQD,gBAAgBn3C,EAAQm3C,EAAK,CAY3B,GANIA,IAAQ,KAAK,MAAQ,KAAK,aAI9B,KAAK,WAAa,GAEd,OAAO,MACT,OASF,MAAM4gN,EAAO,OAAO/3P,GAAW,SAAW,IAAIA,EAAO,QAAQ,KAAK,OAAO,EACvE,IAAIA,EAAO,KAAK,OAAO,EAEzB,KAAK,KAAO+3P,EACZ,OAAO,KAAOA,EAId,OAAO,KAAK,KAAK,UAAU,EAAE,QAAQlzQ,GAAQ,CAC3C,IAAIyxQ,GAEHA,EAAwB,KAAK,WAAWzxQ,CAAI,KAAO,MAAQyxQ,IAA0B,QAAUA,EAAsB,QAAQ5uP,GAAM,CAClIqwP,EAAK,GAAGlzQ,EAER6iB,CAAE,CACV,CAAO,CACP,CAAK,EAID,OAAO,KAAK,KAAK,QAAQ,EAAE,QAAQ7iB,GAAQ,CACzC,IAAImxQ,GAEHA,EAAsB,KAAK,SAASnxQ,CAAI,KAAO,MAAQmxQ,IAAwB,QAAUA,EAAoB,QAAQlpP,GAAU,CAC9HirP,EAAK,UAAUlzQ,EAAMioB,EAAO,GAAIA,EAAO,QAAQ,CACvD,CAAO,CACP,CAAK,EAEG,KAAK,oBACPirP,EAAK,cAAc,WAAW,KAAK,iBAAiB,EACpD,KAAK,kBAAoB,QAG3BA,EAAK,GAAG,UAAW,IAAM,CAEvB,KAAK,KAAO,OACZ,OAAO,OAAO,IACpB,CAAK,EACDA,EAAK,KAAI,CACV,CAMD,SAAU,CACR,IAAI7B,GAEHA,EAAa,KAAK,QAAU,MAAQA,IAAe,QAAUA,EAAW,UACzE,KAAK,WAAa,GAClB,KAAK,WAAa,GAClBP,GAAsB,KAAK,QAAQ,QAAS,KAAK,QAAQ,eAAe,EAAE,QAAQ+D,GAAkB,CAClGA,EAAe,oBAAoB,QAAS,KAAK,kBAAmB,EAAK,CAC/E,CAAK,CACF,CAEH,CCp6DA;AAAA;AAAA;AAAA,IAaA,SAAS7vL,GAAc7gE,EAAW/W,EAASqjQ,EAAY,CACrD,MAAM1tP,EAAK,SAAS,cAAc3V,CAAO,EAEzC,OAAI+W,IACFpB,EAAG,UAAYoB,GAGbssP,GACFA,EAAW,YAAY1tP,CAAE,EAGpBA,CACT,CAOA,SAAS+yP,GAAe5yL,EAAIC,EAAI,CAC9B,OAAAD,EAAG,EAAIC,EAAG,EACVD,EAAG,EAAIC,EAAG,EAENA,EAAG,KAAO,SACZD,EAAG,GAAKC,EAAG,IAGND,CACT,CAKA,SAAS6yL,GAAWl8O,EAAG,CACrBA,EAAE,EAAI,KAAK,MAAMA,EAAE,CAAC,EACpBA,EAAE,EAAI,KAAK,MAAMA,EAAE,CAAC,CACtB,CASA,SAASm8O,GAAmB9yL,EAAIC,EAAI,CAClC,MAAM15E,EAAI,KAAK,IAAIy5E,EAAG,EAAIC,EAAG,CAAC,EACxBz5E,EAAI,KAAK,IAAIw5E,EAAG,EAAIC,EAAG,CAAC,EAC9B,OAAO,KAAK,KAAK15E,EAAIA,EAAIC,EAAIA,CAAC,CAChC,CASA,SAASusQ,GAAY/yL,EAAIC,EAAI,CAC3B,OAAOD,EAAG,IAAMC,EAAG,GAAKD,EAAG,IAAMC,EAAG,CACtC,CAUA,SAASk6F,GAAM5gK,EAAK60C,EAAK1zB,EAAK,CAC5B,OAAO,KAAK,IAAI,KAAK,IAAInhB,EAAK60C,CAAG,EAAG1zB,CAAG,CACzC,CAUA,SAAS8yO,GAAkBjnQ,EAAGC,EAAG8mB,EAAO,CACtC,IAAI+pC,EAAY,eAAe9wD,CAAC,MAAMC,GAAK,CAAC,QAE5C,OAAI8mB,IAAU,SACZ+pC,GAAa,YAAY/pC,CAAK,IAAIA,CAAK,OAGlC+pC,CACT,CAUA,SAAS4iG,GAAap6I,EAAItZ,EAAGC,EAAG8mB,EAAO,CACrCzN,EAAG,MAAM,UAAY2tP,GAAkBjnQ,EAAGC,EAAG8mB,CAAK,CACpD,CACA,MAAM0lP,IAAmB,2BAUzB,SAASC,GAAmBpzP,EAAImM,EAAMyZ,EAAUytO,EAAM,CAIpDrzP,EAAG,MAAM,WAAamM,EAAO,GAAGA,CAAI,IAAIyZ,CAAQ,MAAMytO,GAAQF,GAAgB,GAAK,MACrF,CASA,SAASvF,GAAe5tP,EAAIlM,EAAGqyB,EAAG,CAChCnmB,EAAG,MAAM,MAAQ,OAAOlM,GAAM,SAAW,GAAGA,CAAC,KAAOA,EACpDkM,EAAG,MAAM,OAAS,OAAOmmB,GAAM,SAAW,GAAGA,CAAC,KAAOA,CACvD,CAKA,SAASmtO,IAAsBtzP,EAAI,CACjCozP,GAAmBpzP,CAAE,CACvB,CAMA,SAASuzP,IAAYC,EAAK,CACxB,MAAI,WAAYA,EACPA,EAAI,OAAM,EAAG,MAAM,IAAM,CAAE,GAGhCA,EAAI,SACC,QAAQ,QAAQA,CAAG,EAGrB,IAAI,QAAQ,CAAC9yQ,EAASgI,IAAW,CACtC8qQ,EAAI,OAAS,IAAM9yQ,EAAQ8yQ,CAAG,EAE9BA,EAAI,QAAU9qQ,CAClB,CAAG,CACH,CAKA,MAAMmlQ,GAAa,CACjB,KAAM,OACN,QAAS,UACT,OAAQ,SACR,MAAO,OACT,EASA,SAASC,IAAeh9P,EAAG,CACzB,MAAO,WAAYA,GAAKA,EAAE,SAAW,GAAKA,EAAE,SAAWA,EAAE,SAAWA,EAAE,QAAUA,EAAE,QACpF,CAUA,SAASi9P,IAAsBjjQ,EAAQkjQ,EAAgB/qP,EAAS,SAAU,CAExE,IAAIphB,EAAW,GAEf,GAAIiJ,aAAkB,QACpBjJ,EAAW,CAACiJ,CAAM,UACTA,aAAkB,UAAY,MAAM,QAAQA,CAAM,EAC3DjJ,EAAW,MAAM,KAAKiJ,CAAM,MACvB,CACL,MAAMnI,EAAW,OAAOmI,GAAW,SAAWA,EAASkjQ,EAEnDrrQ,IACFd,EAAW,MAAM,KAAKohB,EAAO,iBAAiBtgB,CAAQ,CAAC,EAE1D,CAED,OAAOd,CACT,CAOA,SAASskM,IAAW,CAClB,MAAO,CAAC,EAAE,UAAU,QAAU,UAAU,OAAO,MAAM,QAAQ,EAC/D,CAGA,IAAIstE,GAAkB,GAGtB,GAAI,CAEF,OAAO,iBAAiB,OAAQ,KAAM,OAAO,eAAe,CAAE,EAAE,UAAW,CACzE,IAAK,IAAM,CACTA,GAAkB,EACnB,CACF,EAAC,CACJ,MAAY,CAAE,CAYd,MAAMC,GAAU,CACd,aAAc,CAKZ,KAAK,MAAQ,EACd,CAWD,IAAIt2Q,EAAQsK,EAAM+6B,EAAUkxO,EAAS,CACnC,KAAK,gBAAgBv2Q,EAAQsK,EAAM+6B,EAAUkxO,CAAO,CACrD,CAWD,OAAOv2Q,EAAQsK,EAAM+6B,EAAUkxO,EAAS,CACtC,KAAK,gBAAgBv2Q,EAAQsK,EAAM+6B,EAAUkxO,EAAS,EAAI,CAC3D,CAMD,WAAY,CACV,KAAK,MAAM,QAAQC,GAAY,CAC7B,KAAK,gBAAgBA,EAAS,OAAQA,EAAS,KAAMA,EAAS,SAAUA,EAAS,QAAS,GAAM,EAAI,CAC1G,CAAK,EAED,KAAK,MAAQ,EACd,CAcD,gBAAgBx2Q,EAAQsK,EAAM+6B,EAAUkxO,EAASE,EAAQC,EAAU,CACjE,GAAI,CAAC12Q,EACH,OAGF,MAAM8hL,EAAa20F,EAAS,sBAAwB,mBACtCnsQ,EAAK,MAAM,GAAG,EACtB,QAAQqsQ,GAAS,CACrB,GAAIA,EAAO,CAGJD,IACCD,EAEF,KAAK,MAAQ,KAAK,MAAM,OAAOD,GACtBA,EAAS,OAASG,GAASH,EAAS,WAAanxO,GAAYmxO,EAAS,SAAWx2Q,CACzF,EAGD,KAAK,MAAM,KAAK,CACd,OAAAA,EACA,KAAM22Q,EACN,SAAAtxO,EACA,QAAAkxO,CACd,CAAa,GAML,MAAMnqD,EAAeiqD,GAAkB,CACrC,QAASE,GAAW,EACrB,EAAG,GACJv2Q,EAAO8hL,CAAU,EAAE60F,EAAOtxO,EAAU+mL,CAAY,CACjD,CACP,CAAK,CACF,CAEH,CAeA,SAAS0mD,GAAgBlpQ,EAASmpQ,EAAM,CACtC,GAAInpQ,EAAQ,kBAAmB,CAC7B,MAAMopQ,EAAkBppQ,EAAQ,kBAAkBA,EAASmpQ,CAAI,EAE/D,GAAIC,EACF,OAAOA,CAEV,CAED,MAAO,CACL,EAAG,SAAS,gBAAgB,YAK5B,EAAG,OAAO,WACd,CACA,CAqCA,SAASC,GAAmBlkP,EAAMnlB,EAASspQ,EAAclB,EAAUxkQ,EAAO,CACxE,IAAI2lQ,EAAe,EAEnB,GAAIvpQ,EAAQ,UACVupQ,EAAevpQ,EAAQ,UAAUspQ,EAAclB,EAAUxkQ,CAAK,EAAEuhB,CAAI,UAC3DnlB,EAAQ,QACjBupQ,EAAevpQ,EAAQ,QAAQmlB,CAAI,MAC9B,CACL,MAAMqkP,EAAiB,UAAYrkP,EAAK,CAAC,EAAE,YAAW,EAAKA,EAAK,MAAM,CAAC,EAEnEnlB,EAAQwpQ,CAAc,IAExBD,EAAevpQ,EAAQwpQ,CAAc,EAExC,CAED,OAAO,OAAOD,CAAY,GAAK,CACjC,CASA,SAASE,GAAezpQ,EAASspQ,EAAclB,EAAUxkQ,EAAO,CAC9D,MAAO,CACL,EAAG0lQ,EAAa,EAAID,GAAmB,OAAQrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EAAIylQ,GAAmB,QAASrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EAC3J,EAAG0lQ,EAAa,EAAID,GAAmB,MAAOrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EAAIylQ,GAAmB,SAAUrpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,CAC/J,CACA,CAYA,MAAMopQ,GAAU,CAId,YAAYrE,EAAO,CACjB,KAAK,MAAQA,EACb,KAAK,cAAgB,EACrB,KAAK,OAEL,CACE,EAAG,EACH,EAAG,CACT,EACI,KAAK,IAEL,CACE,EAAG,EACH,EAAG,CACT,EACI,KAAK,IAEL,CACE,EAAG,EACH,EAAG,CACT,CACG,CAQD,OAAOsB,EAAe,CACpB,KAAK,cAAgBA,EAEhB,KAAK,MAAM,OAGd,KAAK,YAAY,GAAG,EAEpB,KAAK,YAAY,GAAG,EAEpB,KAAK,MAAM,KAAK,SAAS,aAAc,CACrC,MAAO,KAAK,KACpB,CAAO,GARD,KAAK,MAAK,CAUb,CAQD,YAAY55G,EAAM,CAChB,KAAM,CACJ,KAAA84G,CACN,EAAQ,KAAK,MACHn8P,EAAS,KAAK,MAAMqjJ,IAAS,IAAM,QAAU,QAAQ,EAAI,KAAK,cAE9DrpF,EAAUqiM,GADIh5G,IAAS,IAAM,OAAS,MACI84G,EAAK,QAASA,EAAK,aAAc,KAAK,MAAM,KAAM,KAAK,MAAM,KAAK,EAC5GS,EAAc,KAAK,MAAM,YAAYv5G,CAAI,EAG/C,KAAK,OAAOA,CAAI,EAAI,KAAK,OAAOu5G,EAAc58P,GAAU,CAAC,EAAIg6D,EAE7D,KAAK,IAAIqpF,CAAI,EAAIrjJ,EAAS48P,EAAc,KAAK,MAAMA,EAAc58P,CAAM,EAAIg6D,EAAU,KAAK,OAAOqpF,CAAI,EAErG,KAAK,IAAIA,CAAI,EAAIrjJ,EAAS48P,EAAc5iM,EAAU,KAAK,OAAOqpF,CAAI,CACnE,CAGD,OAAQ,CACN,KAAK,OAAO,EAAI,EAChB,KAAK,OAAO,EAAI,EAChB,KAAK,IAAI,EAAI,EACb,KAAK,IAAI,EAAI,EACb,KAAK,IAAI,EAAI,EACb,KAAK,IAAI,EAAI,CACd,CAUD,WAAWA,EAAM48G,EAAW,CAE1B,OAAO35F,GAAM25F,EAAW,KAAK,IAAI58G,CAAI,EAAG,KAAK,IAAIA,CAAI,CAAC,CACvD,CAEH,CAEA,MAAMq5G,GAAkB,IAgBxB,MAAMU,EAAU,CAOd,YAAYpqQ,EAASooQ,EAAUxkQ,EAAOulQ,EAAM,CAC1C,KAAK,KAAOA,EACZ,KAAK,QAAUnpQ,EACf,KAAK,SAAWooQ,EAChB,KAAK,MAAQxkQ,EAGb,KAAK,YAAc,KAGnB,KAAK,YAAc,KACnB,KAAK,IAAM,EACX,KAAK,KAAO,EACZ,KAAK,MAAQ,EACb,KAAK,QAAU,EACf,KAAK,UAAY,EACjB,KAAK,IAAM,EACX,KAAK,IAAM,CACZ,CAYD,OAAO2pB,EAAU2yD,EAAW0pL,EAAa,CAEvC,MAAMC,EAAc,CAClB,EAAGt8O,EACH,EAAG2yD,CACT,EACI,KAAK,YAAc2pL,EACnB,KAAK,YAAcD,EACnB,MAAME,EAASF,EAAY,EAAIC,EAAY,EACrCE,EAASH,EAAY,EAAIC,EAAY,EAC3C,KAAK,IAAM,KAAK,IAAI,EAAGC,EAASC,EAASD,EAASC,CAAM,EACxD,KAAK,KAAO,KAAK,IAAI,EAAGD,EAASC,EAASD,EAASC,CAAM,EAGzD,KAAK,MAAQ,KAAK,IAAI,EAAGA,CAAM,EAC/B,KAAK,QAAU,KAAK,cACpB,KAAK,UAAY,KAAK,gBACtB,KAAK,IAAM,KAAK,IAAI,KAAK,QAAS,KAAK,UAAW,KAAK,QAAS,GAChE,KAAK,IAAM,KAAK,IAAI,KAAK,IAAK,KAAK,QAAS,KAAK,SAAS,EAEtD,KAAK,MACP,KAAK,KAAK,SAAS,mBAAoB,CACrC,WAAY,KACZ,UAAW,KAAK,QACxB,CAAO,CAEJ,CAUD,sBAAsBC,EAAc,CAClC,MAAMzhI,EAENyhI,EAAe,YACTnyD,EAAc,KAAK,QAAQtvE,CAAU,EAE3C,GAAKsvE,EAIL,OAAI,OAAOA,GAAgB,WAClBA,EAAY,IAAI,EAGrBA,IAAgB,OACX,KAAK,KAGVA,IAAgB,MACX,KAAK,IAGP,OAAOA,CAAW,CAC1B,CAYD,eAAgB,CACd,IAAIoyD,EAAgB,KAAK,sBAAsB,WAAW,EAE1D,OAAIA,IAKJA,EAAgB,KAAK,IAAI,EAAG,KAAK,IAAM,CAAC,EAEpC,KAAK,aAAeA,EAAgB,KAAK,YAAY,EAAIP,KAC3DO,EAAgBP,GAAkB,KAAK,YAAY,GAG9CO,EACR,CASD,aAAc,CACZ,OAAO,KAAK,sBAAsB,SAAS,GAAK,KAAK,GACtD,CAWD,SAAU,CAGR,OAAO,KAAK,sBAAsB,KAAK,GAAK,KAAK,IAAI,EAAG,KAAK,IAAM,CAAC,CACrE,CAEH,CAOA,MAAMiD,GAAM,CAMV,YAAYhoP,EAAMthB,EAAOulQ,EAAM,CAC7B,KAAK,KAAOjkP,EACZ,KAAK,MAAQthB,EACb,KAAK,KAAOulQ,EACZ,KAAK,SAAWvlQ,IAAUulQ,EAAK,UAC/B,KAAK,kBAAoB,EAGzB,KAAK,YAAc,CACjB,EAAG,EACH,EAAG,CACT,EAGI,KAAK,IAAM,CACT,EAAG,EACH,EAAG,CACT,EACI,KAAK,aAAe,KAAK,UAAY,CAACA,EAAK,OAAO,OAClD,KAAK,WAAa,IAAIiB,GAAUjB,EAAK,QAASjkP,EAAMthB,EAAOulQ,CAAI,EAC/D,KAAK,KAAK,SAAS,cAAe,CAChC,MAAO,KACP,KAAM,KAAK,KACX,MAAAvlQ,CACN,CAAK,EACD,KAAK,QAAU,KAAK,KAAK,cAAc,kBAAkB,IAAI,EAC7D,KAAK,UAAYq3E,GAAc,kBAAmB,KAAK,EAGvD,KAAK,cAAgB,KACrB,KAAK,cAAgB,EAGrB,KAAK,MAAQ,KAAK,QAAQ,MAG1B,KAAK,OAAS,KAAK,QAAQ,OAC3B,KAAK,cAAgB,GACrB,KAAK,OAAS,IAAI+xL,IAAU,IAAI,EAChC,KAAK,mBAAqB,GAC1B,KAAK,oBAAsB,GAC3B,KAAK,KAAK,SAAS,YAAa,CAC9B,MAAO,IACb,CAAK,CACF,CAQD,YAAY/9F,EAAU,CAChBA,GAAY,CAAC,KAAK,SAEpB,KAAK,SAAQ,EACJ,CAACA,GAAY,KAAK,UAE3B,KAAK,WAAU,CAElB,CAQD,OAAOk+F,EAAe,CACpB,KAAK,cAAgBA,EACrB,KAAK,UAAU,MAAM,gBAAkB,MAElC,KAAK,OAIV,KAAK,cAAa,EAClB,KAAK,KAAI,EACT,KAAK,kBAAiB,EACtB,KAAK,YAAW,EAChB,KAAK,cAAc,YAAY,KAAK,SAAS,EAC7C,KAAK,oBAAmB,EACxB,KAAK,KAAK,SAAS,eAAgB,CACjC,MAAO,IACb,CAAK,EACD,KAAK,oBAAmB,EACxB,KAAK,KAAK,SAAS,kBAAmB,CACpC,MAAO,IACb,CAAK,EAEG,KAAK,UACP,KAAK,SAAQ,EAEhB,CAED,MAAO,CACL,KAAK,QAAQ,KAAK,EAAK,EACvB,KAAK,KAAK,SAAS,YAAa,CAC9B,MAAO,IACb,CAAK,CACF,CASD,aAAc,CACZ,KAAM,CACJ,KAAAhE,CACD,EAAG,KAIA,KAAK,eAAiB,CAACA,EAAK,OAAO,QAAUA,EAAK,WAAW,UAAS,GAAM,CAAC,KAAK,UAAY,CAHxE,IAOtB,KAAK,KAAK,SAAS,cAAe,CACpC,MAAO,IACR,GAAE,mBAIH,KAAK,cAAgB,GACrB,KAAK,QAAQ,SACb,KAAK,KAAK,SAAS,qBAAsB,CACvC,MAAO,IACb,CAAK,EACF,CASD,UAAW,CACT,KAAK,SAAW,GAChB,KAAK,YAAW,EAChB,KAAK,QAAQ,WACb,KAAK,KAAK,SAAS,gBAAiB,CAClC,MAAO,IACb,CAAK,CACF,CAQD,YAAa,CACX,KAAK,SAAW,GAChB,KAAK,QAAQ,aAET,KAAK,gBAAkB,KAAK,WAAW,SAEzC,KAAK,cAAa,EAIpB,KAAK,kBAAoB,EACzB,KAAK,oBAAmB,EACxB,KAAK,oBAAmB,EACxB,KAAK,kBAAiB,EACtB,KAAK,KAAK,SAAS,kBAAmB,CACpC,MAAO,IACb,CAAK,CACF,CAOD,SAAU,CACR,KAAK,QAAQ,SAAW,GACxB,KAAK,QAAQ,SACb,KAAK,UAAU,SACf,KAAK,KAAK,SAAS,eAAgB,CACjC,MAAO,IACb,CAAK,CACF,CAED,QAAS,CACH,KAAK,gBAAkB,KAAK,WAAW,SAAW,CAAC,KAAK,UAI1D,KAAK,cAAa,EAClB,KAAK,kBAAoB,EACzB,KAAK,oBAAmB,EACxB,KAAK,oBAAmB,EACxB,KAAK,kBAAiB,IAGtB,KAAK,cAAa,EAClB,KAAK,OAAO,OAAO,KAAK,aAAa,EACrC,KAAK,MAAM,KAAK,IAAI,EAAG,KAAK,IAAI,CAAC,EAEpC,CASD,kBAAkBpsO,EAAO,CAGvB,MAAMqwO,EAAkB,KAAK,mBAAqB,KAAK,WAAW,QAElE,GAAI,CAACA,EACH,OAGF,MAAM//O,EAAQ,KAAK,MAAM,KAAK,MAAQ+/O,CAAe,GAAK,KAAK,KAAK,aAAa,EAC3EzmM,EAAS,KAAK,MAAM,KAAK,OAASymM,CAAe,GAAK,KAAK,KAAK,aAAa,EAE/E,CAAC,KAAK,YAAY//O,EAAOs5C,CAAM,GAAK,CAAC5pC,GAIzC,KAAK,QAAQ,iBAAiB1P,EAAOs5C,CAAM,CAC5C,CAOD,YAAYt5C,EAAOs5C,EAAQ,CACzB,OAAIt5C,IAAU,KAAK,oBAAsBs5C,IAAW,KAAK,qBACvD,KAAK,mBAAqBt5C,EAC1B,KAAK,oBAAsBs5C,EACpB,IAGF,EACR,CAID,uBAAwB,CACtB,IAAI0mM,EAEJ,OAAQA,EAAwB,KAAK,QAAQ,eAAiB,MAAQA,IAA0B,OAAS,OAASA,EAAsB,OACzI,CAYD,OAAOC,EAAeC,EAAal5M,EAAoBm5M,EAAc,CACnE,KAAM,CACJ,KAAArE,CACD,EAAG,KAEJ,GAAI,CAAC,KAAK,WAAU,GAAMA,EAAK,WAAW,YACxC,OAGFA,EAAK,SAAS,eAAgB,CAC5B,cAAAmE,EACA,YAAAC,EACA,mBAAAl5M,CACN,CAAK,EAED80M,EAAK,WAAW,aAIhB,MAAMsE,EAAgB,KAAK,cAEtBD,IACHF,EAAgBh6F,GAAMg6F,EAAe,KAAK,WAAW,IAAK,KAAK,WAAW,GAAG,GAM/E,KAAK,aAAaA,CAAa,EAC/B,KAAK,IAAI,EAAI,KAAK,yBAAyB,IAAKC,EAAaE,CAAa,EAC1E,KAAK,IAAI,EAAI,KAAK,yBAAyB,IAAKF,EAAaE,CAAa,EAC1EzB,GAAW,KAAK,GAAG,EAEnB,MAAM0B,EAAmB,IAAM,CAC7B,KAAK,eAAeJ,CAAa,EAEjC,KAAK,oBAAmB,CAC9B,EAESj5M,EAGH80M,EAAK,WAAW,gBAAgB,CAC9B,MAAO,GACP,KAAM,SACN,OAAQ,KAAK,UACb,UAAW,KAAK,oBAAqB,EACrC,WAAYuE,EACZ,SAAUr5M,EACV,OAAQ80M,EAAK,QAAQ,MAC7B,CAAO,EAVDuE,GAYH,CAMD,WAAWH,EAAa,CACtB,KAAK,OAAO,KAAK,gBAAkB,KAAK,WAAW,QAAU,KAAK,WAAW,UAAY,KAAK,WAAW,QAASA,EAAa,KAAK,KAAK,QAAQ,qBAAqB,CACvK,CASD,aAAatD,EAAe,CAC1B,KAAK,cAAgBA,EACrB,KAAK,OAAO,OAAO,KAAK,aAAa,CACtC,CAgBD,yBAAyB55G,EAAMzR,EAAO6uH,EAAe,CAGnD,GAFyB,KAAK,OAAO,IAAIp9G,CAAI,EAAI,KAAK,OAAO,IAAIA,CAAI,IAE5C,EACvB,OAAO,KAAK,OAAO,OAAOA,CAAI,EAG3BzR,IACHA,EAAQ,KAAK,KAAK,0BAGf6uH,IACHA,EAAgB,KAAK,WAAW,SAGlC,MAAME,EAAa,KAAK,cAAgBF,EACxC,OAAO,KAAK,OAAO,WAAWp9G,GAAO,KAAK,IAAIA,CAAI,EAAIzR,EAAMyR,CAAI,GAAKs9G,EAAa/uH,EAAMyR,CAAI,CAAC,CAC9F,CASD,MAAMu9G,EAAMC,EAAM,CAChB,KAAK,IAAI,EAAI,KAAK,OAAO,WAAW,IAAKD,CAAI,EAC7C,KAAK,IAAI,EAAI,KAAK,OAAO,WAAW,IAAKC,CAAI,EAC7C,KAAK,oBAAmB,CACzB,CAOD,YAAa,CACX,MAAO,EAAQ,KAAK,OAAU,KAAK,cAAgB,KAAK,WAAW,GACpE,CAOD,YAAa,CACX,MAAO,EAAQ,KAAK,OAAU,KAAK,QAAQ,YAC5C,CAOD,qBAAsB,CACpB,KAAK,oBAAoB,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,KAAK,aAAa,EAE/D,OAAS,KAAK,KAAK,WACrB,KAAK,KAAK,SAAS,gBAAiB,CAClC,MAAO,IACf,CAAO,CAEJ,CAED,qBAAsB,CACpB,KAAK,cAAgB,KAAK,WAAW,QAErC,KAAK,OAAO,OAAO,KAAK,aAAa,EACrC9B,GAAe,KAAK,IAAK,KAAK,OAAO,MAAM,EAC3C,KAAK,KAAK,SAAS,iBAAkB,CACnC,MAAO,IACb,CAAK,CACF,CAWD,oBAAoBrsQ,EAAGC,EAAGmuQ,EAAM,CAC9BA,GAAQ,KAAK,mBAAqB,KAAK,WAAW,QAClD16G,GAAa,KAAK,UAAW1zJ,EAAGC,EAAGmuQ,CAAI,CACxC,CAED,eAAgB,CACd,KAAM,CACJ,KAAA3E,CACD,EAAG,KACJ4C,GAAe,KAAK,YAAatC,GAAeN,EAAK,QAASA,EAAK,aAAc,KAAK,KAAM,KAAK,KAAK,CAAC,EACvG,KAAK,WAAW,OAAO,KAAK,MAAO,KAAK,OAAQ,KAAK,WAAW,EAChEA,EAAK,SAAS,gBAAiB,CAC7B,MAAO,IACb,CAAK,CACF,CAID,qBAAsB,CACpB,MAAM1iP,EAAQ,KAAK,eAAiB,KAAK,mBAAqB,KAAK,WAAW,SAC9E,OAAOkgP,GAAkB,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGlgP,CAAK,CACvD,CAkBD,eAAesnP,EAAe,CACxBA,IAAkB,KAAK,oBAI3B,KAAK,kBAAoBA,EACzB,KAAK,kBAAiB,EACtB,KAAK,KAAK,SAAS,mBAAmB,EACvC,CAEH,CAMA,MAAMC,IAAmB,IACnBC,IAAyB,GAEzBC,GAAqB,GAGrBC,GAAuB,GAO7B,SAASC,IAAQC,EAAiBC,EAAkB,CAClD,OAAOD,EAAkBC,GAAoB,EAAIA,EACnD,CAMA,MAAMC,GAAY,CAIhB,YAAYC,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,KAAOA,EAAS,KAGrB,KAAK,SAAW,CACd,EAAG,EACH,EAAG,CACT,CACG,CAED,OAAQ,CACF,KAAK,KAAK,WACZzC,GAAe,KAAK,SAAU,KAAK,KAAK,UAAU,GAAG,EAGvD,KAAK,KAAK,WAAW,SACtB,CAED,QAAS,CACP,KAAM,CACJ,GAAA5yL,EACA,OAAAs1L,EACA,SAAAC,CACN,EAAQ,KAAK,SACH,CACJ,UAAAC,CACN,EAAQ,KAAK,KAET,GAAID,IAAa,KAAO,KAAK,KAAK,QAAQ,qBAAuBC,GAAaA,EAAU,eAAiBA,EAAU,WAAW,KAAO,CAAC,KAAK,SAAS,aAAc,CAEhK,MAAMd,EAAOc,EAAU,IAAI,GAAKx1L,EAAG,EAAIs1L,EAAO,GAE9C,GAAI,CAAC,KAAK,KAAK,SAAS,eAAgB,CACtC,KAAAZ,CACD,GAAE,iBAAkB,CACnB,KAAK,oBAAoB,IAAKA,EAAMI,GAAsB,EAE1D,MAAMW,EAAY,EAAI,KAAK,IAAI,KAAK,sBAAsBD,EAAU,IAAI,CAAC,CAAC,EAC1E,KAAK,KAAK,eAAeC,CAAS,EAClCD,EAAU,oBAAmB,CAC9B,CACP,MACgC,KAAK,qBAAqB,GAAG,IAGrD,KAAK,qBAAqB,GAAG,EAEzBA,IACF3C,GAAW2C,EAAU,GAAG,EACxBA,EAAU,oBAAmB,GAIpC,CAED,KAAM,CACJ,KAAM,CACJ,SAAAE,CACN,EAAQ,KAAK,SACH,CACJ,WAAAC,EACA,UAAAH,CACN,EAAQ,KAAK,KACT,IAAII,EAAY,EAGhB,GAFA,KAAK,KAAK,WAAW,UAEjBD,EAAW,YAAa,CAO1B,MAAME,GALsBF,EAAW,EAAIA,EAAW,cAAa,GAKT,KAAK,KAAK,aAAa,EAS7ED,EAAS,EAAI,CAACV,IAAwBa,EAA8B,GAAKH,EAAS,EAAI,IAAOG,EAA8B,KAE7HD,EAAY,EACZF,EAAS,EAAI,KAAK,IAAIA,EAAS,EAAG,CAAC,IAC1BA,EAAS,EAAIV,IAAwBa,EAA8B,GAAKH,EAAS,EAAI,KAAQG,EAA8B,MAEpID,EAAY,GACZF,EAAS,EAAI,KAAK,IAAIA,EAAS,EAAG,CAAC,GAGrCC,EAAW,YAAYC,EAAW,GAAMF,EAAS,CAAC,CACnD,CAGGF,GAAaA,EAAU,cAAgBA,EAAU,WAAW,KAAO,KAAK,SAAS,aACnF,KAAK,SAAS,WAAW,eAAe,EAAI,GAM5C,KAAK,yBAAyB,GAAG,EAEjC,KAAK,yBAAyB,GAAG,EAEpC,CAOD,yBAAyBt+G,EAAM,CAC7B,KAAM,CACJ,SAAAw+G,CACN,EAAQ,KAAK,SACH,CACJ,UAAAF,CACN,EAAQ,KAAK,KAET,GAAI,CAACA,EACH,OAGF,KAAM,CACJ,IAAAM,EACA,OAAAC,CACD,EAAGP,EACEQ,EAASF,EAAI5+G,CAAI,EACjB++G,EAAmB,KAAK,KAAK,UAAY,GAAK/+G,IAAS,IAMvDg/G,EAAoBF,EAASf,IAAQS,EAASx+G,CAAI,EAH/B,IAGkD,EAE3E,GAAI++G,EAAkB,CACpB,MAAME,EAAa,KAAK,sBAAsBH,CAAM,EAE9CI,EAAsB,KAAK,sBAAsBF,CAAiB,EAIxE,GAAIC,EAAa,GAAKC,EAAsB,CAACrB,IAAsBoB,EAAa,GAAKC,EAAsBrB,GAAoB,CAC7H,KAAK,KAAK,QACV,MACD,CACF,CAGD,MAAMsB,EAAuBN,EAAO,WAAW7+G,EAAMg/G,CAAiB,EAGtE,GAAIF,IAAWK,EACb,OAIF,MAAMC,EAAeD,IAAyBH,EAAoB,EAAI,IAChEK,EAAmB,KAAK,KAAK,UAC7BC,EAAeH,EAAuBL,EAC5C,KAAK,KAAK,WAAW,YAAY,CAC/B,KAAM,aAAe9+G,EACrB,MAAO,GACP,MAAO8+G,EACP,IAAKK,EACL,SAAUX,EAASx+G,CAAI,EACvB,aAAAo/G,EACA,SAAU7+J,GAAO,CAEf,GAAIw+J,GAAoB,KAAK,KAAK,UAAY,EAAG,CAE/C,MAAMQ,EAAyB,GAAKJ,EAAuB5+J,GAAO++J,EAIlE,KAAK,KAAK,eAAer8F,GAAMo8F,GAAoB,EAAIA,GAAoBE,EAAwB,EAAG,CAAC,CAAC,CACzG,CAEDX,EAAI5+G,CAAI,EAAI,KAAK,MAAMz/C,CAAG,EAC1B+9J,EAAU,oBAAmB,CAC9B,CACP,CAAK,CACF,CAaD,qBAAqBt+G,EAAM,CACzB,KAAM,CACJ,GAAAl3E,EACA,SAAAu1L,EACA,OAAAD,EACA,aAAAoB,CACN,EAAQ,KAAK,SACH,CACJ,UAAAlB,EACA,WAAAG,CACN,EAAQ,KAAK,KACH//O,EAAQoqD,EAAGk3E,CAAI,EAAIo+G,EAAOp+G,CAAI,EAC9By/G,EAAiBhB,EAAW,EAAI//O,EAEtC,GAAI,CAACA,GAAS,CAAC4/O,EACb,MAAO,GAIT,GAAIt+G,IAAS,KAAO,CAACs+G,EAAU,WAAU,GAAM,CAACkB,EAC9C,OAAAf,EAAW,OAAOgB,EAAgB,EAAI,EAC/B,GAGT,KAAM,CACJ,OAAAZ,CACD,EAAGP,EACEoB,EAASpB,EAAU,IAAIt+G,CAAI,EAAIthI,EAErC,GAAI,KAAK,KAAK,QAAQ,gBAAkB2/O,IAAa,KAAOr+G,IAAS,KAAO,CAACw/G,EAAc,CACzF,MAAMG,EAAuBlB,EAAW,gBAElCmB,EAAsBnB,EAAW,EAAIkB,EACrCE,EAAgBnhP,EAAQ,EACxBohP,EAAgB,CAACD,EAEvB,GAAIH,EAASb,EAAO,IAAI7+G,CAAI,GAAK6/G,EAAe,CAO9C,GAF4BhB,EAAO,IAAI7+G,CAAI,GAAK,KAAK,SAASA,CAAI,EAGhE,OAAAy+G,EAAW,OAAOgB,EAAgB,EAAI,EAC/B,GAEP,KAAK,oBAAoBz/G,EAAM0/G,CAAM,CAG/C,SAAiBA,EAASb,EAAO,IAAI7+G,CAAI,GAAK8/G,EAAe,CAKrD,GAF4B,KAAK,SAAS9/G,CAAI,GAAK6+G,EAAO,IAAI7+G,CAAI,EAGhE,OAAAy+G,EAAW,OAAOgB,EAAgB,EAAI,EAC/B,GAEP,KAAK,oBAAoBz/G,EAAM0/G,CAAM,CAG/C,SAEYE,IAAwB,EAAG,CAE7B,GAAIA,EAAsB,EAGxB,OAAAnB,EAAW,OAAO,KAAK,IAAIgB,EAAgBE,CAAoB,EAAG,EAAI,EAC/D,GACF,GAAIC,EAAsB,EAI/B,OAAAnB,EAAW,OAAO,KAAK,IAAIgB,EAAgBE,CAAoB,EAAG,EAAI,EAC/D,EAEnB,MAEU,KAAK,oBAAoB3/G,EAAM0/G,CAAM,CAG/C,MACU1/G,IAAS,IAEP,CAACy+G,EAAW,UAAS,GAAMI,EAAO,IAAI,IAAMA,EAAO,IAAI,GACzD,KAAK,oBAAoB7+G,EAAM0/G,CAAM,EAGvC,KAAK,oBAAoB1/G,EAAM0/G,CAAM,EAIzC,MAAO,EACR,CAgBD,sBAAsBlC,EAAM,CAC1B,IAAIuC,EAAuBC,EAE3B,OAAQxC,IAASuC,GAAyBC,EAAuB,KAAK,KAAK,aAAe,MAAQA,IAAyB,OAAS,OAASA,EAAqB,OAAO,OAAO,KAAO,MAAQD,IAA0B,OAASA,EAAwB,KAAO,KAAK,KAAK,aAAa,EAAI,EAC7R,CAaD,oBAAoB//G,EAAMigH,EAAcC,EAAgB,CACtD,KAAM,CACJ,UAAA5B,CACN,EAAQ,KAAK,KAET,GAAI,CAACA,EACH,OAGF,KAAM,CACJ,IAAAM,EACA,OAAAC,CACD,EAAGP,EAGJ,GAFqBO,EAAO,WAAW7+G,EAAMigH,CAAY,IAEpCA,GAAgBC,EAAgB,CACnD,MAAMxhP,EAAQ,KAAK,MAAMuhP,EAAerB,EAAI5+G,CAAI,CAAC,EACjD4+G,EAAI5+G,CAAI,GAAKthI,GAASwhP,GAAkBvC,IAC9C,MACMiB,EAAI5+G,CAAI,EAAIigH,CAEf,CAEH,CAMA,MAAME,IAAsB,IACtBC,IAAsB,IAU5B,SAASC,GAAoB5gP,EAAGqpD,EAAIC,EAAI,CACtC,OAAAtpD,EAAE,GAAKqpD,EAAG,EAAIC,EAAG,GAAK,EACtBtpD,EAAE,GAAKqpD,EAAG,EAAIC,EAAG,GAAK,EACftpD,CACT,CAEA,MAAM6gP,GAAY,CAIhB,YAAYnC,EAAU,CACpB,KAAK,SAAWA,EAMhB,KAAK,UAAY,CACf,EAAG,EACH,EAAG,CACT,EAMI,KAAK,gBAAkB,CACrB,EAAG,EACH,EAAG,CACT,EAMI,KAAK,WAAa,CAChB,EAAG,EACH,EAAG,CACT,EAGI,KAAK,qBAAuB,GAG5B,KAAK,gBAAkB,CACxB,CAED,OAAQ,CACN,KAAM,CACJ,UAAAG,CACN,EAAQ,KAAK,SAAS,KAEdA,IACF,KAAK,gBAAkBA,EAAU,cACjC5C,GAAe,KAAK,UAAW4C,EAAU,GAAG,GAG9C,KAAK,SAAS,KAAK,WAAW,WAAU,EACxC,KAAK,qBAAuB,EAC7B,CAED,QAAS,CACP,KAAM,CACJ,GAAAx1L,EACA,QAAAy3L,EACA,GAAAx3L,EACA,QAAAy3L,EACA,KAAA1H,CACN,EAAQ,KAAK,SACH,CACJ,UAAAwF,CACD,EAAGxF,EAEJ,GAAI,CAACwF,EACH,OAGF,MAAMmC,EAAenC,EAAU,WAAW,IACpCoC,EAAepC,EAAU,WAAW,IAE1C,GAAI,CAACA,EAAU,WAAU,GAAMxF,EAAK,WAAW,YAC7C,OAGFuH,GAAoB,KAAK,gBAAiBE,EAASC,CAAO,EAC1DH,GAAoB,KAAK,WAAYv3L,EAAIC,CAAE,EAE3C,IAAI6wL,EAAgB,EAAIgC,GAAmB2E,EAASC,CAAO,EAAI5E,GAAmB9yL,EAAIC,CAAE,EAAI,KAAK,gBAOjG,GAJI6wL,EAAgB0E,EAAU,WAAW,QAAUA,EAAU,WAAW,QAAU,KAChF,KAAK,qBAAuB,IAG1B1E,EAAgB6G,EAClB,GAAI3H,EAAK,QAAQ,cAAgB,CAAC,KAAK,sBAAwB,KAAK,iBAAmBwF,EAAU,WAAW,QAAS,CAEnH,MAAMC,EAAY,GAAKkC,EAAe7G,IAAkB6G,EAAe,KAElE3H,EAAK,SAAS,aAAc,CAC/B,UAAAyF,CACD,GAAE,kBACDzF,EAAK,eAAeyF,CAAS,CAEvC,MAEQ3E,EAAgB6G,GAAgBA,EAAe7G,GAAiBwG,SAEzDxG,EAAgB8G,IAEzB9G,EAAgB8G,GAAgB9G,EAAgB8G,GAAgBP,KAGlE7B,EAAU,IAAI,EAAI,KAAK,0BAA0B,IAAK1E,CAAa,EACnE0E,EAAU,IAAI,EAAI,KAAK,0BAA0B,IAAK1E,CAAa,EACnE0E,EAAU,aAAa1E,CAAa,EACpC0E,EAAU,oBAAmB,CAC9B,CAED,KAAM,CACJ,KAAM,CACJ,KAAAxF,CACN,EAAQ,KAAK,SACH,CACJ,UAAAwF,CACD,EAAGxF,GAEC,CAACwF,GAAaA,EAAU,cAAgBA,EAAU,WAAW,UAAY,CAAC,KAAK,sBAAwBxF,EAAK,QAAQ,aACvHA,EAAK,MAAK,EAEV,KAAK,eAAc,CAEtB,CASD,0BAA0B94G,EAAM45G,EAAe,CAC7C,MAAM0D,EAAa1D,EAAgB,KAAK,gBACxC,OAAO,KAAK,WAAW55G,CAAI,GAAK,KAAK,gBAAgBA,CAAI,EAAI,KAAK,UAAUA,CAAI,GAAKs9G,CACtF,CAWD,eAAeqD,EAAe,CAC5B,KAAM,CACJ,KAAA7H,CACN,EAAQ,KAAK,SACH,CACJ,UAAAwF,CACD,EAAGxF,EAEJ,GAAI,EAAEwF,GAAc,MAAgCA,EAAU,WAAU,GACtE,OAGE,KAAK,WAAW,IAAM,IACxBqC,EAAgB,IAGlB,MAAMvD,EAAgBkB,EAAU,cAGhC,IAAIsC,EACAC,EAA2B,GAE3BzD,EAAgBkB,EAAU,WAAW,QACvCsC,EAAuBtC,EAAU,WAAW,QACnClB,EAAgBkB,EAAU,WAAW,IAC9CsC,EAAuBtC,EAAU,WAAW,KAE5CuC,EAA2B,GAC3BD,EAAuBxD,GAGzB,MAAMiC,EAAmBvG,EAAK,UACxBiG,EAAmBjG,EAAK,UAAY,EACpCgI,EAAapF,GAAe,CAChC,EAAG,EACH,EAAG,CACT,EAAO4C,EAAU,GAAG,EAChB,IAAIyC,EAAiBrF,GAAe,CAClC,EAAG,EACH,EAAG,CACJ,EAAEoF,CAAU,EAETH,IACF,KAAK,WAAW,EAAI,EACpB,KAAK,WAAW,EAAI,EACpB,KAAK,gBAAgB,EAAI,EACzB,KAAK,gBAAgB,EAAI,EACzB,KAAK,gBAAkBvD,EACvB1B,GAAe,KAAK,UAAWoF,CAAU,GAGvCD,IACFE,EAAiB,CACf,EAAG,KAAK,0BAA0B,IAAKH,CAAoB,EAC3D,EAAG,KAAK,0BAA0B,IAAKA,CAAoB,CACnE,GAIItC,EAAU,aAAasC,CAAoB,EAC3CG,EAAiB,CACf,EAAGzC,EAAU,OAAO,WAAW,IAAKyC,EAAe,CAAC,EACpD,EAAGzC,EAAU,OAAO,WAAW,IAAKyC,EAAe,CAAC,CAC1D,EAEIzC,EAAU,aAAalB,CAAa,EACpC,MAAM4D,EAAiB,CAACnF,GAAYkF,EAAgBD,CAAU,EAE9D,GAAI,CAACE,GAAkB,CAACH,GAA4B,CAAC9B,EAAkB,CAErET,EAAU,eAAesC,CAAoB,EAE7CtC,EAAU,oBAAmB,EAE7B,MACD,CAEDxF,EAAK,WAAW,aAChBA,EAAK,WAAW,YAAY,CAC1B,MAAO,GACP,MAAO,EACP,IAAK,IACL,SAAU,EACV,aAAc,EACd,iBAAkB,GAClB,SAAUzkK,GAAO,CAGf,GAFAA,GAAO,IAEH2sK,GAAkBH,EAA0B,CAM9C,GALIG,IACF1C,EAAU,IAAI,EAAIwC,EAAW,GAAKC,EAAe,EAAID,EAAW,GAAKzsK,EACrEiqK,EAAU,IAAI,EAAIwC,EAAW,GAAKC,EAAe,EAAID,EAAW,GAAKzsK,GAGnEwsK,EAA0B,CAC5B,MAAMI,EAAe7D,GAAiBwD,EAAuBxD,GAAiB/oK,EAC9EiqK,EAAU,aAAa2C,CAAY,CACpC,CAED3C,EAAU,oBAAmB,CAC9B,CAGGS,GAAoBjG,EAAK,UAAY,GAIvCA,EAAK,eAAe71F,GAAMo8F,GAAoB,EAAIA,GAAoBhrK,EAAK,EAAG,CAAC,CAAC,CAEnF,EACD,WAAY,IAAM,CAEhBiqK,EAAU,eAAesC,CAAoB,EAE7CtC,EAAU,oBAAmB,CAC9B,CACP,CAAK,CACF,CAEH,CAqBA,SAAS4C,GAAoB/6Q,EAAO,CAClC,MAAO,CAAC,CAERA,EAAM,OAAO,QAAQ,kBAAkB,CACzC,CAMA,MAAMg7Q,GAAW,CAIf,YAAYhD,EAAU,CACpB,KAAK,SAAWA,CACjB,CAOD,MAAM5vH,EAAOn+I,EAAe,CAC1B,MAAMgxQ,EAENhxQ,EAAc,OAAO,UACfixQ,EAAeD,EAAgB,SAAS,WAAW,EACnDE,EAAoBF,EAAgB,SAAS,YAAY,GAAKA,EAAgB,SAAS,iBAAiB,EAE1GC,EACF,KAAK,oBAAoB,aAAc9yH,EAAOn+I,CAAa,EAClDkxQ,GACT,KAAK,oBAAoB,UAAW/yH,EAAOn+I,CAAa,CAE3D,CAOD,IAAIm+I,EAAOn+I,EAAe,CACpB8wQ,GAAoB9wQ,CAAa,GACnC,KAAK,oBAAoB,MAAOm+I,EAAOn+I,CAAa,CAEvD,CAOD,UAAUm+I,EAAOn+I,EAAe,CAC1B8wQ,GAAoB9wQ,CAAa,GACnC,KAAK,oBAAoB,YAAam+I,EAAOn+I,CAAa,CAE7D,CASD,oBAAoBmxQ,EAAYhzH,EAAOn+I,EAAe,CACpD,IAAIoxQ,EAEJ,KAAM,CACJ,KAAA1I,CACN,EAAQ,KAAK,SACH,CACJ,UAAAwF,CACD,EAAGxF,EACE2I,EAENF,EAAa,SACP/5D,EAAcsxD,EAAK,QAAQ2I,CAAc,EAE/C,GAAI,CAAA3I,EAAK,SAAS2I,EAAgB,CAChC,MAAAlzH,EACA,cAAAn+I,CACD,GAAE,iBAIH,IAAI,OAAOo3M,GAAgB,WAAY,CACrCA,EAAY,KAAKsxD,EAAMvqH,EAAOn+I,CAAa,EAC3C,MACD,CAED,OAAQo3M,EAAW,CACjB,IAAK,QACL,IAAK,OACHsxD,EAAKtxD,CAAW,IAChB,MAEF,IAAK,OACH82D,GAAc,MAAgCA,EAAU,WAAW/vH,CAAK,EACxE,MAEF,IAAK,gBAGC+vH,GAAc,MAAgCA,EAAU,cAAgBA,EAAU,WAAW,YAAcA,EAAU,WAAW,QAClIA,EAAU,WAAW/vH,CAAK,EACjBuqH,EAAK,QAAQ,yBACtBA,EAAK,MAAK,EAGZ,MAEF,IAAK,mBACF0I,EAAwB,KAAK,SAAS,KAAK,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,UAAU,OAAO,kBAAkB,EAM9J,KACH,EACF,CAEH,CAQA,MAAME,IAAwB,GAExBC,IAAmB,IAEnBC,IAAmB,GAUzB,MAAMC,GAAS,CAIb,YAAY/I,EAAM,CAChB,KAAK,KAAOA,EAGZ,KAAK,SAAW,KAKhB,KAAK,GAAK,CACR,EAAG,EACH,EAAG,CACT,EAII,KAAK,GAAK,CACR,EAAG,EACH,EAAG,CACT,EAII,KAAK,OAAS,CACZ,EAAG,EACH,EAAG,CACT,EAGI,KAAK,OAAS,CACZ,EAAG,EACH,EAAG,CACT,EAGI,KAAK,QAAU,CACb,EAAG,EACH,EAAG,CACT,EAGI,KAAK,QAAU,CACb,EAAG,EACH,EAAG,CACT,EAGI,KAAK,SAAW,CACd,EAAG,EACH,EAAG,CACT,EAKI,KAAK,aAAe,CAClB,EAAG,EACH,EAAG,CACT,EAKI,KAAK,YAAc,CACjB,EAAG,EACH,EAAG,CACT,EAGI,KAAK,iBAAmB,EAKxB,KAAK,iBAAmB,GAGxB,KAAK,mBAAqB,iBAAkB,OAG5C,KAAK,qBAAuB,CAAC,CAAC,OAAO,aACrC,KAAK,cAAgB,KAAK,oBAAsB,KAAK,sBAAwB,UAAU,eAAiB,EAGxG,KAAK,iBAAmB,EAGxB,KAAK,cAAgB,EAGrB,KAAK,oBAAsB,GAC3B,KAAK,aAAe,GACpB,KAAK,WAAa,GAClB,KAAK,UAAY,GAGjB,KAAK,IAAM,KAKX,KAAK,UAAY,KAEZ,KAAK,gBAERA,EAAK,QAAQ,eAAiB,IAGhC,KAAK,KAAO,IAAIoF,IAAY,IAAI,EAChC,KAAK,WAAa,IAAIoC,IAAY,IAAI,EACtC,KAAK,WAAa,IAAIa,IAAW,IAAI,EACrCrI,EAAK,GAAG,aAAc,IAAM,CAC1BA,EAAK,OAAO,IAAIA,EAAK,WAAY,QAEjC,KAAK,SAAS,KAAK,IAAI,CAAC,EAEpB,KAAK,qBACP,KAAK,YAAY,UAAW,OAAQ,KAAM,QAAQ,EACzC,KAAK,oBACd,KAAK,YAAY,QAAS,QAAS,MAAO,QAAQ,EAS9CA,EAAK,aACPA,EAAK,WAAW,YAAc,IAAM,GAEpCA,EAAK,WAAW,WAAa,IAAM,KAGrC,KAAK,YAAY,QAAS,OAAQ,IAAI,CAE9C,CAAK,CACF,CAUD,YAAYgJ,EAAMC,EAAMvkG,EAAI/+F,EAAQ,CAClC,KAAM,CACJ,KAAAq6L,CACD,EAAG,KACE,CACJ,OAAAtgP,CACD,EAAGsgP,EACEkJ,EAAcvjM,EAASqjM,EAAOrjM,EAAS,GAC7CjmD,EAAO,IAAIsgP,EAAK,WAAYgJ,EAAOC,EAEnC,KAAK,cAAc,KAAK,IAAI,CAAC,EAC7BvpP,EAAO,IAAI,OAAQspP,EAAO,OAE1B,KAAK,cAAc,KAAK,IAAI,CAAC,EAC7BtpP,EAAO,IAAI,OAAQspP,EAAOtkG,EAE1B,KAAK,YAAY,KAAK,IAAI,CAAC,EAEvBwkG,GACFxpP,EAAO,IAAIsgP,EAAK,WAAYkJ,EAE5B,KAAK,YAAY,KAAK,IAAI,CAAC,CAE9B,CAMD,cAAc,EAAG,CAOf,MAAMC,EAAiB,EAAE,OAAS,aAAe,EAAE,cAAgB,QAInE,GAAIA,GAAkB,EAAE,OAAS,EAC/B,OAGF,KAAM,CACJ,KAAAnJ,CACD,EAAG,KAEJ,GAAI,CAACA,EAAK,OAAO,OAAQ,CACvB,EAAE,eAAc,EAChB,MACD,CAEGA,EAAK,SAAS,cAAe,CAC/B,cAAe,CAChB,GAAE,mBAICmJ,IACFnJ,EAAK,cAAa,EAGlB,KAAK,8BAA8B,EAAG,MAAM,GAG9CA,EAAK,WAAW,UAEhB,KAAK,cAAc,EAAG,MAAM,EAExB,KAAK,mBAAqB,IAC5B,KAAK,SAAW,KAGhB4C,GAAe,KAAK,QAAS,KAAK,EAAE,GAGlC,KAAK,iBAAmB,GAE1B,KAAK,eAAc,EAEnB,KAAK,aAAe,IAEpB,KAAK,aAAe,GAEvB,CAMD,cAAc,EAAG,CACf,KAAK,8BAA8B,EAAG,MAAM,EAEvC,KAAK,mBAIV,KAAK,cAAc,EAAG,MAAM,EAExB,MAAK,KAAK,SAAS,cAAe,CACpC,cAAe,CAChB,GAAE,mBAIC,KAAK,mBAAqB,GAAK,CAAC,KAAK,YAClC,KAAK,UACR,KAAK,wBAAuB,EAI1B,KAAK,UAAY,CAAC,KAAK,aACrB,KAAK,YACP,KAAK,UAAY,GACjB,KAAK,WAAW,OAGlB,KAAK,WAAa,GAElB,KAAK,eAAc,EAInB,KAAK,mBAAkB,EAEvB,KAAK,cAAgB,KAAK,MAE1B,KAAK,oBAAsB,GAC3BA,GAAe,KAAK,YAAa,KAAK,EAAE,EACxC,KAAK,SAAS,EAAI,EAClB,KAAK,SAAS,EAAI,EAClB,KAAK,KAAK,QAEV,KAAK,aAAY,EAEjB,KAAK,eAAc,IAEZ,KAAK,iBAAmB,GAAK,CAAC,KAAK,YAC5C,KAAK,YAAW,EAEhB,KAAK,UAAY,GAEjB,KAAK,mBAAkB,EAEvB,KAAK,WAAW,QAEhB,KAAK,aAAY,EAEjB,KAAK,eAAc,IAEtB,CAMD,aAAc,CACR,KAAK,aACP,KAAK,WAAa,GAGb,KAAK,qBACR,KAAK,gBAAgB,EAAI,EAG3B,KAAK,KAAK,MACV,KAAK,SAAW,KAEnB,CAMD,YAAY,EAAG,CACR,KAAK,mBAIV,KAAK,cAAc,EAAG,IAAI,EAEtB,MAAK,KAAK,SAAS,YAAa,CAClC,cAAe,CAChB,GAAE,mBAIC,KAAK,mBAAqB,IAC5B,KAAK,aAAY,EAEb,KAAK,WACP,KAAK,YAAW,EACP,CAAC,KAAK,WAAa,CAAC,KAAK,cAElC,KAAK,WAAW,CAAC,GAIjB,KAAK,iBAAmB,GAAK,KAAK,YACpC,KAAK,UAAY,GACjB,KAAK,WAAW,MAEZ,KAAK,mBAAqB,IAE5B,KAAK,SAAW,KAEhB,KAAK,mBAAkB,KAG5B,CAMD,gBAAiB,EACX,KAAK,YAAc,KAAK,aAC1B,KAAK,gBAAe,EAEhB,KAAK,WAEFG,GAAY,KAAK,GAAI,KAAK,MAAM,GACnC,KAAK,KAAK,UAKN,CAACA,GAAY,KAAK,GAAI,KAAK,MAAM,GAAK,CAACA,GAAY,KAAK,GAAI,KAAK,MAAM,IACzE,KAAK,WAAW,SAItB,KAAK,kBAAiB,EAEtB,KAAK,IAAM,sBAAsB,KAAK,eAAe,KAAK,IAAI,CAAC,EAElE,CASD,gBAAgBnvO,EAAO,CACrB,MAAMtK,EAAO,KAAK,MACZmM,EAAWnM,EAAO,KAAK,cAEzBmM,EAAW,IAAM,CAAC7B,IAItB,KAAK,SAAS,EAAI,KAAK,aAAa,IAAK6B,CAAQ,EACjD,KAAK,SAAS,EAAI,KAAK,aAAa,IAAKA,CAAQ,EACjD,KAAK,cAAgBnM,EACrBs5O,GAAe,KAAK,YAAa,KAAK,EAAE,EACxC,KAAK,oBAAsB,GAC5B,CAOD,WAAW,EAAG,CACZ,KAAM,CACJ,WAAA+C,CACN,EAAQ,KAAK,KAET,GAAIA,EAAW,YAAa,CAG1BA,EAAW,YAAY,EAAG,EAAI,EAC9B,MACD,CAGD,GAAI,EAAE,KAAK,QAAQ,QAAQ,EAAI,EAC7B,OAIF,GAAI,EAAE,OAAS,WAAa,EAAE,cAAgB,QAAS,CACrD,KAAK,WAAW,MAAM,KAAK,QAAS,CAAC,EACrC,MACD,CAGD,MAAMyD,EAAW,KAAK,KAAK,QAAQ,gBAAkBP,IAAmB,EAIpE,KAAK,WACP,KAAK,eAAc,EAGf/F,GAAmB,KAAK,aAAc,KAAK,OAAO,EAAIgG,KACxD,KAAK,WAAW,UAAU,KAAK,QAAS,CAAC,IAG3ClG,GAAe,KAAK,aAAc,KAAK,OAAO,EAC9C,KAAK,UAAY,WAAW,IAAM,CAChC,KAAK,WAAW,IAAI,KAAK,QAAS,CAAC,EAEnC,KAAK,eAAc,CACpB,EAAEwG,CAAQ,EAEd,CAMD,gBAAiB,CACX,KAAK,YACP,aAAa,KAAK,SAAS,EAC3B,KAAK,UAAY,KAEpB,CAWD,aAAaliH,EAAMzxH,EAAU,CAE3B,MAAM4zO,EAAe,KAAK,GAAGniH,CAAI,EAAI,KAAK,YAAYA,CAAI,EAE1D,OAAI,KAAK,IAAImiH,CAAY,EAAI,GAAK5zO,EAAW,EACpC4zO,EAAe5zO,EAGjB,CACR,CAMD,cAAe,CACT,KAAK,MACP,qBAAqB,KAAK,GAAG,EAC7B,KAAK,IAAM,KAEd,CAQD,8BAA8B,EAAG6zO,EAAa,CAChB,KAAK,KAAK,aAAa,sBAAuB,GAAM,EAAGA,CAAW,GAG5F,EAAE,eAAc,CAEnB,CAWD,cAAc,EAAGA,EAAa,CAC5B,GAAI,KAAK,qBAAsB,CAC7B,MAAMC,EAEN,EAEMC,EAAe,KAAK,iBAAiB,UAAUC,GAC5CA,EAAe,KAAOF,EAAa,SAC3C,EAEGD,IAAgB,MAAQE,EAAe,GAEzC,KAAK,iBAAiB,OAAOA,EAAc,CAAC,EACnCF,IAAgB,QAAUE,IAAiB,GAEpD,KAAK,iBAAiB,KAAK,KAAK,wBAAwBD,EAAc,CACpE,EAAG,EACH,EAAG,CACJ,EAAC,EACOC,EAAe,IAExB,KAAK,wBAAwBD,EAAc,KAAK,iBAAiBC,CAAY,CAAC,EAGhF,KAAK,iBAAmB,KAAK,iBAAiB,OAG1C,KAAK,iBAAmB,GAC1B5G,GAAe,KAAK,GAAI,KAAK,iBAAiB,CAAC,CAAC,EAG9C,KAAK,iBAAmB,GAC1BA,GAAe,KAAK,GAAI,KAAK,iBAAiB,CAAC,CAAC,CAExD,KAAW,CACL,MAAM8G,EAEN,EACA,KAAK,iBAAmB,EAEpBA,EAAW,KAAK,QAAQ,OAAO,EAAI,GAGjCA,EAAW,SAAWA,EAAW,QAAQ,OAAS,IACpD,KAAK,wBAAwBA,EAAW,QAAQ,CAAC,EAAG,KAAK,EAAE,EAE3D,KAAK,mBAEDA,EAAW,QAAQ,OAAS,IAC9B,KAAK,wBAAwBA,EAAW,QAAQ,CAAC,EAAG,KAAK,EAAE,EAE3D,KAAK,sBAKT,KAAK,wBAEL,EAAG,KAAK,EAAE,EAENJ,IAAgB,KAElB,KAAK,iBAAmB,EAExB,KAAK,mBAGV,CACF,CAMD,mBAAoB,CAClB1G,GAAe,KAAK,OAAQ,KAAK,EAAE,EACnCA,GAAe,KAAK,OAAQ,KAAK,EAAE,CACpC,CAMD,oBAAqB,CACnBA,GAAe,KAAK,QAAS,KAAK,EAAE,EACpCA,GAAe,KAAK,QAAS,KAAK,EAAE,EAEpC,KAAK,kBAAiB,CACvB,CAID,yBAA0B,CACxB,GAAI,KAAK,KAAK,WAAW,UAAS,EAEhC,KAAK,SAAW,QACX,CAEL,MAAMzyP,EAAO,KAAK,IAAI,KAAK,GAAG,EAAI,KAAK,QAAQ,CAAC,EAAI,KAAK,IAAI,KAAK,GAAG,EAAI,KAAK,QAAQ,CAAC,EAEvF,GAAIA,IAAS,EAAG,CAEd,MAAMw5P,EAAcx5P,EAAO,EAAI,IAAM,IAEjC,KAAK,IAAI,KAAK,GAAGw5P,CAAW,EAAI,KAAK,QAAQA,CAAW,CAAC,GAAKf,MAChE,KAAK,SAAWe,EAEnB,CACF,CACF,CAYD,wBAAwB,EAAGhjP,EAAG,CAC5B,OAAAA,EAAE,EAAI,EAAE,MAAQ,KAAK,KAAK,OAAO,EACjCA,EAAE,EAAI,EAAE,MAAQ,KAAK,KAAK,OAAO,EAE7B,cAAe,EACjBA,EAAE,GAAK,EAAE,UACA,EAAE,aAAe,SAC1BA,EAAE,GAAK,EAAE,YAGJA,CACR,CAOD,SAAS,EAAG,CAEN,KAAK,KAAK,WAAW,UAAS,IAChC,EAAE,eAAc,EAChB,EAAE,gBAAe,EAEpB,CAEH,CAQA,MAAMijP,IAA2B,IAWjC,MAAMC,GAAW,CAIf,YAAY7J,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,EAAI,EACT,KAAK,WAAa,EAGlB,KAAK,mBAAqB,EAG1B,KAAK,mBAAqB,EAG1B,KAAK,qBAAuB,GAG5B,KAAK,YAAc,EACpB,CASD,OAAO8J,EAAc,CACnB,KAAM,CACJ,KAAA9J,CACD,EAAG,KACE+J,EAAgB,KAAK,MAAM/J,EAAK,aAAa,EAAIA,EAAK,aAAa,EAAIA,EAAK,QAAQ,OAAO,EAI3FgK,EAAoBD,IAAkB,KAAK,WAE7CC,IACF,KAAK,WAAaD,EAClB,KAAK,OAAO,KAAK,cAAe,IAGlC,KAAK,YAAY,QAAQ,CAACE,EAAYxvQ,IAAU,CAC1CuvQ,GACF//G,GAAaggH,EAAW,IAAKxvQ,EAAQ,KAAK,sBAAwB,KAAK,UAAU,EAG/EqvQ,GAAgBG,EAAW,OAC7BA,EAAW,MAAM,QAEzB,CAAK,CACF,CAMD,eAAgB,CAGd,KAAK,mBAAqB,EAC1B,KAAK,mBAAqB,EAE1B,KAAK,WAAa,EAElB,KAAK,qBAAuB,EAC7B,CAOD,eAAgB,CACd,KAAK,YAAc,GAGnB,QAAS54Q,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMwe,EAAKiiE,GAAc,aAAc,MAAO,KAAK,KAAK,SAAS,EACjEjiE,EAAG,aAAa,OAAQ,OAAO,EAC/BA,EAAG,aAAa,uBAAwB,OAAO,EAC/CA,EAAG,aAAa,cAAe,MAAM,EAErCA,EAAG,MAAM,QAAUxe,IAAM,EAAI,QAAU,OACvC,KAAK,YAAY,KAAK,CACpB,GAAAwe,CAER,CAAO,CACF,CACF,CAOD,aAAc,CACZ,OAAO,KAAK,KAAK,YAAW,EAAK,CAClC,CAkBD,YAAYM,EAAM+5P,EAASC,EAAW,CACpC,KAAM,CACJ,KAAAnK,CACD,EAAG,KACJ,IAAIoK,EAAWpK,EAAK,eAAiB7vP,EACrC,MAAMk6P,EAAYrK,EAAK,cAEvB,GAAIA,EAAK,UAAW,CAClBoK,EAAWpK,EAAK,eAAeoK,CAAQ,EACvC,MAAMtjQ,GAAYqJ,EAAOk6P,GAAaA,EAElCvjQ,GAAYujQ,EAAY,EAE1Bl6P,EAAOrJ,EAGPqJ,EAAOrJ,EAAWujQ,CAE1B,MACUD,EAAW,EACbA,EAAW,EACFA,GAAYC,IACrBD,EAAWC,EAAY,GAGzBl6P,EAAOi6P,EAAWpK,EAAK,eAGzBA,EAAK,eAAiBoK,EACtB,KAAK,oBAAsBj6P,EAC3B6vP,EAAK,WAAW,iBAChB,MAAMsK,EAAe,KAAK,gBAE1B,GAAI,CAACJ,EACH,KAAK,OAAOI,CAAY,EACxB,KAAK,eAAc,MACd,CACLtK,EAAK,WAAW,YAAY,CAC1B,aAAc,GACd,MAAO,KAAK,EACZ,IAAKsK,EACL,SAAUH,GAAa,EACvB,iBAAkB,GAClB,aAAc,EAEd,SAAU5zQ,GAAK,CACb,KAAK,OAAOA,CAAC,CACd,EACD,WAAY,IAAM,CAChB,KAAK,eAAc,EACnBypQ,EAAK,YAAW,CACjB,CACT,CAAO,EACD,IAAIuK,EAAWvK,EAAK,eAAiBA,EAAK,UAE1C,GAAIA,EAAK,UAAW,CAClB,MAAMwK,GAAgBD,EAAWF,GAAaA,EAE1CG,GAAgBH,EAAY,EAE9BE,EAAWC,EAGXD,EAAWC,EAAeH,CAE7B,CAIG,KAAK,IAAIE,CAAQ,EAAI,GACvB,KAAK,eAAc,CAEtB,CAED,MAAO,EAAQp6P,CAChB,CAQD,eAAgB,CACd,OAAO,KAAK,WAAa,KAAK,kBAC/B,CAQD,WAAY,CACV,OAAO,KAAK,IAAM,KAAK,cAAa,CACrC,CAMD,gBAAiB,CACf,IAAIs6P,EAEJ,KAAM,CACJ,KAAAzK,CACD,EAAG,KACE0K,EAAqB,KAAK,mBAAqB,KAAK,mBAE1D,GAAI,CAACA,EACH,OAGF,KAAK,mBAAqB,KAAK,mBAC/B1K,EAAK,UAAYA,EAAK,eACtB,IAAI2K,EAAU,KAAK,IAAID,CAAkB,EAGrCE,EAEAD,GAAW,IACb,KAAK,sBAAwBD,GAAsBA,EAAqB,EAAI,GAAK,GACjFC,EAAU,EAEV,KAAK,YAAY,QAAQV,GAAc,CACrC,IAAIY,GAEHA,EAAoBZ,EAAW,SAAW,MAAQY,IAAsB,QAAUA,EAAkB,UACrGZ,EAAW,MAAQ,MAC3B,CAAO,GAGH,QAAS54Q,EAAI,EAAGA,EAAIs5Q,EAASt5Q,IACvBq5Q,EAAqB,GACvBE,EAAa,KAAK,YAAY,QAE1BA,IACF,KAAK,YAAY,CAAC,EAAIA,EAEtB,KAAK,uBACL3gH,GAAa2gH,EAAW,IAAK,KAAK,qBAAuB,GAAK,KAAK,UAAU,EAC7E5K,EAAK,WAAW4K,EAAY5K,EAAK,UAAY2K,EAAUt5Q,EAAI,CAAC,KAG9Du5Q,EAAa,KAAK,YAAY,MAE1BA,IACF,KAAK,YAAY,QAAQA,CAAU,EAEnC,KAAK,uBACL3gH,GAAa2gH,EAAW,GAAI,KAAK,qBAAuB,KAAK,UAAU,EACvE5K,EAAK,WAAW4K,EAAY5K,EAAK,UAAY2K,EAAUt5Q,EAAI,CAAC,IAW9D,KAAK,IAAI,KAAK,oBAAoB,EAAI,IAAM,CAAC,KAAK,cACpD,KAAK,cAAa,EAClB,KAAK,OAAM,GAIb2uQ,EAAK,WAAW,aAChB,KAAK,YAAY,QAAQ,CAACiK,EAAY54Q,IAAM,CACtC44Q,EAAW,OAEbA,EAAW,MAAM,YAAY54Q,IAAM,CAAC,CAE5C,CAAK,EACD2uQ,EAAK,WAAayK,EAAqB,KAAK,YAAY,CAAC,KAAO,MAAQA,IAAuB,OAAS,OAASA,EAAmB,MACpIzK,EAAK,cAAc,WAAW0K,CAAkB,EAE5C1K,EAAK,WACPA,EAAK,UAAU,sBAGjBA,EAAK,SAAS,QAAQ,CACvB,CASD,OAAOzpQ,EAAGu0Q,EAAU,CAClB,GAAI,CAAC,KAAK,KAAK,QAAO,GAAMA,EAAU,CAEpC,IAAIC,GAAuB,KAAK,WAAa,KAAK,mBAAqBx0Q,GAAK,KAAK,WACjFw0Q,GAAuB,KAAK,KAAK,UACjC,MAAMnlP,EAAQ,KAAK,MAAMrvB,EAAI,KAAK,CAAC,GAE/Bw0Q,EAAsB,GAAKnlP,EAAQ,GAAKmlP,GAAuB,KAAK,KAAK,YAAa,EAAG,GAAKnlP,EAAQ,KACxGrvB,EAAI,KAAK,EAAIqvB,EAAQgkP,IAExB,CAED,KAAK,EAAIrzQ,EAEL,KAAK,KAAK,WACZ0zJ,GAAa,KAAK,KAAK,UAAW1zJ,CAAC,EAGrC,KAAK,KAAK,SAAS,iBAAkB,CACnC,EAAAA,EACA,SAAUu0Q,GAAsD,EACtE,CAAK,CACF,CAEH,CASA,MAAME,IAAsB,CAC1B,OAAQ,GACR,EAAG,GACH,UAAW,GACX,QAAS,GACT,WAAY,GACZ,UAAW,GACX,IAAK,CACP,EAQMC,GAAsB,CAAC9rQ,EAAK+rQ,IACzBA,EAAiB/rQ,EAAM6rQ,IAAoB7rQ,CAAG,EAQvD,IAAAgsQ,IAAA,KAAe,CAIb,YAAYnL,EAAM,CAChB,KAAK,KAAOA,EAGZ,KAAK,YAAc,GACnBA,EAAK,GAAG,aAAc,IAAM,CACtBA,EAAK,QAAQ,YAEVA,EAAK,QAAQ,mBAIhB,KAAK,WAAU,EAGjBA,EAAK,OAAO,IAAI,SAAU,UAE1B,KAAK,WAAW,KAAK,IAAI,CAAC,GAG5BA,EAAK,OAAO,IAAI,SAAU,UAE1B,KAAK,WAAW,KAAK,IAAI,CAAC,CAChC,CAAK,EACD,MAAMoL,EAEN,SAAS,cACTpL,EAAK,GAAG,UAAW,IAAM,CACnBA,EAAK,QAAQ,aAAeoL,GAAqB,KAAK,aACxDA,EAAkB,MAAK,CAE/B,CAAK,CACF,CAID,YAAa,CACP,CAAC,KAAK,aAAe,KAAK,KAAK,UACjC,KAAK,KAAK,QAAQ,QAClB,KAAK,YAAc,GAEtB,CAOD,WAAW,EAAG,CACZ,KAAM,CACJ,KAAApL,CACD,EAAG,KAQJ,GANIA,EAAK,SAAS,UAAW,CAC3B,cAAe,CAChB,GAAE,kBAICrC,IAAe,CAAC,EAIlB,OAKF,IAAI0N,EAGAnkH,EACAokH,EAAY,GAChB,MAAMJ,EAAkB,QAAS,EAEjC,OAAQA,EAAiB,EAAE,IAAM,EAAE,QAAO,CACxC,KAAKD,GAAoB,SAAUC,CAAc,EAC3ClL,EAAK,QAAQ,SACfqL,EAAgB,SAGlB,MAEF,KAAKJ,GAAoB,IAAKC,CAAc,EAC1CG,EAAgB,aAChB,MAEF,KAAKJ,GAAoB,YAAaC,CAAc,EAClDhkH,EAAO,IACP,MAEF,KAAK+jH,GAAoB,UAAWC,CAAc,EAChDhkH,EAAO,IACP,MAEF,KAAK+jH,GAAoB,aAAcC,CAAc,EACnDhkH,EAAO,IACPokH,EAAY,GACZ,MAEF,KAAKL,GAAoB,YAAaC,CAAc,EAClDI,EAAY,GACZpkH,EAAO,IACP,MAEF,KAAK+jH,GAAoB,MAAOC,CAAc,EAC5C,KAAK,WAAU,EAEf,KACH,CAGD,GAAIhkH,EAAM,CAER,EAAE,eAAc,EAChB,KAAM,CACJ,UAAAs+G,CACD,EAAGxF,EAEAA,EAAK,QAAQ,WAAa94G,IAAS,KAAO84G,EAAK,YAAa,EAAG,EACjEqL,EAAgBC,EAAY,OAAS,OAC5B9F,GAAaA,EAAU,cAAgBA,EAAU,WAAW,MAKrEA,EAAU,IAAIt+G,CAAI,GAAKokH,EAAY,IAAM,GACzC9F,EAAU,MAAMA,EAAU,IAAI,EAAGA,EAAU,IAAI,CAAC,EAEnD,CAEG6F,IACF,EAAE,eAAc,EAEhBrL,EAAKqL,CAAa,IAErB,CASD,WAAW,EAAG,CACZ,KAAM,CACJ,SAAAp7Q,CACN,EAAQ,KAAK,KAELA,GAAY,WAAa,EAAE,QAAUA,IAAa,EAAE,QAAU,CAACA,EAAS,SAE5E,EAAE,MAAM,GAENA,EAAS,MAAK,CAEjB,CAEH,EAEA,MAAMs7Q,IAAiB,2BAkBvB,MAAMC,GAAa,CAMjB,YAAY5qP,EAAO,CACjB,IAAI6qP,EAEJ,KAAK,MAAQ7qP,EACb,KAAM,CACJ,OAAA3zB,EACA,WAAA+E,EACA,UAAA84D,EACA,SAAA4gN,EAAW,IAAM,CAAE,EACnB,SAAAj2O,EAAW,IACX,OAAAjP,EAAS+kP,GACV,EAAG3qP,EACJ,KAAK,SAAW8qP,EAEhB,MAAM1vP,EAAO8uC,EAAY,YAAc,UACjCzD,GAAaokN,EAAc7qP,EAAM5E,CAAI,KAAO,MAAQyvP,IAAgB,OAASA,EAAc,GAGjG,KAAK,QAAUx+Q,EAGf,KAAK,YAAc+E,EAGnB,KAAK,UAAY,GAGjB,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EASvD,KAAK,eAAiB,WAAW,IAAM,CACrCixQ,GAAmBh2Q,EAAQ+uB,EAAMyZ,EAAUjP,CAAM,EACjD,KAAK,eAAiB,WAAW,IAAM,CACrCv5B,EAAO,iBAAiB,gBAAiB,KAAK,iBAAkB,EAAK,EACrEA,EAAO,iBAAiB,mBAAoB,KAAK,iBAAkB,EAAK,EAKxE,KAAK,eAAiB,WAAW,IAAM,CACrC,KAAK,mBAAkB,CACjC,EAAWwoC,EAAW,GAAG,EACjBxoC,EAAO,MAAM+uB,CAAI,EAAIqrC,CACtB,EAAE,EAAE,CACN,EAAE,CAAC,CACL,CAOD,iBAAiB,EAAG,CACd,EAAE,SAAW,KAAK,SACpB,KAAK,mBAAkB,CAE1B,CAMD,oBAAqB,CACd,KAAK,YACR,KAAK,UAAY,GACjB,KAAK,SAAQ,EAET,KAAK,aACP,KAAK,YAAW,EAGrB,CAGD,SAAU,CACJ,KAAK,gBACP,aAAa,KAAK,cAAc,EAGlC87M,IAAsB,KAAK,OAAO,EAElC,KAAK,QAAQ,oBAAoB,gBAAiB,KAAK,iBAAkB,EAAK,EAE9E,KAAK,QAAQ,oBAAoB,mBAAoB,KAAK,iBAAkB,EAAK,EAE5E,KAAK,WACR,KAAK,mBAAkB,CAE1B,CAEH,CAEA,MAAMwI,IAA4B,GAC5BC,IAAwB,IAK9B,MAAMC,GAAY,CAgBhB,YAAY3G,EAAiBoB,EAAcwF,EAAkB,CAC3D,KAAK,SAAW5G,EAAkB,IAGlC,KAAK,cAAgBoB,GAAgBsF,IAErC,KAAK,kBAAoBE,GAAoBH,IAC7C,KAAK,iBAAmB,KAAK,kBAEzB,KAAK,cAAgB,IACvB,KAAK,kBAAoB,KAAK,KAAK,EAAI,KAAK,cAAgB,KAAK,aAAa,EAEjF,CASD,UAAUI,EAAeC,EAAW,CAKlC,IAAI3C,EAAe,EACf4C,EACJD,GAAa,IACb,MAAME,EAAoB,KAAK,IAAM,CAAC,KAAK,cAAgB,KAAK,kBAAoBF,GAEpF,GAAI,KAAK,gBAAkB,EACzBC,EAAQ,KAAK,SAAW,KAAK,kBAAoBF,EACjD1C,GAAgB0C,EAAgBE,EAAQD,GAAaE,EACrD,KAAK,SAAW7C,EAAe,CAAC,KAAK,kBAAoB4C,EAAQC,UACxD,KAAK,cAAgB,EAAG,CACjCD,EAAQ,EAAI,KAAK,kBAAoB,KAAK,cAAgB,KAAK,kBAAoBF,EAAgB,KAAK,UACxG,MAAMI,EAAa,KAAK,IAAI,KAAK,iBAAmBH,CAAS,EACvDI,EAAa,KAAK,IAAI,KAAK,iBAAmBJ,CAAS,EAC7D3C,EAAe6C,GAAqBH,EAAgBI,EAAaF,EAAQG,GACzE,KAAK,SAAW/C,EAAe,CAAC,KAAK,kBAAoB,KAAK,cAAgB6C,GAAqB,CAAC,KAAK,iBAAmBH,EAAgBK,EAAa,KAAK,iBAAmBH,EAAQE,EAC1L,CAGD,OAAO9C,CACR,CAEH,CAiBA,MAAMgD,GAAgB,CAIpB,YAAYzrP,EAAO,CACjB,KAAK,MAAQA,EACb,KAAK,KAAO,EACZ,KAAM,CACJ,MAAA7f,EACA,IAAAwlB,EACA,SAAAm/O,EACA,SAAA4G,EACA,WAAAt6Q,EACA,SAAA05Q,EAAW,IAAM,CAAE,EACnB,aAAApF,EACA,iBAAAwF,CACD,EAAGlrP,EACJ,KAAK,SAAW8qP,EAChB,MAAMa,EAAQ,IAAIV,IAAYnG,EAAUY,EAAcwF,CAAgB,EACtE,IAAIU,EAAW,KAAK,MAChBT,EAAgBhrQ,EAAQwlB,EAE5B,MAAMkmP,EAAgB,IAAM,CACtB,KAAK,OACPV,EAAgBQ,EAAM,UAAUR,EAAe,KAAK,IAAG,EAAKS,CAAQ,EAEhE,KAAK,IAAIT,CAAa,EAAI,GAAK,KAAK,IAAIQ,EAAM,QAAQ,EAAI,IAE5DD,EAAS/lP,CAAG,EAERv0B,GACFA,IAGF,KAAK,SAAQ,IAEbw6Q,EAAW,KAAK,MAChBF,EAASP,EAAgBxlP,CAAG,EAC5B,KAAK,KAAO,sBAAsBkmP,CAAa,GAGzD,EAEI,KAAK,KAAO,sBAAsBA,CAAa,CAChD,CAGD,SAAU,CACJ,KAAK,MAAQ,GACf,qBAAqB,KAAK,IAAI,EAGhC,KAAK,KAAO,CACb,CAEH,CAsBA,MAAMC,GAAW,CACf,aAAc,CAEZ,KAAK,iBAAmB,EACzB,CAMD,YAAY9rP,EAAO,CACjB,KAAK,OAAOA,EAAO,EAAI,CACxB,CAMD,gBAAgBA,EAAO,CACrB,KAAK,OAAOA,CAAK,CAClB,CASD,OAAOA,EAAO+rP,EAAU,CACtB,MAAMrlP,EAAYqlP,EAAW,IAAIN,IAEjCzrP,CAAK,EAAI,IAAI4qP,IAEb5qP,CAAK,EACL,YAAK,iBAAiB,KAAK0G,CAAS,EAEpCA,EAAU,SAAW,IAAM,KAAK,KAAKA,CAAS,EAEvCA,CACR,CAMD,KAAKA,EAAW,CACdA,EAAU,QAAO,EACjB,MAAM7sB,EAAQ,KAAK,iBAAiB,QAAQ6sB,CAAS,EAEjD7sB,EAAQ,IACV,KAAK,iBAAiB,OAAOA,EAAO,CAAC,CAExC,CAED,SAAU,CAER,KAAK,iBAAiB,QAAQ6sB,GAAa,CACzCA,EAAU,QAAO,CACvB,CAAK,EACD,KAAK,iBAAmB,EACzB,CAMD,YAAa,CACX,KAAK,iBAAmB,KAAK,iBAAiB,OAAOA,GAC/CA,EAAU,MAAM,OAClBA,EAAU,QAAO,EACV,IAGF,EACR,CACF,CAED,gBAAiB,CACf,KAAK,iBAAmB,KAAK,iBAAiB,OAAOA,GAC/CA,EAAU,MAAM,cAClBA,EAAU,QAAO,EACV,IAGF,EACR,CACF,CAeD,cAAe,CACb,OAAO,KAAK,iBAAiB,KAAKA,GACzBA,EAAU,MAAM,KACxB,CACF,CAEH,CAQA,MAAMslP,GAAY,CAIhB,YAAY5M,EAAM,CAChB,KAAK,KAAOA,EACZA,EAAK,OAAO,IAAIA,EAAK,QAAS,QAE9B,KAAK,SAAS,KAAK,IAAI,CAAC,CACzB,CAOD,SAAS,EAAG,CACV,EAAE,eAAc,EAChB,KAAM,CACJ,UAAAwF,CACN,EAAQ,KAAK,KACT,GAAI,CACF,OAAAr6K,EACA,OAAAnF,CACD,EAAG,EAEJ,GAAKw/K,GAID,MAAK,KAAK,SAAS,QAAS,CAC9B,cAAe,CAChB,GAAE,iBAIH,GAAI,EAAE,SAAW,KAAK,KAAK,QAAQ,aAEjC,GAAIA,EAAU,aAAc,CAC1B,IAAIhB,EAAa,CAACx+K,EAEd,EAAE,YAAc,EAGlBw+K,GAAc,IAEdA,GAAc,EAAE,UAAY,EAAI,KAGlCA,EAAa,GAAKA,EAClB,MAAML,EAAgBqB,EAAU,cAAgBhB,EAChDgB,EAAU,OAAOrB,EAAe,CAC9B,EAAG,EAAE,QACL,EAAG,EAAE,OACf,CAAS,CACF,OAGGqB,EAAU,eACR,EAAE,YAAc,IAIlBr6K,GAAU,GACVnF,GAAU,IAGZw/K,EAAU,MAAMA,EAAU,IAAI,EAAIr6K,EAAQq6K,EAAU,IAAI,EAAIx/K,CAAM,EAGvE,CAEH,CAyCA,SAAS6mL,IAAeC,EAAU,CAChC,GAAI,OAAOA,GAAa,SAQtB,OAAOA,EAGT,GAAI,CAACA,GAAY,CAACA,EAAS,YACzB,MAAO,GAGT,MAAMC,EAAUD,EAChB,IAAIvvN,EAAM,wFAEV,OAAAA,EAAMA,EAAI,MAAM,IAAI,EAAE,KAEtBwvN,EAAQ,MAAQ,EAAE,EAMdA,EAAQ,YACVxvN,GAAO,8CAAgDwvN,EAAQ,UAAY,OAG7ExvN,GAAOwvN,EAAQ,MACfxvN,GAAO,SACAA,CACT,CAEA,MAAMyvN,GAAU,CAKd,YAAYhN,EAAMjkP,EAAM,CACtB,IAAIkxP,EAEJ,MAAMngR,EAAOivB,EAAK,MAAQA,EAAK,UAC/B,IAAImxP,EAAcnxP,EAAK,KAEvB,GAAIikP,EAAK,QAAQlzQ,CAAI,IAAM,GAEzB,OAKE,OAAOkzQ,EAAK,QAAQlzQ,EAAO,KAAK,GAAM,WAMxCogR,EAAclN,EAAK,QAAQlzQ,EAAO,KAAK,GAGzCkzQ,EAAK,SAAS,kBAAmB,CAC/B,KAAAjkP,CACN,CAAK,EACD,IAAI9K,EAAY,GAEZ8K,EAAK,UACP9K,GAAa,gBACbA,GAAa8K,EAAK,WAAa,iBAAiBA,EAAK,IAAI,IAEzD9K,GAAa8K,EAAK,WAAa,SAASA,EAAK,IAAI,GAGnD,IAAI7hB,EAAU6hB,EAAK,SAAWA,EAAK,SAAW,SAAWA,EAAK,SAAW,MACzE7hB,EAEAA,EAAQ,YAAW,EAGnB,MAAMhN,EAAU4kF,GAAc7gE,EAAW/W,CAAO,EAEhD,GAAI6hB,EAAK,SAAU,CACb7hB,IAAY,WAEdhN,EAAQ,KAAO,UAGjB,GAAI,CACF,MAAA8lC,CACD,EAAGjX,EACJ,KAAM,CACJ,UAAA4mE,CACD,EAAG5mE,EAEA,OAAOikP,EAAK,QAAQlzQ,EAAO,OAAO,GAAM,WAE1CkmC,EAAQgtO,EAAK,QAAQlzQ,EAAO,OAAO,GAGjCkmC,IACF9lC,EAAQ,MAAQ8lC,GAGlB,MAAMm6O,EAAWxqL,GAAa3vD,EAE1Bm6O,GACFjgR,EAAQ,aAAa,aAAcigR,CAAQ,CAE9C,CAEDjgR,EAAQ,UAAY2/Q,IAAeK,CAAW,EAE1CnxP,EAAK,QACPA,EAAK,OAAO7uB,EAAS8yQ,CAAI,EAGvBjkP,EAAK,UACP7uB,EAAQ,QAAUyT,GAAK,CACjB,OAAOob,EAAK,SAAY,SAE1BikP,EAAKjkP,EAAK,OAAO,IACR,OAAOA,EAAK,SAAY,YACjCA,EAAK,QAAQpb,EAAGzT,EAAS8yQ,CAAI,CAEvC,GAII,MAAM5kL,EAAWr/D,EAAK,UAAY,MAGlC,IAAIzb,EAAY0/P,EAAK,QAEjB5kL,IAAa,OACV4kL,EAAK,SACRA,EAAK,OAASluL,GAAc,oCAAqC,MAAOkuL,EAAK,UAAU,GAGzF1/P,EAAY0/P,EAAK,SAIjB9yQ,EAAQ,UAAU,IAAI,qBAAqB,EAEvCkuF,IAAa,YACf96E,EAAY0/P,EAAK,cAIpBiN,EAAa3sQ,KAAe,MAAQ2sQ,IAAe,QAAUA,EAAW,YAAYjN,EAAK,aAAa,YAAa9yQ,EAAS6uB,CAAI,CAAC,CACnI,CAEH,CAgBA,SAASqxP,GAAgBlgR,EAAS8yQ,EAAMqN,EAAc,CACpDngR,EAAQ,UAAU,IAAI,qBAAqB,EAE3CA,EAAQ,aAAa,gBAAiB,aAAa,EACnD8yQ,EAAK,GAAG,SAAU,IAAM,CACjBA,EAAK,QAAQ,OACZqN,EAEFngR,EAAQ,SAAW,EAAE8yQ,EAAK,UAAYA,EAAK,YAAW,EAAK,GAG3D9yQ,EAAQ,SAAW,EAAE8yQ,EAAK,UAAY,GAG9C,CAAG,CACH,CAIA,MAAMsN,IAAY,CAChB,KAAM,YACN,UAAW,4BACX,MAAO,WACP,MAAO,GACP,SAAU,GACV,SAAU,UACV,KAAM,CACJ,YAAa,GACb,KAAM,GACN,MAAO,4EACP,UAAW,iBACZ,EACD,QAAS,OACT,OAAQF,EACV,EAGMG,IAAY,CAChB,KAAM,YACN,UAAW,4BACX,MAAO,OACP,MAAO,GACP,SAAU,GACV,SAAU,UACV,KAAM,CACJ,YAAa,GACb,KAAM,GACN,MAAO,uCACP,UAAW,iBACZ,EACD,QAAS,OACT,OAAQ,CAAC19P,EAAImwP,IAAS,CACpBoN,GAAgBv9P,EAAImwP,EAAM,EAAI,CAC/B,CACH,EAGM3kM,IAAc,CAClB,KAAM,QACN,MAAO,QACP,MAAO,GACP,SAAU,GACV,KAAM,CACJ,YAAa,GACb,MAAO,wFACP,UAAW,iBACZ,EACD,QAAS,OACX,EAGMmyM,IAAa,CACjB,KAAM,OACN,MAAO,OACP,MAAO,GACP,SAAU,GACV,KAAM,CACJ,YAAa,GAEb,MAAO,uPACP,UAAW,gBACZ,EACD,QAAS,YACX,EAGMC,IAAmB,CACvB,KAAM,YACN,SAAU,MACV,MAAO,EACP,KAAM,CACJ,YAAa,GAEb,MAAO,kIACP,UAAW,mBACZ,EACD,OAAQ,CAACC,EAAkB1N,IAAS,CAElC,IAAI/1D,EAGA0jE,EAAe,KAMnB,MAAMC,EAAuB,CAAC38P,EAAW2H,IAAQ,CAC/C80P,EAAiB,UAAU,OAAO,oBAAsBz8P,EAAW2H,CAAG,CAC5E,EAMUi1P,EAAyBnlH,GAAW,CACpCuhD,IAAcvhD,IAChBuhD,EAAYvhD,EACZklH,EAAqB,SAAUllH,CAAO,EAE9C,EAEUolH,EAA4B,IAAM,CACtC,IAAIC,EAEJ,GAAI,GAAGA,EAAkB/N,EAAK,aAAe,MAAQ+N,IAAoB,QAAUA,EAAgB,QAAQ,UAAW,GAAG,CACvHF,EAAuB,EAAK,EAExBF,IACF,aAAaA,CAAY,EACzBA,EAAe,MAGjB,MACD,CAEIA,IAEHA,EAAe,WAAW,IAAM,CAC9B,IAAIK,EAEJH,EAAuB,GAAS,GAAAG,EAAmBhO,EAAK,aAAe,MAAQgO,IAAqB,SAAkBA,EAAiB,QAAQ,UAAW,EAAC,EAC3JL,EAAe,IACzB,EAAW3N,EAAK,QAAQ,cAAc,EAEtC,EAEIA,EAAK,GAAG,SAAU8N,CAAyB,EAC3C9N,EAAK,GAAG,eAAgBr/P,GAAK,CACvBq/P,EAAK,YAAcr/P,EAAE,OACvBmtQ,GAER,CAAK,EAEG9N,EAAK,KACPA,EAAK,GAAG,0BAA4B8N,EAEvC,CACH,EAGMG,IAAmB,CACvB,KAAM,UACN,MAAO,EACP,OAAQ,CAACC,EAAgBlO,IAAS,CAChCA,EAAK,GAAG,SAAU,IAAM,CACtBkO,EAAe,UAAYlO,EAAK,UAAY,EAAIA,EAAK,QAAQ,kBAAoBA,EAAK,aAC5F,CAAK,CACF,CACH,EAgBA,SAASmO,GAAYt+P,EAAIu+P,EAAY,CACnCv+P,EAAG,UAAU,OAAO,kBAAmBu+P,CAAU,CACnD,CAEA,MAAM3xJ,GAAG,CAIP,YAAYujJ,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,aAAe,GAGpB,KAAK,eAAiB,GAGtB,KAAK,MAAQ,GAGb,KAAK,0BAA4B,IAAM,GAOvC,KAAK,sBAAwB,MAC9B,CAED,MAAO,CACL,KAAM,CACJ,KAAAA,CACD,EAAG,KACJ,KAAK,aAAe,GACpB,KAAK,eAAiB,CAAC3kM,IAAaiyM,IAAWC,IAAWC,IAAYC,IAAkBQ,GAAgB,EACxGjO,EAAK,SAAS,YAAY,EAE1B,KAAK,eAAe,KAAK,CAACpzP,EAAGC,KAEnBD,EAAE,OAAS,IAAMC,EAAE,OAAS,EACrC,EACD,KAAK,MAAQ,GACb,KAAK,aAAe,GACpB,KAAK,eAAe,QAAQwhQ,GAAiB,CAC3C,KAAK,gBAAgBA,CAAa,CACxC,CAAK,EACDrO,EAAK,GAAG,SAAU,IAAM,CACtB,IAAIsO,GAEHA,EAAgBtO,EAAK,WAAa,MAAQsO,IAAkB,QAAUA,EAAc,UAAU,OAAO,kBAAmBtO,EAAK,YAAW,IAAO,CAAC,CACvJ,CAAK,EACDA,EAAK,GAAG,gBAAiB,IAAM,KAAK,iBAAkB,EACvD,CAMD,gBAAgBuO,EAAa,CACvB,KAAK,aACP,KAAK,MAAM,KAAK,IAAIvB,IAAU,KAAK,KAAMuB,CAAW,CAAC,EAErD,KAAK,eAAe,KAAKA,CAAW,CAEvC,CASD,kBAAmB,CACjB,KAAM,CACJ,SAAAt+Q,EACA,UAAAu1Q,EACA,QAAA3uQ,CACN,EAAQ,KAAK,KAET,GAAI,KAAK,KAAK,OAAO,WAAa,CAAC5G,GAAY,CAACu1Q,EAC9C,OAGF,GAAI,CACF,cAAA1E,CACD,EAAG0E,EAMJ,GAJK,KAAK,KAAK,OAAO,SACpB1E,EAAgB0E,EAAU,WAAW,SAGnC1E,IAAkB,KAAK,sBACzB,OAGF,KAAK,sBAAwBA,EAC7B,MAAM0N,EAAoBhJ,EAAU,WAAW,QAAUA,EAAU,WAAW,UAE9E,GAAI,KAAK,IAAIgJ,CAAiB,EAAI,KAAQ,CAAChJ,EAAU,aAAc,CAEjE2I,GAAYl+Q,EAAU,EAAK,EAC3BA,EAAS,UAAU,OAAO,oBAAoB,EAC9C,MACD,CAEDA,EAAS,UAAU,IAAI,oBAAoB,EAC3C,MAAMw+Q,EAAqB3N,IAAkB0E,EAAU,WAAW,QAAUA,EAAU,WAAW,UAAYA,EAAU,WAAW,QAClI2I,GAAYl+Q,EAAUw+Q,GAAsB3N,CAAa,GAErDjqQ,EAAQ,mBAAqB,QAAUA,EAAQ,mBAAqB,kBACtE5G,EAAS,UAAU,IAAI,qBAAqB,CAE/C,CAEH,CAYA,SAASy+Q,IAAmB7+P,EAAI,CAC9B,MAAM8+P,EAAgB9+P,EAAG,wBACzB,MAAO,CACL,EAAG8+P,EAAc,KACjB,EAAGA,EAAc,IACjB,EAAGA,EAAc,KACrB,CACA,CASA,SAASC,IAA0B/+P,EAAIg/P,EAAYC,EAAa,CAC9D,MAAMH,EAAgB9+P,EAAG,wBAGnB8wP,EAASgO,EAAc,MAAQE,EAC/BjO,EAAS+N,EAAc,OAASG,EAChCC,EAAgBpO,EAASC,EAASD,EAASC,EAC3CoO,GAAWL,EAAc,MAAQE,EAAaE,GAAiB,EAC/DE,GAAWN,EAAc,OAASG,EAAcC,GAAiB,EASjEhJ,EAAS,CACb,EAAG4I,EAAc,KAAOK,EACxB,EAAGL,EAAc,IAAMM,EACvB,EAAGJ,EAAaE,CACpB,EAGE,OAAAhJ,EAAO,UAAY,CACjB,EAAG4I,EAAc,MACjB,EAAGA,EAAc,OACjB,EAAGK,EACH,EAAGC,CACP,EACSlJ,CACT,CAYA,SAASmJ,IAAez0Q,EAAOwkQ,EAAUruM,EAAU,CAEjD,MAAMvjE,EAAQujE,EAAS,SAAS,cAAe,CAC7C,MAAAn2D,EACA,SAAAwkQ,EACA,SAAAruM,CACJ,CAAG,EAED,GAAIvjE,EAAM,YAER,OAAOA,EAAM,YAGf,KAAM,CACJ,QAAAH,CACD,EAAG+xQ,EAGJ,IAAIkQ,EAGAC,EAEJ,GAAIliR,GAAW0jE,EAAS,QAAQ,gBAAkB,GAAO,CACvD,MAAMy+M,EAAgBz+M,EAAS,QAAQ,eAAiB,MACxDw+M,EAAYliR,EAAQ,QAAQmiR,CAAa,EAAIniR,EAE7CA,EAAQ,cAAcmiR,CAAa,CACpC,CAED,OAAAD,EAAYx+M,EAAS,aAAa,UAAWw+M,EAAWnQ,EAAUxkQ,CAAK,EAEnE20Q,IACGnQ,EAAS,aAGZkQ,EAAcP,IAA0BQ,EAAWnQ,EAAS,OAASA,EAAS,GAAK,EAAGA,EAAS,QAAUA,EAAS,GAAK,CAAC,EAFxHkQ,EAAcT,IAAmBU,CAAS,GAMvCx+M,EAAS,aAAa,cAAeu+M,EAAalQ,EAAUxkQ,CAAK,CAC1E,CA4NA,MAAMkkQ,GAAgB,CAKpB,YAAYpnQ,EAAMmC,EAAS,CACzB,KAAK,KAAOnC,EACZ,KAAK,iBAAmB,GAEpBmC,GACF,OAAO,OAAO,KAAMA,CAAO,CAE9B,CAED,gBAAiB,CACf,KAAK,iBAAmB,EACzB,CAEH,CAOA,MAAMynQ,GAAU,CACd,aAAc,CAIZ,KAAK,WAAa,GAKlB,KAAK,SAAW,GAGhB,KAAK,KAAO,OAGZ,KAAK,QAAU,MAChB,CASD,UAAUr0Q,EAAM6iB,EAAIyuF,EAAW,IAAK,CAClC,IAAI6/J,EAAqBC,EAAsBC,EAE1C,KAAK,SAASrxQ,CAAI,IACrB,KAAK,SAASA,CAAI,EAAI,KAGvBmxQ,EAAsB,KAAK,SAASnxQ,CAAI,KAAO,MAAQmxQ,IAAwB,QAAUA,EAAoB,KAAK,CACjH,GAAAtuP,EACA,SAAAyuF,CACN,CAAK,GACA8/J,EAAuB,KAAK,SAASpxQ,CAAI,KAAO,MAAQoxQ,IAAyB,QAAUA,EAAqB,KAAK,CAACE,EAAIC,IAAOD,EAAG,SAAWC,EAAG,QAAQ,GAC1JF,EAAa,KAAK,QAAU,MAAQA,IAAe,QAAUA,EAAW,UAAUrxQ,EAAM6iB,EAAIyuF,CAAQ,CACtG,CAQD,aAAatxG,EAAM6iB,EAAI,CACjB,KAAK,SAAS7iB,CAAI,IAEpB,KAAK,SAASA,CAAI,EAAI,KAAK,SAASA,CAAI,EAAE,OAAOioB,GAAUA,EAAO,KAAOpF,CAAE,GAGzE,KAAK,MACP,KAAK,KAAK,aAAa7iB,EAAM6iB,CAAE,CAElC,CASD,aAAa7iB,KAASmmB,EAAM,CAC1B,IAAIqrP,EAEJ,OAACA,EAAuB,KAAK,SAASxxQ,CAAI,KAAO,MAAQwxQ,IAAyB,QAAUA,EAAqB,QAAQvpP,GAAU,CAEjI9B,EAAK,CAAC,EAAI8B,EAAO,GAAG,MAAM,KAAM9B,CAAI,CAC1C,CAAK,EACMA,EAAK,CAAC,CACd,CAQD,GAAGnmB,EAAM6iB,EAAI,CACX,IAAI4uP,EAAuBC,EAEtB,KAAK,WAAW1xQ,CAAI,IACvB,KAAK,WAAWA,CAAI,EAAI,KAGzByxQ,EAAwB,KAAK,WAAWzxQ,CAAI,KAAO,MAAQyxQ,IAA0B,QAAUA,EAAsB,KAAK5uP,CAAE,GAI5H6uP,EAAc,KAAK,QAAU,MAAQA,IAAgB,QAAUA,EAAY,GAAG1xQ,EAAM6iB,CAAE,CACxF,CAQD,IAAI7iB,EAAM6iB,EAAI,CACZ,IAAI8uP,EAEA,KAAK,WAAW3xQ,CAAI,IAEtB,KAAK,WAAWA,CAAI,EAAI,KAAK,WAAWA,CAAI,EAAE,OAAOwlC,GAAY3iB,IAAO2iB,CAAQ,IAGjFmsO,EAAc,KAAK,QAAU,MAAQA,IAAgB,QAAUA,EAAY,IAAI3xQ,EAAM6iB,CAAE,CACzF,CASD,SAAS7iB,EAAM4M,EAAS,CACtB,IAAIglQ,EAEJ,GAAI,KAAK,KACP,OAAO,KAAK,KAAK,SAAS5xQ,EAAM4M,CAAO,EAGzC,MAAMrM,EAEN,IAAIsxQ,IAAgB7xQ,EAAM4M,CAAO,EACjC,OAACglQ,EAAyB,KAAK,WAAW5xQ,CAAI,KAAO,MAAQ4xQ,IAA2B,QAAUA,EAAuB,QAAQpsO,GAAY,CAC3IA,EAAS,KAAK,KAAMjlC,CAAK,CAC/B,CAAK,EACMA,CACR,CAEH,CAEA,MAAMkyF,GAAY,CAKhB,YAAYs/K,EAAUv+P,EAAW,CAO/B,GAFA,KAAK,QAAUwxE,GAAc,mCAAoC+sL,EAAW,MAAQ,MAAOv+P,CAAS,EAEhGu+P,EAAU,CACZ,MAAMC,EAEN,KAAK,QACLA,EAAM,SAAW,QACjBA,EAAM,IAAM,GACZA,EAAM,IAAMD,EACZC,EAAM,aAAa,OAAQ,cAAc,CAC1C,CAED,KAAK,QAAQ,aAAa,cAAe,MAAM,CAChD,CAOD,iBAAiB56O,EAAOs5C,EAAQ,CACzB,KAAK,UAIN,KAAK,QAAQ,UAAY,OAI3BigM,GAAe,KAAK,QAAS,IAAK,MAAM,EACxC,KAAK,QAAQ,MAAM,gBAAkB,MACrC,KAAK,QAAQ,MAAM,UAAYD,GAAkB,EAAG,EAAGt5O,EAAQ,GAAG,GAElEu5O,GAAe,KAAK,QAASv5O,EAAOs5C,CAAM,EAE7C,CAED,SAAU,CACR,IAAIuhM,GAECA,EAAgB,KAAK,WAAa,MAAQA,IAAkB,QAAUA,EAAc,YACvF,KAAK,QAAQ,SAGf,KAAK,QAAU,IAChB,CAEH,CAUA,MAAMyC,GAAQ,CAMZ,YAAYvC,EAAUruM,EAAUn2D,EAAO,CACrC,KAAK,SAAWm2D,EAChB,KAAK,KAAOquM,EACZ,KAAK,MAAQxkQ,EAGb,KAAK,QAAU,OAGf,KAAK,YAAc,OAGnB,KAAK,MAAQ,OACb,KAAK,oBAAsB,EAC3B,KAAK,qBAAuB,EAC5B,KAAK,MAAQ,OAAO,KAAK,KAAK,CAAC,GAAK,OAAO,KAAK,KAAK,KAAK,GAAK,EAC/D,KAAK,OAAS,OAAO,KAAK,KAAK,CAAC,GAAK,OAAO,KAAK,KAAK,MAAM,GAAK,EACjE,KAAK,WAAa,GAClB,KAAK,SAAW,GAChB,KAAK,WAAa,GAGlB,KAAK,MAAQijQ,GAAW,KAEpB,KAAK,KAAK,KACZ,KAAK,KAAO,KAAK,KAAK,KACb,KAAK,KAAK,IACnB,KAAK,KAAO,QAEZ,KAAK,KAAO,OAGd,KAAK,SAAS,SAAS,cAAe,CACpC,QAAS,IACf,CAAK,CACF,CAED,mBAAoB,CACd,KAAK,aAAe,CAAC,KAAK,gBAAe,GAE3C,WAAW,IAAM,CACX,KAAK,cACP,KAAK,YAAY,UACjB,KAAK,YAAc,OAEtB,EAAE,GAAI,CAEV,CASD,KAAKwB,EAAQhD,EAAQ,CACnB,GAAI,KAAK,OAAS,KAAK,eAAc,EACnC,GAAK,KAAK,YAKH,CACL,MAAMiD,EAAgB,KAAK,YAAY,QAEnCA,GAAiB,CAACA,EAAc,eAClC,KAAK,MAAM,UAAU,QAAQA,CAAa,CAE7C,KAXsB,CACrB,MAAMC,EAAiB,KAAK,SAAS,aAAa,iBAElD,KAAK,KAAK,MAAQ,KAAK,MAAM,aAAe,KAAK,KAAK,KAAO,GAAO,IAAI,EACxE,KAAK,YAAc,IAAI7/K,IAAY6/K,EAAgB,KAAK,MAAM,SAAS,CAC/E,CASQ,KAAK,SAAW,CAAClD,GAIjB,KAAK,SAAS,SAAS,cAAe,CACxC,QAAS,KACT,OAAAgD,CACD,GAAE,mBAIC,KAAK,kBACP,KAAK,QAAUptL,GAAc,YAAa,KAAK,EAG3C,KAAK,qBACP,KAAK,UAAUotL,CAAM,IAGvB,KAAK,QAAUptL,GAAc,gBAAiB,KAAK,EACnD,KAAK,QAAQ,UAAY,KAAK,KAAK,MAAQ,IAGzCoqL,GAAU,KAAK,OACjB,KAAK,MAAM,kBAAkB,EAAI,EAEpC,CAQD,UAAUgD,EAAQ,CAChB,IAAIG,EAAgBC,EAEpB,GAAI,CAAC,KAAK,eAAc,GAAM,CAAC,KAAK,SAAW,KAAK,SAAS,SAAS,mBAAoB,CACxF,QAAS,KACT,OAAAJ,CACD,GAAE,iBACD,OAGF,MAAMK,EAEN,KAAK,QACL,KAAK,kBAAiB,EAElB,KAAK,KAAK,SACZA,EAAa,OAAS,KAAK,KAAK,QAGlCA,EAAa,KAAOF,EAAiB,KAAK,KAAK,OAAS,MAAQA,IAAmB,OAASA,EAAiB,GAC7GE,EAAa,KAAOD,EAAiB,KAAK,KAAK,OAAS,MAAQA,IAAmB,OAASA,EAAiB,GAC7G,KAAK,MAAQ5B,GAAW,QAEpB6B,EAAa,SACf,KAAK,SAAQ,GAEbA,EAAa,OAAS,IAAM,CAC1B,KAAK,SAAQ,CACrB,EAEMA,EAAa,QAAU,IAAM,CAC3B,KAAK,QAAO,CACpB,EAEG,CAQD,SAASC,EAAO,CACd,KAAK,MAAQA,EACb,KAAK,SAAW,GAChB,KAAK,SAAWA,EAAM,IACvB,CAMD,UAAW,CACT,KAAK,MAAQ9B,GAAW,OAEpB,KAAK,OAAS,KAAK,UACrB,KAAK,SAAS,SAAS,eAAgB,CACrC,MAAO,KAAK,MACZ,QAAS,IACjB,CAAO,EAEG,KAAK,MAAM,UAAY,KAAK,MAAM,eAAiB,CAAC,KAAK,QAAQ,aACnE,KAAK,OAAM,EACX,KAAK,MAAM,kBAAkB,EAAI,IAG/B,KAAK,QAAUA,GAAW,QAAU,KAAK,QAAUA,GAAW,QAChE,KAAK,kBAAiB,EAG3B,CAMD,SAAU,CACR,KAAK,MAAQA,GAAW,MAEpB,KAAK,QACP,KAAK,aAAY,EACjB,KAAK,SAAS,SAAS,eAAgB,CACrC,MAAO,KAAK,MACZ,QAAS,GACT,QAAS,IACjB,CAAO,EACD,KAAK,SAAS,SAAS,YAAa,CAClC,MAAO,KAAK,MACZ,QAAS,IACjB,CAAO,EAEJ,CAMD,WAAY,CACV,OAAO,KAAK,SAAS,aAAa,mBAAoB,KAAK,QAAUA,GAAW,QAAS,IAAI,CAC9F,CAMD,SAAU,CACR,OAAO,KAAK,QAAUA,GAAW,KAClC,CAMD,gBAAiB,CACf,OAAO,KAAK,OAAS,OACtB,CASD,iBAAiBx5O,EAAOs5C,EAAQ,CAC9B,GAAK,KAAK,UAIN,KAAK,aACP,KAAK,YAAY,iBAAiBt5C,EAAOs5C,CAAM,EAG7C,MAAK,SAAS,SAAS,gBAAiB,CAC1C,QAAS,KACT,MAAAt5C,EACA,OAAAs5C,CACD,GAAE,mBAIHigM,GAAe,KAAK,QAASv5O,EAAOs5C,CAAM,EAEtC,KAAK,eAAc,GAAM,CAAC,KAAK,QAAO,IAAI,CAC5C,MAAMiiM,EAAsB,CAAC,KAAK,qBAAuBv7O,EACzD,KAAK,oBAAsBA,EAC3B,KAAK,qBAAuBs5C,EAExBiiM,EACF,KAAK,UAAU,EAAK,EAEpB,KAAK,kBAAiB,EAGpB,KAAK,OACP,KAAK,SAAS,SAAS,kBAAmB,CACxC,MAAO,KAAK,MACZ,MAAAv7O,EACA,OAAAs5C,EACA,QAAS,IACnB,CAAS,CAEJ,CACF,CAMD,YAAa,CACX,OAAO,KAAK,SAAS,aAAa,oBAAqB,KAAK,kBAAoB,KAAK,QAAUkgM,GAAW,MAAO,IAAI,CACtH,CAMD,mBAAoB,CAMlB,GAAI,CAAC,KAAK,eAAc,GAAM,CAAC,KAAK,SAAW,CAAC,KAAK,KAAK,OACxD,OAGF,MAAMt0D,EAEN,KAAK,QACCs2D,EAAa,KAAK,SAAS,aAAa,mBAAoB,KAAK,oBAAqB,IAAI,GAE5F,CAACt2D,EAAM,QAAQ,iBAAmBs2D,EAAa,SAASt2D,EAAM,QAAQ,gBAAiB,EAAE,KAC3FA,EAAM,MAAQs2D,EAAa,KAC3Bt2D,EAAM,QAAQ,gBAAkB,OAAOs2D,CAAU,EAEpD,CAMD,gBAAiB,CACf,OAAO,KAAK,SAAS,aAAa,wBAAyB,KAAK,eAAc,EAAI,IAAI,CACvF,CAMD,UAAW,CACL,KAAK,SAAS,SAAS,kBAAmB,CAC5C,QAAS,IACV,GAAE,kBAIH,KAAK,KAAK,EAAI,CACf,CAMD,iBAAkB,CAChB,OAAO,KAAK,SAAS,aAAa,uBAAwB,KAAK,UAAS,EAAI,IAAI,CACjF,CAMD,SAAU,CACR,KAAK,SAAW,GAChB,KAAK,MAAQ,OAET,MAAK,SAAS,SAAS,iBAAkB,CAC3C,QAAS,IACV,GAAE,mBAIH,KAAK,OAAM,EAEP,KAAK,cACP,KAAK,YAAY,UACjB,KAAK,YAAc,QAGjB,KAAK,kBAAoB,KAAK,UAChC,KAAK,QAAQ,OAAS,KACtB,KAAK,QAAQ,QAAU,KACvB,KAAK,QAAU,QAElB,CAMD,cAAe,CACb,GAAI,KAAK,MAAO,CACd,IAAIC,EAAuBC,EAE3B,IAAIC,EAAa/tL,GAAc,kBAAmB,KAAK,EACvD+tL,EAAW,WAAaF,GAAyBC,EAAyB,KAAK,SAAS,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,YAAc,MAAQD,IAA0B,OAASA,EAAwB,GAClQE,EAEA,KAAK,SAAS,aAAa,sBAAuBA,EAAY,IAAI,EAClE,KAAK,QAAU/tL,GAAc,0CAA2C,KAAK,EAC7E,KAAK,QAAQ,YAAY+tL,CAAU,EACnC,KAAK,MAAM,UAAU,UAAY,GACjC,KAAK,MAAM,UAAU,YAAY,KAAK,OAAO,EAC7C,KAAK,MAAM,kBAAkB,EAAI,EACjC,KAAK,kBAAiB,CACvB,CACF,CAMD,QAAS,CACP,GAAI,KAAK,YAAc,CAAC,KAAK,QAC3B,OAKF,GAFA,KAAK,WAAa,GAEd,KAAK,QAAUnC,GAAW,MAAO,CACnC,KAAK,aAAY,EACjB,MACD,CAED,GAAI,KAAK,SAAS,SAAS,gBAAiB,CAC1C,QAAS,IACV,GAAE,iBACD,OAGF,MAAMoC,EAAkB,WAAY,KAAK,QAErC,KAAK,iBAaHA,GAAkB,KAAK,QAAU,CAAC,KAAK,MAAM,UAAY9pE,GAAQ,IACnE,KAAK,WAAa,GAKlB,KAAK,QAAQ,OAAQ,EAAC,MAAM,IAAM,CAAE,GAAE,QAAQ,IAAM,CAClD,KAAK,WAAa,GAClB,KAAK,YAAW,CAC1B,CAAS,GAED,KAAK,YAAW,EAET,KAAK,OAAS,CAAC,KAAK,QAAQ,YACrC,KAAK,MAAM,UAAU,YAAY,KAAK,OAAO,CAEhD,CAQD,UAAW,CACL,KAAK,SAAS,SAAS,kBAAmB,CAC5C,QAAS,IACV,GAAE,kBAAoB,CAAC,KAAK,QAIzB,KAAK,eAAgB,GAAI,KAAK,YAAc,CAACA,KAG/C,KAAK,YAAW,EACP,KAAK,WACd,KAAK,KAAK,GAAO,EAAI,EAGnB,KAAK,MAAM,eACb,KAAK,MAAM,cAAc,aAAa,cAAe,OAAO,EAE/D,CAMD,YAAa,CACX,KAAK,SAAS,SAAS,oBAAqB,CAC1C,QAAS,IACf,CAAK,EAEG,KAAK,OAAS,KAAK,MAAM,eAC3B,KAAK,MAAM,cAAc,aAAa,cAAe,MAAM,CAE9D,CAMD,QAAS,CACP,KAAK,WAAa,GAEd,MAAK,SAAS,SAAS,gBAAiB,CAC1C,QAAS,IACV,GAAE,mBAIC,KAAK,SAAW,KAAK,QAAQ,YAC/B,KAAK,QAAQ,SAGX,KAAK,aAAe,KAAK,YAAY,SACvC,KAAK,YAAY,QAAQ,SAE5B,CAMD,aAAc,CACP,KAAK,aAIN,KAAK,SAAS,SAAS,qBAAsB,CAC/C,QAAS,IACV,GAAE,mBAKC,KAAK,OAAS,KAAK,SAAW,CAAC,KAAK,QAAQ,YAC9C,KAAK,MAAM,UAAU,YAAY,KAAK,OAAO,GAG3C,KAAK,QAAU0nE,GAAW,QAAU,KAAK,QAAUA,GAAW,QAChE,KAAK,kBAAiB,GAEzB,CAEH,CAYA,MAAM4R,IAAsB,EAY5B,SAASvO,GAAa9B,EAAUruM,EAAUn2D,EAAO,CAC/C,MAAMnI,EAAUs+D,EAAS,sBAAsBquM,EAAUxkQ,CAAK,EAG9D,IAAIumQ,EACJ,KAAM,CACJ,QAAAnqQ,CACD,EAAG+5D,EAGJ,GAAI/5D,EAAS,CACXmqQ,EAAY,IAAIC,GAAUpqQ,EAASooQ,EAAU,EAAE,EAC/C,IAAIkB,EAEAvvM,EAAS,KACXuvM,EAAevvM,EAAS,KAAK,aAE7BuvM,EAAeJ,GAAgBlpQ,EAAS+5D,CAAQ,EAGlD,MAAM6vM,EAAcH,GAAezpQ,EAASspQ,EAAclB,EAAUxkQ,CAAK,EACzEumQ,EAAU,OAAO1uQ,EAAQ,MAAOA,EAAQ,OAAQmuQ,CAAW,CAC5D,CAED,OAAAnuQ,EAAQ,SAAQ,EAEZ0uQ,GACF1uQ,EAAQ,iBAAiB,KAAK,KAAKA,EAAQ,MAAQ0uQ,EAAU,OAAO,EAAG,KAAK,KAAK1uQ,EAAQ,OAAS0uQ,EAAU,OAAO,CAAC,EAG/G1uQ,CACT,CAaA,SAAS4uQ,IAAczmQ,EAAOm2D,EAAU,CACtC,MAAMquM,EAAWruM,EAAS,YAAYn2D,CAAK,EAE3C,GAAI,CAAAm2D,EAAS,SAAS,gBAAiB,CACrC,MAAAn2D,EACA,SAAAwkQ,CACD,GAAE,iBAIH,OAAO8B,GAAa9B,EAAUruM,EAAUn2D,CAAK,CAC/C,CAEA,MAAM80Q,GAAc,CAIlB,YAAYvP,EAAM,CAChB,KAAK,KAAOA,EAEZ,KAAK,MAAQ,KAAK,IAAIA,EAAK,QAAQ,QAAQ,CAAC,EAAIA,EAAK,QAAQ,QAAQ,CAAC,EAAI,EAAGsP,GAAmB,EAGhG,KAAK,aAAe,EACrB,CAQD,WAAWn/P,EAAM,CACf,KAAM,CACJ,KAAA6vP,CACD,EAAG,KAEJ,GAAIA,EAAK,SAAS,UAAU,EAAE,iBAC5B,OAGF,KAAM,CACJ,QAAAwP,CACN,EAAQxP,EAAK,QACHsL,EAAYn7P,IAAS,OAAY,GAAOA,GAAQ,EACtD,IAAI,EAEJ,IAAK,EAAI,EAAG,GAAKq/P,EAAQ,CAAC,EAAG,IAC3B,KAAK,iBAAiBxP,EAAK,WAAasL,EAAY,EAAI,CAAC,EAAE,EAI7D,IAAK,EAAI,EAAG,GAAKkE,EAAQ,CAAC,EAAG,IAC3B,KAAK,iBAAiBxP,EAAK,WAAasL,EAAY,CAAC,EAAI,EAAE,CAE9D,CAMD,iBAAiB7gG,EAAc,CAC7B,MAAMhwK,EAAQ,KAAK,KAAK,eAAegwK,CAAY,EAEnD,IAAIn4K,EAAU,KAAK,kBAAkBmI,CAAK,EAErCnI,IAEHA,EAAU4uQ,IAAczmQ,EAAO,KAAK,IAAI,EAEpCnI,GACF,KAAK,WAAWA,CAAO,EAG5B,CAOD,kBAAkBktQ,EAAO,CACvB,IAAIltQ,EAAU,KAAK,kBAAkBktQ,EAAM,KAAK,EAEhD,OAAKltQ,IAEHA,EAAU,KAAK,KAAK,sBAAsBktQ,EAAM,KAAMA,EAAM,KAAK,EACjE,KAAK,WAAWltQ,CAAO,GAIzBA,EAAQ,SAASktQ,CAAK,EACfltQ,CACR,CAMD,WAAWA,EAAS,CAMlB,GAJA,KAAK,cAAcA,EAAQ,KAAK,EAEhC,KAAK,aAAa,KAAKA,CAAO,EAE1B,KAAK,aAAa,OAAS,KAAK,MAAO,CAEzC,MAAMm9Q,EAAgB,KAAK,aAAa,UAAUjrQ,GACzC,CAACA,EAAK,YAAc,CAACA,EAAK,QAClC,EAEGirQ,IAAkB,IACA,KAAK,aAAa,OAAOA,EAAe,CAAC,EAAE,CAAC,EAEpD,QAAO,CAEtB,CACF,CAQD,cAAch1Q,EAAO,CACnB,MAAMg1Q,EAAgB,KAAK,aAAa,UAAUjrQ,GAAQA,EAAK,QAAU/J,CAAK,EAE1Eg1Q,IAAkB,IACpB,KAAK,aAAa,OAAOA,EAAe,CAAC,CAE5C,CAOD,kBAAkBh1Q,EAAO,CACvB,OAAO,KAAK,aAAa,KAAKnI,GAAWA,EAAQ,QAAUmI,CAAK,CACjE,CAED,SAAU,CACR,KAAK,aAAa,QAAQnI,GAAWA,EAAQ,QAAO,CAAE,EAEtD,KAAK,aAAe,EACrB,CAEH,CAWA,MAAM4vQ,YAAuBf,GAAU,CAMrC,aAAc,CACZ,IAAIC,EAEJ,IAAIC,EAAW,EACf,MAAMC,GAAcF,EAAgB,KAAK,WAAa,MAAQA,IAAkB,OAAS,OAASA,EAAc,WAE5GE,GAAc,WAAYA,EAE5BD,EAAWC,EAAW,OACbA,GAAc,YAAaA,IAE/BA,EAAW,QACdA,EAAW,MAAQ,KAAK,uBAAuBA,EAAW,OAAO,GAG/DA,EAAW,QACbD,EAAWC,EAAW,MAAM,SAKhC,MAAMj0Q,EAAQ,KAAK,SAAS,WAAY,CACtC,WAAAi0Q,EACA,SAAAD,CACN,CAAK,EACD,OAAO,KAAK,aAAa,WAAYh0Q,EAAM,SAAUi0Q,CAAU,CAChE,CAQD,sBAAsBC,EAAW9mQ,EAAO,CACtC,OAAO,IAAI+mQ,IAAQD,EAAW,KAAM9mQ,CAAK,CAC1C,CAaD,YAAYA,EAAO,CACjB,IAAIgnQ,EAEJ,MAAMH,GAAcG,EAAiB,KAAK,WAAa,MAAQA,IAAmB,OAAS,OAASA,EAAe,WAGnH,IAAIC,EAAiB,GAEjB,MAAM,QAAQJ,CAAU,EAE1BI,EAAiBJ,EAAW7mQ,CAAK,EACxB6mQ,GAAc,YAAaA,IAK/BA,EAAW,QACdA,EAAW,MAAQ,KAAK,uBAAuBA,EAAW,OAAO,GAGnEI,EAAiBJ,EAAW,MAAM7mQ,CAAK,GAGzC,IAAIwkQ,EAAWyC,EAEXzC,aAAoB,UACtBA,EAAW,KAAK,sBAAsBA,CAAQ,GAKhD,MAAM5xQ,EAAQ,KAAK,SAAS,WAAY,CACtC,SAAU4xQ,GAAY,CAAE,EACxB,MAAAxkQ,CACN,CAAK,EACD,OAAO,KAAK,aAAa,WAAYpN,EAAM,SAAUoN,CAAK,CAC3D,CAUD,uBAAuBknQ,EAAgB,CACrC,IAAIC,EAAgBC,EAEpB,OAAKD,EAAiB,KAAK,WAAa,MAAQA,IAAmB,QAAUA,EAAe,WAAaC,EAAiB,KAAK,WAAa,MAAQA,IAAmB,QAAUA,EAAe,cACvLjE,IAAsB,KAAK,QAAQ,SAAU,KAAK,QAAQ,cAAe+D,CAAc,GAAK,GAG9F,CAACA,CAAc,CACvB,CASD,sBAAsBz0Q,EAAS,CAE7B,MAAM+xQ,EAAW,CACf,QAAA/xQ,CACN,EACU40Q,EAEN50Q,EAAQ,UAAY,IAAMA,EAAUA,EAAQ,cAAc,GAAG,EAE7D,GAAI40Q,EAAQ,CAGV7C,EAAS,IAAM6C,EAAO,QAAQ,SAAWA,EAAO,KAE5CA,EAAO,QAAQ,aACjB7C,EAAS,OAAS6C,EAAO,QAAQ,YAGnC7C,EAAS,MAAQ6C,EAAO,QAAQ,UAAY,SAASA,EAAO,QAAQ,UAAW,EAAE,EAAI,EACrF7C,EAAS,OAAS6C,EAAO,QAAQ,WAAa,SAASA,EAAO,QAAQ,WAAY,EAAE,EAAI,EAExF7C,EAAS,EAAIA,EAAS,MACtBA,EAAS,EAAIA,EAAS,OAElB6C,EAAO,QAAQ,WACjB7C,EAAS,KAAO6C,EAAO,QAAQ,UAGjC,MAAMC,EAAc70Q,EAAQ,cAAc,KAAK,EAE/C,GAAI60Q,EAAa,CACf,IAAIC,EAIJ/C,EAAS,KAAO8C,EAAY,YAAcA,EAAY,IACtD9C,EAAS,KAAO+C,EAAwBD,EAAY,aAAa,KAAK,KAAO,MAAQC,IAA0B,OAASA,EAAwB,EACjJ,EAEGF,EAAO,QAAQ,aAAeA,EAAO,QAAQ,WAC/C7C,EAAS,aAAe,GAE3B,CAED,OAAO,KAAK,aAAa,cAAeA,EAAU/xQ,EAAS40Q,CAAM,CAClE,CAUD,aAAa7C,EAAUxkQ,EAAO,CAC5B,OAAOsmQ,GAAa9B,EAAU,KAAMxkQ,CAAK,CAC1C,CAEH,CAYA,MAAMi1Q,GAAc,KAOpB,MAAMC,GAAO,CAIX,YAAY3P,EAAM,CAChB,KAAK,KAAOA,EACZ,KAAK,SAAW,GAChB,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,UAAY,GAMjB,KAAK,UAAY,OAGjB,KAAK,cAAgB,GAGrB,KAAK,aAAe,GAGpB,KAAK,oBAAsB,GAG3B,KAAK,kBAAoB,GAMzB,KAAK,aAAe,OAMpB,KAAK,gBAAkB,OAMvB,KAAK,gBAAkB,OAMvB,KAAK,gBAAkB,OAMvB,KAAK,aAAe,OACpB,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,EAE/CA,EAAK,GAAG,eAAgB,KAAK,YAAY,CAC1C,CAED,MAAO,CACL,KAAK,aAAY,EAEjB,KAAK,OAAM,CACZ,CAED,OAAQ,CACN,GAAI,KAAK,UAAY,KAAK,WAAa,KAAK,UAI1C,OAGF,MAAMR,EAAQ,KAAK,KAAK,UACxB,KAAK,OAAS,GACd,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,KAAK,KAAK,QAAQ,sBAE/BA,GAASA,EAAM,cAAgBA,EAAM,OAAS,KAAK,KAAK,QAAQ,oBAClE,KAAK,UAAY,GAGnB,KAAK,iBAAgB,EAErB,WAAW,IAAM,CACf,KAAK,OAAM,CACZ,EAAE,KAAK,aAAe,GAAK,CAAC,CAC9B,CAID,cAAe,CAGb,GAFA,KAAK,KAAK,IAAI,eAAgB,KAAK,YAAY,EAE3C,CAAC,KAAK,UAAW,CACnB,MAAMA,EAAQ,KAAK,KAAK,UACxB,KAAK,UAAY,GACjB,KAAK,UAAY,GACjB,KAAK,UAAY,KAAK,KAAK,QAAQ,sBAE/BA,GAASA,EAAM,WAAW,QAAUA,EAAM,OAAS,KAAK,KAAK,QAAQ,oBACvE,KAAK,UAAY,GAGnB,KAAK,iBAAgB,CACtB,CACF,CAID,kBAAmB,CACjB,KAAM,CACJ,KAAAQ,CACD,EAAG,KACER,EAAQ,KAAK,KAAK,UAClB,CACJ,QAAA3oQ,CACD,EAAGmpQ,EAsBJ,GApBInpQ,EAAQ,wBAA0B,QACpCA,EAAQ,gBAAkB,GAC1B,KAAK,aAAe,QACXA,EAAQ,wBAA0B,QAC3CA,EAAQ,gBAAkB,GAC1B,KAAK,UAAY,EACjB,KAAK,aAAe,QACX,KAAK,WAAampQ,EAAK,oBAEhC,KAAK,aAAeA,EAAK,oBAEzB,KAAK,aAAe,KAAK,KAAK,eAAc,EAG9C,KAAK,aAAeR,GAAU,KAA2B,OAASA,EAAM,wBACxEQ,EAAK,WAAW,UAEhB,KAAK,cAAgB,GAAQ,KAAK,WAAa,KAAK,UAAY,IAChE,KAAK,aAAe,EAAQ,KAAK,eAAkBR,GAAU,KAA2B,OAASA,EAAM,QAAQ,oBAAsB,CAAC,KAAK,WAAa,CAACQ,EAAK,WAAW,UAAS,GAE9K,CAAC,KAAK,aACR,KAAK,oBAAsB,GAEvB,KAAK,WAAaR,IACpBA,EAAM,oBAAmB,EACzBA,EAAM,oBAAmB,OAEtB,CACL,IAAIoQ,EAEJ,KAAK,qBAAuBA,EAAwB/4Q,EAAQ,mBAAqB,MAAQ+4Q,IAA0B,OAASA,EAAwB,EACrJ,CAKD,GAHA,KAAK,kBAAoB,CAAC,KAAK,qBAAuB,KAAK,KAAK,QAAQ,UAAYF,GACpF,KAAK,gBAAkB,KAAK,oBAAsB1P,EAAK,QAAUA,EAAK,GAElE,CAAC,KAAK,cAAe,CACvB,KAAK,UAAY,EACjB,KAAK,aAAe,GACpB,KAAK,kBAAoB,GACzB,KAAK,oBAAsB,GAEvB,KAAK,YACHA,EAAK,UACPA,EAAK,QAAQ,MAAM,QAAU,OAAO0P,EAAW,GAGjD1P,EAAK,eAAe,CAAC,GAGvB,MACD,CAED,GAAI,KAAK,cAAgB,KAAK,cAAgB,KAAK,aAAa,UAAW,CACzE,IAAIkH,EAGJ,KAAK,aAAe,GACpB,KAAK,gBAAkB,KAAK,KAAK,UACjC,KAAK,iBAAmBA,EAAuB,KAAK,KAAK,aAAe,MAAQA,IAAyB,OAAS,OAASA,EAAqB,cAE5IlH,EAAK,YACPA,EAAK,UAAU,MAAM,SAAW,SAChCA,EAAK,UAAU,MAAM,MAAQA,EAAK,aAAa,EAAI,KAE3D,MACM,KAAK,aAAe,GAGlB,KAAK,WAEH,KAAK,qBACHA,EAAK,UACPA,EAAK,QAAQ,MAAM,QAAU,OAAO0P,EAAW,GAGjD1P,EAAK,eAAe,CAAC,IAEjB,KAAK,mBAAqBA,EAAK,KACjCA,EAAK,GAAG,MAAM,QAAU,OAAO0P,EAAW,GAGxC1P,EAAK,UACPA,EAAK,QAAQ,MAAM,QAAU,MAI7B,KAAK,eACP,KAAK,uBAAsB,EAEvB,KAAK,eAEP,KAAK,aAAa,MAAM,WAAa,YAGrC,KAAK,aAAa,MAAM,QAAU,OAAO0P,EAAW,KAG/C,KAAK,YAGV1P,EAAK,WAAW,YAAY,CAAC,IAC/BA,EAAK,WAAW,YAAY,CAAC,EAAE,GAAG,MAAM,QAAU,QAGhDA,EAAK,WAAW,YAAY,CAAC,IAC/BA,EAAK,WAAW,YAAY,CAAC,EAAE,GAAG,MAAM,QAAU,QAGhD,KAAK,cACHA,EAAK,WAAW,IAAM,IAExBA,EAAK,WAAW,gBAChBA,EAAK,WAAW,UAIvB,CAID,QAAS,CACH,KAAK,WAAa,KAAK,eAAiB,KAAK,cAAgB,KAAK,aAAa,UAAY,MAO7F,IAAI,QAAQzvQ,GAAW,CACrB,IAAIs/Q,EAAU,GACVC,EAAa,GACjB1M,IAEA,KAAK,YAAY,EAAE,QAAQ,IAAM,CAC/ByM,EAAU,GAELC,GACHv/Q,EAAQ,EAAI,CAExB,CAAS,EACD,WAAW,IAAM,CACfu/Q,EAAa,GAETD,GACFt/Q,EAAQ,EAAI,CAEf,EAAE,EAAE,EACL,WAAWA,EAAS,GAAG,CACxB,GAAE,QAAQ,IAAM,KAAK,UAAW,GAEjC,KAAK,UAAS,CAEjB,CAID,WAAY,CACV,IAAIw/Q,EAAoBC,GAEvBD,EAAqB,KAAK,KAAK,WAAa,MAAQA,IAAuB,QAAUA,EAAmB,MAAM,YAAY,6BAA8B,KAAK,UAAY,IAAI,EAC9K,KAAK,KAAK,SAAS,KAAK,UAAY,wBAA0B,uBAAuB,EAErF,KAAK,KAAK,SAEV,eAAiB,KAAK,UAAY,KAAO,MAAM,GAC9CC,EAAsB,KAAK,KAAK,WAAa,MAAQA,IAAwB,QAAUA,EAAoB,UAAU,OAAO,mBAAoB,KAAK,SAAS,EAE3J,KAAK,WACH,KAAK,eAEP,KAAK,aAAa,MAAM,QAAU,KAGpC,KAAK,oBAAmB,GACf,KAAK,WACd,KAAK,sBAAqB,EAGvB,KAAK,eACR,KAAK,qBAAoB,CAE5B,CAID,sBAAuB,CACrB,KAAM,CACJ,KAAAhQ,CACD,EAAG,KAWJ,GAVA,KAAK,OAAS,KAAK,UACnB,KAAK,SAAW,KAAK,UACrB,KAAK,UAAY,GACjB,KAAK,UAAY,GACjBA,EAAK,SAAS,KAAK,OAAS,sBAAwB,qBAAqB,EAEzEA,EAAK,SAEL,eAAiB,KAAK,OAAS,QAAU,SAAS,EAE9C,KAAK,SACPA,EAAK,QAAO,UACH,KAAK,OAAQ,CACtB,IAAI+N,EAEA,KAAK,cAAgB/N,EAAK,YAC5BA,EAAK,UAAU,MAAM,SAAW,UAChCA,EAAK,UAAU,MAAM,MAAQ,SAG9B+N,EAAkB/N,EAAK,aAAe,MAAQ+N,IAAoB,QAAUA,EAAgB,qBAC9F,CACF,CAID,qBAAsB,CACpB,KAAM,CACJ,KAAA/N,CACD,EAAG,KAEA,KAAK,eACH,KAAK,cAAgB,KAAK,iBAAmB,KAAK,kBACpD,KAAK,WAAW,KAAK,gBAAiB,YAAa,oBAAoB,EAEvE,KAAK,WAAW,KAAK,gBAAiB,YAAa,MAAM,GAGvDA,EAAK,YACPA,EAAK,UAAU,sBAEf,KAAK,WAAWA,EAAK,UAAU,UAAW,YAAaA,EAAK,UAAU,oBAAmB,CAAE,IAI3F,KAAK,mBAAqBA,EAAK,IACjC,KAAK,WAAWA,EAAK,GAAI,UAAW,OAAOA,EAAK,QAAQ,SAAS,CAAC,EAGhE,KAAK,qBAAuBA,EAAK,SACnC,KAAK,WAAWA,EAAK,QAAS,UAAW,GAAG,CAE/C,CAID,uBAAwB,CACtB,KAAM,CACJ,KAAAA,CACD,EAAG,KAEA,KAAK,cACP,KAAK,uBAAuB,EAAI,EAI9B,KAAK,mBAAqBA,EAAK,UAAY,KAAQA,EAAK,IAC1D,KAAK,WAAWA,EAAK,GAAI,UAAW,GAAG,EAGrC,KAAK,qBAAuBA,EAAK,SACnC,KAAK,WAAWA,EAAK,QAAS,UAAW,GAAG,CAE/C,CAOD,uBAAuBkK,EAAS,CAC9B,GAAI,CAAC,KAAK,aAAc,OACxB,KAAM,CACJ,KAAAlK,CACD,EAAG,KACE,CACJ,UAAAiQ,CACN,EAAQ,KAAK,aACH,CACJ,UAAAzK,EACA,aAAArF,CACD,EAAGH,EAEJ,GAAI,KAAK,cAAgBiQ,GAAa,KAAK,iBAAmB,KAAK,gBAAiB,CAClF,MAAMC,EAAmB,CAAC/P,EAAa,GAAK,KAAK,aAAa,EAAI8P,EAAU,GAAKA,EAAU,EACrFE,EAAmB,CAAChQ,EAAa,GAAK,KAAK,aAAa,EAAI8P,EAAU,GAAKA,EAAU,EACrFG,EAAmBjQ,EAAa,EAAI8P,EAAU,EAC9CI,EAAmBlQ,EAAa,EAAI8P,EAAU,EAEhD/F,GACF,KAAK,WAAW,KAAK,gBAAiB,YAAa1M,GAAkB0S,EAAkBC,CAAgB,CAAC,EAExG,KAAK,WAAW,KAAK,gBAAiB,YAAa3S,GAAkB4S,EAAkBC,CAAgB,CAAC,IAExGpmH,GAAa,KAAK,gBAAiBimH,EAAkBC,CAAgB,EACrElmH,GAAa,KAAK,gBAAiBmmH,EAAkBC,CAAgB,EAExE,CAEG7K,IACF5C,GAAe4C,EAAU,IAAKyK,GAAa,KAAK,YAAY,EAC5DzK,EAAU,cAAgB,KAAK,aAAa,EAAIA,EAAU,MAEtD0E,EACF,KAAK,WAAW1E,EAAU,UAAW,YAAaA,EAAU,oBAAmB,CAAE,EAEjFA,EAAU,oBAAmB,EAGlC,CASD,WAAWv4Q,EAAQ+uB,EAAMqrC,EAAW,CAClC,GAAI,CAAC,KAAK,UAAW,CACnBp6D,EAAO,MAAM+uB,CAAI,EAAIqrC,EACrB,MACD,CAED,KAAM,CACJ,WAAAipN,CACN,EAAQ,KAAK,KAGHC,EAAY,CAChB,SAAU,KAAK,UACf,OAAQ,KAAK,KAAK,QAAQ,OAC1B,WAAY,IAAM,CACXD,EAAW,iBAAiB,QAC/B,KAAK,qBAAoB,CAE5B,EACD,OAAArjR,CACN,EACIsjR,EAAUv0P,CAAI,EAAIqrC,EAClBipN,EAAW,gBAAgBC,CAAS,CACrC,CAEH,CAgOA,MAAMv1Q,IAAiB,CACrB,eAAgB,GAChB,QAAS,GACT,KAAM,GACN,aAAc,GACd,oBAAqB,GACrB,sBAAuB,IACvB,sBAAuB,IACvB,sBAAuB,IACvB,OAAQ,GACR,UAAW,GACX,UAAW,GACX,YAAa,GACb,kBAAmB,IACnB,wBAAyB,GACzB,iBAAkB,gBAClB,cAAe,QACf,UAAW,kBACX,gBAAiB,OACjB,kBAAmB,MACnB,eAAgB,IAChB,UAAW,GACX,MAAO,EACP,SAAU,6BACV,QAAS,CAAC,EAAG,CAAC,EACd,OAAQ,0BACV,EAKA,MAAMw1Q,YAAmBtO,GAAe,CAItC,YAAYrrQ,EAAS,CACnB,QACA,KAAK,QAAU,KAAK,gBAAgBA,GAAW,CAAE,GAOjD,KAAK,OAAS,CACZ,EAAG,EACH,EAAG,CACT,EAMI,KAAK,kBAAoB,CACvB,EAAG,EACH,EAAG,CACT,EAOI,KAAK,aAAe,CAClB,EAAG,EACH,EAAG,CACT,EAKI,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,eAAiB,EACtB,KAAK,OAAS,GACd,KAAK,aAAe,GACpB,KAAK,SAAW,GAMhB,KAAK,iBAAmB,GAGxB,KAAK,oBAAsB,OAG3B,KAAK,OAAS,OAGd,KAAK,QAAU,OAGf,KAAK,SAAW,OAGhB,KAAK,UAAY,OAGjB,KAAK,WAAa,OAGlB,KAAK,UAAY,OACjB,KAAK,OAAS,IAAI0sQ,IAClB,KAAK,WAAa,IAAImJ,IACtB,KAAK,WAAa,IAAI7C,IAAW,IAAI,EACrC,KAAK,SAAW,IAAId,IAAS,IAAI,EACjC,KAAK,OAAS,IAAI4G,IAAO,IAAI,EAC7B,KAAK,SAAW,IAAIc,IAAS,IAAI,EACjC,KAAK,cAAgB,IAAIlB,IAAc,IAAI,CAC5C,CAID,MAAO,CACL,GAAI,KAAK,QAAU,KAAK,aACtB,MAAO,GAGT,KAAK,OAAS,GACd,KAAK,SAAS,MAAM,EAEpB,KAAK,SAAS,YAAY,EAE1B,KAAK,qBAAoB,EAGzB,IAAImB,EAAc,aAElB,OAAI,KAAK,SAAS,gBAChBA,GAAe,gBAGb,KAAK,QAAQ,YACfA,GAAe,IAAM,KAAK,QAAQ,WAGhC,KAAK,UACP,KAAK,QAAQ,WAAa,IAAMA,GAGlC,KAAK,UAAY,KAAK,QAAQ,OAAS,EACvC,KAAK,eAAiB,KAAK,UAC3B,KAAK,SAAS,aAAa,EAG3B,KAAK,YAAc,IAAI9D,IAAY,IAAI,GAEnC,OAAO,MAAM,KAAK,SAAS,GAAK,KAAK,UAAY,GAAK,KAAK,WAAa,KAAK,YAAW,KAC1F,KAAK,UAAY,GAGd,KAAK,SAAS,eAEjB,KAAK,cAAa,EAIpB,KAAK,WAAU,EACf,KAAK,OAAO,EAAI,OAAO,YACvB,KAAK,iBAAmB,KAAK,YAAY,KAAK,SAAS,EACvD,KAAK,SAAS,cAAe,CAC3B,MAAO,KAAK,UACZ,KAAM,KAAK,iBACX,MAAO,MACb,CAAK,EAED,KAAK,oBAAsB,KAAK,iBAChC,KAAK,SAAS,eAAe,EAC7B,KAAK,GAAG,sBAAuB,IAAM,CACnC,KAAM,CACJ,YAAA+D,CACR,EAAU,KAAK,WAELA,EAAY,CAAC,IACfA,EAAY,CAAC,EAAE,GAAG,MAAM,QAAU,QAClC,KAAK,WAAWA,EAAY,CAAC,EAAG,KAAK,UAAY,CAAC,GAGhDA,EAAY,CAAC,IACfA,EAAY,CAAC,EAAE,GAAG,MAAM,QAAU,QAClC,KAAK,WAAWA,EAAY,CAAC,EAAG,KAAK,UAAY,CAAC,GAGpD,KAAK,YAAW,EAChB,KAAK,cAAc,aACnB,KAAK,OAAO,IAAI,OAAQ,SAAU,KAAK,kBAAkB,KAAK,IAAI,CAAC,EACnE,KAAK,OAAO,IAAI,OAAQ,SAAU,KAAK,wBAAwB,KAAK,IAAI,CAAC,EACzE,KAAK,SAAS,YAAY,CAChC,CAAK,EAEG,KAAK,WAAW,YAAY,CAAC,GAC/B,KAAK,WAAW,KAAK,WAAW,YAAY,CAAC,EAAG,KAAK,SAAS,EAGhE,KAAK,SAAS,QAAQ,EACtB,KAAK,OAAO,OACZ,KAAK,SAAS,WAAW,EAClB,EACR,CAUD,eAAel2Q,EAAO,CACpB,MAAM4vQ,EAAY,KAAK,cAEvB,OAAI,KAAK,QAAQ,OACX5vQ,EAAQ4vQ,EAAY,IACtB5vQ,GAAS4vQ,GAGP5vQ,EAAQ,IACVA,GAAS4vQ,IAINlgG,GAAM1vK,EAAO,EAAG4vQ,EAAY,CAAC,CACrC,CAED,aAAc,CACZ,KAAK,WAAW,YAAY,QAAQJ,GAAc,CAChD,IAAIY,GAEHA,EAAoBZ,EAAW,SAAW,MAAQY,IAAsB,QAAUA,EAAkB,aAC3G,CAAK,CACF,CAOD,KAAKpwQ,EAAO,CACV,KAAK,WAAW,YAAY,KAAK,eAAeA,CAAK,EAAI,KAAK,cAAc,CAC7E,CAMD,MAAO,CACL,KAAK,KAAK,KAAK,eAAiB,CAAC,CAClC,CAMD,MAAO,CACL,KAAK,KAAK,KAAK,eAAiB,CAAC,CAClC,CAQD,UAAUwY,EAAM,CACd,IAAI29P,GAEHA,EAAkB,KAAK,aAAe,MAAQA,IAAoB,QAAUA,EAAgB,OAAO,GAAG39P,CAAI,CAC5G,CAMD,YAAa,CACX,IAAI49P,GAEHA,EAAmB,KAAK,aAAe,MAAQA,IAAqB,QAAUA,EAAiB,YACjG,CAOD,OAAQ,CACF,CAAC,KAAK,OAAO,QAAU,KAAK,eAIhC,KAAK,aAAe,GACpB,KAAK,SAAS,OAAO,EACrB,KAAK,OAAO,YACZ,KAAK,OAAO,QACb,CAUD,SAAU,CACR,IAAI9R,EAEJ,GAAI,CAAC,KAAK,aAAc,CACtB,KAAK,QAAQ,sBAAwB,OACrC,KAAK,MAAK,EACV,MACD,CAED,KAAK,SAAS,SAAS,EACvB,KAAK,WAAa,GAEd,KAAK,aACP,KAAK,WAAW,YAAc,KAC9B,KAAK,WAAW,WAAa,OAG9BA,EAAgB,KAAK,WAAa,MAAQA,IAAkB,QAAUA,EAAc,SACrF,KAAK,WAAW,YAAY,QAAQkL,GAAc,CAChD,IAAI6G,GAEHA,EAAqB7G,EAAW,SAAW,MAAQ6G,IAAuB,QAAUA,EAAmB,SAC9G,CAAK,EACD,KAAK,cAAc,UACnB,KAAK,OAAO,WACb,CAQD,oBAAoBC,EAAY,CAC9B,KAAK,cAAc,cAAcA,CAAU,EAC3C,KAAK,WAAW,YAAY,QAAQ,CAAC9G,EAAY54Q,IAAM,CACrD,IAAI2/Q,EAAuBC,EAE3B,IAAIC,IAAyBF,GAAyBC,EAAmB,KAAK,aAAe,MAAQA,IAAqB,OAAS,OAASA,EAAiB,SAAW,MAAQD,IAA0B,OAASA,EAAwB,GAAK,EAAI3/Q,EAMpP,GAJI,KAAK,YACP6/Q,EAAuB,KAAK,eAAeA,CAAoB,GAG7DA,IAAyBH,IAE3B,KAAK,WAAW9G,EAAY8G,EAAY,EAAI,EAExC1/Q,IAAM,GAAG,CACX,IAAI8/Q,EAEJ,KAAK,UAAYlH,EAAW,OAC3BkH,EAAqBlH,EAAW,SAAW,MAAQkH,IAAuB,QAAUA,EAAmB,YAAY,EAAI,CACzH,CAET,CAAK,EACD,KAAK,SAAS,QAAQ,CACvB,CAUD,WAAWC,EAAQ32Q,EAAOm5B,EAAO,CAK/B,GAJI,KAAK,YACPn5B,EAAQ,KAAK,eAAeA,CAAK,GAG/B22Q,EAAO,MAAO,CAChB,GAAIA,EAAO,MAAM,QAAU32Q,GAAS,CAACm5B,EAGnC,OAIFw9O,EAAO,MAAM,UACbA,EAAO,MAAQ,MAChB,CAGD,GAAI,CAAC,KAAK,QAAO,IAAO32Q,EAAQ,GAAKA,GAAS,KAAK,YAAW,GAC5D,OAGF,MAAMwkQ,EAAW,KAAK,YAAYxkQ,CAAK,EACvC22Q,EAAO,MAAQ,IAAIrN,IAAM9E,EAAUxkQ,EAAO,IAAI,EAE1CA,IAAU,KAAK,YACjB,KAAK,UAAY22Q,EAAO,OAG1BA,EAAO,MAAM,OAAOA,EAAO,EAAE,CAC9B,CAID,wBAAyB,CACvB,MAAO,CACL,EAAG,KAAK,aAAa,EAAI,EACzB,EAAG,KAAK,aAAa,EAAI,CAC/B,CACG,CASD,WAAWx9O,EAAO,CAGhB,GAAI,KAAK,aAGP,OAKF,MAAMqsO,EAAkBF,GAAgB,KAAK,QAAS,IAAI,EAEtD,CAACnsO,GAASmvO,GAAY9C,EAAiB,KAAK,iBAAiB,IAOjE2C,GAAe,KAAK,kBAAmB3C,CAAe,EACtD,KAAK,SAAS,cAAc,EAC5B2C,GAAe,KAAK,aAAc,KAAK,iBAAiB,EAExD,KAAK,wBAAuB,EAE5B,KAAK,SAAS,cAAc,EAG5B,KAAK,WAAW,OAAO,KAAK,OAAO,MAAM,EAErC,CAAC,KAAK,UAAY,OAAO,WAAW,oBAAoB,EAAE,SAC5D,KAAK,cAAa,EAGpB,KAAK,SAAS,QAAQ,EACvB,CAMD,eAAeyO,EAAS,CACtB,KAAK,UAAY,KAAK,IAAIA,EAAS,CAAC,EAEhC,KAAK,KACP,KAAK,GAAG,MAAM,QAAU,OAAO,KAAK,UAAY,KAAK,QAAQ,SAAS,EAEzE,CAMD,eAAgB,CACd,GAAI,CAAC,KAAK,SAAU,CAClB,IAAIC,EAEJ,KAAK,SAAW,IACfA,EAAiB,KAAK,WAAa,MAAQA,IAAmB,QAAUA,EAAe,UAAU,IAAI,iBAAiB,CACxH,CACF,CAQD,mBAAoB,CAClB,KAAK,WAAU,EAMX,oBAAoB,KAAK,OAAO,UAAU,SAAS,GACrD,WAAW,IAAM,CACf,KAAK,WAAU,CAChB,EAAE,GAAG,CAET,CAUD,yBAA0B,CACxB,KAAK,gBAAgB,EAAG,OAAO,WAAW,CAC3C,CAOD,gBAAgB/6Q,EAAGC,EAAG,CACpB,KAAK,OAAO,EAAID,EAChB,KAAK,OAAO,EAAIC,EAChB,KAAK,SAAS,oBAAoB,CACnC,CASD,sBAAuB,CAErB,KAAK,QAAUs7E,GAAc,OAAQ,KAAK,EAC1C,KAAK,QAAQ,aAAa,WAAY,IAAI,EAC1C,KAAK,QAAQ,aAAa,OAAQ,QAAQ,EAE1C,KAAK,SAAW,KAAK,QAGrB,KAAK,GAAKA,GAAc,WAAY,MAAO,KAAK,OAAO,EACvD,KAAK,WAAaA,GAAc,oBAAqB,UAAW,KAAK,OAAO,EAC5E,KAAK,UAAYA,GAAc,kBAAmB,MAAO,KAAK,UAAU,EAExE,KAAK,WAAW,aAAa,uBAAwB,UAAU,EAC/D,KAAK,UAAU,aAAa,YAAa,KAAK,EAC9C,KAAK,UAAU,aAAa,KAAM,aAAa,EAC/C,KAAK,WAAW,gBAChB,KAAK,GAAK,IAAI2qC,IAAG,IAAI,EACrB,KAAK,GAAG,QAEP,KAAK,QAAQ,YAAc,SAAS,MAAM,YAAY,KAAK,OAAO,CACpE,CAWD,gBAAiB,CACf,OAAOyyJ,IAAe,KAAK,UAAW,KAAK,UAAY,KAAK,UAAU,KAAO,KAAK,iBAAkB,IAAI,CACzG,CAOD,SAAU,CACR,OAAO,KAAK,QAAQ,MAAQ,KAAK,YAAa,EAAG,CAClD,CAQD,gBAAgBr4Q,EAAS,CACvB,OAAI,OAAO,WAAW,0CAA0C,EAAE,UAChEA,EAAQ,sBAAwB,OAChCA,EAAQ,sBAAwB,GAK3B,CAAE,GAAGmE,IACV,GAAGnE,CACT,CACG,CAEH,CC/5NA,MAAM06Q,YAA0B7sD,EAAW,CACzC,SAAU,CACR,KAAK,gBAAe,EACpB,KAAK,cAAa,EAClB,KAAK,SAAW,KAAK,sBACtB,CAED,iBAAkB,CAChB,MAAMjtM,EAAO,KAEb,EAAE,eAAe,EAAE,YAAY,CAC7B,KAAM,EACN,KAAM,GACN,YAAa,EACb,MAAO,GACP,aAAa5H,EAAI,CACfA,EAAG,KAAK,IAAI,EAAE,GAAG,QAAS,UAAY,CACpC,MAAMpV,EAAQ,EAAE,IAAI,EAAE,KAAK,OAAO,EAClCgd,EAAK,SAAS,YAAYhd,CAAK,CACzC,CAAS,CACF,CACP,CAAK,EAED,KAAK,QAAQ,iBAAiB,kBAAkB,EAAE,QAAS+J,GAAS,CAClEA,EAAK,iBAAiB,QAAS,UAAY,CACzC,MAAM/J,EAAQ,KAAK,QAAQ,MAC3Bgd,EAAK,SAAS,YAAYhd,CAAK,CACvC,CAAO,CACP,CAAK,CACF,CAGD,qBAAqBoV,EAAI,CACvB,MAAM2hQ,EAAW,IAAIvP,IAAmB,CACtC,QAAS,qBACT,SAAU,IACV,WAAY,IAAMuO,GACxB,CAAK,EAED,OAAAgB,EAAS,KAAI,EAENA,CACR,CAED,eAAgB,CACd,SAAS,iBAAiB,wBAAwB,EAAE,QAAS3hQ,GAAO,CAClE,KAAK,aAAaA,EAAIA,EAAG,QAAQ,IAAK,IAAM,CAC1C,SAAS,iBAAiB,8BAA8B,EAAE,QAAS4hQ,GAAQ,CACzE,KAAK,aAAaA,EAAKA,EAAI,QAAQ,GAAG,CAChD,CAAS,CACT,CAAO,CACP,CAAK,EAED,SAAS,iBAAiB,4BAA4B,EAAE,QAAS5hQ,GAAO,CACtE,KAAK,aAAaA,EAAIA,EAAG,QAAQ,KAAK,CAC5C,CAAK,CACF,CAED,aAAaA,EAAIhO,EAAKjK,EAAU,CAC9B,MAAM85Q,EAAW7hQ,EAAG,cAAc,YAAY,EACxCwzP,EAAM,IAAI,MAChBA,EAAI,IAAMxhQ,EAEV,MAAM8vQ,EAAmB,IAAM,CAC7BD,EAAS,MAAM,gBAAkB,QAAQ7vQ,CAAG,KACxCjK,GAAUA,GACpB,EAEIyrQ,EAAI,iBAAiB,OAAQsO,EAAkB,EAAK,EACpD,OAAO,iBAAiB,SAAUA,CAAgB,CACnD,CACH,CCxEA,MAAMC,YAAgCltD,EAAW,CAC/C,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,EAChC,CAED,KAAK,EAAG,CACN,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAksB,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,IAAI+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CACxC,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,6BAA6B,CACrD,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAAC,CAC9F,CAAO,CACP,CAAK,CACF,CACH,CCpBA,MAAM4+Q,YAAuBntD,EAAW,CACtC,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,EAChC,CAED,KAAK,EAAG,CACN,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAksB,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,IAAI+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CACxC,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,mBAAmB,CAC3C,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAAC,CAC9F,CAAO,CACP,CAAK,CACF,CACH,CCnBA,MAAM6+Q,YAAyBptD,EAAW,CACxC,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,EAChC,CAED,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAksB,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,OAAO+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CAC3C,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,qBAAqB,CAC7C,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAAC,CAC9F,CAAO,CACP,CAAK,CACF,CACH,CCpBA,MAAM8+Q,YAAkCrtD,EAAW,CACjD,SAAU,CACR,KAAK,aAAe,IACrB,CAED,YAAYn0M,EAAU,CAChBA,EACF,EAAE,aAAa,EAAE,KAAK,WAAY,UAAU,GAE5C,EAAE,aAAa,EAAE,YAAY,YAAY,EACzC,EAAE,aAAa,EAAE,KAAK,WAAY,IAAI,EAEzC,CAED,SAAS,EAAG,CACV,EAAE,eAAc,EAEhB,MAAMzjB,EAAO,EAAE,OAAO,QAAQ,KAG9B,GADsB,CAAC,iBAAkB,gBAAiB,sBAAsB,EAC9D,QAAQA,CAAI,IAAM,GAAI,OAExC,MAAMioB,EAAS,EAAE,iBAAiB,EAAE,UAAS,EAE7C,GAAI,EAAE,EAAE,MAAM,EAAE,KAAK,UAAU,EAAG,OAEtB,EAAE,EAAE,MAAM,EAClB,SAAS,YAAY,EACzB,KAAK,YAAY,EAAI,EAErB8yD,GACG,KAAK,uCAAuC/6E,CAAI,IAAMioB,CAAM,EAC5D,KAAKxlB,GAAY,KAAK,UAAUA,EAAS,KAAK,EAAE,CAAC,EACjD,MAAM,IAAM,KAAK,YAAY,EAAK,CAAC,CACvC,CAED,eAAe1C,EAAS,CACtB,OAAQA,EAAQ,OAAM,CACpB,IAAK,YACH,KAAK,YAAY,EAAK,EACtB,OAAO,SAAS,KAAO,4BAA4BA,EAAQ,EAAE,GAC7D,MACF,IAAK,SACH,KAAK,YAAY,EAAK,EACtB,OAAO,cAAc,QAAS,uBAAuB,EACrD,MACF,IAAK,UACH,QAAQ,IAAI,4CAA4C,EACxD,MACF,IAAK,cACH,QAAQ,IAAI,gDAAgD,EAC5D,MACF,QACE,QAAQ,IAAI,mBAAmBA,EAAQ,MAAM,EAAE,EAC/C,KACH,CACF,CAED,UAAU8I,EAAI,CACZ,KAAK,aAAe,IAAI,MAAM,cAAc,OAC1C,CAAE,QAAS,6BAA8B,GAAIA,CAAI,EACjD,CAAE,SAAW9I,GAAY,KAAK,eAAeA,CAAO,CAAG,CAC7D,CACG,CACH,CC/DA,MAAMmlR,YAA6BttD,EAAW,CAC5C,SAAU,CACR,KAAK,GAAK,KAAK,QAAQ,QAAQ,EAChC,CAED,OAAO,EAAG,CACR,EAAE,eAAc,EAEhB,KAAM,CAAE,QAAAksB,CAAO,EAAK,EAAE,OAEtBwK,GAAI,QAAQxK,EAAQ,QAAS,IAAM,CACjC/oK,GAAM,OAAO+oK,EAAQ,GAAG,EAAE,KAAMrhP,GAAa,CAC3C,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,EACpD6rP,GAAI,YAAY,0BAA0B,CAClD,CAAO,EAAE,MAAOnoP,GAAU,CAClBmoP,GAAI,aAAanoP,EAAO,IAAM,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAAC,CAC9F,CAAO,CACP,CAAK,CACF,CACH,CCpBA,MAAMg/Q,WAAgCvtD,EAAW,CAG/C,SAAU,CACR,KAAK,kBAAiB,EACtB,KAAK,MAAQ,SAAS,eAAe,iBAAiB,CACvD,CAED,WAAW,EAAG,CAKZ,GAJA,EAAE,eAAc,EAED,EAAE,OAEN,QAAQ,IAAI,EAAE,UAAU,SAAS,UAAU,EAAG,OACzD,MAAMvtN,EAAO,EAAE,OAAO,aAAa,MAAM,EAEzC0wE,GAAM,IAAI1wE,CAAI,EAAE,KAAM5H,GAAa,CACjC,MAAMwsB,EAAOxsB,EAAS,KAEhBwpP,EAAe,KAAK,MAAM,cAAc,gBAAgB,EAC1DA,IACFA,EAAa,UAAY,GACzBA,EAAa,mBAAmB,YAAah9N,CAAI,GAGnD,MAAMm2P,EAAc,KAAK,MAAM,cAAc,eAAe,EACxDA,IACFA,EAAY,MAAM,MAAQ,IAG5B,MAAMxlR,EAAO,KAAK,MAAM,cAAc,MAAM,EAE5C,GAAIA,EAAM,CACR,MAAMylR,EAAazlR,EAAK,QAAQ,WAChC,GAAIylR,IAAe,OAAW,CAC5B,MAAMD,EAAc,KAAK,MAAM,cAAc,eAAe,EACxDA,IACFA,EAAY,MAAM,MAAQC,EAE7B,CACF,CAED,EAAE,KAAK,KAAK,EAAE,MAAM,MAAM,CAChC,CAAK,CACF,CAED,mBAAoB,CAUb,SAAS,eAAe,iBAAiB,GAC5C,SAAS,eAAe,YAAY,EAAE,mBAAmB,YAVzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAU+D,CAElF,CAED,cAAe,CACb,KAAK,WAAW,iBAAiB,kBAAkB,EAAE,QAASjlR,GAAYA,EAAQ,OAAM,CAAE,CAC3F,CAED,UAAU4vJ,EAAQ,CAChB,KAAK,aAAY,EAEjB,OAAO,QAAQA,CAAM,EAAE,QAAQ,CAAC,CAAC39I,EAAK3R,CAAK,IAAM,CAC/C,MAAMssP,EAAO,SAAS,cAAc,MAAM,EAC1CA,EAAK,UAAY,cACjBA,EAAK,YAActsP,EAAM,KAAK,IAAI,EAElC,MAAMN,EAAU,KAAK,WAAW,cAAc,iBAAmBiS,CAAG,EACpE,GAAIjS,EAAS,CACX,MAAMyrP,EAAYzrP,EAAQ,QAAQ,aAAa,EAC3CyrP,GAAWA,EAAU,YAAYmB,CAAI,CAC1C,CACP,CAAK,CACF,CAED,aAAa9rP,EAAK4J,EAAW,KAAM,CACjCiwE,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAEhC,MAAM6iR,EAAoB,KAAK,QAAQ,cAAc,qBAAqB,EACtEA,IACFA,EAAkB,UAAY7iR,EAAS,MAGrC,OAAOqI,GAAa,YACtBA,IAGF,SAAS,iBAAiB,wBAAwB,EAAE,QAAQyrQ,GAAO,CACjEA,EAAI,MAAM,QAAU,MAC5B,CAAO,CACP,CAAK,CACF,CAED,aAAa,EAAG,CACd,EAAE,eAAc,EAChB,KAAK,aAAY,EAEjB,MAAMgP,EAAM,EAAE,OACR3lR,EAAO,KAAK,WAElB,GAAI,CAAC2lR,EAAI,aAAa,UAAU,EAAG,CACjCA,EAAI,aAAa,WAAY,MAAM,EAEnC,KAAK,WAAW,iBAAiB,8CAA8C,EAAE,QAASnlR,GAAY,CACpGA,EAAQ,SAAW,EAC3B,CAAO,EAED,MAAMkI,EAAW,IAAI,SAAS,KAAK,UAAU,EAE7CyyE,GACG,KAAKn7E,EAAK,aAAa,QAAQ,EAAG0I,CAAQ,EAC1C,KAAK7F,GAAY,CAChB,KAAK,WAAW,iBAAiB,8CAA8C,EAAE,QAASrC,GAAY,CACpGA,EAAQ,MAAQ,EAC5B,CAAW,EAED,MAAMolR,EAAY,KAAK,WAAW,QAAQ,WAAa,GACjDtkR,EAAM,KAAK,WAAW,QAAQ,YAC9BukR,EAAsB,KAAK,WAAW,cAAc,uBAAuB,EAE7EA,IAAqBA,EAAoB,MAAQD,GAErD,KAAK,aAAatkR,EAAK,IAAMqkR,EAAI,gBAAgB,UAAU,CAAC,CACtE,CAAS,EACA,MAAOp/Q,GAAU,CAChB,QAAQ,IAAIA,CAAK,EACjB,KAAK,UAAUA,EAAM,SAAS,KAAK,MAAM,EACzCo/Q,EAAI,gBAAgB,UAAU,CACxC,CAAS,EACA,QAAQ,IAAM,CACb,KAAK,WAAW,iBAAiB,8CAA8C,EAAE,QAASnlR,GAAY,CACpGA,EAAQ,SAAW,EAC/B,CAAW,CACX,CAAS,CACJ,CACF,CAED,YAAY,EAAG,CACb,EAAE,eAAc,EAChB,KAAK,aAAa,EAAE,OAAO,aAAa,MAAM,EAAI,YAAY,CAC/D,CACH,CAlJEu6L,GADIwqF,GACG,UAAU,CAAC,MAAM,GCFX,MAAMO,YAA8Bvc,EAAe,CAChE,SAAU,CACR,MAAM,QAAO,CACd,CAED,UAAW,CACT,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAC7B,CACH,CCRe,MAAKwc,WAAS/tD,EAAW,CAGtC,SAAU,CACR,KAAK,mBAAkB,CACxB,CAED,mBAAoB,CAClB,KAAK,mBAAkB,CACxB,CAED,oBAAqB,CACnB,MAAMlgB,EAAW,KAAK,sBAEhB1/D,EADQ,KAAK,uBACK,UAEpB0/D,EAAS,QACX1/D,EAAU,OAAO,WAAW,EAE5BA,EAAU,IAAI,WAAW,CAE5B,CACH,CArBE2iD,GADkBgrF,GACX,UAAU,CAAC,kBAAmB,kBAAkB,GCSzD,SAASr3N,GAASr1C,EAAK,CACrB,OAAOA,IAAQ,MAAQ,OAAOA,GAAQ,UAAY,gBAAiBA,GAAOA,EAAI,cAAgB,MAChG,CACA,SAAS88D,GAAO51E,EAAQ4U,EAAK,CACvB5U,IAAW,SACbA,EAAS,IAEP4U,IAAQ,SACVA,EAAM,IAER,MAAM6wQ,EAAW,CAAC,YAAa,cAAe,WAAW,EACzD,OAAO,KAAK7wQ,CAAG,EAAE,OAAO1C,GAAOuzQ,EAAS,QAAQvzQ,CAAG,EAAI,CAAC,EAAE,QAAQA,GAAO,CACnE,OAAOlS,EAAOkS,CAAG,EAAM,IAAalS,EAAOkS,CAAG,EAAI0C,EAAI1C,CAAG,EAAWi8C,GAASv5C,EAAI1C,CAAG,CAAC,GAAKi8C,GAASnuD,EAAOkS,CAAG,CAAC,GAAK,OAAO,KAAK0C,EAAI1C,CAAG,CAAC,EAAE,OAAS,GACpJ0jE,GAAO51E,EAAOkS,CAAG,EAAG0C,EAAI1C,CAAG,CAAC,CAElC,CAAG,CACH,CACA,MAAMwzQ,GAAc,CAClB,KAAM,CAAE,EACR,kBAAmB,CAAE,EACrB,qBAAsB,CAAE,EACxB,cAAe,CACb,MAAO,CAAE,EACT,SAAU,EACX,EACD,eAAgB,CACd,OAAO,IACR,EACD,kBAAmB,CACjB,MAAO,EACR,EACD,gBAAiB,CACf,OAAO,IACR,EACD,aAAc,CACZ,MAAO,CACL,WAAY,CAAE,CACpB,CACG,EACD,eAAgB,CACd,MAAO,CACL,SAAU,CAAE,EACZ,WAAY,CAAE,EACd,MAAO,CAAE,EACT,cAAe,CAAE,EACjB,sBAAuB,CACrB,MAAO,EACR,CACP,CACG,EACD,iBAAkB,CAChB,MAAO,EACR,EACD,YAAa,CACX,OAAO,IACR,EACD,SAAU,CACR,KAAM,GACN,KAAM,GACN,SAAU,GACV,KAAM,GACN,OAAQ,GACR,SAAU,GACV,SAAU,GACV,OAAQ,EACT,CACH,EACA,SAASxnH,IAAc,CACrB,MAAM7hJ,EAAM,OAAO,SAAa,IAAc,SAAW,GACzDu5D,UAAOv5D,EAAKqpQ,EAAW,EAChBrpQ,CACT,CACA,MAAMspQ,IAAY,CAChB,SAAUD,GACV,UAAW,CACT,UAAW,EACZ,EACD,SAAU,CACR,KAAM,GACN,KAAM,GACN,SAAU,GACV,KAAM,GACN,OAAQ,GACR,SAAU,GACV,SAAU,GACV,OAAQ,EACT,EACD,QAAS,CACP,cAAe,CAAE,EACjB,WAAY,CAAE,EACd,IAAK,CAAE,EACP,MAAO,CAAE,CACV,EACD,YAAa,UAAuB,CAClC,OAAO,IACR,EACD,kBAAmB,CAAE,EACrB,qBAAsB,CAAE,EACxB,kBAAmB,CACjB,MAAO,CACL,kBAAmB,CACjB,MAAO,EACR,CACP,CACG,EACD,OAAQ,CAAE,EACV,MAAO,CAAE,EACT,OAAQ,CAAE,EACV,YAAa,CAAE,EACf,cAAe,CAAE,EACjB,YAAa,CACX,MAAO,EACR,EACD,sBAAsB/6Q,EAAU,CAC9B,OAAI,OAAO,WAAe,KACxBA,IACO,MAEF,WAAWA,EAAU,CAAC,CAC9B,EACD,qBAAqBjC,EAAI,CACnB,OAAO,WAAe,KAG1B,aAAaA,CAAE,CAChB,CACH,EACA,SAASo+D,IAAY,CACnB,MAAMziC,EAAM,OAAO,OAAW,IAAc,OAAS,GACrDuxC,UAAOvxC,EAAKshP,GAAS,EACdthP,CACT,CC7IA,SAASuhP,GAAgB7vN,EAAS,CAChC,OAAIA,IAAY,SACdA,EAAU,IAELA,EAAQ,OAAO,MAAM,GAAG,EAAE,OAAOtgD,GAAK,CAAC,CAACA,EAAE,KAAM,EACzD,CAEA,SAASowQ,IAAY/sQ,EAAK,CACxB,MAAMoS,EAASpS,EACf,OAAO,KAAKoS,CAAM,EAAE,QAAQhZ,GAAO,CACjC,GAAI,CACFgZ,EAAOhZ,CAAG,EAAI,IACf,MAAW,CAEX,CACD,GAAI,CACF,OAAOgZ,EAAOhZ,CAAG,CAClB,MAAW,CAEX,CACL,CAAG,CACH,CACA,SAAS4zQ,GAASn7Q,EAAU+H,EAAO,CACjC,OAAIA,IAAU,SACZA,EAAQ,GAEH,WAAW/H,EAAU+H,CAAK,CACnC,CACA,SAAS47F,IAAM,CACb,OAAO,KAAK,KACd,CACA,SAASy3K,IAAiBnjQ,EAAI,CAC5B,MAAM1H,EAAS4rD,KACf,IAAInmE,EACJ,OAAIua,EAAO,mBACTva,EAAQua,EAAO,iBAAiB0H,EAAI,IAAI,GAEtC,CAACjiB,GAASiiB,EAAG,eACfjiB,EAAQiiB,EAAG,cAERjiB,IACHA,EAAQiiB,EAAG,OAENjiB,CACT,CACA,SAASqlR,GAAapjQ,EAAIq3I,EAAM,CAC1BA,IAAS,SACXA,EAAO,KAET,MAAM/+I,EAAS4rD,KACf,IAAIq2F,EACA8oH,EACAC,EACJ,MAAMC,EAAWJ,IAAiBnjQ,CAAE,EACpC,OAAI1H,EAAO,iBACT+qQ,EAAeE,EAAS,WAAaA,EAAS,gBAC1CF,EAAa,MAAM,GAAG,EAAE,OAAS,IACnCA,EAAeA,EAAa,MAAM,IAAI,EAAE,IAAItmQ,GAAKA,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAIjFumQ,EAAkB,IAAIhrQ,EAAO,gBAAgB+qQ,IAAiB,OAAS,GAAKA,CAAY,IAExFC,EAAkBC,EAAS,cAAgBA,EAAS,YAAcA,EAAS,aAAeA,EAAS,aAAeA,EAAS,WAAaA,EAAS,iBAAiB,WAAW,EAAE,QAAQ,aAAc,oBAAoB,EACzNhpH,EAAS+oH,EAAgB,SAAU,EAAC,MAAM,GAAG,GAE3CjsH,IAAS,MAEP/+I,EAAO,gBAAiB+qQ,EAAeC,EAAgB,IAElD/oH,EAAO,SAAW,GAAI8oH,EAAe,WAAW9oH,EAAO,EAAE,CAAC,EAE9D8oH,EAAe,WAAW9oH,EAAO,CAAC,CAAC,GAEtClD,IAAS,MAEP/+I,EAAO,gBAAiB+qQ,EAAeC,EAAgB,IAElD/oH,EAAO,SAAW,GAAI8oH,EAAe,WAAW9oH,EAAO,EAAE,CAAC,EAE9D8oH,EAAe,WAAW9oH,EAAO,CAAC,CAAC,GAEnC8oH,GAAgB,CACzB,CACA,SAAS93N,GAASjlB,EAAG,CACnB,OAAO,OAAOA,GAAM,UAAYA,IAAM,MAAQA,EAAE,aAAe,OAAO,UAAU,SAAS,KAAKA,CAAC,EAAE,MAAM,EAAG,EAAE,IAAM,QACpH,CACA,SAASk9O,IAAOp9Q,EAAM,CAEpB,OAAI,OAAO,OAAW,KAAe,OAAO,OAAO,YAAgB,IAC1DA,aAAgB,YAElBA,IAASA,EAAK,WAAa,GAAKA,EAAK,WAAa,GAC3D,CACA,SAAS4sE,IAAS,CAChB,MAAMl6C,EAAK,OAAO,UAAU,QAAU,EAAI,OAAY,UAAU,CAAC,CAAC,EAC5D+pP,EAAW,CAAC,YAAa,cAAe,WAAW,EACzD,QAASrhR,EAAI,EAAGA,EAAI,UAAU,OAAQA,GAAK,EAAG,CAC5C,MAAMiiR,EAAajiR,EAAI,GAAK,UAAU,QAAUA,EAAI,OAAY,UAAUA,CAAC,EAC3E,GAAgCiiR,GAAe,MAAQ,CAACD,IAAOC,CAAU,EAAG,CAC1E,MAAMC,EAAY,OAAO,KAAK,OAAOD,CAAU,CAAC,EAAE,OAAOn0Q,GAAOuzQ,EAAS,QAAQvzQ,CAAG,EAAI,CAAC,EACzF,QAASurK,EAAY,EAAGzgK,EAAMspQ,EAAU,OAAQ7oG,EAAYzgK,EAAKygK,GAAa,EAAG,CAC/E,MAAM8oG,EAAUD,EAAU7oG,CAAS,EAC7B58G,EAAO,OAAO,yBAAyBwlN,EAAYE,CAAO,EAC5D1lN,IAAS,QAAaA,EAAK,aACzB1S,GAASzyB,EAAG6qP,CAAO,CAAC,GAAKp4N,GAASk4N,EAAWE,CAAO,CAAC,EACnDF,EAAWE,CAAO,EAAE,WACtB7qP,EAAG6qP,CAAO,EAAIF,EAAWE,CAAO,EAEhC3wM,GAAOl6C,EAAG6qP,CAAO,EAAGF,EAAWE,CAAO,CAAC,EAEhC,CAACp4N,GAASzyB,EAAG6qP,CAAO,CAAC,GAAKp4N,GAASk4N,EAAWE,CAAO,CAAC,GAC/D7qP,EAAG6qP,CAAO,EAAI,GACVF,EAAWE,CAAO,EAAE,WACtB7qP,EAAG6qP,CAAO,EAAIF,EAAWE,CAAO,EAEhC3wM,GAAOl6C,EAAG6qP,CAAO,EAAGF,EAAWE,CAAO,CAAC,GAGzC7qP,EAAG6qP,CAAO,EAAIF,EAAWE,CAAO,EAGrC,CACF,CACF,CACD,OAAO7qP,CACT,CACA,SAAS8qP,GAAe5jQ,EAAI6jQ,EAASC,EAAU,CAC7C9jQ,EAAG,MAAM,YAAY6jQ,EAASC,CAAQ,CACxC,CACA,SAASC,GAAqBxsN,EAAM,CAClC,GAAI,CACF,OAAAysN,EACA,eAAAC,EACA,KAAAC,CACD,EAAG3sN,EACJ,MAAMj/C,EAAS4rD,KACTigN,EAAgB,CAACH,EAAO,UAC9B,IAAIjuD,EAAY,KACZt8L,EACJ,MAAMmM,EAAWo+O,EAAO,OAAO,MAC/BA,EAAO,UAAU,MAAM,eAAiB,OACxC1rQ,EAAO,qBAAqB0rQ,EAAO,cAAc,EACjD,MAAMhhQ,EAAMihQ,EAAiBE,EAAgB,OAAS,OAChDC,EAAe,CAAC/lP,EAASjhC,IACtB4lB,IAAQ,QAAUqb,GAAWjhC,GAAU4lB,IAAQ,QAAUqb,GAAWjhC,EAEvEi9Q,EAAU,IAAM,CACpB5gP,EAAO,IAAI,OAAO,UACds8L,IAAc,OAChBA,EAAYt8L,GAEd,MAAMo3N,EAAW,KAAK,IAAI,KAAK,KAAKp3N,EAAOs8L,GAAanwL,EAAU,CAAC,EAAG,CAAC,EACjEy+O,EAAe,GAAM,KAAK,IAAIxzB,EAAW,KAAK,EAAE,EAAI,EAC1D,IAAIyzB,EAAkBH,EAAgBE,GAAgBJ,EAAiBE,GAOvE,GANIC,EAAaE,EAAiBL,CAAc,IAC9CK,EAAkBL,GAEpBD,EAAO,UAAU,SAAS,CACxB,CAACE,CAAI,EAAGI,CACd,CAAK,EACGF,EAAaE,EAAiBL,CAAc,EAAG,CACjDD,EAAO,UAAU,MAAM,SAAW,SAClCA,EAAO,UAAU,MAAM,eAAiB,GACxC,WAAW,IAAM,CACfA,EAAO,UAAU,MAAM,SAAW,GAClCA,EAAO,UAAU,SAAS,CACxB,CAACE,CAAI,EAAGI,CAClB,CAAS,CACT,CAAO,EACDhsQ,EAAO,qBAAqB0rQ,EAAO,cAAc,EACjD,MACD,CACDA,EAAO,eAAiB1rQ,EAAO,sBAAsB+hQ,CAAO,CAChE,EACEA,GACF,CACA,SAASkK,GAAoBC,EAAS,CACpC,OAAOA,EAAQ,cAAc,yBAAyB,GAAKA,EAAQ,YAAcA,EAAQ,WAAW,cAAc,yBAAyB,GAAKA,CAClJ,CACA,SAASC,GAAgBpnR,EAASsF,EAAU,CACtCA,IAAa,SACfA,EAAW,IAEb,MAAM2V,EAAS4rD,KACT3E,EAAW,CAAC,GAAGliE,EAAQ,QAAQ,EAIrC,OAHIib,EAAO,iBAAmBjb,aAAmB,iBAC/CkiE,EAAS,KAAK,GAAGliE,EAAQ,iBAAkB,GAExCsF,EAGE48D,EAAS,OAAOv/C,GAAMA,EAAG,QAAQrd,CAAQ,CAAC,EAFxC48D,CAGX,CACA,SAASmlN,IAAqB1kQ,EAAI2kQ,EAAM,CAEtC,MAAMC,EAAgB,CAACD,CAAI,EAC3B,KAAOC,EAAc,OAAS,GAAG,CAC/B,MAAMC,EAAiBD,EAAc,QACrC,GAAI5kQ,IAAO6kQ,EACT,MAAO,GAETD,EAAc,KAAK,GAAGC,EAAe,SAAU,GAAIA,EAAe,WAAaA,EAAe,WAAW,SAAW,GAAK,GAAIA,EAAe,iBAAmBA,EAAe,iBAAgB,EAAK,GACpM,CACH,CACA,SAASC,IAAiB9kQ,EAAIiD,EAAQ,CACpC,MAAM3K,EAAS4rD,KACf,IAAI6gN,EAAU9hQ,EAAO,SAASjD,CAAE,EAChC,MAAI,CAAC+kQ,GAAWzsQ,EAAO,iBAAmB2K,aAAkB,kBAE1D8hQ,EADiB,CAAC,GAAG9hQ,EAAO,iBAAkB,GAC3B,SAASjD,CAAE,EACzB+kQ,IACHA,EAAUL,IAAqB1kQ,EAAIiD,CAAM,IAGtC8hQ,CACT,CACA,SAASC,GAAYvhQ,EAAM,CACzB,GAAI,CACF,QAAQ,KAAKA,CAAI,EACjB,MACD,MAAa,CAEb,CACH,CACA,SAASw+D,GAAc/gE,EAAKiyC,EAAS,CAC/BA,IAAY,SACdA,EAAU,IAEZ,MAAMnzC,EAAK,SAAS,cAAckB,CAAG,EACrC,OAAAlB,EAAG,UAAU,IAAI,GAAI,MAAM,QAAQmzC,CAAO,EAAIA,EAAU6vN,GAAgB7vN,CAAO,CAAC,EACzEnzC,CACT,CACA,SAASilQ,GAAcjlQ,EAAI,CACzB,MAAM1H,EAAS4rD,KACTjyD,EAAWqpJ,KACX5lI,EAAM1V,EAAG,wBACT/c,EAAOgP,EAAS,KAChBizQ,EAAYllQ,EAAG,WAAa/c,EAAK,WAAa,EAC9CkiR,EAAanlQ,EAAG,YAAc/c,EAAK,YAAc,EACjD+pE,EAAYhtD,IAAO1H,EAASA,EAAO,QAAU0H,EAAG,UAChDolQ,EAAaplQ,IAAO1H,EAASA,EAAO,QAAU0H,EAAG,WACvD,MAAO,CACL,IAAK0V,EAAI,IAAMs3C,EAAYk4M,EAC3B,KAAMxvP,EAAI,KAAO0vP,EAAaD,CAClC,CACA,CACA,SAASE,IAAerlQ,EAAIrd,EAAU,CACpC,MAAM2iR,EAAU,GAChB,KAAOtlQ,EAAG,wBAAwB,CAChC,MAAMue,EAAOve,EAAG,uBACZrd,EACE47B,EAAK,QAAQ57B,CAAQ,GAAG2iR,EAAQ,KAAK/mP,CAAI,EACxC+mP,EAAQ,KAAK/mP,CAAI,EACxBve,EAAKue,CACN,CACD,OAAO+mP,CACT,CACA,SAASC,IAAevlQ,EAAIrd,EAAU,CACpC,MAAM6iR,EAAU,GAChB,KAAOxlQ,EAAG,oBAAoB,CAC5B,MAAMzI,EAAOyI,EAAG,mBACZrd,EACE4U,EAAK,QAAQ5U,CAAQ,GAAG6iR,EAAQ,KAAKjuQ,CAAI,EACxCiuQ,EAAQ,KAAKjuQ,CAAI,EACxByI,EAAKzI,CACN,CACD,OAAOiuQ,CACT,CACA,SAASC,GAAazlQ,EAAImM,EAAM,CAE9B,OADe+3C,KACD,iBAAiBlkD,EAAI,IAAI,EAAE,iBAAiBmM,CAAI,CAChE,CACA,SAASu5P,GAAa1lQ,EAAI,CACxB,IAAIy/C,EAAQz/C,EACRxe,EACJ,GAAIi+D,EAAO,CAGT,IAFAj+D,EAAI,GAEIi+D,EAAQA,EAAM,mBAAqB,MACrCA,EAAM,WAAa,IAAGj+D,GAAK,GAEjC,OAAOA,CACR,CAEH,CACA,SAASmkR,GAAe3lQ,EAAIrd,EAAU,CACpC,MAAMijR,EAAU,GAChB,IAAI3iQ,EAASjD,EAAG,cAChB,KAAOiD,GACDtgB,EACEsgB,EAAO,QAAQtgB,CAAQ,GAAGijR,EAAQ,KAAK3iQ,CAAM,EAEjD2iQ,EAAQ,KAAK3iQ,CAAM,EAErBA,EAASA,EAAO,cAElB,OAAO2iQ,CACT,CACA,SAASC,GAAqB7lQ,EAAIjY,EAAU,CAC1C,SAAS+9Q,EAAah1Q,EAAG,CACnBA,EAAE,SAAWkP,IACjBjY,EAAS,KAAKiY,EAAIlP,CAAC,EACnBkP,EAAG,oBAAoB,gBAAiB8lQ,CAAY,EACrD,CACG/9Q,GACFiY,EAAG,iBAAiB,gBAAiB8lQ,CAAY,CAErD,CACA,SAASC,GAAiB/lQ,EAAI3Q,EAAM22Q,EAAgB,CAClD,MAAM1tQ,EAAS4rD,KACf,OAAI8hN,EACKhmQ,EAAG3Q,IAAS,QAAU,cAAgB,cAAc,EAAI,WAAWiJ,EAAO,iBAAiB0H,EAAI,IAAI,EAAE,iBAAiB3Q,IAAS,QAAU,eAAiB,YAAY,CAAC,EAAI,WAAWiJ,EAAO,iBAAiB0H,EAAI,IAAI,EAAE,iBAAiB3Q,IAAS,QAAU,cAAgB,eAAe,CAAC,EAE9R2Q,EAAG,WACZ,CACA,SAASimQ,GAAkBjmQ,EAAI,CAC7B,OAAQ,MAAM,QAAQA,CAAE,EAAIA,EAAK,CAACA,CAAE,GAAG,OAAO,GAAK,CAAC,CAAC,CAAC,CACxD,CACA,SAASkmQ,GAAalC,EAAQ,CAC5B,OAAOvuQ,GACD,KAAK,IAAIA,CAAC,EAAI,GAAKuuQ,EAAO,SAAWA,EAAO,QAAQ,WAAa,KAAK,IAAIvuQ,CAAC,EAAI,KAAO,EACjFA,EAAI,KAENA,CAEX,CCrUA,IAAIT,GACJ,SAASmxQ,KAAc,CACrB,MAAM7tQ,EAAS4rD,KACTjyD,EAAWqpJ,KACjB,MAAO,CACL,aAAcrpJ,EAAS,iBAAmBA,EAAS,gBAAgB,OAAS,mBAAoBA,EAAS,gBAAgB,MACzH,MAAO,CAAC,EAAE,iBAAkBqG,GAAUA,EAAO,eAAiBrG,aAAoBqG,EAAO,cAC7F,CACA,CACA,SAAS8tQ,IAAa,CACpB,OAAKpxQ,KACHA,GAAUmxQ,IAAW,GAEhBnxQ,EACT,CAEA,IAAIqxQ,GACJ,SAASC,IAAWz/M,EAAO,CACzB,GAAI,CACF,UAAAs4H,CACD,EAAGt4H,IAAU,OAAS,GAAKA,EAC5B,MAAM7xD,EAAUoxQ,KACV9tQ,EAAS4rD,KACTqiN,EAAWjuQ,EAAO,UAAU,SAC5BmyB,EAAK00J,GAAa7mL,EAAO,UAAU,UACnCumL,EAAS,CACb,IAAK,GACL,QAAS,EACb,EACQ2nF,EAAcluQ,EAAO,OAAO,MAC5BmuQ,EAAenuQ,EAAO,OAAO,OAC7BouQ,EAAUj8O,EAAG,MAAM,6BAA6B,EACtD,IAAIk8O,EAAOl8O,EAAG,MAAM,sBAAsB,EAC1C,MAAMm8O,EAAOn8O,EAAG,MAAM,yBAAyB,EACzCo8O,EAAS,CAACF,GAAQl8O,EAAG,MAAM,4BAA4B,EACvDq8O,EAAUP,IAAa,QAC7B,IAAIQ,EAAQR,IAAa,WAGzB,MAAMS,EAAc,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAU,EACrK,MAAI,CAACL,GAAQI,GAAS/xQ,EAAQ,OAASgyQ,EAAY,QAAQ,GAAGR,CAAW,IAAIC,CAAY,EAAE,GAAK,IAC9FE,EAAOl8O,EAAG,MAAM,qBAAqB,EAChCk8O,IAAMA,EAAO,CAAC,EAAG,EAAG,QAAQ,GACjCI,EAAQ,IAINL,GAAW,CAACI,IACdjoF,EAAO,GAAK,UACZA,EAAO,QAAU,KAEf8nF,GAAQE,GAAUD,KACpB/nF,EAAO,GAAK,MACZA,EAAO,IAAM,IAIRA,CACT,CACA,SAASooF,GAAUC,EAAW,CAC5B,OAAIA,IAAc,SAChBA,EAAY,IAETb,KACHA,GAAeC,IAAWY,CAAS,GAE9Bb,EACT,CAEA,IAAI9xN,GACJ,SAAS4yN,KAAc,CACrB,MAAM7uQ,EAAS4rD,KACT26H,EAASooF,KACf,IAAIG,EAAqB,GACzB,SAASjhF,GAAW,CAClB,MAAM17J,EAAKnyB,EAAO,UAAU,UAAU,YAAW,EACjD,OAAOmyB,EAAG,QAAQ,QAAQ,GAAK,GAAKA,EAAG,QAAQ,QAAQ,EAAI,GAAKA,EAAG,QAAQ,SAAS,EAAI,CACzF,CACD,GAAI07J,EAAQ,EAAI,CACd,MAAM17J,EAAK,OAAOnyB,EAAO,UAAU,SAAS,EAC5C,GAAImyB,EAAG,SAAS,UAAU,EAAG,CAC3B,KAAM,CAAC0nJ,EAAOC,CAAK,EAAI3nJ,EAAG,MAAM,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI/yB,GAAO,OAAOA,CAAG,CAAC,EAC9F0vQ,EAAqBj1F,EAAQ,IAAMA,IAAU,IAAMC,EAAQ,CAC5D,CACF,CACD,MAAMi1F,EAAY,+CAA+C,KAAK/uQ,EAAO,UAAU,SAAS,EAC1FgvQ,EAAkBnhF,IAClBohF,EAAYD,GAAmBD,GAAaxoF,EAAO,IACzD,MAAO,CACL,SAAUuoF,GAAsBE,EAChC,mBAAAF,EACA,UAAAG,EACA,UAAAF,CACJ,CACA,CACA,SAASG,IAAa,CACpB,OAAKjzN,KACHA,GAAU4yN,IAAW,GAEhB5yN,EACT,CAEA,SAASkzN,IAAOlwN,EAAM,CACpB,GAAI,CACF,OAAAysN,EACA,GAAAjwQ,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAMj/C,EAAS4rD,KACf,IAAIgrJ,EAAW,KACXy4D,EAAiB,KACrB,MAAMC,EAAgB,IAAM,CACtB,CAAC5D,GAAUA,EAAO,WAAa,CAACA,EAAO,cAC3C0D,EAAK,cAAc,EACnBA,EAAK,QAAQ,EACjB,EACQG,EAAiB,IAAM,CACvB,CAAC7D,GAAUA,EAAO,WAAa,CAACA,EAAO,cAC3C90D,EAAW,IAAI,eAAezrN,GAAW,CACvCkkR,EAAiBrvQ,EAAO,sBAAsB,IAAM,CAClD,KAAM,CACJ,MAAA+b,EACA,OAAAs5C,CACD,EAAGq2M,EACJ,IAAI8D,EAAWzzP,EACXiwN,EAAY32K,EAChBlqE,EAAQ,QAAQuiE,GAAS,CACvB,GAAI,CACF,eAAA+hN,EACA,YAAAC,EACA,OAAA5qR,CACD,EAAG4oE,EACA5oE,GAAUA,IAAW4mR,EAAO,KAChC8D,EAAWE,EAAcA,EAAY,OAASD,EAAe,CAAC,GAAKA,GAAgB,WACnFzjC,EAAY0jC,EAAcA,EAAY,QAAUD,EAAe,CAAC,GAAKA,GAAgB,UAC/F,CAAS,GACGD,IAAazzP,GAASiwN,IAAc32K,IACtCi6M,GAEV,CAAO,CACP,CAAK,EACD14D,EAAS,QAAQ80D,EAAO,EAAE,EAC9B,EACQiE,EAAiB,IAAM,CACvBN,GACFrvQ,EAAO,qBAAqBqvQ,CAAc,EAExCz4D,GAAYA,EAAS,WAAa80D,EAAO,KAC3C90D,EAAS,UAAU80D,EAAO,EAAE,EAC5B90D,EAAW,KAEjB,EACQg5D,EAA2B,IAAM,CACjC,CAAClE,GAAUA,EAAO,WAAa,CAACA,EAAO,aAC3C0D,EAAK,mBAAmB,CAC5B,EACE3zQ,EAAG,OAAQ,IAAM,CACf,GAAIiwQ,EAAO,OAAO,gBAAkB,OAAO1rQ,EAAO,eAAmB,IAAa,CAChFuvQ,IACA,MACD,CACDvvQ,EAAO,iBAAiB,SAAUsvQ,CAAa,EAC/CtvQ,EAAO,iBAAiB,oBAAqB4vQ,CAAwB,CACzE,CAAG,EACDn0Q,EAAG,UAAW,IAAM,CAClBk0Q,IACA3vQ,EAAO,oBAAoB,SAAUsvQ,CAAa,EAClDtvQ,EAAO,oBAAoB,oBAAqB4vQ,CAAwB,CAC5E,CAAG,CACH,CAEA,SAASC,IAAS5wN,EAAM,CACtB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAM8wN,EAAY,GACZ/vQ,EAAS4rD,KACTokN,EAAS,SAAUlrR,EAAQ4J,EAAS,CACpCA,IAAY,SACdA,EAAU,IAEZ,MAAMuhR,EAAejwQ,EAAO,kBAAoBA,EAAO,uBACjD42M,EAAW,IAAIq5D,EAAav8D,GAAa,CAI7C,GAAIg4D,EAAO,oBAAqB,OAChC,GAAIh4D,EAAU,SAAW,EAAG,CAC1B07D,EAAK,iBAAkB17D,EAAU,CAAC,CAAC,EACnC,MACD,CACD,MAAMw8D,EAAiB,UAA0B,CAC/Cd,EAAK,iBAAkB17D,EAAU,CAAC,CAAC,CAC3C,EACU1zM,EAAO,sBACTA,EAAO,sBAAsBkwQ,CAAc,EAE3ClwQ,EAAO,WAAWkwQ,EAAgB,CAAC,CAE3C,CAAK,EACDt5D,EAAS,QAAQ9xN,EAAQ,CACvB,WAAY,OAAO4J,EAAQ,WAAe,IAAc,GAAOA,EAAQ,WACvE,UAAWg9Q,EAAO,YAAc,OAAOh9Q,EAAQ,UAAc,IAAc,GAAOA,GAAS,UAC3F,cAAe,OAAOA,EAAQ,cAAkB,IAAc,GAAOA,EAAQ,aACnF,CAAK,EACDqhR,EAAU,KAAKn5D,CAAQ,CAC3B,EACQpnM,EAAO,IAAM,CACjB,GAAKk8P,EAAO,OAAO,SACnB,IAAIA,EAAO,OAAO,eAAgB,CAChC,MAAMyE,EAAmB9C,GAAe3B,EAAO,MAAM,EACrD,QAASxiR,EAAI,EAAGA,EAAIinR,EAAiB,OAAQjnR,GAAK,EAChD8mR,EAAOG,EAAiBjnR,CAAC,CAAC,CAE7B,CAED8mR,EAAOtE,EAAO,OAAQ,CACpB,UAAWA,EAAO,OAAO,oBAC/B,CAAK,EAGDsE,EAAOtE,EAAO,UAAW,CACvB,WAAY,EAClB,CAAK,EACL,EACQ/jC,EAAU,IAAM,CACpBooC,EAAU,QAAQn5D,GAAY,CAC5BA,EAAS,WAAU,CACzB,CAAK,EACDm5D,EAAU,OAAO,EAAGA,EAAU,MAAM,CACxC,EACED,EAAa,CACX,SAAU,GACV,eAAgB,GAChB,qBAAsB,EAC1B,CAAG,EACDr0Q,EAAG,OAAQ+T,CAAI,EACf/T,EAAG,UAAWksO,CAAO,CACvB,CAIA,IAAIyoC,IAAgB,CAClB,GAAG74P,EAAQ1P,EAASouF,EAAU,CAC5B,MAAM3mF,EAAO,KAEb,GADI,CAACA,EAAK,iBAAmBA,EAAK,WAC9B,OAAOzH,GAAY,WAAY,OAAOyH,EAC1C,MAAM9kB,EAASyrG,EAAW,UAAY,OACtC,OAAA1+E,EAAO,MAAM,GAAG,EAAE,QAAQryB,GAAS,CAC5BoqB,EAAK,gBAAgBpqB,CAAK,IAAGoqB,EAAK,gBAAgBpqB,CAAK,EAAI,IAChEoqB,EAAK,gBAAgBpqB,CAAK,EAAEsF,CAAM,EAAEqd,CAAO,CACjD,CAAK,EACMyH,CACR,EACD,KAAKiI,EAAQ1P,EAASouF,EAAU,CAC9B,MAAM3mF,EAAO,KAEb,GADI,CAACA,EAAK,iBAAmBA,EAAK,WAC9B,OAAOzH,GAAY,WAAY,OAAOyH,EAC1C,SAAS+gQ,GAAc,CACrB/gQ,EAAK,IAAIiI,EAAQ84P,CAAW,EACxBA,EAAY,gBACd,OAAOA,EAAY,eAErB,QAAS3yN,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAE7BrL,EAAQ,MAAMyH,EAAMxE,CAAI,CACzB,CACD,OAAAulQ,EAAY,eAAiBxoQ,EACtByH,EAAK,GAAGiI,EAAQ84P,EAAap6K,CAAQ,CAC7C,EACD,MAAMpuF,EAASouF,EAAU,CACvB,MAAM3mF,EAAO,KAEb,GADI,CAACA,EAAK,iBAAmBA,EAAK,WAC9B,OAAOzH,GAAY,WAAY,OAAOyH,EAC1C,MAAM9kB,EAASyrG,EAAW,UAAY,OACtC,OAAI3mF,EAAK,mBAAmB,QAAQzH,CAAO,EAAI,GAC7CyH,EAAK,mBAAmB9kB,CAAM,EAAEqd,CAAO,EAElCyH,CACR,EACD,OAAOzH,EAAS,CACd,MAAMyH,EAAO,KAEb,GADI,CAACA,EAAK,iBAAmBA,EAAK,WAC9B,CAACA,EAAK,mBAAoB,OAAOA,EACrC,MAAMhd,EAAQgd,EAAK,mBAAmB,QAAQzH,CAAO,EACrD,OAAIvV,GAAS,GACXgd,EAAK,mBAAmB,OAAOhd,EAAO,CAAC,EAElCgd,CACR,EACD,IAAIiI,EAAQ1P,EAAS,CACnB,MAAMyH,EAAO,KAEb,MADI,CAACA,EAAK,iBAAmBA,EAAK,WAC9B,CAACA,EAAK,iBACViI,EAAO,MAAM,GAAG,EAAE,QAAQryB,GAAS,CAC7B,OAAO2iB,EAAY,IACrByH,EAAK,gBAAgBpqB,CAAK,EAAI,GACrBoqB,EAAK,gBAAgBpqB,CAAK,GACnCoqB,EAAK,gBAAgBpqB,CAAK,EAAE,QAAQ,CAACorR,EAAch+Q,IAAU,EACvDg+Q,IAAiBzoQ,GAAWyoQ,EAAa,gBAAkBA,EAAa,iBAAmBzoQ,IAC7FyH,EAAK,gBAAgBpqB,CAAK,EAAE,OAAOoN,EAAO,CAAC,CAEvD,CAAS,CAET,CAAK,EACMgd,CACR,EACD,MAAO,CACL,MAAMA,EAAO,KAEb,GADI,CAACA,EAAK,iBAAmBA,EAAK,WAC9B,CAACA,EAAK,gBAAiB,OAAOA,EAClC,IAAIiI,EACA3D,EACAnS,EACJ,QAASs/C,EAAQ,UAAU,OAAQj2C,EAAO,IAAI,MAAMi2C,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFl2C,EAAKk2C,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAI,OAAOl2C,EAAK,CAAC,GAAM,UAAY,MAAM,QAAQA,EAAK,CAAC,CAAC,GACtDyM,EAASzM,EAAK,CAAC,EACf8I,EAAO9I,EAAK,MAAM,EAAGA,EAAK,MAAM,EAChCrJ,EAAU6N,IAEViI,EAASzM,EAAK,CAAC,EAAE,OACjB8I,EAAO9I,EAAK,CAAC,EAAE,KACfrJ,EAAUqJ,EAAK,CAAC,EAAE,SAAWwE,GAE/BsE,EAAK,QAAQnS,CAAO,GACA,MAAM,QAAQ8V,CAAM,EAAIA,EAASA,EAAO,MAAM,GAAG,GACzD,QAAQryB,GAAS,CACvBoqB,EAAK,oBAAsBA,EAAK,mBAAmB,QACrDA,EAAK,mBAAmB,QAAQghQ,GAAgB,CAC9CA,EAAa,MAAM7uQ,EAAS,CAACvc,EAAO,GAAG0uB,CAAI,CAAC,CACtD,CAAS,EAECtE,EAAK,iBAAmBA,EAAK,gBAAgBpqB,CAAK,GACpDoqB,EAAK,gBAAgBpqB,CAAK,EAAE,QAAQorR,GAAgB,CAClDA,EAAa,MAAM7uQ,EAASmS,CAAI,CAC1C,CAAS,CAET,CAAK,EACMtE,CACR,CACH,EAEA,SAASihQ,KAAa,CACpB,MAAM7E,EAAS,KACf,IAAI3vP,EACAs5C,EACJ,MAAM3tD,EAAKgkQ,EAAO,GACd,OAAOA,EAAO,OAAO,MAAU,KAAeA,EAAO,OAAO,QAAU,KACxE3vP,EAAQ2vP,EAAO,OAAO,MAEtB3vP,EAAQrU,EAAG,YAET,OAAOgkQ,EAAO,OAAO,OAAW,KAAeA,EAAO,OAAO,SAAW,KAC1Er2M,EAASq2M,EAAO,OAAO,OAEvBr2M,EAAS3tD,EAAG,aAEV,EAAAqU,IAAU,GAAK2vP,EAAO,aAAY,GAAMr2M,IAAW,GAAKq2M,EAAO,gBAKnE3vP,EAAQA,EAAQ,SAASoxP,GAAazlQ,EAAI,cAAc,GAAK,EAAG,EAAE,EAAI,SAASylQ,GAAazlQ,EAAI,eAAe,GAAK,EAAG,EAAE,EACzH2tD,EAASA,EAAS,SAAS83M,GAAazlQ,EAAI,aAAa,GAAK,EAAG,EAAE,EAAI,SAASylQ,GAAazlQ,EAAI,gBAAgB,GAAK,EAAG,EAAE,EACvH,OAAO,MAAMqU,CAAK,IAAGA,EAAQ,GAC7B,OAAO,MAAMs5C,CAAM,IAAGA,EAAS,GACnC,OAAO,OAAOq2M,EAAQ,CACpB,MAAA3vP,EACA,OAAAs5C,EACA,KAAMq2M,EAAO,aAAc,EAAG3vP,EAAQs5C,CAC1C,CAAG,EACH,CAEA,SAASm7M,KAAe,CACtB,MAAM9E,EAAS,KACf,SAAS+E,EAA0B3iR,EAAMiyD,EAAO,CAC9C,OAAO,WAAWjyD,EAAK,iBAAiB49Q,EAAO,kBAAkB3rN,CAAK,CAAC,GAAK,CAAC,CAC9E,CACD,MAAMv3B,EAASkjP,EAAO,OAChB,CACJ,UAAAgF,EACA,SAAAC,EACA,KAAMC,EACN,aAAcC,EACd,SAAAC,CACD,EAAGpF,EACEqF,EAAYrF,EAAO,SAAWljP,EAAO,QAAQ,QAC7CwoP,EAAuBD,EAAYrF,EAAO,QAAQ,OAAO,OAASA,EAAO,OAAO,OAChFuF,EAAS9E,GAAgBwE,EAAU,IAAIjF,EAAO,OAAO,UAAU,gBAAgB,EAC/EwF,EAAeH,EAAYrF,EAAO,QAAQ,OAAO,OAASuF,EAAO,OACvE,IAAIE,EAAW,GACf,MAAMC,EAAa,GACbC,EAAkB,GACxB,IAAIC,EAAe9oP,EAAO,mBACtB,OAAO8oP,GAAiB,aAC1BA,EAAe9oP,EAAO,mBAAmB,KAAKkjP,CAAM,GAEtD,IAAI6F,EAAc/oP,EAAO,kBACrB,OAAO+oP,GAAgB,aACzBA,EAAc/oP,EAAO,kBAAkB,KAAKkjP,CAAM,GAEpD,MAAM8F,EAAyB9F,EAAO,SAAS,OACzC+F,EAA2B/F,EAAO,WAAW,OACnD,IAAIgG,EAAelpP,EAAO,aACtBmpP,EAAgB,CAACL,EACjBM,EAAgB,EAChBt/Q,EAAQ,EACZ,GAAI,OAAOs+Q,EAAe,IACxB,OAEE,OAAOc,GAAiB,UAAYA,EAAa,QAAQ,GAAG,GAAK,EACnEA,EAAe,WAAWA,EAAa,QAAQ,IAAK,EAAE,CAAC,EAAI,IAAMd,EACxD,OAAOc,GAAiB,WACjCA,EAAe,WAAWA,CAAY,GAExChG,EAAO,YAAc,CAACgG,EAGtBT,EAAO,QAAQ/E,GAAW,CACpB2E,EACF3E,EAAQ,MAAM,WAAa,GAE3BA,EAAQ,MAAM,YAAc,GAE9BA,EAAQ,MAAM,aAAe,GAC7BA,EAAQ,MAAM,UAAY,EAC9B,CAAG,EAGG1jP,EAAO,gBAAkBA,EAAO,UAClC8iP,GAAeoF,EAAW,kCAAmC,EAAE,EAC/DpF,GAAeoF,EAAW,iCAAkC,EAAE,GAEhE,MAAMmB,EAAcrpP,EAAO,MAAQA,EAAO,KAAK,KAAO,GAAKkjP,EAAO,KAC9DmG,EACFnG,EAAO,KAAK,WAAWuF,CAAM,EACpBvF,EAAO,MAChBA,EAAO,KAAK,cAId,IAAIoG,EACJ,MAAMC,EAAuBvpP,EAAO,gBAAkB,QAAUA,EAAO,aAAe,OAAO,KAAKA,EAAO,WAAW,EAAE,OAAOxxB,GACpH,OAAOwxB,EAAO,YAAYxxB,CAAG,EAAE,cAAkB,GACzD,EAAE,OAAS,EACZ,QAAS9N,EAAI,EAAGA,EAAIgoR,EAAchoR,GAAK,EAAG,CACxC4oR,EAAY,EACZ,IAAIza,EAKJ,GAJI4Z,EAAO/nR,CAAC,IAAGmuQ,EAAQ4Z,EAAO/nR,CAAC,GAC3B2oR,GACFnG,EAAO,KAAK,YAAYxiR,EAAGmuQ,EAAO4Z,CAAM,EAEtC,EAAAA,EAAO/nR,CAAC,GAAKikR,GAAa9V,EAAO,SAAS,IAAM,QAEpD,IAAI7uO,EAAO,gBAAkB,OAAQ,CAC/BupP,IACFd,EAAO/nR,CAAC,EAAE,MAAMwiR,EAAO,kBAAkB,OAAO,CAAC,EAAI,IAEvD,MAAMsG,EAAc,iBAAiB3a,CAAK,EACpC4a,EAAmB5a,EAAM,MAAM,UAC/B6a,EAAyB7a,EAAM,MAAM,gBAO3C,GANI4a,IACF5a,EAAM,MAAM,UAAY,QAEtB6a,IACF7a,EAAM,MAAM,gBAAkB,QAE5B7uO,EAAO,aACTspP,EAAYpG,EAAO,eAAiB+B,GAAiBpW,EAAO,QAAS,EAAI,EAAIoW,GAAiBpW,EAAO,SAAU,EAAI,MAC9G,CAEL,MAAMt7O,GAAQ00P,EAA0BuB,EAAa,OAAO,EACtDG,GAAc1B,EAA0BuB,EAAa,cAAc,EACnEI,GAAe3B,EAA0BuB,EAAa,eAAe,EACrEK,GAAa5B,EAA0BuB,EAAa,aAAa,EACjEM,GAAc7B,EAA0BuB,EAAa,cAAc,EACnEO,GAAYP,EAAY,iBAAiB,YAAY,EAC3D,GAAIO,IAAaA,KAAc,aAC7BT,EAAY/1P,GAAQs2P,GAAaC,OAC5B,CACL,KAAM,CACJ,YAAAlzL,GACA,YAAAozL,EACD,EAAGnb,EACJya,EAAY/1P,GAAQo2P,GAAcC,GAAeC,GAAaC,IAAeE,GAAcpzL,GAC5F,CACF,CACG6yL,IACF5a,EAAM,MAAM,UAAY4a,GAEtBC,IACF7a,EAAM,MAAM,gBAAkB6a,GAE5B1pP,EAAO,eAAcspP,EAAY,KAAK,MAAMA,CAAS,EAC/D,MACMA,GAAalB,GAAcpoP,EAAO,cAAgB,GAAKkpP,GAAgBlpP,EAAO,cAC1EA,EAAO,eAAcspP,EAAY,KAAK,MAAMA,CAAS,GACrDb,EAAO/nR,CAAC,IACV+nR,EAAO/nR,CAAC,EAAE,MAAMwiR,EAAO,kBAAkB,OAAO,CAAC,EAAI,GAAGoG,CAAS,MAGjEb,EAAO/nR,CAAC,IACV+nR,EAAO/nR,CAAC,EAAE,gBAAkB4oR,GAE9BT,EAAgB,KAAKS,CAAS,EAC1BtpP,EAAO,gBACTmpP,EAAgBA,EAAgBG,EAAY,EAAIF,EAAgB,EAAIF,EAChEE,IAAkB,GAAK1oR,IAAM,IAAGyoR,EAAgBA,EAAgBf,EAAa,EAAIc,GACjFxoR,IAAM,IAAGyoR,EAAgBA,EAAgBf,EAAa,EAAIc,GAC1D,KAAK,IAAIC,CAAa,EAAI,EAAI,MAAMA,EAAgB,GACpDnpP,EAAO,eAAcmpP,EAAgB,KAAK,MAAMA,CAAa,GAC7Dr/Q,EAAQk2B,EAAO,iBAAmB,GAAG2oP,EAAS,KAAKQ,CAAa,EACpEP,EAAW,KAAKO,CAAa,IAEzBnpP,EAAO,eAAcmpP,EAAgB,KAAK,MAAMA,CAAa,IAC5Dr/Q,EAAQ,KAAK,IAAIo5Q,EAAO,OAAO,mBAAoBp5Q,CAAK,GAAKo5Q,EAAO,OAAO,iBAAmB,GAAGyF,EAAS,KAAKQ,CAAa,EACjIP,EAAW,KAAKO,CAAa,EAC7BA,EAAgBA,EAAgBG,EAAYJ,GAE9ChG,EAAO,aAAeoG,EAAYJ,EAClCE,EAAgBE,EAChBx/Q,GAAS,EACV,CAaD,GAZAo5Q,EAAO,YAAc,KAAK,IAAIA,EAAO,YAAakF,CAAU,EAAIW,EAC5DV,GAAOC,IAAatoP,EAAO,SAAW,SAAWA,EAAO,SAAW,eACrEkoP,EAAU,MAAM,MAAQ,GAAGhF,EAAO,YAAcgG,CAAY,MAE1DlpP,EAAO,iBACTkoP,EAAU,MAAMhF,EAAO,kBAAkB,OAAO,CAAC,EAAI,GAAGA,EAAO,YAAcgG,CAAY,MAEvFG,GACFnG,EAAO,KAAK,kBAAkBoG,EAAWX,CAAQ,EAI/C,CAAC3oP,EAAO,eAAgB,CAC1B,MAAMiqP,EAAgB,GACtB,QAASvpR,EAAI,EAAGA,EAAIioR,EAAS,OAAQjoR,GAAK,EAAG,CAC3C,IAAIwpR,EAAiBvB,EAASjoR,CAAC,EAC3Bs/B,EAAO,eAAckqP,EAAiB,KAAK,MAAMA,CAAc,GAC/DvB,EAASjoR,CAAC,GAAKwiR,EAAO,YAAckF,GACtC6B,EAAc,KAAKC,CAAc,CAEpC,CACDvB,EAAWsB,EACP,KAAK,MAAM/G,EAAO,YAAckF,CAAU,EAAI,KAAK,MAAMO,EAASA,EAAS,OAAS,CAAC,CAAC,EAAI,GAC5FA,EAAS,KAAKzF,EAAO,YAAckF,CAAU,CAEhD,CACD,GAAIG,GAAavoP,EAAO,KAAM,CAC5B,MAAMzxB,EAAOs6Q,EAAgB,CAAC,EAAIK,EAClC,GAAIlpP,EAAO,eAAiB,EAAG,CAC7B,MAAMxhB,EAAS,KAAK,MAAM0kQ,EAAO,QAAQ,aAAeA,EAAO,QAAQ,aAAeljP,EAAO,cAAc,EACrGmqP,EAAY57Q,EAAOyxB,EAAO,eAChC,QAASt/B,EAAI,EAAGA,EAAI8d,EAAQ9d,GAAK,EAC/BioR,EAAS,KAAKA,EAASA,EAAS,OAAS,CAAC,EAAIwB,CAAS,CAE1D,CACD,QAASzpR,EAAI,EAAGA,EAAIwiR,EAAO,QAAQ,aAAeA,EAAO,QAAQ,YAAaxiR,GAAK,EAC7Es/B,EAAO,iBAAmB,GAC5B2oP,EAAS,KAAKA,EAASA,EAAS,OAAS,CAAC,EAAIp6Q,CAAI,EAEpDq6Q,EAAW,KAAKA,EAAWA,EAAW,OAAS,CAAC,EAAIr6Q,CAAI,EACxD20Q,EAAO,aAAe30Q,CAEzB,CAED,GADIo6Q,EAAS,SAAW,IAAGA,EAAW,CAAC,CAAC,GACpCO,IAAiB,EAAG,CACtB,MAAM16Q,EAAM00Q,EAAO,gBAAkBmF,EAAM,aAAenF,EAAO,kBAAkB,aAAa,EAChGuF,EAAO,OAAO,CAAC7nR,EAAGw/Q,IACZ,CAACpgP,EAAO,SAAWA,EAAO,KAAa,GACvCogP,IAAeqI,EAAO,OAAS,CAIpC,EAAE,QAAQ/E,GAAW,CACpBA,EAAQ,MAAMl1Q,CAAG,EAAI,GAAG06Q,CAAY,IAC1C,CAAK,CACF,CACD,GAAIlpP,EAAO,gBAAkBA,EAAO,qBAAsB,CACxD,IAAIoqP,EAAgB,EACpBvB,EAAgB,QAAQwB,GAAkB,CACxCD,GAAiBC,GAAkBnB,GAAgB,EACzD,CAAK,EACDkB,GAAiBlB,EACjB,MAAMoB,EAAUF,EAAgBhC,EAAagC,EAAgBhC,EAAa,EAC1EO,EAAWA,EAAS,IAAI4B,GAClBA,GAAQ,EAAU,CAACzB,EACnByB,EAAOD,EAAgBA,EAAUvB,EAC9BwB,CACR,CACF,CACD,GAAIvqP,EAAO,yBAA0B,CACnC,IAAIoqP,EAAgB,EACpBvB,EAAgB,QAAQwB,GAAkB,CACxCD,GAAiBC,GAAkBnB,GAAgB,EACzD,CAAK,EACDkB,GAAiBlB,EACjB,MAAMsB,GAAcxqP,EAAO,oBAAsB,IAAMA,EAAO,mBAAqB,GACnF,GAAIoqP,EAAgBI,EAAapC,EAAY,CAC3C,MAAMqC,GAAmBrC,EAAagC,EAAgBI,GAAc,EACpE7B,EAAS,QAAQ,CAAC4B,EAAMG,IAAc,CACpC/B,EAAS+B,CAAS,EAAIH,EAAOE,CACrC,CAAO,EACD7B,EAAW,QAAQ,CAAC2B,EAAMG,IAAc,CACtC9B,EAAW8B,CAAS,EAAIH,EAAOE,CACvC,CAAO,CACF,CACF,CAOD,GANA,OAAO,OAAOvH,EAAQ,CACpB,OAAAuF,EACA,SAAAE,EACA,WAAAC,EACA,gBAAAC,CACJ,CAAG,EACG7oP,EAAO,gBAAkBA,EAAO,SAAW,CAACA,EAAO,qBAAsB,CAC3E8iP,GAAeoF,EAAW,kCAAmC,GAAG,CAACS,EAAS,CAAC,CAAC,IAAI,EAChF7F,GAAeoF,EAAW,iCAAkC,GAAGhF,EAAO,KAAO,EAAI2F,EAAgBA,EAAgB,OAAS,CAAC,EAAI,CAAC,IAAI,EACpI,MAAM8B,EAAgB,CAACzH,EAAO,SAAS,CAAC,EAClC0H,EAAkB,CAAC1H,EAAO,WAAW,CAAC,EAC5CA,EAAO,SAAWA,EAAO,SAAS,IAAIvuQ,GAAKA,EAAIg2Q,CAAa,EAC5DzH,EAAO,WAAaA,EAAO,WAAW,IAAIvuQ,GAAKA,EAAIi2Q,CAAe,CACnE,CAeD,GAdIlC,IAAiBF,GACnBtF,EAAO,KAAK,oBAAoB,EAE9ByF,EAAS,SAAWK,IAClB9F,EAAO,OAAO,eAAeA,EAAO,cAAa,EACrDA,EAAO,KAAK,sBAAsB,GAEhC0F,EAAW,SAAWK,GACxB/F,EAAO,KAAK,wBAAwB,EAElCljP,EAAO,qBACTkjP,EAAO,mBAAkB,EAE3BA,EAAO,KAAK,eAAe,EACvB,CAACqF,GAAa,CAACvoP,EAAO,UAAYA,EAAO,SAAW,SAAWA,EAAO,SAAW,QAAS,CAC5F,MAAM6qP,EAAsB,GAAG7qP,EAAO,sBAAsB,kBACtD8qP,EAA6B5H,EAAO,GAAG,UAAU,SAAS2H,CAAmB,EAC/EnC,GAAgB1oP,EAAO,wBACpB8qP,GAA4B5H,EAAO,GAAG,UAAU,IAAI2H,CAAmB,EACnEC,GACT5H,EAAO,GAAG,UAAU,OAAO2H,CAAmB,CAEjD,CACH,CAEA,SAASE,IAAiBjzP,EAAO,CAC/B,MAAMorP,EAAS,KACT8H,EAAe,GACfzC,EAAYrF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAC1D,IAAI1/B,EAAY,EACZ,EACA,OAAO1rN,GAAU,SACnBorP,EAAO,cAAcprP,CAAK,EACjBA,IAAU,IACnBorP,EAAO,cAAcA,EAAO,OAAO,KAAK,EAE1C,MAAM+H,EAAkBnhR,GAClBy+Q,EACKrF,EAAO,OAAOA,EAAO,oBAAoBp5Q,CAAK,CAAC,EAEjDo5Q,EAAO,OAAOp5Q,CAAK,EAG5B,GAAIo5Q,EAAO,OAAO,gBAAkB,QAAUA,EAAO,OAAO,cAAgB,EAC1E,GAAIA,EAAO,OAAO,gBACfA,EAAO,eAAiB,IAAI,QAAQrU,GAAS,CAC5Cmc,EAAa,KAAKnc,CAAK,CAC/B,CAAO,MAED,KAAK,EAAI,EAAG,EAAI,KAAK,KAAKqU,EAAO,OAAO,aAAa,EAAG,GAAK,EAAG,CAC9D,MAAMp5Q,EAAQo5Q,EAAO,YAAc,EACnC,GAAIp5Q,EAAQo5Q,EAAO,OAAO,QAAU,CAACqF,EAAW,MAChDyC,EAAa,KAAKC,EAAgBnhR,CAAK,CAAC,CACzC,MAGHkhR,EAAa,KAAKC,EAAgB/H,EAAO,WAAW,CAAC,EAIvD,IAAK,EAAI,EAAG,EAAI8H,EAAa,OAAQ,GAAK,EACxC,GAAI,OAAOA,EAAa,CAAC,EAAM,IAAa,CAC1C,MAAMn+M,EAASm+M,EAAa,CAAC,EAAE,aAC/BxnC,EAAY32K,EAAS22K,EAAY32K,EAAS22K,CAC3C,EAICA,GAAaA,IAAc,KAAG0/B,EAAO,UAAU,MAAM,OAAS,GAAG1/B,CAAS,KAChF,CAEA,SAAS0nC,KAAqB,CAC5B,MAAMhI,EAAS,KACTuF,EAASvF,EAAO,OAEhBiI,EAAcjI,EAAO,UAAYA,EAAO,aAAc,EAAGA,EAAO,UAAU,WAAaA,EAAO,UAAU,UAAY,EAC1H,QAASxiR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EACtC+nR,EAAO/nR,CAAC,EAAE,mBAAqBwiR,EAAO,aAAc,EAAGuF,EAAO/nR,CAAC,EAAE,WAAa+nR,EAAO/nR,CAAC,EAAE,WAAayqR,EAAcjI,EAAO,uBAE9H,CAEA,MAAMkI,GAAuB,CAAC1H,EAASpwN,EAAWhzC,IAAc,CAC1DgzC,GAAa,CAACowN,EAAQ,UAAU,SAASpjQ,CAAS,EACpDojQ,EAAQ,UAAU,IAAIpjQ,CAAS,EACtB,CAACgzC,GAAaowN,EAAQ,UAAU,SAASpjQ,CAAS,GAC3DojQ,EAAQ,UAAU,OAAOpjQ,CAAS,CAEtC,EACA,SAAS+qQ,IAAqBC,EAAW,CACnCA,IAAc,SAChBA,EAAY,MAAQ,KAAK,WAAa,GAExC,MAAMpI,EAAS,KACTljP,EAASkjP,EAAO,OAChB,CACJ,OAAAuF,EACA,aAAcJ,EACd,SAAAM,CACD,EAAGzF,EACJ,GAAIuF,EAAO,SAAW,EAAG,OACrB,OAAOA,EAAO,CAAC,EAAE,kBAAsB,KAAavF,EAAO,qBAC/D,IAAIqI,EAAe,CAACD,EAChBjD,IAAKkD,EAAeD,GACxBpI,EAAO,qBAAuB,GAC9BA,EAAO,cAAgB,GACvB,IAAIgG,EAAelpP,EAAO,aACtB,OAAOkpP,GAAiB,UAAYA,EAAa,QAAQ,GAAG,GAAK,EACnEA,EAAe,WAAWA,EAAa,QAAQ,IAAK,EAAE,CAAC,EAAI,IAAMhG,EAAO,KAC/D,OAAOgG,GAAiB,WACjCA,EAAe,WAAWA,CAAY,GAExC,QAASxoR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAAG,CACzC,MAAMmuQ,EAAQ4Z,EAAO/nR,CAAC,EACtB,IAAI8qR,EAAc3c,EAAM,kBACpB7uO,EAAO,SAAWA,EAAO,iBAC3BwrP,GAAe/C,EAAO,CAAC,EAAE,mBAE3B,MAAMgD,GAAiBF,GAAgBvrP,EAAO,eAAiBkjP,EAAO,eAAiB,GAAKsI,IAAgB3c,EAAM,gBAAkBqa,GAC9HwC,GAAyBH,EAAe5C,EAAS,CAAC,GAAK3oP,EAAO,eAAiBkjP,EAAO,aAAY,EAAK,GAAKsI,IAAgB3c,EAAM,gBAAkBqa,GACpJyC,EAAc,EAAEJ,EAAeC,GAC/BI,EAAaD,EAAczI,EAAO,gBAAgBxiR,CAAC,EACnDmrR,EAAiBF,GAAe,GAAKA,GAAezI,EAAO,KAAOA,EAAO,gBAAgBxiR,CAAC,EAC1F44M,EAAYqyE,GAAe,GAAKA,EAAczI,EAAO,KAAO,GAAK0I,EAAa,GAAKA,GAAc1I,EAAO,MAAQyI,GAAe,GAAKC,GAAc1I,EAAO,KAC3J5pE,IACF4pE,EAAO,cAAc,KAAKrU,CAAK,EAC/BqU,EAAO,qBAAqB,KAAKxiR,CAAC,GAEpC0qR,GAAqBvc,EAAOv1D,EAAWt5K,EAAO,iBAAiB,EAC/DorP,GAAqBvc,EAAOgd,EAAgB7rP,EAAO,sBAAsB,EACzE6uO,EAAM,SAAWwZ,EAAM,CAACoD,EAAgBA,EACxC5c,EAAM,iBAAmBwZ,EAAM,CAACqD,EAAwBA,CACzD,CACH,CAEA,SAAS9mP,IAAe0mP,EAAW,CACjC,MAAMpI,EAAS,KACf,GAAI,OAAOoI,EAAc,IAAa,CACpC,MAAM15F,EAAasxF,EAAO,aAAe,GAAK,EAE9CoI,EAAYpI,GAAUA,EAAO,WAAaA,EAAO,UAAYtxF,GAAc,CAC5E,CACD,MAAM5xJ,EAASkjP,EAAO,OAChB4I,EAAiB5I,EAAO,aAAc,EAAGA,EAAO,aAAY,EAClE,GAAI,CACF,SAAAnzB,EACA,YAAAg8B,EACA,MAAAC,EACA,aAAAC,CACD,EAAG/I,EACJ,MAAMgJ,EAAeH,EACfI,EAASH,EACf,GAAIF,IAAmB,EACrB/7B,EAAW,EACXg8B,EAAc,GACdC,EAAQ,OACH,CACLj8B,GAAYu7B,EAAYpI,EAAO,aAAY,GAAM4I,EACjD,MAAMM,EAAqB,KAAK,IAAId,EAAYpI,EAAO,aAAY,CAAE,EAAI,EACnEmJ,EAAe,KAAK,IAAIf,EAAYpI,EAAO,aAAY,CAAE,EAAI,EACnE6I,EAAcK,GAAsBr8B,GAAY,EAChDi8B,EAAQK,GAAgBt8B,GAAY,EAChCq8B,IAAoBr8B,EAAW,GAC/Bs8B,IAAct8B,EAAW,EAC9B,CACD,GAAI/vN,EAAO,KAAM,CACf,MAAMssP,EAAkBpJ,EAAO,oBAAoB,CAAC,EAC9CqJ,EAAiBrJ,EAAO,oBAAoBA,EAAO,OAAO,OAAS,CAAC,EACpEsJ,EAAsBtJ,EAAO,WAAWoJ,CAAe,EACvDG,EAAqBvJ,EAAO,WAAWqJ,CAAc,EACrDG,EAAexJ,EAAO,WAAWA,EAAO,WAAW,OAAS,CAAC,EAC7DyJ,EAAe,KAAK,IAAIrB,CAAS,EACnCqB,GAAgBH,EAClBP,GAAgBU,EAAeH,GAAuBE,EAEtDT,GAAgBU,EAAeD,EAAeD,GAAsBC,EAElET,EAAe,IAAGA,GAAgB,EACvC,CACD,OAAO,OAAO/I,EAAQ,CACpB,SAAAnzB,EACA,aAAAk8B,EACA,YAAAF,EACA,MAAAC,CACJ,CAAG,GACGhsP,EAAO,qBAAuBA,EAAO,gBAAkBA,EAAO,aAAYkjP,EAAO,qBAAqBoI,CAAS,EAC/GS,GAAe,CAACG,GAClBhJ,EAAO,KAAK,uBAAuB,EAEjC8I,GAAS,CAACG,GACZjJ,EAAO,KAAK,iBAAiB,GAE3BgJ,GAAgB,CAACH,GAAeI,GAAU,CAACH,IAC7C9I,EAAO,KAAK,UAAU,EAExBA,EAAO,KAAK,WAAYnzB,CAAQ,CAClC,CAEA,MAAM68B,GAAqB,CAAClJ,EAASpwN,EAAWhzC,IAAc,CACxDgzC,GAAa,CAACowN,EAAQ,UAAU,SAASpjQ,CAAS,EACpDojQ,EAAQ,UAAU,IAAIpjQ,CAAS,EACtB,CAACgzC,GAAaowN,EAAQ,UAAU,SAASpjQ,CAAS,GAC3DojQ,EAAQ,UAAU,OAAOpjQ,CAAS,CAEtC,EACA,SAASusQ,KAAsB,CAC7B,MAAM3J,EAAS,KACT,CACJ,OAAAuF,EACA,OAAAzoP,EACA,SAAAmoP,EACA,YAAA2E,CACD,EAAG5J,EACEqF,EAAYrF,EAAO,SAAWljP,EAAO,QAAQ,QAC7CqpP,EAAcnG,EAAO,MAAQljP,EAAO,MAAQA,EAAO,KAAK,KAAO,EAC/D+sP,EAAmBlrR,GAChB8hR,GAAgBwE,EAAU,IAAInoP,EAAO,UAAU,GAAGn+B,CAAQ,iBAAiBA,CAAQ,EAAE,EAAE,CAAC,EAEjG,IAAImrR,EACAC,EACAC,EACJ,GAAI3E,EACF,GAAIvoP,EAAO,KAAM,CACf,IAAIogP,EAAa0M,EAAc5J,EAAO,QAAQ,aAC1C9C,EAAa,IAAGA,EAAa8C,EAAO,QAAQ,OAAO,OAAS9C,GAC5DA,GAAc8C,EAAO,QAAQ,OAAO,SAAQ9C,GAAc8C,EAAO,QAAQ,OAAO,QACpF8J,EAAcD,EAAiB,6BAA6B3M,CAAU,IAAI,CAChF,MACM4M,EAAcD,EAAiB,6BAA6BD,CAAW,IAAI,OAGzEzD,GACF2D,EAAcvE,EAAO,KAAK/E,GAAWA,EAAQ,SAAWoJ,CAAW,EACnEI,EAAYzE,EAAO,KAAK/E,GAAWA,EAAQ,SAAWoJ,EAAc,CAAC,EACrEG,EAAYxE,EAAO,KAAK/E,GAAWA,EAAQ,SAAWoJ,EAAc,CAAC,GAErEE,EAAcvE,EAAOqE,CAAW,EAGhCE,IACG3D,IAEH6D,EAAYzI,IAAeuI,EAAa,IAAIhtP,EAAO,UAAU,gBAAgB,EAAE,CAAC,EAC5EA,EAAO,MAAQ,CAACktP,IAClBA,EAAYzE,EAAO,CAAC,GAItBwE,EAAY1I,IAAeyI,EAAa,IAAIhtP,EAAO,UAAU,gBAAgB,EAAE,CAAC,EAC5EA,EAAO,MAAQ,CAACitP,IAAc,IAChCA,EAAYxE,EAAOA,EAAO,OAAS,CAAC,KAI1CA,EAAO,QAAQ/E,GAAW,CACxBkJ,GAAmBlJ,EAASA,IAAYsJ,EAAahtP,EAAO,gBAAgB,EAC5E4sP,GAAmBlJ,EAASA,IAAYwJ,EAAWltP,EAAO,cAAc,EACxE4sP,GAAmBlJ,EAASA,IAAYuJ,EAAWjtP,EAAO,cAAc,CAC5E,CAAG,EACDkjP,EAAO,kBAAiB,CAC1B,CAEA,MAAMiK,GAAuB,CAACjK,EAAQkK,IAAY,CAChD,GAAI,CAAClK,GAAUA,EAAO,WAAa,CAACA,EAAO,OAAQ,OACnD,MAAMmK,EAAgB,IAAMnK,EAAO,UAAY,eAAiB,IAAIA,EAAO,OAAO,UAAU,GACtFQ,EAAU0J,EAAQ,QAAQC,EAAe,GAC/C,GAAI3J,EAAS,CACX,IAAI4J,EAAS5J,EAAQ,cAAc,IAAIR,EAAO,OAAO,kBAAkB,EAAE,EACrE,CAACoK,GAAUpK,EAAO,YAChBQ,EAAQ,WACV4J,EAAS5J,EAAQ,WAAW,cAAc,IAAIR,EAAO,OAAO,kBAAkB,EAAE,EAGhF,sBAAsB,IAAM,CACtBQ,EAAQ,aACV4J,EAAS5J,EAAQ,WAAW,cAAc,IAAIR,EAAO,OAAO,kBAAkB,EAAE,EAC5EoK,GAAQA,EAAO,SAE/B,CAAS,GAGDA,GAAQA,EAAO,QACpB,CACH,EACMC,GAAS,CAACrK,EAAQp5Q,IAAU,CAChC,GAAI,CAACo5Q,EAAO,OAAOp5Q,CAAK,EAAG,OAC3B,MAAMsjR,EAAUlK,EAAO,OAAOp5Q,CAAK,EAAE,cAAc,kBAAkB,EACjEsjR,GAASA,EAAQ,gBAAgB,SAAS,CAChD,EACMvO,GAAUqE,GAAU,CACxB,GAAI,CAACA,GAAUA,EAAO,WAAa,CAACA,EAAO,OAAQ,OACnD,IAAI50J,EAAS40J,EAAO,OAAO,oBAC3B,MAAM5pQ,EAAM4pQ,EAAO,OAAO,OAC1B,GAAI,CAAC5pQ,GAAO,CAACg1G,GAAUA,EAAS,EAAG,OACnCA,EAAS,KAAK,IAAIA,EAAQh1G,CAAG,EAC7B,MAAMk0Q,EAAgBtK,EAAO,OAAO,gBAAkB,OAASA,EAAO,qBAAsB,EAAG,KAAK,KAAKA,EAAO,OAAO,aAAa,EAC9H4J,EAAc5J,EAAO,YAC3B,GAAIA,EAAO,OAAO,MAAQA,EAAO,OAAO,KAAK,KAAO,EAAG,CACrD,MAAMuK,EAAeX,EACfY,EAAiB,CAACD,EAAen/J,CAAM,EAC7Co/J,EAAe,KAAK,GAAG,MAAM,KAAK,CAChC,OAAQp/J,CACT,GAAE,IAAI,CAAC1tH,EAAGF,IACF+sR,EAAeD,EAAgB9sR,CACvC,CAAC,EACFwiR,EAAO,OAAO,QAAQ,CAACQ,EAAShjR,IAAM,CAChCgtR,EAAe,SAAShK,EAAQ,MAAM,GAAG6J,GAAOrK,EAAQxiR,CAAC,CACnE,CAAK,EACD,MACD,CACD,MAAMitR,EAAuBb,EAAcU,EAAgB,EAC3D,GAAItK,EAAO,OAAO,QAAUA,EAAO,OAAO,KACxC,QAASxiR,EAAIosR,EAAcx+J,EAAQ5tH,GAAKitR,EAAuBr/J,EAAQ5tH,GAAK,EAAG,CAC7E,MAAMktR,GAAaltR,EAAI4Y,EAAMA,GAAOA,GAChCs0Q,EAAYd,GAAec,EAAYD,IAAsBJ,GAAOrK,EAAQ0K,CAAS,CAC1F,KAED,SAASltR,EAAI,KAAK,IAAIosR,EAAcx+J,EAAQ,CAAC,EAAG5tH,GAAK,KAAK,IAAIitR,EAAuBr/J,EAAQh1G,EAAM,CAAC,EAAG5Y,GAAK,EACtGA,IAAMosR,IAAgBpsR,EAAIitR,GAAwBjtR,EAAIosR,IACxDS,GAAOrK,EAAQxiR,CAAC,CAIxB,EAEA,SAASmtR,IAA0B3K,EAAQ,CACzC,KAAM,CACJ,WAAA0F,EACA,OAAA5oP,CACD,EAAGkjP,EACEoI,EAAYpI,EAAO,aAAeA,EAAO,UAAY,CAACA,EAAO,UACnE,IAAI4J,EACJ,QAAS,EAAI,EAAG,EAAIlE,EAAW,OAAQ,GAAK,EACtC,OAAOA,EAAW,EAAI,CAAC,EAAM,IAC3B0C,GAAa1C,EAAW,CAAC,GAAK0C,EAAY1C,EAAW,EAAI,CAAC,GAAKA,EAAW,EAAI,CAAC,EAAIA,EAAW,CAAC,GAAK,EACtGkE,EAAc,EACLxB,GAAa1C,EAAW,CAAC,GAAK0C,EAAY1C,EAAW,EAAI,CAAC,IACnEkE,EAAc,EAAI,GAEXxB,GAAa1C,EAAW,CAAC,IAClCkE,EAAc,GAIlB,OAAI9sP,EAAO,sBACL8sP,EAAc,GAAK,OAAOA,EAAgB,OAAaA,EAAc,GAEpEA,CACT,CACA,SAASgB,IAAkBC,EAAgB,CACzC,MAAM7K,EAAS,KACToI,EAAYpI,EAAO,aAAeA,EAAO,UAAY,CAACA,EAAO,UAC7D,CACJ,SAAAyF,EACA,OAAA3oP,EACA,YAAaguP,EACb,UAAWC,EACX,UAAWC,CACZ,EAAGhL,EACJ,IAAI4J,EAAciB,EACdrD,EACJ,MAAMyD,EAAsBC,GAAU,CACpC,IAAIR,EAAYQ,EAASlL,EAAO,QAAQ,aACxC,OAAI0K,EAAY,IACdA,EAAY1K,EAAO,QAAQ,OAAO,OAAS0K,GAEzCA,GAAa1K,EAAO,QAAQ,OAAO,SACrC0K,GAAa1K,EAAO,QAAQ,OAAO,QAE9B0K,CACX,EAIE,GAHI,OAAOd,EAAgB,MACzBA,EAAce,IAA0B3K,CAAM,GAE5CyF,EAAS,QAAQ2C,CAAS,GAAK,EACjCZ,EAAY/B,EAAS,QAAQ2C,CAAS,MACjC,CACL,MAAM7nQ,EAAO,KAAK,IAAIuc,EAAO,mBAAoB8sP,CAAW,EAC5DpC,EAAYjnQ,EAAO,KAAK,OAAOqpQ,EAAcrpQ,GAAQuc,EAAO,cAAc,CAC3E,CAED,GADI0qP,GAAa/B,EAAS,SAAQ+B,EAAY/B,EAAS,OAAS,GAC5DmE,IAAgBkB,GAAiB,CAAC9K,EAAO,OAAO,KAAM,CACpDwH,IAAcwD,IAChBhL,EAAO,UAAYwH,EACnBxH,EAAO,KAAK,iBAAiB,GAE/B,MACD,CACD,GAAI4J,IAAgBkB,GAAiB9K,EAAO,OAAO,MAAQA,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAS,CAC1GA,EAAO,UAAYiL,EAAoBrB,CAAW,EAClD,MACD,CACD,MAAMzD,EAAcnG,EAAO,MAAQljP,EAAO,MAAQA,EAAO,KAAK,KAAO,EAGrE,IAAI4tP,EACJ,GAAI1K,EAAO,SAAWljP,EAAO,QAAQ,SAAWA,EAAO,KACrD4tP,EAAYO,EAAoBrB,CAAW,UAClCzD,EAAa,CACtB,MAAMgF,EAAqBnL,EAAO,OAAO,KAAKQ,GAAWA,EAAQ,SAAWoJ,CAAW,EACvF,IAAIwB,EAAmB,SAASD,EAAmB,aAAa,yBAAyB,EAAG,EAAE,EAC1F,OAAO,MAAMC,CAAgB,IAC/BA,EAAmB,KAAK,IAAIpL,EAAO,OAAO,QAAQmL,CAAkB,EAAG,CAAC,GAE1ET,EAAY,KAAK,MAAMU,EAAmBtuP,EAAO,KAAK,IAAI,CAC3D,SAAUkjP,EAAO,OAAO4J,CAAW,EAAG,CACrC,MAAM1M,EAAa8C,EAAO,OAAO4J,CAAW,EAAE,aAAa,yBAAyB,EAChF1M,EACFwN,EAAY,SAASxN,EAAY,EAAE,EAEnCwN,EAAYd,CAElB,MACIc,EAAYd,EAEd,OAAO,OAAO5J,EAAQ,CACpB,kBAAAgL,EACA,UAAAxD,EACA,kBAAAuD,EACA,UAAAL,EACA,cAAAI,EACA,YAAAlB,CACJ,CAAG,EACG5J,EAAO,aACTrE,GAAQqE,CAAM,EAEhBA,EAAO,KAAK,mBAAmB,EAC/BA,EAAO,KAAK,iBAAiB,GACzBA,EAAO,aAAeA,EAAO,OAAO,sBAClC+K,IAAsBL,GACxB1K,EAAO,KAAK,iBAAiB,EAE/BA,EAAO,KAAK,aAAa,EAE7B,CAEA,SAASqL,IAAmBrvQ,EAAIu0D,EAAM,CACpC,MAAMyvM,EAAS,KACTljP,EAASkjP,EAAO,OACtB,IAAIrU,EAAQ3vP,EAAG,QAAQ,IAAI8gB,EAAO,UAAU,gBAAgB,EACxD,CAAC6uO,GAASqU,EAAO,WAAazvM,GAAQA,EAAK,OAAS,GAAKA,EAAK,SAASv0D,CAAE,GAC3E,CAAC,GAAGu0D,EAAK,MAAMA,EAAK,QAAQv0D,CAAE,EAAI,EAAGu0D,EAAK,MAAM,CAAC,EAAE,QAAQ+6M,GAAU,CAC/D,CAAC3f,GAAS2f,EAAO,SAAWA,EAAO,QAAQ,IAAIxuP,EAAO,UAAU,gBAAgB,IAClF6uO,EAAQ2f,EAEhB,CAAK,EAEH,IAAIC,EAAa,GACbrO,EACJ,GAAIvR,GACF,QAASnuQ,EAAI,EAAGA,EAAIwiR,EAAO,OAAO,OAAQxiR,GAAK,EAC7C,GAAIwiR,EAAO,OAAOxiR,CAAC,IAAMmuQ,EAAO,CAC9B4f,EAAa,GACbrO,EAAa1/Q,EACb,KACD,EAGL,GAAImuQ,GAAS4f,EACXvL,EAAO,aAAerU,EAClBqU,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAC1CA,EAAO,aAAe,SAASrU,EAAM,aAAa,yBAAyB,EAAG,EAAE,EAEhFqU,EAAO,aAAe9C,MAEnB,CACL8C,EAAO,aAAe,OACtBA,EAAO,aAAe,OACtB,MACD,CACGljP,EAAO,qBAAuBkjP,EAAO,eAAiB,QAAaA,EAAO,eAAiBA,EAAO,aACpGA,EAAO,oBAAmB,CAE9B,CAEA,IAAIliE,IAAS,CACX,WAAA+mE,IACA,aAAAC,IACA,iBAAA+C,IACA,mBAAAG,IACA,qBAAAG,IACA,eAAAzmP,IACA,oBAAAioP,IACA,kBAAAiB,IACA,mBAAAS,GACF,EAEA,SAASG,IAAmBn4H,EAAM,CAC5BA,IAAS,SACXA,EAAO,KAAK,eAAiB,IAAM,KAErC,MAAM2sH,EAAS,KACT,CACJ,OAAAljP,EACA,aAAcqoP,EACd,UAAAiD,EACA,UAAApD,CACD,EAAGhF,EACJ,GAAIljP,EAAO,iBACT,OAAOqoP,EAAM,CAACiD,EAAYA,EAE5B,GAAItrP,EAAO,QACT,OAAOsrP,EAET,IAAIqD,EAAmBrM,GAAa4F,EAAW3xH,CAAI,EACnD,OAAAo4H,GAAoBzL,EAAO,wBACvBmF,IAAKsG,EAAmB,CAACA,GACtBA,GAAoB,CAC7B,CAEA,SAASC,IAAatD,EAAWuD,EAAc,CAC7C,MAAM3L,EAAS,KACT,CACJ,aAAcmF,EACd,OAAAroP,EACA,UAAAkoP,EACA,SAAAn4B,CACD,EAAGmzB,EACJ,IAAIt9Q,EAAI,EACJC,EAAI,EACR,MAAM6/B,EAAI,EACNw9O,EAAO,eACTt9Q,EAAIyiR,EAAM,CAACiD,EAAYA,EAEvBzlR,EAAIylR,EAEFtrP,EAAO,eACTp6B,EAAI,KAAK,MAAMA,CAAC,EAChBC,EAAI,KAAK,MAAMA,CAAC,GAElBq9Q,EAAO,kBAAoBA,EAAO,UAClCA,EAAO,UAAYA,EAAO,aAAY,EAAKt9Q,EAAIC,EAC3Cm6B,EAAO,QACTkoP,EAAUhF,EAAO,aAAc,EAAG,aAAe,WAAW,EAAIA,EAAO,aAAc,EAAG,CAACt9Q,EAAI,CAACC,EACpFm6B,EAAO,mBACbkjP,EAAO,eACTt9Q,GAAKs9Q,EAAO,wBAEZr9Q,GAAKq9Q,EAAO,wBAEdgF,EAAU,MAAM,UAAY,eAAetiR,CAAC,OAAOC,CAAC,OAAO6/B,CAAC,OAI9D,IAAIopP,EACJ,MAAMhD,EAAiB5I,EAAO,aAAc,EAAGA,EAAO,aAAY,EAC9D4I,IAAmB,EACrBgD,EAAc,EAEdA,GAAexD,EAAYpI,EAAO,aAAY,GAAM4I,EAElDgD,IAAgB/+B,GAClBmzB,EAAO,eAAeoI,CAAS,EAEjCpI,EAAO,KAAK,eAAgBA,EAAO,UAAW2L,CAAY,CAC5D,CAEA,SAASE,KAAe,CACtB,MAAO,CAAC,KAAK,SAAS,CAAC,CACzB,CAEA,SAASC,KAAe,CACtB,MAAO,CAAC,KAAK,SAAS,KAAK,SAAS,OAAS,CAAC,CAChD,CAEA,SAASC,IAAY3D,EAAWxzP,EAAOo3P,EAAcC,EAAiBC,EAAU,CAC1E9D,IAAc,SAChBA,EAAY,GAEVxzP,IAAU,SACZA,EAAQ,KAAK,OAAO,OAElBo3P,IAAiB,SACnBA,EAAe,IAEbC,IAAoB,SACtBA,EAAkB,IAEpB,MAAMjM,EAAS,KACT,CACJ,OAAAljP,EACA,UAAAkoP,CACD,EAAGhF,EACJ,GAAIA,EAAO,WAAaljP,EAAO,+BAC7B,MAAO,GAET,MAAM+uP,EAAe7L,EAAO,eACtB8L,EAAe9L,EAAO,eAC5B,IAAImM,EAKJ,GAJIF,GAAmB7D,EAAYyD,EAAcM,EAAeN,EAAsBI,GAAmB7D,EAAY0D,EAAcK,EAAeL,EAAkBK,EAAe/D,EAGnLpI,EAAO,eAAemM,CAAY,EAC9BrvP,EAAO,QAAS,CAClB,MAAMsvP,EAAMpM,EAAO,eACnB,GAAIprP,IAAU,EACZowP,EAAUoH,EAAM,aAAe,WAAW,EAAI,CAACD,MAC1C,CACL,GAAI,CAACnM,EAAO,QAAQ,aAClB,OAAAD,GAAqB,CACnB,OAAAC,EACA,eAAgB,CAACmM,EACjB,KAAMC,EAAM,OAAS,KAC/B,CAAS,EACM,GAETpH,EAAU,SAAS,CACjB,CAACoH,EAAM,OAAS,KAAK,EAAG,CAACD,EACzB,SAAU,QAClB,CAAO,CACF,CACD,MAAO,EACR,CACD,OAAIv3P,IAAU,GACZorP,EAAO,cAAc,CAAC,EACtBA,EAAO,aAAamM,CAAY,EAC5BH,IACFhM,EAAO,KAAK,wBAAyBprP,EAAOs3P,CAAQ,EACpDlM,EAAO,KAAK,eAAe,KAG7BA,EAAO,cAAcprP,CAAK,EAC1BorP,EAAO,aAAamM,CAAY,EAC5BH,IACFhM,EAAO,KAAK,wBAAyBprP,EAAOs3P,CAAQ,EACpDlM,EAAO,KAAK,iBAAiB,GAE1BA,EAAO,YACVA,EAAO,UAAY,GACdA,EAAO,oCACVA,EAAO,kCAAoC,SAAuBlzQ,EAAG,CAC/D,CAACkzQ,GAAUA,EAAO,WAClBlzQ,EAAE,SAAW,OACjBkzQ,EAAO,UAAU,oBAAoB,gBAAiBA,EAAO,iCAAiC,EAC9FA,EAAO,kCAAoC,KAC3C,OAAOA,EAAO,kCACdA,EAAO,UAAY,GACfgM,GACFhM,EAAO,KAAK,eAAe,EAEvC,GAEMA,EAAO,UAAU,iBAAiB,gBAAiBA,EAAO,iCAAiC,IAGxF,EACT,CAEA,IAAIoI,IAAY,CACd,aAAcoD,IACd,aAAAE,IACA,aAAAG,IACA,aAAAC,IACA,YAAAC,GACF,EAEA,SAASM,IAAczqP,EAAU+pP,EAAc,CAC7C,MAAM3L,EAAS,KACVA,EAAO,OAAO,UACjBA,EAAO,UAAU,MAAM,mBAAqB,GAAGp+O,CAAQ,KACvDo+O,EAAO,UAAU,MAAM,gBAAkBp+O,IAAa,EAAI,MAAQ,IAEpEo+O,EAAO,KAAK,gBAAiBp+O,EAAU+pP,CAAY,CACrD,CAEA,SAASW,GAAe/4N,EAAM,CAC5B,GAAI,CACF,OAAAysN,EACA,aAAAgM,EACA,UAAA7zL,EACA,KAAAspD,CACD,EAAGluF,EACJ,KAAM,CACJ,YAAAq2N,EACA,cAAAkB,CACD,EAAG9K,EACJ,IAAIhhQ,EAAMm5E,EAKV,GAJKn5E,IACC4qQ,EAAckB,EAAe9rQ,EAAM,OAAgB4qQ,EAAckB,EAAe9rQ,EAAM,OAAYA,EAAM,SAE9GghQ,EAAO,KAAK,aAAav+H,CAAI,EAAE,EAC3BuqI,GAAgBpC,IAAgBkB,EAAe,CACjD,GAAI9rQ,IAAQ,QAAS,CACnBghQ,EAAO,KAAK,uBAAuBv+H,CAAI,EAAE,EACzC,MACD,CACDu+H,EAAO,KAAK,wBAAwBv+H,CAAI,EAAE,EACtCziI,IAAQ,OACVghQ,EAAO,KAAK,sBAAsBv+H,CAAI,EAAE,EAExCu+H,EAAO,KAAK,sBAAsBv+H,CAAI,EAAE,CAE3C,CACH,CAEA,SAAS8qI,IAAgBP,EAAc7zL,EAAW,CAC5C6zL,IAAiB,SACnBA,EAAe,IAEjB,MAAMhM,EAAS,KACT,CACJ,OAAAljP,CACD,EAAGkjP,EACAljP,EAAO,UACPA,EAAO,YACTkjP,EAAO,iBAAgB,EAEzBsM,GAAe,CACb,OAAAtM,EACA,aAAAgM,EACA,UAAA7zL,EACA,KAAM,OACV,CAAG,EACH,CAEA,SAASjhC,IAAc80N,EAAc7zL,EAAW,CAC1C6zL,IAAiB,SACnBA,EAAe,IAEjB,MAAMhM,EAAS,KACT,CACJ,OAAAljP,CACD,EAAGkjP,EACJA,EAAO,UAAY,GACf,CAAAljP,EAAO,UACXkjP,EAAO,cAAc,CAAC,EACtBsM,GAAe,CACb,OAAAtM,EACA,aAAAgM,EACA,UAAA7zL,EACA,KAAM,KACV,CAAG,EACH,CAEA,IAAIlnF,IAAa,CACf,cAAAo7Q,IACA,gBAAAE,IACA,cAAAr1N,GACF,EAEA,SAASs1N,IAAQ5lR,EAAOguB,EAAOo3P,EAAcE,EAAUtiQ,EAAS,CAC1DhjB,IAAU,SACZA,EAAQ,GAENolR,IAAiB,SACnBA,EAAe,IAEb,OAAOplR,GAAU,WACnBA,EAAQ,SAASA,EAAO,EAAE,GAE5B,MAAMo5Q,EAAS,KACf,IAAI9C,EAAat2Q,EACbs2Q,EAAa,IAAGA,EAAa,GACjC,KAAM,CACJ,OAAApgP,EACA,SAAA2oP,EACA,WAAAC,EACA,cAAAoF,EACA,YAAAlB,EACA,aAAczE,EACd,UAAAH,EACA,QAAAyH,CACD,EAAGzM,EACJ,GAAI,CAACyM,GAAW,CAACP,GAAY,CAACtiQ,GAAWo2P,EAAO,WAAaA,EAAO,WAAaljP,EAAO,+BACtF,MAAO,GAEL,OAAOlI,EAAU,MACnBA,EAAQorP,EAAO,OAAO,OAExB,MAAMz/P,EAAO,KAAK,IAAIy/P,EAAO,OAAO,mBAAoB9C,CAAU,EAClE,IAAIsK,EAAYjnQ,EAAO,KAAK,OAAO28P,EAAa38P,GAAQy/P,EAAO,OAAO,cAAc,EAChFwH,GAAa/B,EAAS,SAAQ+B,EAAY/B,EAAS,OAAS,GAChE,MAAM2C,EAAY,CAAC3C,EAAS+B,CAAS,EAErC,GAAI1qP,EAAO,oBACT,QAASt/B,EAAI,EAAGA,EAAIkoR,EAAW,OAAQloR,GAAK,EAAG,CAC7C,MAAMkvR,EAAsB,CAAC,KAAK,MAAMtE,EAAY,GAAG,EACjDuE,EAAiB,KAAK,MAAMjH,EAAWloR,CAAC,EAAI,GAAG,EAC/CovR,EAAqB,KAAK,MAAMlH,EAAWloR,EAAI,CAAC,EAAI,GAAG,EACzD,OAAOkoR,EAAWloR,EAAI,CAAC,EAAM,IAC3BkvR,GAAuBC,GAAkBD,EAAsBE,GAAsBA,EAAqBD,GAAkB,EAC9HzP,EAAa1/Q,EACJkvR,GAAuBC,GAAkBD,EAAsBE,IACxE1P,EAAa1/Q,EAAI,GAEVkvR,GAAuBC,IAChCzP,EAAa1/Q,EAEhB,CAGH,GAAIwiR,EAAO,aAAe9C,IAAe0M,IACnC,CAAC5J,EAAO,iBAAmBmF,EAAMiD,EAAYpI,EAAO,WAAaoI,EAAYpI,EAAO,aAAc,EAAGoI,EAAYpI,EAAO,WAAaoI,EAAYpI,EAAO,aAAY,IAGpK,CAACA,EAAO,gBAAkBoI,EAAYpI,EAAO,WAAaoI,EAAYpI,EAAO,iBAC1E4J,GAAe,KAAO1M,GACzB,MAAO,GAITA,KAAgB4N,GAAiB,IAAMkB,GACzChM,EAAO,KAAK,wBAAwB,EAItCA,EAAO,eAAeoI,CAAS,EAC/B,IAAIjwL,EACA+kL,EAAa0M,EAAazxL,EAAY,OAAgB+kL,EAAa0M,EAAazxL,EAAY,OAAYA,EAAY,QAGxH,MAAMktL,EAAYrF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAG1D,GAAI,EAFqBqF,GAAaz7P,KAEZu7P,GAAO,CAACiD,IAAcpI,EAAO,WAAa,CAACmF,GAAOiD,IAAcpI,EAAO,WAC/F,OAAAA,EAAO,kBAAkB9C,CAAU,EAE/BpgP,EAAO,YACTkjP,EAAO,iBAAgB,EAEzBA,EAAO,oBAAmB,EACtBljP,EAAO,SAAW,SACpBkjP,EAAO,aAAaoI,CAAS,EAE3BjwL,IAAc,UAChB6nL,EAAO,gBAAgBgM,EAAc7zL,CAAS,EAC9C6nL,EAAO,cAAcgM,EAAc7zL,CAAS,GAEvC,GAET,GAAIr7D,EAAO,QAAS,CAClB,MAAMsvP,EAAMpM,EAAO,eACbztQ,EAAI4yQ,EAAMiD,EAAY,CAACA,EAC7B,GAAIxzP,IAAU,EACRywP,IACFrF,EAAO,UAAU,MAAM,eAAiB,OACxCA,EAAO,kBAAoB,IAEzBqF,GAAa,CAACrF,EAAO,2BAA6BA,EAAO,OAAO,aAAe,GACjFA,EAAO,0BAA4B,GACnC,sBAAsB,IAAM,CAC1BgF,EAAUoH,EAAM,aAAe,WAAW,EAAI75Q,CACxD,CAAS,GAEDyyQ,EAAUoH,EAAM,aAAe,WAAW,EAAI75Q,EAE5C8yQ,GACF,sBAAsB,IAAM,CAC1BrF,EAAO,UAAU,MAAM,eAAiB,GACxCA,EAAO,kBAAoB,EACrC,CAAS,MAEE,CACL,GAAI,CAACA,EAAO,QAAQ,aAClB,OAAAD,GAAqB,CACnB,OAAAC,EACA,eAAgBztQ,EAChB,KAAM65Q,EAAM,OAAS,KAC/B,CAAS,EACM,GAETpH,EAAU,SAAS,CACjB,CAACoH,EAAM,OAAS,KAAK,EAAG75Q,EACxB,SAAU,QAClB,CAAO,CACF,CACD,MAAO,EACR,CAED,MAAM4vL,EADUqhF,KACS,SACzB,OAAI6B,GAAa,CAACz7P,GAAWu4K,GAAY69E,EAAO,WAC9CA,EAAO,QAAQ,OAAO,GAAO,GAAO9C,CAAU,EAEhD8C,EAAO,cAAcprP,CAAK,EAC1BorP,EAAO,aAAaoI,CAAS,EAC7BpI,EAAO,kBAAkB9C,CAAU,EACnC8C,EAAO,oBAAmB,EAC1BA,EAAO,KAAK,wBAAyBprP,EAAOs3P,CAAQ,EACpDlM,EAAO,gBAAgBgM,EAAc7zL,CAAS,EAC1CvjE,IAAU,EACZorP,EAAO,cAAcgM,EAAc7zL,CAAS,EAClC6nL,EAAO,YACjBA,EAAO,UAAY,GACdA,EAAO,gCACVA,EAAO,8BAAgC,SAAuBlzQ,EAAG,CAC3D,CAACkzQ,GAAUA,EAAO,WAClBlzQ,EAAE,SAAW,OACjBkzQ,EAAO,UAAU,oBAAoB,gBAAiBA,EAAO,6BAA6B,EAC1FA,EAAO,8BAAgC,KACvC,OAAOA,EAAO,8BACdA,EAAO,cAAcgM,EAAc7zL,CAAS,EACpD,GAEI6nL,EAAO,UAAU,iBAAiB,gBAAiBA,EAAO,6BAA6B,GAElF,EACT,CAEA,SAAS6M,IAAYjmR,EAAOguB,EAAOo3P,EAAcE,EAAU,CACrDtlR,IAAU,SACZA,EAAQ,GAENolR,IAAiB,SACnBA,EAAe,IAEb,OAAOplR,GAAU,WAEnBA,EADsB,SAASA,EAAO,EAAE,GAG1C,MAAMo5Q,EAAS,KACf,GAAIA,EAAO,UAAW,OAClB,OAAOprP,EAAU,MACnBA,EAAQorP,EAAO,OAAO,OAExB,MAAMmG,EAAcnG,EAAO,MAAQA,EAAO,OAAO,MAAQA,EAAO,OAAO,KAAK,KAAO,EACnF,IAAIzJ,EAAW3vQ,EACf,GAAIo5Q,EAAO,OAAO,KAChB,GAAIA,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAE1CzJ,EAAWA,EAAWyJ,EAAO,QAAQ,iBAChC,CACL,IAAI8M,EACJ,GAAI3G,EAAa,CACf,MAAMjJ,EAAa3G,EAAWyJ,EAAO,OAAO,KAAK,KACjD8M,EAAmB9M,EAAO,OAAO,KAAKQ,GAAWA,EAAQ,aAAa,yBAAyB,EAAI,IAAMtD,CAAU,EAAE,MAC7H,MACQ4P,EAAmB9M,EAAO,oBAAoBzJ,CAAQ,EAExD,MAAMwW,EAAO5G,EAAc,KAAK,KAAKnG,EAAO,OAAO,OAASA,EAAO,OAAO,KAAK,IAAI,EAAIA,EAAO,OAAO,OAC/F,CACJ,eAAAgN,CACR,EAAUhN,EAAO,OACX,IAAIsK,EAAgBtK,EAAO,OAAO,cAC9BsK,IAAkB,OACpBA,EAAgBtK,EAAO,wBAEvBsK,EAAgB,KAAK,KAAK,WAAWtK,EAAO,OAAO,cAAe,EAAE,CAAC,EACjEgN,GAAkB1C,EAAgB,IAAM,IAC1CA,EAAgBA,EAAgB,IAGpC,IAAI2C,EAAcF,EAAOD,EAAmBxC,EAO5C,GANI0C,IACFC,EAAcA,GAAeH,EAAmB,KAAK,KAAKxC,EAAgB,CAAC,GAEzE4B,GAAYc,GAAkBhN,EAAO,OAAO,gBAAkB,QAAU,CAACmG,IAC3E8G,EAAc,IAEZA,EAAa,CACf,MAAM90L,EAAY60L,EAAiBF,EAAmB9M,EAAO,YAAc,OAAS,OAAS8M,EAAmB9M,EAAO,YAAc,EAAIA,EAAO,OAAO,cAAgB,OAAS,OAChLA,EAAO,QAAQ,CACb,UAAA7nL,EACA,QAAS,GACT,iBAAkBA,IAAc,OAAS20L,EAAmB,EAAIA,EAAmBC,EAAO,EAC1F,eAAgB50L,IAAc,OAAS6nL,EAAO,UAAY,MACpE,CAAS,CACF,CACD,GAAImG,EAAa,CACf,MAAMjJ,EAAa3G,EAAWyJ,EAAO,OAAO,KAAK,KACjDzJ,EAAWyJ,EAAO,OAAO,KAAKQ,GAAWA,EAAQ,aAAa,yBAAyB,EAAI,IAAMtD,CAAU,EAAE,MACrH,MACQ3G,EAAWyJ,EAAO,oBAAoBzJ,CAAQ,CAEjD,CAEH,6BAAsB,IAAM,CAC1ByJ,EAAO,QAAQzJ,EAAU3hP,EAAOo3P,EAAcE,CAAQ,CAC1D,CAAG,EACMlM,CACT,CAGA,SAASkN,IAAUt4P,EAAOo3P,EAAcE,EAAU,CAC5CF,IAAiB,SACnBA,EAAe,IAEjB,MAAMhM,EAAS,KACT,CACJ,QAAAyM,EACA,OAAA3vP,EACA,UAAAqwP,CACD,EAAGnN,EACJ,GAAI,CAACyM,GAAWzM,EAAO,UAAW,OAAOA,EACrC,OAAOprP,EAAU,MACnBA,EAAQorP,EAAO,OAAO,OAExB,IAAIoN,EAAWtwP,EAAO,eAClBA,EAAO,gBAAkB,QAAUA,EAAO,iBAAmB,GAAKA,EAAO,qBAC3EswP,EAAW,KAAK,IAAIpN,EAAO,qBAAqB,UAAW,EAAI,EAAG,CAAC,GAErE,MAAM59L,EAAY49L,EAAO,YAAcljP,EAAO,mBAAqB,EAAIswP,EACjE/H,EAAYrF,EAAO,SAAWljP,EAAO,QAAQ,QACnD,GAAIA,EAAO,KAAM,CACf,GAAIqwP,GAAa,CAAC9H,GAAavoP,EAAO,oBAAqB,MAAO,GAMlE,GALAkjP,EAAO,QAAQ,CACb,UAAW,MACjB,CAAK,EAEDA,EAAO,YAAcA,EAAO,UAAU,WAClCA,EAAO,cAAgBA,EAAO,OAAO,OAAS,GAAKljP,EAAO,QAC5D,6BAAsB,IAAM,CAC1BkjP,EAAO,QAAQA,EAAO,YAAc59L,EAAWxtD,EAAOo3P,EAAcE,CAAQ,CACpF,CAAO,EACM,EAEV,CACD,OAAIpvP,EAAO,QAAUkjP,EAAO,MACnBA,EAAO,QAAQ,EAAGprP,EAAOo3P,EAAcE,CAAQ,EAEjDlM,EAAO,QAAQA,EAAO,YAAc59L,EAAWxtD,EAAOo3P,EAAcE,CAAQ,CACrF,CAGA,SAASmB,IAAUz4P,EAAOo3P,EAAcE,EAAU,CAC5CF,IAAiB,SACnBA,EAAe,IAEjB,MAAMhM,EAAS,KACT,CACJ,OAAAljP,EACA,SAAA2oP,EACA,WAAAC,EACA,aAAA4H,EACA,QAAAb,EACA,UAAAU,CACD,EAAGnN,EACJ,GAAI,CAACyM,GAAWzM,EAAO,UAAW,OAAOA,EACrC,OAAOprP,EAAU,MACnBA,EAAQorP,EAAO,OAAO,OAExB,MAAMqF,EAAYrF,EAAO,SAAWljP,EAAO,QAAQ,QACnD,GAAIA,EAAO,KAAM,CACf,GAAIqwP,GAAa,CAAC9H,GAAavoP,EAAO,oBAAqB,MAAO,GAClEkjP,EAAO,QAAQ,CACb,UAAW,MACjB,CAAK,EAEDA,EAAO,YAAcA,EAAO,UAAU,UACvC,CACD,MAAMoI,EAAYkF,EAAetN,EAAO,UAAY,CAACA,EAAO,UAC5D,SAASuN,EAAU73Q,EAAK,CACtB,OAAIA,EAAM,EAAU,CAAC,KAAK,MAAM,KAAK,IAAIA,CAAG,CAAC,EACtC,KAAK,MAAMA,CAAG,CACtB,CACD,MAAMg3Q,EAAsBa,EAAUnF,CAAS,EACzCoF,EAAqB/H,EAAS,IAAI/vQ,GAAO63Q,EAAU73Q,CAAG,CAAC,EACvD+3Q,EAAa3wP,EAAO,UAAYA,EAAO,SAAS,QACtD,IAAI4wP,EAAWjI,EAAS+H,EAAmB,QAAQd,CAAmB,EAAI,CAAC,EAC3E,GAAI,OAAOgB,EAAa,MAAgB5wP,EAAO,SAAW2wP,GAAa,CACrE,IAAIE,EACJlI,EAAS,QAAQ,CAAC4B,EAAMG,IAAc,CAChCkF,GAAuBrF,IAEzBsG,EAAgBnG,EAExB,CAAK,EACG,OAAOmG,EAAkB,MAC3BD,EAAWD,EAAahI,EAASkI,CAAa,EAAIlI,EAASkI,EAAgB,EAAIA,EAAgB,EAAIA,CAAa,EAEnH,CACD,IAAIl5G,EAAY,EAShB,GARI,OAAOi5G,EAAa,MACtBj5G,EAAYixG,EAAW,QAAQgI,CAAQ,EACnCj5G,EAAY,IAAGA,EAAYurG,EAAO,YAAc,GAChDljP,EAAO,gBAAkB,QAAUA,EAAO,iBAAmB,GAAKA,EAAO,qBAC3E23I,EAAYA,EAAYurG,EAAO,qBAAqB,WAAY,EAAI,EAAI,EACxEvrG,EAAY,KAAK,IAAIA,EAAW,CAAC,IAGjC33I,EAAO,QAAUkjP,EAAO,YAAa,CACvC,MAAM1nL,EAAY0nL,EAAO,OAAO,SAAWA,EAAO,OAAO,QAAQ,SAAWA,EAAO,QAAUA,EAAO,QAAQ,OAAO,OAAS,EAAIA,EAAO,OAAO,OAAS,EACvJ,OAAOA,EAAO,QAAQ1nL,EAAW1jE,EAAOo3P,EAAcE,CAAQ,CAClE,SAAapvP,EAAO,MAAQkjP,EAAO,cAAgB,GAAKljP,EAAO,QAC3D,6BAAsB,IAAM,CAC1BkjP,EAAO,QAAQvrG,EAAW7/I,EAAOo3P,EAAcE,CAAQ,CAC7D,CAAK,EACM,GAET,OAAOlM,EAAO,QAAQvrG,EAAW7/I,EAAOo3P,EAAcE,CAAQ,CAChE,CAGA,SAAS0B,IAAWh5P,EAAOo3P,EAAcE,EAAU,CAC7CF,IAAiB,SACnBA,EAAe,IAEjB,MAAMhM,EAAS,KACf,GAAI,CAAAA,EAAO,UACX,OAAI,OAAOprP,EAAU,MACnBA,EAAQorP,EAAO,OAAO,OAEjBA,EAAO,QAAQA,EAAO,YAAaprP,EAAOo3P,EAAcE,CAAQ,CACzE,CAGA,SAAS2B,IAAej5P,EAAOo3P,EAAcE,EAAU3kK,EAAW,CAC5DykK,IAAiB,SACnBA,EAAe,IAEbzkK,IAAc,SAChBA,EAAY,IAEd,MAAMy4J,EAAS,KACf,GAAIA,EAAO,UAAW,OAClB,OAAOprP,EAAU,MACnBA,EAAQorP,EAAO,OAAO,OAExB,IAAIp5Q,EAAQo5Q,EAAO,YACnB,MAAMz/P,EAAO,KAAK,IAAIy/P,EAAO,OAAO,mBAAoBp5Q,CAAK,EACvD4gR,EAAYjnQ,EAAO,KAAK,OAAO3Z,EAAQ2Z,GAAQy/P,EAAO,OAAO,cAAc,EAC3EoI,EAAYpI,EAAO,aAAeA,EAAO,UAAY,CAACA,EAAO,UACnE,GAAIoI,GAAapI,EAAO,SAASwH,CAAS,EAAG,CAG3C,MAAMsG,EAAc9N,EAAO,SAASwH,CAAS,EACvCuG,EAAW/N,EAAO,SAASwH,EAAY,CAAC,EAC1CY,EAAY0F,GAAeC,EAAWD,GAAevmK,IACvD3gH,GAASo5Q,EAAO,OAAO,eAE7B,KAAS,CAGL,MAAM0N,EAAW1N,EAAO,SAASwH,EAAY,CAAC,EACxCsG,EAAc9N,EAAO,SAASwH,CAAS,EACzCY,EAAYsF,IAAaI,EAAcJ,GAAYnmK,IACrD3gH,GAASo5Q,EAAO,OAAO,eAE1B,CACD,OAAAp5Q,EAAQ,KAAK,IAAIA,EAAO,CAAC,EACzBA,EAAQ,KAAK,IAAIA,EAAOo5Q,EAAO,WAAW,OAAS,CAAC,EAC7CA,EAAO,QAAQp5Q,EAAOguB,EAAOo3P,EAAcE,CAAQ,CAC5D,CAEA,SAAS8B,KAAsB,CAC7B,MAAMhO,EAAS,KACf,GAAIA,EAAO,UAAW,OACtB,KAAM,CACJ,OAAAljP,EACA,SAAAmoP,CACD,EAAGjF,EACEsK,EAAgBxtP,EAAO,gBAAkB,OAASkjP,EAAO,qBAAoB,EAAKljP,EAAO,cAC/F,IAAImxP,EAAejO,EAAO,aACtB0K,EACJ,MAAMP,EAAgBnK,EAAO,UAAY,eAAiB,IAAIljP,EAAO,UAAU,GAC/E,GAAIA,EAAO,KAAM,CACf,GAAIkjP,EAAO,UAAW,OACtB0K,EAAY,SAAS1K,EAAO,aAAa,aAAa,yBAAyB,EAAG,EAAE,EAChFljP,EAAO,eACLmxP,EAAejO,EAAO,aAAesK,EAAgB,GAAK2D,EAAejO,EAAO,OAAO,OAASA,EAAO,aAAesK,EAAgB,GACxItK,EAAO,QAAO,EACdiO,EAAejO,EAAO,cAAcS,GAAgBwE,EAAU,GAAGkF,CAAa,6BAA6BO,CAAS,IAAI,EAAE,CAAC,CAAC,EAC5HxL,GAAS,IAAM,CACbc,EAAO,QAAQiO,CAAY,CACrC,CAAS,GAEDjO,EAAO,QAAQiO,CAAY,EAEpBA,EAAejO,EAAO,OAAO,OAASsK,GAC/CtK,EAAO,QAAO,EACdiO,EAAejO,EAAO,cAAcS,GAAgBwE,EAAU,GAAGkF,CAAa,6BAA6BO,CAAS,IAAI,EAAE,CAAC,CAAC,EAC5HxL,GAAS,IAAM,CACbc,EAAO,QAAQiO,CAAY,CACnC,CAAO,GAEDjO,EAAO,QAAQiO,CAAY,CAEjC,MACIjO,EAAO,QAAQiO,CAAY,CAE/B,CAEA,IAAItiB,IAAQ,CACV,QAAA6gB,IACA,YAAAK,IACA,UAAAK,IACA,UAAAG,IACA,WAAAO,IACA,eAAAC,IACA,oBAAAG,GACF,EAEA,SAASE,IAAWC,EAAgB,CAClC,MAAMnO,EAAS,KACT,CACJ,OAAAljP,EACA,SAAAmoP,CACD,EAAGjF,EACJ,GAAI,CAACljP,EAAO,MAAQkjP,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAS,OACrE,MAAMoO,EAAa,IAAM,CACR3N,GAAgBwE,EAAU,IAAInoP,EAAO,UAAU,gBAAgB,EACvE,QAAQ,CAAC9gB,EAAIpV,IAAU,CAC5BoV,EAAG,aAAa,0BAA2BpV,CAAK,CACtD,CAAK,CACL,EACQu/Q,EAAcnG,EAAO,MAAQljP,EAAO,MAAQA,EAAO,KAAK,KAAO,EAC/DuxP,EAAiBvxP,EAAO,gBAAkBqpP,EAAcrpP,EAAO,KAAK,KAAO,GAC3EwxP,EAAkBtO,EAAO,OAAO,OAASqO,IAAmB,EAC5DE,EAAiBpI,GAAenG,EAAO,OAAO,OAASljP,EAAO,KAAK,OAAS,EAC5E0xP,EAAiBC,GAAkB,CACvC,QAASjxR,EAAI,EAAGA,EAAIixR,EAAgBjxR,GAAK,EAAG,CAC1C,MAAMgjR,EAAUR,EAAO,UAAY/hM,GAAc,eAAgB,CAACnhD,EAAO,eAAe,CAAC,EAAImhD,GAAc,MAAO,CAACnhD,EAAO,WAAYA,EAAO,eAAe,CAAC,EAC7JkjP,EAAO,SAAS,OAAOQ,CAAO,CAC/B,CACL,EACE,GAAI8N,EAAiB,CACnB,GAAIxxP,EAAO,mBAAoB,CAC7B,MAAM4xP,EAAcL,EAAiBrO,EAAO,OAAO,OAASqO,EAC5DG,EAAeE,CAAW,EAC1B1O,EAAO,aAAY,EACnBA,EAAO,aAAY,CACzB,MACMgB,GAAY,iLAAiL,EAE/LoN,GACD,SAAUG,EAAgB,CACzB,GAAIzxP,EAAO,mBAAoB,CAC7B,MAAM4xP,EAAc5xP,EAAO,KAAK,KAAOkjP,EAAO,OAAO,OAASljP,EAAO,KAAK,KAC1E0xP,EAAeE,CAAW,EAC1B1O,EAAO,aAAY,EACnBA,EAAO,aAAY,CACzB,MACMgB,GAAY,4KAA4K,EAE1LoN,GACJ,MACIA,IAEFpO,EAAO,QAAQ,CACb,eAAAmO,EACA,UAAWrxP,EAAO,eAAiB,OAAY,MACnD,CAAG,CACH,CAEA,SAAS6xP,IAAQ9rN,EAAO,CACtB,GAAI,CACF,eAAAsrN,EACA,QAAA3B,EAAU,GACV,UAAAr0L,EACA,aAAAuzL,EACA,iBAAAN,EACA,aAAAO,EACA,aAAAiD,CACD,EAAG/rN,IAAU,OAAS,GAAKA,EAC5B,MAAMm9M,EAAS,KACf,GAAI,CAACA,EAAO,OAAO,KAAM,OACzBA,EAAO,KAAK,eAAe,EAC3B,KAAM,CACJ,OAAAuF,EACA,eAAAsJ,EACA,eAAAC,EACA,SAAA7J,EACA,OAAAnoP,CACD,EAAGkjP,EACE,CACJ,eAAAgN,CACD,EAAGlwP,EAGJ,GAFAkjP,EAAO,eAAiB,GACxBA,EAAO,eAAiB,GACpBA,EAAO,SAAWljP,EAAO,QAAQ,QAAS,CACxC0vP,IACE,CAAC1vP,EAAO,gBAAkBkjP,EAAO,YAAc,EACjDA,EAAO,QAAQA,EAAO,QAAQ,OAAO,OAAQ,EAAG,GAAO,EAAI,EAClDljP,EAAO,gBAAkBkjP,EAAO,UAAYljP,EAAO,cAC5DkjP,EAAO,QAAQA,EAAO,QAAQ,OAAO,OAASA,EAAO,UAAW,EAAG,GAAO,EAAI,EACrEA,EAAO,YAAcA,EAAO,SAAS,OAAS,GACvDA,EAAO,QAAQA,EAAO,QAAQ,aAAc,EAAG,GAAO,EAAI,GAG9DA,EAAO,eAAiB6O,EACxB7O,EAAO,eAAiB8O,EACxB9O,EAAO,KAAK,SAAS,EACrB,MACD,CACD,IAAIsK,EAAgBxtP,EAAO,cACvBwtP,IAAkB,OACpBA,EAAgBtK,EAAO,wBAEvBsK,EAAgB,KAAK,KAAK,WAAWxtP,EAAO,cAAe,EAAE,CAAC,EAC1DkwP,GAAkB1C,EAAgB,IAAM,IAC1CA,EAAgBA,EAAgB,IAGpC,MAAM+D,EAAiBvxP,EAAO,mBAAqBwtP,EAAgBxtP,EAAO,eAC1E,IAAIiyP,EAAeV,EACfU,EAAeV,IAAmB,IACpCU,GAAgBV,EAAiBU,EAAeV,GAElDU,GAAgBjyP,EAAO,qBACvBkjP,EAAO,aAAe+O,EACtB,MAAM5I,EAAcnG,EAAO,MAAQljP,EAAO,MAAQA,EAAO,KAAK,KAAO,EACjEyoP,EAAO,OAAS+E,EAAgByE,EAClC/N,GAAY,2OAA2O,EAC9OmF,GAAerpP,EAAO,KAAK,OAAS,OAC7CkkP,GAAY,yEAAyE,EAEvF,MAAMgO,EAAuB,GACvBC,EAAsB,GAC5B,IAAIrF,EAAc5J,EAAO,YACrB,OAAOoL,EAAqB,IAC9BA,EAAmBpL,EAAO,cAAcuF,EAAO,KAAKvpQ,GAAMA,EAAG,UAAU,SAAS8gB,EAAO,gBAAgB,CAAC,CAAC,EAEzG8sP,EAAcwB,EAEhB,MAAM8D,EAAS/2L,IAAc,QAAU,CAACA,EAClCg3L,EAASh3L,IAAc,QAAU,CAACA,EACxC,IAAIi3L,EAAkB,EAClBC,EAAiB,EACrB,MAAMtC,EAAO5G,EAAc,KAAK,KAAKZ,EAAO,OAASzoP,EAAO,KAAK,IAAI,EAAIyoP,EAAO,OAE1E+J,GADiBnJ,EAAcZ,EAAO6F,CAAgB,EAAE,OAASA,IACrB4B,GAAkB,OAAOtB,EAAiB,IAAc,CAACpB,EAAgB,EAAI,GAAM,GAErI,GAAIgF,EAA0BP,EAAc,CAC1CK,EAAkB,KAAK,IAAIL,EAAeO,EAAyBjB,CAAc,EACjF,QAAS7wR,EAAI,EAAGA,EAAIuxR,EAAeO,EAAyB9xR,GAAK,EAAG,CAClE,MAAMoJ,EAAQpJ,EAAI,KAAK,MAAMA,EAAIuvR,CAAI,EAAIA,EACzC,GAAI5G,EAAa,CACf,MAAMoJ,GAAoBxC,EAAOnmR,EAAQ,EACzC,QAASpJ,GAAI+nR,EAAO,OAAS,EAAG/nR,IAAK,EAAGA,IAAK,EACvC+nR,EAAO/nR,EAAC,EAAE,SAAW+xR,IAAmBP,EAAqB,KAAKxxR,EAAC,CAKjF,MACQwxR,EAAqB,KAAKjC,EAAOnmR,EAAQ,CAAC,CAE7C,CACF,SAAU0oR,EAA0BhF,EAAgByC,EAAOgC,EAAc,CACxEM,EAAiB,KAAK,IAAIC,GAA2BvC,EAAOgC,EAAe,GAAIV,CAAc,EAC7F,QAAS7wR,EAAI,EAAGA,EAAI6xR,EAAgB7xR,GAAK,EAAG,CAC1C,MAAMoJ,EAAQpJ,EAAI,KAAK,MAAMA,EAAIuvR,CAAI,EAAIA,EACrC5G,EACFZ,EAAO,QAAQ,CAAC5Z,GAAOuR,KAAe,CAChCvR,GAAM,SAAW/kQ,GAAOqoR,EAAoB,KAAK/R,EAAU,CACzE,CAAS,EAED+R,EAAoB,KAAKroR,CAAK,CAEjC,CACF,CA8BD,GA7BAo5Q,EAAO,oBAAsB,GAC7B,sBAAsB,IAAM,CAC1BA,EAAO,oBAAsB,EACjC,CAAG,EACGmP,GACFH,EAAqB,QAAQpoR,GAAS,CACpC2+Q,EAAO3+Q,CAAK,EAAE,kBAAoB,GAClCq+Q,EAAS,QAAQM,EAAO3+Q,CAAK,CAAC,EAC9B2+Q,EAAO3+Q,CAAK,EAAE,kBAAoB,EACxC,CAAK,EAECsoR,GACFD,EAAoB,QAAQroR,GAAS,CACnC2+Q,EAAO3+Q,CAAK,EAAE,kBAAoB,GAClCq+Q,EAAS,OAAOM,EAAO3+Q,CAAK,CAAC,EAC7B2+Q,EAAO3+Q,CAAK,EAAE,kBAAoB,EACxC,CAAK,EAEHo5Q,EAAO,aAAY,EACfljP,EAAO,gBAAkB,OAC3BkjP,EAAO,aAAY,EACVmG,IAAgB6I,EAAqB,OAAS,GAAKG,GAAUF,EAAoB,OAAS,GAAKC,IACxGlP,EAAO,OAAO,QAAQ,CAACrU,EAAOuR,IAAe,CAC3C8C,EAAO,KAAK,YAAY9C,EAAYvR,EAAOqU,EAAO,MAAM,CAC9D,CAAK,EAECljP,EAAO,qBACTkjP,EAAO,mBAAkB,EAEvBwM,GACF,GAAIwC,EAAqB,OAAS,GAAKG,GACrC,GAAI,OAAOhB,EAAmB,IAAa,CACzC,MAAMqB,EAAwBxP,EAAO,WAAW4J,CAAW,EAErDttQ,GADoB0jQ,EAAO,WAAW4J,EAAcwF,CAAe,EACxCI,EAC7BZ,EACF5O,EAAO,aAAaA,EAAO,UAAY1jQ,EAAI,GAE3C0jQ,EAAO,QAAQ4J,EAAc,KAAK,KAAKwF,CAAe,EAAG,EAAG,GAAO,EAAI,EACnE1D,IACF1L,EAAO,gBAAgB,eAAiBA,EAAO,gBAAgB,eAAiB1jQ,GAChF0jQ,EAAO,gBAAgB,iBAAmBA,EAAO,gBAAgB,iBAAmB1jQ,IAGhG,SACYovQ,EAAc,CAChB,MAAM1mK,EAAQmhK,EAAc6I,EAAqB,OAASlyP,EAAO,KAAK,KAAOkyP,EAAqB,OAClGhP,EAAO,QAAQA,EAAO,YAAch7J,EAAO,EAAG,GAAO,EAAI,EACzDg7J,EAAO,gBAAgB,iBAAmBA,EAAO,SAClD,UAEMiP,EAAoB,OAAS,GAAKC,EAC3C,GAAI,OAAOf,EAAmB,IAAa,CACzC,MAAMqB,EAAwBxP,EAAO,WAAW4J,CAAW,EAErDttQ,GADoB0jQ,EAAO,WAAW4J,EAAcyF,CAAc,EACvCG,EAC7BZ,EACF5O,EAAO,aAAaA,EAAO,UAAY1jQ,EAAI,GAE3C0jQ,EAAO,QAAQ4J,EAAcyF,EAAgB,EAAG,GAAO,EAAI,EACvD3D,IACF1L,EAAO,gBAAgB,eAAiBA,EAAO,gBAAgB,eAAiB1jQ,GAChF0jQ,EAAO,gBAAgB,iBAAmBA,EAAO,gBAAgB,iBAAmB1jQ,IAGhG,KAAa,CACL,MAAM0oG,EAAQmhK,EAAc8I,EAAoB,OAASnyP,EAAO,KAAK,KAAOmyP,EAAoB,OAChGjP,EAAO,QAAQA,EAAO,YAAch7J,EAAO,EAAG,GAAO,EAAI,CAC1D,EAKL,GAFAg7J,EAAO,eAAiB6O,EACxB7O,EAAO,eAAiB8O,EACpB9O,EAAO,YAAcA,EAAO,WAAW,SAAW,CAAC2L,EAAc,CACnE,MAAM8D,EAAa,CACjB,eAAAtB,EACA,UAAAh2L,EACA,aAAAuzL,EACA,iBAAAN,EACA,aAAc,EACpB,EACQ,MAAM,QAAQpL,EAAO,WAAW,OAAO,EACzCA,EAAO,WAAW,QAAQ,QAAQnxQ,GAAK,CACjC,CAACA,EAAE,WAAaA,EAAE,OAAO,MAAMA,EAAE,QAAQ,CAC3C,GAAG4gR,EACH,QAAS5gR,EAAE,OAAO,gBAAkBiuB,EAAO,cAAgB0vP,EAAU,EAC/E,CAAS,CACT,CAAO,EACQxM,EAAO,WAAW,mBAAmBA,EAAO,aAAeA,EAAO,WAAW,QAAQ,OAAO,MACrGA,EAAO,WAAW,QAAQ,QAAQ,CAChC,GAAGyP,EACH,QAASzP,EAAO,WAAW,QAAQ,OAAO,gBAAkBljP,EAAO,cAAgB0vP,EAAU,EACrG,CAAO,CAEJ,CACDxM,EAAO,KAAK,SAAS,CACvB,CAEA,SAAS0P,KAAc,CACrB,MAAM1P,EAAS,KACT,CACJ,OAAAljP,EACA,SAAAmoP,CACD,EAAGjF,EACJ,GAAI,CAACljP,EAAO,MAAQ,CAACmoP,GAAYjF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAS,OAClFA,EAAO,aAAY,EACnB,MAAM2P,EAAiB,GACvB3P,EAAO,OAAO,QAAQQ,GAAW,CAC/B,MAAM55Q,EAAQ,OAAO45Q,EAAQ,iBAAqB,IAAcA,EAAQ,aAAa,yBAAyB,EAAI,EAAIA,EAAQ,iBAC9HmP,EAAe/oR,CAAK,EAAI45Q,CAC5B,CAAG,EACDR,EAAO,OAAO,QAAQQ,GAAW,CAC/BA,EAAQ,gBAAgB,yBAAyB,CACrD,CAAG,EACDmP,EAAe,QAAQnP,GAAW,CAChCyE,EAAS,OAAOzE,CAAO,CAC3B,CAAG,EACDR,EAAO,aAAY,EACnBA,EAAO,QAAQA,EAAO,UAAW,CAAC,CACpC,CAEA,IAAI4P,IAAO,CACT,WAAA1B,IACA,QAAAS,IACA,YAAAe,GACF,EAEA,SAASG,IAAcC,EAAQ,CAC7B,MAAM9P,EAAS,KACf,GAAI,CAACA,EAAO,OAAO,eAAiBA,EAAO,OAAO,eAAiBA,EAAO,UAAYA,EAAO,OAAO,QAAS,OAC7G,MAAMhkQ,EAAKgkQ,EAAO,OAAO,oBAAsB,YAAcA,EAAO,GAAKA,EAAO,UAC5EA,EAAO,YACTA,EAAO,oBAAsB,IAE/BhkQ,EAAG,MAAM,OAAS,OAClBA,EAAG,MAAM,OAAS8zQ,EAAS,WAAa,OACpC9P,EAAO,WACT,sBAAsB,IAAM,CAC1BA,EAAO,oBAAsB,EACnC,CAAK,CAEL,CAEA,SAAS+P,KAAkB,CACzB,MAAM/P,EAAS,KACXA,EAAO,OAAO,eAAiBA,EAAO,UAAYA,EAAO,OAAO,UAGhEA,EAAO,YACTA,EAAO,oBAAsB,IAE/BA,EAAOA,EAAO,OAAO,oBAAsB,YAAc,KAAO,WAAW,EAAE,MAAM,OAAS,GACxFA,EAAO,WACT,sBAAsB,IAAM,CAC1BA,EAAO,oBAAsB,EACnC,CAAK,EAEL,CAEA,IAAIgQ,IAAa,CACf,cAAAH,IACA,gBAAAE,GACF,EAGA,SAASE,IAAetxR,EAAU2hB,EAAM,CAClCA,IAAS,SACXA,EAAO,MAET,SAAS4vQ,EAAcl0Q,EAAI,CACzB,GAAI,CAACA,GAAMA,IAAOs7I,GAAW,GAAMt7I,IAAOkkD,GAAS,EAAI,OAAO,KAC1DlkD,EAAG,eAAcA,EAAKA,EAAG,cAC7B,MAAMuiD,EAAQviD,EAAG,QAAQrd,CAAQ,EACjC,MAAI,CAAC4/D,GAAS,CAACviD,EAAG,YACT,KAEFuiD,GAAS2xN,EAAcl0Q,EAAG,YAAa,EAAC,IAAI,CACpD,CACD,OAAOk0Q,EAAc5vQ,CAAI,CAC3B,CACA,SAAS6vQ,GAAiBnQ,EAAQxmR,EAAO42R,EAAQ,CAC/C,MAAM97Q,EAAS4rD,KACT,CACJ,OAAApjC,CACD,EAAGkjP,EACEqQ,EAAqBvzP,EAAO,mBAC5BwzP,EAAqBxzP,EAAO,mBAClC,OAAIuzP,IAAuBD,GAAUE,GAAsBF,GAAU97Q,EAAO,WAAag8Q,GACnFD,IAAuB,WACzB72R,EAAM,eAAc,EACb,IAEF,GAEF,EACT,CACA,SAASy4F,IAAaz4F,EAAO,CAC3B,MAAMwmR,EAAS,KACT/xQ,EAAWqpJ,KACjB,IAAIxqJ,EAAItT,EACJsT,EAAE,gBAAeA,EAAIA,EAAE,eAC3B,MAAMob,EAAO83P,EAAO,gBACpB,GAAIlzQ,EAAE,OAAS,cAAe,CAC5B,GAAIob,EAAK,YAAc,MAAQA,EAAK,YAAcpb,EAAE,UAClD,OAEFob,EAAK,UAAYpb,EAAE,SACvB,MAAaA,EAAE,OAAS,cAAgBA,EAAE,cAAc,SAAW,IAC/Dob,EAAK,QAAUpb,EAAE,cAAc,CAAC,EAAE,YAEpC,GAAIA,EAAE,OAAS,aAAc,CAE3BqjR,GAAiBnQ,EAAQlzQ,EAAGA,EAAE,cAAc,CAAC,EAAE,KAAK,EACpD,MACD,CACD,KAAM,CACJ,OAAAgwB,EACA,QAAAs6D,EACA,QAAAq1L,CACD,EAAGzM,EAGJ,GAFI,CAACyM,GACD,CAAC3vP,EAAO,eAAiBhwB,EAAE,cAAgB,SAC3CkzQ,EAAO,WAAaljP,EAAO,+BAC7B,OAEE,CAACkjP,EAAO,WAAaljP,EAAO,SAAWA,EAAO,MAChDkjP,EAAO,QAAO,EAEhB,IAAIuQ,EAAWzjR,EAAE,OAMjB,GALIgwB,EAAO,oBAAsB,WAC3B,CAACgkP,IAAiByP,EAAUvQ,EAAO,SAAS,GAE9C,UAAWlzQ,GAAKA,EAAE,QAAU,GAC5B,WAAYA,GAAKA,EAAE,OAAS,GAC5Bob,EAAK,WAAaA,EAAK,QAAS,OAGpC,MAAMsoQ,EAAuB,CAAC,CAAC1zP,EAAO,gBAAkBA,EAAO,iBAAmB,GAE5EzF,EAAYvqB,EAAE,aAAeA,EAAE,aAAc,EAAGA,EAAE,KACpD0jR,GAAwB1jR,EAAE,QAAUA,EAAE,OAAO,YAAcuqB,IAC7Dk5P,EAAWl5P,EAAU,CAAC,GAExB,MAAMo5P,EAAoB3zP,EAAO,kBAAoBA,EAAO,kBAAoB,IAAIA,EAAO,cAAc,GACnG4zP,EAAiB,CAAC,EAAE5jR,EAAE,QAAUA,EAAE,OAAO,YAG/C,GAAIgwB,EAAO,YAAc4zP,EAAiBT,IAAeQ,EAAmBF,CAAQ,EAAIA,EAAS,QAAQE,CAAiB,GAAI,CAC5HzQ,EAAO,WAAa,GACpB,MACD,CACD,GAAIljP,EAAO,cACL,CAACyzP,EAAS,QAAQzzP,EAAO,YAAY,EAAG,OAE9Cs6D,EAAQ,SAAWtqF,EAAE,MACrBsqF,EAAQ,SAAWtqF,EAAE,MACrB,MAAMsjR,EAASh5L,EAAQ,SACjBu5L,EAASv5L,EAAQ,SAIvB,GAAI,CAAC+4L,GAAiBnQ,EAAQlzQ,EAAGsjR,CAAM,EACrC,OAEF,OAAO,OAAOloQ,EAAM,CAClB,UAAW,GACX,QAAS,GACT,oBAAqB,GACrB,YAAa,OACb,YAAa,MACjB,CAAG,EACDkvE,EAAQ,OAASg5L,EACjBh5L,EAAQ,OAASu5L,EACjBzoQ,EAAK,eAAiBw/E,KACtBs4K,EAAO,WAAa,GACpBA,EAAO,WAAU,EACjBA,EAAO,eAAiB,OACpBljP,EAAO,UAAY,IAAG5U,EAAK,mBAAqB,IACpD,IAAI0oQ,EAAiB,GACjBL,EAAS,QAAQroQ,EAAK,iBAAiB,IACzC0oQ,EAAiB,GACbL,EAAS,WAAa,WACxBroQ,EAAK,UAAY,KAGjBja,EAAS,eAAiBA,EAAS,cAAc,QAAQia,EAAK,iBAAiB,GAAKja,EAAS,gBAAkBsiR,IAAazjR,EAAE,cAAgB,SAAWA,EAAE,cAAgB,SAAW,CAACyjR,EAAS,QAAQroQ,EAAK,iBAAiB,IAChOja,EAAS,cAAc,OAEzB,MAAM4iR,EAAuBD,GAAkB5Q,EAAO,gBAAkBljP,EAAO,0BAC1EA,EAAO,+BAAiC+zP,IAAyB,CAACN,EAAS,mBAC9EzjR,EAAE,eAAc,EAEdgwB,EAAO,UAAYA,EAAO,SAAS,SAAWkjP,EAAO,UAAYA,EAAO,WAAa,CAACljP,EAAO,SAC/FkjP,EAAO,SAAS,eAElBA,EAAO,KAAK,aAAclzQ,CAAC,CAC7B,CAEA,SAASolF,IAAY14F,EAAO,CAC1B,MAAMyU,EAAWqpJ,KACX0oH,EAAS,KACT93P,EAAO83P,EAAO,gBACd,CACJ,OAAAljP,EACA,QAAAs6D,EACA,aAAc+tL,EACd,QAAAsH,CACD,EAAGzM,EAEJ,GADI,CAACyM,GACD,CAAC3vP,EAAO,eAAiBtjC,EAAM,cAAgB,QAAS,OAC5D,IAAIsT,EAAItT,EAER,GADIsT,EAAE,gBAAeA,EAAIA,EAAE,eACvBA,EAAE,OAAS,gBACTob,EAAK,UAAY,MACVpb,EAAE,YACFob,EAAK,WAAW,OAE7B,IAAI4oQ,EACJ,GAAIhkR,EAAE,OAAS,aAEb,GADAgkR,EAAc,CAAC,GAAGhkR,EAAE,cAAc,EAAE,KAAKyF,GAAKA,EAAE,aAAe2V,EAAK,OAAO,EACvE,CAAC4oQ,GAAeA,EAAY,aAAe5oQ,EAAK,QAAS,YAE7D4oQ,EAAchkR,EAEhB,GAAI,CAACob,EAAK,UAAW,CACfA,EAAK,aAAeA,EAAK,aAC3B83P,EAAO,KAAK,oBAAqBlzQ,CAAC,EAEpC,MACD,CACD,MAAMwxJ,EAAQwyH,EAAY,MACpBvyH,EAAQuyH,EAAY,MAC1B,GAAIhkR,EAAE,wBAAyB,CAC7BsqF,EAAQ,OAASknE,EACjBlnE,EAAQ,OAASmnE,EACjB,MACD,CACD,GAAI,CAACyhH,EAAO,eAAgB,CACrBlzQ,EAAE,OAAO,QAAQob,EAAK,iBAAiB,IAC1C83P,EAAO,WAAa,IAElB93P,EAAK,YACP,OAAO,OAAOkvE,EAAS,CACrB,OAAQknE,EACR,OAAQC,EACR,SAAUD,EACV,SAAUC,CAClB,CAAO,EACDr2I,EAAK,eAAiBw/E,MAExB,MACD,CACD,GAAI5qE,EAAO,qBAAuB,CAACA,EAAO,MACxC,GAAIkjP,EAAO,cAET,GAAIzhH,EAAQnnE,EAAQ,QAAU4oL,EAAO,WAAaA,EAAO,aAAY,GAAMzhH,EAAQnnE,EAAQ,QAAU4oL,EAAO,WAAaA,EAAO,eAAgB,CAC9I93P,EAAK,UAAY,GACjBA,EAAK,QAAU,GACf,MACD,UACQo2I,EAAQlnE,EAAQ,QAAU4oL,EAAO,WAAaA,EAAO,aAAc,GAAI1hH,EAAQlnE,EAAQ,QAAU4oL,EAAO,WAAaA,EAAO,eACrI,OAMJ,GAHI/xQ,EAAS,eAAiBA,EAAS,cAAc,QAAQia,EAAK,iBAAiB,GAAKja,EAAS,gBAAkBnB,EAAE,QAAUA,EAAE,cAAgB,SAC/ImB,EAAS,cAAc,OAErBA,EAAS,eACPnB,EAAE,SAAWmB,EAAS,eAAiBnB,EAAE,OAAO,QAAQob,EAAK,iBAAiB,EAAG,CACnFA,EAAK,QAAU,GACf83P,EAAO,WAAa,GACpB,MACD,CAEC93P,EAAK,qBACP83P,EAAO,KAAK,YAAalzQ,CAAC,EAE5BsqF,EAAQ,UAAYA,EAAQ,SAC5BA,EAAQ,UAAYA,EAAQ,SAC5BA,EAAQ,SAAWknE,EACnBlnE,EAAQ,SAAWmnE,EACnB,MAAMwyH,EAAQ35L,EAAQ,SAAWA,EAAQ,OACnC45L,EAAQ55L,EAAQ,SAAWA,EAAQ,OACzC,GAAI4oL,EAAO,OAAO,WAAa,KAAK,KAAK+Q,GAAS,EAAIC,GAAS,CAAC,EAAIhR,EAAO,OAAO,UAAW,OAC7F,GAAI,OAAO93P,EAAK,YAAgB,IAAa,CAC3C,IAAI+oQ,EACAjR,EAAO,aAAY,GAAM5oL,EAAQ,WAAaA,EAAQ,QAAU4oL,EAAO,WAAU,GAAM5oL,EAAQ,WAAaA,EAAQ,OACtHlvE,EAAK,YAAc,GAGf6oQ,EAAQA,EAAQC,EAAQA,GAAS,KACnCC,EAAa,KAAK,MAAM,KAAK,IAAID,CAAK,EAAG,KAAK,IAAID,CAAK,CAAC,EAAI,IAAM,KAAK,GACvE7oQ,EAAK,YAAc83P,EAAO,aAAc,EAAGiR,EAAan0P,EAAO,WAAa,GAAKm0P,EAAan0P,EAAO,WAG1G,CASD,GARI5U,EAAK,aACP83P,EAAO,KAAK,oBAAqBlzQ,CAAC,EAEhC,OAAOob,EAAK,YAAgB,MAC1BkvE,EAAQ,WAAaA,EAAQ,QAAUA,EAAQ,WAAaA,EAAQ,UACtElvE,EAAK,YAAc,IAGnBA,EAAK,aAAepb,EAAE,OAAS,aAAeob,EAAK,gCAAiC,CACtFA,EAAK,UAAY,GACjB,MACD,CACD,GAAI,CAACA,EAAK,YACR,OAEF83P,EAAO,WAAa,GAChB,CAACljP,EAAO,SAAWhwB,EAAE,YACvBA,EAAE,eAAc,EAEdgwB,EAAO,0BAA4B,CAACA,EAAO,QAC7ChwB,EAAE,gBAAe,EAEnB,IAAIwP,EAAO0jQ,EAAO,aAAY,EAAK+Q,EAAQC,EACvCE,EAAclR,EAAO,aAAY,EAAK5oL,EAAQ,SAAWA,EAAQ,UAAYA,EAAQ,SAAWA,EAAQ,UACxGt6D,EAAO,iBACTxgB,EAAO,KAAK,IAAIA,CAAI,GAAK6oQ,EAAM,EAAI,IACnC+L,EAAc,KAAK,IAAIA,CAAW,GAAK/L,EAAM,EAAI,KAEnD/tL,EAAQ,KAAO96E,EACfA,GAAQwgB,EAAO,WACXqoP,IACF7oQ,EAAO,CAACA,EACR40Q,EAAc,CAACA,GAEjB,MAAMC,EAAuBnR,EAAO,iBACpCA,EAAO,eAAiB1jQ,EAAO,EAAI,OAAS,OAC5C0jQ,EAAO,iBAAmBkR,EAAc,EAAI,OAAS,OACrD,MAAME,EAASpR,EAAO,OAAO,MAAQ,CAACljP,EAAO,QACvCu0P,EAAerR,EAAO,mBAAqB,QAAUA,EAAO,gBAAkBA,EAAO,mBAAqB,QAAUA,EAAO,eACjI,GAAI,CAAC93P,EAAK,QAAS,CAQjB,GAPIkpQ,GAAUC,GACZrR,EAAO,QAAQ,CACb,UAAWA,EAAO,cAC1B,CAAO,EAEH93P,EAAK,eAAiB83P,EAAO,eAC7BA,EAAO,cAAc,CAAC,EAClBA,EAAO,UAAW,CACpB,MAAM5jP,EAAM,IAAI,OAAO,YAAY,gBAAiB,CAClD,QAAS,GACT,WAAY,GACZ,OAAQ,CACN,kBAAmB,EACpB,CACT,CAAO,EACD4jP,EAAO,UAAU,cAAc5jP,CAAG,CACnC,CACDlU,EAAK,oBAAsB,GAEvB4U,EAAO,aAAekjP,EAAO,iBAAmB,IAAQA,EAAO,iBAAmB,KACpFA,EAAO,cAAc,EAAI,EAE3BA,EAAO,KAAK,kBAAmBlzQ,CAAC,CACjC,CACD,IAAIwkR,EAEJ,GADA,IAAI,KAAI,EAAG,UACPx0P,EAAO,iBAAmB,IAAS5U,EAAK,SAAWA,EAAK,oBAAsBipQ,IAAyBnR,EAAO,kBAAoBoR,GAAUC,GAAgB,KAAK,IAAI/0Q,CAAI,GAAK,EAAG,CACnL,OAAO,OAAO86E,EAAS,CACrB,OAAQknE,EACR,OAAQC,EACR,SAAUD,EACV,SAAUC,EACV,eAAgBr2I,EAAK,gBAC3B,CAAK,EACDA,EAAK,cAAgB,GACrBA,EAAK,eAAiBA,EAAK,iBAC3B,MACD,CACD83P,EAAO,KAAK,aAAclzQ,CAAC,EAC3Bob,EAAK,QAAU,GACfA,EAAK,iBAAmB5L,EAAO4L,EAAK,eACpC,IAAIqpQ,EAAsB,GACtBC,EAAkB10P,EAAO,gBAiD7B,GAhDIA,EAAO,sBACT00P,EAAkB,GAEhBl1Q,EAAO,GACL80Q,GAAUC,GAAgB,CAACC,GAAappQ,EAAK,oBAAsBA,EAAK,kBAAoB4U,EAAO,eAAiBkjP,EAAO,aAAc,EAAGA,EAAO,gBAAgBA,EAAO,YAAc,CAAC,GAAKljP,EAAO,gBAAkB,QAAUkjP,EAAO,OAAO,OAASljP,EAAO,eAAiB,EAAIkjP,EAAO,gBAAgBA,EAAO,YAAc,CAAC,EAAIA,EAAO,OAAO,aAAe,GAAKA,EAAO,OAAO,aAAeA,EAAO,aAAY,IACzZA,EAAO,QAAQ,CACb,UAAW,OACX,aAAc,GACd,iBAAkB,CAC1B,CAAO,EAEC93P,EAAK,iBAAmB83P,EAAO,aAAY,IAC7CuR,EAAsB,GAClBz0P,EAAO,aACT5U,EAAK,iBAAmB83P,EAAO,aAAY,EAAK,GAAK,CAACA,EAAO,aAAY,EAAK93P,EAAK,eAAiB5L,IAASk1Q,KAGxGl1Q,EAAO,IACZ80Q,GAAUC,GAAgB,CAACC,GAAappQ,EAAK,oBAAsBA,EAAK,kBAAoB4U,EAAO,eAAiBkjP,EAAO,eAAiBA,EAAO,gBAAgBA,EAAO,gBAAgB,OAAS,CAAC,EAAIA,EAAO,OAAO,cAAgBljP,EAAO,gBAAkB,QAAUkjP,EAAO,OAAO,OAASljP,EAAO,eAAiB,EAAIkjP,EAAO,gBAAgBA,EAAO,gBAAgB,OAAS,CAAC,EAAIA,EAAO,OAAO,aAAe,GAAKA,EAAO,aAAY,IAC/aA,EAAO,QAAQ,CACb,UAAW,OACX,aAAc,GACd,iBAAkBA,EAAO,OAAO,QAAUljP,EAAO,gBAAkB,OAASkjP,EAAO,qBAAoB,EAAK,KAAK,KAAK,WAAWljP,EAAO,cAAe,EAAE,CAAC,EAClK,CAAO,EAEC5U,EAAK,iBAAmB83P,EAAO,aAAY,IAC7CuR,EAAsB,GAClBz0P,EAAO,aACT5U,EAAK,iBAAmB83P,EAAO,aAAY,EAAK,GAAKA,EAAO,aAAc,EAAG93P,EAAK,eAAiB5L,IAASk1Q,KAI9GD,IACFzkR,EAAE,wBAA0B,IAI1B,CAACkzQ,EAAO,gBAAkBA,EAAO,iBAAmB,QAAU93P,EAAK,iBAAmBA,EAAK,iBAC7FA,EAAK,iBAAmBA,EAAK,gBAE3B,CAAC83P,EAAO,gBAAkBA,EAAO,iBAAmB,QAAU93P,EAAK,iBAAmBA,EAAK,iBAC7FA,EAAK,iBAAmBA,EAAK,gBAE3B,CAAC83P,EAAO,gBAAkB,CAACA,EAAO,iBACpC93P,EAAK,iBAAmBA,EAAK,gBAI3B4U,EAAO,UAAY,EACrB,GAAI,KAAK,IAAIxgB,CAAI,EAAIwgB,EAAO,WAAa5U,EAAK,oBAC5C,GAAI,CAACA,EAAK,mBAAoB,CAC5BA,EAAK,mBAAqB,GAC1BkvE,EAAQ,OAASA,EAAQ,SACzBA,EAAQ,OAASA,EAAQ,SACzBlvE,EAAK,iBAAmBA,EAAK,eAC7BkvE,EAAQ,KAAO4oL,EAAO,aAAY,EAAK5oL,EAAQ,SAAWA,EAAQ,OAASA,EAAQ,SAAWA,EAAQ,OACtG,MACD,MACI,CACLlvE,EAAK,iBAAmBA,EAAK,eAC7B,MACD,CAEC,CAAC4U,EAAO,cAAgBA,EAAO,WAG/BA,EAAO,UAAYA,EAAO,SAAS,SAAWkjP,EAAO,UAAYljP,EAAO,uBAC1EkjP,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,GAExBljP,EAAO,UAAYA,EAAO,SAAS,SAAWkjP,EAAO,UACvDA,EAAO,SAAS,cAGlBA,EAAO,eAAe93P,EAAK,gBAAgB,EAE3C83P,EAAO,aAAa93P,EAAK,gBAAgB,EAC3C,CAEA,SAASupQ,IAAWj4R,EAAO,CACzB,MAAMwmR,EAAS,KACT93P,EAAO83P,EAAO,gBACpB,IAAIlzQ,EAAItT,EACJsT,EAAE,gBAAeA,EAAIA,EAAE,eAC3B,IAAIgkR,EAEJ,GADqBhkR,EAAE,OAAS,YAAcA,EAAE,OAAS,eAOvD,GADAgkR,EAAc,CAAC,GAAGhkR,EAAE,cAAc,EAAE,KAAKyF,GAAKA,EAAE,aAAe2V,EAAK,OAAO,EACvE,CAAC4oQ,GAAeA,EAAY,aAAe5oQ,EAAK,QAAS,WAN5C,CAEjB,GADIA,EAAK,UAAY,MACjBpb,EAAE,YAAcob,EAAK,UAAW,OACpC4oQ,EAAchkR,CAClB,CAIE,GAAI,CAAC,gBAAiB,aAAc,eAAgB,aAAa,EAAE,SAASA,EAAE,IAAI,GAE5E,EADY,CAAC,gBAAiB,aAAa,EAAE,SAASA,EAAE,IAAI,IAAMkzQ,EAAO,QAAQ,UAAYA,EAAO,QAAQ,YAE9G,OAGJ93P,EAAK,UAAY,KACjBA,EAAK,QAAU,KACf,KAAM,CACJ,OAAA4U,EACA,QAAAs6D,EACA,aAAc+tL,EACd,WAAAO,EACA,QAAA+G,CACD,EAAGzM,EAEJ,GADI,CAACyM,GACD,CAAC3vP,EAAO,eAAiBhwB,EAAE,cAAgB,QAAS,OAKxD,GAJIob,EAAK,qBACP83P,EAAO,KAAK,WAAYlzQ,CAAC,EAE3Bob,EAAK,oBAAsB,GACvB,CAACA,EAAK,UAAW,CACfA,EAAK,SAAW4U,EAAO,YACzBkjP,EAAO,cAAc,EAAK,EAE5B93P,EAAK,QAAU,GACfA,EAAK,YAAc,GACnB,MACD,CAGG4U,EAAO,YAAc5U,EAAK,SAAWA,EAAK,YAAc83P,EAAO,iBAAmB,IAAQA,EAAO,iBAAmB,KACtHA,EAAO,cAAc,EAAK,EAI5B,MAAM0R,EAAehqL,KACfiqL,EAAWD,EAAexpQ,EAAK,eAGrC,GAAI83P,EAAO,WAAY,CACrB,MAAM4R,EAAW9kR,EAAE,MAAQA,EAAE,cAAgBA,EAAE,eAC/CkzQ,EAAO,mBAAmB4R,GAAYA,EAAS,CAAC,GAAK9kR,EAAE,OAAQ8kR,CAAQ,EACvE5R,EAAO,KAAK,YAAalzQ,CAAC,EACtB6kR,EAAW,KAAOD,EAAexpQ,EAAK,cAAgB,KACxD83P,EAAO,KAAK,wBAAyBlzQ,CAAC,CAEzC,CAKD,GAJAob,EAAK,cAAgBw/E,KACrBw3K,GAAS,IAAM,CACRc,EAAO,YAAWA,EAAO,WAAa,GAC/C,CAAG,EACG,CAAC93P,EAAK,WAAa,CAACA,EAAK,SAAW,CAAC83P,EAAO,gBAAkB5oL,EAAQ,OAAS,GAAK,CAAClvE,EAAK,eAAiBA,EAAK,mBAAqBA,EAAK,gBAAkB,CAACA,EAAK,cAAe,CACnLA,EAAK,UAAY,GACjBA,EAAK,QAAU,GACfA,EAAK,YAAc,GACnB,MACD,CACDA,EAAK,UAAY,GACjBA,EAAK,QAAU,GACfA,EAAK,YAAc,GACnB,IAAI2pQ,EAMJ,GALI/0P,EAAO,aACT+0P,EAAa1M,EAAMnF,EAAO,UAAY,CAACA,EAAO,UAE9C6R,EAAa,CAAC3pQ,EAAK,iBAEjB4U,EAAO,QACT,OAEF,GAAIA,EAAO,UAAYA,EAAO,SAAS,QAAS,CAC9CkjP,EAAO,SAAS,WAAW,CACzB,WAAA6R,CACN,CAAK,EACD,MACD,CAGD,MAAMC,EAAcD,GAAc,CAAC7R,EAAO,aAAY,GAAM,CAACA,EAAO,OAAO,KAC3E,IAAI+R,EAAY,EACZ9K,EAAYjH,EAAO,gBAAgB,CAAC,EACxC,QAASxiR,EAAI,EAAGA,EAAIkoR,EAAW,OAAQloR,GAAKA,EAAIs/B,EAAO,mBAAqB,EAAIA,EAAO,eAAgB,CACrG,MAAMslD,EAAY5kF,EAAIs/B,EAAO,mBAAqB,EAAI,EAAIA,EAAO,eAC7D,OAAO4oP,EAAWloR,EAAI4kF,CAAS,EAAM,KACnC0vM,GAAeD,GAAcnM,EAAWloR,CAAC,GAAKq0R,EAAanM,EAAWloR,EAAI4kF,CAAS,KACrF2vM,EAAYv0R,EACZypR,EAAYvB,EAAWloR,EAAI4kF,CAAS,EAAIsjM,EAAWloR,CAAC,IAE7Cs0R,GAAeD,GAAcnM,EAAWloR,CAAC,KAClDu0R,EAAYv0R,EACZypR,EAAYvB,EAAWA,EAAW,OAAS,CAAC,EAAIA,EAAWA,EAAW,OAAS,CAAC,EAEnF,CACD,IAAIsM,EAAmB,KACnBC,EAAkB,KAClBn1P,EAAO,SACLkjP,EAAO,YACTiS,EAAkBn1P,EAAO,SAAWA,EAAO,QAAQ,SAAWkjP,EAAO,QAAUA,EAAO,QAAQ,OAAO,OAAS,EAAIA,EAAO,OAAO,OAAS,EAChIA,EAAO,QAChBgS,EAAmB,IAIvB,MAAME,GAASL,EAAanM,EAAWqM,CAAS,GAAK9K,EAC/C7kM,EAAY2vM,EAAYj1P,EAAO,mBAAqB,EAAI,EAAIA,EAAO,eACzE,GAAI60P,EAAW70P,EAAO,aAAc,CAElC,GAAI,CAACA,EAAO,WAAY,CACtBkjP,EAAO,QAAQA,EAAO,WAAW,EACjC,MACD,CACGA,EAAO,iBAAmB,SACxBkS,GAASp1P,EAAO,gBAAiBkjP,EAAO,QAAQljP,EAAO,QAAUkjP,EAAO,MAAQgS,EAAmBD,EAAY3vM,CAAS,EAAO49L,EAAO,QAAQ+R,CAAS,GAEzJ/R,EAAO,iBAAmB,SACxBkS,EAAQ,EAAIp1P,EAAO,gBACrBkjP,EAAO,QAAQ+R,EAAY3vM,CAAS,EAC3B6vM,IAAoB,MAAQC,EAAQ,GAAK,KAAK,IAAIA,CAAK,EAAIp1P,EAAO,gBAC3EkjP,EAAO,QAAQiS,CAAe,EAE9BjS,EAAO,QAAQ+R,CAAS,EAGhC,KAAS,CAEL,GAAI,CAACj1P,EAAO,YAAa,CACvBkjP,EAAO,QAAQA,EAAO,WAAW,EACjC,MACD,CACyBA,EAAO,aAAelzQ,EAAE,SAAWkzQ,EAAO,WAAW,QAAUlzQ,EAAE,SAAWkzQ,EAAO,WAAW,QAQ7GlzQ,EAAE,SAAWkzQ,EAAO,WAAW,OACxCA,EAAO,QAAQ+R,EAAY3vM,CAAS,EAEpC49L,EAAO,QAAQ+R,CAAS,GATpB/R,EAAO,iBAAmB,QAC5BA,EAAO,QAAQgS,IAAqB,KAAOA,EAAmBD,EAAY3vM,CAAS,EAEjF49L,EAAO,iBAAmB,QAC5BA,EAAO,QAAQiS,IAAoB,KAAOA,EAAkBF,CAAS,EAO1E,CACH,CAEA,SAASI,IAAW,CAClB,MAAMnS,EAAS,KACT,CACJ,OAAAljP,EACA,GAAA9gB,CACD,EAAGgkQ,EACJ,GAAIhkQ,GAAMA,EAAG,cAAgB,EAAG,OAG5B8gB,EAAO,aACTkjP,EAAO,cAAa,EAItB,KAAM,CACJ,eAAA8O,EACA,eAAAD,EACA,SAAApJ,CACD,EAAGzF,EACEqF,EAAYrF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAG1DA,EAAO,eAAiB,GACxBA,EAAO,eAAiB,GACxBA,EAAO,WAAU,EACjBA,EAAO,aAAY,EACnBA,EAAO,oBAAmB,EAC1B,MAAMoS,EAAgB/M,GAAavoP,EAAO,MACrCA,EAAO,gBAAkB,QAAUA,EAAO,cAAgB,IAAMkjP,EAAO,OAAS,CAACA,EAAO,aAAe,CAACA,EAAO,OAAO,gBAAkB,CAACoS,EAC5IpS,EAAO,QAAQA,EAAO,OAAO,OAAS,EAAG,EAAG,GAAO,EAAI,EAEnDA,EAAO,OAAO,MAAQ,CAACqF,EACzBrF,EAAO,YAAYA,EAAO,UAAW,EAAG,GAAO,EAAI,EAEnDA,EAAO,QAAQA,EAAO,YAAa,EAAG,GAAO,EAAI,EAGjDA,EAAO,UAAYA,EAAO,SAAS,SAAWA,EAAO,SAAS,SAChE,aAAaA,EAAO,SAAS,aAAa,EAC1CA,EAAO,SAAS,cAAgB,WAAW,IAAM,CAC3CA,EAAO,UAAYA,EAAO,SAAS,SAAWA,EAAO,SAAS,QAChEA,EAAO,SAAS,QAEnB,EAAE,GAAG,GAGRA,EAAO,eAAiB6O,EACxB7O,EAAO,eAAiB8O,EACpB9O,EAAO,OAAO,eAAiByF,IAAazF,EAAO,UACrDA,EAAO,cAAa,CAExB,CAEA,SAAS1rN,IAAQxnD,EAAG,CAClB,MAAMkzQ,EAAS,KACVA,EAAO,UACPA,EAAO,aACNA,EAAO,OAAO,eAAelzQ,EAAE,eAAc,EAC7CkzQ,EAAO,OAAO,0BAA4BA,EAAO,YACnDlzQ,EAAE,gBAAe,EACjBA,EAAE,yBAAwB,IAGhC,CAEA,SAASulR,KAAW,CAClB,MAAMrS,EAAS,KACT,CACJ,UAAAgF,EACA,aAAAsI,EACA,QAAAb,CACD,EAAGzM,EACJ,GAAI,CAACyM,EAAS,OACdzM,EAAO,kBAAoBA,EAAO,UAC9BA,EAAO,eACTA,EAAO,UAAY,CAACgF,EAAU,WAE9BhF,EAAO,UAAY,CAACgF,EAAU,UAG5BhF,EAAO,YAAc,IAAGA,EAAO,UAAY,GAC/CA,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,EAC1B,IAAI4L,EACJ,MAAMhD,EAAiB5I,EAAO,aAAc,EAAGA,EAAO,aAAY,EAC9D4I,IAAmB,EACrBgD,EAAc,EAEdA,GAAe5L,EAAO,UAAYA,EAAO,aAAc,GAAI4I,EAEzDgD,IAAgB5L,EAAO,UACzBA,EAAO,eAAesN,EAAe,CAACtN,EAAO,UAAYA,EAAO,SAAS,EAE3EA,EAAO,KAAK,eAAgBA,EAAO,UAAW,EAAK,CACrD,CAEA,SAASsS,IAAOxlR,EAAG,CACjB,MAAMkzQ,EAAS,KACfiK,GAAqBjK,EAAQlzQ,EAAE,MAAM,EACjC,EAAAkzQ,EAAO,OAAO,SAAWA,EAAO,OAAO,gBAAkB,QAAU,CAACA,EAAO,OAAO,aAGtFA,EAAO,OAAM,CACf,CAEA,SAASuS,KAAuB,CAC9B,MAAMvS,EAAS,KACXA,EAAO,gCACXA,EAAO,8BAAgC,GACnCA,EAAO,OAAO,sBAChBA,EAAO,GAAG,MAAM,YAAc,QAElC,CAEA,MAAMn0P,GAAS,CAACm0P,EAAQlhR,IAAW,CACjC,MAAMmP,EAAWqpJ,KACX,CACJ,OAAAx6H,EACA,GAAA9gB,EACA,UAAAgpQ,EACA,OAAAnqF,CACD,EAAGmlF,EACEhkN,EAAU,CAAC,CAACl/B,EAAO,OACnB01P,EAAY1zR,IAAW,KAAO,mBAAqB,sBACnD2zR,EAAe3zR,EACjB,CAACkd,GAAM,OAAOA,GAAO,WAGzB/N,EAASukR,CAAS,EAAE,aAAcxS,EAAO,qBAAsB,CAC7D,QAAS,GACT,QAAAhkN,CACJ,CAAG,EACDhgD,EAAGw2Q,CAAS,EAAE,aAAcxS,EAAO,aAAc,CAC/C,QAAS,EACb,CAAG,EACDhkQ,EAAGw2Q,CAAS,EAAE,cAAexS,EAAO,aAAc,CAChD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,YAAaxS,EAAO,YAAa,CACnD,QAAS,GACT,QAAAhkN,CACJ,CAAG,EACD/tD,EAASukR,CAAS,EAAE,cAAexS,EAAO,YAAa,CACrD,QAAS,GACT,QAAAhkN,CACJ,CAAG,EACD/tD,EAASukR,CAAS,EAAE,WAAYxS,EAAO,WAAY,CACjD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,YAAaxS,EAAO,WAAY,CAClD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,gBAAiBxS,EAAO,WAAY,CACtD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,cAAexS,EAAO,WAAY,CACpD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,aAAcxS,EAAO,WAAY,CACnD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,eAAgBxS,EAAO,WAAY,CACrD,QAAS,EACb,CAAG,EACD/xQ,EAASukR,CAAS,EAAE,cAAexS,EAAO,WAAY,CACpD,QAAS,EACb,CAAG,GAGGljP,EAAO,eAAiBA,EAAO,2BACjC9gB,EAAGw2Q,CAAS,EAAE,QAASxS,EAAO,QAAS,EAAI,EAEzCljP,EAAO,SACTkoP,EAAUwN,CAAS,EAAE,SAAUxS,EAAO,QAAQ,EAI5CljP,EAAO,qBACTkjP,EAAOyS,CAAY,EAAE53F,EAAO,KAAOA,EAAO,QAAU,0CAA4C,wBAAyBs3F,GAAU,EAAI,EAEvInS,EAAOyS,CAAY,EAAE,iBAAkBN,GAAU,EAAI,EAIvDn2Q,EAAGw2Q,CAAS,EAAE,OAAQxS,EAAO,OAAQ,CACnC,QAAS,EACb,CAAG,EACH,EACA,SAAS0S,KAAe,CACtB,MAAM1S,EAAS,KACT,CACJ,OAAAljP,CACD,EAAGkjP,EACJA,EAAO,aAAe/tL,IAAa,KAAK+tL,CAAM,EAC9CA,EAAO,YAAc9tL,IAAY,KAAK8tL,CAAM,EAC5CA,EAAO,WAAayR,IAAW,KAAKzR,CAAM,EAC1CA,EAAO,qBAAuBuS,IAAqB,KAAKvS,CAAM,EAC1DljP,EAAO,UACTkjP,EAAO,SAAWqS,IAAS,KAAKrS,CAAM,GAExCA,EAAO,QAAU1rN,IAAQ,KAAK0rN,CAAM,EACpCA,EAAO,OAASsS,IAAO,KAAKtS,CAAM,EAClCn0P,GAAOm0P,EAAQ,IAAI,CACrB,CACA,SAAS2S,KAAe,CAEtB9mQ,GADe,KACA,KAAK,CACtB,CACA,IAAI+mQ,IAAW,CACb,aAAAF,IACA,aAAAC,GACF,EAEA,MAAME,GAAgB,CAAC7S,EAAQljP,IACtBkjP,EAAO,MAAQljP,EAAO,MAAQA,EAAO,KAAK,KAAO,EAE1D,SAASg2P,KAAgB,CACvB,MAAM9S,EAAS,KACT,CACJ,UAAA0K,EACA,YAAA9pR,EACA,OAAAk8B,EACA,GAAA9gB,CACD,EAAGgkQ,EACE+S,EAAcj2P,EAAO,YAC3B,GAAI,CAACi2P,GAAeA,GAAe,OAAO,KAAKA,CAAW,EAAE,SAAW,EAAG,OAC1E,MAAM9kR,EAAWqpJ,KAGX07H,EAAkBl2P,EAAO,kBAAoB,UAAY,CAACA,EAAO,gBAAkBA,EAAO,gBAAkB,YAC5Gm2P,EAAsB,CAAC,SAAU,WAAW,EAAE,SAASn2P,EAAO,eAAe,GAAK,CAACA,EAAO,gBAAkBkjP,EAAO,GAAK/xQ,EAAS,cAAc6uB,EAAO,eAAe,EACrKo2P,EAAalT,EAAO,cAAc+S,EAAaC,EAAiBC,CAAmB,EACzF,GAAI,CAACC,GAAclT,EAAO,oBAAsBkT,EAAY,OAE5D,MAAMC,GADuBD,KAAcH,EAAcA,EAAYG,CAAU,EAAI,SAClClT,EAAO,eAClDoT,EAAcP,GAAc7S,EAAQljP,CAAM,EAC1Cu2P,EAAaR,GAAc7S,EAAQmT,CAAgB,EACnDG,EAAgBtT,EAAO,OAAO,WAC9BuT,EAAeJ,EAAiB,WAChCK,EAAa12P,EAAO,QACtBs2P,GAAe,CAACC,GAClBr3Q,EAAG,UAAU,OAAO,GAAG8gB,EAAO,sBAAsB,OAAQ,GAAGA,EAAO,sBAAsB,aAAa,EACzGkjP,EAAO,qBAAoB,GAClB,CAACoT,GAAeC,IACzBr3Q,EAAG,UAAU,IAAI,GAAG8gB,EAAO,sBAAsB,MAAM,GACnDq2P,EAAiB,KAAK,MAAQA,EAAiB,KAAK,OAAS,UAAY,CAACA,EAAiB,KAAK,MAAQr2P,EAAO,KAAK,OAAS,WAC/H9gB,EAAG,UAAU,IAAI,GAAG8gB,EAAO,sBAAsB,aAAa,EAEhEkjP,EAAO,qBAAoB,GAEzBsT,GAAiB,CAACC,EACpBvT,EAAO,gBAAe,EACb,CAACsT,GAAiBC,GAC3BvT,EAAO,cAAa,EAItB,CAAC,aAAc,aAAc,WAAW,EAAE,QAAQ73P,GAAQ,CACxD,GAAI,OAAOgrQ,EAAiBhrQ,CAAI,EAAM,IAAa,OACnD,MAAMsrQ,EAAmB32P,EAAO3U,CAAI,GAAK2U,EAAO3U,CAAI,EAAE,QAChDurQ,EAAkBP,EAAiBhrQ,CAAI,GAAKgrQ,EAAiBhrQ,CAAI,EAAE,QACrEsrQ,GAAoB,CAACC,GACvB1T,EAAO73P,CAAI,EAAE,UAEX,CAACsrQ,GAAoBC,GACvB1T,EAAO73P,CAAI,EAAE,QAEnB,CAAG,EACD,MAAMwrQ,EAAmBR,EAAiB,WAAaA,EAAiB,YAAcr2P,EAAO,UACvF82P,EAAc92P,EAAO,OAASq2P,EAAiB,gBAAkBr2P,EAAO,eAAiB62P,GACzFE,EAAU/2P,EAAO,KACnB62P,GAAoB/yR,GACtBo/Q,EAAO,gBAAe,EAExBhxM,GAAOgxM,EAAO,OAAQmT,CAAgB,EACtC,MAAMpiM,EAAYivL,EAAO,OAAO,QAC1B8T,EAAU9T,EAAO,OAAO,KAC9B,OAAO,OAAOA,EAAQ,CACpB,eAAgBA,EAAO,OAAO,eAC9B,eAAgBA,EAAO,OAAO,eAC9B,eAAgBA,EAAO,OAAO,cAClC,CAAG,EACGwT,GAAc,CAACziM,EACjBivL,EAAO,QAAO,EACL,CAACwT,GAAcziM,GACxBivL,EAAO,OAAM,EAEfA,EAAO,kBAAoBkT,EAC3BlT,EAAO,KAAK,oBAAqBmT,CAAgB,EAC7CvyR,IACEgzR,GACF5T,EAAO,YAAW,EAClBA,EAAO,WAAW0K,CAAS,EAC3B1K,EAAO,aAAY,GACV,CAAC6T,GAAWC,GACrB9T,EAAO,WAAW0K,CAAS,EAC3B1K,EAAO,aAAY,GACV6T,GAAW,CAACC,GACrB9T,EAAO,YAAW,GAGtBA,EAAO,KAAK,aAAcmT,CAAgB,CAC5C,CAEA,SAASY,IAAchB,EAAazyQ,EAAM0zQ,EAAa,CAIrD,GAHI1zQ,IAAS,SACXA,EAAO,UAEL,CAACyyQ,GAAezyQ,IAAS,aAAe,CAAC0zQ,EAAa,OAC1D,IAAId,EAAa,GACjB,MAAM5+Q,EAAS4rD,KACT2/K,EAAgBv/N,IAAS,SAAWhM,EAAO,YAAc0/Q,EAAY,aACrE98M,EAAS,OAAO,KAAK67M,CAAW,EAAE,IAAInxI,GAAS,CACnD,GAAI,OAAOA,GAAU,UAAYA,EAAM,QAAQ,GAAG,IAAM,EAAG,CACzD,MAAMqyI,EAAW,WAAWryI,EAAM,OAAO,CAAC,CAAC,EAE3C,MAAO,CACL,MAFYi+F,EAAgBo0C,EAG5B,MAAAryI,CACR,CACK,CACD,MAAO,CACL,MAAOA,EACP,MAAAA,CACN,CACA,CAAG,EACD1qE,EAAO,KAAK,CAACn+D,EAAGC,IAAM,SAASD,EAAE,MAAO,EAAE,EAAI,SAASC,EAAE,MAAO,EAAE,CAAC,EACnE,QAASxb,EAAI,EAAGA,EAAI05E,EAAO,OAAQ15E,GAAK,EAAG,CACzC,KAAM,CACJ,MAAAokJ,EACA,MAAAjoJ,CACN,EAAQu9E,EAAO15E,CAAC,EACR8iB,IAAS,SACPhM,EAAO,WAAW,eAAe3a,CAAK,KAAK,EAAE,UAC/Cu5R,EAAatxI,GAENjoJ,GAASq6R,EAAY,cAC9Bd,EAAatxI,EAEhB,CACD,OAAOsxI,GAAc,KACvB,CAEA,IAAIH,IAAc,CAChB,cAAAD,IACA,cAAAiB,GACF,EAEA,SAASG,IAAez0R,EAAS7E,EAAQ,CACvC,MAAMu5R,EAAgB,GACtB,OAAA10R,EAAQ,QAAQkR,GAAQ,CAClB,OAAOA,GAAS,SAClB,OAAO,KAAKA,CAAI,EAAE,QAAQ4lB,GAAc,CAClC5lB,EAAK4lB,CAAU,GACjB49P,EAAc,KAAKv5R,EAAS27B,CAAU,CAEhD,CAAO,EACQ,OAAO5lB,GAAS,UACzBwjR,EAAc,KAAKv5R,EAAS+V,CAAI,CAEtC,CAAG,EACMwjR,CACT,CACA,SAAS5yE,KAAa,CACpB,MAAMy+D,EAAS,KACT,CACJ,WAAAzpP,EACA,OAAAuG,EACA,IAAAqoP,EACA,GAAAnpQ,EACA,OAAA6+K,CACD,EAAGmlF,EAEEoU,EAAWF,IAAe,CAAC,cAAep3P,EAAO,UAAW,CAChE,YAAakjP,EAAO,OAAO,UAAYljP,EAAO,SAAS,OAC3D,EAAK,CACD,WAAcA,EAAO,UACzB,EAAK,CACD,IAAOqoP,CACX,EAAK,CACD,KAAQroP,EAAO,MAAQA,EAAO,KAAK,KAAO,CAC9C,EAAK,CACD,cAAeA,EAAO,MAAQA,EAAO,KAAK,KAAO,GAAKA,EAAO,KAAK,OAAS,QAC/E,EAAK,CACD,QAAW+9J,EAAO,OACtB,EAAK,CACD,IAAOA,EAAO,GAClB,EAAK,CACD,WAAY/9J,EAAO,OACvB,EAAK,CACD,SAAYA,EAAO,SAAWA,EAAO,cACzC,EAAK,CACD,iBAAkBA,EAAO,mBAC7B,CAAG,EAAGA,EAAO,sBAAsB,EACjCvG,EAAW,KAAK,GAAG69P,CAAQ,EAC3Bp4Q,EAAG,UAAU,IAAI,GAAGua,CAAU,EAC9BypP,EAAO,qBAAoB,CAC7B,CAEA,SAASqU,KAAgB,CACvB,MAAMrU,EAAS,KACT,CACJ,GAAAhkQ,EACA,WAAAua,CACD,EAAGypP,EACA,CAAChkQ,GAAM,OAAOA,GAAO,WACzBA,EAAG,UAAU,OAAO,GAAGua,CAAU,EACjCypP,EAAO,qBAAoB,EAC7B,CAEA,IAAI7wN,IAAU,CACZ,WAAAoyJ,IACA,cAAA8yE,GACF,EAEA,SAAS3+K,KAAgB,CACvB,MAAMsqK,EAAS,KACT,CACJ,SAAUsU,EACV,OAAAx3P,CACD,EAAGkjP,EACE,CACJ,mBAAAuU,CACD,EAAGz3P,EACJ,GAAIy3P,EAAoB,CACtB,MAAMlL,EAAiBrJ,EAAO,OAAO,OAAS,EACxCwU,EAAqBxU,EAAO,WAAWqJ,CAAc,EAAIrJ,EAAO,gBAAgBqJ,CAAc,EAAIkL,EAAqB,EAC7HvU,EAAO,SAAWA,EAAO,KAAOwU,CACpC,MACIxU,EAAO,SAAWA,EAAO,SAAS,SAAW,EAE3CljP,EAAO,iBAAmB,KAC5BkjP,EAAO,eAAiB,CAACA,EAAO,UAE9BljP,EAAO,iBAAmB,KAC5BkjP,EAAO,eAAiB,CAACA,EAAO,UAE9BsU,GAAaA,IAActU,EAAO,WACpCA,EAAO,MAAQ,IAEbsU,IAActU,EAAO,UACvBA,EAAO,KAAKA,EAAO,SAAW,OAAS,QAAQ,CAEnD,CACA,IAAIyU,IAAkB,CACpB,cAAA/+K,GACF,EAEItmG,GAAW,CACb,KAAM,GACN,UAAW,aACX,eAAgB,GAChB,sBAAuB,mBACvB,kBAAmB,UACnB,aAAc,EACd,MAAO,IACP,QAAS,GACT,qBAAsB,GACtB,eAAgB,GAChB,OAAQ,GACR,eAAgB,GAChB,aAAc,SACd,QAAS,GACT,kBAAmB,wDAEnB,MAAO,KACP,OAAQ,KAER,+BAAgC,GAEhC,UAAW,KACX,IAAK,KAEL,mBAAoB,GACpB,mBAAoB,GAEpB,WAAY,GAEZ,eAAgB,GAEhB,iBAAkB,GAElB,OAAQ,QAIR,YAAa,OACb,gBAAiB,SAEjB,aAAc,EACd,cAAe,EACf,eAAgB,EAChB,mBAAoB,EACpB,mBAAoB,GACpB,eAAgB,GAChB,qBAAsB,GACtB,mBAAoB,EAEpB,kBAAmB,EAEnB,oBAAqB,GACrB,yBAA0B,GAE1B,cAAe,GAEf,aAAc,GAEd,WAAY,EACZ,WAAY,GACZ,cAAe,GACf,YAAa,GACb,WAAY,GACZ,gBAAiB,GACjB,aAAc,IACd,aAAc,GACd,eAAgB,GAChB,UAAW,EACX,yBAA0B,GAC1B,yBAA0B,GAC1B,8BAA+B,GAC/B,oBAAqB,GAErB,kBAAmB,GAEnB,WAAY,GACZ,gBAAiB,IAEjB,oBAAqB,GAErB,WAAY,GAEZ,cAAe,GACf,yBAA0B,GAC1B,oBAAqB,GAErB,KAAM,GACN,mBAAoB,GACpB,qBAAsB,EACtB,oBAAqB,GAErB,OAAQ,GAER,eAAgB,GAChB,eAAgB,GAChB,aAAc,KAEd,UAAW,GACX,eAAgB,oBAChB,kBAAmB,KAEnB,iBAAkB,GAClB,wBAAyB,GAEzB,uBAAwB,UAExB,WAAY,eACZ,gBAAiB,qBACjB,iBAAkB,sBAClB,kBAAmB,uBACnB,uBAAwB,6BACxB,eAAgB,oBAChB,eAAgB,oBAChB,aAAc,iBACd,mBAAoB,wBACpB,oBAAqB,EAErB,mBAAoB,GAEpB,aAAc,EAChB,EAEA,SAASslR,IAAmB53P,EAAQ63P,EAAkB,CACpD,OAAO,SAAsBziR,EAAK,CAC5BA,IAAQ,SACVA,EAAM,IAER,MAAM0iR,EAAkB,OAAO,KAAK1iR,CAAG,EAAE,CAAC,EACpC2iR,EAAe3iR,EAAI0iR,CAAe,EACxC,GAAI,OAAOC,GAAiB,UAAYA,IAAiB,KAAM,CAC7D7lN,GAAO2lN,EAAkBziR,CAAG,EAC5B,MACD,CAYD,GAXI4qB,EAAO83P,CAAe,IAAM,KAC9B93P,EAAO83P,CAAe,EAAI,CACxB,QAAS,EACjB,GAEQA,IAAoB,cAAgB93P,EAAO83P,CAAe,GAAK93P,EAAO83P,CAAe,EAAE,SAAW,CAAC93P,EAAO83P,CAAe,EAAE,QAAU,CAAC93P,EAAO83P,CAAe,EAAE,SAChK93P,EAAO83P,CAAe,EAAE,KAAO,IAE7B,CAAC,aAAc,WAAW,EAAE,QAAQA,CAAe,GAAK,GAAK93P,EAAO83P,CAAe,GAAK93P,EAAO83P,CAAe,EAAE,SAAW,CAAC93P,EAAO83P,CAAe,EAAE,KACtJ93P,EAAO83P,CAAe,EAAE,KAAO,IAE7B,EAAEA,KAAmB93P,GAAU,YAAa+3P,GAAe,CAC7D7lN,GAAO2lN,EAAkBziR,CAAG,EAC5B,MACD,CACG,OAAO4qB,EAAO83P,CAAe,GAAM,UAAY,EAAE,YAAa93P,EAAO83P,CAAe,KACtF93P,EAAO83P,CAAe,EAAE,QAAU,IAE/B93P,EAAO83P,CAAe,IAAG93P,EAAO83P,CAAe,EAAI,CACtD,QAAS,EACf,GACI5lN,GAAO2lN,EAAkBziR,CAAG,CAChC,CACA,CAGA,MAAM4iR,GAAa,CACjB,cAAApQ,IACF,OAAE5mE,IACA,UAAAsqE,IACA,WAAAn3Q,IACA,MAAA06P,IACA,KAAAikB,IACA,WAAAI,IACA,OAAQ4C,IACR,YAAAG,IACA,cAAe0B,IACf,QAAAtlO,GACF,EACM4lO,GAAmB,GACzB,MAAMC,EAAO,CACX,aAAc,CACZ,IAAIh5Q,EACA8gB,EACJ,QAASk1B,EAAO,UAAU,OAAQ5yC,EAAO,IAAI,MAAM4yC,CAAI,EAAGxqC,EAAO,EAAGA,EAAOwqC,EAAMxqC,IAC/EpI,EAAKoI,CAAI,EAAI,UAAUA,CAAI,EAEzBpI,EAAK,SAAW,GAAKA,EAAK,CAAC,EAAE,aAAe,OAAO,UAAU,SAAS,KAAKA,EAAK,CAAC,CAAC,EAAE,MAAM,EAAG,EAAE,IAAM,SACvG0d,EAAS1d,EAAK,CAAC,EAEf,CAACpD,EAAI8gB,CAAM,EAAI1d,EAEZ0d,IAAQA,EAAS,IACtBA,EAASkyC,GAAO,GAAIlyC,CAAM,EACtB9gB,GAAM,CAAC8gB,EAAO,KAAIA,EAAO,GAAK9gB,GAClC,MAAM/N,EAAWqpJ,KACjB,GAAIx6H,EAAO,IAAM,OAAOA,EAAO,IAAO,UAAY7uB,EAAS,iBAAiB6uB,EAAO,EAAE,EAAE,OAAS,EAAG,CACjG,MAAMm4P,EAAU,GAChB,OAAAhnR,EAAS,iBAAiB6uB,EAAO,EAAE,EAAE,QAAQk3P,GAAe,CAC1D,MAAMkB,EAAYlmN,GAAO,CAAE,EAAElyC,EAAQ,CACnC,GAAIk3P,CACd,CAAS,EACDiB,EAAQ,KAAK,IAAID,GAAOE,CAAS,CAAC,CAC1C,CAAO,EAEMD,CACR,CAGD,MAAMjV,EAAS,KACfA,EAAO,WAAa,GACpBA,EAAO,QAAUoC,KACjBpC,EAAO,OAASiD,GAAU,CACxB,UAAWnmP,EAAO,SACxB,CAAK,EACDkjP,EAAO,QAAUwD,KACjBxD,EAAO,gBAAkB,GACzBA,EAAO,mBAAqB,GAC5BA,EAAO,QAAU,CAAC,GAAGA,EAAO,WAAW,EACnCljP,EAAO,SAAW,MAAM,QAAQA,EAAO,OAAO,GAChDkjP,EAAO,QAAQ,KAAK,GAAGljP,EAAO,OAAO,EAEvC,MAAM63P,EAAmB,GACzB3U,EAAO,QAAQ,QAAQ9xK,GAAO,CAC5BA,EAAI,CACF,OAAApxE,EACA,OAAAkjP,EACA,aAAc0U,IAAmB53P,EAAQ63P,CAAgB,EACzD,GAAI3U,EAAO,GAAG,KAAKA,CAAM,EACzB,KAAMA,EAAO,KAAK,KAAKA,CAAM,EAC7B,IAAKA,EAAO,IAAI,KAAKA,CAAM,EAC3B,KAAMA,EAAO,KAAK,KAAKA,CAAM,CACrC,CAAO,CACP,CAAK,EAGD,MAAMmV,EAAenmN,GAAO,CAAE,EAAE5/D,GAAUulR,CAAgB,EAG1D,OAAA3U,EAAO,OAAShxM,GAAO,GAAImmN,EAAcJ,GAAkBj4P,CAAM,EACjEkjP,EAAO,eAAiBhxM,GAAO,CAAE,EAAEgxM,EAAO,MAAM,EAChDA,EAAO,aAAehxM,GAAO,CAAE,EAAElyC,CAAM,EAGnCkjP,EAAO,QAAUA,EAAO,OAAO,IACjC,OAAO,KAAKA,EAAO,OAAO,EAAE,EAAE,QAAQ1jR,GAAa,CACjD0jR,EAAO,GAAG1jR,EAAW0jR,EAAO,OAAO,GAAG1jR,CAAS,CAAC,CACxD,CAAO,EAEC0jR,EAAO,QAAUA,EAAO,OAAO,OACjCA,EAAO,MAAMA,EAAO,OAAO,KAAK,EAIlC,OAAO,OAAOA,EAAQ,CACpB,QAASA,EAAO,OAAO,QACvB,GAAAhkQ,EAEA,WAAY,CAAE,EAEd,OAAQ,CAAE,EACV,WAAY,CAAE,EACd,SAAU,CAAE,EACZ,gBAAiB,CAAE,EAEnB,cAAe,CACb,OAAOgkQ,EAAO,OAAO,YAAc,YACpC,EACD,YAAa,CACX,OAAOA,EAAO,OAAO,YAAc,UACpC,EAED,YAAa,EACb,UAAW,EAEX,YAAa,GACb,MAAO,GAEP,UAAW,EACX,kBAAmB,EACnB,SAAU,EACV,SAAU,EACV,UAAW,GACX,uBAAwB,CAGtB,OAAO,KAAK,MAAM,KAAK,UAAY,GAAK,EAAE,EAAI,GAAK,EACpD,EAED,eAAgBA,EAAO,OAAO,eAC9B,eAAgBA,EAAO,OAAO,eAE9B,gBAAiB,CACf,UAAW,OACX,QAAS,OACT,oBAAqB,OACrB,eAAgB,OAChB,YAAa,OACb,iBAAkB,OAClB,eAAgB,OAChB,mBAAoB,OAEpB,kBAAmBA,EAAO,OAAO,kBAEjC,cAAe,EACf,aAAc,OAEd,WAAY,CAAE,EACd,oBAAqB,OACrB,YAAa,OACb,UAAW,KACX,QAAS,IACV,EAED,WAAY,GAEZ,eAAgBA,EAAO,OAAO,eAC9B,QAAS,CACP,OAAQ,EACR,OAAQ,EACR,SAAU,EACV,SAAU,EACV,KAAM,CACP,EAED,aAAc,CAAE,EAChB,aAAc,CACpB,CAAK,EACDA,EAAO,KAAK,SAAS,EAGjBA,EAAO,OAAO,MAChBA,EAAO,KAAI,EAKNA,CACR,CACD,kBAAkB9vQ,EAAU,CAC1B,OAAI,KAAK,eACAA,EAGF,CACL,MAAS,SACT,aAAc,cACd,iBAAkB,eAClB,cAAe,aACf,eAAgB,gBAChB,eAAgB,cAChB,gBAAiB,iBACjB,YAAe,cAChB,EAACA,CAAQ,CACX,CACD,cAAcswQ,EAAS,CACrB,KAAM,CACJ,SAAAyE,EACA,OAAAnoP,CACD,EAAG,KACEyoP,EAAS9E,GAAgBwE,EAAU,IAAInoP,EAAO,UAAU,gBAAgB,EACxEssP,EAAkB1H,GAAa6D,EAAO,CAAC,CAAC,EAC9C,OAAO7D,GAAalB,CAAO,EAAI4I,CAChC,CACD,oBAAoBxiR,EAAO,CACzB,OAAO,KAAK,cAAc,KAAK,OAAO,KAAK45Q,GAAWA,EAAQ,aAAa,yBAAyB,EAAI,IAAM55Q,CAAK,CAAC,CACrH,CACD,cAAe,CACb,MAAMo5Q,EAAS,KACT,CACJ,SAAAiF,EACA,OAAAnoP,CACD,EAAGkjP,EACJA,EAAO,OAASS,GAAgBwE,EAAU,IAAInoP,EAAO,UAAU,gBAAgB,CAChF,CACD,QAAS,CACP,MAAMkjP,EAAS,KACXA,EAAO,UACXA,EAAO,QAAU,GACbA,EAAO,OAAO,YAChBA,EAAO,cAAa,EAEtBA,EAAO,KAAK,QAAQ,EACrB,CACD,SAAU,CACR,MAAMA,EAAS,KACVA,EAAO,UACZA,EAAO,QAAU,GACbA,EAAO,OAAO,YAChBA,EAAO,gBAAe,EAExBA,EAAO,KAAK,SAAS,EACtB,CACD,YAAYnzB,EAAUj4N,EAAO,CAC3B,MAAMorP,EAAS,KACfnzB,EAAW,KAAK,IAAI,KAAK,IAAIA,EAAU,CAAC,EAAG,CAAC,EAC5C,MAAMtiM,EAAMy1N,EAAO,eAEb3lP,GADM2lP,EAAO,eACIz1N,GAAOsiM,EAAWtiM,EACzCy1N,EAAO,YAAY3lP,EAAS,OAAOzF,EAAU,IAAc,EAAIA,CAAK,EACpEorP,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,CAC3B,CACD,sBAAuB,CACrB,MAAMA,EAAS,KACf,GAAI,CAACA,EAAO,OAAO,cAAgB,CAACA,EAAO,GAAI,OAC/C,MAAMvhM,EAAMuhM,EAAO,GAAG,UAAU,MAAM,GAAG,EAAE,OAAO5iQ,GACzCA,EAAU,QAAQ,QAAQ,IAAM,GAAKA,EAAU,QAAQ4iQ,EAAO,OAAO,sBAAsB,IAAM,CACzG,EACDA,EAAO,KAAK,oBAAqBvhM,EAAI,KAAK,GAAG,CAAC,CAC/C,CACD,gBAAgB+hM,EAAS,CACvB,MAAMR,EAAS,KACf,OAAIA,EAAO,UAAkB,GACtBQ,EAAQ,UAAU,MAAM,GAAG,EAAE,OAAOpjQ,GAClCA,EAAU,QAAQ,cAAc,IAAM,GAAKA,EAAU,QAAQ4iQ,EAAO,OAAO,UAAU,IAAM,CACnG,EAAE,KAAK,GAAG,CACZ,CACD,mBAAoB,CAClB,MAAMA,EAAS,KACf,GAAI,CAACA,EAAO,OAAO,cAAgB,CAACA,EAAO,GAAI,OAC/C,MAAMoV,EAAU,GAChBpV,EAAO,OAAO,QAAQQ,GAAW,CAC/B,MAAMjqP,EAAaypP,EAAO,gBAAgBQ,CAAO,EACjD4U,EAAQ,KAAK,CACX,QAAA5U,EACA,WAAAjqP,CACR,CAAO,EACDypP,EAAO,KAAK,cAAeQ,EAASjqP,CAAU,CACpD,CAAK,EACDypP,EAAO,KAAK,gBAAiBoV,CAAO,CACrC,CACD,qBAAqBpmQ,EAAMorJ,EAAO,CAC5BprJ,IAAS,SACXA,EAAO,WAELorJ,IAAU,SACZA,EAAQ,IAEV,MAAM4lG,EAAS,KACT,CACJ,OAAAljP,EACA,OAAAyoP,EACA,WAAAG,EACA,gBAAAC,EACA,KAAMT,EACN,YAAA0E,CACD,EAAG5J,EACJ,IAAIqV,EAAM,EACV,GAAI,OAAOv4P,EAAO,eAAkB,SAAU,OAAOA,EAAO,cAC5D,GAAIA,EAAO,eAAgB,CACzB,IAAIspP,EAAYb,EAAOqE,CAAW,EAAI,KAAK,KAAKrE,EAAOqE,CAAW,EAAE,eAAe,EAAI,EACnF0L,EACJ,QAAS93R,EAAIosR,EAAc,EAAGpsR,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAChD+nR,EAAO/nR,CAAC,GAAK,CAAC83R,IAChBlP,GAAa,KAAK,KAAKb,EAAO/nR,CAAC,EAAE,eAAe,EAChD63R,GAAO,EACHjP,EAAYlB,IAAYoQ,EAAY,KAG5C,QAAS93R,EAAIosR,EAAc,EAAGpsR,GAAK,EAAGA,GAAK,EACrC+nR,EAAO/nR,CAAC,GAAK,CAAC83R,IAChBlP,GAAab,EAAO/nR,CAAC,EAAE,gBACvB63R,GAAO,EACHjP,EAAYlB,IAAYoQ,EAAY,IAGlD,SAEUtmQ,IAAS,UACX,QAASxxB,EAAIosR,EAAc,EAAGpsR,EAAI+nR,EAAO,OAAQ/nR,GAAK,GAChC48K,EAAQsrG,EAAWloR,CAAC,EAAImoR,EAAgBnoR,CAAC,EAAIkoR,EAAWkE,CAAW,EAAI1E,EAAaQ,EAAWloR,CAAC,EAAIkoR,EAAWkE,CAAW,EAAI1E,KAEhJmQ,GAAO,OAKX,SAAS73R,EAAIosR,EAAc,EAAGpsR,GAAK,EAAGA,GAAK,EACrBkoR,EAAWkE,CAAW,EAAIlE,EAAWloR,CAAC,EAAI0nR,IAE5DmQ,GAAO,GAKf,OAAOA,CACR,CACD,QAAS,CACP,MAAMrV,EAAS,KACf,GAAI,CAACA,GAAUA,EAAO,UAAW,OACjC,KAAM,CACJ,SAAAyF,EACA,OAAA3oP,CACD,EAAGkjP,EAEAljP,EAAO,aACTkjP,EAAO,cAAa,EAEtB,CAAC,GAAGA,EAAO,GAAG,iBAAiB,kBAAkB,CAAC,EAAE,QAAQkK,GAAW,CACjEA,EAAQ,UACVD,GAAqBjK,EAAQkK,CAAO,CAE5C,CAAK,EACDlK,EAAO,WAAU,EACjBA,EAAO,aAAY,EACnBA,EAAO,eAAc,EACrBA,EAAO,oBAAmB,EAC1B,SAAS0L,GAAe,CACtB,MAAM6J,EAAiBvV,EAAO,aAAeA,EAAO,UAAY,GAAKA,EAAO,UACtEmM,EAAe,KAAK,IAAI,KAAK,IAAIoJ,EAAgBvV,EAAO,aAAY,CAAE,EAAGA,EAAO,aAAc,GACpGA,EAAO,aAAamM,CAAY,EAChCnM,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,CAC3B,CACD,IAAIwV,EACJ,GAAI14P,EAAO,UAAYA,EAAO,SAAS,SAAW,CAACA,EAAO,QACxD4uP,IACI5uP,EAAO,YACTkjP,EAAO,iBAAgB,MAEpB,CACL,IAAKljP,EAAO,gBAAkB,QAAUA,EAAO,cAAgB,IAAMkjP,EAAO,OAAS,CAACljP,EAAO,eAAgB,CAC3G,MAAMyoP,EAASvF,EAAO,SAAWljP,EAAO,QAAQ,QAAUkjP,EAAO,QAAQ,OAASA,EAAO,OACzFwV,EAAaxV,EAAO,QAAQuF,EAAO,OAAS,EAAG,EAAG,GAAO,EAAI,CACrE,MACQiQ,EAAaxV,EAAO,QAAQA,EAAO,YAAa,EAAG,GAAO,EAAI,EAE3DwV,GACH9J,GAEH,CACG5uP,EAAO,eAAiB2oP,IAAazF,EAAO,UAC9CA,EAAO,cAAa,EAEtBA,EAAO,KAAK,QAAQ,CACrB,CACD,gBAAgByV,EAAcC,EAAY,CACpCA,IAAe,SACjBA,EAAa,IAEf,MAAM1V,EAAS,KACT2V,EAAmB3V,EAAO,OAAO,UAKvC,OAJKyV,IAEHA,EAAeE,IAAqB,aAAe,WAAa,cAE9DF,IAAiBE,GAAoBF,IAAiB,cAAgBA,IAAiB,aAG3FzV,EAAO,GAAG,UAAU,OAAO,GAAGA,EAAO,OAAO,sBAAsB,GAAG2V,CAAgB,EAAE,EACvF3V,EAAO,GAAG,UAAU,IAAI,GAAGA,EAAO,OAAO,sBAAsB,GAAGyV,CAAY,EAAE,EAChFzV,EAAO,qBAAoB,EAC3BA,EAAO,OAAO,UAAYyV,EAC1BzV,EAAO,OAAO,QAAQQ,GAAW,CAC3BiV,IAAiB,WACnBjV,EAAQ,MAAM,MAAQ,GAEtBA,EAAQ,MAAM,OAAS,EAE/B,CAAK,EACDR,EAAO,KAAK,iBAAiB,EACzB0V,GAAY1V,EAAO,UAChBA,CACR,CACD,wBAAwB7nL,EAAW,CACjC,MAAM6nL,EAAS,KACXA,EAAO,KAAO7nL,IAAc,OAAS,CAAC6nL,EAAO,KAAO7nL,IAAc,QACtE6nL,EAAO,IAAM7nL,IAAc,MAC3B6nL,EAAO,aAAeA,EAAO,OAAO,YAAc,cAAgBA,EAAO,IACrEA,EAAO,KACTA,EAAO,GAAG,UAAU,IAAI,GAAGA,EAAO,OAAO,sBAAsB,KAAK,EACpEA,EAAO,GAAG,IAAM,QAEhBA,EAAO,GAAG,UAAU,OAAO,GAAGA,EAAO,OAAO,sBAAsB,KAAK,EACvEA,EAAO,GAAG,IAAM,OAElBA,EAAO,OAAM,EACd,CACD,MAAM3mR,EAAS,CACb,MAAM2mR,EAAS,KACf,GAAIA,EAAO,QAAS,MAAO,GAG3B,IAAIhkQ,EAAK3iB,GAAW2mR,EAAO,OAAO,GAIlC,GAHI,OAAOhkQ,GAAO,WAChBA,EAAK,SAAS,cAAcA,CAAE,GAE5B,CAACA,EACH,MAAO,GAETA,EAAG,OAASgkQ,EACRhkQ,EAAG,YAAcA,EAAG,WAAW,MAAQA,EAAG,WAAW,KAAK,WAAagkQ,EAAO,OAAO,sBAAsB,YAAW,IACxHA,EAAO,UAAY,IAErB,MAAM4V,EAAqB,IAClB,KAAK5V,EAAO,OAAO,cAAgB,IAAI,KAAI,EAAG,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,GAW3E,IAAIgF,EAREhpQ,GAAMA,EAAG,YAAcA,EAAG,WAAW,cAC3BA,EAAG,WAAW,cAAc45Q,EAAoB,GAIvDnV,GAAgBzkQ,EAAI45Q,EAAkB,CAAE,EAAE,CAAC,EAIpD,MAAI,CAAC5Q,GAAahF,EAAO,OAAO,iBAC9BgF,EAAY/mM,GAAc,MAAO+hM,EAAO,OAAO,YAAY,EAC3DhkQ,EAAG,OAAOgpQ,CAAS,EACnBvE,GAAgBzkQ,EAAI,IAAIgkQ,EAAO,OAAO,UAAU,EAAE,EAAE,QAAQQ,GAAW,CACrEwE,EAAU,OAAOxE,CAAO,CAChC,CAAO,GAEH,OAAO,OAAOR,EAAQ,CACpB,GAAAhkQ,EACA,UAAAgpQ,EACA,SAAUhF,EAAO,WAAa,CAAChkQ,EAAG,WAAW,KAAK,WAAaA,EAAG,WAAW,KAAOgpQ,EACpF,OAAQhF,EAAO,UAAYhkQ,EAAG,WAAW,KAAOA,EAChD,QAAS,GAET,IAAKA,EAAG,IAAI,YAAa,IAAK,OAASylQ,GAAazlQ,EAAI,WAAW,IAAM,MACzE,aAAcgkQ,EAAO,OAAO,YAAc,eAAiBhkQ,EAAG,IAAI,YAAa,IAAK,OAASylQ,GAAazlQ,EAAI,WAAW,IAAM,OAC/H,SAAUylQ,GAAauD,EAAW,SAAS,IAAM,aACvD,CAAK,EACM,EACR,CACD,KAAKhpQ,EAAI,CACP,MAAMgkQ,EAAS,KAGf,GAFIA,EAAO,aACKA,EAAO,MAAMhkQ,CAAE,IACf,GAAO,OAAOgkQ,EAC9BA,EAAO,KAAK,YAAY,EAGpBA,EAAO,OAAO,aAChBA,EAAO,cAAa,EAItBA,EAAO,WAAU,EAGjBA,EAAO,WAAU,EAGjBA,EAAO,aAAY,EACfA,EAAO,OAAO,eAChBA,EAAO,cAAa,EAIlBA,EAAO,OAAO,YAAcA,EAAO,SACrCA,EAAO,cAAa,EAIlBA,EAAO,OAAO,MAAQA,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAChEA,EAAO,QAAQA,EAAO,OAAO,aAAeA,EAAO,QAAQ,aAAc,EAAGA,EAAO,OAAO,mBAAoB,GAAO,EAAI,EAEzHA,EAAO,QAAQA,EAAO,OAAO,aAAc,EAAGA,EAAO,OAAO,mBAAoB,GAAO,EAAI,EAIzFA,EAAO,OAAO,MAChBA,EAAO,WAAU,EAInBA,EAAO,aAAY,EACnB,MAAM6V,EAAe,CAAC,GAAG7V,EAAO,GAAG,iBAAiB,kBAAkB,CAAC,EACvE,OAAIA,EAAO,WACT6V,EAAa,KAAK,GAAG7V,EAAO,OAAO,iBAAiB,kBAAkB,CAAC,EAEzE6V,EAAa,QAAQ3L,GAAW,CAC1BA,EAAQ,SACVD,GAAqBjK,EAAQkK,CAAO,EAEpCA,EAAQ,iBAAiB,OAAQp9Q,GAAK,CACpCm9Q,GAAqBjK,EAAQlzQ,EAAE,MAAM,CAC/C,CAAS,CAET,CAAK,EACD6uQ,GAAQqE,CAAM,EAGdA,EAAO,YAAc,GACrBrE,GAAQqE,CAAM,EAGdA,EAAO,KAAK,MAAM,EAClBA,EAAO,KAAK,WAAW,EAChBA,CACR,CACD,QAAQ8V,EAAgBC,EAAa,CAC/BD,IAAmB,SACrBA,EAAiB,IAEfC,IAAgB,SAClBA,EAAc,IAEhB,MAAM/V,EAAS,KACT,CACJ,OAAAljP,EACA,GAAA9gB,EACA,UAAAgpQ,EACA,OAAAO,CACD,EAAGvF,EACJ,OAAI,OAAOA,EAAO,OAAW,KAAeA,EAAO,YAGnDA,EAAO,KAAK,eAAe,EAG3BA,EAAO,YAAc,GAGrBA,EAAO,aAAY,EAGfljP,EAAO,MACTkjP,EAAO,YAAW,EAIhB+V,IACF/V,EAAO,cAAa,EAChBhkQ,GAAM,OAAOA,GAAO,UACtBA,EAAG,gBAAgB,OAAO,EAExBgpQ,GACFA,EAAU,gBAAgB,OAAO,EAE/BO,GAAUA,EAAO,QACnBA,EAAO,QAAQ/E,GAAW,CACxBA,EAAQ,UAAU,OAAO1jP,EAAO,kBAAmBA,EAAO,uBAAwBA,EAAO,iBAAkBA,EAAO,eAAgBA,EAAO,cAAc,EACvJ0jP,EAAQ,gBAAgB,OAAO,EAC/BA,EAAQ,gBAAgB,yBAAyB,CAC3D,CAAS,GAGLR,EAAO,KAAK,SAAS,EAGrB,OAAO,KAAKA,EAAO,eAAe,EAAE,QAAQ1jR,GAAa,CACvD0jR,EAAO,IAAI1jR,CAAS,CAC1B,CAAK,EACGw5R,IAAmB,KACjB9V,EAAO,IAAM,OAAOA,EAAO,IAAO,WACpCA,EAAO,GAAG,OAAS,MAErBf,IAAYe,CAAM,GAEpBA,EAAO,UAAY,IACZ,IACR,CACD,OAAO,eAAegW,EAAa,CACjChnN,GAAO+lN,GAAkBiB,CAAW,CACrC,CACD,WAAW,kBAAmB,CAC5B,OAAOjB,EACR,CACD,WAAW,UAAW,CACpB,OAAO3lR,EACR,CACD,OAAO,cAAc8+F,EAAK,CACnB8mL,GAAO,UAAU,cAAaA,GAAO,UAAU,YAAc,IAClE,MAAMiB,EAAUjB,GAAO,UAAU,YAC7B,OAAO9mL,GAAQ,YAAc+nL,EAAQ,QAAQ/nL,CAAG,EAAI,GACtD+nL,EAAQ,KAAK/nL,CAAG,CAEnB,CACD,OAAO,IAAI95F,EAAQ,CACjB,OAAI,MAAM,QAAQA,CAAM,GACtBA,EAAO,QAAQ7C,GAAKyjR,GAAO,cAAczjR,CAAC,CAAC,EACpCyjR,KAETA,GAAO,cAAc5gR,CAAM,EACpB4gR,GACR,CACH,CACA,OAAO,KAAKF,EAAU,EAAE,QAAQoB,GAAkB,CAChD,OAAO,KAAKpB,GAAWoB,CAAc,CAAC,EAAE,QAAQC,GAAe,CAC7DnB,GAAO,UAAUmB,CAAW,EAAIrB,GAAWoB,CAAc,EAAEC,CAAW,CAC1E,CAAG,CACH,CAAC,EACDnB,GAAO,IAAI,CAACvR,IAAQU,GAAQ,CAAC,EC30H7B,SAASiS,IAAQ7iO,EAAM,CACrB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ6wN,EAAa,CACX,QAAS,CACP,QAAS,GACT,OAAQ,CAAE,EACV,MAAO,GACP,YAAa,KACb,eAAgB,KAChB,qBAAsB,GACtB,gBAAiB,EACjB,eAAgB,CACjB,CACL,CAAG,EACD,IAAIiS,EACJ,MAAMpoR,EAAWqpJ,KACjB0oH,EAAO,QAAU,CACf,MAAO,CAAE,EACT,KAAM,OACN,GAAI,OACJ,OAAQ,CAAE,EACV,OAAQ,EACR,WAAY,CAAE,CAClB,EACE,MAAMsW,EAAUroR,EAAS,cAAc,KAAK,EAC5C,SAASsoR,EAAY5qB,EAAO/kQ,EAAO,CACjC,MAAMk2B,EAASkjP,EAAO,OAAO,QAC7B,GAAIljP,EAAO,OAASkjP,EAAO,QAAQ,MAAMp5Q,CAAK,EAC5C,OAAOo5Q,EAAO,QAAQ,MAAMp5Q,CAAK,EAGnC,IAAI45Q,EACJ,OAAI1jP,EAAO,aACT0jP,EAAU1jP,EAAO,YAAY,KAAKkjP,EAAQrU,EAAO/kQ,CAAK,EAClD,OAAO45Q,GAAY,WACrB8V,EAAQ,UAAY9V,EACpBA,EAAU8V,EAAQ,SAAS,CAAC,IAErBtW,EAAO,UAChBQ,EAAUviM,GAAc,cAAc,EAEtCuiM,EAAUviM,GAAc,MAAO+hM,EAAO,OAAO,UAAU,EAEzDQ,EAAQ,aAAa,0BAA2B55Q,CAAK,EAChDk2B,EAAO,cACV0jP,EAAQ,UAAY7U,GAElB7uO,EAAO,QACTkjP,EAAO,QAAQ,MAAMp5Q,CAAK,EAAI45Q,GAEzBA,CACR,CACD,SAAS1iE,EAAO/9K,EAAOy2P,EAAYC,EAAkB,CACnD,KAAM,CACJ,cAAAnM,EACA,eAAA+D,EACA,eAAArB,EACA,KAAMoE,EACN,aAAAsF,CACN,EAAQ1W,EAAO,OACX,GAAIwW,GAAc,CAACpF,GAAUsF,EAAe,EAC1C,OAEF,KAAM,CACJ,gBAAAC,EACA,eAAAC,CACN,EAAQ5W,EAAO,OAAO,QACZ,CACJ,KAAM6W,EACN,GAAIC,EACJ,OAAAvR,EACA,WAAYwR,EACZ,OAAQC,CACd,EAAQhX,EAAO,QACNA,EAAO,OAAO,SACjBA,EAAO,kBAAiB,EAE1B,MAAM4J,EAAc,OAAO6M,EAAqB,IAAczW,EAAO,aAAe,EAAIyW,EACxF,IAAItkQ,EACA6tP,EAAO,aAAc7tP,EAAa,QAAaA,EAAa6tP,EAAO,aAAY,EAAK,OAAS,MACjG,IAAIiX,GACAC,GACAlK,GACFiK,GAAc,KAAK,MAAM3M,EAAgB,CAAC,EAAI+D,EAAiBuI,EAC/DM,GAAe,KAAK,MAAM5M,EAAgB,CAAC,EAAI+D,EAAiBsI,IAEhEM,GAAc3M,GAAiB+D,EAAiB,GAAKuI,EACrDM,IAAgB9F,EAAS9G,EAAgB+D,GAAkBsI,GAE7D,IAAIxzP,GAAOymP,EAAcsN,GACrBpiQ,GAAK80P,EAAcqN,GAClB7F,IACHjuP,GAAO,KAAK,IAAIA,GAAM,CAAC,EACvBrO,GAAK,KAAK,IAAIA,GAAIywP,EAAO,OAAS,CAAC,GAErC,IAAI5nP,IAAUqiP,EAAO,WAAW78O,EAAI,GAAK,IAAM68O,EAAO,WAAW,CAAC,GAAK,GACnEoR,GAAUxH,GAAesN,IAC3B/zP,IAAQ+zP,GACHlK,IAAgBrvP,IAAUqiP,EAAO,WAAW,CAAC,IACzCoR,GAAUxH,EAAcsN,KACjC/zP,GAAO,CAAC+zP,GACJlK,IAAgBrvP,IAAUqiP,EAAO,WAAW,CAAC,IAEnD,OAAO,OAAOA,EAAO,QAAS,CAC5B,KAAA78O,GACA,GAAArO,GACA,OAAA6I,GACA,WAAYqiP,EAAO,WACnB,aAAAkX,GACA,YAAAD,EACN,CAAK,EACD,SAASE,IAAa,CACpBnX,EAAO,aAAY,EACnBA,EAAO,eAAc,EACrBA,EAAO,oBAAmB,EAC1B0D,EAAK,eAAe,CACrB,CACD,GAAImT,IAAiB1zP,IAAQ2zP,IAAehiQ,IAAM,CAACiL,EAAO,CACpDigP,EAAO,aAAe+W,GAAsBp5P,KAAWq5P,GACzDhX,EAAO,OAAO,QAAQQ,IAAW,CAC/BA,GAAQ,MAAMruP,CAAU,EAAI,GAAGwL,GAAS,KAAK,IAAIqiP,EAAO,uBAAuB,CAAC,IAC1F,CAAS,EAEHA,EAAO,eAAc,EACrB0D,EAAK,eAAe,EACpB,MACD,CACD,GAAI1D,EAAO,OAAO,QAAQ,eAAgB,CACxCA,EAAO,OAAO,QAAQ,eAAe,KAAKA,EAAQ,CAChD,OAAAriP,GACA,KAAAwF,GACA,GAAArO,GACA,OAAQ,UAAqB,CAC3B,MAAMsiQ,GAAiB,GACvB,QAAS55R,GAAI2lC,GAAM3lC,IAAKs3B,GAAIt3B,IAAK,EAC/B45R,GAAe,KAAK7R,EAAO/nR,EAAC,CAAC,EAE/B,OAAO45R,EACjB,EAAW,CACX,CAAO,EACGpX,EAAO,OAAO,QAAQ,qBACxBmX,KAEAzT,EAAK,eAAe,EAEtB,MACD,CACD,MAAM2T,GAAiB,GACjBC,GAAgB,GAChBC,GAAgB3wR,IAAS,CAC7B,IAAIs2Q,GAAat2Q,GACjB,OAAIA,GAAQ,EACVs2Q,GAAaqI,EAAO,OAAS3+Q,GACpBs2Q,IAAcqI,EAAO,SAE9BrI,GAAaA,GAAaqI,EAAO,QAE5BrI,EACb,EACI,GAAIn9O,EACFigP,EAAO,OAAO,OAAOhkQ,IAAMA,GAAG,QAAQ,IAAIgkQ,EAAO,OAAO,UAAU,gBAAgB,CAAC,EAAE,QAAQQ,IAAW,CACtGA,GAAQ,OAAM,CACtB,CAAO,MAED,SAAShjR,GAAIq5R,EAAcr5R,IAAKs5R,EAAYt5R,IAAK,EAC/C,GAAIA,GAAI2lC,IAAQ3lC,GAAIs3B,GAAI,CACtB,MAAMooP,GAAaqa,GAAc/5R,EAAC,EAClCwiR,EAAO,OAAO,OAAOhkQ,IAAMA,GAAG,QAAQ,IAAIgkQ,EAAO,OAAO,UAAU,6BAA6B9C,EAAU,6CAA6CA,EAAU,IAAI,CAAC,EAAE,QAAQsD,IAAW,CACxLA,GAAQ,OAAM,CAC1B,CAAW,CACF,CAGL,MAAMgX,GAAWpG,EAAS,CAAC7L,EAAO,OAAS,EACrCkS,EAASrG,EAAS7L,EAAO,OAAS,EAAIA,EAAO,OACnD,QAAS/nR,GAAIg6R,GAAUh6R,GAAIi6R,EAAQj6R,IAAK,EACtC,GAAIA,IAAK2lC,IAAQ3lC,IAAKs3B,GAAI,CACxB,MAAMooP,GAAaqa,GAAc/5R,EAAC,EAC9B,OAAOs5R,EAAe,KAAe/2P,EACvCu3P,GAAc,KAAKpa,EAAU,GAEzB1/Q,GAAIs5R,GAAYQ,GAAc,KAAKpa,EAAU,EAC7C1/Q,GAAIq5R,GAAcQ,GAAe,KAAKna,EAAU,EAEvD,CAKH,GAHAoa,GAAc,QAAQ1wR,IAAS,CAC7Bo5Q,EAAO,SAAS,OAAOuW,EAAYhR,EAAO3+Q,EAAK,EAAGA,EAAK,CAAC,CAC9D,CAAK,EACGwqR,EACF,QAAS5zR,GAAI65R,GAAe,OAAS,EAAG75R,IAAK,EAAGA,IAAK,EAAG,CACtD,MAAMoJ,GAAQywR,GAAe75R,EAAC,EAC9BwiR,EAAO,SAAS,QAAQuW,EAAYhR,EAAO3+Q,EAAK,EAAGA,EAAK,CAAC,CAC1D,MAEDywR,GAAe,KAAK,CAACt+Q,GAAGC,KAAMA,GAAID,EAAC,EACnCs+Q,GAAe,QAAQzwR,IAAS,CAC9Bo5Q,EAAO,SAAS,QAAQuW,EAAYhR,EAAO3+Q,EAAK,EAAGA,EAAK,CAAC,CACjE,CAAO,EAEH65Q,GAAgBT,EAAO,SAAU,6BAA6B,EAAE,QAAQQ,IAAW,CACjFA,GAAQ,MAAMruP,CAAU,EAAI,GAAGwL,GAAS,KAAK,IAAIqiP,EAAO,uBAAuB,CAAC,IACtF,CAAK,EACDmX,IACD,CACD,SAASO,EAAYnS,EAAQ,CAC3B,GAAI,OAAOA,GAAW,UAAY,WAAYA,EAC5C,QAAS/nR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAClC+nR,EAAO/nR,CAAC,GAAGwiR,EAAO,QAAQ,OAAO,KAAKuF,EAAO/nR,CAAC,CAAC,OAGrDwiR,EAAO,QAAQ,OAAO,KAAKuF,CAAM,EAEnCznE,EAAO,EAAI,CACZ,CACD,SAAS65E,EAAapS,EAAQ,CAC5B,MAAMqE,EAAc5J,EAAO,YAC3B,IAAI6K,EAAiBjB,EAAc,EAC/BgO,EAAoB,EACxB,GAAI,MAAM,QAAQrS,CAAM,EAAG,CACzB,QAAS/nR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAClC+nR,EAAO/nR,CAAC,GAAGwiR,EAAO,QAAQ,OAAO,QAAQuF,EAAO/nR,CAAC,CAAC,EAExDqtR,EAAiBjB,EAAcrE,EAAO,OACtCqS,EAAoBrS,EAAO,MACjC,MACMvF,EAAO,QAAQ,OAAO,QAAQuF,CAAM,EAEtC,GAAIvF,EAAO,OAAO,QAAQ,MAAO,CAC/B,MAAMhzQ,EAAQgzQ,EAAO,QAAQ,MACvBr/P,EAAW,GACjB,OAAO,KAAK3T,CAAK,EAAE,QAAQ6qR,GAAe,CACxC,MAAMC,EAAW9qR,EAAM6qR,CAAW,EAC5BE,EAAgBD,EAAS,aAAa,yBAAyB,EACjEC,GACFD,EAAS,aAAa,0BAA2B,SAASC,EAAe,EAAE,EAAIH,CAAiB,EAElGj3Q,EAAS,SAASk3Q,EAAa,EAAE,EAAID,CAAiB,EAAIE,CAClE,CAAO,EACD9X,EAAO,QAAQ,MAAQr/P,CACxB,CACDm9L,EAAO,EAAI,EACXkiE,EAAO,QAAQ6K,EAAgB,CAAC,CACjC,CACD,SAASmN,EAAYC,EAAe,CAClC,GAAI,OAAOA,EAAkB,KAAeA,IAAkB,KAAM,OACpE,IAAIrO,EAAc5J,EAAO,YACzB,GAAI,MAAM,QAAQiY,CAAa,EAC7B,QAASz6R,EAAIy6R,EAAc,OAAS,EAAGz6R,GAAK,EAAGA,GAAK,EAC9CwiR,EAAO,OAAO,QAAQ,QACxB,OAAOA,EAAO,QAAQ,MAAMiY,EAAcz6R,CAAC,CAAC,EAE5C,OAAO,KAAKwiR,EAAO,QAAQ,KAAK,EAAE,QAAQ10Q,GAAO,CAC3CA,EAAM2sR,IACRjY,EAAO,QAAQ,MAAM10Q,EAAM,CAAC,EAAI00Q,EAAO,QAAQ,MAAM10Q,CAAG,EACxD00Q,EAAO,QAAQ,MAAM10Q,EAAM,CAAC,EAAE,aAAa,0BAA2BA,EAAM,CAAC,EAC7E,OAAO00Q,EAAO,QAAQ,MAAM10Q,CAAG,EAE7C,CAAW,GAEH00Q,EAAO,QAAQ,OAAO,OAAOiY,EAAcz6R,CAAC,EAAG,CAAC,EAC5Cy6R,EAAcz6R,CAAC,EAAIosR,IAAaA,GAAe,GACnDA,EAAc,KAAK,IAAIA,EAAa,CAAC,OAGnC5J,EAAO,OAAO,QAAQ,QACxB,OAAOA,EAAO,QAAQ,MAAMiY,CAAa,EAEzC,OAAO,KAAKjY,EAAO,QAAQ,KAAK,EAAE,QAAQ10Q,GAAO,CAC3CA,EAAM2sR,IACRjY,EAAO,QAAQ,MAAM10Q,EAAM,CAAC,EAAI00Q,EAAO,QAAQ,MAAM10Q,CAAG,EACxD00Q,EAAO,QAAQ,MAAM10Q,EAAM,CAAC,EAAE,aAAa,0BAA2BA,EAAM,CAAC,EAC7E,OAAO00Q,EAAO,QAAQ,MAAM10Q,CAAG,EAE3C,CAAS,GAEH00Q,EAAO,QAAQ,OAAO,OAAOiY,EAAe,CAAC,EACzCA,EAAgBrO,IAAaA,GAAe,GAChDA,EAAc,KAAK,IAAIA,EAAa,CAAC,EAEvC9rE,EAAO,EAAI,EACXkiE,EAAO,QAAQ4J,EAAa,CAAC,CAC9B,CACD,SAASsO,GAAkB,CACzBlY,EAAO,QAAQ,OAAS,GACpBA,EAAO,OAAO,QAAQ,QACxBA,EAAO,QAAQ,MAAQ,IAEzBliE,EAAO,EAAI,EACXkiE,EAAO,QAAQ,EAAG,CAAC,CACpB,CACDjwQ,EAAG,aAAc,IAAM,CACrB,GAAI,CAACiwQ,EAAO,OAAO,QAAQ,QAAS,OACpC,IAAImY,EACJ,GAAI,OAAOnY,EAAO,aAAa,QAAQ,OAAW,IAAa,CAC7D,MAAMuF,EAAS,CAAC,GAAGvF,EAAO,SAAS,QAAQ,EAAE,OAAOhkQ,GAAMA,EAAG,QAAQ,IAAIgkQ,EAAO,OAAO,UAAU,gBAAgB,CAAC,EAC9GuF,GAAUA,EAAO,SACnBvF,EAAO,QAAQ,OAAS,CAAC,GAAGuF,CAAM,EAClC4S,EAAoB,GACpB5S,EAAO,QAAQ,CAAC/E,EAAStD,IAAe,CACtCsD,EAAQ,aAAa,0BAA2BtD,CAAU,EAC1D8C,EAAO,QAAQ,MAAM9C,CAAU,EAAIsD,EACnCA,EAAQ,OAAM,CACxB,CAAS,EAEJ,CACI2X,IACHnY,EAAO,QAAQ,OAASA,EAAO,OAAO,QAAQ,QAEhDA,EAAO,WAAW,KAAK,GAAGA,EAAO,OAAO,sBAAsB,SAAS,EACvEA,EAAO,OAAO,oBAAsB,GACpCA,EAAO,eAAe,oBAAsB,GAC5CliE,EAAO,GAAO,EAAI,CACtB,CAAG,EACD/tM,EAAG,eAAgB,IAAM,CAClBiwQ,EAAO,OAAO,QAAQ,UACvBA,EAAO,OAAO,SAAW,CAACA,EAAO,mBACnC,aAAaqW,CAAc,EAC3BA,EAAiB,WAAW,IAAM,CAChCv4E,GACD,EAAE,GAAG,GAENA,IAEN,CAAG,EACD/tM,EAAG,qBAAsB,IAAM,CACxBiwQ,EAAO,OAAO,QAAQ,SACvBA,EAAO,OAAO,SAChBJ,GAAeI,EAAO,UAAW,wBAAyB,GAAGA,EAAO,WAAW,IAAI,CAEzF,CAAG,EACD,OAAO,OAAOA,EAAO,QAAS,CAC5B,YAAA0X,EACA,aAAAC,EACA,YAAAK,EACA,gBAAAE,EACA,OAAAp6E,CACJ,CAAG,CACH,CCtVA,SAAS8+D,IAASrpN,EAAM,CACtB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAMtlD,EAAWqpJ,KACXhjJ,EAAS4rD,KACf8/M,EAAO,SAAW,CAChB,QAAS,EACb,EACEoE,EAAa,CACX,SAAU,CACR,QAAS,GACT,eAAgB,GAChB,WAAY,EACb,CACL,CAAG,EACD,SAASt3P,EAAOtzB,EAAO,CACrB,GAAI,CAACwmR,EAAO,QAAS,OACrB,KAAM,CACJ,aAAcmF,CACf,EAAGnF,EACJ,IAAIlzQ,EAAItT,EACJsT,EAAE,gBAAeA,EAAIA,EAAE,eAC3B,MAAMq/B,EAAKr/B,EAAE,SAAWA,EAAE,SACpBsrR,EAAapY,EAAO,OAAO,SAAS,WACpCqY,EAAWD,GAAcjsP,IAAO,GAChCmsP,EAAaF,GAAcjsP,IAAO,GAClCosP,EAAcpsP,IAAO,GACrBqsP,EAAersP,IAAO,GACtBssP,EAAYtsP,IAAO,GACnBusP,EAAcvsP,IAAO,GAK3B,GAHI,CAAC6zO,EAAO,iBAAmBA,EAAO,aAAc,GAAIwY,GAAgBxY,EAAO,WAAU,GAAM0Y,GAAeJ,IAG1G,CAACtY,EAAO,iBAAmBA,EAAO,aAAc,GAAIuY,GAAevY,EAAO,WAAU,GAAMyY,GAAaJ,GACzG,MAAO,GAET,GAAI,EAAAvrR,EAAE,UAAYA,EAAE,QAAUA,EAAE,SAAWA,EAAE,UAGzC,EAAAmB,EAAS,eAAiBA,EAAS,cAAc,WAAaA,EAAS,cAAc,SAAS,YAAa,IAAK,SAAWA,EAAS,cAAc,SAAS,YAAW,IAAO,aAGjL,IAAI+xQ,EAAO,OAAO,SAAS,iBAAmBqY,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIC,EAAS,GAEb,GAAIhX,GAAe3B,EAAO,GAAI,IAAIA,EAAO,OAAO,UAAU,gBAAgB,EAAE,OAAS,GAAK2B,GAAe3B,EAAO,GAAI,IAAIA,EAAO,OAAO,gBAAgB,EAAE,EAAE,SAAW,EACnK,OAEF,MAAMhkQ,EAAKgkQ,EAAO,GACZ4Y,EAAc58Q,EAAG,YACjB68Q,EAAe78Q,EAAG,aAClB88Q,EAAcxkR,EAAO,WACrBykR,EAAezkR,EAAO,YACtB0kR,EAAe/X,GAAcjlQ,CAAE,EACjCmpQ,IAAK6T,EAAa,MAAQh9Q,EAAG,YACjC,MAAMi9Q,EAAc,CAAC,CAACD,EAAa,KAAMA,EAAa,GAAG,EAAG,CAACA,EAAa,KAAOJ,EAAaI,EAAa,GAAG,EAAG,CAACA,EAAa,KAAMA,EAAa,IAAMH,CAAY,EAAG,CAACG,EAAa,KAAOJ,EAAaI,EAAa,IAAMH,CAAY,CAAC,EACzO,QAASr7R,EAAI,EAAGA,EAAIy7R,EAAY,OAAQz7R,GAAK,EAAG,CAC9C,MAAMokJ,EAAQq3I,EAAYz7R,CAAC,EAC3B,GAAIokJ,EAAM,CAAC,GAAK,GAAKA,EAAM,CAAC,GAAKk3I,GAAel3I,EAAM,CAAC,GAAK,GAAKA,EAAM,CAAC,GAAKm3I,EAAc,CACzF,GAAIn3I,EAAM,CAAC,IAAM,GAAKA,EAAM,CAAC,IAAM,EAAG,SACtC+2I,EAAS,EACV,CACF,CACD,GAAI,CAACA,EAAQ,MACd,CACG3Y,EAAO,iBACLqY,GAAYC,GAAcC,GAAeC,KACvC1rR,EAAE,eAAgBA,EAAE,eAAgB,EAAMA,EAAE,YAAc,MAE3DwrR,GAAcE,IAAiB,CAACrT,IAAQkT,GAAYE,IAAgBpT,IAAKnF,EAAO,cAChFqY,GAAYE,IAAgB,CAACpT,IAAQmT,GAAcE,IAAiBrT,IAAKnF,EAAO,eAEjFqY,GAAYC,GAAcG,GAAaC,KACrC5rR,EAAE,eAAgBA,EAAE,eAAgB,EAAMA,EAAE,YAAc,KAE5DwrR,GAAcI,IAAa1Y,EAAO,UAAS,GAC3CqY,GAAYI,IAAWzY,EAAO,UAAS,GAE7C0D,EAAK,WAAYv3O,CAAE,EAEpB,CACD,SAAS+sP,GAAS,CACZlZ,EAAO,SAAS,UACpB/xQ,EAAS,iBAAiB,UAAW6e,CAAM,EAC3CkzP,EAAO,SAAS,QAAU,GAC3B,CACD,SAASmZ,GAAU,CACZnZ,EAAO,SAAS,UACrB/xQ,EAAS,oBAAoB,UAAW6e,CAAM,EAC9CkzP,EAAO,SAAS,QAAU,GAC3B,CACDjwQ,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,SAAS,SACzBkZ,GAEN,CAAG,EACDnpR,EAAG,UAAW,IAAM,CACdiwQ,EAAO,SAAS,SAClBmZ,GAEN,CAAG,EACD,OAAO,OAAOnZ,EAAO,SAAU,CAC7B,OAAAkZ,EACA,QAAAC,CACJ,CAAG,CACH,CC9GA,SAASC,IAAW7lO,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAMj/C,EAAS4rD,KACfkkN,EAAa,CACX,WAAY,CACV,QAAS,GACT,eAAgB,GAChB,OAAQ,GACR,YAAa,GACb,YAAa,EACb,aAAc,YACd,eAAgB,KAChB,cAAe,KACf,kBAAmB,sBACpB,CACL,CAAG,EACDpE,EAAO,WAAa,CAClB,QAAS,EACb,EACE,IAAItqP,EACA2jQ,EAAiB3xL,KACjB4xL,EACJ,MAAMC,EAAoB,GAC1B,SAAShM,EAAUzgR,EAAG,CAKpB,IAAI0sR,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAGT,MAAI,WAAY7sR,IACd2sR,EAAK3sR,EAAE,QAEL,eAAgBA,IAClB2sR,EAAK,CAAC3sR,EAAE,WAAa,KAEnB,gBAAiBA,IACnB2sR,EAAK,CAAC3sR,EAAE,YAAc,KAEpB,gBAAiBA,IACnB0sR,EAAK,CAAC1sR,EAAE,YAAc,KAIpB,SAAUA,GAAKA,EAAE,OAASA,EAAE,kBAC9B0sR,EAAKC,EACLA,EAAK,GAEPC,EAAKF,EAAK,GACVG,EAAKF,EAAK,GACN,WAAY3sR,IACd6sR,EAAK7sR,EAAE,QAEL,WAAYA,IACd4sR,EAAK5sR,EAAE,QAELA,EAAE,UAAY,CAAC4sR,IAEjBA,EAAKC,EACLA,EAAK,IAEFD,GAAMC,IAAO7sR,EAAE,YACdA,EAAE,YAAc,GAElB4sR,GAAM,GACNC,GAAM,KAGND,GAAM,IACNC,GAAM,MAKND,GAAM,CAACF,IACTA,EAAKE,EAAK,EAAI,GAAK,GAEjBC,GAAM,CAACF,IACTA,EAAKE,EAAK,EAAI,GAAK,GAEd,CACL,MAAOH,EACP,MAAOC,EACP,OAAQC,EACR,OAAQC,CACd,CACG,CACD,SAASC,GAAmB,CACrB5Z,EAAO,UACZA,EAAO,aAAe,GACvB,CACD,SAAS6Z,GAAmB,CACrB7Z,EAAO,UACZA,EAAO,aAAe,GACvB,CACD,SAAS8Z,EAAcC,EAAU,CAK/B,OAJI/Z,EAAO,OAAO,WAAW,gBAAkB+Z,EAAS,MAAQ/Z,EAAO,OAAO,WAAW,gBAIrFA,EAAO,OAAO,WAAW,eAAiBt4K,KAAQ2xL,EAAiBrZ,EAAO,OAAO,WAAW,cAEvF,GAML+Z,EAAS,OAAS,GAAKryL,GAAK,EAAG2xL,EAAiB,GAE3C,IAcLU,EAAS,UAAY,GAClB,CAAC/Z,EAAO,OAASA,EAAO,OAAO,OAAS,CAACA,EAAO,YACnDA,EAAO,UAAS,EAChB0D,EAAK,SAAUqW,EAAS,GAAG,IAEnB,CAAC/Z,EAAO,aAAeA,EAAO,OAAO,OAAS,CAACA,EAAO,YAChEA,EAAO,UAAS,EAChB0D,EAAK,SAAUqW,EAAS,GAAG,GAG7BV,EAAiB,IAAI/kR,EAAO,KAAM,EAAC,QAAO,EAEnC,GACR,CACD,SAAS0lR,EAAcD,EAAU,CAC/B,MAAMj9P,EAASkjP,EAAO,OAAO,WAC7B,GAAI+Z,EAAS,UAAY,GACvB,GAAI/Z,EAAO,OAAS,CAACA,EAAO,OAAO,MAAQljP,EAAO,eAEhD,MAAO,WAEAkjP,EAAO,aAAe,CAACA,EAAO,OAAO,MAAQljP,EAAO,eAE7D,MAAO,GAET,MAAO,EACR,CACD,SAAShQ,EAAOtzB,EAAO,CACrB,IAAIsT,EAAItT,EACJ+3R,EAAsB,GAI1B,GAHI,CAACvR,EAAO,SAGRxmR,EAAM,OAAO,QAAQ,IAAIwmR,EAAO,OAAO,WAAW,iBAAiB,EAAE,EAAG,OAC5E,MAAMljP,EAASkjP,EAAO,OAAO,WACzBA,EAAO,OAAO,SAChBlzQ,EAAE,eAAc,EAElB,IAAIyjR,EAAWvQ,EAAO,GAClBA,EAAO,OAAO,WAAW,eAAiB,cAC5CuQ,EAAW,SAAS,cAAcvQ,EAAO,OAAO,WAAW,YAAY,GAEzE,MAAMia,EAAyB1J,GAAYA,EAAS,SAASzjR,EAAE,MAAM,EACrE,GAAI,CAACkzQ,EAAO,cAAgB,CAACia,GAA0B,CAACn9P,EAAO,eAAgB,MAAO,GAClFhwB,EAAE,gBAAeA,EAAIA,EAAE,eAC3B,IAAIilB,EAAQ,EACZ,MAAMmoQ,EAAYla,EAAO,aAAe,GAAK,EACvC93P,EAAOqlQ,EAAUzgR,CAAC,EACxB,GAAIgwB,EAAO,YACT,GAAIkjP,EAAO,eACT,GAAI,KAAK,IAAI93P,EAAK,MAAM,EAAI,KAAK,IAAIA,EAAK,MAAM,EAAG6J,EAAQ,CAAC7J,EAAK,OAASgyQ,MAAe,OAAO,WACvF,KAAK,IAAIhyQ,EAAK,MAAM,EAAI,KAAK,IAAIA,EAAK,MAAM,EAAG6J,EAAQ,CAAC7J,EAAK,WAAY,OAAO,QAE3F6J,EAAQ,KAAK,IAAI7J,EAAK,MAAM,EAAI,KAAK,IAAIA,EAAK,MAAM,EAAI,CAACA,EAAK,OAASgyQ,EAAY,CAAChyQ,EAAK,OAE3F,GAAI6J,IAAU,EAAG,MAAO,GACpB+K,EAAO,SAAQ/K,EAAQ,CAACA,GAG5B,IAAI0uE,EAAYu/K,EAAO,aAAc,EAAGjuP,EAAQ+K,EAAO,YAavD,GAZI2jE,GAAau/K,EAAO,aAAY,IAAIv/K,EAAYu/K,EAAO,gBACvDv/K,GAAau/K,EAAO,aAAY,IAAIv/K,EAAYu/K,EAAO,gBAS3DuR,EAAsBvR,EAAO,OAAO,KAAO,GAAO,EAAEv/K,IAAcu/K,EAAO,aAAY,GAAMv/K,IAAcu/K,EAAO,aAAc,GAC1HuR,GAAuBvR,EAAO,OAAO,QAAQlzQ,EAAE,kBAC/C,CAACkzQ,EAAO,OAAO,UAAY,CAACA,EAAO,OAAO,SAAS,QAAS,CAE9D,MAAM+Z,EAAW,CACf,KAAMryL,GAAK,EACX,MAAO,KAAK,IAAI31E,CAAK,EACrB,UAAW,KAAK,KAAKA,CAAK,EAC1B,IAAKv4B,CACb,EAGU+/R,EAAkB,QAAU,GAC9BA,EAAkB,MAAK,EAGzB,MAAMY,EAAYZ,EAAkB,OAASA,EAAkBA,EAAkB,OAAS,CAAC,EAAI,OAmB/F,GAlBAA,EAAkB,KAAKQ,CAAQ,EAQ3BI,GACEJ,EAAS,YAAcI,EAAU,WAAaJ,EAAS,MAAQI,EAAU,OAASJ,EAAS,KAAOI,EAAU,KAAO,MACrHL,EAAcC,CAAQ,EAGxBD,EAAcC,CAAQ,EAKpBC,EAAcD,CAAQ,EACxB,MAAO,EAEf,KAAW,CAOL,MAAMA,EAAW,CACf,KAAMryL,GAAK,EACX,MAAO,KAAK,IAAI31E,CAAK,EACrB,UAAW,KAAK,KAAKA,CAAK,CAClC,EACYqoQ,EAAoBd,GAAuBS,EAAS,KAAOT,EAAoB,KAAO,KAAOS,EAAS,OAAST,EAAoB,OAASS,EAAS,YAAcT,EAAoB,UAC7L,GAAI,CAACc,EAAmB,CACtBd,EAAsB,OACtB,IAAIrvR,GAAW+1Q,EAAO,aAAc,EAAGjuP,EAAQ+K,EAAO,YACtD,MAAMksP,GAAehJ,EAAO,YACtBiJ,GAASjJ,EAAO,MAiBtB,GAhBI/1Q,IAAY+1Q,EAAO,aAAY,IAAI/1Q,GAAW+1Q,EAAO,gBACrD/1Q,IAAY+1Q,EAAO,aAAY,IAAI/1Q,GAAW+1Q,EAAO,gBACzDA,EAAO,cAAc,CAAC,EACtBA,EAAO,aAAa/1Q,EAAQ,EAC5B+1Q,EAAO,eAAc,EACrBA,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,GACtB,CAACgJ,IAAgBhJ,EAAO,aAAe,CAACiJ,IAAUjJ,EAAO,QAC3DA,EAAO,oBAAmB,EAExBA,EAAO,OAAO,MAChBA,EAAO,QAAQ,CACb,UAAW+Z,EAAS,UAAY,EAAI,OAAS,OAC7C,aAAc,EAC1B,CAAW,EAEC/Z,EAAO,OAAO,SAAS,OAAQ,CAYjC,aAAatqP,CAAO,EACpBA,EAAU,OACN6jQ,EAAkB,QAAU,IAC9BA,EAAkB,MAAK,EAGzB,MAAMY,GAAYZ,EAAkB,OAASA,EAAkBA,EAAkB,OAAS,CAAC,EAAI,OACzFc,GAAad,EAAkB,CAAC,EAEtC,GADAA,EAAkB,KAAKQ,CAAQ,EAC3BI,KAAcJ,EAAS,MAAQI,GAAU,OAASJ,EAAS,YAAcI,GAAU,WAErFZ,EAAkB,OAAO,CAAC,UACjBA,EAAkB,QAAU,IAAMQ,EAAS,KAAOM,GAAW,KAAO,KAAOA,GAAW,MAAQN,EAAS,OAAS,GAAKA,EAAS,OAAS,EAAG,CAOnJ,MAAMO,GAAkBvoQ,EAAQ,EAAI,GAAM,GAC1CunQ,EAAsBS,EACtBR,EAAkB,OAAO,CAAC,EAC1B7jQ,EAAUwpP,GAAS,IAAM,CACnBc,EAAO,WAAa,CAACA,EAAO,QAChCA,EAAO,eAAeA,EAAO,OAAO,MAAO,GAAM,OAAWsa,EAAe,CAC5E,EAAE,CAAC,CACL,CAEI5kQ,IAIHA,EAAUwpP,GAAS,IAAM,CACvB,GAAIc,EAAO,WAAa,CAACA,EAAO,OAAQ,OACxC,MAAMsa,GAAkB,GACxBhB,EAAsBS,EACtBR,EAAkB,OAAO,CAAC,EAC1BvZ,EAAO,eAAeA,EAAO,OAAO,MAAO,GAAM,OAAWsa,EAAe,CAC5E,EAAE,GAAG,EAET,CAQD,GALKF,GAAmB1W,EAAK,SAAU52Q,CAAC,EAGpCkzQ,EAAO,OAAO,UAAYA,EAAO,OAAO,SAAS,sBAAsBA,EAAO,SAAS,KAAI,EAE3FljP,EAAO,iBAAmB7yB,KAAa+1Q,EAAO,aAAc,GAAI/1Q,KAAa+1Q,EAAO,aAAY,GAClG,MAAO,EAEV,CACF,CACD,OAAIlzQ,EAAE,eAAgBA,EAAE,eAAgB,EAAMA,EAAE,YAAc,GACvD,EACR,CACD,SAAS+e,EAAO/sB,EAAQ,CACtB,IAAIyxR,EAAWvQ,EAAO,GAClBA,EAAO,OAAO,WAAW,eAAiB,cAC5CuQ,EAAW,SAAS,cAAcvQ,EAAO,OAAO,WAAW,YAAY,GAEzEuQ,EAASzxR,CAAM,EAAE,aAAc86R,CAAgB,EAC/CrJ,EAASzxR,CAAM,EAAE,aAAc+6R,CAAgB,EAC/CtJ,EAASzxR,CAAM,EAAE,QAASguB,CAAM,CACjC,CACD,SAASosQ,GAAS,CAChB,OAAIlZ,EAAO,OAAO,SAChBA,EAAO,UAAU,oBAAoB,QAASlzP,CAAM,EAC7C,IAELkzP,EAAO,WAAW,QAAgB,IACtCn0P,EAAO,kBAAkB,EACzBm0P,EAAO,WAAW,QAAU,GACrB,GACR,CACD,SAASmZ,GAAU,CACjB,OAAInZ,EAAO,OAAO,SAChBA,EAAO,UAAU,iBAAiB,MAAOlzP,CAAM,EACxC,IAEJkzP,EAAO,WAAW,SACvBn0P,EAAO,qBAAqB,EAC5Bm0P,EAAO,WAAW,QAAU,GACrB,IAHgC,EAIxC,CACDjwQ,EAAG,OAAQ,IAAM,CACX,CAACiwQ,EAAO,OAAO,WAAW,SAAWA,EAAO,OAAO,SACrDmZ,IAEEnZ,EAAO,OAAO,WAAW,SAASkZ,EAAM,CAChD,CAAG,EACDnpR,EAAG,UAAW,IAAM,CACdiwQ,EAAO,OAAO,SAChBkZ,IAEElZ,EAAO,WAAW,SAASmZ,EAAO,CAC1C,CAAG,EACD,OAAO,OAAOnZ,EAAO,WAAY,CAC/B,OAAAkZ,EACA,QAAAC,CACJ,CAAG,CACH,CCtYA,SAASoB,GAA0Bva,EAAQwa,EAAgB19P,EAAQ29P,EAAY,CAC7E,OAAIza,EAAO,OAAO,gBAChB,OAAO,KAAKya,CAAU,EAAE,QAAQnvR,GAAO,CACrC,GAAI,CAACwxB,EAAOxxB,CAAG,GAAKwxB,EAAO,OAAS,GAAM,CACxC,IAAIzjC,EAAUonR,GAAgBT,EAAO,GAAI,IAAIya,EAAWnvR,CAAG,CAAC,EAAE,EAAE,CAAC,EAC5DjS,IACHA,EAAU4kF,GAAc,MAAOw8M,EAAWnvR,CAAG,CAAC,EAC9CjS,EAAQ,UAAYohS,EAAWnvR,CAAG,EAClC00Q,EAAO,GAAG,OAAO3mR,CAAO,GAE1ByjC,EAAOxxB,CAAG,EAAIjS,EACdmhS,EAAelvR,CAAG,EAAIjS,CACvB,CACP,CAAK,EAEIyjC,CACT,CCfA,SAAS6/G,IAAWppF,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ6wN,EAAa,CACX,WAAY,CACV,OAAQ,KACR,OAAQ,KACR,YAAa,GACb,cAAe,yBACf,YAAa,uBACb,UAAW,qBACX,wBAAyB,4BAC1B,CACL,CAAG,EACDpE,EAAO,WAAa,CAClB,OAAQ,KACR,OAAQ,IACZ,EACE,SAAS0a,EAAM1+Q,EAAI,CACjB,IAAIwpF,EACJ,OAAIxpF,GAAM,OAAOA,GAAO,UAAYgkQ,EAAO,YACzCx6K,EAAMw6K,EAAO,GAAG,cAAchkQ,CAAE,GAAKgkQ,EAAO,OAAO,cAAchkQ,CAAE,EAC/DwpF,GAAYA,GAEdxpF,IACE,OAAOA,GAAO,WAAUwpF,EAAM,CAAC,GAAG,SAAS,iBAAiBxpF,CAAE,CAAC,GAC/DgkQ,EAAO,OAAO,mBAAqB,OAAOhkQ,GAAO,UAAYwpF,GAAOA,EAAI,OAAS,GAAKw6K,EAAO,GAAG,iBAAiBhkQ,CAAE,EAAE,SAAW,EAClIwpF,EAAMw6K,EAAO,GAAG,cAAchkQ,CAAE,EACvBwpF,GAAOA,EAAI,SAAW,IAC/BA,EAAMA,EAAI,CAAC,IAGXxpF,GAAM,CAACwpF,EAAYxpF,EAEhBwpF,EACR,CACD,SAASm1L,EAAS3+Q,EAAIU,EAAU,CAC9B,MAAMogB,EAASkjP,EAAO,OAAO,WAC7BhkQ,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAAS,CACdA,IACFA,EAAM,UAAUl+Q,EAAW,MAAQ,QAAQ,EAAE,GAAGogB,EAAO,cAAc,MAAM,GAAG,CAAC,EAC3E89P,EAAM,UAAY,WAAUA,EAAM,SAAWl+Q,GAC7CsjQ,EAAO,OAAO,eAAiBA,EAAO,SACxC4a,EAAM,UAAU5a,EAAO,SAAW,MAAQ,QAAQ,EAAEljP,EAAO,SAAS,EAG9E,CAAK,CACF,CACD,SAASghL,GAAS,CAEhB,KAAM,CACJ,OAAA+8E,EACA,OAAAC,CACN,EAAQ9a,EAAO,WACX,GAAIA,EAAO,OAAO,KAAM,CACtB2a,EAASG,EAAQ,EAAK,EACtBH,EAASE,EAAQ,EAAK,EACtB,MACD,CACDF,EAASG,EAAQ9a,EAAO,aAAe,CAACA,EAAO,OAAO,MAAM,EAC5D2a,EAASE,EAAQ7a,EAAO,OAAS,CAACA,EAAO,OAAO,MAAM,CACvD,CACD,SAASp/I,EAAY9zH,EAAG,CACtBA,EAAE,eAAc,EACZ,EAAAkzQ,EAAO,aAAe,CAACA,EAAO,OAAO,MAAQ,CAACA,EAAO,OAAO,UAChEA,EAAO,UAAS,EAChB0D,EAAK,gBAAgB,EACtB,CACD,SAAS/iJ,EAAY7zH,EAAG,CACtBA,EAAE,eAAc,EACZ,EAAAkzQ,EAAO,OAAS,CAACA,EAAO,OAAO,MAAQ,CAACA,EAAO,OAAO,UAC1DA,EAAO,UAAS,EAChB0D,EAAK,gBAAgB,EACtB,CACD,SAAS5/P,GAAO,CACd,MAAMgZ,EAASkjP,EAAO,OAAO,WAK7B,GAJAA,EAAO,OAAO,WAAaua,GAA0Bva,EAAQA,EAAO,eAAe,WAAYA,EAAO,OAAO,WAAY,CACvH,OAAQ,qBACR,OAAQ,oBACd,CAAK,EACG,EAAEljP,EAAO,QAAUA,EAAO,QAAS,OACvC,IAAI+9P,EAASH,EAAM59P,EAAO,MAAM,EAC5Bg+P,EAASJ,EAAM59P,EAAO,MAAM,EAChC,OAAO,OAAOkjP,EAAO,WAAY,CAC/B,OAAA6a,EACA,OAAAC,CACN,CAAK,EACDD,EAAS5Y,GAAkB4Y,CAAM,EACjCC,EAAS7Y,GAAkB6Y,CAAM,EACjC,MAAMC,EAAa,CAAC/+Q,EAAIgD,IAAQ,CAC1BhD,GACFA,EAAG,iBAAiB,QAASgD,IAAQ,OAAS2hH,EAAcC,CAAW,EAErE,CAACo/I,EAAO,SAAWhkQ,GACrBA,EAAG,UAAU,IAAI,GAAG8gB,EAAO,UAAU,MAAM,GAAG,CAAC,CAEvD,EACI+9P,EAAO,QAAQ7+Q,GAAM++Q,EAAW/+Q,EAAI,MAAM,CAAC,EAC3C8+Q,EAAO,QAAQ9+Q,GAAM++Q,EAAW/+Q,EAAI,MAAM,CAAC,CAC5C,CACD,SAASigO,GAAU,CACjB,GAAI,CACF,OAAA4+C,EACA,OAAAC,CACN,EAAQ9a,EAAO,WACX6a,EAAS5Y,GAAkB4Y,CAAM,EACjCC,EAAS7Y,GAAkB6Y,CAAM,EACjC,MAAME,EAAgB,CAACh/Q,EAAIgD,IAAQ,CACjChD,EAAG,oBAAoB,QAASgD,IAAQ,OAAS2hH,EAAcC,CAAW,EAC1E5kH,EAAG,UAAU,OAAO,GAAGgkQ,EAAO,OAAO,WAAW,cAAc,MAAM,GAAG,CAAC,CAC9E,EACI6a,EAAO,QAAQ7+Q,GAAMg/Q,EAAch/Q,EAAI,MAAM,CAAC,EAC9C8+Q,EAAO,QAAQ9+Q,GAAMg/Q,EAAch/Q,EAAI,MAAM,CAAC,CAC/C,CACDjM,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,WAAW,UAAY,GAEvCmZ,KAEAr1Q,IACAg6L,IAEN,CAAG,EACD/tM,EAAG,8BAA+B,IAAM,CACtC+tM,GACJ,CAAG,EACD/tM,EAAG,UAAW,IAAM,CAClBksO,GACJ,CAAG,EACDlsO,EAAG,iBAAkB,IAAM,CACzB,GAAI,CACF,OAAA8qR,EACA,OAAAC,CACN,EAAQ9a,EAAO,WAGX,GAFA6a,EAAS5Y,GAAkB4Y,CAAM,EACjCC,EAAS7Y,GAAkB6Y,CAAM,EAC7B9a,EAAO,QAAS,CAClBliE,IACA,MACD,CACD,CAAC,GAAG+8E,EAAQ,GAAGC,CAAM,EAAE,OAAO9+Q,GAAM,CAAC,CAACA,CAAE,EAAE,QAAQA,GAAMA,EAAG,UAAU,IAAIgkQ,EAAO,OAAO,WAAW,SAAS,CAAC,CAChH,CAAG,EACDjwQ,EAAG,QAAS,CAAC6rL,EAAI9uL,IAAM,CACrB,GAAI,CACF,OAAA+tR,EACA,OAAAC,CACN,EAAQ9a,EAAO,WACX6a,EAAS5Y,GAAkB4Y,CAAM,EACjCC,EAAS7Y,GAAkB6Y,CAAM,EACjC,MAAMvK,EAAWzjR,EAAE,OACnB,IAAImuR,EAAiBH,EAAO,SAASvK,CAAQ,GAAKsK,EAAO,SAAStK,CAAQ,EAC1E,GAAIvQ,EAAO,WAAa,CAACib,EAAgB,CACvC,MAAM1qN,EAAOzjE,EAAE,MAAQA,EAAE,cAAgBA,EAAE,eACvCyjE,IACF0qN,EAAiB1qN,EAAK,KAAK+6M,GAAUuP,EAAO,SAASvP,CAAM,GAAKwP,EAAO,SAASxP,CAAM,CAAC,EAE1F,CACD,GAAItL,EAAO,OAAO,WAAW,aAAe,CAACib,EAAgB,CAC3D,GAAIjb,EAAO,YAAcA,EAAO,OAAO,YAAcA,EAAO,OAAO,WAAW,YAAcA,EAAO,WAAW,KAAOuQ,GAAYvQ,EAAO,WAAW,GAAG,SAASuQ,CAAQ,GAAI,OAC3K,IAAIlmM,EACAwwM,EAAO,OACTxwM,EAAWwwM,EAAO,CAAC,EAAE,UAAU,SAAS7a,EAAO,OAAO,WAAW,WAAW,EACnE8a,EAAO,SAChBzwM,EAAWywM,EAAO,CAAC,EAAE,UAAU,SAAS9a,EAAO,OAAO,WAAW,WAAW,GAG5E0D,EADEr5L,IAAa,GACV,iBAEA,gBAFgB,EAIvB,CAAC,GAAGwwM,EAAQ,GAAGC,CAAM,EAAE,OAAO9+Q,GAAM,CAAC,CAACA,CAAE,EAAE,QAAQA,GAAMA,EAAG,UAAU,OAAOgkQ,EAAO,OAAO,WAAW,WAAW,CAAC,CAClH,CACL,CAAG,EACD,MAAMkZ,EAAS,IAAM,CACnBlZ,EAAO,GAAG,UAAU,OAAO,GAAGA,EAAO,OAAO,WAAW,wBAAwB,MAAM,GAAG,CAAC,EACzFl8P,IACAg6L,GACJ,EACQq7E,EAAU,IAAM,CACpBnZ,EAAO,GAAG,UAAU,IAAI,GAAGA,EAAO,OAAO,WAAW,wBAAwB,MAAM,GAAG,CAAC,EACtF/jC,GACJ,EACE,OAAO,OAAO+jC,EAAO,WAAY,CAC/B,OAAAkZ,EACA,QAAAC,EACA,OAAAr7E,EACA,KAAAh6L,EACA,QAAAm4N,CACJ,CAAG,CACH,CCrMA,SAASi/C,GAAkB/rO,EAAS,CAClC,OAAIA,IAAY,SACdA,EAAU,IAEL,IAAIA,EAAQ,KAAM,EAAC,QAAQ,eAAgB,MAAM,EACvD,QAAQ,KAAM,GAAG,CAAC,EACrB,CCFA,SAASs3H,IAAWlzH,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAM4nO,EAAM,oBACZ/W,EAAa,CACX,WAAY,CACV,GAAI,KACJ,cAAe,OACf,UAAW,GACX,YAAa,GACb,aAAc,KACd,kBAAmB,KACnB,eAAgB,KAChB,aAAc,KACd,oBAAqB,GACrB,KAAM,UAEN,eAAgB,GAChB,mBAAoB,EACpB,sBAAuBx8K,GAAUA,EACjC,oBAAqBA,GAAUA,EAC/B,YAAa,GAAGuzL,CAAG,UACnB,kBAAmB,GAAGA,CAAG,iBACzB,cAAe,GAAGA,CAAG,IACrB,aAAc,GAAGA,CAAG,WACpB,WAAY,GAAGA,CAAG,SAClB,YAAa,GAAGA,CAAG,UACnB,qBAAsB,GAAGA,CAAG,oBAC5B,yBAA0B,GAAGA,CAAG,wBAChC,eAAgB,GAAGA,CAAG,aACtB,UAAW,GAAGA,CAAG,QACjB,gBAAiB,GAAGA,CAAG,cACvB,cAAe,GAAGA,CAAG,YACrB,wBAAyB,GAAGA,CAAG,WAChC,CACL,CAAG,EACDnb,EAAO,WAAa,CAClB,GAAI,KACJ,QAAS,CAAE,CACf,EACE,IAAIob,EACAC,EAAqB,EACzB,SAASC,GAAuB,CAC9B,MAAO,CAACtb,EAAO,OAAO,WAAW,IAAM,CAACA,EAAO,WAAW,IAAM,MAAM,QAAQA,EAAO,WAAW,EAAE,GAAKA,EAAO,WAAW,GAAG,SAAW,CACxI,CACD,SAASub,EAAeC,EAAUvxR,EAAU,CAC1C,KAAM,CACJ,kBAAAwxR,CACN,EAAQzb,EAAO,OAAO,WACbwb,IACLA,EAAWA,EAAS,GAAGvxR,IAAa,OAAS,WAAa,MAAM,gBAAgB,EAC5EuxR,IACFA,EAAS,UAAU,IAAI,GAAGC,CAAiB,IAAIxxR,CAAQ,EAAE,EACzDuxR,EAAWA,EAAS,GAAGvxR,IAAa,OAAS,WAAa,MAAM,gBAAgB,EAC5EuxR,GACFA,EAAS,UAAU,IAAI,GAAGC,CAAiB,IAAIxxR,CAAQ,IAAIA,CAAQ,EAAE,GAG1E,CACD,SAASyxR,EAAiBjnH,EAAWoC,EAAWhnK,EAAQ,CAGtD,GAFA4kK,EAAYA,EAAY5kK,EACxBgnK,EAAYA,EAAYhnK,EACpBgnK,IAAcpC,EAAY,EAC5B,MAAO,OACF,GAAIoC,IAAcpC,EAAY,EACnC,MAAO,UAGV,CACD,SAASknH,EAAc7uR,EAAG,CACxB,MAAM0uR,EAAW1uR,EAAE,OAAO,QAAQouR,GAAkBlb,EAAO,OAAO,WAAW,WAAW,CAAC,EACzF,GAAI,CAACwb,EACH,OAEF1uR,EAAE,eAAc,EAChB,MAAMlG,EAAQ86Q,GAAa8Z,CAAQ,EAAIxb,EAAO,OAAO,eACrD,GAAIA,EAAO,OAAO,KAAM,CACtB,GAAIA,EAAO,YAAcp5Q,EAAO,OAChC,MAAMg1R,EAAgBF,EAAiB1b,EAAO,UAAWp5Q,EAAOo5Q,EAAO,OAAO,MAAM,EAChF4b,IAAkB,OACpB5b,EAAO,UAAS,EACP4b,IAAkB,WAC3B5b,EAAO,UAAS,EAEhBA,EAAO,YAAYp5Q,CAAK,CAEhC,MACMo5Q,EAAO,QAAQp5Q,CAAK,CAEvB,CACD,SAASk3M,GAAS,CAEhB,MAAMqnE,EAAMnF,EAAO,IACbljP,EAASkjP,EAAO,OAAO,WAC7B,GAAIsb,EAAsB,EAAE,OAC5B,IAAIt/Q,EAAKgkQ,EAAO,WAAW,GAC3BhkQ,EAAKimQ,GAAkBjmQ,CAAE,EAEzB,IAAIqe,EACAywP,EACJ,MAAMtF,EAAexF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,QAAQ,OAAO,OAASA,EAAO,OAAO,OAC9Gj4J,EAAQi4J,EAAO,OAAO,KAAO,KAAK,KAAKwF,EAAexF,EAAO,OAAO,cAAc,EAAIA,EAAO,SAAS,OAY5G,GAXIA,EAAO,OAAO,MAChB8K,EAAgB9K,EAAO,mBAAqB,EAC5C3lP,EAAU2lP,EAAO,OAAO,eAAiB,EAAI,KAAK,MAAMA,EAAO,UAAYA,EAAO,OAAO,cAAc,EAAIA,EAAO,WACzG,OAAOA,EAAO,UAAc,KACrC3lP,EAAU2lP,EAAO,UACjB8K,EAAgB9K,EAAO,oBAEvB8K,EAAgB9K,EAAO,eAAiB,EACxC3lP,EAAU2lP,EAAO,aAAe,GAG9BljP,EAAO,OAAS,WAAakjP,EAAO,WAAW,SAAWA,EAAO,WAAW,QAAQ,OAAS,EAAG,CAClG,MAAM6b,EAAU7b,EAAO,WAAW,QAClC,IAAI8b,EACAxjM,EACAyjM,EAsBJ,GArBIj/P,EAAO,iBACTs+P,EAAarZ,GAAiB8Z,EAAQ,CAAC,EAAG7b,EAAO,aAAY,EAAK,QAAU,SAAU,EAAI,EAC1FhkQ,EAAG,QAAQ4+Q,GAAS,CAClBA,EAAM,MAAM5a,EAAO,aAAc,EAAG,QAAU,QAAQ,EAAI,GAAGob,GAAct+P,EAAO,mBAAqB,EAAE,IACnH,CAAS,EACGA,EAAO,mBAAqB,GAAKguP,IAAkB,SACrDuQ,GAAsBhhQ,GAAWywP,GAAiB,GAC9CuQ,EAAqBv+P,EAAO,mBAAqB,EACnDu+P,EAAqBv+P,EAAO,mBAAqB,EACxCu+P,EAAqB,IAC9BA,EAAqB,IAGzBS,EAAa,KAAK,IAAIzhQ,EAAUghQ,EAAoB,CAAC,EACrD/iM,EAAYwjM,GAAc,KAAK,IAAID,EAAQ,OAAQ/+P,EAAO,kBAAkB,EAAI,GAChFi/P,GAAYzjM,EAAYwjM,GAAc,GAExCD,EAAQ,QAAQL,GAAY,CAC1B,MAAMQ,EAAkB,CAAC,GAAG,CAAC,GAAI,QAAS,aAAc,QAAS,aAAc,OAAO,EAAE,IAAI1pQ,IAAU,GAAGwK,EAAO,iBAAiB,GAAGxK,EAAM,EAAE,CAAC,EAAE,IAAI1f,IAAK,OAAOA,IAAM,UAAYA,GAAE,SAAS,GAAG,EAAIA,GAAE,MAAM,GAAG,EAAIA,EAAC,EAAE,OACrN4oR,EAAS,UAAU,OAAO,GAAGQ,CAAe,CACpD,CAAO,EACGhgR,EAAG,OAAS,EACd6/Q,EAAQ,QAAQI,GAAU,CACxB,MAAMC,EAAcxa,GAAaua,CAAM,EACnCC,IAAgB7hQ,EAClB4hQ,EAAO,UAAU,IAAI,GAAGn/P,EAAO,kBAAkB,MAAM,GAAG,CAAC,EAClDkjP,EAAO,WAChBic,EAAO,aAAa,OAAQ,QAAQ,EAElCn/P,EAAO,iBACLo/P,GAAeJ,GAAcI,GAAe5jM,GAC9C2jM,EAAO,UAAU,IAAI,GAAG,GAAGn/P,EAAO,iBAAiB,QAAQ,MAAM,GAAG,CAAC,EAEnEo/P,IAAgBJ,GAClBP,EAAeU,EAAQ,MAAM,EAE3BC,IAAgB5jM,GAClBijM,EAAeU,EAAQ,MAAM,EAG3C,CAAS,MACI,CACL,MAAMA,EAASJ,EAAQxhQ,CAAO,EAS9B,GARI4hQ,GACFA,EAAO,UAAU,IAAI,GAAGn/P,EAAO,kBAAkB,MAAM,GAAG,CAAC,EAEzDkjP,EAAO,WACT6b,EAAQ,QAAQ,CAACL,EAAUU,KAAgB,CACzCV,EAAS,aAAa,OAAQU,KAAgB7hQ,EAAU,gBAAkB,QAAQ,CAC9F,CAAW,EAECyC,EAAO,eAAgB,CACzB,MAAMq/P,EAAuBN,EAAQC,CAAU,EACzCM,GAAsBP,EAAQvjM,CAAS,EAC7C,QAAS96F,GAAIs+R,EAAYt+R,IAAK86F,EAAW96F,IAAK,EACxCq+R,EAAQr+R,EAAC,GACXq+R,EAAQr+R,EAAC,EAAE,UAAU,IAAI,GAAG,GAAGs/B,EAAO,iBAAiB,QAAQ,MAAM,GAAG,CAAC,EAG7Ey+P,EAAeY,EAAsB,MAAM,EAC3CZ,EAAea,GAAqB,MAAM,CAC3C,CACF,CACD,GAAIt/P,EAAO,eAAgB,CACzB,MAAMu/P,EAAuB,KAAK,IAAIR,EAAQ,OAAQ/+P,EAAO,mBAAqB,CAAC,EAC7Ew/P,GAAiBlB,EAAaiB,EAAuBjB,GAAc,EAAIW,EAAWX,EAClFjpQ,GAAagzP,EAAM,QAAU,OACnC0W,EAAQ,QAAQI,IAAU,CACxBA,GAAO,MAAMjc,EAAO,eAAiB7tP,GAAa,KAAK,EAAI,GAAGmqQ,CAAa,IACrF,CAAS,CACF,CACF,CACDtgR,EAAG,QAAQ,CAAC4+Q,EAAO2B,IAAe,CAShC,GARIz/P,EAAO,OAAS,aAClB89P,EAAM,iBAAiBM,GAAkBp+P,EAAO,YAAY,CAAC,EAAE,QAAQ0/P,GAAc,CACnFA,EAAW,YAAc1/P,EAAO,sBAAsBzC,EAAU,CAAC,CAC3E,CAAS,EACDugQ,EAAM,iBAAiBM,GAAkBp+P,EAAO,UAAU,CAAC,EAAE,QAAQ2/P,GAAW,CAC9EA,EAAQ,YAAc3/P,EAAO,oBAAoBirF,CAAK,CAChE,CAAS,GAECjrF,EAAO,OAAS,cAAe,CACjC,IAAI4/P,EACA5/P,EAAO,oBACT4/P,EAAuB1c,EAAO,eAAiB,WAAa,aAE5D0c,EAAuB1c,EAAO,eAAiB,aAAe,WAEhE,MAAMv2P,GAAS4Q,EAAU,GAAK0tF,EAC9B,IAAI40K,EAAS,EACTC,EAAS,EACTF,IAAyB,aAC3BC,EAASlzQ,EAETmzQ,EAASnzQ,EAEXmxQ,EAAM,iBAAiBM,GAAkBp+P,EAAO,oBAAoB,CAAC,EAAE,QAAQ+/P,IAAc,CAC3FA,GAAW,MAAM,UAAY,6BAA6BF,CAAM,YAAYC,CAAM,IAClFC,GAAW,MAAM,mBAAqB,GAAG7c,EAAO,OAAO,KAAK,IACtE,CAAS,CACF,CACGljP,EAAO,OAAS,UAAYA,EAAO,cACrC89P,EAAM,UAAY99P,EAAO,aAAakjP,EAAQ3lP,EAAU,EAAG0tF,CAAK,EAC5Dw0K,IAAe,GAAG7Y,EAAK,mBAAoBkX,CAAK,IAEhD2B,IAAe,GAAG7Y,EAAK,mBAAoBkX,CAAK,EACpDlX,EAAK,mBAAoBkX,CAAK,GAE5B5a,EAAO,OAAO,eAAiBA,EAAO,SACxC4a,EAAM,UAAU5a,EAAO,SAAW,MAAQ,QAAQ,EAAEljP,EAAO,SAAS,CAE5E,CAAK,CACF,CACD,SAAS5wB,GAAS,CAEhB,MAAM4wB,EAASkjP,EAAO,OAAO,WAC7B,GAAIsb,EAAsB,EAAE,OAC5B,MAAM9V,EAAexF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,QAAQ,OAAO,OAASA,EAAO,MAAQA,EAAO,OAAO,KAAK,KAAO,EAAIA,EAAO,OAAO,OAAS,KAAK,KAAKA,EAAO,OAAO,KAAK,IAAI,EAAIA,EAAO,OAAO,OAC7N,IAAIhkQ,EAAKgkQ,EAAO,WAAW,GAC3BhkQ,EAAKimQ,GAAkBjmQ,CAAE,EACzB,IAAI8gR,EAAiB,GACrB,GAAIhgQ,EAAO,OAAS,UAAW,CAC7B,IAAIigQ,EAAkB/c,EAAO,OAAO,KAAO,KAAK,KAAKwF,EAAexF,EAAO,OAAO,cAAc,EAAIA,EAAO,SAAS,OAChHA,EAAO,OAAO,UAAYA,EAAO,OAAO,SAAS,SAAW+c,EAAkBvX,IAChFuX,EAAkBvX,GAEpB,QAAShoR,EAAI,EAAGA,EAAIu/R,EAAiBv/R,GAAK,EACpCs/B,EAAO,aACTggQ,GAAkBhgQ,EAAO,aAAa,KAAKkjP,EAAQxiR,EAAGs/B,EAAO,WAAW,EAGxEggQ,GAAkB,IAAIhgQ,EAAO,aAAa,IAAIkjP,EAAO,UAAY,gBAAkB,EAAE,WAAWljP,EAAO,WAAW,OAAOA,EAAO,aAAa,GAGlJ,CACGA,EAAO,OAAS,aACdA,EAAO,eACTggQ,EAAiBhgQ,EAAO,eAAe,KAAKkjP,EAAQljP,EAAO,aAAcA,EAAO,UAAU,EAE1FggQ,EAAiB,gBAAgBhgQ,EAAO,YAAY,4BAAsCA,EAAO,UAAU,aAG3GA,EAAO,OAAS,gBACdA,EAAO,kBACTggQ,EAAiBhgQ,EAAO,kBAAkB,KAAKkjP,EAAQljP,EAAO,oBAAoB,EAElFggQ,EAAiB,gBAAgBhgQ,EAAO,oBAAoB,aAGhEkjP,EAAO,WAAW,QAAU,GAC5BhkQ,EAAG,QAAQ4+Q,GAAS,CACd99P,EAAO,OAAS,WAClB89P,EAAM,UAAYkC,GAAkB,IAElChgQ,EAAO,OAAS,WAClBkjP,EAAO,WAAW,QAAQ,KAAK,GAAG4a,EAAM,iBAAiBM,GAAkBp+P,EAAO,WAAW,CAAC,CAAC,CAEvG,CAAK,EACGA,EAAO,OAAS,UAClB4mP,EAAK,mBAAoB1nQ,EAAG,CAAC,CAAC,CAEjC,CACD,SAAS8H,GAAO,CACdk8P,EAAO,OAAO,WAAaua,GAA0Bva,EAAQA,EAAO,eAAe,WAAYA,EAAO,OAAO,WAAY,CACvH,GAAI,mBACV,CAAK,EACD,MAAMljP,EAASkjP,EAAO,OAAO,WAC7B,GAAI,CAACljP,EAAO,GAAI,OAChB,IAAI9gB,EACA,OAAO8gB,EAAO,IAAO,UAAYkjP,EAAO,YAC1ChkQ,EAAKgkQ,EAAO,GAAG,cAAcljP,EAAO,EAAE,GAEpC,CAAC9gB,GAAM,OAAO8gB,EAAO,IAAO,WAC9B9gB,EAAK,CAAC,GAAG,SAAS,iBAAiB8gB,EAAO,EAAE,CAAC,GAE1C9gB,IACHA,EAAK8gB,EAAO,IAEV,GAAC9gB,GAAMA,EAAG,SAAW,KACrBgkQ,EAAO,OAAO,mBAAqB,OAAOljP,EAAO,IAAO,UAAY,MAAM,QAAQ9gB,CAAE,GAAKA,EAAG,OAAS,IACvGA,EAAK,CAAC,GAAGgkQ,EAAO,GAAG,iBAAiBljP,EAAO,EAAE,CAAC,EAE1C9gB,EAAG,OAAS,IACdA,EAAKA,EAAG,KAAK4+Q,GACPjZ,GAAeiZ,EAAO,SAAS,EAAE,CAAC,IAAM5a,EAAO,EAEpD,IAGD,MAAM,QAAQhkQ,CAAE,GAAKA,EAAG,SAAW,IAAGA,EAAKA,EAAG,CAAC,GACnD,OAAO,OAAOgkQ,EAAO,WAAY,CAC/B,GAAAhkQ,CACN,CAAK,EACDA,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAAS,CACd99P,EAAO,OAAS,WAAaA,EAAO,WACtC89P,EAAM,UAAU,IAAI,IAAI99P,EAAO,gBAAkB,IAAI,MAAM,GAAG,CAAC,EAEjE89P,EAAM,UAAU,IAAI99P,EAAO,cAAgBA,EAAO,IAAI,EACtD89P,EAAM,UAAU,IAAI5a,EAAO,eAAiBljP,EAAO,gBAAkBA,EAAO,aAAa,EACrFA,EAAO,OAAS,WAAaA,EAAO,iBACtC89P,EAAM,UAAU,IAAI,GAAG99P,EAAO,aAAa,GAAGA,EAAO,IAAI,UAAU,EACnEu+P,EAAqB,EACjBv+P,EAAO,mBAAqB,IAC9BA,EAAO,mBAAqB,IAG5BA,EAAO,OAAS,eAAiBA,EAAO,qBAC1C89P,EAAM,UAAU,IAAI99P,EAAO,wBAAwB,EAEjDA,EAAO,WACT89P,EAAM,iBAAiB,QAASe,CAAa,EAE1C3b,EAAO,SACV4a,EAAM,UAAU,IAAI99P,EAAO,SAAS,CAE5C,CAAK,EACF,CACD,SAASm/M,GAAU,CACjB,MAAMn/M,EAASkjP,EAAO,OAAO,WAC7B,GAAIsb,EAAsB,EAAE,OAC5B,IAAIt/Q,EAAKgkQ,EAAO,WAAW,GACvBhkQ,IACFA,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAAS,CAClBA,EAAM,UAAU,OAAO99P,EAAO,WAAW,EACzC89P,EAAM,UAAU,OAAO99P,EAAO,cAAgBA,EAAO,IAAI,EACzD89P,EAAM,UAAU,OAAO5a,EAAO,eAAiBljP,EAAO,gBAAkBA,EAAO,aAAa,EACxFA,EAAO,YACT89P,EAAM,UAAU,OAAO,IAAI99P,EAAO,gBAAkB,IAAI,MAAM,GAAG,CAAC,EAClE89P,EAAM,oBAAoB,QAASe,CAAa,EAE1D,CAAO,GAEC3b,EAAO,WAAW,SAASA,EAAO,WAAW,QAAQ,QAAQ4a,GAASA,EAAM,UAAU,OAAO,GAAG99P,EAAO,kBAAkB,MAAM,GAAG,CAAC,CAAC,CACzI,CACD/sB,EAAG,kBAAmB,IAAM,CAC1B,GAAI,CAACiwQ,EAAO,YAAc,CAACA,EAAO,WAAW,GAAI,OACjD,MAAMljP,EAASkjP,EAAO,OAAO,WAC7B,GAAI,CACF,GAAAhkQ,CACN,EAAQgkQ,EAAO,WACXhkQ,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAAS,CAClBA,EAAM,UAAU,OAAO99P,EAAO,gBAAiBA,EAAO,aAAa,EACnE89P,EAAM,UAAU,IAAI5a,EAAO,eAAiBljP,EAAO,gBAAkBA,EAAO,aAAa,CAC/F,CAAK,CACL,CAAG,EACD/sB,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,WAAW,UAAY,GAEvCmZ,KAEAr1Q,IACA5X,IACA4xM,IAEN,CAAG,EACD/tM,EAAG,oBAAqB,IAAM,CACxB,OAAOiwQ,EAAO,UAAc,KAC9BliE,GAEN,CAAG,EACD/tM,EAAG,kBAAmB,IAAM,CAC1B+tM,GACJ,CAAG,EACD/tM,EAAG,uBAAwB,IAAM,CAC/B7D,IACA4xM,GACJ,CAAG,EACD/tM,EAAG,UAAW,IAAM,CAClBksO,GACJ,CAAG,EACDlsO,EAAG,iBAAkB,IAAM,CACzB,GAAI,CACF,GAAAiM,CACN,EAAQgkQ,EAAO,WACPhkQ,IACFA,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAASA,EAAM,UAAU5a,EAAO,QAAU,SAAW,KAAK,EAAEA,EAAO,OAAO,WAAW,SAAS,CAAC,EAEhH,CAAG,EACDjwQ,EAAG,cAAe,IAAM,CACtB+tM,GACJ,CAAG,EACD/tM,EAAG,QAAS,CAAC6rL,EAAI9uL,IAAM,CACrB,MAAMyjR,EAAWzjR,EAAE,OACbkP,EAAKimQ,GAAkBjC,EAAO,WAAW,EAAE,EACjD,GAAIA,EAAO,OAAO,WAAW,IAAMA,EAAO,OAAO,WAAW,aAAehkQ,GAAMA,EAAG,OAAS,GAAK,CAACu0Q,EAAS,UAAU,SAASvQ,EAAO,OAAO,WAAW,WAAW,EAAG,CACpK,GAAIA,EAAO,aAAeA,EAAO,WAAW,QAAUuQ,IAAavQ,EAAO,WAAW,QAAUA,EAAO,WAAW,QAAUuQ,IAAavQ,EAAO,WAAW,QAAS,OACnK,MAAM31L,EAAWruE,EAAG,CAAC,EAAE,UAAU,SAASgkQ,EAAO,OAAO,WAAW,WAAW,EAE5E0D,EADEr5L,IAAa,GACV,iBAEA,gBAFgB,EAIvBruE,EAAG,QAAQ4+Q,GAASA,EAAM,UAAU,OAAO5a,EAAO,OAAO,WAAW,WAAW,CAAC,CACjF,CACL,CAAG,EACD,MAAMkZ,EAAS,IAAM,CACnBlZ,EAAO,GAAG,UAAU,OAAOA,EAAO,OAAO,WAAW,uBAAuB,EAC3E,GAAI,CACF,GAAAhkQ,CACN,EAAQgkQ,EAAO,WACPhkQ,IACFA,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAASA,EAAM,UAAU,OAAO5a,EAAO,OAAO,WAAW,uBAAuB,CAAC,GAE9Fl8P,IACA5X,IACA4xM,GACJ,EACQq7E,EAAU,IAAM,CACpBnZ,EAAO,GAAG,UAAU,IAAIA,EAAO,OAAO,WAAW,uBAAuB,EACxE,GAAI,CACF,GAAAhkQ,CACN,EAAQgkQ,EAAO,WACPhkQ,IACFA,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAASA,EAAM,UAAU,IAAI5a,EAAO,OAAO,WAAW,uBAAuB,CAAC,GAE3F/jC,GACJ,EACE,OAAO,OAAO+jC,EAAO,WAAY,CAC/B,OAAAkZ,EACA,QAAAC,EACA,OAAAjtR,EACA,OAAA4xM,EACA,KAAAh6L,EACA,QAAAm4N,CACJ,CAAG,CACH,CCpcA,SAAS+gD,IAAUzpO,EAAM,CACvB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAMtlD,EAAWqpJ,KACjB,IAAI2lI,EAAY,GACZvnQ,EAAU,KACVwnQ,EAAc,KACdC,EACAC,EACAC,EACAC,EACJlZ,EAAa,CACX,UAAW,CACT,GAAI,KACJ,SAAU,OACV,KAAM,GACN,UAAW,GACX,cAAe,GACf,UAAW,wBACX,UAAW,wBACX,uBAAwB,4BACxB,gBAAiB,8BACjB,cAAe,2BAChB,CACL,CAAG,EACDpE,EAAO,UAAY,CACjB,GAAI,KACJ,OAAQ,IACZ,EACE,SAAS0L,GAAe,CACtB,GAAI,CAAC1L,EAAO,OAAO,UAAU,IAAM,CAACA,EAAO,UAAU,GAAI,OACzD,KAAM,CACJ,UAAAud,EACA,aAAcpY,CACf,EAAGnF,EACE,CACJ,OAAAwd,EACA,GAAAxhR,EACD,EAAGuhR,EACEzgQ,GAASkjP,EAAO,OAAO,UACvBnzB,GAAWmzB,EAAO,OAAO,KAAOA,EAAO,aAAeA,EAAO,SACnE,IAAIyd,GAAUL,EACVM,IAAUL,EAAYD,GAAYvwC,GAClCs4B,GACFuY,GAAS,CAACA,GACNA,GAAS,GACXD,GAAUL,EAAWM,GACrBA,GAAS,GACA,CAACA,GAASN,EAAWC,IAC9BI,GAAUJ,EAAYK,KAEfA,GAAS,GAClBD,GAAUL,EAAWM,GACrBA,GAAS,GACAA,GAASN,EAAWC,IAC7BI,GAAUJ,EAAYK,IAEpB1d,EAAO,gBACTwd,EAAO,MAAM,UAAY,eAAeE,EAAM,YAC9CF,EAAO,MAAM,MAAQ,GAAGC,EAAO,OAE/BD,EAAO,MAAM,UAAY,oBAAoBE,EAAM,SACnDF,EAAO,MAAM,OAAS,GAAGC,EAAO,MAE9B3gQ,GAAO,OACT,aAAapH,CAAO,EACpB1Z,GAAG,MAAM,QAAU,EACnB0Z,EAAU,WAAW,IAAM,CACzB1Z,GAAG,MAAM,QAAU,EACnBA,GAAG,MAAM,mBAAqB,OAC/B,EAAE,GAAI,EAEV,CACD,SAASqwQ,EAAczqP,EAAU,CAC3B,CAACo+O,EAAO,OAAO,UAAU,IAAM,CAACA,EAAO,UAAU,KACrDA,EAAO,UAAU,OAAO,MAAM,mBAAqB,GAAGp+O,CAAQ,KAC/D,CACD,SAASijP,GAAa,CACpB,GAAI,CAAC7E,EAAO,OAAO,UAAU,IAAM,CAACA,EAAO,UAAU,GAAI,OACzD,KAAM,CACJ,UAAAud,CACD,EAAGvd,EACE,CACJ,OAAAwd,EACA,GAAAxhR,CACD,EAAGuhR,EACJC,EAAO,MAAM,MAAQ,GACrBA,EAAO,MAAM,OAAS,GACtBH,EAAYrd,EAAO,aAAc,EAAGhkQ,EAAG,YAAcA,EAAG,aACxDshR,EAAUtd,EAAO,MAAQA,EAAO,YAAcA,EAAO,OAAO,oBAAsBA,EAAO,OAAO,eAAiBA,EAAO,SAAS,CAAC,EAAI,IAClIA,EAAO,OAAO,UAAU,WAAa,OACvCod,EAAWC,EAAYC,EAEvBF,EAAW,SAASpd,EAAO,OAAO,UAAU,SAAU,EAAE,EAEtDA,EAAO,eACTwd,EAAO,MAAM,MAAQ,GAAGJ,CAAQ,KAEhCI,EAAO,MAAM,OAAS,GAAGJ,CAAQ,KAE/BE,GAAW,EACbthR,EAAG,MAAM,QAAU,OAEnBA,EAAG,MAAM,QAAU,GAEjBgkQ,EAAO,OAAO,UAAU,OAC1BhkQ,EAAG,MAAM,QAAU,GAEjBgkQ,EAAO,OAAO,eAAiBA,EAAO,SACxCud,EAAU,GAAG,UAAUvd,EAAO,SAAW,MAAQ,QAAQ,EAAEA,EAAO,OAAO,UAAU,SAAS,CAE/F,CACD,SAAS2d,EAAmB7wR,EAAG,CAC7B,OAAOkzQ,EAAO,aAAc,EAAGlzQ,EAAE,QAAUA,EAAE,OAC9C,CACD,SAAS8wR,EAAgB9wR,EAAG,CAC1B,KAAM,CACJ,UAAAywR,EACA,aAAcpY,CACf,EAAGnF,EACE,CACJ,GAAAhkQ,EACD,EAAGuhR,EACJ,IAAIM,GACJA,IAAiBF,EAAmB7wR,CAAC,EAAIm0Q,GAAcjlQ,EAAE,EAAEgkQ,EAAO,eAAiB,OAAS,KAAK,GAAKmd,IAAiB,KAAOA,EAAeC,EAAW,KAAOC,EAAYD,GAC3KS,GAAgB,KAAK,IAAI,KAAK,IAAIA,GAAe,CAAC,EAAG,CAAC,EAClD1Y,IACF0Y,GAAgB,EAAIA,IAEtB,MAAM5zR,GAAW+1Q,EAAO,aAAY,GAAMA,EAAO,aAAY,EAAKA,EAAO,aAAc,GAAI6d,GAC3F7d,EAAO,eAAe/1Q,EAAQ,EAC9B+1Q,EAAO,aAAa/1Q,EAAQ,EAC5B+1Q,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,CAC3B,CACD,SAAS8d,EAAYhxR,EAAG,CACtB,MAAMgwB,EAASkjP,EAAO,OAAO,UACvB,CACJ,UAAAud,EACA,UAAAvY,EACD,EAAGhF,EACE,CACJ,GAAAhkQ,GACA,OAAAwhR,EACD,EAAGD,EACJN,EAAY,GACZE,EAAerwR,EAAE,SAAW0wR,GAASG,EAAmB7wR,CAAC,EAAIA,EAAE,OAAO,sBAAqB,EAAGkzQ,EAAO,aAAY,EAAK,OAAS,KAAK,EAAI,KACxIlzQ,EAAE,eAAc,EAChBA,EAAE,gBAAe,EACjBk4Q,GAAU,MAAM,mBAAqB,QACrCwY,GAAO,MAAM,mBAAqB,QAClCI,EAAgB9wR,CAAC,EACjB,aAAaowR,CAAW,EACxBlhR,GAAG,MAAM,mBAAqB,MAC1B8gB,EAAO,OACT9gB,GAAG,MAAM,QAAU,GAEjBgkQ,EAAO,OAAO,UAChBA,EAAO,UAAU,MAAM,kBAAkB,EAAI,QAE/C0D,EAAK,qBAAsB52Q,CAAC,CAC7B,CACD,SAASixR,EAAWjxR,EAAG,CACrB,KAAM,CACJ,UAAAywR,EACA,UAAAvY,CACD,EAAGhF,EACE,CACJ,GAAAhkQ,GACA,OAAAwhR,EACD,EAAGD,EACCN,IACDnwR,EAAE,gBAAkBA,EAAE,WAAYA,EAAE,eAAc,EAAQA,EAAE,YAAc,GAC9E8wR,EAAgB9wR,CAAC,EACjBk4Q,EAAU,MAAM,mBAAqB,MACrChpQ,GAAG,MAAM,mBAAqB,MAC9BwhR,GAAO,MAAM,mBAAqB,MAClC9Z,EAAK,oBAAqB52Q,CAAC,EAC5B,CACD,SAASkxR,EAAUlxR,EAAG,CACpB,MAAMgwB,EAASkjP,EAAO,OAAO,UACvB,CACJ,UAAAud,EACA,UAAAvY,EACD,EAAGhF,EACE,CACJ,GAAAhkQ,EACD,EAAGuhR,EACCN,IACLA,EAAY,GACRjd,EAAO,OAAO,UAChBA,EAAO,UAAU,MAAM,kBAAkB,EAAI,GAC7CgF,GAAU,MAAM,mBAAqB,IAEnCloP,EAAO,OACT,aAAaogQ,CAAW,EACxBA,EAAche,GAAS,IAAM,CAC3BljQ,GAAG,MAAM,QAAU,EACnBA,GAAG,MAAM,mBAAqB,OAC/B,EAAE,GAAI,GAET0nQ,EAAK,mBAAoB52Q,CAAC,EACtBgwB,EAAO,eACTkjP,EAAO,eAAc,EAExB,CACD,SAASn0P,EAAO/sB,EAAQ,CACtB,KAAM,CACJ,UAAAy+R,EACA,OAAAzgQ,CACD,EAAGkjP,EACEhkQ,GAAKuhR,EAAU,GACrB,GAAI,CAACvhR,GAAI,OACT,MAAM5iB,GAAS4iB,GACTiiR,GAAiBnhQ,EAAO,iBAAmB,CAC/C,QAAS,GACT,QAAS,EACV,EAAG,GACEohQ,GAAkBphQ,EAAO,iBAAmB,CAChD,QAAS,GACT,QAAS,EACV,EAAG,GACJ,GAAI,CAAC1jC,GAAQ,OACb,MAAM+kS,GAAcr/R,IAAW,KAAO,mBAAqB,sBAC3D1F,GAAO+kS,EAAW,EAAE,cAAeL,EAAaG,EAAc,EAC9DhwR,EAASkwR,EAAW,EAAE,cAAeJ,EAAYE,EAAc,EAC/DhwR,EAASkwR,EAAW,EAAE,YAAaH,EAAWE,EAAe,CAC9D,CACD,SAASE,GAAkB,CACrB,CAACpe,EAAO,OAAO,UAAU,IAAM,CAACA,EAAO,UAAU,IACrDn0P,EAAO,IAAI,CACZ,CACD,SAASwyQ,GAAmB,CACtB,CAACre,EAAO,OAAO,UAAU,IAAM,CAACA,EAAO,UAAU,IACrDn0P,EAAO,KAAK,CACb,CACD,SAAS/H,GAAO,CACd,KAAM,CACJ,UAAAy5Q,EACA,GAAIe,CACL,EAAGte,EACJA,EAAO,OAAO,UAAYua,GAA0Bva,EAAQA,EAAO,eAAe,UAAWA,EAAO,OAAO,UAAW,CACpH,GAAI,kBACV,CAAK,EACD,MAAMljP,EAASkjP,EAAO,OAAO,UAC7B,GAAI,CAACljP,EAAO,GAAI,OAChB,IAAI9gB,GAIJ,GAHI,OAAO8gB,EAAO,IAAO,UAAYkjP,EAAO,YAC1ChkQ,GAAKgkQ,EAAO,GAAG,cAAcljP,EAAO,EAAE,GAEpC,CAAC9gB,IAAM,OAAO8gB,EAAO,IAAO,UAE9B,GADA9gB,GAAK/N,EAAS,iBAAiB6uB,EAAO,EAAE,EACpC,CAAC9gB,GAAG,OAAQ,YACNA,KACVA,GAAK8gB,EAAO,IAEVkjP,EAAO,OAAO,mBAAqB,OAAOljP,EAAO,IAAO,UAAY9gB,GAAG,OAAS,GAAKsiR,EAAS,iBAAiBxhQ,EAAO,EAAE,EAAE,SAAW,IACvI9gB,GAAKsiR,EAAS,cAAcxhQ,EAAO,EAAE,GAEnC9gB,GAAG,OAAS,IAAGA,GAAKA,GAAG,CAAC,GAC5BA,GAAG,UAAU,IAAIgkQ,EAAO,eAAiBljP,EAAO,gBAAkBA,EAAO,aAAa,EACtF,IAAI0gQ,GACAxhR,KACFwhR,GAASxhR,GAAG,cAAck/Q,GAAkBlb,EAAO,OAAO,UAAU,SAAS,CAAC,EACzEwd,KACHA,GAASv/M,GAAc,MAAO+hM,EAAO,OAAO,UAAU,SAAS,EAC/DhkQ,GAAG,OAAOwhR,EAAM,IAGpB,OAAO,OAAOD,EAAW,CACvB,GAAAvhR,GACA,OAAAwhR,EACN,CAAK,EACG1gQ,EAAO,WACTshQ,IAEEpiR,IACFA,GAAG,UAAUgkQ,EAAO,QAAU,SAAW,KAAK,EAAE,GAAGhB,GAAgBgB,EAAO,OAAO,UAAU,SAAS,CAAC,CAExG,CACD,SAAS/jC,GAAU,CACjB,MAAMn/M,EAASkjP,EAAO,OAAO,UACvBhkQ,EAAKgkQ,EAAO,UAAU,GACxBhkQ,GACFA,EAAG,UAAU,OAAO,GAAGgjQ,GAAgBgB,EAAO,aAAc,EAAGljP,EAAO,gBAAkBA,EAAO,aAAa,CAAC,EAE/GuhQ,GACD,CACDtuR,EAAG,kBAAmB,IAAM,CAC1B,GAAI,CAACiwQ,EAAO,WAAa,CAACA,EAAO,UAAU,GAAI,OAC/C,MAAMljP,EAASkjP,EAAO,OAAO,UAC7B,GAAI,CACF,GAAAhkQ,CACN,EAAQgkQ,EAAO,UACXhkQ,EAAKimQ,GAAkBjmQ,CAAE,EACzBA,EAAG,QAAQ4+Q,GAAS,CAClBA,EAAM,UAAU,OAAO99P,EAAO,gBAAiBA,EAAO,aAAa,EACnE89P,EAAM,UAAU,IAAI5a,EAAO,eAAiBljP,EAAO,gBAAkBA,EAAO,aAAa,CAC/F,CAAK,CACL,CAAG,EACD/sB,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,UAAU,UAAY,GAEtCmZ,KAEAr1Q,IACA+gQ,IACA6G,IAEN,CAAG,EACD37Q,EAAG,2DAA4D,IAAM,CACnE80Q,GACJ,CAAG,EACD90Q,EAAG,eAAgB,IAAM,CACvB27Q,GACJ,CAAG,EACD37Q,EAAG,gBAAiB,CAAC6rL,EAAIh6J,IAAa,CACpCyqP,EAAczqP,CAAQ,CAC1B,CAAG,EACD7xB,EAAG,iBAAkB,IAAM,CACzB,KAAM,CACJ,GAAAiM,CACN,EAAQgkQ,EAAO,UACPhkQ,GACFA,EAAG,UAAUgkQ,EAAO,QAAU,SAAW,KAAK,EAAE,GAAGhB,GAAgBgB,EAAO,OAAO,UAAU,SAAS,CAAC,CAE3G,CAAG,EACDjwQ,EAAG,UAAW,IAAM,CAClBksO,GACJ,CAAG,EACD,MAAMi9C,EAAS,IAAM,CACnBlZ,EAAO,GAAG,UAAU,OAAO,GAAGhB,GAAgBgB,EAAO,OAAO,UAAU,sBAAsB,CAAC,EACzFA,EAAO,UAAU,IACnBA,EAAO,UAAU,GAAG,UAAU,OAAO,GAAGhB,GAAgBgB,EAAO,OAAO,UAAU,sBAAsB,CAAC,EAEzGl8P,IACA+gQ,IACA6G,GACJ,EACQyN,EAAU,IAAM,CACpBnZ,EAAO,GAAG,UAAU,IAAI,GAAGhB,GAAgBgB,EAAO,OAAO,UAAU,sBAAsB,CAAC,EACtFA,EAAO,UAAU,IACnBA,EAAO,UAAU,GAAG,UAAU,IAAI,GAAGhB,GAAgBgB,EAAO,OAAO,UAAU,sBAAsB,CAAC,EAEtG/jC,GACJ,EACE,OAAO,OAAO+jC,EAAO,UAAW,CAC9B,OAAAkZ,EACA,QAAAC,EACA,WAAAtU,EACA,aAAA6G,EACA,KAAA5nQ,EACA,QAAAm4N,CACJ,CAAG,CACH,CCzWA,SAASsiD,IAAShrO,EAAM,CACtB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,SAAU,CACR,QAAS,EACV,CACL,CAAG,EACD,MAAMoa,EAAmB,2IACnBpoI,EAAe,CAACp6I,EAAI6wO,IAAa,CACrC,KAAM,CACJ,IAAAs4B,CACD,EAAGnF,EACEka,EAAY/U,EAAM,GAAK,EACvBryP,EAAI9W,EAAG,aAAa,sBAAsB,GAAK,IACrD,IAAItZ,EAAIsZ,EAAG,aAAa,wBAAwB,EAC5CrZ,EAAIqZ,EAAG,aAAa,wBAAwB,EAChD,MAAMyN,EAAQzN,EAAG,aAAa,4BAA4B,EACpDwhQ,EAAUxhQ,EAAG,aAAa,8BAA8B,EACxDyiR,EAASziR,EAAG,aAAa,6BAA6B,EAqB5D,GApBItZ,GAAKC,GACPD,EAAIA,GAAK,IACTC,EAAIA,GAAK,KACAq9Q,EAAO,gBAChBt9Q,EAAIowB,EACJnwB,EAAI,MAEJA,EAAImwB,EACJpwB,EAAI,KAEFA,EAAE,QAAQ,GAAG,GAAK,EACpBA,EAAI,GAAG,SAASA,EAAG,EAAE,EAAImqP,EAAWqtC,CAAS,IAE7Cx3R,EAAI,GAAGA,EAAImqP,EAAWqtC,CAAS,KAE7Bv3R,EAAE,QAAQ,GAAG,GAAK,EACpBA,EAAI,GAAG,SAASA,EAAG,EAAE,EAAIkqP,CAAQ,IAEjClqP,EAAI,GAAGA,EAAIkqP,CAAQ,KAEjB,OAAO2wB,EAAY,KAAeA,IAAY,KAAM,CACtD,MAAMkhB,EAAiBlhB,GAAWA,EAAU,IAAM,EAAI,KAAK,IAAI3wB,CAAQ,GACvE7wO,EAAG,MAAM,QAAU0iR,CACpB,CACD,IAAIznO,EAAY,eAAev0D,CAAC,KAAKC,CAAC,SACtC,GAAI,OAAO8mB,EAAU,KAAeA,IAAU,KAAM,CAClD,MAAMk1Q,EAAel1Q,GAASA,EAAQ,IAAM,EAAI,KAAK,IAAIojO,CAAQ,GACjE51L,GAAa,UAAU0nO,CAAY,GACpC,CACD,GAAIF,GAAU,OAAOA,EAAW,KAAeA,IAAW,KAAM,CAC9D,MAAMG,EAAgBH,EAAS5xC,EAAW,GAC1C51L,GAAa,WAAW2nO,CAAa,MACtC,CACD5iR,EAAG,MAAM,UAAYi7C,CACzB,EACQy0N,EAAe,IAAM,CACzB,KAAM,CACJ,GAAA1vQ,EACA,OAAAupQ,EACA,SAAA14B,EACA,SAAA44B,EACA,UAAA1mE,CACD,EAAGihE,EACEniR,EAAW4iR,GAAgBzkQ,EAAIwiR,CAAgB,EACjDxe,EAAO,WACTniR,EAAS,KAAK,GAAG4iR,GAAgBT,EAAO,OAAQwe,CAAgB,CAAC,EAEnE3gS,EAAS,QAAQ+8R,GAAS,CACxBxkI,EAAawkI,EAAO/tC,CAAQ,CAClC,CAAK,EACD04B,EAAO,QAAQ,CAAC/E,EAAStD,IAAe,CACtC,IAAIqL,EAAgB/H,EAAQ,SACxBR,EAAO,OAAO,eAAiB,GAAKA,EAAO,OAAO,gBAAkB,SACtEuI,GAAiB,KAAK,KAAKrL,EAAa,CAAC,EAAIrwB,GAAY44B,EAAS,OAAS,IAE7E8C,EAAgB,KAAK,IAAI,KAAK,IAAIA,EAAe,EAAE,EAAG,CAAC,EACvD/H,EAAQ,iBAAiB,GAAGge,CAAgB,iCAAiC,EAAE,QAAQ5D,GAAS,CAC9FxkI,EAAawkI,EAAOrS,CAAa,CACzC,CAAO,CACP,CAAK,CACL,EACQ8D,EAAgB,SAAUzqP,EAAU,CACpCA,IAAa,SACfA,EAAWo+O,EAAO,OAAO,OAE3B,KAAM,CACJ,GAAAhkQ,EACA,OAAA6iR,CACD,EAAG7e,EACEniR,EAAW,CAAC,GAAGme,EAAG,iBAAiBwiR,CAAgB,CAAC,EACtDxe,EAAO,WACTniR,EAAS,KAAK,GAAGghS,EAAO,iBAAiBL,CAAgB,CAAC,EAE5D3gS,EAAS,QAAQihS,GAAc,CAC7B,IAAIC,EAAmB,SAASD,EAAW,aAAa,+BAA+B,EAAG,EAAE,GAAKl9P,EAC7FA,IAAa,IAAGm9P,EAAmB,GACvCD,EAAW,MAAM,mBAAqB,GAAGC,CAAgB,IAC/D,CAAK,CACL,EACEhvR,EAAG,aAAc,IAAM,CAChBiwQ,EAAO,OAAO,SAAS,UAC5BA,EAAO,OAAO,oBAAsB,GACpCA,EAAO,eAAe,oBAAsB,GAChD,CAAG,EACDjwQ,EAAG,OAAQ,IAAM,CACViwQ,EAAO,OAAO,SAAS,SAC5B0L,GACJ,CAAG,EACD37Q,EAAG,eAAgB,IAAM,CAClBiwQ,EAAO,OAAO,SAAS,SAC5B0L,GACJ,CAAG,EACD37Q,EAAG,gBAAiB,CAACivR,EAASp9P,IAAa,CACpCo+O,EAAO,OAAO,SAAS,SAC5BqM,EAAczqP,CAAQ,CAC1B,CAAG,CACH,CCtHA,SAASq9P,IAAK1rO,EAAM,CAClB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,CACD,EAAGnwN,EACJ,MAAMj/C,EAAS4rD,KACfkkN,EAAa,CACX,KAAM,CACJ,QAAS,GACT,oBAAqB,GACrB,SAAU,EACV,SAAU,EACV,eAAgB,GAChB,OAAQ,GACR,eAAgB,wBAChB,iBAAkB,qBACnB,CACL,CAAG,EACDpE,EAAO,KAAO,CACZ,QAAS,EACb,EACE,IAAI2e,EAAe,EACfO,EAAY,GACZC,EAAqB,GACrBC,EAAgB,CAClB,EAAG,EACH,EAAG,CACP,EACE,MAAMC,EAAsB,GAC5B,IAAIC,EACAC,EACJ,MAAMC,EAAU,GACVC,EAAU,CACd,QAAS,EACT,QAAS,EACT,QAAS,OACT,WAAY,OACZ,YAAa,OACb,QAAS,OACT,YAAa,OACb,SAAU,CACd,EACQlqF,EAAQ,CACZ,UAAW,OACX,QAAS,OACT,SAAU,OACV,SAAU,OACV,KAAM,OACN,KAAM,OACN,KAAM,OACN,KAAM,OACN,MAAO,OACP,OAAQ,OACR,OAAQ,OACR,OAAQ,OACR,aAAc,CAAE,EAChB,eAAgB,CAAE,CACtB,EACQs8D,EAAW,CACf,EAAG,OACH,EAAG,OACH,cAAe,OACf,cAAe,OACf,SAAU,MACd,EACE,IAAIpoP,EAAQ,EACZ,OAAO,eAAeu2P,EAAO,KAAM,QAAS,CAC1C,KAAM,CACJ,OAAOv2P,CACR,EACD,IAAI9vB,EAAO,CACT,GAAI8vB,IAAU9vB,EAAO,CACnB,MAAMuwR,GAAUuV,EAAQ,QAClBjf,GAAUif,EAAQ,QACxB/b,EAAK,aAAc/pR,EAAOuwR,GAAS1J,EAAO,CAC3C,CACD/2P,EAAQ9vB,CACT,CACL,CAAG,EACD,SAAS+lS,GAA4B,CACnC,GAAIF,EAAQ,OAAS,EAAG,MAAO,GAC/B,MAAMG,EAAKH,EAAQ,CAAC,EAAE,MAChBI,GAAKJ,EAAQ,CAAC,EAAE,MAChBK,GAAKL,EAAQ,CAAC,EAAE,MAChBM,GAAKN,EAAQ,CAAC,EAAE,MAEtB,OADiB,KAAK,MAAMK,GAAKF,IAAO,GAAKG,GAAKF,KAAO,CAAC,CAE3D,CACD,SAASG,GAAc,CACrB,MAAMjjQ,EAASkjP,EAAO,OAAO,KACvBggB,GAAWP,EAAQ,YAAY,aAAa,kBAAkB,GAAK3iQ,EAAO,SAChF,GAAIA,EAAO,qBAAuB2iQ,EAAQ,SAAWA,EAAQ,QAAQ,aAAc,CACjF,MAAMQ,GAAgBR,EAAQ,QAAQ,aAAeA,EAAQ,QAAQ,YACrE,OAAO,KAAK,IAAIQ,GAAeD,EAAQ,CACxC,CACD,OAAOA,EACR,CACD,SAASE,GAAiB,CACxB,GAAIV,EAAQ,OAAS,EAAG,MAAO,CAC7B,EAAG,KACH,EAAG,IACT,EACI,MAAM9tQ,EAAM+tQ,EAAQ,QAAQ,sBAAqB,EACjD,MAAO,EAAED,EAAQ,CAAC,EAAE,OAASA,EAAQ,CAAC,EAAE,MAAQA,EAAQ,CAAC,EAAE,OAAS,EAAI9tQ,EAAI,EAAIpd,EAAO,SAAWqqR,GAAea,EAAQ,CAAC,EAAE,OAASA,EAAQ,CAAC,EAAE,MAAQA,EAAQ,CAAC,EAAE,OAAS,EAAI9tQ,EAAI,EAAIpd,EAAO,SAAWqqR,CAAY,CACvN,CACD,SAASwB,GAAmB,CAC1B,OAAOngB,EAAO,UAAY,eAAiB,IAAIA,EAAO,OAAO,UAAU,EACxE,CACD,SAASogB,EAAiBtzR,EAAG,CAC3B,MAAMq9Q,GAAgBgW,IAEtB,MADI,GAAArzR,EAAE,OAAO,QAAQq9Q,EAAa,GAC9BnK,EAAO,OAAO,OAAOQ,IAAWA,GAAQ,SAAS1zQ,EAAE,MAAM,CAAC,EAAE,OAAS,EAE1E,CACD,SAASuzR,EAAyBvzR,EAAG,CACnC,MAAMnO,GAAW,IAAIqhR,EAAO,OAAO,KAAK,cAAc,GAEtD,MADI,GAAAlzQ,EAAE,OAAO,QAAQnO,EAAQ,GACzB,CAAC,GAAGqhR,EAAO,OAAO,iBAAiBrhR,EAAQ,CAAC,EAAE,OAAOq1R,IAAeA,GAAY,SAASlnR,EAAE,MAAM,CAAC,EAAE,OAAS,EAElH,CAGD,SAASwzR,EAAexzR,EAAG,CAIzB,GAHIA,EAAE,cAAgB,SACpB0yR,EAAQ,OAAO,EAAGA,EAAQ,MAAM,EAE9B,CAACY,EAAiBtzR,CAAC,EAAG,OAC1B,MAAMgwB,GAASkjP,EAAO,OAAO,KAI7B,GAHAsf,EAAqB,GACrBC,EAAmB,GACnBC,EAAQ,KAAK1yR,CAAC,EACV,EAAA0yR,EAAQ,OAAS,GAKrB,IAFAF,EAAqB,GACrBG,EAAQ,WAAaC,IACjB,CAACD,EAAQ,QAAS,CACpBA,EAAQ,QAAU3yR,EAAE,OAAO,QAAQ,IAAIkzQ,EAAO,OAAO,UAAU,gBAAgB,EAC1Eyf,EAAQ,UAASA,EAAQ,QAAUzf,EAAO,OAAOA,EAAO,WAAW,GACxE,IAAIkK,GAAUuV,EAAQ,QAAQ,cAAc,IAAI3iQ,GAAO,cAAc,EAAE,EAUvE,GATIotP,KACFA,GAAUA,GAAQ,iBAAiB,gDAAgD,EAAE,CAAC,GAExFuV,EAAQ,QAAUvV,GACdA,GACFuV,EAAQ,YAAc9d,GAAe8d,EAAQ,QAAS,IAAI3iQ,GAAO,cAAc,EAAE,EAAE,CAAC,EAEpF2iQ,EAAQ,YAAc,OAEpB,CAACA,EAAQ,YAAa,CACxBA,EAAQ,QAAU,OAClB,MACD,CACDA,EAAQ,SAAWM,GACpB,CACD,GAAIN,EAAQ,QAAS,CACnB,KAAM,CAACc,GAASC,EAAO,EAAIN,EAAc,EACzCT,EAAQ,QAAUc,GAClBd,EAAQ,QAAUe,GAClBf,EAAQ,QAAQ,MAAM,mBAAqB,KAC5C,CACDP,EAAY,GACb,CACD,SAASuB,EAAgB3zR,EAAG,CAC1B,GAAI,CAACszR,EAAiBtzR,CAAC,EAAG,OAC1B,MAAMgwB,GAASkjP,EAAO,OAAO,KACvBlP,GAAOkP,EAAO,KACdrK,GAAe6pB,EAAQ,UAAUkB,IAAYA,GAAS,YAAc5zR,EAAE,SAAS,EACjF6oQ,IAAgB,IAAG6pB,EAAQ7pB,EAAY,EAAI7oQ,GAC3C,EAAA0yR,EAAQ,OAAS,KAGrBD,EAAmB,GACnBE,EAAQ,UAAYC,IACfD,EAAQ,UAGb3uB,GAAK,MAAQ2uB,EAAQ,UAAYA,EAAQ,WAAad,EAClD7tB,GAAK,MAAQ2uB,EAAQ,WACvB3uB,GAAK,MAAQ2uB,EAAQ,SAAW,GAAK3uB,GAAK,MAAQ2uB,EAAQ,SAAW,IAAM,IAEzE3uB,GAAK,MAAQh0O,GAAO,WACtBg0O,GAAK,MAAQh0O,GAAO,SAAW,GAAKA,GAAO,SAAWg0O,GAAK,MAAQ,IAAM,IAE3E2uB,EAAQ,QAAQ,MAAM,UAAY,4BAA4B3uB,GAAK,KAAK,KACzE,CACD,SAAS6vB,EAAa7zR,EAAG,CAEvB,GADI,CAACszR,EAAiBtzR,CAAC,GACnBA,EAAE,cAAgB,SAAWA,EAAE,OAAS,aAAc,OAC1D,MAAMgwB,GAASkjP,EAAO,OAAO,KACvBlP,GAAOkP,EAAO,KACdrK,GAAe6pB,EAAQ,UAAUkB,IAAYA,GAAS,YAAc5zR,EAAE,SAAS,EACjF6oQ,IAAgB,GAAG6pB,EAAQ,OAAO7pB,GAAc,CAAC,EACjD,GAAC2pB,GAAsB,CAACC,KAG5BD,EAAqB,GACrBC,EAAmB,GACdE,EAAQ,UACb3uB,GAAK,MAAQ,KAAK,IAAI,KAAK,IAAIA,GAAK,MAAO2uB,EAAQ,QAAQ,EAAG3iQ,GAAO,QAAQ,EAC7E2iQ,EAAQ,QAAQ,MAAM,mBAAqB,GAAGzf,EAAO,OAAO,KAAK,KACjEyf,EAAQ,QAAQ,MAAM,UAAY,4BAA4B3uB,GAAK,KAAK,IACxE6tB,EAAe7tB,GAAK,MACpBouB,EAAY,GACRpuB,GAAK,MAAQ,GAAK2uB,EAAQ,QAC5BA,EAAQ,QAAQ,UAAU,IAAI,GAAG3iQ,GAAO,gBAAgB,EAAE,EACjDg0O,GAAK,OAAS,GAAK2uB,EAAQ,SACpCA,EAAQ,QAAQ,UAAU,OAAO,GAAG3iQ,GAAO,gBAAgB,EAAE,EAE3Dg0O,GAAK,QAAU,IACjB2uB,EAAQ,QAAU,EAClBA,EAAQ,QAAU,EAClBA,EAAQ,QAAU,SAErB,CACD,IAAImB,EACJ,SAASjuM,GAAiB,CACxBqtL,EAAO,gBAAgB,gCAAkC,EAC1D,CACD,SAASttL,GAAmB,CAC1B,aAAakuM,CAAqB,EAClC5gB,EAAO,gBAAgB,gCAAkC,GACzD4gB,EAAwB,WAAW,IAAM,CACnC5gB,EAAO,WACXrtL,GACN,CAAK,CACF,CACD,SAASV,EAAanlF,EAAG,CACvB,MAAM+tL,GAASmlF,EAAO,OAEtB,GADI,CAACyf,EAAQ,SACTlqF,EAAM,UAAW,OACjB1a,GAAO,SAAW/tL,EAAE,YAAYA,EAAE,iBACtCyoM,EAAM,UAAY,GAClB,MAAM/7M,GAAQgmS,EAAQ,OAAS,EAAIA,EAAQ,CAAC,EAAI1yR,EAChDyoM,EAAM,aAAa,EAAI/7M,GAAM,MAC7B+7M,EAAM,aAAa,EAAI/7M,GAAM,KAC9B,CACD,SAAS04F,GAAYplF,EAAG,CAEtB,MAAM+zR,GADe/zR,EAAE,cAAgB,SACJkzQ,EAAO,OAAO,KAAK,eACtD,GAAI,CAACogB,EAAiBtzR,CAAC,GAAK,CAACuzR,EAAyBvzR,CAAC,EACrD,OAEF,MAAMgkQ,GAAOkP,EAAO,KACpB,GAAI,CAACyf,EAAQ,QACX,OAEF,GAAI,CAAClqF,EAAM,WAAa,CAACkqF,EAAQ,QAAS,CACpCoB,IAAYC,GAAYh0R,CAAC,EAC7B,MACD,CACD,GAAI+zR,GAAY,CACdC,GAAYh0R,CAAC,EACb,MACD,CACIyoM,EAAM,UACTA,EAAM,MAAQkqF,EAAQ,QAAQ,aAAeA,EAAQ,QAAQ,YAC7DlqF,EAAM,OAASkqF,EAAQ,QAAQ,cAAgBA,EAAQ,QAAQ,aAC/DlqF,EAAM,OAAS6pE,GAAaqgB,EAAQ,YAAa,GAAG,GAAK,EACzDlqF,EAAM,OAAS6pE,GAAaqgB,EAAQ,YAAa,GAAG,GAAK,EACzDA,EAAQ,WAAaA,EAAQ,QAAQ,YACrCA,EAAQ,YAAcA,EAAQ,QAAQ,aACtCA,EAAQ,YAAY,MAAM,mBAAqB,OAGjD,MAAMsB,GAAcxrF,EAAM,MAAQu7D,GAAK,MACjCkwB,GAAezrF,EAAM,OAASu7D,GAAK,MAWzC,GAVAv7D,EAAM,KAAO,KAAK,IAAIkqF,EAAQ,WAAa,EAAIsB,GAAc,EAAG,CAAC,EACjExrF,EAAM,KAAO,CAACA,EAAM,KACpBA,EAAM,KAAO,KAAK,IAAIkqF,EAAQ,YAAc,EAAIuB,GAAe,EAAG,CAAC,EACnEzrF,EAAM,KAAO,CAACA,EAAM,KACpBA,EAAM,eAAe,EAAIiqF,EAAQ,OAAS,EAAIA,EAAQ,CAAC,EAAE,MAAQ1yR,EAAE,MACnEyoM,EAAM,eAAe,EAAIiqF,EAAQ,OAAS,EAAIA,EAAQ,CAAC,EAAE,MAAQ1yR,EAAE,MAC/C,KAAK,IAAI,KAAK,IAAIyoM,EAAM,eAAe,EAAIA,EAAM,aAAa,CAAC,EAAG,KAAK,IAAIA,EAAM,eAAe,EAAIA,EAAM,aAAa,CAAC,CAAC,EAC3H,IAChByqE,EAAO,WAAa,IAElB,CAACzqE,EAAM,SAAW,CAAC2pF,EAAW,CAChC,GAAIlf,EAAO,aAAc,IAAK,KAAK,MAAMzqE,EAAM,IAAI,IAAM,KAAK,MAAMA,EAAM,MAAM,GAAKA,EAAM,eAAe,EAAIA,EAAM,aAAa,GAAK,KAAK,MAAMA,EAAM,IAAI,IAAM,KAAK,MAAMA,EAAM,MAAM,GAAKA,EAAM,eAAe,EAAIA,EAAM,aAAa,GAAI,CAC3OA,EAAM,UAAY,GAClB5iH,IACA,MACD,CACD,GAAI,CAACqtL,EAAO,aAAY,IAAO,KAAK,MAAMzqE,EAAM,IAAI,IAAM,KAAK,MAAMA,EAAM,MAAM,GAAKA,EAAM,eAAe,EAAIA,EAAM,aAAa,GAAK,KAAK,MAAMA,EAAM,IAAI,IAAM,KAAK,MAAMA,EAAM,MAAM,GAAKA,EAAM,eAAe,EAAIA,EAAM,aAAa,GAAI,CAC5OA,EAAM,UAAY,GAClB5iH,IACA,MACD,CACF,CACG7lF,EAAE,YACJA,EAAE,eAAc,EAElBA,EAAE,gBAAe,EACjB4lF,IACA6iH,EAAM,QAAU,GAChB,MAAM0rF,IAAcnwB,GAAK,MAAQ6tB,IAAiBc,EAAQ,SAAWzf,EAAO,OAAO,KAAK,UAClF,CACJ,QAAAugB,GACA,QAAAC,EACD,EAAGf,EACJlqF,EAAM,SAAWA,EAAM,eAAe,EAAIA,EAAM,aAAa,EAAIA,EAAM,OAAS0rF,IAAc1rF,EAAM,MAAQgrF,GAAU,GACtHhrF,EAAM,SAAWA,EAAM,eAAe,EAAIA,EAAM,aAAa,EAAIA,EAAM,OAAS0rF,IAAc1rF,EAAM,OAASirF,GAAU,GACnHjrF,EAAM,SAAWA,EAAM,OACzBA,EAAM,SAAWA,EAAM,KAAO,GAAKA,EAAM,KAAOA,EAAM,SAAW,IAAM,IAErEA,EAAM,SAAWA,EAAM,OACzBA,EAAM,SAAWA,EAAM,KAAO,GAAKA,EAAM,SAAWA,EAAM,KAAO,IAAM,IAErEA,EAAM,SAAWA,EAAM,OACzBA,EAAM,SAAWA,EAAM,KAAO,GAAKA,EAAM,KAAOA,EAAM,SAAW,IAAM,IAErEA,EAAM,SAAWA,EAAM,OACzBA,EAAM,SAAWA,EAAM,KAAO,GAAKA,EAAM,SAAWA,EAAM,KAAO,IAAM,IAIpEs8D,EAAS,gBAAeA,EAAS,cAAgBt8D,EAAM,eAAe,GACtEs8D,EAAS,gBAAeA,EAAS,cAAgBt8D,EAAM,eAAe,GACtEs8D,EAAS,WAAUA,EAAS,SAAW,KAAK,OACjDA,EAAS,GAAKt8D,EAAM,eAAe,EAAIs8D,EAAS,gBAAkB,KAAK,IAAK,EAAGA,EAAS,UAAY,EACpGA,EAAS,GAAKt8D,EAAM,eAAe,EAAIs8D,EAAS,gBAAkB,KAAK,IAAK,EAAGA,EAAS,UAAY,EAChG,KAAK,IAAIt8D,EAAM,eAAe,EAAIs8D,EAAS,aAAa,EAAI,IAAGA,EAAS,EAAI,GAC5E,KAAK,IAAIt8D,EAAM,eAAe,EAAIs8D,EAAS,aAAa,EAAI,IAAGA,EAAS,EAAI,GAChFA,EAAS,cAAgBt8D,EAAM,eAAe,EAC9Cs8D,EAAS,cAAgBt8D,EAAM,eAAe,EAC9Cs8D,EAAS,SAAW,KAAK,MACzB4tB,EAAQ,YAAY,MAAM,UAAY,eAAelqF,EAAM,QAAQ,OAAOA,EAAM,QAAQ,OACzF,CACD,SAASk8E,IAAa,CACpB,MAAM3gB,EAAOkP,EAAO,KAEpB,GADAwf,EAAQ,OAAS,EACb,CAACC,EAAQ,QAAS,OACtB,GAAI,CAAClqF,EAAM,WAAa,CAACA,EAAM,QAAS,CACtCA,EAAM,UAAY,GAClBA,EAAM,QAAU,GAChB,MACD,CACDA,EAAM,UAAY,GAClBA,EAAM,QAAU,GAChB,IAAI2rF,GAAoB,IACpBC,GAAoB,IACxB,MAAMC,GAAoBvvB,EAAS,EAAIqvB,GACjCG,GAAe9rF,EAAM,SAAW6rF,GAChCE,GAAoBzvB,EAAS,EAAIsvB,GACjCI,GAAehsF,EAAM,SAAW+rF,GAGlCzvB,EAAS,IAAM,IAAGqvB,GAAoB,KAAK,KAAKG,GAAe9rF,EAAM,UAAYs8D,EAAS,CAAC,GAC3FA,EAAS,IAAM,IAAGsvB,GAAoB,KAAK,KAAKI,GAAehsF,EAAM,UAAYs8D,EAAS,CAAC,GAC/F,MAAM2vB,GAAmB,KAAK,IAAIN,GAAmBC,EAAiB,EACtE5rF,EAAM,SAAW8rF,GACjB9rF,EAAM,SAAWgsF,GAEjB,MAAMR,GAAcxrF,EAAM,MAAQu7D,EAAK,MACjCkwB,GAAezrF,EAAM,OAASu7D,EAAK,MACzCv7D,EAAM,KAAO,KAAK,IAAIkqF,EAAQ,WAAa,EAAIsB,GAAc,EAAG,CAAC,EACjExrF,EAAM,KAAO,CAACA,EAAM,KACpBA,EAAM,KAAO,KAAK,IAAIkqF,EAAQ,YAAc,EAAIuB,GAAe,EAAG,CAAC,EACnEzrF,EAAM,KAAO,CAACA,EAAM,KACpBA,EAAM,SAAW,KAAK,IAAI,KAAK,IAAIA,EAAM,SAAUA,EAAM,IAAI,EAAGA,EAAM,IAAI,EAC1EA,EAAM,SAAW,KAAK,IAAI,KAAK,IAAIA,EAAM,SAAUA,EAAM,IAAI,EAAGA,EAAM,IAAI,EAC1EkqF,EAAQ,YAAY,MAAM,mBAAqB,GAAG+B,EAAgB,KAClE/B,EAAQ,YAAY,MAAM,UAAY,eAAelqF,EAAM,QAAQ,OAAOA,EAAM,QAAQ,OACzF,CACD,SAASksF,IAAkB,CACzB,MAAM3wB,EAAOkP,EAAO,KAChByf,EAAQ,SAAWzf,EAAO,cAAgBA,EAAO,OAAO,QAAQyf,EAAQ,OAAO,IAC7EA,EAAQ,UACVA,EAAQ,QAAQ,MAAM,UAAY,+BAEhCA,EAAQ,cACVA,EAAQ,YAAY,MAAM,UAAY,sBAExCA,EAAQ,QAAQ,UAAU,OAAO,GAAGzf,EAAO,OAAO,KAAK,gBAAgB,EAAE,EACzElP,EAAK,MAAQ,EACb6tB,EAAe,EACfc,EAAQ,QAAU,OAClBA,EAAQ,QAAU,OAClBA,EAAQ,YAAc,OACtBA,EAAQ,QAAU,EAClBA,EAAQ,QAAU,EAErB,CACD,SAASqB,GAAYh0R,EAAG,CAGtB,GADI6xR,GAAgB,GAAK,CAACc,EAAQ,aAC9B,CAACW,EAAiBtzR,CAAC,GAAK,CAACuzR,EAAyBvzR,CAAC,EAAG,OAC1D,MAAMy5Q,GAAmBjyQ,EAAO,iBAAiBmrR,EAAQ,WAAW,EAAE,UAChElpI,GAAS,IAAIjiJ,EAAO,UAAUiyQ,EAAgB,EACpD,GAAI,CAAC4Y,EAAoB,CACvBA,EAAqB,GACrBC,EAAc,EAAItyR,EAAE,QACpBsyR,EAAc,EAAItyR,EAAE,QACpByoM,EAAM,OAASh/C,GAAO,EACtBg/C,EAAM,OAASh/C,GAAO,EACtBg/C,EAAM,MAAQkqF,EAAQ,QAAQ,aAAeA,EAAQ,QAAQ,YAC7DlqF,EAAM,OAASkqF,EAAQ,QAAQ,cAAgBA,EAAQ,QAAQ,aAC/DA,EAAQ,WAAaA,EAAQ,QAAQ,YACrCA,EAAQ,YAAcA,EAAQ,QAAQ,aACtC,MACD,CACD,MAAMnoM,IAAUxqF,EAAE,QAAUsyR,EAAc,GAAKC,EACzCltM,IAAUrlF,EAAE,QAAUsyR,EAAc,GAAKC,EACzC0B,GAAcxrF,EAAM,MAAQopF,EAC5BqC,GAAezrF,EAAM,OAASopF,EAC9BruR,GAAamvR,EAAQ,WACrBiC,GAAcjC,EAAQ,YACtBkC,GAAO,KAAK,IAAIrxR,GAAa,EAAIywR,GAAc,EAAG,CAAC,EACnDa,GAAO,CAACD,GACRE,GAAO,KAAK,IAAIH,GAAc,EAAIV,GAAe,EAAG,CAAC,EACrDc,GAAO,CAACD,GACRE,GAAO,KAAK,IAAI,KAAK,IAAIxsF,EAAM,OAASj+G,GAAQsqM,EAAI,EAAGD,EAAI,EAC3DK,GAAO,KAAK,IAAI,KAAK,IAAIzsF,EAAM,OAASpjH,GAAQ2vM,EAAI,EAAGD,EAAI,EACjEpC,EAAQ,YAAY,MAAM,mBAAqB,MAC/CA,EAAQ,YAAY,MAAM,UAAY,eAAesC,EAAI,OAAOC,EAAI,SACpE5C,EAAc,EAAItyR,EAAE,QACpBsyR,EAAc,EAAItyR,EAAE,QACpByoM,EAAM,OAASwsF,GACfxsF,EAAM,OAASysF,GACfzsF,EAAM,SAAWwsF,GACjBxsF,EAAM,SAAWysF,EAClB,CACD,SAASC,GAAOn1R,EAAG,CACjB,MAAMgkQ,GAAOkP,EAAO,KACdljP,GAASkjP,EAAO,OAAO,KAC7B,GAAI,CAACyf,EAAQ,QAAS,CAChB3yR,GAAKA,EAAE,SACT2yR,EAAQ,QAAU3yR,EAAE,OAAO,QAAQ,IAAIkzQ,EAAO,OAAO,UAAU,gBAAgB,GAE5Eyf,EAAQ,UACPzf,EAAO,OAAO,SAAWA,EAAO,OAAO,QAAQ,SAAWA,EAAO,QACnEyf,EAAQ,QAAUhf,GAAgBT,EAAO,SAAU,IAAIA,EAAO,OAAO,gBAAgB,EAAE,EAAE,CAAC,EAE1Fyf,EAAQ,QAAUzf,EAAO,OAAOA,EAAO,WAAW,GAGtD,IAAIkK,GAAUuV,EAAQ,QAAQ,cAAc,IAAI3iQ,GAAO,cAAc,EAAE,EACnEotP,KACFA,GAAUA,GAAQ,iBAAiB,gDAAgD,EAAE,CAAC,GAExFuV,EAAQ,QAAUvV,GACdA,GACFuV,EAAQ,YAAc9d,GAAe8d,EAAQ,QAAS,IAAI3iQ,GAAO,cAAc,EAAE,EAAE,CAAC,EAEpF2iQ,EAAQ,YAAc,MAEzB,CACD,GAAI,CAACA,EAAQ,SAAW,CAACA,EAAQ,YAAa,OAC1Czf,EAAO,OAAO,UAChBA,EAAO,UAAU,MAAM,SAAW,SAClCA,EAAO,UAAU,MAAM,YAAc,QAEvCyf,EAAQ,QAAQ,UAAU,IAAI,GAAG3iQ,GAAO,gBAAgB,EAAE,EAC1D,IAAIolQ,GACAC,GACAhnB,GACAC,GACA2V,GACAC,GACAoR,GACAC,GACArnB,GACAC,GACA8lB,GACAC,GACAsB,GACAC,GACAC,GACAC,GACAnyR,GACAoxR,GACA,OAAOnsF,EAAM,aAAa,EAAM,KAAezoM,GACjDo1R,GAASp1R,EAAE,MACXq1R,GAASr1R,EAAE,QAEXo1R,GAAS3sF,EAAM,aAAa,EAC5B4sF,GAAS5sF,EAAM,aAAa,GAE9B,MAAMmtF,GAAY/D,EACZgE,GAAiB,OAAO71R,GAAM,SAAWA,EAAI,KAC/C6xR,IAAiB,GAAKgE,KACxBT,GAAS,OACTC,GAAS,OACT5sF,EAAM,aAAa,EAAI,OACvBA,EAAM,aAAa,EAAI,QAEzB,MAAMyqF,GAAWD,IACjBjvB,GAAK,MAAQ6xB,IAAkB3C,GAC/BrB,EAAegE,IAAkB3C,GAC7BlzR,GAAK,EAAE6xR,IAAiB,GAAKgE,KAC/BryR,GAAamvR,EAAQ,QAAQ,YAC7BiC,GAAcjC,EAAQ,QAAQ,aAC9BtkB,GAAU8F,GAAcwe,EAAQ,OAAO,EAAE,KAAOnrR,EAAO,QACvD8mQ,GAAU6F,GAAcwe,EAAQ,OAAO,EAAE,IAAMnrR,EAAO,QACtDy8Q,GAAQ5V,GAAU7qQ,GAAa,EAAI4xR,GACnClR,GAAQ5V,GAAUsmB,GAAc,EAAIS,GACpCnnB,GAAaykB,EAAQ,QAAQ,aAAeA,EAAQ,QAAQ,YAC5DxkB,GAAcwkB,EAAQ,QAAQ,cAAgBA,EAAQ,QAAQ,aAC9DsB,GAAc/lB,GAAalK,GAAK,MAChCkwB,GAAe/lB,GAAcnK,GAAK,MAClCwxB,GAAgB,KAAK,IAAIhyR,GAAa,EAAIywR,GAAc,EAAG,CAAC,EAC5DwB,GAAgB,KAAK,IAAIb,GAAc,EAAIV,GAAe,EAAG,CAAC,EAC9DwB,GAAgB,CAACF,GACjBG,GAAgB,CAACF,GACbG,GAAY,GAAKC,IAAkB,OAAOptF,EAAM,UAAa,UAAY,OAAOA,EAAM,UAAa,UACrG6sF,GAAa7sF,EAAM,SAAWu7D,GAAK,MAAQ4xB,GAC3CL,GAAa9sF,EAAM,SAAWu7D,GAAK,MAAQ4xB,KAE3CN,GAAarR,GAAQjgB,GAAK,MAC1BuxB,GAAarR,GAAQlgB,GAAK,OAExBsxB,GAAaE,KACfF,GAAaE,IAEXF,GAAaI,KACfJ,GAAaI,IAEXH,GAAaE,KACfF,GAAaE,IAEXF,GAAaI,KACfJ,GAAaI,MAGfL,GAAa,EACbC,GAAa,GAEXM,IAAkB7xB,GAAK,QAAU,IACnC2uB,EAAQ,QAAU,EAClBA,EAAQ,QAAU,GAEpBlqF,EAAM,SAAW6sF,GACjB7sF,EAAM,SAAW8sF,GACjB5C,EAAQ,YAAY,MAAM,mBAAqB,QAC/CA,EAAQ,YAAY,MAAM,UAAY,eAAe2C,EAAU,OAAOC,EAAU,QAChF5C,EAAQ,QAAQ,MAAM,mBAAqB,QAC3CA,EAAQ,QAAQ,MAAM,UAAY,4BAA4B3uB,GAAK,KAAK,GACzE,CACD,SAAS8xB,IAAU,CACjB,MAAM9xB,EAAOkP,EAAO,KACdljP,GAASkjP,EAAO,OAAO,KAC7B,GAAI,CAACyf,EAAQ,QAAS,CAChBzf,EAAO,OAAO,SAAWA,EAAO,OAAO,QAAQ,SAAWA,EAAO,QACnEyf,EAAQ,QAAUhf,GAAgBT,EAAO,SAAU,IAAIA,EAAO,OAAO,gBAAgB,EAAE,EAAE,CAAC,EAE1Fyf,EAAQ,QAAUzf,EAAO,OAAOA,EAAO,WAAW,EAEpD,IAAIkK,GAAUuV,EAAQ,QAAQ,cAAc,IAAI3iQ,GAAO,cAAc,EAAE,EACnEotP,KACFA,GAAUA,GAAQ,iBAAiB,gDAAgD,EAAE,CAAC,GAExFuV,EAAQ,QAAUvV,GACdA,GACFuV,EAAQ,YAAc9d,GAAe8d,EAAQ,QAAS,IAAI3iQ,GAAO,cAAc,EAAE,EAAE,CAAC,EAEpF2iQ,EAAQ,YAAc,MAEzB,CACG,CAACA,EAAQ,SAAW,CAACA,EAAQ,cAC7Bzf,EAAO,OAAO,UAChBA,EAAO,UAAU,MAAM,SAAW,GAClCA,EAAO,UAAU,MAAM,YAAc,IAEvClP,EAAK,MAAQ,EACb6tB,EAAe,EACfppF,EAAM,SAAW,OACjBA,EAAM,SAAW,OACjBA,EAAM,aAAa,EAAI,OACvBA,EAAM,aAAa,EAAI,OACvBkqF,EAAQ,YAAY,MAAM,mBAAqB,QAC/CA,EAAQ,YAAY,MAAM,UAAY,qBACtCA,EAAQ,QAAQ,MAAM,mBAAqB,QAC3CA,EAAQ,QAAQ,MAAM,UAAY,8BAClCA,EAAQ,QAAQ,UAAU,OAAO,GAAG3iQ,GAAO,gBAAgB,EAAE,EAC7D2iQ,EAAQ,QAAU,OAClBA,EAAQ,QAAU,EAClBA,EAAQ,QAAU,EACdzf,EAAO,OAAO,KAAK,iBACrBof,EAAgB,CACd,EAAG,EACH,EAAG,CACX,EACUD,IACFA,EAAqB,GACrB5pF,EAAM,OAAS,EACfA,EAAM,OAAS,IAGpB,CAGD,SAASstF,GAAW/1R,EAAG,CACrB,MAAMgkQ,GAAOkP,EAAO,KAChBlP,GAAK,OAASA,GAAK,QAAU,EAE/B8xB,KAGAX,GAAOn1R,CAAC,CAEX,CACD,SAASg2R,IAAe,CACtB,MAAM5E,EAAkBle,EAAO,OAAO,iBAAmB,CACvD,QAAS,GACT,QAAS,EACV,EAAG,GACE+iB,GAA4B/iB,EAAO,OAAO,iBAAmB,CACjE,QAAS,GACT,QAAS,EACV,EAAG,GACJ,MAAO,CACL,gBAAAke,EACA,0BAAA6E,EACN,CACG,CAGD,SAAS7J,IAAS,CAChB,MAAMpoB,EAAOkP,EAAO,KACpB,GAAIlP,EAAK,QAAS,OAClBA,EAAK,QAAU,GACf,KAAM,CACJ,gBAAAotB,GACA,0BAAA6E,EACD,EAAGD,GAAY,EAGhB9iB,EAAO,UAAU,iBAAiB,cAAesgB,EAAgBpC,EAAe,EAChFle,EAAO,UAAU,iBAAiB,cAAeygB,EAAiBsC,EAAyB,EAC3F,CAAC,YAAa,gBAAiB,YAAY,EAAE,QAAQzmS,IAAa,CAChE0jR,EAAO,UAAU,iBAAiB1jR,GAAWqkS,EAAczC,EAAe,CAChF,CAAK,EAGDle,EAAO,UAAU,iBAAiB,cAAe9tL,GAAa6wM,EAAyB,CACxF,CACD,SAAS5J,IAAU,CACjB,MAAMroB,EAAOkP,EAAO,KACpB,GAAI,CAAClP,EAAK,QAAS,OACnBA,EAAK,QAAU,GACf,KAAM,CACJ,gBAAAotB,GACA,0BAAA6E,EACD,EAAGD,GAAY,EAGhB9iB,EAAO,UAAU,oBAAoB,cAAesgB,EAAgBpC,EAAe,EACnFle,EAAO,UAAU,oBAAoB,cAAeygB,EAAiBsC,EAAyB,EAC9F,CAAC,YAAa,gBAAiB,YAAY,EAAE,QAAQzmS,IAAa,CAChE0jR,EAAO,UAAU,oBAAoB1jR,GAAWqkS,EAAczC,EAAe,CACnF,CAAK,EAGDle,EAAO,UAAU,oBAAoB,cAAe9tL,GAAa6wM,EAAyB,CAC3F,CACDhzR,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,KAAK,SACrBkZ,IAEN,CAAG,EACDnpR,EAAG,UAAW,IAAM,CAClBopR,IACJ,CAAG,EACDppR,EAAG,aAAc,CAAC6rL,EAAI9uL,KAAM,CACrBkzQ,EAAO,KAAK,SACjB/tL,EAAanlF,EAAC,CAClB,CAAG,EACDiD,EAAG,WAAY,CAAC6rL,EAAI9uL,KAAM,CACnBkzQ,EAAO,KAAK,SACjByR,IACJ,CAAG,EACD1hR,EAAG,YAAa,CAAC6rL,EAAI9uL,KAAM,CACrB,CAACkzQ,EAAO,WAAaA,EAAO,OAAO,KAAK,SAAWA,EAAO,KAAK,SAAWA,EAAO,OAAO,KAAK,QAC/F6iB,GAAW/1R,EAAC,CAElB,CAAG,EACDiD,EAAG,gBAAiB,IAAM,CACpBiwQ,EAAO,KAAK,SAAWA,EAAO,OAAO,KAAK,SAC5CyhB,IAEN,CAAG,EACD1xR,EAAG,cAAe,IAAM,CAClBiwQ,EAAO,KAAK,SAAWA,EAAO,OAAO,KAAK,SAAWA,EAAO,OAAO,SACrEyhB,IAEN,CAAG,EACD,OAAO,OAAOzhB,EAAO,KAAM,CACzB,OAAAkZ,GACA,QAAAC,GACA,GAAI8I,GACJ,IAAKW,GACL,OAAQC,EACZ,CAAG,CACH,CCvrBA,SAAShyE,IAAWt9J,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,WAAY,CACV,QAAS,OACT,QAAS,GACT,GAAI,OACL,CACL,CAAG,EAEDpE,EAAO,WAAa,CAClB,QAAS,MACb,EACE,SAASgjB,EAAatgS,EAAGC,EAAG,CAC1B,MAAMsgS,EAAe,UAAkB,CACrC,IAAIC,EACAC,EACAjyG,EACJ,MAAO,CAACt8K,EAAOc,IAAQ,CAGrB,IAFAytR,EAAW,GACXD,EAAWtuR,EAAM,OACVsuR,EAAWC,EAAW,GAC3BjyG,EAAQgyG,EAAWC,GAAY,EAC3BvuR,EAAMs8K,CAAK,GAAKx7K,EAClBytR,EAAWjyG,EAEXgyG,EAAWhyG,EAGf,OAAOgyG,CACf,CACA,IACI,KAAK,EAAIxgS,EACT,KAAK,EAAIC,EACT,KAAK,UAAYD,EAAE,OAAS,EAI5B,IAAI0gS,EACAC,EACJ,YAAK,YAAc,SAAqBxD,EAAI,CAC1C,OAAKA,GAGLwD,EAAKJ,EAAa,KAAK,EAAGpD,CAAE,EAC5BuD,EAAKC,EAAK,GAIFxD,EAAK,KAAK,EAAEuD,CAAE,IAAM,KAAK,EAAEC,CAAE,EAAI,KAAK,EAAED,CAAE,IAAM,KAAK,EAAEC,CAAE,EAAI,KAAK,EAAED,CAAE,GAAK,KAAK,EAAEA,CAAE,GAR5E,CAStB,EACW,IACR,CACD,SAASE,EAAuBz0R,EAAG,CACjCmxQ,EAAO,WAAW,OAASA,EAAO,OAAO,KAAO,IAAIgjB,EAAahjB,EAAO,WAAYnxQ,EAAE,UAAU,EAAI,IAAIm0R,EAAahjB,EAAO,SAAUnxQ,EAAE,QAAQ,CACjJ,CACD,SAAS68Q,EAAa6X,EAAI5X,EAAc,CACtC,MAAM6X,EAAaxjB,EAAO,WAAW,QACrC,IAAItxF,EACA+0G,EACJ,MAAMzO,EAAShV,EAAO,YACtB,SAAS0jB,EAAuB70R,EAAG,CACjC,GAAIA,EAAE,UAAW,OAMjB,MAAMu5Q,EAAYpI,EAAO,aAAe,CAACA,EAAO,UAAYA,EAAO,UAC/DA,EAAO,OAAO,WAAW,KAAO,UAClCsjB,EAAuBz0R,CAAC,EAGxB40R,EAAsB,CAACzjB,EAAO,WAAW,OAAO,YAAY,CAACoI,CAAS,IAEpE,CAACqb,GAAuBzjB,EAAO,OAAO,WAAW,KAAO,eAC1DtxF,GAAc7/K,EAAE,aAAY,EAAKA,EAAE,iBAAmBmxQ,EAAO,aAAc,EAAGA,EAAO,aAAc,IAC/F,OAAO,MAAMtxF,CAAU,GAAK,CAAC,OAAO,SAASA,CAAU,KACzDA,EAAa,GAEf+0G,GAAuBrb,EAAYpI,EAAO,aAAc,GAAItxF,EAAa7/K,EAAE,gBAEzEmxQ,EAAO,OAAO,WAAW,UAC3ByjB,EAAsB50R,EAAE,aAAc,EAAG40R,GAE3C50R,EAAE,eAAe40R,CAAmB,EACpC50R,EAAE,aAAa40R,EAAqBzjB,CAAM,EAC1CnxQ,EAAE,kBAAiB,EACnBA,EAAE,oBAAmB,CACtB,CACD,GAAI,MAAM,QAAQ20R,CAAU,EAC1B,QAAShmS,EAAI,EAAGA,EAAIgmS,EAAW,OAAQhmS,GAAK,EACtCgmS,EAAWhmS,CAAC,IAAMmuR,GAAgB6X,EAAWhmS,CAAC,YAAaw3R,GAC7D0O,EAAuBF,EAAWhmS,CAAC,CAAC,OAG/BgmS,aAAsBxO,GAAUrJ,IAAiB6X,GAC1DE,EAAuBF,CAAU,CAEpC,CACD,SAASnX,EAAczqP,EAAU+pP,EAAc,CAC7C,MAAMqJ,EAAShV,EAAO,YAChBwjB,EAAaxjB,EAAO,WAAW,QACrC,IAAIxiR,EACJ,SAASmmS,EAAwB90R,EAAG,CAC9BA,EAAE,YACNA,EAAE,cAAc+yB,EAAUo+O,CAAM,EAC5Bp+O,IAAa,IACf/yB,EAAE,gBAAe,EACbA,EAAE,OAAO,YACXqwQ,GAAS,IAAM,CACbrwQ,EAAE,iBAAgB,CAC9B,CAAW,EAEHgzQ,GAAqBhzQ,EAAE,UAAW,IAAM,CACjC20R,GACL30R,EAAE,cAAa,CACzB,CAAS,GAEJ,CACD,GAAI,MAAM,QAAQ20R,CAAU,EAC1B,IAAKhmS,EAAI,EAAGA,EAAIgmS,EAAW,OAAQhmS,GAAK,EAClCgmS,EAAWhmS,CAAC,IAAMmuR,GAAgB6X,EAAWhmS,CAAC,YAAaw3R,GAC7D2O,EAAwBH,EAAWhmS,CAAC,CAAC,OAGhCgmS,aAAsBxO,GAAUrJ,IAAiB6X,GAC1DG,EAAwBH,CAAU,CAErC,CACD,SAASI,GAAe,CACjB5jB,EAAO,WAAW,SACnBA,EAAO,WAAW,SACpBA,EAAO,WAAW,OAAS,OAC3B,OAAOA,EAAO,WAAW,OAE5B,CACDjwQ,EAAG,aAAc,IAAM,CACrB,GAAI,OAAO,OAAW,MAEtB,OAAOiwQ,EAAO,OAAO,WAAW,SAAY,UAAYA,EAAO,OAAO,WAAW,mBAAmB,aAAc,EACxF,OAAOA,EAAO,OAAO,WAAW,SAAY,SAAW,CAAC,GAAG,SAAS,iBAAiBA,EAAO,OAAO,WAAW,OAAO,CAAC,EAAI,CAACA,EAAO,OAAO,WAAW,OAAO,GACnK,QAAQx4L,GAAkB,CAExC,GADKw4L,EAAO,WAAW,UAASA,EAAO,WAAW,QAAU,IACxDx4L,GAAkBA,EAAe,OACnCw4L,EAAO,WAAW,QAAQ,KAAKx4L,EAAe,MAAM,UAC3CA,EAAgB,CACzB,MAAMlrF,EAAY,GAAG0jR,EAAO,OAAO,YAAY,OACzC6jB,EAAqB/2R,GAAK,CAC9BkzQ,EAAO,WAAW,QAAQ,KAAKlzQ,EAAE,OAAO,CAAC,CAAC,EAC1CkzQ,EAAO,OAAM,EACbx4L,EAAe,oBAAoBlrF,EAAWunS,CAAkB,CAC5E,EACUr8M,EAAe,iBAAiBlrF,EAAWunS,CAAkB,CAC9D,CACT,CAAO,EACD,MACD,CACD7jB,EAAO,WAAW,QAAUA,EAAO,OAAO,WAAW,OACzD,CAAG,EACDjwQ,EAAG,SAAU,IAAM,CACjB6zR,GACJ,CAAG,EACD7zR,EAAG,SAAU,IAAM,CACjB6zR,GACJ,CAAG,EACD7zR,EAAG,iBAAkB,IAAM,CACzB6zR,GACJ,CAAG,EACD7zR,EAAG,eAAgB,CAAC6rL,EAAIwsF,EAAWuD,IAAiB,CAC9C,CAAC3L,EAAO,WAAW,SAAWA,EAAO,WAAW,QAAQ,WAC5DA,EAAO,WAAW,aAAaoI,EAAWuD,CAAY,CAC1D,CAAG,EACD57Q,EAAG,gBAAiB,CAAC6rL,EAAIh6J,EAAU+pP,IAAiB,CAC9C,CAAC3L,EAAO,WAAW,SAAWA,EAAO,WAAW,QAAQ,WAC5DA,EAAO,WAAW,cAAcp+O,EAAU+pP,CAAY,CAC1D,CAAG,EACD,OAAO,OAAO3L,EAAO,WAAY,CAC/B,aAAA0L,EACA,cAAAW,CACJ,CAAG,CACH,CCxLA,SAASyX,IAAKvwO,EAAM,CAClB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,KAAM,CACJ,QAAS,GACT,kBAAmB,sBACnB,iBAAkB,iBAClB,iBAAkB,aAClB,kBAAmB,0BACnB,iBAAkB,yBAClB,wBAAyB,wBACzB,kBAAmB,+BACnB,iBAAkB,KAClB,gCAAiC,KACjC,cAAe,KACf,2BAA4B,KAC5B,UAAW,QACX,GAAI,KACJ,cAAe,EAChB,CACL,CAAG,EACDpE,EAAO,KAAO,CACZ,QAAS,EACb,EACE,IAAI+jB,EAAa,KACbC,EACAC,EACAC,EAA6B,IAAI,KAAM,EAAC,QAAO,EACnD,SAAS7kQ,EAAOrmC,GAAS,CACvB,MAAM4kP,GAAemmD,EACjBnmD,GAAa,SAAW,IAC5BA,GAAa,UAAY,GACzBA,GAAa,UAAY5kP,GAC1B,CACD,SAASmrS,EAAgB94R,GAAM,CACzBA,KAAS,SACXA,GAAO,IAET,MAAM+4R,GAAa,IAAM,KAAK,MAAM,GAAK,KAAK,QAAQ,EAAE,SAAS,EAAE,EACnE,MAAO,IAAI,OAAO/4R,EAAI,EAAE,QAAQ,KAAM+4R,EAAU,CACjD,CACD,SAASC,EAAgBroR,GAAI,CAC3BA,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,WAAY,GAAG,CACxC,CAAK,CACF,CACD,SAAS0J,EAAmBtoR,GAAI,CAC9BA,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,WAAY,IAAI,CACzC,CAAK,CACF,CACD,SAAS2J,EAAUvoR,GAAI8pD,GAAM,CAC3B9pD,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,OAAQ90N,EAAI,CACrC,CAAK,CACF,CACD,SAAS0+N,EAAqBxoR,GAAI02M,GAAa,CAC7C12M,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,uBAAwBloE,EAAW,CAC5D,CAAK,CACF,CACD,SAAS+xE,EAAczoR,GAAI0oR,GAAU,CACnC1oR,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,gBAAiB8J,EAAQ,CAClD,CAAK,CACF,CACD,SAASC,EAAW3oR,GAAIq4C,GAAO,CAC7Br4C,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,aAAcvmO,EAAK,CAC5C,CAAK,CACF,CACD,SAASuwO,EAAQ5oR,GAAIla,GAAI,CACvBka,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,KAAM94R,EAAE,CACjC,CAAK,CACF,CACD,SAAS+iS,EAAU7oR,GAAI8oR,GAAM,CAC3B9oR,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,YAAakK,EAAI,CAC1C,CAAK,CACF,CACD,SAASC,EAAU/oR,GAAI,CACrBA,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,gBAAiB,EAAI,CAC9C,CAAK,CACF,CACD,SAASoK,EAAShpR,GAAI,CACpBA,GAAKimQ,GAAkBjmQ,EAAE,EACzBA,GAAG,QAAQ4+Q,IAAS,CAClBA,GAAM,aAAa,gBAAiB,EAAK,CAC/C,CAAK,CACF,CACD,SAASqK,EAAkBn4R,GAAG,CAC5B,GAAIA,GAAE,UAAY,IAAMA,GAAE,UAAY,GAAI,OAC1C,MAAMgwB,GAASkjP,EAAO,OAAO,KACvBuQ,GAAWzjR,GAAE,OACnB,GAAI,EAAAkzQ,EAAO,YAAcA,EAAO,WAAW,KAAOuQ,KAAavQ,EAAO,WAAW,IAAMA,EAAO,WAAW,GAAG,SAASlzQ,GAAE,MAAM,IACvH,CAACA,GAAE,OAAO,QAAQouR,GAAkBlb,EAAO,OAAO,WAAW,WAAW,CAAC,GAE/E,IAAIA,EAAO,YAAcA,EAAO,WAAW,QAAUA,EAAO,WAAW,OAAQ,CAC7E,MAAMsB,GAAUW,GAAkBjC,EAAO,WAAW,MAAM,EAC1CiC,GAAkBjC,EAAO,WAAW,MAAM,EAC9C,SAASuQ,EAAQ,IACrBvQ,EAAO,OAAS,CAACA,EAAO,OAAO,MACnCA,EAAO,UAAS,EAEdA,EAAO,MACT3gP,EAAOvC,GAAO,gBAAgB,EAE9BuC,EAAOvC,GAAO,gBAAgB,GAG9BwkP,GAAQ,SAASiP,EAAQ,IACrBvQ,EAAO,aAAe,CAACA,EAAO,OAAO,MACzCA,EAAO,UAAS,EAEdA,EAAO,YACT3gP,EAAOvC,GAAO,iBAAiB,EAE/BuC,EAAOvC,GAAO,gBAAgB,EAGnC,CACGkjP,EAAO,YAAcuQ,GAAS,QAAQ2K,GAAkBlb,EAAO,OAAO,WAAW,WAAW,CAAC,GAC/FuQ,GAAS,MAAK,EAEjB,CACD,SAAS2U,GAAmB,CAC1B,GAAIllB,EAAO,OAAO,MAAQA,EAAO,OAAO,QAAU,CAACA,EAAO,WAAY,OACtE,KAAM,CACJ,OAAA6a,GACA,OAAAC,EACN,EAAQ9a,EAAO,WACP8a,KACE9a,EAAO,aACT+kB,EAAUjK,EAAM,EAChBwJ,EAAmBxJ,EAAM,IAEzBkK,EAASlK,EAAM,EACfuJ,EAAgBvJ,EAAM,IAGtBD,KACE7a,EAAO,OACT+kB,EAAUlK,EAAM,EAChByJ,EAAmBzJ,EAAM,IAEzBmK,EAASnK,EAAM,EACfwJ,EAAgBxJ,EAAM,GAG3B,CACD,SAASsK,GAAgB,CACvB,OAAOnlB,EAAO,YAAcA,EAAO,WAAW,SAAWA,EAAO,WAAW,QAAQ,MACpF,CACD,SAASolB,GAAyB,CAChC,OAAOD,EAAa,GAAMnlB,EAAO,OAAO,WAAW,SACpD,CACD,SAASqlB,GAAmB,CAC1B,MAAMvoQ,GAASkjP,EAAO,OAAO,KACxBmlB,EAAa,GAClBnlB,EAAO,WAAW,QAAQ,QAAQwb,IAAY,CACxCxb,EAAO,OAAO,WAAW,YAC3BqkB,EAAgB7I,EAAQ,EACnBxb,EAAO,OAAO,WAAW,eAC5BukB,EAAU/I,GAAU,QAAQ,EAC5BmJ,EAAWnJ,GAAU1+P,GAAO,wBAAwB,QAAQ,gBAAiB4kP,GAAa8Z,EAAQ,EAAI,CAAC,CAAC,IAGxGA,GAAS,QAAQN,GAAkBlb,EAAO,OAAO,WAAW,iBAAiB,CAAC,EAChFwb,GAAS,aAAa,eAAgB,MAAM,EAE5CA,GAAS,gBAAgB,cAAc,CAE/C,CAAK,CACF,CACD,MAAM8J,EAAY,CAACtpR,GAAIupR,GAAWvsS,KAAY,CAC5CqrS,EAAgBroR,EAAE,EACdA,GAAG,UAAY,WACjBuoR,EAAUvoR,GAAI,QAAQ,EACtBA,GAAG,iBAAiB,UAAWipR,CAAiB,GAElDN,EAAW3oR,GAAIhjB,EAAO,EACtByrS,EAAczoR,GAAIupR,EAAS,CAC/B,EACQC,EAAoB14R,IAAK,CACzBm3R,GAAsBA,IAAuBn3R,GAAE,QAAU,CAACm3R,EAAmB,SAASn3R,GAAE,MAAM,IAChGk3R,EAAsB,IAExBhkB,EAAO,KAAK,QAAU,EAC1B,EACQylB,EAAkB,IAAM,CAC5BzB,EAAsB,GACtB,sBAAsB,IAAM,CAC1B,sBAAsB,IAAM,CACrBhkB,EAAO,YACVA,EAAO,KAAK,QAAU,GAEhC,CAAO,CACP,CAAK,CACL,EACQ0lB,EAAqB54R,IAAK,CAC9Bo3R,EAA6B,IAAI,OAAO,SAC5C,EACQyB,EAAc74R,IAAK,CAEvB,GADIkzQ,EAAO,KAAK,SAAW,CAACA,EAAO,OAAO,KAAK,eAC3C,IAAI,KAAI,EAAG,QAAS,EAAGkkB,EAA6B,IAAK,OAC7D,MAAM1jB,GAAU1zQ,GAAE,OAAO,QAAQ,IAAIkzQ,EAAO,OAAO,UAAU,gBAAgB,EAC7E,GAAI,CAACQ,IAAW,CAACR,EAAO,OAAO,SAASQ,EAAO,EAAG,OAClDyjB,EAAqBzjB,GACrB,MAAMvuG,GAAW+tG,EAAO,OAAO,QAAQQ,EAAO,IAAMR,EAAO,YACrD5pE,GAAY4pE,EAAO,OAAO,qBAAuBA,EAAO,eAAiBA,EAAO,cAAc,SAASQ,EAAO,EAChHvuG,IAAYmkC,IACZtpM,GAAE,oBAAsBA,GAAE,mBAAmB,mBAC7CkzQ,EAAO,eACTA,EAAO,GAAG,WAAa,EAEvBA,EAAO,GAAG,UAAY,EAExB,sBAAsB,IAAM,CACtBgkB,IACAhkB,EAAO,OAAO,KAChBA,EAAO,YAAY,SAASQ,GAAQ,aAAa,yBAAyB,CAAC,EAAG,CAAC,EAE/ER,EAAO,QAAQA,EAAO,OAAO,QAAQQ,EAAO,EAAG,CAAC,EAElDwjB,EAAsB,GAC5B,CAAK,EACL,EACQ5V,EAAa,IAAM,CACvB,MAAMtxP,GAASkjP,EAAO,OAAO,KACzBljP,GAAO,4BACT0nQ,EAAqBxkB,EAAO,OAAQljP,GAAO,0BAA0B,EAEnEA,GAAO,WACTynQ,EAAUvkB,EAAO,OAAQljP,GAAO,SAAS,EAE3C,MAAM0oP,GAAexF,EAAO,OAAO,OAC/BljP,GAAO,mBACTkjP,EAAO,OAAO,QAAQ,CAACQ,GAAS55Q,KAAU,CACxC,MAAMs2Q,GAAa8C,EAAO,OAAO,KAAO,SAASQ,GAAQ,aAAa,yBAAyB,EAAG,EAAE,EAAI55Q,GAClGg/R,GAAmB9oQ,GAAO,kBAAkB,QAAQ,gBAAiBogP,GAAa,CAAC,EAAE,QAAQ,uBAAwBsI,EAAY,EACvImf,EAAWnkB,GAASolB,EAAgB,CAC5C,CAAO,CAEP,EACQ9hR,GAAO,IAAM,CACjB,MAAMgZ,GAASkjP,EAAO,OAAO,KAC7BA,EAAO,GAAG,OAAO+jB,CAAU,EAG3B,MAAM/P,GAAchU,EAAO,GACvBljP,GAAO,iCACT0nQ,EAAqBxQ,GAAal3P,GAAO,+BAA+B,EAEtEA,GAAO,kBACT6nQ,EAAW3Q,GAAal3P,GAAO,gBAAgB,EAE7CA,GAAO,eACTynQ,EAAUvQ,GAAal3P,GAAO,aAAa,EAI7C,MAAMkoP,GAAYhF,EAAO,UACnBulB,GAAYzoQ,GAAO,IAAMkoP,GAAU,aAAa,IAAI,GAAK,kBAAkBmf,EAAgB,EAAE,CAAC,GAC9FW,GAAO9kB,EAAO,OAAO,UAAYA,EAAO,OAAO,SAAS,QAAU,MAAQ,SAChF4kB,EAAQ5f,GAAWugB,EAAS,EAC5BV,EAAU7f,GAAW8f,EAAI,EAGzB1W,IAGA,GAAI,CACF,OAAAyM,GACA,OAAAC,EACD,EAAG9a,EAAO,WAAaA,EAAO,WAAa,GAC5C6a,GAAS5Y,GAAkB4Y,EAAM,EACjCC,GAAS7Y,GAAkB6Y,EAAM,EAC7BD,IACFA,GAAO,QAAQ7+Q,GAAMspR,EAAUtpR,EAAIupR,GAAWzoQ,GAAO,gBAAgB,CAAC,EAEpEg+P,IACFA,GAAO,QAAQ9+Q,GAAMspR,EAAUtpR,EAAIupR,GAAWzoQ,GAAO,gBAAgB,CAAC,EAIpEsoQ,EAAsB,GACHnjB,GAAkBjC,EAAO,WAAW,EAAE,EAC9C,QAAQhkQ,IAAM,CACzBA,GAAG,iBAAiB,UAAWipR,CAAiB,CACxD,CAAO,EAIc3tI,KACR,iBAAiB,mBAAoBouI,CAAkB,EAChE1lB,EAAO,GAAG,iBAAiB,QAAS2lB,EAAa,EAAI,EACrD3lB,EAAO,GAAG,iBAAiB,QAAS2lB,EAAa,EAAI,EACrD3lB,EAAO,GAAG,iBAAiB,cAAewlB,EAAmB,EAAI,EACjExlB,EAAO,GAAG,iBAAiB,YAAaylB,EAAiB,EAAI,CACjE,EACE,SAASxpD,IAAU,CACb8nD,GAAYA,EAAW,SAC3B,GAAI,CACF,OAAAlJ,GACA,OAAAC,EACD,EAAG9a,EAAO,WAAaA,EAAO,WAAa,GAC5C6a,GAAS5Y,GAAkB4Y,EAAM,EACjCC,GAAS7Y,GAAkB6Y,EAAM,EAC7BD,IACFA,GAAO,QAAQ7+Q,IAAMA,GAAG,oBAAoB,UAAWipR,CAAiB,CAAC,EAEvEnK,IACFA,GAAO,QAAQ9+Q,IAAMA,GAAG,oBAAoB,UAAWipR,CAAiB,CAAC,EAIvEG,EAAsB,GACHnjB,GAAkBjC,EAAO,WAAW,EAAE,EAC9C,QAAQhkQ,IAAM,CACzBA,GAAG,oBAAoB,UAAWipR,CAAiB,CAC3D,CAAO,EAEc3tI,KACR,oBAAoB,mBAAoBouI,CAAkB,EAE/D1lB,EAAO,IAAM,OAAOA,EAAO,IAAO,WACpCA,EAAO,GAAG,oBAAoB,QAAS2lB,EAAa,EAAI,EACxD3lB,EAAO,GAAG,oBAAoB,cAAewlB,EAAmB,EAAI,EACpExlB,EAAO,GAAG,oBAAoB,YAAaylB,EAAiB,EAAI,EAEnE,CACD11R,EAAG,aAAc,IAAM,CACrBg0R,EAAa9lN,GAAc,OAAQ+hM,EAAO,OAAO,KAAK,iBAAiB,EACvE+jB,EAAW,aAAa,YAAa,WAAW,EAChDA,EAAW,aAAa,cAAe,MAAM,CACjD,CAAG,EACDh0R,EAAG,YAAa,IAAM,CACfiwQ,EAAO,OAAO,KAAK,SACxBl8P,IACJ,CAAG,EACD/T,EAAG,iEAAkE,IAAM,CACpEiwQ,EAAO,OAAO,KAAK,SACxBoO,GACJ,CAAG,EACDr+Q,EAAG,wCAAyC,IAAM,CAC3CiwQ,EAAO,OAAO,KAAK,SACxBklB,GACJ,CAAG,EACDn1R,EAAG,mBAAoB,IAAM,CACtBiwQ,EAAO,OAAO,KAAK,SACxBqlB,GACJ,CAAG,EACDt1R,EAAG,UAAW,IAAM,CACbiwQ,EAAO,OAAO,KAAK,SACxB/jC,IACJ,CAAG,CACH,CCrXA,SAASrwO,IAAQ2nD,EAAM,CACrB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,QAAS,CACP,QAAS,GACT,KAAM,GACN,aAAc,GACd,IAAK,SACL,UAAW,EACZ,CACL,CAAG,EACD,IAAIxjR,EAAc,GACd45K,EAAQ,GACZ,MAAMqrH,EAAUpmR,GACPA,EAAK,SAAU,EAAC,QAAQ,OAAQ,GAAG,EAAE,QAAQ,WAAY,EAAE,EAAE,QAAQ,OAAQ,GAAG,EAAE,QAAQ,MAAO,EAAE,EAAE,QAAQ,MAAO,EAAE,EAEzHqmR,EAAgBC,GAAe,CACnC,MAAMzxR,EAAS4rD,KACf,IAAInlE,EACAgrS,EACFhrS,EAAW,IAAI,IAAIgrS,CAAW,EAE9BhrS,EAAWuZ,EAAO,SAEpB,MAAM0xR,EAAYjrS,EAAS,SAAS,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,OAAOw5H,GAAQA,IAAS,EAAE,EAC5ExM,EAAQi+K,EAAU,OAClB16R,EAAM06R,EAAUj+K,EAAQ,CAAC,EACzBpuH,EAAQqsS,EAAUj+K,EAAQ,CAAC,EACjC,MAAO,CACL,IAAAz8G,EACA,MAAA3R,CACN,CACA,EACQssS,EAAa,CAAC36R,EAAK1E,IAAU,CACjC,MAAM0N,EAAS4rD,KACf,GAAI,CAACt/D,GAAe,CAACo/Q,EAAO,OAAO,QAAQ,QAAS,OACpD,IAAIjlR,EACAilR,EAAO,OAAO,IAChBjlR,EAAW,IAAI,IAAIilR,EAAO,OAAO,GAAG,EAEpCjlR,EAAWuZ,EAAO,SAEpB,MAAMq3P,EAAQqU,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,SAAS,cAAc,6BAA6Bp5Q,CAAK,IAAI,EAAIo5Q,EAAO,OAAOp5Q,CAAK,EAC3J,IAAIjN,EAAQksS,EAAQl6B,EAAM,aAAa,cAAc,CAAC,EACtD,GAAIqU,EAAO,OAAO,QAAQ,KAAK,OAAS,EAAG,CACzC,IAAIh5Q,EAAOg5Q,EAAO,OAAO,QAAQ,KAC7Bh5Q,EAAKA,EAAK,OAAS,CAAC,IAAM,MAAKA,EAAOA,EAAK,MAAM,EAAGA,EAAK,OAAS,CAAC,GACvErN,EAAQ,GAAGqN,CAAI,IAAIsE,EAAM,GAAGA,CAAG,IAAM,EAAE,GAAG3R,CAAK,EAChD,MAAWoB,EAAS,SAAS,SAASuQ,CAAG,IACxC3R,EAAQ,GAAG2R,EAAM,GAAGA,CAAG,IAAM,EAAE,GAAG3R,CAAK,IAErCqmR,EAAO,OAAO,QAAQ,YACxBrmR,GAASoB,EAAS,QAEpB,MAAMikQ,EAAe1qP,EAAO,QAAQ,MAChC0qP,GAAgBA,EAAa,QAAUrlQ,IAGvCqmR,EAAO,OAAO,QAAQ,aACxB1rQ,EAAO,QAAQ,aAAa,CAC1B,MAAA3a,CACR,EAAS,KAAMA,CAAK,EAEd2a,EAAO,QAAQ,UAAU,CACvB,MAAA3a,CACR,EAAS,KAAMA,CAAK,EAEpB,EACQusS,EAAgB,CAACtxQ,EAAOj7B,EAAOqyR,IAAiB,CACpD,GAAIryR,EACF,QAAS6D,EAAI,EAAGqS,EAASmwQ,EAAO,OAAO,OAAQxiR,EAAIqS,EAAQrS,GAAK,EAAG,CACjE,MAAMmuQ,EAAQqU,EAAO,OAAOxiR,CAAC,EAE7B,GADqBqoS,EAAQl6B,EAAM,aAAa,cAAc,CAAC,IAC1ChyQ,EAAO,CAC1B,MAAMiN,EAAQo5Q,EAAO,cAAcrU,CAAK,EACxCqU,EAAO,QAAQp5Q,EAAOguB,EAAOo3P,CAAY,CAC1C,CACF,MAEDhM,EAAO,QAAQ,EAAGprP,EAAOo3P,CAAY,CAE3C,EACQma,EAAqB,IAAM,CAC/B3rH,EAAQsrH,EAAc9lB,EAAO,OAAO,GAAG,EACvCkmB,EAAclmB,EAAO,OAAO,MAAOxlG,EAAM,MAAO,EAAK,CACzD,EACQ12J,EAAO,IAAM,CACjB,MAAMxP,EAAS4rD,KACf,GAAK8/M,EAAO,OAAO,QACnB,IAAI,CAAC1rQ,EAAO,SAAW,CAACA,EAAO,QAAQ,UAAW,CAChD0rQ,EAAO,OAAO,QAAQ,QAAU,GAChCA,EAAO,OAAO,eAAe,QAAU,GACvC,MACD,CAGD,GAFAp/Q,EAAc,GACd45K,EAAQsrH,EAAc9lB,EAAO,OAAO,GAAG,EACnC,CAACxlG,EAAM,KAAO,CAACA,EAAM,MAAO,CACzBwlG,EAAO,OAAO,QAAQ,cACzB1rQ,EAAO,iBAAiB,WAAY6xR,CAAkB,EAExD,MACD,CACDD,EAAc,EAAG1rH,EAAM,MAAOwlG,EAAO,OAAO,kBAAkB,EACzDA,EAAO,OAAO,QAAQ,cACzB1rQ,EAAO,iBAAiB,WAAY6xR,CAAkB,EAE5D,EACQlqD,EAAU,IAAM,CACpB,MAAM3nO,EAAS4rD,KACV8/M,EAAO,OAAO,QAAQ,cACzB1rQ,EAAO,oBAAoB,WAAY6xR,CAAkB,CAE/D,EACEp2R,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,QAAQ,SACxBl8P,GAEN,CAAG,EACD/T,EAAG,UAAW,IAAM,CACdiwQ,EAAO,OAAO,QAAQ,SACxB/jC,GAEN,CAAG,EACDlsO,EAAG,2CAA4C,IAAM,CAC/CnP,GACFqlS,EAAWjmB,EAAO,OAAO,QAAQ,IAAKA,EAAO,WAAW,CAE9D,CAAG,EACDjwQ,EAAG,cAAe,IAAM,CAClBnP,GAAeo/Q,EAAO,OAAO,SAC/BimB,EAAWjmB,EAAO,OAAO,QAAQ,IAAKA,EAAO,WAAW,CAE9D,CAAG,CACH,CCxIA,SAASomB,IAAe7yO,EAAM,CAC5B,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,KAAAV,EACA,GAAA3zQ,CACD,EAAGwjD,EACA3yD,EAAc,GAClB,MAAMqN,EAAWqpJ,KACXhjJ,EAAS4rD,KACfkkN,EAAa,CACX,eAAgB,CACd,QAAS,GACT,aAAc,GACd,WAAY,GACZ,cAAcxoF,EAAIh8K,EAAM,CACtB,GAAIogQ,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAS,CACnD,MAAMqmB,EAAgBrmB,EAAO,OAAO,KAAKQ,GAAWA,EAAQ,aAAa,WAAW,IAAM5gQ,CAAI,EAC9F,OAAKymR,EACS,SAASA,EAAc,aAAa,yBAAyB,EAAG,EAAE,EADrD,CAG5B,CACD,OAAOrmB,EAAO,cAAcS,GAAgBT,EAAO,SAAU,IAAIA,EAAO,OAAO,UAAU,eAAepgQ,CAAI,+BAA+BA,CAAI,IAAI,EAAE,CAAC,CAAC,CACxJ,CACF,CACL,CAAG,EACD,MAAM0mR,EAAe,IAAM,CACzB5iB,EAAK,YAAY,EACjB,MAAM6iB,EAAUt4R,EAAS,SAAS,KAAK,QAAQ,IAAK,EAAE,EAChDu4R,EAAgBxmB,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,SAAS,cAAc,6BAA6BA,EAAO,WAAW,IAAI,EAAIA,EAAO,OAAOA,EAAO,WAAW,EACvLymB,EAAkBD,EAAgBA,EAAc,aAAa,WAAW,EAAI,GAClF,GAAID,IAAYE,EAAiB,CAC/B,MAAMlwB,EAAWyJ,EAAO,OAAO,eAAe,cAAcA,EAAQumB,CAAO,EAC3E,GAAI,OAAOhwB,EAAa,KAAe,OAAO,MAAMA,CAAQ,EAAG,OAC/DyJ,EAAO,QAAQzJ,CAAQ,CACxB,CACL,EACQmwB,EAAU,IAAM,CACpB,GAAI,CAAC9lS,GAAe,CAACo/Q,EAAO,OAAO,eAAe,QAAS,OAC3D,MAAMwmB,EAAgBxmB,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,SAAS,cAAc,6BAA6BA,EAAO,WAAW,IAAI,EAAIA,EAAO,OAAOA,EAAO,WAAW,EACvLymB,EAAkBD,EAAgBA,EAAc,aAAa,WAAW,GAAKA,EAAc,aAAa,cAAc,EAAI,GAC5HxmB,EAAO,OAAO,eAAe,cAAgB1rQ,EAAO,SAAWA,EAAO,QAAQ,cAChFA,EAAO,QAAQ,aAAa,KAAM,KAAM,IAAImyR,CAAe,IAAM,EAAE,EACnE/iB,EAAK,SAAS,IAEdz1Q,EAAS,SAAS,KAAOw4R,GAAmB,GAC5C/iB,EAAK,SAAS,EAEpB,EACQ5/P,EAAO,IAAM,CACjB,GAAI,CAACk8P,EAAO,OAAO,eAAe,SAAWA,EAAO,OAAO,SAAWA,EAAO,OAAO,QAAQ,QAAS,OACrGp/Q,EAAc,GACd,MAAMgf,EAAO3R,EAAS,SAAS,KAAK,QAAQ,IAAK,EAAE,EACnD,GAAI2R,EAAM,CAER,MAAMhZ,EAAQo5Q,EAAO,OAAO,eAAe,cAAcA,EAAQpgQ,CAAI,EACrEogQ,EAAO,QAAQp5Q,GAAS,EAAG,EAAOo5Q,EAAO,OAAO,mBAAoB,EAAI,CACzE,CACGA,EAAO,OAAO,eAAe,YAC/B1rQ,EAAO,iBAAiB,aAAcgyR,CAAY,CAExD,EACQrqD,EAAU,IAAM,CAChB+jC,EAAO,OAAO,eAAe,YAC/B1rQ,EAAO,oBAAoB,aAAcgyR,CAAY,CAE3D,EACEv2R,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,eAAe,SAC/Bl8P,GAEN,CAAG,EACD/T,EAAG,UAAW,IAAM,CACdiwQ,EAAO,OAAO,eAAe,SAC/B/jC,GAEN,CAAG,EACDlsO,EAAG,2CAA4C,IAAM,CAC/CnP,GACF8lS,GAEN,CAAG,EACD32R,EAAG,cAAe,IAAM,CAClBnP,GAAeo/Q,EAAO,OAAO,SAC/B0mB,GAEN,CAAG,CACH,CCtFA,SAASC,IAASpzO,EAAM,CACtB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,EACA,KAAA2zQ,EACA,OAAA5mP,CACD,EAAGy2B,EACJysN,EAAO,SAAW,CAChB,QAAS,GACT,OAAQ,GACR,SAAU,CACd,EACEoE,EAAa,CACX,SAAU,CACR,QAAS,GACT,MAAO,IACP,kBAAmB,GACnB,qBAAsB,GACtB,gBAAiB,GACjB,iBAAkB,GAClB,kBAAmB,EACpB,CACL,CAAG,EACD,IAAI1uP,EACA00I,EACAw8H,EAAqB9pQ,GAAUA,EAAO,SAAWA,EAAO,SAAS,MAAQ,IACzE+pQ,EAAuB/pQ,GAAUA,EAAO,SAAWA,EAAO,SAAS,MAAQ,IAC3EgqQ,EACAC,EAAoB,IAAI,KAAM,EAAC,QAAO,EACtCC,EACA/J,EACAgK,EACAC,EACAC,EACAC,EACAC,EACJ,SAAS5F,EAAgB30R,GAAG,CACtB,CAACkzQ,GAAUA,EAAO,WAAa,CAACA,EAAO,WACvClzQ,GAAE,SAAWkzQ,EAAO,YACxBA,EAAO,UAAU,oBAAoB,gBAAiByhB,CAAe,EACjE,EAAA4F,GAAwBv6R,GAAE,QAAUA,GAAE,OAAO,oBAGjDw6R,IACD,CACD,MAAMC,EAAe,IAAM,CACzB,GAAIvnB,EAAO,WAAa,CAACA,EAAO,SAAS,QAAS,OAC9CA,EAAO,SAAS,OAClBgnB,EAAY,GACHA,IACTH,EAAuBC,EACvBE,EAAY,IAEd,MAAMQ,GAAWxnB,EAAO,SAAS,OAAS8mB,EAAmBC,EAAoBF,EAAuB,IAAI,KAAM,EAAC,QAAO,EAC1H7mB,EAAO,SAAS,SAAWwnB,GAC3B9jB,EAAK,mBAAoB8jB,GAAUA,GAAWZ,CAAkB,EAChEx8H,EAAM,sBAAsB,IAAM,CAChCm9H,GACN,CAAK,CACL,EACQE,EAAgB,IAAM,CAC1B,IAAIjB,GAMJ,OALIxmB,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAC1CwmB,GAAgBxmB,EAAO,OAAO,KAAKQ,IAAWA,GAAQ,UAAU,SAAS,qBAAqB,CAAC,EAE/FgmB,GAAgBxmB,EAAO,OAAOA,EAAO,WAAW,EAE7CwmB,GACqB,SAASA,GAAc,aAAa,sBAAsB,EAAG,EAAE,EADrE,MAGxB,EACQ3pC,EAAM6qC,IAAc,CACxB,GAAI1nB,EAAO,WAAa,CAACA,EAAO,SAAS,QAAS,OAClD,qBAAqB51G,CAAG,EACxBm9H,IACA,IAAIz7R,GAAQ,OAAO47R,GAAe,IAAc1nB,EAAO,OAAO,SAAS,MAAQ0nB,GAC/Ed,EAAqB5mB,EAAO,OAAO,SAAS,MAC5C6mB,EAAuB7mB,EAAO,OAAO,SAAS,MAC9C,MAAM2nB,GAAoBF,IACtB,CAAC,OAAO,MAAME,EAAiB,GAAKA,GAAoB,GAAK,OAAOD,GAAe,MACrF57R,GAAQ67R,GACRf,EAAqBe,GACrBd,EAAuBc,IAEzBb,EAAmBh7R,GACnB,MAAM8oB,GAAQorP,EAAO,OAAO,MACtB4nB,GAAU,IAAM,CAChB,CAAC5nB,GAAUA,EAAO,YAClBA,EAAO,OAAO,SAAS,iBACrB,CAACA,EAAO,aAAeA,EAAO,OAAO,MAAQA,EAAO,OAAO,QAC7DA,EAAO,UAAUprP,GAAO,GAAM,EAAI,EAClC8uP,EAAK,UAAU,GACL1D,EAAO,OAAO,SAAS,kBACjCA,EAAO,QAAQA,EAAO,OAAO,OAAS,EAAGprP,GAAO,GAAM,EAAI,EAC1D8uP,EAAK,UAAU,GAGb,CAAC1D,EAAO,OAASA,EAAO,OAAO,MAAQA,EAAO,OAAO,QACvDA,EAAO,UAAUprP,GAAO,GAAM,EAAI,EAClC8uP,EAAK,UAAU,GACL1D,EAAO,OAAO,SAAS,kBACjCA,EAAO,QAAQ,EAAGprP,GAAO,GAAM,EAAI,EACnC8uP,EAAK,UAAU,GAGf1D,EAAO,OAAO,UAChB+mB,EAAoB,IAAI,OAAO,UAC/B,sBAAsB,IAAM,CAC1BlqC,GACV,CAAS,GAET,EACI,OAAI/wP,GAAQ,GACV,aAAa4pB,CAAO,EACpBA,EAAU,WAAW,IAAM,CACzBkyQ,IACD,EAAE97R,EAAK,GAER,sBAAsB,IAAM,CAC1B87R,IACR,CAAO,EAII97R,EACX,EACQoB,EAAQ,IAAM,CAClB65R,EAAoB,IAAI,OAAO,UAC/B/mB,EAAO,SAAS,QAAU,GAC1BnjB,IACA6mB,EAAK,eAAe,CACxB,EACQtuP,EAAO,IAAM,CACjB4qP,EAAO,SAAS,QAAU,GAC1B,aAAatqP,CAAO,EACpB,qBAAqB00I,CAAG,EACxBs5G,EAAK,cAAc,CACvB,EACQmkB,EAAQ,CAAC3b,GAAUr8E,KAAU,CACjC,GAAImwE,EAAO,WAAa,CAACA,EAAO,SAAS,QAAS,OAClD,aAAatqP,CAAO,EACfw2P,KACHkb,EAAsB,IAExB,MAAMQ,GAAU,IAAM,CACpBlkB,EAAK,eAAe,EAChB1D,EAAO,OAAO,SAAS,kBACzBA,EAAO,UAAU,iBAAiB,gBAAiByhB,CAAe,EAElE6F,GAER,EAEI,GADAtnB,EAAO,SAAS,OAAS,GACrBnwE,GAAO,CACLs3F,IACFL,EAAmB9mB,EAAO,OAAO,SAAS,OAE5CmnB,EAAe,GACfS,KACA,MACD,CAEDd,GADcA,GAAoB9mB,EAAO,OAAO,SAAS,QAC7B,IAAI,KAAM,EAAC,QAAO,EAAK+mB,GAC/C,EAAA/mB,EAAO,OAAS8mB,EAAmB,GAAK,CAAC9mB,EAAO,OAAO,QACvD8mB,EAAmB,IAAGA,EAAmB,GAC7Cc,KACJ,EACQN,EAAS,IAAM,CACftnB,EAAO,OAAS8mB,EAAmB,GAAK,CAAC9mB,EAAO,OAAO,MAAQA,EAAO,WAAa,CAACA,EAAO,SAAS,UACxG+mB,EAAoB,IAAI,OAAO,UAC3BK,GACFA,EAAsB,GACtBvqC,EAAIiqC,CAAgB,GAEpBjqC,IAEFmjB,EAAO,SAAS,OAAS,GACzB0D,EAAK,gBAAgB,EACzB,EACQgiB,EAAqB,IAAM,CAC/B,GAAI1lB,EAAO,WAAa,CAACA,EAAO,SAAS,QAAS,OAClD,MAAM/xQ,GAAWqpJ,KACbrpJ,GAAS,kBAAoB,WAC/Bm5R,EAAsB,GACtBS,EAAM,EAAI,GAER55R,GAAS,kBAAoB,WAC/Bq5R,GAEN,EACQQ,EAAiBh7R,IAAK,CACtBA,GAAE,cAAgB,UACtBs6R,EAAsB,GACtBC,EAAuB,GACnB,EAAArnB,EAAO,WAAaA,EAAO,SAAS,SACxC6nB,EAAM,EAAI,EACd,EACQE,EAAiBj7R,IAAK,CACtBA,GAAE,cAAgB,UACtBu6R,EAAuB,GACnBrnB,EAAO,SAAS,QAClBsnB,IAEN,EACQU,EAAoB,IAAM,CAC1BhoB,EAAO,OAAO,SAAS,oBACzBA,EAAO,GAAG,iBAAiB,eAAgB8nB,CAAc,EACzD9nB,EAAO,GAAG,iBAAiB,eAAgB+nB,CAAc,EAE/D,EACQE,GAAoB,IAAM,CAC1BjoB,EAAO,IAAM,OAAOA,EAAO,IAAO,WACpCA,EAAO,GAAG,oBAAoB,eAAgB8nB,CAAc,EAC5D9nB,EAAO,GAAG,oBAAoB,eAAgB+nB,CAAc,EAElE,EACQG,GAAuB,IAAM,CAChB5wI,KACR,iBAAiB,mBAAoBouI,CAAkB,CACpE,EACQyC,GAAuB,IAAM,CAChB7wI,KACR,oBAAoB,mBAAoBouI,CAAkB,CACvE,EACE31R,EAAG,OAAQ,IAAM,CACXiwQ,EAAO,OAAO,SAAS,UACzBgoB,IACAE,KACAh7R,IAEN,CAAG,EACD6C,EAAG,UAAW,IAAM,CAClBk4R,KACAE,KACInoB,EAAO,SAAS,SAClB5qP,GAEN,CAAG,EACDrlB,EAAG,yBAA0B,IAAM,EAC7Bk3R,GAAiBG,IACnBE,GAEN,CAAG,EACDv3R,EAAG,6BAA8B,IAAM,CAChCiwQ,EAAO,OAAO,SAAS,qBAG1B5qP,IAFAyyQ,EAAM,GAAM,EAAI,CAItB,CAAG,EACD93R,EAAG,wBAAyB,CAAC6rL,GAAIhnK,GAAOs3P,KAAa,CAC/ClM,EAAO,WAAa,CAACA,EAAO,SAAS,UACrCkM,IAAY,CAAClM,EAAO,OAAO,SAAS,qBACtC6nB,EAAM,GAAM,EAAI,EAEhBzyQ,IAEN,CAAG,EACDrlB,EAAG,kBAAmB,IAAM,CAC1B,GAAI,EAAAiwQ,EAAO,WAAa,CAACA,EAAO,SAAS,SACzC,IAAIA,EAAO,OAAO,SAAS,qBAAsB,CAC/C5qP,IACA,MACD,CACD6nQ,EAAY,GACZgK,EAAgB,GAChBG,EAAsB,GACtBF,EAAoB,WAAW,IAAM,CACnCE,EAAsB,GACtBH,EAAgB,GAChBY,EAAM,EAAI,CACX,EAAE,GAAG,EACV,CAAG,EACD93R,EAAG,WAAY,IAAM,CACnB,GAAI,EAAAiwQ,EAAO,WAAa,CAACA,EAAO,SAAS,SAAW,CAACid,GAGrD,IAFA,aAAaiK,CAAiB,EAC9B,aAAaxxQ,CAAO,EAChBsqP,EAAO,OAAO,SAAS,qBAAsB,CAC/CinB,EAAgB,GAChBhK,EAAY,GACZ,MACD,CACGgK,GAAiBjnB,EAAO,OAAO,SAASsnB,EAAM,EAClDL,EAAgB,GAChBhK,EAAY,GAChB,CAAG,EACDltR,EAAG,cAAe,IAAM,CAClBiwQ,EAAO,WAAa,CAACA,EAAO,SAAS,UACzCmnB,EAAe,GACnB,CAAG,EACD,OAAO,OAAOnnB,EAAO,SAAU,CAC7B,MAAA9yQ,EACA,KAAAkoB,EACA,MAAAyyQ,EACA,OAAAP,CACJ,CAAG,CACH,CC1SA,SAASc,IAAM70O,EAAM,CACnB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,OAAQ,CACN,OAAQ,KACR,qBAAsB,GACtB,iBAAkB,EAClB,sBAAuB,4BACvB,qBAAsB,eACvB,CACL,CAAG,EACD,IAAIxjR,EAAc,GACdynS,EAAgB,GACpBroB,EAAO,OAAS,CACd,OAAQ,IACZ,EACE,SAASsoB,GAAe,CACtB,MAAMC,EAAevoB,EAAO,OAAO,OACnC,GAAI,CAACuoB,GAAgBA,EAAa,UAAW,OAC7C,MAAMh6B,EAAeg6B,EAAa,aAC5BC,EAAeD,EAAa,aAElC,GADIC,GAAgBA,EAAa,UAAU,SAASxoB,EAAO,OAAO,OAAO,qBAAqB,GAC1F,OAAOzR,EAAiB,KAAeA,IAAiB,KAAM,OAClE,IAAI0f,EACAsa,EAAa,OAAO,KACtBta,EAAe,SAASsa,EAAa,aAAa,aAAa,yBAAyB,EAAG,EAAE,EAE7Fta,EAAe1f,EAEbyR,EAAO,OAAO,KAChBA,EAAO,YAAYiO,CAAY,EAE/BjO,EAAO,QAAQiO,CAAY,CAE9B,CACD,SAASnqQ,GAAO,CACd,KAAM,CACJ,OAAQ2kR,CACd,EAAQzoB,EAAO,OACX,GAAIp/Q,EAAa,MAAO,GACxBA,EAAc,GACd,MAAM8nS,EAAc1oB,EAAO,YAC3B,GAAIyoB,EAAa,kBAAkBC,EAAa,CAC9C,GAAID,EAAa,OAAO,UACtB,OAAA7nS,EAAc,GACP,GAETo/Q,EAAO,OAAO,OAASyoB,EAAa,OACpC,OAAO,OAAOzoB,EAAO,OAAO,OAAO,eAAgB,CACjD,oBAAqB,GACrB,oBAAqB,EAC7B,CAAO,EACD,OAAO,OAAOA,EAAO,OAAO,OAAO,OAAQ,CACzC,oBAAqB,GACrB,oBAAqB,EAC7B,CAAO,EACDA,EAAO,OAAO,OAAO,QACtB,SAAUz4N,GAASkhP,EAAa,MAAM,EAAG,CACxC,MAAME,EAAqB,OAAO,OAAO,GAAIF,EAAa,MAAM,EAChE,OAAO,OAAOE,EAAoB,CAChC,oBAAqB,GACrB,oBAAqB,EAC7B,CAAO,EACD3oB,EAAO,OAAO,OAAS,IAAI0oB,EAAYC,CAAkB,EACzDN,EAAgB,EACjB,CACD,OAAAroB,EAAO,OAAO,OAAO,GAAG,UAAU,IAAIA,EAAO,OAAO,OAAO,oBAAoB,EAC/EA,EAAO,OAAO,OAAO,GAAG,MAAOsoB,CAAY,EACpC,EACR,CACD,SAASxqF,EAAOl0L,EAAS,CACvB,MAAM2+Q,EAAevoB,EAAO,OAAO,OACnC,GAAI,CAACuoB,GAAgBA,EAAa,UAAW,OAC7C,MAAMje,EAAgBie,EAAa,OAAO,gBAAkB,OAASA,EAAa,qBAAsB,EAAGA,EAAa,OAAO,cAG/H,IAAIK,EAAmB,EACvB,MAAMC,EAAmB7oB,EAAO,OAAO,OAAO,sBAS9C,GARIA,EAAO,OAAO,cAAgB,GAAK,CAACA,EAAO,OAAO,iBACpD4oB,EAAmB5oB,EAAO,OAAO,eAE9BA,EAAO,OAAO,OAAO,uBACxB4oB,EAAmB,GAErBA,EAAmB,KAAK,MAAMA,CAAgB,EAC9CL,EAAa,OAAO,QAAQ/nB,GAAWA,EAAQ,UAAU,OAAOqoB,CAAgB,CAAC,EAC7EN,EAAa,OAAO,MAAQA,EAAa,OAAO,SAAWA,EAAa,OAAO,QAAQ,QACzF,QAAS/qS,EAAI,EAAGA,EAAIorS,EAAkBprS,GAAK,EACzCijR,GAAgB8nB,EAAa,SAAU,6BAA6BvoB,EAAO,UAAYxiR,CAAC,IAAI,EAAE,QAAQgjR,GAAW,CAC/GA,EAAQ,UAAU,IAAIqoB,CAAgB,CAChD,CAAS,MAGH,SAASrrS,EAAI,EAAGA,EAAIorS,EAAkBprS,GAAK,EACrC+qS,EAAa,OAAOvoB,EAAO,UAAYxiR,CAAC,GAC1C+qS,EAAa,OAAOvoB,EAAO,UAAYxiR,CAAC,EAAE,UAAU,IAAIqrS,CAAgB,EAI9E,MAAMC,EAAmB9oB,EAAO,OAAO,OAAO,iBACxC+oB,EAAYD,GAAoB,CAACP,EAAa,OAAO,KAC3D,GAAIvoB,EAAO,YAAcuoB,EAAa,WAAaQ,EAAW,CAC5D,MAAMC,EAAqBT,EAAa,YACxC,IAAIU,EACA9wM,EACJ,GAAIowM,EAAa,OAAO,KAAM,CAC5B,MAAMW,EAAiBX,EAAa,OAAO,KAAK/nB,GAAWA,EAAQ,aAAa,yBAAyB,IAAM,GAAGR,EAAO,SAAS,EAAE,EACpIipB,EAAiBV,EAAa,OAAO,QAAQW,CAAc,EAC3D/wM,EAAY6nL,EAAO,YAAcA,EAAO,cAAgB,OAAS,MACzE,MACQipB,EAAiBjpB,EAAO,UACxB7nL,EAAY8wM,EAAiBjpB,EAAO,cAAgB,OAAS,OAE3D+oB,IACFE,GAAkB9wM,IAAc,OAAS2wM,EAAmB,GAAKA,GAE/DP,EAAa,sBAAwBA,EAAa,qBAAqB,QAAQU,CAAc,EAAI,IAC/FV,EAAa,OAAO,eAClBU,EAAiBD,EACnBC,EAAiBA,EAAiB,KAAK,MAAM3e,EAAgB,CAAC,EAAI,EAElE2e,EAAiBA,EAAiB,KAAK,MAAM3e,EAAgB,CAAC,EAAI,EAE3D2e,EAAiBD,GAAsBT,EAAa,OAAO,eACtEA,EAAa,QAAQU,EAAgBr/Q,EAAU,EAAI,MAAS,EAE/D,CACF,CACD7Z,EAAG,aAAc,IAAM,CACrB,KAAM,CACJ,OAAAo5R,CACN,EAAQnpB,EAAO,OACX,GAAI,GAACmpB,GAAU,CAACA,EAAO,QACvB,GAAI,OAAOA,EAAO,QAAW,UAAYA,EAAO,kBAAkB,YAAa,CAC7E,MAAMl7R,EAAWqpJ,KACX8xI,EAA0B,IAAM,CACpC,MAAMC,EAAgB,OAAOF,EAAO,QAAW,SAAWl7R,EAAS,cAAck7R,EAAO,MAAM,EAAIA,EAAO,OACzG,GAAIE,GAAiBA,EAAc,OACjCF,EAAO,OAASE,EAAc,OAC9BvlR,IACAg6L,EAAO,EAAI,UACFurF,EAAe,CACxB,MAAM/sS,EAAY,GAAG0jR,EAAO,OAAO,YAAY,OACzCspB,EAAiBx8R,GAAK,CAC1Bq8R,EAAO,OAASr8R,EAAE,OAAO,CAAC,EAC1Bu8R,EAAc,oBAAoB/sS,EAAWgtS,CAAc,EAC3DxlR,IACAg6L,EAAO,EAAI,EACXqrF,EAAO,OAAO,SACdnpB,EAAO,OAAM,CACzB,EACUqpB,EAAc,iBAAiB/sS,EAAWgtS,CAAc,CACzD,CACD,OAAOD,CACf,EACYE,EAAyB,IAAM,CACnC,GAAIvpB,EAAO,UAAW,OACAopB,KAEpB,sBAAsBG,CAAsB,CAEtD,EACM,sBAAsBA,CAAsB,CAClD,MACMzlR,IACAg6L,EAAO,EAAI,CAEjB,CAAG,EACD/tM,EAAG,2CAA4C,IAAM,CACnD+tM,GACJ,CAAG,EACD/tM,EAAG,gBAAiB,CAAC6rL,EAAIh6J,IAAa,CACpC,MAAM2mQ,EAAevoB,EAAO,OAAO,OAC/B,CAACuoB,GAAgBA,EAAa,WAClCA,EAAa,cAAc3mQ,CAAQ,CACvC,CAAG,EACD7xB,EAAG,gBAAiB,IAAM,CACxB,MAAMw4R,EAAevoB,EAAO,OAAO,OAC/B,CAACuoB,GAAgBA,EAAa,WAC9BF,GACFE,EAAa,QAAO,CAE1B,CAAG,EACD,OAAO,OAAOvoB,EAAO,OAAQ,CAC3B,KAAAl8P,EACA,OAAAg6L,CACJ,CAAG,CACH,CChMA,SAAS0rF,IAASj2O,EAAM,CACtB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,KAAAV,EACA,KAAA+lB,CACD,EAAGl2O,EACJ6wN,EAAa,CACX,SAAU,CACR,QAAS,GACT,SAAU,GACV,cAAe,EACf,eAAgB,GAChB,oBAAqB,EACrB,sBAAuB,EACvB,OAAQ,GACR,gBAAiB,GAClB,CACL,CAAG,EACD,SAASnyL,GAAe,CACtB,GAAI+tL,EAAO,OAAO,QAAS,OAC3B,MAAMoI,EAAYpI,EAAO,eACzBA,EAAO,aAAaoI,CAAS,EAC7BpI,EAAO,cAAc,CAAC,EACtBA,EAAO,gBAAgB,WAAW,OAAS,EAC3CA,EAAO,SAAS,WAAW,CACzB,WAAYA,EAAO,IAAMA,EAAO,UAAY,CAACA,EAAO,SAC1D,CAAK,CACF,CACD,SAAS9tL,GAAc,CACrB,GAAI8tL,EAAO,OAAO,QAAS,OAC3B,KAAM,CACJ,gBAAiB93P,EACjB,QAAAkvE,CACD,EAAG4oL,EAEA93P,EAAK,WAAW,SAAW,GAC7BA,EAAK,WAAW,KAAK,CACnB,SAAUkvE,EAAQ4oL,EAAO,aAAY,EAAK,SAAW,QAAQ,EAC7D,KAAM93P,EAAK,cACnB,CAAO,EAEHA,EAAK,WAAW,KAAK,CACnB,SAAUkvE,EAAQ4oL,EAAO,aAAY,EAAK,WAAa,UAAU,EACjE,KAAMt4K,GAAK,CACjB,CAAK,CACF,CACD,SAAS+pL,EAAWzvN,EAAO,CACzB,GAAI,CACF,WAAA6vN,CACD,EAAG7vN,EACJ,GAAIg+M,EAAO,OAAO,QAAS,OAC3B,KAAM,CACJ,OAAAljP,EACA,UAAAkoP,EACA,aAAcG,EACd,SAAAM,EACA,gBAAiBv9P,CAClB,EAAG83P,EAGE2R,EADejqL,KACWx/E,EAAK,eACrC,GAAI2pQ,EAAa,CAAC7R,EAAO,eAAgB,CACvCA,EAAO,QAAQA,EAAO,WAAW,EACjC,MACD,CACD,GAAI6R,EAAa,CAAC7R,EAAO,eAAgB,CACnCA,EAAO,OAAO,OAASyF,EAAS,OAClCzF,EAAO,QAAQyF,EAAS,OAAS,CAAC,EAElCzF,EAAO,QAAQA,EAAO,OAAO,OAAS,CAAC,EAEzC,MACD,CACD,GAAIljP,EAAO,SAAS,SAAU,CAC5B,GAAI5U,EAAK,WAAW,OAAS,EAAG,CAC9B,MAAMwhR,EAAgBxhR,EAAK,WAAW,IAAG,EACnCyhR,EAAgBzhR,EAAK,WAAW,IAAG,EACnCjV,EAAWy2R,EAAc,SAAWC,EAAc,SAClDl0Q,EAAOi0Q,EAAc,KAAOC,EAAc,KAChD3pB,EAAO,SAAW/sQ,EAAWwiB,EAC7BuqP,EAAO,UAAY,EACf,KAAK,IAAIA,EAAO,QAAQ,EAAIljP,EAAO,SAAS,kBAC9CkjP,EAAO,SAAW,IAIhBvqP,EAAO,KAAOiyE,GAAK,EAAGgiM,EAAc,KAAO,OAC7C1pB,EAAO,SAAW,EAE5B,MACQA,EAAO,SAAW,EAEpBA,EAAO,UAAYljP,EAAO,SAAS,sBACnC5U,EAAK,WAAW,OAAS,EACzB,IAAIs5Q,EAAmB,IAAO1kQ,EAAO,SAAS,cAC9C,MAAM8sQ,EAAmB5pB,EAAO,SAAWwhB,EAC3C,IAAIpkH,EAAc4iG,EAAO,UAAY4pB,EACjCzkB,IAAK/nG,EAAc,CAACA,GACxB,IAAIysH,EAAW,GACXC,EACJ,MAAMC,EAAe,KAAK,IAAI/pB,EAAO,QAAQ,EAAI,GAAKljP,EAAO,SAAS,oBACtE,IAAIktQ,EACJ,GAAI5sH,EAAc4iG,EAAO,eACnBljP,EAAO,SAAS,gBACdsgJ,EAAc4iG,EAAO,aAAc,EAAG,CAAC+pB,IACzC3sH,EAAc4iG,EAAO,aAAc,EAAG+pB,GAExCD,EAAsB9pB,EAAO,eAC7B6pB,EAAW,GACX3hR,EAAK,oBAAsB,IAE3Bk1J,EAAc4iG,EAAO,eAEnBljP,EAAO,MAAQA,EAAO,iBAAgBktQ,EAAe,YAChD5sH,EAAc4iG,EAAO,eAC1BljP,EAAO,SAAS,gBACdsgJ,EAAc4iG,EAAO,aAAY,EAAK+pB,IACxC3sH,EAAc4iG,EAAO,aAAc,EAAG+pB,GAExCD,EAAsB9pB,EAAO,eAC7B6pB,EAAW,GACX3hR,EAAK,oBAAsB,IAE3Bk1J,EAAc4iG,EAAO,eAEnBljP,EAAO,MAAQA,EAAO,iBAAgBktQ,EAAe,YAChDltQ,EAAO,SAAS,OAAQ,CACjC,IAAIktP,EACJ,QAASp5Q,EAAI,EAAGA,EAAI60Q,EAAS,OAAQ70Q,GAAK,EACxC,GAAI60Q,EAAS70Q,CAAC,EAAI,CAACwsK,EAAa,CAC9B4sG,EAAYp5Q,EACZ,KACD,CAEC,KAAK,IAAI60Q,EAASuE,CAAS,EAAI5sG,CAAW,EAAI,KAAK,IAAIqoG,EAASuE,EAAY,CAAC,EAAI5sG,CAAW,GAAK4iG,EAAO,iBAAmB,OAC7H5iG,EAAcqoG,EAASuE,CAAS,EAEhC5sG,EAAcqoG,EAASuE,EAAY,CAAC,EAEtC5sG,EAAc,CAACA,CAChB,CAOD,GANI4sH,GACFP,EAAK,gBAAiB,IAAM,CAC1BzpB,EAAO,QAAO,CACxB,CAAS,EAGCA,EAAO,WAAa,GAMtB,GALImF,EACFqc,EAAmB,KAAK,KAAK,CAACpkH,EAAc4iG,EAAO,WAAaA,EAAO,QAAQ,EAE/EwhB,EAAmB,KAAK,KAAKpkH,EAAc4iG,EAAO,WAAaA,EAAO,QAAQ,EAE5EljP,EAAO,SAAS,OAAQ,CAQ1B,MAAMmtQ,EAAe,KAAK,KAAK9kB,EAAM,CAAC/nG,EAAcA,GAAe4iG,EAAO,SAAS,EAC7EkqB,EAAmBlqB,EAAO,gBAAgBA,EAAO,WAAW,EAC9DiqB,EAAeC,EACjB1I,EAAmB1kQ,EAAO,MACjBmtQ,EAAe,EAAIC,EAC5B1I,EAAmB1kQ,EAAO,MAAQ,IAElC0kQ,EAAmB1kQ,EAAO,MAAQ,GAErC,UACQA,EAAO,SAAS,OAAQ,CACjCkjP,EAAO,eAAc,EACrB,MACD,CACGljP,EAAO,SAAS,gBAAkB+sQ,GACpC7pB,EAAO,eAAe8pB,CAAmB,EACzC9pB,EAAO,cAAcwhB,CAAgB,EACrCxhB,EAAO,aAAa5iG,CAAW,EAC/B4iG,EAAO,gBAAgB,GAAMA,EAAO,cAAc,EAClDA,EAAO,UAAY,GACnB6B,GAAqBmD,EAAW,IAAM,CAChC,CAAChF,GAAUA,EAAO,WAAa,CAAC93P,EAAK,sBACzCw7P,EAAK,gBAAgB,EACrB1D,EAAO,cAAcljP,EAAO,KAAK,EACjC,WAAW,IAAM,CACfkjP,EAAO,aAAa8pB,CAAmB,EACvCjoB,GAAqBmD,EAAW,IAAM,CAChC,CAAChF,GAAUA,EAAO,WACtBA,EAAO,cAAa,CAClC,CAAa,CACF,EAAE,CAAC,EACd,CAAS,GACQA,EAAO,UAChB0D,EAAK,4BAA4B,EACjC1D,EAAO,eAAe5iG,CAAW,EACjC4iG,EAAO,cAAcwhB,CAAgB,EACrCxhB,EAAO,aAAa5iG,CAAW,EAC/B4iG,EAAO,gBAAgB,GAAMA,EAAO,cAAc,EAC7CA,EAAO,YACVA,EAAO,UAAY,GACnB6B,GAAqBmD,EAAW,IAAM,CAChC,CAAChF,GAAUA,EAAO,WACtBA,EAAO,cAAa,CAChC,CAAW,IAGHA,EAAO,eAAe5iG,CAAW,EAEnC4iG,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,CAChC,SAAeljP,EAAO,SAAS,OAAQ,CACjCkjP,EAAO,eAAc,EACrB,MACN,MAAeljP,EAAO,UAChB4mP,EAAK,4BAA4B,GAE/B,CAAC5mP,EAAO,SAAS,UAAY60P,GAAY70P,EAAO,gBAClD4mP,EAAK,wBAAwB,EAC7B1D,EAAO,eAAc,EACrBA,EAAO,kBAAiB,EACxBA,EAAO,oBAAmB,EAE7B,CACD,OAAO,OAAOA,EAAQ,CACpB,SAAU,CACR,aAAA/tL,EACA,YAAAC,EACA,WAAAu/L,CACD,CACL,CAAG,CACH,CC1OA,SAAS0Y,IAAK52O,EAAM,CAClB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,KAAM,CACJ,KAAM,EACN,KAAM,QACP,CACL,CAAG,EACD,IAAIgmB,EACAC,EACAC,EACAlX,EACJ,MAAMmX,EAAkB,IAAM,CAC5B,IAAIvkB,EAAehG,EAAO,OAAO,aACjC,OAAI,OAAOgG,GAAiB,UAAYA,EAAa,QAAQ,GAAG,GAAK,EACnEA,EAAe,WAAWA,EAAa,QAAQ,IAAK,EAAE,CAAC,EAAI,IAAMhG,EAAO,KAC/D,OAAOgG,GAAiB,WACjCA,EAAe,WAAWA,CAAY,GAEjCA,CACX,EACQoI,EAAa7I,GAAU,CAC3B,KAAM,CACJ,cAAA+E,CACN,EAAQtK,EAAO,OACL,CACJ,KAAAvhB,EACA,KAAA+rC,CACN,EAAQxqB,EAAO,OAAO,KACZwF,EAAexF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,QAAQ,OAAO,OAASuF,EAAO,OAC7G+kB,EAAiB,KAAK,MAAM9kB,EAAe/mB,CAAI,EAC3C,KAAK,MAAM+mB,EAAe/mB,CAAI,IAAM+mB,EAAe/mB,EACrD2rC,EAAyB5kB,EAEzB4kB,EAAyB,KAAK,KAAK5kB,EAAe/mB,CAAI,EAAIA,EAExD6rB,IAAkB,QAAUkgB,IAAS,QACvCJ,EAAyB,KAAK,IAAIA,EAAwB9f,EAAgB7rB,CAAI,GAEhF4rC,EAAeD,EAAyB3rC,CAC5C,EACQgsC,EAAc,IAAM,CACpBzqB,EAAO,QACTA,EAAO,OAAO,QAAQrU,GAAS,CACzBA,EAAM,qBACRA,EAAM,MAAM,OAAS,GACrBA,EAAM,MAAMqU,EAAO,kBAAkB,YAAY,CAAC,EAAI,GAEhE,CAAO,CAEP,EACQ0qB,EAAc,CAACltS,EAAGmuQ,EAAO4Z,IAAW,CACxC,KAAM,CACJ,eAAA8I,CACN,EAAQrO,EAAO,OACLgG,EAAeukB,IACf,CACJ,KAAA9rC,EACA,KAAA+rC,CACN,EAAQxqB,EAAO,OAAO,KACZwF,EAAexF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,QAAQ,OAAO,OAASuF,EAAO,OAE7G,IAAIolB,EACAx0N,EACAyxH,EACJ,GAAI4iG,IAAS,OAASnc,EAAiB,EAAG,CACxC,MAAMvzL,EAAa,KAAK,MAAMt9F,GAAK6wR,EAAiB5vB,EAAK,EACnDmsC,EAAoBptS,EAAIihQ,EAAO4vB,EAAiBvzL,EAChD+vM,EAAiB/vM,IAAe,EAAIuzL,EAAiB,KAAK,IAAI,KAAK,MAAM7I,EAAe1qL,EAAa2jK,EAAO4vB,GAAkB5vB,CAAI,EAAG4vB,CAAc,EACzJzmF,EAAM,KAAK,MAAMgjG,EAAoBC,CAAc,EACnD10N,EAASy0N,EAAoBhjG,EAAMijG,EAAiB/vM,EAAauzL,EACjEsc,EAAqBx0N,EAASyxH,EAAMwiG,EAAyB3rC,EAC7DkN,EAAM,MAAM,MAAQg/B,CAC1B,MAAeH,IAAS,UAClBr0N,EAAS,KAAK,MAAM34E,EAAIihQ,CAAI,EAC5B72D,EAAMpqM,EAAI24E,EAASsoL,GACftoL,EAASm0N,GAAkBn0N,IAAWm0N,GAAkB1iG,IAAQ62D,EAAO,KACzE72D,GAAO,EACHA,GAAO62D,IACT72D,EAAM,EACNzxH,GAAU,MAIdyxH,EAAM,KAAK,MAAMpqM,EAAI6sS,CAAY,EACjCl0N,EAAS34E,EAAIoqM,EAAMyiG,GAErB1+B,EAAM,IAAM/jE,EACZ+jE,EAAM,OAASx1L,EACfw1L,EAAM,MAAM,OAAS,iBAAiBlN,EAAO,GAAKunB,CAAY,SAASvnB,CAAI,IAC3EkN,EAAM,MAAMqU,EAAO,kBAAkB,YAAY,CAAC,EAAIp4E,IAAQ,EAAIo+E,GAAgB,GAAGA,CAAY,KAAO,GACxGra,EAAM,mBAAqB,EAC/B,EACQm/B,EAAoB,CAAC1kB,EAAWX,IAAa,CACjD,KAAM,CACJ,eAAAuH,EACA,aAAA+d,CACN,EAAQ/qB,EAAO,OACLgG,EAAeukB,IACf,CACJ,KAAA9rC,CACN,EAAQuhB,EAAO,OAAO,KAMlB,GALAA,EAAO,aAAeoG,EAAYJ,GAAgBokB,EAClDpqB,EAAO,YAAc,KAAK,KAAKA,EAAO,YAAcvhB,CAAI,EAAIunB,EACvDhG,EAAO,OAAO,UACjBA,EAAO,UAAU,MAAMA,EAAO,kBAAkB,OAAO,CAAC,EAAI,GAAGA,EAAO,YAAcgG,CAAY,MAE9FgH,EAAgB,CAClB,MAAMjG,EAAgB,GACtB,QAASvpR,EAAI,EAAGA,EAAIioR,EAAS,OAAQjoR,GAAK,EAAG,CAC3C,IAAIwpR,EAAiBvB,EAASjoR,CAAC,EAC3ButS,IAAc/jB,EAAiB,KAAK,MAAMA,CAAc,GACxDvB,EAASjoR,CAAC,EAAIwiR,EAAO,YAAcyF,EAAS,CAAC,GAAGsB,EAAc,KAAKC,CAAc,CACtF,CACDvB,EAAS,OAAO,EAAGA,EAAS,MAAM,EAClCA,EAAS,KAAK,GAAGsB,CAAa,CAC/B,CACL,EACQikB,EAAS,IAAM,CACnB5X,EAAcpT,EAAO,OAAO,MAAQA,EAAO,OAAO,KAAK,KAAO,CAClE,EACQvH,EAAW,IAAM,CACrB,KAAM,CACJ,OAAA37O,EACA,GAAA9gB,CACD,EAAGgkQ,EACEqT,EAAav2P,EAAO,MAAQA,EAAO,KAAK,KAAO,EACjDs2P,GAAe,CAACC,GAClBr3Q,EAAG,UAAU,OAAO,GAAG8gB,EAAO,sBAAsB,OAAQ,GAAGA,EAAO,sBAAsB,aAAa,EACzGwtQ,EAAiB,EACjBtqB,EAAO,qBAAoB,GAClB,CAACoT,GAAeC,IACzBr3Q,EAAG,UAAU,IAAI,GAAG8gB,EAAO,sBAAsB,MAAM,EACnDA,EAAO,KAAK,OAAS,UACvB9gB,EAAG,UAAU,IAAI,GAAG8gB,EAAO,sBAAsB,aAAa,EAEhEkjP,EAAO,qBAAoB,GAE7BoT,EAAcC,CAClB,EACEtjR,EAAG,OAAQi7R,CAAM,EACjBj7R,EAAG,SAAU0oQ,CAAQ,EACrBuH,EAAO,KAAO,CACZ,WAAAoO,EACA,YAAAqc,EACA,YAAAC,EACA,kBAAAI,CACJ,CACA,CCxJA,SAASpT,IAAYnS,EAAQ,CAC3B,MAAMvF,EAAS,KACT,CACJ,OAAAljP,EACA,SAAAmoP,CACD,EAAGjF,EACAljP,EAAO,MACTkjP,EAAO,YAAW,EAEpB,MAAMirB,EAAgBzqB,GAAW,CAC/B,GAAI,OAAOA,GAAY,SAAU,CAC/B,MAAM8V,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,UAAY9V,EACpByE,EAAS,OAAOqR,EAAQ,SAAS,CAAC,CAAC,EACnCA,EAAQ,UAAY,EAC1B,MACMrR,EAAS,OAAOzE,CAAO,CAE7B,EACE,GAAI,OAAO+E,GAAW,UAAY,WAAYA,EAC5C,QAAS,EAAI,EAAG,EAAIA,EAAO,OAAQ,GAAK,EAClCA,EAAO,CAAC,GAAG0lB,EAAc1lB,EAAO,CAAC,CAAC,OAGxC0lB,EAAc1lB,CAAM,EAEtBvF,EAAO,aAAY,EACfljP,EAAO,MACTkjP,EAAO,WAAU,GAEf,CAACljP,EAAO,UAAYkjP,EAAO,YAC7BA,EAAO,OAAM,CAEjB,CAEA,SAAS2X,IAAapS,EAAQ,CAC5B,MAAMvF,EAAS,KACT,CACJ,OAAAljP,EACA,YAAA8sP,EACA,SAAA3E,CACD,EAAGjF,EACAljP,EAAO,MACTkjP,EAAO,YAAW,EAEpB,IAAI6K,EAAiBjB,EAAc,EACnC,MAAMshB,EAAiB1qB,GAAW,CAChC,GAAI,OAAOA,GAAY,SAAU,CAC/B,MAAM8V,EAAU,SAAS,cAAc,KAAK,EAC5CA,EAAQ,UAAY9V,EACpByE,EAAS,QAAQqR,EAAQ,SAAS,CAAC,CAAC,EACpCA,EAAQ,UAAY,EAC1B,MACMrR,EAAS,QAAQzE,CAAO,CAE9B,EACE,GAAI,OAAO+E,GAAW,UAAY,WAAYA,EAAQ,CACpD,QAAS/nR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAClC+nR,EAAO/nR,CAAC,GAAG0tS,EAAe3lB,EAAO/nR,CAAC,CAAC,EAEzCqtR,EAAiBjB,EAAcrE,EAAO,MAC1C,MACI2lB,EAAe3lB,CAAM,EAEvBvF,EAAO,aAAY,EACfljP,EAAO,MACTkjP,EAAO,WAAU,GAEf,CAACljP,EAAO,UAAYkjP,EAAO,YAC7BA,EAAO,OAAM,EAEfA,EAAO,QAAQ6K,EAAgB,EAAG,EAAK,CACzC,CAEA,SAASsgB,IAASvkS,EAAO2+Q,EAAQ,CAC/B,MAAMvF,EAAS,KACT,CACJ,OAAAljP,EACA,YAAA8sP,EACA,SAAA3E,CACD,EAAGjF,EACJ,IAAIorB,EAAoBxhB,EACpB9sP,EAAO,OACTsuQ,GAAqBprB,EAAO,aAC5BA,EAAO,YAAW,EAClBA,EAAO,aAAY,GAErB,MAAMqrB,EAAarrB,EAAO,OAAO,OACjC,GAAIp5Q,GAAS,EAAG,CACdo5Q,EAAO,aAAauF,CAAM,EAC1B,MACD,CACD,GAAI3+Q,GAASykS,EAAY,CACvBrrB,EAAO,YAAYuF,CAAM,EACzB,MACD,CACD,IAAIsF,EAAiBugB,EAAoBxkS,EAAQwkS,EAAoB,EAAIA,EACzE,MAAME,EAAe,GACrB,QAAS9tS,EAAI6tS,EAAa,EAAG7tS,GAAKoJ,EAAOpJ,GAAK,EAAG,CAC/C,MAAM+tS,EAAevrB,EAAO,OAAOxiR,CAAC,EACpC+tS,EAAa,OAAM,EACnBD,EAAa,QAAQC,CAAY,CAClC,CACD,GAAI,OAAOhmB,GAAW,UAAY,WAAYA,EAAQ,CACpD,QAAS/nR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAClC+nR,EAAO/nR,CAAC,GAAGynR,EAAS,OAAOM,EAAO/nR,CAAC,CAAC,EAE1CqtR,EAAiBugB,EAAoBxkS,EAAQwkS,EAAoB7lB,EAAO,OAAS6lB,CACrF,MACInmB,EAAS,OAAOM,CAAM,EAExB,QAAS/nR,EAAI,EAAGA,EAAI8tS,EAAa,OAAQ9tS,GAAK,EAC5CynR,EAAS,OAAOqmB,EAAa9tS,CAAC,CAAC,EAEjCwiR,EAAO,aAAY,EACfljP,EAAO,MACTkjP,EAAO,WAAU,GAEf,CAACljP,EAAO,UAAYkjP,EAAO,YAC7BA,EAAO,OAAM,EAEXljP,EAAO,KACTkjP,EAAO,QAAQ6K,EAAiB7K,EAAO,aAAc,EAAG,EAAK,EAE7DA,EAAO,QAAQ6K,EAAgB,EAAG,EAAK,CAE3C,CAEA,SAASmN,IAAYC,EAAe,CAClC,MAAMjY,EAAS,KACT,CACJ,OAAAljP,EACA,YAAA8sP,CACD,EAAG5J,EACJ,IAAIorB,EAAoBxhB,EACpB9sP,EAAO,OACTsuQ,GAAqBprB,EAAO,aAC5BA,EAAO,YAAW,GAEpB,IAAI6K,EAAiBugB,EACjBxvB,EACJ,GAAI,OAAOqc,GAAkB,UAAY,WAAYA,EAAe,CAClE,QAASz6R,EAAI,EAAGA,EAAIy6R,EAAc,OAAQz6R,GAAK,EAC7Co+Q,EAAgBqc,EAAcz6R,CAAC,EAC3BwiR,EAAO,OAAOpE,CAAa,GAAGoE,EAAO,OAAOpE,CAAa,EAAE,SAC3DA,EAAgBiP,IAAgBA,GAAkB,GAExDA,EAAiB,KAAK,IAAIA,EAAgB,CAAC,CAC/C,MACIjP,EAAgBqc,EACZjY,EAAO,OAAOpE,CAAa,GAAGoE,EAAO,OAAOpE,CAAa,EAAE,SAC3DA,EAAgBiP,IAAgBA,GAAkB,GACtDA,EAAiB,KAAK,IAAIA,EAAgB,CAAC,EAE7C7K,EAAO,aAAY,EACfljP,EAAO,MACTkjP,EAAO,WAAU,GAEf,CAACljP,EAAO,UAAYkjP,EAAO,YAC7BA,EAAO,OAAM,EAEXljP,EAAO,KACTkjP,EAAO,QAAQ6K,EAAiB7K,EAAO,aAAc,EAAG,EAAK,EAE7DA,EAAO,QAAQ6K,EAAgB,EAAG,EAAK,CAE3C,CAEA,SAASqN,KAAkB,CACzB,MAAMlY,EAAS,KACTiY,EAAgB,GACtB,QAASz6R,EAAI,EAAGA,EAAIwiR,EAAO,OAAO,OAAQxiR,GAAK,EAC7Cy6R,EAAc,KAAKz6R,CAAC,EAEtBwiR,EAAO,YAAYiY,CAAa,CAClC,CAEA,SAASuT,IAAaj4O,EAAM,CAC1B,GAAI,CACF,OAAAysN,CACD,EAAGzsN,EACJ,OAAO,OAAOysN,EAAQ,CACpB,YAAa0X,IAAY,KAAK1X,CAAM,EACpC,aAAc2X,IAAa,KAAK3X,CAAM,EACtC,SAAUmrB,IAAS,KAAKnrB,CAAM,EAC9B,YAAagY,IAAY,KAAKhY,CAAM,EACpC,gBAAiBkY,IAAgB,KAAKlY,CAAM,CAChD,CAAG,CACH,CC5LA,SAASyrB,GAAW3uQ,EAAQ,CAC1B,KAAM,CACJ,OAAA4uQ,EACA,OAAA1rB,EACA,GAAAjwQ,EACA,aAAA27Q,EACA,cAAAW,EACA,gBAAAsf,EACA,YAAAC,EACA,gBAAAC,EACA,gBAAAC,CACD,EAAGhvQ,EACJ/sB,EAAG,aAAc,IAAM,CACrB,GAAIiwQ,EAAO,OAAO,SAAW0rB,EAAQ,OACrC1rB,EAAO,WAAW,KAAK,GAAGA,EAAO,OAAO,sBAAsB,GAAG0rB,CAAM,EAAE,EACrEE,GAAeA,KACjB5rB,EAAO,WAAW,KAAK,GAAGA,EAAO,OAAO,sBAAsB,IAAI,EAEpE,MAAM+rB,EAAwBJ,EAAkBA,EAAe,EAAK,GACpE,OAAO,OAAO3rB,EAAO,OAAQ+rB,CAAqB,EAClD,OAAO,OAAO/rB,EAAO,eAAgB+rB,CAAqB,CAC9D,CAAG,EACDh8R,EAAG,eAAgB,IAAM,CACnBiwQ,EAAO,OAAO,SAAW0rB,GAC7BhgB,GACJ,CAAG,EACD37Q,EAAG,gBAAiB,CAAC6rL,EAAIh6J,IAAa,CAChCo+O,EAAO,OAAO,SAAW0rB,GAC7Brf,EAAczqP,CAAQ,CAC1B,CAAG,EACD7xB,EAAG,gBAAiB,IAAM,CACxB,GAAIiwQ,EAAO,OAAO,SAAW0rB,GACzBG,EAAiB,CACnB,GAAI,CAACC,GAAmB,CAACA,EAAiB,EAAC,aAAc,OAEzD9rB,EAAO,OAAO,QAAQQ,GAAW,CAC/BA,EAAQ,iBAAiB,8GAA8G,EAAE,QAAQwrB,GAAYA,EAAS,OAAM,CAAE,CACtL,CAAO,EAEDH,GACD,CACL,CAAG,EACD,IAAII,EACJl8R,EAAG,gBAAiB,IAAM,CACpBiwQ,EAAO,OAAO,SAAW0rB,IACxB1rB,EAAO,OAAO,SACjBisB,EAAyB,IAE3B,sBAAsB,IAAM,CACtBA,GAA0BjsB,EAAO,QAAUA,EAAO,OAAO,SAC3D0L,IACAugB,EAAyB,GAEjC,CAAK,EACL,CAAG,CACH,CCrDA,SAASC,GAAaC,EAAc3rB,EAAS,CAC3C,MAAM4rB,EAAc7rB,GAAoBC,CAAO,EAC/C,OAAI4rB,IAAgB5rB,IAClB4rB,EAAY,MAAM,mBAAqB,SACvCA,EAAY,MAAM,6BAA6B,EAAI,UAE9CA,CACT,CCPA,SAASC,GAA2B94O,EAAM,CACxC,GAAI,CACF,OAAAysN,EACA,SAAAp+O,EACA,kBAAA0qQ,EACA,UAAAC,CACD,EAAGh5O,EACJ,KAAM,CACJ,YAAAq2N,CACD,EAAG5J,EACEwsB,EAAWxwR,GACVA,EAAG,cAKDA,EAAG,cAHMgkQ,EAAO,OAAO,KAAKQ,GAAWA,EAAQ,YAAcA,EAAQ,aAAexkQ,EAAG,UAAU,EAK1G,GAAIgkQ,EAAO,OAAO,kBAAoBp+O,IAAa,EAAG,CACpD,IAAI6qQ,EAAiB,GACjBC,EACAH,EACFG,EAAsBJ,EAEtBI,EAAsBJ,EAAkB,OAAOF,GAAe,CAC5D,MAAMpwR,EAAKowR,EAAY,UAAU,SAAS,wBAAwB,EAAII,EAASJ,CAAW,EAAIA,EAC9F,OAAOpsB,EAAO,cAAchkQ,CAAE,IAAM4tQ,CAC5C,CAAO,EAEH8iB,EAAoB,QAAQ1wR,GAAM,CAChC6lQ,GAAqB7lQ,EAAI,IAAM,CAE7B,GADIywR,GACA,CAACzsB,GAAUA,EAAO,UAAW,OACjCysB,EAAiB,GACjBzsB,EAAO,UAAY,GACnB,MAAM5jP,EAAM,IAAI,OAAO,YAAY,gBAAiB,CAClD,QAAS,GACT,WAAY,EACtB,CAAS,EACD4jP,EAAO,UAAU,cAAc5jP,CAAG,CAC1C,CAAO,CACP,CAAK,CACF,CACH,CCxCA,SAASuwQ,IAAWp5O,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,WAAY,CACV,UAAW,EACZ,CACL,CAAG,EAkCDqnB,GAAW,CACT,OAAQ,OACR,OAAAzrB,EACA,GAAAjwQ,EACA,aArCmB,IAAM,CACzB,KAAM,CACJ,OAAAw1Q,CACD,EAAGvF,EACEljP,EAASkjP,EAAO,OAAO,WAC7B,QAASxiR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAAG,CACzC,MAAMgjR,EAAUR,EAAO,OAAOxiR,CAAC,EAE/B,IAAIovS,EAAK,CADMpsB,EAAQ,kBAElBR,EAAO,OAAO,mBAAkB4sB,GAAM5sB,EAAO,WAClD,IAAI6sB,EAAK,EACJ7sB,EAAO,iBACV6sB,EAAKD,EACLA,EAAK,GAEP,MAAME,EAAe9sB,EAAO,OAAO,WAAW,UAAY,KAAK,IAAI,EAAI,KAAK,IAAIQ,EAAQ,QAAQ,EAAG,CAAC,EAAI,EAAI,KAAK,IAAI,KAAK,IAAIA,EAAQ,SAAU,EAAE,EAAG,CAAC,EAChJ+P,EAAW2b,GAAapvQ,EAAQ0jP,CAAO,EAC7C+P,EAAS,MAAM,QAAUuc,EACzBvc,EAAS,MAAM,UAAY,eAAeqc,CAAE,OAAOC,CAAE,UACtD,CACL,EAkBI,cAjBoBjrQ,GAAY,CAChC,MAAM0qQ,EAAoBtsB,EAAO,OAAO,IAAIQ,GAAWD,GAAoBC,CAAO,CAAC,EACnF8rB,EAAkB,QAAQtwR,GAAM,CAC9BA,EAAG,MAAM,mBAAqB,GAAG4lB,CAAQ,IAC/C,CAAK,EACDyqQ,GAA2B,CACzB,OAAArsB,EACA,SAAAp+O,EACA,kBAAA0qQ,EACA,UAAW,EACjB,CAAK,CACL,EAOI,gBAAiB,KAAO,CACtB,cAAe,EACf,eAAgB,EAChB,oBAAqB,GACrB,aAAc,EACd,iBAAkB,CAACtsB,EAAO,OAAO,OACvC,EACA,CAAG,CACH,CC5DA,SAAS+sB,IAAWx5O,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,WAAY,CACV,aAAc,GACd,OAAQ,GACR,aAAc,GACd,YAAa,GACd,CACL,CAAG,EACD,MAAM4oB,EAAqB,CAACxsB,EAAS3zB,EAAUogD,IAAiB,CAC9D,IAAIC,EAAeD,EAAezsB,EAAQ,cAAc,2BAA2B,EAAIA,EAAQ,cAAc,0BAA0B,EACnI2sB,EAAcF,EAAezsB,EAAQ,cAAc,4BAA4B,EAAIA,EAAQ,cAAc,6BAA6B,EACrI0sB,IACHA,EAAejvN,GAAc,MAAO,gDAAgDgvN,EAAe,OAAS,KAAK,GAAG,MAAM,GAAG,CAAC,EAC9HzsB,EAAQ,OAAO0sB,CAAY,GAExBC,IACHA,EAAclvN,GAAc,MAAO,gDAAgDgvN,EAAe,QAAU,QAAQ,GAAG,MAAM,GAAG,CAAC,EACjIzsB,EAAQ,OAAO2sB,CAAW,GAExBD,IAAcA,EAAa,MAAM,QAAU,KAAK,IAAI,CAACrgD,EAAU,CAAC,GAChEsgD,IAAaA,EAAY,MAAM,QAAU,KAAK,IAAItgD,EAAU,CAAC,EACrE,EA0HE4+C,GAAW,CACT,OAAQ,OACR,OAAAzrB,EACA,GAAAjwQ,EACA,aArHmB,IAAM,CACzB,KAAM,CACJ,GAAAiM,EACA,UAAAgpQ,EACA,OAAAO,EACA,MAAOqT,EACP,OAAQC,EACR,aAAc1T,EACd,KAAMD,EACN,QAAA30N,CACD,EAAGyvN,EACE39O,EAAI6/O,GAAalC,CAAM,EACvBljP,EAASkjP,EAAO,OAAO,WACvBitB,EAAejtB,EAAO,eACtBqF,EAAYrF,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAC1D,IAAIotB,EAAgB,EAChBC,EACAvwQ,EAAO,SACLmwQ,GACFI,EAAertB,EAAO,UAAU,cAAc,qBAAqB,EAC9DqtB,IACHA,EAAepvN,GAAc,MAAO,oBAAoB,EACxD+hM,EAAO,UAAU,OAAOqtB,CAAY,GAEtCA,EAAa,MAAM,OAAS,GAAGzU,CAAW,OAE1CyU,EAAerxR,EAAG,cAAc,qBAAqB,EAChDqxR,IACHA,EAAepvN,GAAc,MAAO,oBAAoB,EACxDjiE,EAAG,OAAOqxR,CAAY,KAI5B,QAAS7vS,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAAG,CACzC,MAAMgjR,EAAU+E,EAAO/nR,CAAC,EACxB,IAAI0/Q,EAAa1/Q,EACb6nR,IACFnI,EAAa,SAASsD,EAAQ,aAAa,yBAAyB,EAAG,EAAE,GAE3E,IAAI8sB,EAAapwB,EAAa,GAC1Bn2J,EAAQ,KAAK,MAAMumL,EAAa,GAAG,EACnCnoB,IACFmoB,EAAa,CAACA,EACdvmL,EAAQ,KAAK,MAAM,CAACumL,EAAa,GAAG,GAEtC,MAAMzgD,EAAW,KAAK,IAAI,KAAK,IAAI2zB,EAAQ,SAAU,CAAC,EAAG,EAAE,EAC3D,IAAIosB,EAAK,EACLC,EAAK,EACLp9G,GAAK,EACLytF,EAAa,IAAM,GACrB0vB,EAAK,CAAC7lL,EAAQ,EAAIm+J,EAClBz1F,GAAK,IACKytF,EAAa,GAAK,IAAM,GAClC0vB,EAAK,EACLn9G,GAAK,CAAC1oE,EAAQ,EAAIm+J,IACRhI,EAAa,GAAK,IAAM,GAClC0vB,EAAK1nB,EAAan+J,EAAQ,EAAIm+J,EAC9Bz1F,GAAKy1F,IACKhI,EAAa,GAAK,IAAM,IAClC0vB,EAAK,CAAC1nB,EACNz1F,GAAK,EAAIy1F,EAAaA,EAAa,EAAIn+J,GAErCo+J,IACFynB,EAAK,CAACA,GAEHK,IACHJ,EAAKD,EACLA,EAAK,GAEP,MAAM31O,GAAY,WAAW50B,EAAE4qQ,EAAe,EAAI,CAACK,CAAU,CAAC,gBAAgBjrQ,EAAE4qQ,EAAeK,EAAa,CAAC,CAAC,oBAAoBV,CAAE,OAAOC,CAAE,OAAOp9G,EAAE,MAClJo9D,GAAY,GAAKA,EAAW,KAC9BugD,EAAgBlwB,EAAa,GAAKrwB,EAAW,GACzCs4B,IAAKioB,EAAgB,CAAClwB,EAAa,GAAKrwB,EAAW,KAEzD2zB,EAAQ,MAAM,UAAYvpN,GACtBn6B,EAAO,cACTkwQ,EAAmBxsB,EAAS3zB,EAAUogD,CAAY,CAErD,CAGD,GAFAjoB,EAAU,MAAM,gBAAkB,YAAYE,EAAa,CAAC,KAC5DF,EAAU,MAAM,0BAA0B,EAAI,YAAYE,EAAa,CAAC,KACpEpoP,EAAO,OACT,GAAImwQ,EACFI,EAAa,MAAM,UAAY,oBAAoBzU,EAAc,EAAI97P,EAAO,YAAY,OAAO,CAAC87P,EAAc,CAAC,6CAA6C97P,EAAO,WAAW,QACzK,CACL,MAAMywQ,EAAc,KAAK,IAAIH,CAAa,EAAI,KAAK,MAAM,KAAK,IAAIA,CAAa,EAAI,EAAE,EAAI,GACnF1+G,EAAa,KAAO,KAAK,IAAI6+G,EAAc,EAAI,KAAK,GAAK,GAAG,EAAI,EAAI,KAAK,IAAIA,EAAc,EAAI,KAAK,GAAK,GAAG,EAAI,GAChHC,EAAS1wQ,EAAO,YAChB2wQ,EAAS3wQ,EAAO,YAAc4xJ,EAC9B/wJ,EAASb,EAAO,aACtBuwQ,EAAa,MAAM,UAAY,WAAWG,CAAM,QAAQC,CAAM,sBAAsB5U,EAAe,EAAIl7P,CAAM,OAAO,CAACk7P,EAAe,EAAI4U,CAAM,wBAC/I,CAEH,MAAMC,GAAWn9O,EAAQ,UAAYA,EAAQ,YAAcA,EAAQ,mBAAqB,CAAC20N,EAAa,EAAI,EAC1GF,EAAU,MAAM,UAAY,qBAAqB0oB,CAAO,eAAerrQ,EAAE29O,EAAO,eAAiB,EAAIotB,CAAa,CAAC,gBAAgB/qQ,EAAE29O,EAAO,eAAiB,CAACotB,EAAgB,CAAC,CAAC,OAChLpoB,EAAU,MAAM,YAAY,4BAA6B,GAAG0oB,CAAO,IAAI,CAC3E,EAsBI,cArBoB9rQ,GAAY,CAChC,KAAM,CACJ,GAAA5lB,EACA,OAAAupQ,CACD,EAAGvF,EAOJ,GANAuF,EAAO,QAAQ/E,GAAW,CACxBA,EAAQ,MAAM,mBAAqB,GAAG5+O,CAAQ,KAC9C4+O,EAAQ,iBAAiB,8GAA8G,EAAE,QAAQoa,GAAS,CACxJA,EAAM,MAAM,mBAAqB,GAAGh5P,CAAQ,IACpD,CAAO,CACP,CAAK,EACGo+O,EAAO,OAAO,WAAW,QAAU,CAACA,EAAO,eAAgB,CAC7D,MAAMgsB,EAAWhwR,EAAG,cAAc,qBAAqB,EACnDgwR,IAAUA,EAAS,MAAM,mBAAqB,GAAGpqQ,CAAQ,KAC9D,CACL,EAOI,gBA/HsB,IAAM,CAE5B,MAAMqrQ,EAAejtB,EAAO,eAC5BA,EAAO,OAAO,QAAQQ,GAAW,CAC/B,MAAM3zB,EAAW,KAAK,IAAI,KAAK,IAAI2zB,EAAQ,SAAU,CAAC,EAAG,EAAE,EAC3DwsB,EAAmBxsB,EAAS3zB,EAAUogD,CAAY,CACxD,CAAK,CACL,EAyHI,gBAAiB,IAAMjtB,EAAO,OAAO,WACrC,YAAa,IAAM,GACnB,gBAAiB,KAAO,CACtB,cAAe,EACf,eAAgB,EAChB,oBAAqB,GACrB,gBAAiB,EACjB,aAAc,EACd,eAAgB,GAChB,iBAAkB,EACxB,EACA,CAAG,CACH,CCzKA,SAAS2tB,GAAar7Q,EAAQkuP,EAASN,EAAM,CAC3C,MAAM0tB,EAAc,sBAAsB1tB,EAAO,IAAIA,CAAI,GAAK,EAAE,GAAG5tP,EAAS,wBAAwBA,CAAM,GAAK,EAAE,GAC3Gu7Q,EAAkBttB,GAAoBC,CAAO,EACnD,IAAIwrB,EAAW6B,EAAgB,cAAc,IAAID,EAAY,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,EACnF,OAAK5B,IACHA,EAAW/tN,GAAc,MAAO2vN,EAAY,MAAM,GAAG,CAAC,EACtDC,EAAgB,OAAO7B,CAAQ,GAE1BA,CACT,CCLA,SAAS8B,IAAWv6O,EAAM,CACxB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,WAAY,CACV,aAAc,GACd,cAAe,EAChB,CACL,CAAG,EACD,MAAM4oB,EAAqB,CAACxsB,EAAS3zB,IAAa,CAChD,IAAIqgD,EAAeltB,EAAO,aAAY,EAAKQ,EAAQ,cAAc,2BAA2B,EAAIA,EAAQ,cAAc,0BAA0B,EAC5I2sB,EAAcntB,EAAO,aAAY,EAAKQ,EAAQ,cAAc,4BAA4B,EAAIA,EAAQ,cAAc,6BAA6B,EAC9I0sB,IACHA,EAAeS,GAAa,OAAQntB,EAASR,EAAO,aAAc,EAAG,OAAS,KAAK,GAEhFmtB,IACHA,EAAcQ,GAAa,OAAQntB,EAASR,EAAO,aAAc,EAAG,QAAU,QAAQ,GAEpFktB,IAAcA,EAAa,MAAM,QAAU,KAAK,IAAI,CAACrgD,EAAU,CAAC,GAChEsgD,IAAaA,EAAY,MAAM,QAAU,KAAK,IAAItgD,EAAU,CAAC,EACrE,EA8DE4+C,GAAW,CACT,OAAQ,OACR,OAAAzrB,EACA,GAAAjwQ,EACA,aAtDmB,IAAM,CACzB,KAAM,CACJ,OAAAw1Q,EACA,aAAcJ,CACf,EAAGnF,EACEljP,EAASkjP,EAAO,OAAO,WACvB+tB,EAAY7rB,GAAalC,CAAM,EACrC,QAASxiR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAAG,CACzC,MAAMgjR,EAAU+E,EAAO/nR,CAAC,EACxB,IAAIqvP,EAAW2zB,EAAQ,SACnBR,EAAO,OAAO,WAAW,gBAC3BnzB,EAAW,KAAK,IAAI,KAAK,IAAI2zB,EAAQ,SAAU,CAAC,EAAG,EAAE,GAEvD,MAAM7iP,EAAS6iP,EAAQ,kBAEvB,IAAIwtB,EADW,KAAOnhD,EAElBohD,EAAU,EACVrB,EAAK5sB,EAAO,OAAO,QAAU,CAACriP,EAASqiP,EAAO,UAAY,CAACriP,EAC3DkvQ,EAAK,EACJ7sB,EAAO,eAKDmF,IACT6oB,EAAU,CAACA,IALXnB,EAAKD,EACLA,EAAK,EACLqB,EAAU,CAACD,EACXA,EAAU,GAIZxtB,EAAQ,MAAM,OAAS,CAAC,KAAK,IAAI,KAAK,MAAM3zB,CAAQ,CAAC,EAAI04B,EAAO,OAC5DzoP,EAAO,cACTkwQ,EAAmBxsB,EAAS3zB,CAAQ,EAEtC,MAAM51L,EAAY,eAAe21O,CAAE,OAAOC,CAAE,oBAAoBkB,EAAUE,CAAO,CAAC,gBAAgBF,EAAUC,CAAO,CAAC,OAC9Gzd,EAAW2b,GAAapvQ,EAAQ0jP,CAAO,EAC7C+P,EAAS,MAAM,UAAYt5N,CAC5B,CACL,EAoBI,cAnBoBr1B,GAAY,CAChC,MAAM0qQ,EAAoBtsB,EAAO,OAAO,IAAIQ,GAAWD,GAAoBC,CAAO,CAAC,EACnF8rB,EAAkB,QAAQtwR,GAAM,CAC9BA,EAAG,MAAM,mBAAqB,GAAG4lB,CAAQ,KACzC5lB,EAAG,iBAAiB,8GAA8G,EAAE,QAAQgwR,GAAY,CACtJA,EAAS,MAAM,mBAAqB,GAAGpqQ,CAAQ,IACvD,CAAO,CACP,CAAK,EACDyqQ,GAA2B,CACzB,OAAArsB,EACA,SAAAp+O,EACA,kBAAA0qQ,CACN,CAAK,CACL,EAOI,gBAnEsB,IAAM,CAE5BtsB,EAAO,OAAO,WACdA,EAAO,OAAO,QAAQQ,GAAW,CAC/B,IAAI3zB,EAAW2zB,EAAQ,SACnBR,EAAO,OAAO,WAAW,gBAC3BnzB,EAAW,KAAK,IAAI,KAAK,IAAI2zB,EAAQ,SAAU,CAAC,EAAG,EAAE,GAEvDwsB,EAAmBxsB,EAAS3zB,CAAQ,CAC1C,CAAK,CACL,EA0DI,gBAAiB,IAAMmzB,EAAO,OAAO,WACrC,YAAa,IAAM,GACnB,gBAAiB,KAAO,CACtB,cAAe,EACf,eAAgB,EAChB,oBAAqB,GACrB,aAAc,EACd,iBAAkB,CAACA,EAAO,OAAO,OACvC,EACA,CAAG,CACH,CCvGA,SAASkuB,IAAgB36O,EAAM,CAC7B,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,gBAAiB,CACf,OAAQ,GACR,QAAS,EACT,MAAO,IACP,MAAO,EACP,SAAU,EACV,aAAc,EACf,CACL,CAAG,EAsEDqnB,GAAW,CACT,OAAQ,YACR,OAAAzrB,EACA,GAAAjwQ,EACA,aAzEmB,IAAM,CACzB,KAAM,CACJ,MAAO6oR,EACP,OAAQC,EACR,OAAAtT,EACA,gBAAAI,CACD,EAAG3F,EACEljP,EAASkjP,EAAO,OAAO,gBACvBitB,EAAejtB,EAAO,eACtB/oN,EAAY+oN,EAAO,UACnBmuB,EAASlB,EAAe,CAACh2O,EAAY2hO,EAAc,EAAI,CAAC3hO,EAAY4hO,EAAe,EACnF4F,EAASwO,EAAenwQ,EAAO,OAAS,CAACA,EAAO,OAChDsrP,EAAYtrP,EAAO,MACnBuF,EAAI6/O,GAAalC,CAAM,EAE7B,QAASxiR,EAAI,EAAGqS,EAAS01Q,EAAO,OAAQ/nR,EAAIqS,EAAQrS,GAAK,EAAG,CAC1D,MAAMgjR,EAAU+E,EAAO/nR,CAAC,EAClB4oR,EAAYT,EAAgBnoR,CAAC,EAC7B8qR,EAAc9H,EAAQ,kBACtB4tB,GAAgBD,EAAS7lB,EAAclC,EAAY,GAAKA,EACxDioB,EAAmB,OAAOvxQ,EAAO,UAAa,WAAaA,EAAO,SAASsxQ,CAAY,EAAIA,EAAetxQ,EAAO,SACvH,IAAIkxQ,EAAUf,EAAexO,EAAS4P,EAAmB,EACrDJ,EAAUhB,EAAe,EAAIxO,EAAS4P,EAEtCC,EAAa,CAAClmB,EAAY,KAAK,IAAIimB,CAAgB,EACnDtpI,EAAUjoI,EAAO,QAEjB,OAAOioI,GAAY,UAAYA,EAAQ,QAAQ,GAAG,IAAM,KAC1DA,EAAU,WAAWjoI,EAAO,OAAO,EAAI,IAAMspP,GAE/C,IAAIic,EAAa4K,EAAe,EAAIloI,EAAUspI,EAC1CjM,EAAa6K,EAAeloI,EAAUspI,EAAmB,EACzD5kR,EAAQ,GAAK,EAAIqT,EAAO,OAAS,KAAK,IAAIuxQ,CAAgB,EAG1D,KAAK,IAAIjM,CAAU,EAAI,OAAOA,EAAa,GAC3C,KAAK,IAAIC,CAAU,EAAI,OAAOA,EAAa,GAC3C,KAAK,IAAIiM,CAAU,EAAI,OAAOA,EAAa,GAC3C,KAAK,IAAIN,CAAO,EAAI,OAAOA,EAAU,GACrC,KAAK,IAAIC,CAAO,EAAI,OAAOA,EAAU,GACrC,KAAK,IAAIxkR,CAAK,EAAI,OAAOA,EAAQ,GACrC,MAAM8kR,GAAiB,eAAenM,CAAU,MAAMC,CAAU,MAAMiM,CAAU,gBAAgBjsQ,EAAE4rQ,CAAO,CAAC,gBAAgB5rQ,EAAE2rQ,CAAO,CAAC,cAAcvkR,CAAK,IACjJ8mQ,GAAW2b,GAAapvQ,EAAQ0jP,CAAO,EAG7C,GAFA+P,GAAS,MAAM,UAAYge,GAC3B/tB,EAAQ,MAAM,OAAS,CAAC,KAAK,IAAI,KAAK,MAAM6tB,CAAgB,CAAC,EAAI,EAC7DvxQ,EAAO,aAAc,CAEvB,IAAI0xQ,GAAiBvB,EAAezsB,EAAQ,cAAc,2BAA2B,EAAIA,EAAQ,cAAc,0BAA0B,EACrIiuB,GAAgBxB,EAAezsB,EAAQ,cAAc,4BAA4B,EAAIA,EAAQ,cAAc,6BAA6B,EACvIguB,KACHA,GAAiBb,GAAa,YAAantB,EAASysB,EAAe,OAAS,KAAK,GAE9EwB,KACHA,GAAgBd,GAAa,YAAantB,EAASysB,EAAe,QAAU,QAAQ,GAElFuB,KAAgBA,GAAe,MAAM,QAAUH,EAAmB,EAAIA,EAAmB,GACzFI,KAAeA,GAAc,MAAM,QAAU,CAACJ,EAAmB,EAAI,CAACA,EAAmB,EAC9F,CACF,CACL,EAeI,cAdoBzsQ,GAAY,CACNo+O,EAAO,OAAO,IAAIQ,GAAWD,GAAoBC,CAAO,CAAC,EACjE,QAAQxkQ,GAAM,CAC9BA,EAAG,MAAM,mBAAqB,GAAG4lB,CAAQ,KACzC5lB,EAAG,iBAAiB,8GAA8G,EAAE,QAAQgwR,GAAY,CACtJA,EAAS,MAAM,mBAAqB,GAAGpqQ,CAAQ,IACvD,CAAO,CACP,CAAK,CACL,EAOI,YAAa,IAAM,GACnB,gBAAiB,KAAO,CACtB,oBAAqB,EAC3B,EACA,CAAG,CACH,CC/FA,SAAS8sQ,IAAen7O,EAAM,CAC5B,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,eAAgB,CACd,cAAe,EACf,kBAAmB,GACnB,mBAAoB,EACpB,YAAa,GACb,KAAM,CACJ,UAAW,CAAC,EAAG,EAAG,CAAC,EACnB,OAAQ,CAAC,EAAG,EAAG,CAAC,EAChB,QAAS,EACT,MAAO,CACR,EACD,KAAM,CACJ,UAAW,CAAC,EAAG,EAAG,CAAC,EACnB,OAAQ,CAAC,EAAG,EAAG,CAAC,EAChB,QAAS,EACT,MAAO,CACR,CACF,CACL,CAAG,EACD,MAAMuqB,EAAoBh1S,GACpB,OAAOA,GAAU,SAAiBA,EAC/B,GAAGA,CAAK,KAiGjB8xS,GAAW,CACT,OAAQ,WACR,OAAAzrB,EACA,GAAAjwQ,EACA,aAnGmB,IAAM,CACzB,KAAM,CACJ,OAAAw1Q,EACA,UAAAP,EACA,gBAAAW,CACD,EAAG3F,EACEljP,EAASkjP,EAAO,OAAO,eACvB,CACJ,mBAAoBtxF,CACrB,EAAG5xJ,EACE8xQ,EAAmB5uB,EAAO,OAAO,eACjC+tB,EAAY7rB,GAAalC,CAAM,EACrC,GAAI4uB,EAAkB,CACpB,MAAM5wQ,EAAS2nP,EAAgB,CAAC,EAAI,EAAI3F,EAAO,OAAO,oBAAsB,EAC5EgF,EAAU,MAAM,UAAY,yBAAyBhnP,CAAM,MAC5D,CACD,QAASxgC,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAAG,CACzC,MAAMgjR,EAAU+E,EAAO/nR,CAAC,EAClB+qR,EAAgB/H,EAAQ,SACxB3zB,EAAW,KAAK,IAAI,KAAK,IAAI2zB,EAAQ,SAAU,CAAC1jP,EAAO,aAAa,EAAGA,EAAO,aAAa,EACjG,IAAI+xQ,EAAmBhiD,EAClB+hD,IACHC,EAAmB,KAAK,IAAI,KAAK,IAAIruB,EAAQ,iBAAkB,CAAC1jP,EAAO,aAAa,EAAGA,EAAO,aAAa,GAE7G,MAAMa,EAAS6iP,EAAQ,kBACjBjuQ,EAAI,CAACytQ,EAAO,OAAO,QAAU,CAACriP,EAASqiP,EAAO,UAAY,CAACriP,EAAQ,EAAG,CAAC,EACvE0E,EAAI,CAAC,EAAG,EAAG,CAAC,EAClB,IAAI40D,EAAS,GACR+oL,EAAO,iBACVztQ,EAAE,CAAC,EAAIA,EAAE,CAAC,EACVA,EAAE,CAAC,EAAI,GAET,IAAI2V,EAAO,CACT,UAAW,CAAC,EAAG,EAAG,CAAC,EACnB,OAAQ,CAAC,EAAG,EAAG,CAAC,EAChB,MAAO,EACP,QAAS,CACjB,EACU2kO,EAAW,GACb3kO,EAAO4U,EAAO,KACdm6D,EAAS,IACA41J,EAAW,IACpB3kO,EAAO4U,EAAO,KACdm6D,EAAS,IAGX1kF,EAAE,QAAQ,CAAC5Y,EAAOiN,KAAU,CAC1B2L,EAAE3L,EAAK,EAAI,QAAQjN,CAAK,SAASg1S,EAAkBzmR,EAAK,UAAUthB,EAAK,CAAC,CAAC,MAAM,KAAK,IAAIimP,EAAWn+D,CAAU,CAAC,IACtH,CAAO,EAEDrsJ,EAAE,QAAQ,CAAC1oC,EAAOiN,KAAU,CAC1B,IAAI8O,GAAMwS,EAAK,OAAOthB,EAAK,EAAI,KAAK,IAAIimP,EAAWn+D,CAAU,EAC7DrsJ,EAAEz7B,EAAK,EAAI8O,EACnB,CAAO,EACD8qQ,EAAQ,MAAM,OAAS,CAAC,KAAK,IAAI,KAAK,MAAM+H,CAAa,CAAC,EAAIhD,EAAO,OACrE,MAAMupB,EAAkBv8R,EAAE,KAAK,IAAI,EAC7Bw8R,EAAe,WAAWhB,EAAU1rQ,EAAE,CAAC,CAAC,CAAC,gBAAgB0rQ,EAAU1rQ,EAAE,CAAC,CAAC,CAAC,gBAAgB0rQ,EAAU1rQ,EAAE,CAAC,CAAC,CAAC,OACvG2sQ,EAAcH,EAAmB,EAAI,SAAS,GAAK,EAAI3mR,EAAK,OAAS2mR,EAAmBngH,CAAU,IAAM,SAAS,GAAK,EAAIxmK,EAAK,OAAS2mR,EAAmBngH,CAAU,IACrKugH,EAAgBJ,EAAmB,EAAI,GAAK,EAAI3mR,EAAK,SAAW2mR,EAAmBngH,EAAa,GAAK,EAAIxmK,EAAK,SAAW2mR,EAAmBngH,EAC5Iz3H,EAAY,eAAe63O,CAAe,KAAKC,CAAY,IAAIC,CAAW,GAGhF,GAAI/3M,GAAU/uE,EAAK,QAAU,CAAC+uE,EAAQ,CACpC,IAAI+0M,EAAWxrB,EAAQ,cAAc,sBAAsB,EAI3D,GAHI,CAACwrB,GAAY9jR,EAAK,SACpB8jR,EAAW2B,GAAa,WAAYntB,CAAO,GAEzCwrB,EAAU,CACZ,MAAMkD,GAAgBpyQ,EAAO,kBAAoB+vN,GAAY,EAAI/vN,EAAO,eAAiB+vN,EACzFm/C,EAAS,MAAM,QAAU,KAAK,IAAI,KAAK,IAAI,KAAK,IAAIkD,EAAa,EAAG,CAAC,EAAG,CAAC,CAC1E,CACF,CACD,MAAM3e,EAAW2b,GAAapvQ,EAAQ0jP,CAAO,EAC7C+P,EAAS,MAAM,UAAYt5N,EAC3Bs5N,EAAS,MAAM,QAAU0e,EACrB/mR,EAAK,SACPqoQ,EAAS,MAAM,gBAAkBroQ,EAAK,OAEzC,CACL,EAqBI,cApBoB0Z,GAAY,CAChC,MAAM0qQ,EAAoBtsB,EAAO,OAAO,IAAIQ,GAAWD,GAAoBC,CAAO,CAAC,EACnF8rB,EAAkB,QAAQtwR,GAAM,CAC9BA,EAAG,MAAM,mBAAqB,GAAG4lB,CAAQ,KACzC5lB,EAAG,iBAAiB,sBAAsB,EAAE,QAAQgwR,GAAY,CAC9DA,EAAS,MAAM,mBAAqB,GAAGpqQ,CAAQ,IACvD,CAAO,CACP,CAAK,EACDyqQ,GAA2B,CACzB,OAAArsB,EACA,SAAAp+O,EACA,kBAAA0qQ,EACA,UAAW,EACjB,CAAK,CACL,EAOI,YAAa,IAAMtsB,EAAO,OAAO,eAAe,YAChD,gBAAiB,KAAO,CACtB,oBAAqB,GACrB,iBAAkB,CAACA,EAAO,OAAO,OACvC,EACA,CAAG,CACH,CCzIA,SAASmvB,IAAY57O,EAAM,CACzB,GAAI,CACF,OAAAysN,EACA,aAAAoE,EACA,GAAAr0Q,CACD,EAAGwjD,EACJ6wN,EAAa,CACX,YAAa,CACX,aAAc,GACd,OAAQ,GACR,eAAgB,EAChB,eAAgB,CACjB,CACL,CAAG,EA2FDqnB,GAAW,CACT,OAAQ,QACR,OAAAzrB,EACA,GAAAjwQ,EACA,aA9FmB,IAAM,CACzB,KAAM,CACJ,OAAAw1Q,EACA,YAAAqE,EACA,aAAczE,CACf,EAAGnF,EACEljP,EAASkjP,EAAO,OAAO,YACvB,CACJ,eAAAovB,EACA,UAAAnS,CACN,EAAQjd,EAAO,gBACLyL,EAAmBtG,EAAM,CAACnF,EAAO,UAAYA,EAAO,UAC1D,QAASxiR,EAAI,EAAGA,EAAI+nR,EAAO,OAAQ/nR,GAAK,EAAG,CACzC,MAAMgjR,EAAU+E,EAAO/nR,CAAC,EAClB+qR,EAAgB/H,EAAQ,SACxB3zB,EAAW,KAAK,IAAI,KAAK,IAAI07B,EAAe,EAAE,EAAG,CAAC,EACxD,IAAI5qP,EAAS6iP,EAAQ,kBACjBR,EAAO,OAAO,gBAAkB,CAACA,EAAO,OAAO,UACjDA,EAAO,UAAU,MAAM,UAAY,cAAcA,EAAO,cAAc,OAEpEA,EAAO,OAAO,gBAAkBA,EAAO,OAAO,UAChDriP,GAAU4nP,EAAO,CAAC,EAAE,mBAEtB,IAAI8pB,EAAKrvB,EAAO,OAAO,QAAU,CAACriP,EAASqiP,EAAO,UAAY,CAACriP,EAC3D2xQ,EAAK,EACT,MAAMC,EAAK,KAAO,KAAK,IAAI1iD,CAAQ,EACnC,IAAIpjO,EAAQ,EACRg1Q,EAAS,CAAC3hQ,EAAO,eAAiB+vN,EAClC2iD,EAAQ1yQ,EAAO,eAAiB,KAAK,IAAI+vN,CAAQ,EAAI,IACzD,MAAMqwB,EAAa8C,EAAO,SAAWA,EAAO,OAAO,QAAQ,QAAUA,EAAO,QAAQ,KAAOxiR,EAAIA,EACzFiyS,GAAiBvyB,IAAe0M,GAAe1M,IAAe0M,EAAc,IAAM/8B,EAAW,GAAKA,EAAW,IAAMowC,GAAajd,EAAO,OAAO,UAAYyL,EAAmB2jB,EAC7KM,GAAiBxyB,IAAe0M,GAAe1M,IAAe0M,EAAc,IAAM/8B,EAAW,GAAKA,EAAW,KAAOowC,GAAajd,EAAO,OAAO,UAAYyL,EAAmB2jB,EACpL,GAAIK,GAAiBC,EAAe,CAClC,MAAMC,GAAe,EAAI,KAAK,KAAK,KAAK,IAAI9iD,CAAQ,EAAI,IAAO,EAAG,IAAM,GACxE4xC,GAAU,IAAM5xC,EAAW8iD,EAC3BlmR,GAAS,IAAOkmR,EAChBH,GAAS,GAAKG,EACdL,EAAK,GAAG,IAAMK,EAAc,KAAK,IAAI9iD,CAAQ,CAAC,GAC/C,CAUD,GATIA,EAAW,EAEbwiD,EAAK,QAAQA,CAAE,MAAMlqB,EAAM,IAAM,GAAG,KAAKqqB,EAAQ,KAAK,IAAI3iD,CAAQ,CAAC,MAC1DA,EAAW,EAEpBwiD,EAAK,QAAQA,CAAE,MAAMlqB,EAAM,IAAM,GAAG,MAAMqqB,EAAQ,KAAK,IAAI3iD,CAAQ,CAAC,MAEpEwiD,EAAK,GAAGA,CAAE,KAER,CAACrvB,EAAO,eAAgB,CAC1B,MAAM4vB,EAAQN,EACdA,EAAKD,EACLA,EAAKO,CACN,CACD,MAAMZ,EAAcniD,EAAW,EAAI,GAAG,GAAK,EAAIpjO,GAASojO,CAAQ,GAAK,GAAG,GAAK,EAAIpjO,GAASojO,CAAQ,GAG5F51L,EAAY;AAAA,sBACFo4O,CAAE,KAAKC,CAAE,KAAKC,CAAE;AAAA,kBACpBzyQ,EAAO,OAASqoP,EAAM,CAACsZ,EAASA,EAAS,CAAC;AAAA,gBAC5CuQ,CAAW;AAAA,QAIrB,GAAIlyQ,EAAO,aAAc,CAEvB,IAAIkvQ,EAAWxrB,EAAQ,cAAc,sBAAsB,EACtDwrB,IACHA,EAAW2B,GAAa,QAASntB,CAAO,GAEtCwrB,IAAUA,EAAS,MAAM,QAAU,KAAK,IAAI,KAAK,KAAK,KAAK,IAAIn/C,CAAQ,EAAI,IAAO,GAAK,CAAC,EAAG,CAAC,EACjG,CACD2zB,EAAQ,MAAM,OAAS,CAAC,KAAK,IAAI,KAAK,MAAM+H,CAAa,CAAC,EAAIhD,EAAO,OACrE,MAAMgL,EAAW2b,GAAapvQ,EAAQ0jP,CAAO,EAC7C+P,EAAS,MAAM,UAAYt5N,CAC5B,CACL,EAoBI,cAnBoBr1B,GAAY,CAChC,MAAM0qQ,EAAoBtsB,EAAO,OAAO,IAAIQ,GAAWD,GAAoBC,CAAO,CAAC,EACnF8rB,EAAkB,QAAQtwR,GAAM,CAC9BA,EAAG,MAAM,mBAAqB,GAAG4lB,CAAQ,KACzC5lB,EAAG,iBAAiB,sBAAsB,EAAE,QAAQgwR,GAAY,CAC9DA,EAAS,MAAM,mBAAqB,GAAGpqQ,CAAQ,IACvD,CAAO,CACP,CAAK,EACDyqQ,GAA2B,CACzB,OAAArsB,EACA,SAAAp+O,EACA,kBAAA0qQ,CACN,CAAK,CACL,EAOI,YAAa,IAAM,GACnB,gBAAiB,KAAO,CACtB,eAAgB,GAChB,oBAAqB,GACrB,qBAAsB,EACtB,eAAgB,GAChB,iBAAkB,CAACtsB,EAAO,OAAO,OACvC,EACA,CAAG,CACH,CCvFA,MAAMiW,IAAU,CAACG,IAASxZ,IAAUwc,IAAYz8I,IAAY8pC,IAAYu2G,IAAWuB,IAAUU,IAAMpuE,IAAYizE,IAAMl4R,IAASw6R,IAAgBO,IAAUyB,IAAOoB,IAAUW,IAAMqB,IAAcmB,IAAYI,IAAYe,IAAYI,IAAiBQ,IAAgBS,GAAW,EAC7Qna,GAAO,IAAIiB,GAAO,ECnCH,MAAK4Z,YAASh/E,EAAW,CACtC,SAAU,CACR,KAAK,OAAS,IAAImkE,GAAO,eAAgB,CACvC,cAAe,EACf,eAAgB,EAChB,KAAM,CACJ,KAAM,EACN,KAAM,QACP,EACD,SAAU,CACR,MAAO,GACR,EACD,YAAa,CACX,IAAK,CACH,cAAe,EACf,eAAgB,EAChB,KAAM,CACJ,KAAM,CACP,CACF,EACD,IAAK,CACH,cAAe,EACf,eAAgB,EAChB,KAAM,CACJ,KAAM,CACP,CACF,EACD,IAAK,CACH,cAAe,EACf,eAAgB,EAChB,KAAM,CACJ,KAAM,CACP,CACF,EACD,KAAM,CACJ,cAAe,EACf,eAAgB,EAChB,KAAM,CACJ,KAAM,CACP,CACF,CACF,CACP,CAAK,CACF,CACH,CC7Ce,MAAK8a,WAASj/E,EAAW,CAGtC,SAAU,CACR,EAAE,oBAAoB,EAAE,WAAW,CACjC,YAAa,cACb,YAAa,OACb,OAAQ,aACR,UAAW,EACX,UAAW,EACjB,CAAK,CACF,CAED,OAAOr3N,EAAO,CACZA,EAAM,eAAc,EAEpB,MAAMu2S,EAAW,KAAK,eAAe,MAC/BC,EAAO,KAAK,WAAW,MAE7B,GAAI,CACF,GAAID,IAAa,GAAI,OAAO,OAAO,cAAc,QAAS,0BAA0B,EACpF,GAAIC,EAAK,KAAI,IAAO,GAAI,OAAO,OAAO,cAAc,QAAS,yBAAyB,EAEtF,MAAMhgM,EAAO,EAAE,oBAAoB,EAAE,IAAG,EAClCigM,EAAe,EAAE,iBAAiB,EAAE,IAAG,EACvCC,EAAqBD,EAAe,mBAAmBA,CAAY,GAAK,GAE9E,OAAO,SAAW,6BAA6BF,CAAQ,SAASC,CAAI,SAAShgM,GAAQ,EAAE,GAAGkgM,CAAkB,EAC7G,MAAe,CACd,OAAO,cAAc,QAAS,uHAAuH,CACtJ,CACF,CACH,CA/BEt8G,GADkBk8G,GACX,UAAU,CAAC,WAAY,MAAM,GCFtC,MAAMK,YAAoCt/E,EAAW,CACnD,SAAU,CACR,KAAK,aAAe,IAAI,OAAO,KAAK,OAAO,aAAa,KAAK,QAAS,CACpE,SAAU,QACV,sBAAuB,CACrB,QAAS,IACV,EACD,OAAQ,CAAC,MAAM,CACrB,CAAK,CACF,CACH,CCVe,MAAKu/E,YAASv/E,EAAW,CACtC,SAAU,CACR,MAAM70M,EAAK,EAAE,oBAAoB,EAEjCA,EAAG,WAAW,CACZ,YAAa,cACb,YAAa,OACb,OAAQ,aACR,UAAW,CACjB,CAAK,EAEDA,EAAG,GAAG,aAAc,IAAM,CACxB,EAAE,eAAe,EAAE,IAAIA,EAAG,WAAW,kBAAkB,CAAC,CAC9D,CAAK,CACF,CACH,CCfe,MAAKq0R,YAASx/E,EAAW,CACtC,SAAU,CACR,MAAM70M,EAAK,KAAK,QACVs0R,EAAS,KAAK,MAAMt0R,EAAG,QAAQ,MAAM,EAC3C,EAAEA,CAAE,EAAE,YAAYs0R,EAAQ,CAAE,SAAU,IAAM,KAAM,GAAG,CAAE,CACxD,CACH,CCNe,MAAKC,YAAS1/E,EAAW,CACtC,SAAU,CACR,EAAE,KAAK,OAAO,EAAE,GAAG,SAAWr3N,GAAU,CACtC,EAAEA,EAAM,aAAa,EAAE,QAAQ,MAAM,EAAE,QAC7C,CAAK,CACF,CACH,CCNe,MAAKg3S,YAAS3/E,EAAW,CACtC,SAAU,CACR,EAAE,KAAK,OAAO,EAAE,GAAG,QAAUr3N,GAAU,CACrC,EAAEA,EAAM,aAAa,EAAE,QAAQ,MAAM,EAAE,QAC7C,CAAK,CACF,CACH,CCNe,MAAKi3S,YAAS5/E,EAAW,CACtC,SAAU,CACR,EAAE,KAAK,OAAO,EAAE,UAAS,CAC1B,CACH,CCFA,MAAM6/E,YAAsC7/E,EAAW,CACrD,cAAcr3N,EAAO,CACnBA,EAAM,eAAc,EAEpBw6E,GAAM,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAMt4E,GAAa,CAChC2sP,GAAS,IAAI3sP,EAAS,IAAI,EAElC,iBAAiB,oBAAsBlC,GAAU,CACrD,EAAEA,EAAM,MAAM,EAAE,MAAM,MAAM,EAC5B,SAAS,OAAM,CACvB,CAAO,CACP,CAAK,CACF,CACH,CCde,MAAMm3S,YAAoC9/E,EAAW,CAClE,cAAcr3N,EAAO,CACnB,MAAMo3S,EAAWp3S,EAAM,OAEjB0+F,EAAgB04M,EAAS,cACzBjnL,EAAiBinL,EAAS,QAAQ14M,CAAa,EAErDlkB,GACG,KAAK,mDAAmD21C,EAAe,KAAK,EAAE,EAC9E,KAAK,IAAM,OAAO,SAAS,OAAQ,EACvC,CACH,CCXe,MAAMknL,WAAyChgF,EAAW,CAGvE,SAAU,CAER,MAAMigF,EAAS,KAAK,QAAQ,QAAQ,OACpC,KAAK,eAAiB,GACtB,KAAK,gBAAkB,GAEvB,KAAK,aAAe,IAAI,MAAM,cAAc,OAC1C,CAAE,QAAS,oBAAqB,QAASA,CAAQ,EACjD,CAAE,SAAWpuC,GAAQ,CACnB,MAAMquC,EAAYruC,EAAI,KAAK,UAE3B,KAAK,cAAc,QAASjvG,GAAW,CACrC,MAAMu9I,EAAsBtuC,EAAI,MAAQA,EAAI,KAAK,SAAW,cAE5D,KAAK,gBAAiBquC,GAAA,YAAAA,EAAW,iBAAkB,GACnD,KAAK,iBAAkBA,GAAA,YAAAA,EAAW,kBAAmB,GAEjDruC,EAAI,UAAY,UAAYsuC,GAC9Bv9I,EAAO,QAAQ,SAAW,GAC1BA,EAAO,UAAU,IAAI,UAAU,IAE/B,OAAOA,EAAO,QAAQ,SACtBA,EAAO,UAAU,OAAO,UAAU,EAE9C,CAAS,CACF,CACP,CAAK,CACF,CAED,MAAMj6J,EAAO,CACX,GAAIA,EAAM,OAAO,QAAQ,WAAa,OAAQ,CAC5CA,EAAM,yBAAwB,EAE9B,MAAMR,EAAU,wDAAwD,KAAK,cAAc,MAAM,KAAK,eAAe,2DAErHmqN,GAAU,QAAQnqN,EAAS,KAAM,KAAM,EAAK,CAC7C,CACF,CACH,CAxCE46L,GADmBi9G,GACZ,UAAU,CAAC,QAAQ,GCDb,MAAMI,YAA6BpgF,EAAW,CAC3D,SAAU,CACR,MAAMksB,EAAU,KAAK,QAAQ,QAE7B,KAAK,SAAWA,EAAQ,SACxB,KAAK,YAAcA,EAAQ,YAC3B,KAAK,aAAeA,EAAQ,aAC5B,KAAK,WAAaA,EAAQ,WAC1B,KAAK,mBAAqBA,EAAQ,mBAClC,KAAK,IAAMA,EAAQ,IAEfA,EAAQ,YAAc,QAAQ,KAAK,OAAM,CAC9C,CAED,MAAMvjP,EAAO,CACXA,EAAM,eAAc,EACpB,KAAK,OAAM,CACZ,CAED,QAAS,CACP,GAAI,KAAK,WAAa,YAAa,CACjC,MAAMR,EAAU,iDAAmD,KAAK,YAAc,MAAQ,KAAK,aACjG,iFAEFmqN,GAAU,QAAQnqN,EAAS,KAAM,KAAM,EAAK,CAClD,KAAW,CACL,MAAMuvM,EAAY,SAAS,eAAe,cAAc,EAAE,MAEpD,CAAE,SAAAxtM,CAAU,EAAG,OACf,CAAE,KAAAm2S,EAAM,SAAAr3C,CAAU,EAAG9+P,EAErB+hC,EAAS,IAAI,gBAAgB,CACjC,WAAYyrK,EACZ,qBAAsB,KAAK,mBAC3B,YAAa,KAAK,UAC1B,CAAO,EAED,OAAO,SAAW,GAAGsxD,CAAQ,KAAKq3C,CAAI,GAAG,KAAK,GAAG,IAAIp0Q,EAAO,SAAQ,CAAE,EACvE,CACF,CACH,CC8BAkpL,GAAY,SAAS,aAAc8K,EAAmB,EACtD9K,GAAY,SAAS,OAAQ+K,EAAc,EAC3C/K,GAAY,SAAS,WAAYs2B,EAAiB,EAClDt2B,GAAY,SAAS,UAAWy2B,EAAgB,EAChDz2B,GAAY,SAAS,OAAQ02B,EAAc,EAC3C12B,GAAY,SAAS,qBAAsB42B,GAA2B,EACtE52B,GAAY,SAAS,UAAWi3B,GAAiB,EACjDj3B,GAAY,SAAS,cAAey3B,GAAoB,EACxDz3B,GAAY,SAAS,uBAAwBmrF,GAA6B,EAC1EnrF,GAAY,SAAS,uBAAwBw+B,EAA4B,EACzEx+B,GAAY,SAAS,yBAA0By+B,EAAgC,EAC/Ez+B,GAAY,SAAS,aAAc4+B,GAAmB,EACtD5+B,GAAY,SAAS,wBAAyBg/B,GAA6B,EAC3Eh/B,GAAY,SAAS,6BAA8Bq/B,EAAkC,EACrFr/B,GAAY,SAAS,yBAA0B2/B,GAA8B,EAC7E3/B,GAAY,SAAS,YAAa6/B,EAAkB,EACpD7/B,GAAY,SAAS,wBAAyBsgC,GAA6B,EAC3EtgC,GAAY,SAAS,oBAAqBwgC,GAAyB,EACnExgC,GAAY,SAAS,0BAA2B2gC,EAA+B,EAC/E3gC,GAAY,SAAS,0BAA2BmhC,EAA+B,EAC/EnhC,GAAY,SAAS,QAASugC,GAAe,EAC7CvgC,GAAY,SAAS,eAAgBwhC,EAAqB,EAC1DxhC,GAAY,SAAS,cAAe2iC,EAAqB,EACzD3iC,GAAY,SAAS,gBAAiB6iC,EAAsB,EAC5D7iC,GAAY,SAAS,eAAgB4jC,EAAqB,EAC1D5jC,GAAY,SAAS,6BAA8BmkC,EAAmC,EACtFnkC,GAAY,SAAS,aAAcmlC,GAAmB,EACtDnlC,GAAY,SAAS,YAAa2kC,EAAkB,EACpD3kC,GAAY,SAAS,gBAAiB2nC,GAAsB,EAC5D3nC,GAAY,SAAS,uBAAwB6nC,GAA6B,EAC1E7nC,GAAY,SAAS,qBAAsB+nC,EAA0B,EACrE/nC,GAAY,SAAS,eAAgBsoC,GAAqB,EAC1DtoC,GAAY,SAAS,mBAAoBuoC,GAAyB,EAClEvoC,GAAY,SAAS,eAAgBiqC,EAAqB,EAC1DjqC,GAAY,SAAS,uBAAwB0qC,GAA4B,EACzE1qC,GAAY,SAAS,iBAAkB6qC,GAAuB,EAC9D7qC,GAAY,SAAS,oBAAqB8qC,GAA0B,EACpE9qC,GAAY,SAAS,aAAckrC,EAAoB,EACvDlrC,GAAY,SAAS,eAAgBqsC,EAAqB,EAC1DrsC,GAAY,SAAS,uBAAwBorF,GAAmB,EAChEprF,GAAY,SAAS,UAAWk4C,GAAiB,EACjDl4C,GAAY,SAAS,0BAA2BqrF,GAAqB,EACrErrF,GAAY,SAAS,WAAYq4C,GAAkB,EACnDr4C,GAAY,SAAS,kBAAmBu4C,EAAwB,EAChEv4C,GAAY,SAAS,YAAaw4C,GAAkB,EACpDx4C,GAAY,SAAS,kBAAmB04C,GAAwB,EAChE14C,GAAY,SAAS,yBAA0B24C,EAA8B,EAC7E34C,GAAY,SAAS,WAAY25C,EAAiB,EAClD35C,GAAY,SAAS,iBAAkB45C,EAAuB,EAC9D55C,GAAY,SAAS,4BAA6B65C,EAAiC,EACnF75C,GAAY,SAAS,mBAAoB44C,EAAwB,EACjE54C,GAAY,SAAS,cAAesrF,EAAU,EAC9CtrF,GAAY,SAAS,WAAY25C,EAAiB,EAClD35C,GAAY,SAAS,gBAAiB+4C,EAAsB,EAC5D/4C,GAAY,SAAS,sBAAuBk5C,EAA2B,EACvEl5C,GAAY,SAAS,kBAAmBm5C,GAAwB,EAChEn5C,GAAY,SAAS,aAAco5C,GAAmB,EACtDp5C,GAAY,SAAS,eAAgB05C,EAAqB,EAC1D15C,GAAY,SAAS,QAAS+5C,GAAe,EAC7C/5C,GAAY,SAAS,iCAAkCurF,EAA4B,EACnFvrF,GAAY,SAAS,qBAAsBi6C,GAA0B,EACrEj6C,GAAY,SAAS,uBAAwBm6C,GAA4B,EACzEn6C,GAAY,SAAS,kBAAmB26C,EAA8B,EACtE36C,GAAY,SAAS,iBAAkBg7C,EAAuB,EAC9Dh7C,GAAY,SAAS,+BAAgCk7C,GAAmC,EACxFl7C,GAAY,SAAS,gBAAiBm7C,GAAsB,EAC5Dn7C,GAAY,SAAS,yBAA0BwrF,EAAoB,EACnExrF,GAAY,SAAS,2BAA4Bq7C,EAAiC,EAIlFr7C,GAAY,SAAS,0BAA2Bu7C,EAA+B,EAG/Ev7C,GAAY,SAAS,4BAA6Bi8C,EAAiC,EAGnFj8C,GAAY,SAAS,mBAAoByrF,GAAuB,EAGhEzrF,GAAY,SAAS,iBAAkBy8C,GAAuB,EAG9Dz8C,GAAY,SAAS,iBAAkB6+C,GAAuB,EAG9D7+C,GAAY,SAAS,mBAAoBgiD,EAAyB,EAGlEhiD,GAAY,SAAS,eAAgBkiD,GAAsB,EAG3DliD,GAAY,SAAS,cAAemiD,GAAoB,EAGxDniD,GAAY,SAAS,eAAgBwiD,GAAqB,EAG1DxiD,GAAY,SAAS,iBAAkB2iD,EAAuB,EAG9D3iD,GAAY,SAAS,iBAAkB4iD,GAAuB,EAG9D5iD,GAAY,SAAS,6BAA8B0rF,GAAwB,EAG3E1rF,GAAY,SAAS,kBAAmB2rF,GAAoB,EAK5D3rF,GAAY,SAAS,iBAAkBijD,GAAY,EAGnDjjD,GAAY,SAAS,mBAAoBmjD,GAAwB,EAGjEnjD,GAAY,SAAS,UAAW03D,GAAiB,EAGjD13D,GAAY,SAAS,iBAAkB+3D,GAAuB,EAG9D/3D,GAAY,SAAS,OAAQg4D,GAAc,EAG3Ch4D,GAAY,SAAS,SAAUi4D,GAAgB,EAG/Cj4D,GAAY,SAAS,mBAAoBk4D,GAAyB,EAGlEl4D,GAAY,SAAS,cAAem4D,GAAoB,EAGxDn4D,GAAY,SAAS,iBAAkBo4D,EAAuB,EAG9Dp4D,GAAY,SAAS,sBAAuB4rF,GAA0B,EAGtE5rF,GAAY,SAAS,YAAa44D,EAAkB,EAGpD54D,GAAY,SAAS,SAAU6pF,GAAgB,EAG/C7pF,GAAY,SAAS,cAAe8pF,EAAoB,EAGxD9pF,GAAY,SAAS,qBAAsBmqF,GAA2B,EAGtEnqF,GAAY,SAAS,oBAAqBoqF,GAA0B,EAGpEpqF,GAAY,SAAS,cAAeqqF,GAAqB,EAGzDrqF,GAAY,SAAS,sBAAuBuqF,GAA4B,EAGxEvqF,GAAY,SAAS,sBAAuBwqF,GAA4B,EAGxExqF,GAAY,SAAS,YAAayqF,GAAmB,EAGrDzqF,GAAY,SAAS,wBAAyB0qF,GAA6B,EAG3E1qF,GAAY,SAAS,sBAAuB2qF,GAA2B,EAGvE3qF,GAAY,SAAS,2BAA4B6qF,EAAgC,EAGjF7qF,GAAY,SAAS,cAAeirF,GAAoB,GC3PvD,SAAU/hS,EAAI,CACbA,EAAE,GAAG,gBAAkB,UAAW,CAChC,IAAI0U,EAAO1U,EAAE,IAAI,EACb2iS,EAAe,OAAO,OAAQ,CAAE,MAAO,8BAA8B,CAAE,EACvEC,EAAe,OAAO,OAAQ,CAAE,MAAO,qCAAqC,CAAE,EAElF,SAASC,EAAa1iS,EAAK2iS,EAAQC,EAAQ,CACrC5iS,EAAI,SAAS2iS,CAAM,EACrB3iS,EAAI,YAAY2iS,CAAM,EAAE,SAASC,CAAM,EAEvC5iS,EAAI,YAAY4iS,CAAM,EAAE,SAASD,CAAM,CAE1C,CAED,SAASE,GAAe,CACtB,IAAIC,EAAS,EAAE,MAAMvuR,EAAK,KAAK,aAAa,EAAG,SAASlhB,EAAG,CAAE,OAAOwM,EAAExM,CAAC,EAAE,SAAS,aAAa,CAAC,CAAE,EAE9FyvS,EACFN,EAAa,YAAY,eAAe,EAAE,SAAS,aAAa,EAEhEA,EAAa,YAAY,aAAa,EAAE,SAAS,eAAe,CAEnE,CAED,OAAAA,EAAa,GAAG,QAAS,SAASr4S,EAAO,CACvC,IAAI6V,EAAMH,EAAE1V,EAAM,MAAM,EAExB,GAAI6V,EAAI,SAAS,aAAa,EAC5B,IAAIxR,EAAW+lB,EAAK,KAAK,yBAAyB,MAElD,KAAI/lB,EAAW+lB,EAAK,KAAK,2BAA2B,EAGtD1U,EAAE,KAAKrR,EAAU,SAASyN,EAAK0Q,EAAI,CAAEA,EAAG,MAAO,EAAE,CACvD,CAAK,EAED81R,EAAa,GAAG,QAAS,SAASt4S,EAAO,CACvC,IAAI6V,EAAMH,EAAE1V,EAAM,MAAM,EACxBu4S,EAAa1iS,EAAK,gBAAiB,aAAa,EAChD,IAAI+iS,EAAW/iS,EAAI,QAAQ,IAAI,EAAE,KAAI,EAEjC+iS,EAAS,SAAS,cAAc,GAClCA,EAAS,OAAO/iS,EAAI,SAAS,aAAa,CAAC,EAG7C6iS,GACN,CAAK,EAED,KAAK,OAAO,OAAO,EAAE,KAAK,SAASxvS,EAAG,CACpCwM,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,YAAY2iS,CAAY,EACvD3iS,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,YAAY4iS,CAAY,EACvD5iS,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,KAAI,CACxC,CAAK,EAEM,IACX,CACA,GAAG,MAAQ,ECxDX,OAAO,UAAU,SAAW,CAC1B,IAAK,SAAU8M,EAAIriB,EAAO,CACpBqiB,EAAG,WAAariB,IAClBqiB,EAAG,SAAWriB,EACdA,GAAS,EAAEqiB,CAAE,EAAE,QAAQ,aAAa,EACpC,CAACriB,GAAS,EAAEqiB,CAAE,EAAE,QAAQ,YAAY,EAEvC,CACH,EAEA,EAAE,GAAG,gBAAkB,UACvB,CACE,IAAIsmB,EAAI,GACJvpB,EAAI,KAAK,iBACb,SAAE,KAAKA,EAAG,UAAW,CACfupB,EAAE,KAAK,IAAI,IAAM,QACdA,EAAE,KAAK,IAAI,EAAE,OAChBA,EAAE,KAAK,IAAI,EAAI,CAACA,EAAE,KAAK,IAAI,CAAC,GAE9BA,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,OAAS,EAAE,GAElCA,EAAE,KAAK,IAAI,EAAI,KAAK,OAAS,EAEnC,CAAG,EACMA,CACT,GCxBC,SAAUpzB,EAAG,CAEVA,EAAE,GAAG,eAAiB,SAAUgiM,EAAO,CAEnC,OAAO,KAAK,KAAK,UAAY,CACzBnhL,EAAM,KAAK,IAAI,CAC3B,CAAS,EAED,SAASA,GAAQ,CAEb,CA0CI,IAASsiR,EAAT,UAAqB,CACjB,IAAItiR,EAAQ7gB,EAAEM,EAAS,KAAK,EAE5B,GAAIA,EAAS,KAAM,CACf,GAAIA,EAAS,KAAO,EAAG,CACnB,IAAIwgB,EAAKD,EAAM,KAAK,UAAU,EAE9BC,EAAG,KAAK,SAAUnf,EAAG+2L,EAAK,CACtB0qG,EAAkB1qG,EAAK,SAAU2qG,EAAM,CACnCrjS,EAAEqjS,CAAI,EAAE,IAAI,UAAW/iS,EAAS,SAAS,EAAI,CAAC,CAClF,CAAiC,CACjC,CAA6B,CACJ,CAED,GAAIA,EAAS,MAAQ,EAAG,CACpB,IAAIwgB,EAAKD,EAAM,KAAK,UAAU,EAE9BC,EAAG,KAAK,SAAUnf,EAAG+2L,EAAK,CACtB4qG,EAAkB5qG,EAAK,SAAU2qG,EAAM,CACnCrjS,EAAEqjS,CAAI,EAAE,IAAI,UAAW/iS,EAAS,SAAS,EAAI,CAAC,CAClF,CAAiC,CACjC,CAA6B,CACJ,CACJ,CAED,GAAIA,EAAS,KAAM,CACf,GAAIA,EAAS,KAAO,EAAG,CACnB,IAAIwgB,EAAKD,EAAM,KAAK,UAAU,EAE9BC,EAAG,KAAK,SAAUnf,EAAG+2L,EAAK,CACtB0qG,EAAkB1qG,EAAK,SAAU2qG,EAAM,CACnCrjS,EAAEqjS,CAAI,EAAE,IAAI,UAAW/iS,EAAS,SAAS,CAAC,CAC9E,CAAiC,CACjC,CAA6B,CACJ,CAED,GAAIA,EAAS,MAAQ,EAAG,CACpB,IAAIwgB,EAAKD,EAAM,KAAK,UAAU,EAE9BC,EAAG,KAAK,SAAUnf,EAAG+2L,EAAK,CACtB4qG,EAAkB5qG,EAAK,SAAU2qG,EAAM,CACnCrjS,EAAEqjS,CAAI,EAAE,IAAI,UAAW/iS,EAAS,SAAS,CAAC,CAC9E,CAAiC,CACjC,CAA6B,CACJ,CACJ,CACJ,EAGQijS,EAAT,UAAqB,CACjB,IAAIxzR,EAAS/P,EAAEM,EAAS,MAAM,EAC1BugB,EAAS7gB,EAAEM,EAAS,KAAK,EAEzBkjS,IACFzzR,EAAO,OAAO8Q,CAAK,EACnB9Q,EACK,IAAI,CACD,aAAc,OACd,aAAc,MAC5C,CAA2B,GAGP8Q,EAAM,GAAG,kCAAkC,UAAU,CAMjD,IAAI10B,EAAO4jB,EAAO,aAQdzP,EAAS,KAAO,GAChBA,EAAS,YAAY,IAAI,OAAQnU,EAAO,CAAC,CAIrE,GAAsB,KAAK00B,CAAK,CAAC,CAChB,EAGQ4iR,EAAT,UAAmB,CACf,IAAIC,EAAQ1jS,EAAEM,EAAS,KAAK,EAAE,KAAK,OAAO,EAC9BojS,EAAM,KAAK,IAAI,EAC3B,IAAIC,EAAQD,EAAM,KAAK,QAAQ,EAE/BE,EAAcD,CAAK,EACnBA,EAAM,IAAI,CACN,SAAY,UACpC,CAAqB,CACJ,EAGQE,EAAT,UAAmB,CACf,IAAIC,EAAQ9jS,EAAEM,EAAS,KAAK,EAAE,KAAK,OAAO,EAC9BwjS,EAAM,KAAK,IAAI,EAC3B,IAAIH,EAAQG,EAAM,KAAK,QAAQ,EAE/BF,EAAcD,CAAK,EACnBA,EAAM,IAAI,CACN,SAAY,UACpC,CAAqB,CACJ,EAGQI,EAAT,UAAmB,CACf,IAAIljR,EAAQ7gB,EAAEM,EAAS,KAAK,EAI5BA,EAAS,YAAcN,IAEvB,IAAI8gB,EAAKD,EAAM,KAAK,IAAI,EACxBC,EAAG,KAAK,SAAUnf,EAAG+2L,EAAK,CAEtB0qG,EAAkB1qG,EAAK,SAAU2qG,EAAM,CACnC/iS,EAAS,YAAcA,EAAS,YAAY,IAAI+iS,CAAI,CAChF,CAAyB,CAazB,CAAqB,EAED,IAAIp8N,EAAS3mE,EAAS,YAEtB2mE,EAAO,KAAK,SAAUtlE,EAAG0hS,EAAM,CAC3B,IAAIA,EAAOrjS,EAAEqjS,CAAI,EAEjBO,EAAcP,CAAI,EAClBA,EAAK,IAAI,CACL,SAAY,UACxC,CAAyB,CACzB,CAAqB,CACJ,EAGQW,EAAT,UAAoB,CAChB,IAAInjR,EAAQ7gB,EAAEM,EAAS,KAAK,EAEZA,EAAS,MAEzBA,EAAS,aAAeN,IAExB,IAAI8gB,EAAKD,EAAM,KAAK,IAAI,EACxBC,EAAG,KAAK,SAAUnf,EAAG+2L,EAAK,CACtB4qG,EAAkB5qG,EAAK,SAAU2qG,EAAM,CACnC/iS,EAAS,aAAeA,EAAS,aAAa,IAAI+iS,CAAI,CAClF,CAAyB,CACzB,CAAqB,EAED,IAAIp8N,EAAS3mE,EAAS,aAEtB2mE,EAAO,KAAK,SAAUtlE,EAAG0hS,EAAM,CAC3B,IAAIA,EAAOrjS,EAAEqjS,CAAI,EAEjBO,EAAcP,CAAI,EAClBA,EAAK,IAAI,CACL,SAAY,UACxC,CAAyB,CACzB,CAAqB,CAEJ,EAGQO,EAAT,SAAuBj1S,EAAU,CAC7BA,EAAS,KAAK,SAAUgT,EAAGxX,EAAS,CAChC,IAAIA,EAAU6V,EAAE7V,CAAO,EACnB4lB,EAAU/P,EAAE7V,CAAO,EAAE,OAAM,EAE3B85S,EAAoB95S,EAAQ,IAAI,kBAAkB,EACtD85S,EAAyBA,GAAqB,eAAiBA,GAAqB,mBAAsB,KAAOA,EAEjH,IAAIC,EAAmBn0R,EAAO,IAAI,kBAAkB,EACpDm0R,EAAwBA,GAAoB,eAAiBA,GAAoB,mBAAsB,KAAOA,EAE9G,IAAIC,EAAaD,GAAsC,QACvDC,EAAiBF,GAAwCE,EAEzDh6S,EAAQ,IAAI,mBAAoBg6S,CAAU,CAClE,CAAqB,CACJ,EAEQf,EAAT,SAA2B1qG,EAAKttM,EAAQ,CAIpC,QAHIg5S,EAAY9jS,EAAS,KACrB+jS,EAAY,EAEP/1S,EAAI,EAAGA,GAAK81S,EAAW91S,EAAIA,EAAI+1S,EAAK,CACzC,IAAIC,EAAMD,EAAM,EAAI/1S,EAAI,EAAIA,EAExB+0S,EAAUrjS,EAAE04L,CAAG,EAAE,KAAK,iBAAmB4rG,EAAM,GAAG,EAClDC,EAAUlB,EAAK,KAAK,SAAS,EAE7BA,EAAK,UAAU,KAAOe,GACtBh5S,EAAOi4S,CAAI,EAGfgB,EAAME,CACT,CACJ,EAEQjB,EAAT,SAA2B5qG,EAAKttM,EAAQ,CAIpC,QAHIg5S,EAAY9jS,EAAS,MACrB+jS,EAAY,EAEP/1S,EAAI,EAAGA,GAAK81S,EAAW91S,EAAIA,EAAI+1S,EAAK,CACzC,IAAIC,EAAMD,EAAM,EAAI/1S,EAAI,EAAIA,EAExB+0S,EAAUrjS,EAAE04L,CAAG,EAAE,KAAK,sBAAwB4rG,EAAM,GAAG,EACvDC,EAAUlB,EAAK,KAAK,SAAS,EAEjCj4S,EAAOi4S,CAAI,EAEXgB,EAAME,CACT,CACJ,EA5QD,IAAIrkS,EAAW,CACX,KAAM,GACN,KAAM,GACN,KAAM,EACN,MAAO,EACP,UAAW,EACX,OAAQ,IAC5B,EAGoBI,EAAWN,EAAE,OAAO,GAAIE,EAAU8hM,CAAK,EACvCwhG,EAAYljS,EAAS,QAAU,KAEnCA,EAAS,MAAS,KAClBA,EAAS,OAAUkjS,EAAYljS,EAAS,OAASN,EAAEM,EAAS,KAAK,EAAE,OAAM,EACzEijS,IAEIjjS,EAAS,MAAQ,IACjBmjS,IAEAnjS,EAAS,MAAQ,IACjBujS,IAEAvjS,EAAS,KAAO,GAChByjS,IAEAzjS,EAAS,MAAQ,GACjB0jS,IAEJb,IAEAnjS,EAAEM,EAAS,MAAM,EAAE,QAAQ,QAAQ,EAEnCN,EAAE,MAAM,EAAE,OAAO,UAAY,CACzBA,EAAEM,EAAS,MAAM,EAAE,QAAQ,QAAQ,CACvD,CAAiB,CA0OJ,CAEJ,CAKT,CAEA,GAAG,MAAM,GAWR,SAAUN,EAAG,CAEV,SAASwkS,EAAUC,EAAQ,CACvB,IAAIpiS,EAAI,GACRoiS,EAAO,SAAS,IAAI,EAAE,KAAK,SAAUhxS,EAAGilM,EAAK,CACzC14L,EAAE04L,CAAG,EAAE,SAAS,QAAQ,EAAE,KAAK,SAAUllM,EAAG6vS,EAAM,CAC9C,IAAIqB,EAAQ1kS,EAAEqjS,CAAI,EACdsB,EAAQD,EAAM,KAAK,SAAS,EAAI,EAChCE,EAAQF,EAAM,KAAK,SAAS,EAAI,EAChChH,EAAIC,EAGR,IAFAgH,EAAYA,GAAgB,EAC5BC,EAAYA,GAAgB,EACrBviS,EAAE5O,CAAC,GAAK4O,EAAE5O,CAAC,EAAED,CAAC,EAAG,EAAEA,EAAE,CAC5B,IAAKkqS,EAAKlqS,EAAGkqS,EAAKlqS,EAAImxS,EAAO,EAAEjH,EAC3B,IAAKC,EAAKlqS,EAAGkqS,EAAKlqS,EAAImxS,EAAO,EAAEjH,EACtBt7R,EAAEs7R,CAAE,IACLt7R,EAAEs7R,CAAE,EAAI,IAEZt7R,EAAEs7R,CAAE,EAAED,CAAE,EAAI,GAGpB,IAAIh5L,EAAM,CAAC,IAAKjxG,EAAG,KAAMD,CAAC,EAC1BkxS,EAAM,KAAK,UAAWhgM,CAAG,CACzC,CAAa,CACb,CAAS,CAET,CAEI1kG,EAAE,GAAG,QAAU,SAAU6kS,EAAQ,CAC7B,IAAIH,EAAQ,KAAK,MAAO,EACpBhgM,EAAQggM,EAAM,KAAK,SAAS,EAChC,GAAI,CAAChgM,GAAOmgM,EAAQ,CAChB,IAAIJ,EAASC,EAAM,QAAQ,4BAA4B,EACvDF,EAAUC,CAAM,CACnB,CACD,OAAA//L,EAAMggM,EAAM,KAAK,SAAS,EACnBhgM,CACV,CACL,GAAG,MAAM,EClVP,OAAO,UAAY,KAAgB,CACjC,mBAAmB/6G,EAAM,CAEvB,IAAIg1J,EADa,IAAI,SAASh1J,CAAI,EACV,UACpB25I,EAAQqb,EAAS,OACjBvwJ,EAAS,GAEb,KAAM,CAACk1I,EAAM,MAAM,CACjB,IAAI74I,EAAQ64I,EAAM,MAEb,CAAC,OAAQ,oBAAoB,EAAE,SAAS74I,EAAM,CAAC,CAAC,GACnD2D,EAAO,KAAK3D,EAAM,CAAC,EAAI,IAAMA,EAAM,CAAC,CAAC,EAGvC64I,EAAQqb,EAAS,MAClB,CAED,aAAa,QAAQh1J,EAAK,GAAI,KAAK,UAAUyE,CAAM,CAAC,CACrD,CAED,kBAAkB02S,EAAQ,CACxB,aAAa,WAAWA,CAAM,CAC/B,CAED,oBAAoBA,EAAQ,CAC1B,MAAMzyS,EAAW,aAAa,QAAQyyS,CAAM,EAE5C,OAAO,KAAK,MAAMzyS,CAAQ,CAC3B,CACF,GC9BF,UAAW,CACV,EAAE,UAAW,CACX,MAAMioP,EAAS,EAAE,QAAQ,EACnBp1C,EAAS,EAAE,QAAQ,EACnB6/F,EAAc,EAAE,eAAe,EAC/BC,EAAe1qD,EAAO,SACtB2qD,EAAe//F,EAAO,OAAM,EAAK,GAEvCo1C,EAAO,IAAI,YAAc,EAAI0qD,EAAgB,IAAI,EACjD9/F,EAAO,IAAI,eAAiB,EAAI+/F,EAAgB,IAAI,EAEpDF,EAAY,IAAI,UAAWC,EAAe,QAAUC,EAAe,MAAM,CAC7E,CAAG,CAEH,GAAG,KAAK9/R,MAAI,ECdL,SAAS+/R,IAAmBj1Q,EAAO1f,EAAM,CAC9C,MAAM40R,EAAa,EAAE,kBAAkB,EACjCC,EAAeD,EAAW,KAAK,4BAA4B,EAC3DE,EAAcF,EAAW,KAAK,4BAA4B,EAEhEC,EAAa,KAAKn1Q,CAAK,EACvBo1Q,EAAY,KAAK90R,CAAI,EAErB40R,EAAW,MAAM,MAAM,CACzB,CCPA,EAAE,QAAQ,EAAE,GAAG,QAAS,0BAA2B,SAASvnS,EAAG,CAC7DA,EAAE,eAAc,EAChB,EAAE,qBAAqB,EAAE,MAAM,MAAM,CACvC,CAAC,ECHD,SAAS0nS,KAAM,CACb,MAAMC,EAA2B,SAAUj7S,EAAO,CAChD,MAAMJ,EAASI,EAAM,OAKrB,GAJAJ,EAAO,QAAU,CAACA,EAAO,QAEC,EAAE,0BAA0B,EAAE,KAAK,wBAAwB,EAE9D,CACrB,MAAMwoE,EAAQ,EAAE,6CAA6C,EAC7DA,EAAM,MAAM,MAAM,EAClBA,EAAM,KAAK,SAAUxoE,CAAM,CACjC,MACMs7S,EAAQC,EAAyBv7S,CAAM,CAAC,CAE9C,EAEQu7S,EAA2B,SAAUv7S,EAAQ,CACjD,SAAEA,CAAM,EAAE,KAAK,UAAW,CAAC,EAAEA,CAAM,EAAE,GAAG,UAAU,CAAC,EAC5CA,CACX,EAEQs7S,EAAU,SAAUt7S,EAAQ,CAChCy9N,GAAgB,KAAK,CAAC,EACtB,MAAMxnN,EAAM,EAAEjW,CAAM,EACd8uB,EAAO,GAEbA,EAAK7Y,EAAI,KAAK,MAAM,CAAC,EAAIjW,EAAO,QAEhC,EAAE,KAAK,CACL,IAAKiW,EAAI,KAAK,KAAK,EACnB,SAAU,OACV,KAAM6Y,EACN,KAAM,QACN,WAAY,UAAY,CACtB7Y,EAAI,KAAK,WAAY,EAAI,CAC1B,EACD,QAAS,UAAY,CACnB,OAAO,aAAa,OAAO,EAAK,CACjC,EACD,MAAO,SAAUjQ,EAAO,CACtBy3N,GAAgB,KAAI,EACpBxnN,EAAI,KAAK,WAAY,EAAK,EAC1BslS,EAAyBv7S,CAAM,EAC/B,OAAO,cAAc,QAASgG,EAAM,YAAY,CACjD,CACP,CAAK,CACL,EAaE,MAAO,CACL,yBAA0Bq1S,EAC1B,uBAb6B,SAAUj7S,EAAO,CAC9Ck7S,EAAQl7S,EAAM,MAAM,CACxB,EAYI,eAVqB,UAAY,CACjC,MAAMooE,EAAQ,EAAE,6CAA6C,EAC7DA,EAAM,MAAM,MAAM,EAClB,MAAMxoE,EAASwoE,EAAM,KAAK,QAAQ,EAClC8yO,EAAQC,EAAyBv7S,CAAM,CAAC,CAC5C,CAMG,CACH,CAEA,OAAO,IAAMo7S,IAAK,EClElB,SAASI,KAAW,CAClB,SAASF,EAAQ/jG,EAAU,CACzBkmB,GAAgB,KAAK,CAAC,EACtB,MAAM18N,EAAMw2M,EAAS,KAAK,KAAK,EAE/B,EAAE,KAAK,CACL,IAAKx2M,EACL,SAAU,OACV,KAAM,CAAE,QAAS,CAAE,kBAAmBw2M,EAAS,KAAK,SAAS,EAAK,EAClE,KAAM,OACN,WAAY,UAAW,CACrBA,EAAS,KAAK,WAAY,EAAI,CAC/B,EACD,QAAS,UAAW,CAClB,OAAO,aAAa,OAAO,EAAK,CACjC,EACD,MAAO,SAASvxM,EAAO,CACrBy3N,GAAgB,KAAI,EACpBlmB,EAAS,KAAK,WAAY,EAAK,EAC/BkkG,IACA,OAAO,cAAc,QAASz1S,EAAM,YAAY,CACjD,CACP,CAAK,CACF,CAED,MAAM01S,EAAsB,UAAW,CACrC,EAAE,4CAA4C,EAAE,MAAM,MAAM,EAC5DJ,EAAQG,EAAsB,CAAE,CACpC,EAEQJ,EAA2B,SAASj7S,EAAO,CAC/C,MAAMJ,EAASI,EAAM,OACrBJ,EAAO,QAAU,CAACA,EAAO,QAEC,EAAE,0BAA0B,EAAE,KAAK,wBAAwB,EAGnF,EAAE,4CAA4C,EAAE,MAAM,MAAM,EAE5Ds7S,EAAQG,EAAsB,CAAE,CAEtC,EAEQA,EAAyB,UAAW,CACxC,MAAMlkG,EAAW,EAAE,4BAA4B,EAC/C,OAAAA,EAAS,KAAK,UAAW,CAACA,EAAS,KAAK,SAAS,CAAC,EAE3CA,CACX,EAEE,MAAO,CACL,yBAA0B8jG,EAC1B,oBAAqBK,CACtB,CACH,CAGA,OAAO,SAAWF,IAAU,EC3D5B,SAAS3tG,KAAW,CAClB,MAAM98K,EAAO,SAAS3wB,EAAO,CAE3B,MAAMu7S,EADU,EAAEv7S,EAAM,MAAM,EACC,QAAQ,iBAAiB,EAExDu7S,EAAe,KAAK,uBAAuB,EAAE,KAAI,EACjDA,EAAe,KAAK,eAAe,EAAE,KAAI,EACzCA,EAAe,KAAK,wBAAwB,EAAE,KAAI,EAE9C,EAAE,MAAM,EAAE,MAAK,EAAK,KACtBA,EAAe,KAAK,0BAA0B,EAAE,KAAM,CAEzD,EAEKlsP,EAAO,SAASrvD,EAAO,CAE3B,MAAMu7S,EADU,EAAEv7S,EAAM,MAAM,EACC,QAAQ,iBAAiB,EAExDu7S,EAAe,KAAK,uBAAuB,EAAE,KAAI,EACjDA,EAAe,KAAK,eAAe,EAAE,KAAI,EACzCA,EAAe,KAAK,wBAAwB,EAAE,KAAI,EAClDA,EAAe,KAAK,6CAA6C,EAAE,KAAK,UAAW,CAAC,EACpFC,EAAU,GACVD,EAAe,KAAK,oBAAoB,EAAE,KAAK,YAAY,EAEvD,EAAE,MAAM,EAAE,MAAK,EAAK,KACtBA,EAAe,KAAK,0BAA0B,EAAE,KAAM,CAEzD,EAEKE,EAAY,SAASz7S,EAAO,CAChC,MAAMysM,EAAU,EAAEzsM,EAAM,MAAM,EAAE,GAAG,UAAU,EAC7C,EAAE,iBAAiB,EAAE,KAAK,UAAWysM,CAAO,CAC7C,EAED,IAAI+uG,EAAU,GAEd,MAAME,EAAkB,SAAS17S,EAAO,CACtCw7S,EAAU,EAAE,yBAAyB,EAAE,SAAW,EAAE,iBAAiB,EAAE,OACvE,EAAE,iBAAiB,EAAE,KAAK,UAAW,CAACA,CAAO,EAC7CA,EAAU,CAACA,EACX,EAAE,oBAAoB,EAAE,KAAKA,EAAU,eAAiB,YAAY,CACrE,EAED,SAAE,QAAQ,EAAE,GAAG,SAAU,SAASx7S,EAAO,CACpC,EAAE,yBAAyB,EAAE,SAAW,EAAE,iBAAiB,EAAE,QAC9D,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAC3Cw7S,EAAU,KAEV,EAAE,oBAAoB,EAAE,KAAK,YAAY,EACzCA,EAAU,GAEhB,CAAG,EAEM,CACL,KAAM7qR,EACN,KAAM0+B,EACN,UAAWosP,EACX,gBAAiBC,CAClB,CAEH,CAGA,OAAO,SAAWjuG,IAAU,EC7D5B,SAASkuG,KAAkB,CA8CzB,MAAO,CACL,SA9Ce,SAAS37S,EAAO,CAC/Bq9N,GAAgB,KAAK,GAAG,EAExB,MAAMz9N,EAASI,EAAM,OACfW,EAAMf,EAAO,QAAQ,MAAM,EAAE,aAAa,QAAQ,EAClDg8S,EAAa,SAAS,eAAe,gBAAgB,EACrDrlR,EAAQ,EAAE,iCAAiC,EAC3CslR,EAAoBj8S,EAAO,MAC3Bk8S,EAAoBvlR,EAAM,KAAK,qBAAqB,EACpDwlR,EAA0BxlR,EAAM,KAAK,4BAA4B,EACjEylR,EAAqBzlR,EAAM,KAAK,kBAAkB,EAExDqlR,EAAW,UAAU,IAAI,wBAAwB,EAEjDphO,GACG,IAAI75E,EAAK,CAAE,MAAO,CAAE,oBAAqBk7S,CAAiB,EAAI,EAC9D,KAAK,IAAM,CACV,MAAMI,EAAY,CAACH,EAAmBC,EAAyBC,CAAkB,EAEjFxhO,GACG,IAAIyhO,EAAU,IAAKC,GAAa1hO,GAAM,IAAI0hO,CAAQ,CAAC,CAAC,EACpD,KAAK1hO,GAAM,OAAO,CAAC,CAAE,KAAM2hO,CAAa,EAAI,CAAE,KAAMC,CAAiB,EAAE,CAAE,KAAMC,CAAS,IAAO,CAC9FT,EAAW,UAAU,OAAO,wBAAwB,EACpD,SAAS,eAAe,eAAe,EAAE,UAAYO,EACrD,SAAS,eAAe,iBAAiB,EAAE,UAAYC,EACnD,EAAE,QAAQC,EAAU,KAAK,IAC3BT,EAAW,UAAU,OAAO,wBAAwB,EACpDA,EAAW,SAAW,IAExB,EAAEA,CAAU,EAAE,KAAK,QAASS,EAAU,KAAK,EAC3Ch/E,GAAgB,KAAI,CAChC,CAAW,CAAC,EACD,MAAOz3N,GAAU,CAChBy3N,GAAgB,KAAM,EACtBu+E,EAAW,UAAU,OAAO,wBAAwB,CACrD,CACF,CACT,CAAO,EACA,MAAOh2S,GAAU,CAChBg2S,EAAW,UAAU,OAAO,wBAAwB,EACpD,OAAO,cAAc,QAASh2S,EAAM,SAAS,KAAK,MAAM,EACxDy3N,GAAgB,KAAM,CAC9B,CAAO,CACP,CAIG,CACH,CAEA,OAAO,gBAAkBs+E,IAAiB,ECnD1C,SAASW,KAAiB,CA6CxB,MAAO,CACL,SA7Ce,SAASt8S,EAAO,CAC/Bq9N,GAAgB,KAAK,GAAG,EAExB,MAAMz9N,EAASI,EAAM,OACfW,EAAMf,EAAO,QAAQ,MAAM,EAAE,aAAa,QAAQ,EAClDg8S,EAAa,SAAS,eAAe,gBAAgB,EACrDrlR,EAAQ,EAAE,iCAAiC,EAC3CulR,EAAoBvlR,EAAM,KAAK,qBAAqB,EACpDgmR,EAAgB38S,EAAO,MACvBo8S,EAAqBzlR,EAAM,KAAK,kBAAkB,EAClD0lR,EAAY,CAACH,EAAmBE,CAAkB,EAExDJ,EAAW,UAAU,IAAI,wBAAwB,EAEjDphO,GACG,IAAI75E,EAAK,CAAE,MAAO,CAAE,eAAgB47S,CAAa,EAAI,EACrD,KAAK,IAAM,CACV/hO,GACG,IAAIyhO,EAAU,IAAKC,GAAa1hO,GAAM,IAAI0hO,CAAQ,CAAC,CAAC,EACpD,KAAK1hO,GAAM,OAAO,CAAC,CAAE,KAAM2hO,GAAiB,CAAE,KAAME,KAAgB,CACnET,EAAW,UAAU,OAAO,wBAAwB,EACpD,SAAS,eAAe,eAAe,EAAE,UAAYO,EAEjD,EAAE,QAAQE,EAAU,KAAK,IAC3BT,EAAW,UAAU,OAAO,wBAAwB,EACpDA,EAAW,SAAW,IAGxB,EAAEA,CAAU,EAAE,KAAK,QAASS,EAAU,KAAK,EAC3Ch/E,GAAgB,KAAI,CAChC,CAAW,CAAC,EACD,MAAM,IAAM,CACX,OAAO,cAAc,QAAS,uBAAuB,EACrDu+E,EAAW,UAAU,OAAO,wBAAwB,EACpDv+E,GAAgB,KAAM,CAClC,CAAW,CACX,CAAO,EACA,MAAMz3N,GAAS,CACd,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,MAAM,EACxDg2S,EAAW,UAAU,OAAO,wBAAwB,EACpDv+E,GAAgB,KAAI,CAC5B,CAAO,CACP,CAIG,CACH,CAEA,OAAO,eAAiBi/E,IAAgB,EClDxC,SAASE,KAAoB,CAC3B,IAAIC,EAAqB,GACzB,MAAMl2K,EAAS,SAASvmI,EAAO,CAE7B,GADAA,EAAM,eAAc,EAChBy8S,EAAoB,OAExBA,EAAqB,GACrBp/E,GAAgB,KAAI,EACpB,MAAM18N,EAAMX,EAAM,OAAO,QAAQ,IAEjCw6E,GAAM,OAAO75E,CAAG,EAAE,KAAK,IAAM,CAC3B,OAAO,aAAa,OAAO,EAAK,EAChC87S,EAAqB,EAC3B,CAAK,EAAE,MAAM,IAAM,CACbp/E,GAAgB,KAAI,EACpBo/E,EAAqB,EAC3B,CAAK,CACF,EAED,SAAS1pH,GAAW,CAClB,MAAM2pH,EAAa,EAAE,IAAI,EAAE,yBAAyB,EAAItuG,GAAQA,EAAI,KAAK,EAEzE,GAAIsuG,EAAW,OAAS,EAAG,CACzB,OAAO,cAAc,UAAW,4CAA4C,EAC5E,MACD,CAEDr/E,GAAgB,KAAI,EAGpB,MAAM18N,EAAM,WADI,EAAE,iCAAiC,EAAE,KAAK,UAAU,CACtC,qCAE9B65E,GACG,OAAO75E,EAAK,CAAE,QAAS,CAAE,eAAgB,gCAAkC,EAAE,KAAM,CAAE,YAAa+7S,CAAY,EAAE,EAChH,KAAK,IAAM,OAAO,aAAa,OAAO,EAAK,CAAC,EAC5C,MAAM,IAAMr/E,GAAgB,KAAI,CAAE,CACtC,CAED,MAAO,CACL,OAAQ92F,EACR,SAAUwsD,CACX,CACH,CAEA,OAAO,kBAAoBypH,IAAmB,EC7C9C,SAASG,KAAkB,CACzB,MAAMC,EAAsB,SAAStpS,EAAG,CACtCA,EAAE,eAAc,EAEhB,MAAM2mJ,EAAS,EAAE,iBAAiB,EAElC,GAAI,CAACA,EAAO,KAAK,UAAU,EAAG,CAC5BA,EAAO,KAAK,WAAY,EAAI,EAE5B,MAAMvrI,EAAO,EAAEpb,EAAE,MAAM,EAAE,KAAI,EACvB,CAAE,MAAAupS,EAAO,QAAA/lD,CAAS,EAAGpoO,EAE3B,GAAImuR,EACF,OAAAjC,EAAmB,GAAIiC,CAAK,EACrB,GAGiB,EAAE,qEAAqE,EAAE,IAAG,IAE5E,wBACxB,EAAE,qBAAqB,EAAE,MAAM,MAAM,EACrC5iJ,EAAO,KAAK,WAAY,EAAK,IAE7BojE,GAAgB,KAAI,EAEpBy/E,EACEhmD,EACA,SAASpoO,EAAM,CAAE,OAAO,SAAWA,EAAK,GAAK,EAC7C,SAASA,EAAM,CACb2uM,GAAgB,KAAI,EACpBu9E,EAAmB,GAAIlsR,EAAK,aAAa,KAAK,EAC9C,OAAO,aAAa,OAAO,EAAK,EAChCurI,EAAO,KAAK,WAAY,EAAK,CAC9B,CACX,EAEK,CACF,EAEK8iJ,EAAsB,SAASzpS,EAAG,CACtCA,EAAE,eAAc,EAEhB,MAAMob,EAAO,EAAEpb,EAAE,MAAM,EAAE,KAAI,EACvB,CAAE,MAAAkb,EAAO,mBAAAwuR,CAAoB,EAAGtuR,EAElCF,IACEA,IAAU,QACZ,OAAO,SAAS,KAAO,UAAUwuR,CAAkB,aAEnD,EAAE,uBAAuB,EAAE,MAAM,MAAM,EACvC,OAAO,KAAK,WAAY,EAAK,GAGlC,EAED,SAASF,EAAahmD,EAASlxE,EAAWC,EAAU,CAClD,EAAE,KAAK,CACL,KAAM,MACN,IAAK,WAAWixE,CAAO,WACvB,QAASlxE,EACT,MAAOC,CACb,CAAK,CACF,CAED,SAAS+0H,EAAmBj1Q,EAAO1f,EAAM,CACvC,MAAM40R,EAAa,EAAE,kBAAkB,EACjCC,EAAeD,EAAW,KAAK,4BAA4B,EAC3DE,EAAcF,EAAW,KAAK,4BAA4B,EAEhEC,EAAa,KAAKn1Q,CAAK,EACvBo1Q,EAAY,KAAK90R,CAAI,EAErB40R,EAAW,MAAM,MAAM,CACxB,CAED,MAAMoC,EAAuB,SAAS3pS,EAAG,CACvCA,EAAE,eAAc,EAEhB,MAAMjU,EAAO,EAAE,0BAA0B,EACnC69S,EAAY79S,EAAK,KAAK,oBAAoB,EAChDA,EAAK,KAAK,cAAc,EAAE,OAAM,EAEhC,EAAE,KAAK,CACL,KAAO,OACP,IAAKA,EAAK,KAAK,QAAQ,EACvB,SAAU,OACV,KAAMA,EAAK,UAAW,EACtB,QAAUqvB,GAAS,CACbA,EAAK,wBAAuB,aAAa,iBAAmB,oBAChE,WAAW,IAAM,OAAO,SAAS,QAAQA,EAAK,aAAa,EAAG,GAAG,CAClE,EACD,MAAQ9oB,GAAU,CAChB,KAAM,CAAE,OAAA6pJ,CAAM,EAAK7pJ,EAAM,aAErB6pJ,EAAO,MACT,EAAE,qBAAqB,EAAE,MAAM,MAAM,EACrCmrJ,EAAmB,GAAInrJ,EAAO,KAAK,KAAK,IAAI,CAAC,EAC7C,OAAO,aAAa,SACpBytJ,EAAU,KAAK,WAAY,EAAK,IAEhCA,EAAU,KAAK,WAAY,EAAK,EAChCC,EAAU1tJ,CAAM,EAEnB,CACP,CAAK,CACF,EAED,SAAS0tJ,EAAU1tJ,EAAQ,CAGzB,EAAE,KAAKA,EAAQ,SAAUtvJ,EAAO2R,EAAK,CACnC,EAAE,iBAAmBA,CAAG,EACrB,QAAQ,aAAa,EACrB,OAAO,6BAA+B3R,EAAM,KAAK,IAAI,EAAI,SAAS,CAC3E,CAAK,CACF,CAKD,MAAO,CACL,oBAAqBy8S,EACrB,oBAAqBG,EACrB,qBAAsBE,CACvB,CACH,CAEA,OAAO,eAAiB,IAAIN,IC9H5B,SAASS,KAAe,CACtB,MAAMC,EAAW,UAAW,CACX,EAAE,iBAAiB,EAE3B,KAAK,UAAW,CACrB,MAAM9mR,EAAQ,EAAE,IAAI,EACd+mR,EAAgB/mR,EAAM,KAAK,iBAAiB,EAC5CgnR,EAAeD,EAAc,UAEnC,IAAIE,EAAa,EAEjBD,EAAa,KAAK,SAASnwS,EAAO,CAChCowS,GAAc,SAAS,EAAE,IAAI,EAAE,WAAU,EAAI,CAAC,CACtD,CAAO,EAEDjnR,EAAM,KAAK,eAAe,EAAE,IAAI,QAAS+mR,EAAc,WAAU,CAAE,EACnE/mR,EAAM,KAAK,kBAAkB,EAAE,IAAI,YAAainR,CAAU,CAChE,CAAK,CACF,EAEKC,EAAsB,CAAC/uR,EAAMllB,EAAU,KAAO,CAClD,EAAE,iBAAiB,EAAE,MAAO,EAAC,OAAOklB,CAAI,EACxChb,IAEIlK,GAAA,MAAAA,EAAS,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAE,UAAW,EAAE,iBAAiB,EAAE,OAAM,EAAG,GAAK,GAEzFA,GAAA,MAAAA,EAAS,WACP,OAAOA,EAAQ,WAAc,YAAYA,EAAQ,UAAS,CAEjE,EAEKk0S,EAAqB,IAAM,CAC/B,EAAE,iBAAiB,EAAE,OACtB,EAEKhqS,EAAQ,UAAW,CACvB2pS,GACD,EAeD,MAAO,CACL,MAAO3pS,EACP,OAAQ+pS,EACR,MAAOC,EACP,OAjBkB,SAASC,EAAYn0S,EAAU,GAAI,CACrD,MAAMo0S,EAAa,EAAE,iCAAiC,EAAE,KAAK,YAAY,EAEzEpjO,GAAM,IAAIojO,CAAU,EAAE,KAAM17S,GAAa,CACvCu7S,EAAoBv7S,EAAS,KAAMsH,CAAO,EAC1C6zN,GAAgB,KAAI,CAC1B,CAAK,EAAE,MAAM,IAAM,QAAQ,MAAM,sBAAsB,CAAC,CACxD,EAWI,WATiB,IACV,EAAE,iCAAiC,EAAE,KAAK,SAAS,CAS3D,CACH,CAEA,OAAO,aAAe+/E,IAAc,EChEpC,OAAO,mBAAqB,IAAM,CAChC,EAAE,6BAA6B,EAAE,QAAQ,CAAE,UAAW,QAAS,KAAM,EAAI,CAAC,EAE1E,EAAE,YAAY,EAAE,KAAK,UAAW,CAC9B,EAAE,IAAI,EAAE,QAAQ,CACd,KAAM,GACN,QAAS,QACT,UAAW,SACX,QAAS,UAAW,CAClB,OAAO,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,MACtC,CACP,CAAK,CACL,CAAG,CACH,ECXA,OAAO,aAAe,UAAW,CAC/B,SAASS,EAAwB79S,EAAO,CACtCA,EAAM,eAAc,EAGpB,MAAMX,EADK,EAAEW,EAAM,MAAM,EACT,QAAQ,MAAM,EAE9B,EAAE,KAAK,CACL,KAAM,MACN,IAAKX,EAAK,KAAK,QAAQ,EACvB,SAAU,OACV,KAAMA,EAAK,eAAgB,EAC3B,QAAS,IAAM,OAAO,cAAc,UAAW,sBAAsB,EACrE,MAAO,IAAM,OAAO,cAAc,QAAS,iBAAiB,CAClE,CAAK,CACF,CAED,SAASy+S,EAA4B7qB,EAAS,CAC5C,EAAE,kDAAkD,EAAE,KAAK,UAAWA,CAAO,EAE7E,EAAE,KAAK,CACL,OAAQ,MACR,IAAK,yCACL,KAAM,CAAE,QAASA,CAAS,EAC1B,QAAS,IAAM,OAAO,cAAc,UAAW,sBAAsB,EACrE,MAAO,IAAM,OAAO,cAAc,QAAS,iBAAiB,CAClE,CAAK,CACF,CAED,MAAO,CACL,4BAA6B6qB,EAC7B,wBAAyBD,CAC1B,CACH,EAEA,OAAO,QAAU,IAAI,aC/BrB,EAAE,QAAQ,EAAE,GAAG,SAAU,qCAAuCvqS,GAAM,CACpEA,EAAE,eAAc,EAChB+pN,GAAgB,KAAI,EAEpB,IAAIguB,GAAY,EAAC,QAAQ,CACvB,KAAM,EAAE/3O,EAAE,MAAM,EAAE,QAAQ,MAAM,EAChC,UAAW,IAAM,CACf+pN,GAAgB,KAAI,EACpB87B,GAAc,OAAO,SAAS,OAAS,OAAO,SAAS,QAAQ,CAChE,EACD,QAAS,IAAM,OAAO,cAAc,sBAAsB,CAC9D,CAAG,CACH,CAAC,GChBA,UAAW,CACV,EAAE,UAAW,CACR,IAAC4kD,EAAiCr8S,EAA+Bs8S,EAEpE,GAAI,EAAE,wIAAwI,EAAE,OAAS,EAAG,CAC1J,OAAO,gBAAkB,CAAC,aAAa,EAEvC,OAAO,aAAe,SAASx7R,EAAIqsP,EAAQovC,EAAe,CACxDz7R,EAAG,IAAI,MAAM,EACb,IAAI7hB,EAAM6hB,EAAG,KAAK,MAAM,EACxB,MAAM5iB,EAAS4iB,EAAG,KAAK,aAAa,EAEpC,SAAS07R,GAAW,CAClBv9S,EAAMA,EAAM,WAAaf,EAAO,UAAU,CAAC,EACvCq+S,IAAiBt9S,EAAMA,EAAM,uBAEjC,EAAE,KAAK,CACL,IAAKA,EACL,WAAY,IAAM,EAAEf,CAAM,EAAE,MAAO,CAC/C,CAAW,EAAE,KAAMsC,GAAa,CACpB,EAAEtC,CAAM,EAAE,KAAKsC,CAAQ,CACnC,CAAW,EAAE,KAAK,IAAM,CACZ,EAAEtC,CAAM,EAAE,KAAK,EAAE,SAAU,CAAE,MAAO,oBAAsB,GAAE,KAAK,sBAAsB,CAAC,CACpG,CAAW,CACF,CAEDs+S,GACR,EAEM,OAAO,kBAAoB,UAAW,CACpC,MAAMluD,EAAS,EAAE,eAAe,EAEhCx1K,GACG,IAAIw1K,EAAO,KAAK,KAAK,CAAC,EACtB,KAAK9tP,GAAY8tP,EAAO,YAAY9tP,EAAS,IAAI,CAAC,EAClD,MAAOoR,GAAM,QAAQ,IAAIA,CAAC,CAAC,CACtC,EAEM,EAAE,wCAAwC,EAAE,GAAG,QAAS,SAASA,EAAG,CAClE,OAAAA,EAAE,eAAc,EACT,OAAO,aAAa,EAAE,IAAI,CAAC,CAC1C,CAAO,EAED5R,EAAS,OAAO,SAAS,KAEzB,MAAMy8S,EADY,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAC/B,IAAI,YAAY,EAE7C,GAAIz8S,EACF,EAAE,iBAAmBA,EAAS,IAAI,EAAE,eAAe,OAAO,UACjDy8S,EAAY,CAKrB,MAAMC,EAJa,CACjB,gBAAmB,eAC7B,EAEqCD,CAAU,GAAKA,EAE5C,EAAE,kBAAoBC,EAAY,IAAI,EAAE,eAAe,OAAO,CAC/D,CACF,CAED,EAAE,QAAQ,EAAE,GAAG,QAAS,qBAAsB,SAAS9qS,EAAG,CACxD,OAAAA,EAAE,eAAc,EACT,MAAM,6EAA6E,CAChG,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,0BAA2B,SAASA,EAAG,CAC7D,OAAAA,EAAE,eAAc,EACT,EACb,CAAK,EAED,EAAE,sBAAsB,EAAE,GAAG,SAAU,UAAW,CAChD,OAAO,EAAE,wBAAwB,EAAE,KAAK,WAAY,EAAK,CAC/D,CAAK,EASDyqS,EAAkC,EAAE,iCAAiC,EAErEC,EAAmB,SAASl0S,EAAM,CAChC,EAAE,KAAK,CACL,KAAM,MACN,IAAKA,EACL,MAAO,GACP,QAAS,SAAS4kB,EAAM,CACtB,OAAAqvR,EAAgC,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOrvR,CAAI,EACnEqvR,EAAgC,MAAM,MAAM,CACpD,EACD,MAAO,SAASrvR,EAAM,CACpB,GAAIA,EAAK,SAAW,IAClB,OAAAqvR,EAAgC,KAAK,gBAAgB,EAAE,MAAO,EAAC,OAAOrvR,EAAK,YAAY,EAChFqvR,EAAgC,MAAM,MAAM,CAItD,CACT,CAAO,CACP,EAEI,EAAE,QAAQ,EAAE,GAAG,QAAS,gBAAiB,SAASzqS,EAAG,CACnD,OAAAA,EAAE,eAAc,EACT0qS,EAAiB,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAClD,CAAK,EAED,EAAE,0BAA0B,EAAE,MAAM,UAAW,CAC7C,OAAO,SAAS,QACtB,CAAK,CACL,CAAG,EAED,OAAO,gCAAkC,SAAS/jJ,EAAQ,CACxD,IAAIokJ,EAAyBh/S,EAC7BA,EAAO,EAAE46J,CAAM,EAAE,QAAQ,MAAM,EAC/B56J,EAAK,OAAM,EACXg/S,EAA0B,EAAE,aAAa,EACzCA,EAAwB,KAAK,gBAAgB,EAAE,MAAK,EACpDA,EAAwB,MAAM,OAAO,EACrC,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAC1C,EAEE,OAAO,yBAA2B,UAAW,CAC3C,GAAI,2BAA2B,KAAK,UAAU,UAAU,EACtD,OAAO,OAAO,WAAa,SAASz7Q,EAAK,CACnCA,EAAI,WACN,SAAS,OAAM,CAEzB,CAEA,CACA,GAAG,KAAK/nB,MAAI,GCpIX,UAAW,CACV,EAAE,UAAW,CACX,IAAIyjS,EAAiBC,EAAeC,EAEpCF,EAAkB,EAAE,qBAAqB,EAEzCC,EAAgB,SAAUz0S,EAAM,CAC9B,EAAE,KAAK,CACL,KAAM,MACN,IAAKA,EACL,MAAO,GACP,QAAS,SAAU4kB,EAAM,CACvB4vR,EAAgB,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAO5vR,CAAI,EAC1D4vR,EAAgB,MAAM,MAAM,CAC7B,EACD,MAAO,SAAU5vR,EAAM,CACrB4vR,EAAgB,KAAK,gBAAgB,EAAE,MAAK,EAC5CA,EAAgB,MAAM,MAAM,CAC7B,CACT,CAAO,CACP,EAEI,EAAE,QAAQ,EAAE,GAAG,QAAS,sCAAuC,SAAUhrS,EAAG,CAC1EA,EAAE,eAAc,EAChBirS,EAAc,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CACxC,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,aAAc,SAAUjrS,EAAG,CACjDA,EAAE,eAAc,EAChB,EAAE,IAAI,EAAE,KAAK,WAAY,EAAI,EAC7B,EAAE,IAAI,EAAE,KAAK,4BAA4B,EAAE,KAAK,WAAY,EAAI,EAChE,IAAIuwO,EAAQ,EAAE,IAAI,EAAE,QAAQ,MAAM,EAC9B46D,EAAO56D,EAAM,KAAK,kBAAkB,EAAE,IAAK,EAC3C66D,EAAgB,EAAE,IAAI,EAAE,KAAK,MAAM,EAAI,SAAgBD,EAC3D,EAAE,KAAK,CACL,KAAM,OACN,IAAKC,EACL,MAAO,GACP,QAAS,UAAY,CACnBJ,EAAgB,KAAK,gBAAgB,EAAE,MAAK,EAC5CE,EAAW,EAAK,EAChBF,EAAgB,MAAM,MAAM,CAC7B,EACD,MAAO,SAAUp8S,EAAU,CACzB,IAAImpP,GAAU,EAAG,UAAUxH,EAAO,cAAe3hP,EAAS,cAAgB,CAAE,GAAE,MAAM,CACrF,CACT,CAAO,CACP,CAAK,EAEDs8S,EAAa,SAASG,EAAa,CACjC,IAAIC,EAAa,EAAE,eAAe,EAAE,KAAK,QAAQ,EAAI,IAAM,EAAE,iBAAiB,EAAE,UAAW,EACvFC,EAAO,EAAE,eAAe,EAAE,UAAW,EAAC,KAC1CA,EAAK,IAAID,CAAU,EACnBC,EAAK,OAAO,KAAMF,CAAW,CAC9B,CACL,CAAG,CACH,GAAG,KAAK9jS,MAAI,ECxDZ,OAAO,oBAAsB,SAASjb,EAAQ,CAC5C,MAAMk/S,EAAal/S,EAAO,KAAK,YAAY,EAEvCk/S,EACFl/S,EAAO,SAAS,UAAU,EAAE,KAAK,gBAAgBk/S,CAAU,EAAE,EAE7Dl/S,EAAO,YAAY,UAAU,EAAE,KAAK,yCAAyC,CAEjF,EAEA,EAAE,QAAQ,EAAE,GAAG,QAAS,oBAAsB0T,GAAM,CAClDA,EAAE,eAAc,EAChB,MAAM1T,EAAS,EAAE0T,EAAE,MAAM,EAEzBknE,GACG,MAAM56E,EAAO,KAAK,MAAM,CAAC,EACzB,KAAMosG,GAAQ,CACbpsG,EAAO,KAAK,aAAcosG,EAAI,KAAK,QAAQ,UAAU,EACrD,oBAAoBpsG,CAAM,CAChC,CAAK,EACA,MAAO0T,GAAM,CACZ,OAAO,cAAc,QAAS,sBAAsB,CAC1D,CAAK,CACL,CAAC,ECpBD,MAAMyrS,IAAa,IAAI1zD,GAEvB,EAAE,QAAQ,EAAE,GAAG,QAAS,yBAA0B,SAAS/3O,EAAG,CAC5DA,EAAE,eAAc,EACZ,EAAE,0BAA0B,EAAE,OAAS,GACzC,EAAE,MAAM,EAAE,QAAQ,qCAAqC,EAGzD,MAAM3S,EAAM,EAAE,IAAI,EAAE,KAAK,MAAM,EAE/B,EAAE,KAAK,CACL,IAAKA,EACL,OAAQ,MACR,QAAS,SAASuB,EAAU,CAC1B,EAAE,0BAA0B,EAAE,YAAYA,CAAQ,EAClD,MAAMkmE,EAAQ,EAAE,0BAA0B,EAEtC,SAAS,eAAe,cAAc,IAAM,MAC7B,IAAIooL,KACZ,OAAM,EAEjBpoL,EAAM,MAAM,MAAM,CACnB,CACL,CAAG,CACH,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,SAAU,6BAA8B,SAAS90D,EAAG,CACjEA,EAAE,eAAc,EAEhB+pN,GAAgB,KAAI,EAEpB0hF,IAAW,QAAQ,CACjB,KAAM,EAAEzrS,EAAE,MAAM,EAChB,UAAW,IAAM6lP,GAAc,OAAO,SAAS,OAAS,OAAO,SAAS,QAAQ,EAChF,QAAS,IAAM,CAAE97B,GAAgB,MAAQ,CAC7C,CAAG,CACH,CAAC,ECvCD,EAAE,QAAQ,EAAE,GAAG,QAAS,6BAA8B,SAAS/pN,EAAG,CAChEA,EAAE,eAAc,EAEhB,KAAM,CAAE,MAAAupS,EAAO,SAAAnqB,CAAQ,EAAK,EAAE,IAAI,EAAE,KAAM,EAEtCmqB,EACFjC,IAAmB,GAAIiC,CAAK,EAE5B,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAE3C,CAAC,ECZD,IAAImC,GAAgB,GAChBC,GAAwB,GACxBC,GAAe,GAEnB,EAAE,QAAQ,EAAE,GAAG,QAAS,uBAAyB5rS,GAAM,CAGrD,GAFAA,EAAE,eAAc,EAEZ0rS,GAAe,OAEnBA,GAAgB,GAEZ1rS,EAAE,OAAO,QAAQ,cAAgB,SACnC4rS,GAAe,IAIb5rS,EAAE,OAAO,QAAQ,wBAA0B,SAC7C2rS,GAAwB,KAAK,MAAM3rS,EAAE,OAAO,QAAQ,qBAAqB,GAG3E,MAAM1T,EAAS,EAAE0T,EAAE,aAAa,EAC1BxJ,EAAOlK,EAAO,KAAK,MAAM,EACzBwoE,EAAQ,EAAE,aAAa,EACvB+2O,EAAY,CAAC,gBAAiB,eAAe,EAC7Cl6S,EAAWmjE,EAAM,KAAK,gBAAgB,EAE5C+2O,EAAU,IAAK94R,GAAS+hD,EAAM,KAAK/hD,EAAMzmB,EAAO,KAAKymB,CAAI,CAAC,CAAC,EAC3DzmB,EAAO,SAAS,aAAa,EAC7BqF,EAAQ,MAAK,EAEb,SAASm6S,GAAe,CACtB,WAAW,IAAM,CACfx/S,EAAO,YAAY,aAAa,EAChCo/S,GAAgB,EACjB,EAAE,GAAG,CACP,CAED,EAAE,IAAIl1S,CAAI,EACP,KAAM4kB,GAAS,CACdzpB,EAAQ,MAAK,EAAG,OAAOypB,CAAI,EAC3B05C,EAAM,MAAM,MAAM,EAClBg3O,GACN,CAAK,EACA,KAAK,IAAM,CACV,OAAO,cAAc,QAAS,sBAAsB,EACpDA,GACN,CAAK,CACL,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,iCAAmC9rS,GAAM,CAC/D,MAAM1T,EAAS,EAAE0T,EAAE,aAAa,EAEhC,GAAI1T,EAAO,QAAQ,MAAM,EAAE,KAAK,YAAY,EAAG,OAE/C,MAAMikP,EAAQjkP,EAAO,QAAQ,MAAM,EAKnC,GAJI,CAACikP,EAAM,KAAK,YAAY,GAAKA,EAAM,KAAK,8BAA8B,EAAE,OAAO,IAAM,CAACjkP,EAAO,IAAK,GAAE,OAAS,IAEjH0T,EAAE,eAAc,EAEZ1T,EAAO,KAAK,UAAU,GAAG,OAE7BA,EAAO,KAAK,WAAY,EAAI,EAE5B,MAAMy/S,EAAS,EAAE,aAAa,EAE9B,SAASC,EAAa5wR,EAAM,CAC1B9uB,EAAO,KAAK,WAAY,EAAK,EAEzB8uB,EAAK,SAAW,KAClB2wR,EAAO,KAAK,gBAAgB,EAAE,MAAO,EAAC,OAAO3wR,EAAK,YAAY,CAEjE,CAED,SAAS6wR,EAAe7wR,EAAM,CAC5B,IAAI,UAAUm1N,CAAK,EAAE,kBAAkB,EAAEA,CAAK,EAAE,CAAC,EAAE,EAAE,GAEhDn1N,GAAQ,CAAE,GAAE,SAAW,OAAO,cAAc,UAAWA,EAAK,OAAO,EACxE,WAAW,IAAM9uB,EAAO,KAAK,WAAY,EAAK,EAAG,GAAG,EAEhDy/S,EAAO,KAAK,oBAAoB,EAAE,KAAK,QAAQ,EAI/CA,EAAO,KAAK,oBAAoB,EAAE,KAAK,QAAQ,IAAM,qBACvDA,EAAO,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAO3wR,CAAI,GAEjD2wR,EAAO,MAAM,MAAM,EAEfJ,KAA0B,IAC5Bp7D,EAAM,OAAM,EAGjB,CAED,MAAMljP,EAAMkjP,EAAM,KAAK,QAAQ,EACfA,EAAM,KAAK,SAAS,IACpB,sBACd,EAAE,KAAK,CACL,KAAM,OACN,IAAKljP,EACL,MAAO,GACP,MAAO,GACP,YAAa,GACb,YAAa,GACb,KAAM,IAAI,SAAS,EAAEkjP,CAAK,EAAE,CAAC,CAAC,EAC9B,QAAS07D,EACT,MAAOD,CACb,CAAK,GAEGJ,IACF,IAAI,UAAW,EAAC,mBAAmB,EAAEr7D,CAAK,EAAE,CAAC,CAAC,EAGhD,EAAE,KAAK,CACL,KAAM,OACN,IAAKljP,EACL,KAAMkjP,EAAM,UAAW,EACvB,QAAS07D,EACT,MAAOD,CACb,CAAK,EAEL,CAAC,ECvHD,EAAE,QAAQ,EAAE,GAAG,QAAS,qBAAsB,SAAShsS,EAAG,CACxDA,EAAE,eAAc,EAIZ,QAFY,gDAEG,GACjBknE,GACG,IAAI,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,EACxB,KAAKt4E,GAAY,OAAO,cAAc,UAAWA,EAAS,KAAK,MAAM,CAAC,EACtE,MAAM,IAAM,OAAO,cAAc,QAAS,sBAAsB,CAAC,CAExE,CAAC,ECTD,OAAO,wBAA0B,SAASoR,EAAG,CAC3CA,EAAE,eAAe,EAEjB,MAAMksS,EAAU,EAAElsS,EAAE,MAAM,EAAE,QAAQ,kBAAkB,EAEtD,GAAIksS,EAAQ,KAAK,yBAAyB,EAAE,OAAS,EAAG,CAChD,MAAAl3S,EAAKk3S,EAAQ,KAAK,+BAA+B,EAAE,QAAQ,IAAI,EAAE,KAAK,oCAAoC,EAAE,IAAI,EAEhH7+S,EAAM,WADI,EAAE,iCAAiC,EAAE,KAAK,UAAU,CACtC,sBAAsB2H,CAAE,QAElD,IAAAy6O,EAAW,SAAS,eAAe,oBAAoB,EAE3D,GAAI,CAACA,EAAU,CACP,MAAAC,EAAU,SAAS,cAAc,KAAK,EACpCA,EAAA,aAAa,KAAM,oBAAoB,EAEtC,cAAK,YAAYA,CAAO,EAEtBD,EAAA,SAAS,eAAe,oBAAoB,CACzD,CAEAn0K,GAAS,uBAAuBm0K,CAAQ,EACxCn0K,GAAS,OAAQ+V,EAAA6xF,GAAA,CAAK,IAAA71K,EAAU,SAAU,GAAK,EAAIoiP,CAAQ,OAEpD,qBAAc,UAAW,0CAA0C,CAE9E,EC9BO,SAAS08D,IAAkBC,EAAKC,EAAK,CAE1C,MAAMC,EAAQF,EAAI,KAAO,KAAK,GAAG,KAC3BG,EAAQF,EAAI,KAAO,KAAK,GAAG,KAC3BG,EAAUD,EAAMD,EAChBG,GAAWJ,EAAI,IAAID,EAAI,MAAQ,KAAK,GAAG,KAG7C,OADU,EAAI,OAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAII,EAAQ,CAAC,EAAE,KAAK,IAAIA,EAAQ,CAAC,EAAE,KAAK,IAAIF,CAAK,EAAE,KAAK,IAAIC,CAAK,EAAE,KAAK,IAAIE,EAAQ,CAAC,EAAE,KAAK,IAAIA,EAAQ,CAAC,CAAC,CAAC,GAC3I,QAAQ,CAAC,CACtB,CCTO,SAASC,IAA0Bl4S,EAAOm4S,EAAgB,CAC/D,MAAMC,EAAyB,CAC7B,SAAU,QACV,sBAAuB,CACrB,QAAS,IACV,EACD,OAAQ,CAAC,WAAY,MAAM,CAC/B,EAEQC,EAAe,IAAI,OAAO,KAAK,OAAO,aAAar4S,EAAOo4S,CAAsB,EACtF,OAAAC,EAAa,YAAY,gBAAiB,IAAM,CAC9C,MAAMC,EAAQD,EAAa,WAE3B,GAAI,CAACC,EAAM,UAAY,CAACA,EAAM,SAAS,SAAU,CAC/CH,EAAe,IAAI,EACnB,QAAQ,IAAI,oCAAsCG,EAAM,KAAO,GAAG,EAClE,MACD,CAEDH,EAAeG,CAAK,CACxB,CAAG,EAEDD,EAAa,YAAY,QAAS,IAAM,CAAE,QAAQ,IAAI,OAAO,EAAG,EAChEA,EAAa,YAAY,OAAQ,IAAM,CAAE,QAAQ,IAAI,MAAM,EAAG,EAC9DA,EAAa,YAAY,UAAW,IAAM,CAAE,QAAQ,IAAI,MAAM,EAAG,EAE1DA,CACT,CCvBA,MAAMvtH,EAAO,CACX,OAAQ,CACF,EAAE,iBAAiB,EAAE,SAAW,IAEpC,KAAK,iBAAkB,EACvB,KAAK,eAAe,6BAA6B,EACjD,KAAK,eAAe,6BAA6B,EAEjD,EAAE,gBAAgB,EAAE,MAAO5yL,GAAU,CACnCA,EAAM,eAAc,EACpB,EAAE,MAAM,EAAE,IAAI,EAAE,EAChB,EAAE,MAAM,EAAE,IAAI,EAAE,EAChB,KAAK,aAAa,QAAQ,CAChC,CAAK,EAED,KAAK,aAAY,EACjB,KAAK,mBAAkB,EACvB,KAAK,iBAAgB,EACrB,KAAK,mBAAkB,EAEvB,EAAE,oCAAoC,EAAE,GAAG,SAAWA,GAAU,CAC9D,MAAMkc,EAAMlc,EAAM,OAAO,MACnB2f,EAAO,EAAE,sBAAsB,EACrCA,EAAK,MAAK,EACV,KAAK,aAAY,EACjB66D,GAAM,IAAI,wBAAwBt+D,CAAG,EAAE,EAAE,KAAKha,GAAY,CACxDyd,EAAK,KAAKzd,EAAS,IAAI,EACvB,KAAK,mBAAkB,EACvB,KAAK,oBAAmB,CAChC,CAAO,CACP,CAAK,EAED,EAAE,sBAAsB,EAAE,WAAW,CACnC,YAAa,cACb,YAAa,OACb,OAAQ,aACR,UAAW,EACX,UAAW,EACjB,CAAK,EAAE,GAAG,aAAc,IAAM,KAAK,aAAc,GAE7C,KAAK,aAAe89S,IAA0B,EAAE,8BAA8B,EAAE,CAAC,EAAII,GAAU,CAC7F,GAAIA,EAAO,CACT,KAAM,CAAE,SAAA7+S,CAAQ,EAAK6+S,EAAM,SAC3B,EAAE,MAAM,EAAE,IAAI7+S,EAAS,IAAK,GAC5B,EAAE,MAAM,EAAE,IAAIA,EAAS,IAAK,GAC5B,OAAO,IAAI,IAAK,EAAC,UAAU6+S,EAAM,SAAS,QAAQ,EAClD,KAAK,aAAY,CACzB,MACQ,KAAK,aAAY,CAEzB,CAAK,EACF,CAED,aAAaC,EAAa,CACxB,MAAMx8D,EAAQ,EAAE,0BAA0B,EACpCljP,EAAMkjP,EAAM,KAAK,QAAQ,EAE/B,IAAIn1N,EAAOm1N,EAAM,YACbw8D,IAAgB,WAAU3xR,EAAOA,EAAO,uBAE5C,EAAE,IAAI,CAAE,IAAK/tB,EAAK,KAAM+tB,EAAM,QAAUzpB,GAAY,CAClD,KAAK,WAAWA,CAAO,EACpBo7S,IAAgB,OAAO,KAAK,WAAU,CAC1C,EAAE,CACJ,CAED,WAAWp7S,EAASq7S,EAAc,GAAO,CACvC,EAAE,kBAAkB,EAAE,KAAKr7S,CAAO,EAClC,EAAE,gEAAgE,EAAE,QAAQ,CAC1E,SAAU,OACV,UAAW,SACX,QAAS,OACf,CAAK,EACD,KAAK,eAAc,EACfq7S,GAAa,EAAE,cAAc,EAAE,QAAQ,CAAE,UAAW,CAAC,CAAE,EAE3D,EAAE,kCAAkC,EAAE,GAAG,QAAUtgT,GAAU,CAC3DA,EAAM,eAAc,EAEpB,EAAE,KAAK,CACL,IAAK,EAAEA,EAAM,MAAM,EAAE,KAAK,MAAM,EAChC,OAAQ,MACR,SAAU,SACV,MAAO,GACP,SAAWkC,GAAa,CAAE,KAAK,WAAWA,EAAS,aAAc,EAAI,CAAG,CAChF,CAAO,CACP,CAAK,CACF,CAED,gBAAiB,CACf,MAAMyyS,EAAS,OAAO,IAAI,IAAK,EAAC,UAAS,EACnC4L,EAAY5L,EAAO,MACnB6L,EAAY7L,EAAO,MAEzB,EAAE,KAAK,EAAE,wBAAwB,EAAG,CAACvnS,EAAOqzS,IAAS,CACnD,MAAMhnS,EAAW,EAAEgnS,CAAI,EAAE,KAAK,WAAW,EACnCC,EAAY,WAAWjnS,EAAS,KAAK,WAAW,CAAC,EACjDknS,EAAW,WAAWlnS,EAAS,KAAK,UAAU,CAAC,EAC/C+uB,EAAIi3Q,IAAkB,CAAE,IAAKiB,EAAW,IAAKC,CAAQ,EAAG,CAAE,IAAKJ,EAAW,IAAKC,CAAW,GAChG,EAAE/mS,CAAQ,EAAE,KAAK,GAAG+uB,CAAC,IAAI,CAC/B,CAAK,CACF,CAED,eAAeo4Q,EAAU,CACvB,EAAE,QAAQ,EAAE,GAAG,SAAUA,EAAW5gT,GAAU,CAC5C,KAAK,aAAa,EAAEA,EAAM,aAAa,CAAC,CAC9C,CAAK,CACF,CAED,WAAW6gT,EAAa,CACtB,GAAI,CAACA,EAAa,CAChB,GAAI,EAAE,aAAa,EAAE,QAAU,GAAI,OAAO,OAAO,cAAc,QAAS,0BAA0B,EAClG,GAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAG,CAAE,IAAM,GAAI,OAAO,OAAO,cAAc,QAAS,yBAAyB,CACpG,CAED,MAAM34S,EAAe,IAAI,gBACzBA,EAAa,IAAI,aAAc,EAAE,aAAa,EAAE,IAAG,CAAE,EACrDA,EAAa,IAAI,OAAQ,EAAE,OAAO,EAAE,IAAG,CAAE,EACzCA,EAAa,IAAI,OAAQ,EAAE,sBAAsB,EAAE,IAAG,GAAM,EAAE,EAE9D,OAAO,QAAQ,aAAa,GAAI,GAAI,OAAO,SAAS,SAAW,IAAOA,EAAa,SAAU,EAC9F,CAED,kBAAmB,CACjB,EAAE,YAAY,EAAE,MAAOlI,GAAU,CAC/B,MAAM0X,EAAQ,EAAE1X,EAAM,aAAa,EAC7BimB,EAAQvO,EAAM,KAAM,IAAK,wBAA2B,oBAAsB,wBAEhF,EAAE,oBAAoB,EAAE,SACxBA,EAAM,KAAKuO,CAAI,CACrB,CAAK,CACF,CAED,cAAe,CACb,EAAE,kBAAkB,EAAE,GAAG,QAAS,IAAM,CACtC,MAAM66R,EAAgB,EAAE,iBAAiB,EACnC/5M,EAAS+5M,EAAc,SAAS,MAAM,EAC5CA,EAAc,YAAY,OAAQ,CAAC/5M,CAAM,CAC/C,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,oBAAqB,KAAK,mBAAmB,EAErE,EAAE,QAAQ,EAAE,GAAG,QAAU/mG,GAAU,CAC5B,EAAEA,EAAM,MAAM,EAAE,QAAQ,iBAAiB,EAAE,QAC9C,EAAE,iBAAiB,EAAE,YAAY,MAAM,CAE/C,CAAK,CACF,CAED,qBAAsB,CACpB,MAAM+gT,EAAe,EAAE,iBAAiB,EAAE,KAAK,gCAAgC,EAAE,OAC3E96R,EAAQ86R,IAAiB,EAAK,GAAIA,CAAc,YAAa,sBAEnE,EAAE,0BAA0B,EAAE,KAAK96R,CAAI,CACxC,CAED,oBAAqB,CACnB,EAAE,MAAM,EAAE,OAAO,CAAE,QAAS,MAAM,CAAE,EAEpC,EAAE,MAAM,EAAE,GAAG,QAAU+6R,GAAe,EAAE,aAAa,EAAE,KAAKA,EAAW,KAAK,CAAC,EAC7E,EAAE,MAAM,EAAE,GAAG,YAAcA,GAAe,CACxC,EAAE,WAAW,EAAE,IAAIA,EAAW,KAAK,EACnC,KAAK,aAAY,CACvB,CAAK,EAGD,EAAE,mBAAmB,EAAE,GAAG,SAAW,GAAM,CACtC,EAAE,OAAO,OAAS,IACnB,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,KAAK,EACjC,KAAK,aAAY,IAEjB,EAAE,mBAAmB,EAAE,MAAO,EAC9B,OAAO,cAAc,QAAS,sCAAsC,EAE5E,CAAK,CACF,CAED,kBAAmB,CACjB,EAAE,MAAM,EAAE,OAAO,CAAE,QAAS,MAAM,CAAE,EACpC,EAAE,MAAM,EAAE,GAAG,QAAUA,GAAe,CACpC,EAAE,aAAa,EAAE,KAAKA,EAAW,MAAM,CAAC,CAAC,EACzC,EAAE,aAAa,EAAE,KAAKA,EAAW,MAAM,CAAC,CAAC,CAC/C,CAAK,EAED,EAAE,MAAM,EAAE,GAAG,YAAcA,GAAe,CACxC,EAAE,YAAY,EAAE,IAAIA,EAAW,MAAM,CAAC,CAAC,EACvC,EAAE,YAAY,EAAE,IAAIA,EAAW,MAAM,CAAC,CAAC,EAEvC,KAAK,aAAY,CACvB,CAAK,EAGD,EAAE,oBAAoB,EAAE,GAAG,SAAW,GAAM,CACtC,EAAE,OAAO,OAAS,EAAE,oBAAoB,EAAE,OAC5C,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,KAAK,EAClC,KAAK,aAAY,IAEjB,EAAE,oBAAoB,EAAE,MAAO,EAC/B,OAAO,cAAc,QAAS,8BAA8B,EAEpE,CAAK,EAED,EAAE,oBAAoB,EAAE,GAAG,SAAW,GAAM,CACtC,EAAE,oBAAoB,EAAE,IAAK,GAAI,EAAE,OAAO,OAC5C,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,KAAK,EAClC,KAAK,aAAY,IAEjB,EAAE,oBAAoB,EAAE,MAAO,EAC/B,OAAO,cAAc,QAAS,8BAA8B,EAEpE,CAAK,CACF,CAED,oBAAqB,CACnB,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAS,CAAC,CACpE,CAED,SAAU,CAET,CAED,WAAY,CAEX,CACH,CChOA,MAAMC,GAA0B,CAAE,IAAK,EAAK,IAAK,CAAG,EAEpD,SAASroK,KAAM,CACb,IAAInxH,EAAM,KACNy5R,EAAU,GAEd,SAASC,EAAQ79Q,EAAQ89Q,EAAW,CAClC,MAAMP,EAAev9Q,EAAO,MAAQ,MAAQA,EAAO,MAAQ,MAAQA,EAAO,MAAQ,IAAMA,EAAO,MAAQ,GACjGqxQ,EAASkM,EAAcI,GAA0B39Q,EAEvD7b,EAAM,IAAI,OAAO,KAAK,IAAI,SAAS,eAAe,KAAK,EAAG,CACxD,QAAS,GACT,QAAS,EACT,kBAAmB,GACnB,YAAa,GACb,mBAAoB,CAAE,SAAU,OAAO,KAAK,gBAAgB,QAAU,EACtE,OAAQ25R,GAAa,CAAE,EACvB,KAAM,GACN,OAAQzM,CACd,CAAK,EAED,MAAM0M,EAAa,SAAS,eAAe,aAAa,EACxDA,EAAW,MAAQ,EACnB55R,EAAI,SAAS,OAAO,KAAK,gBAAgB,UAAU,EAAE,KAAK45R,CAAU,EAEpE,EAAE,MAAM,EAAE,IAAI/9Q,EAAO,GAAG,EACxB,EAAE,MAAM,EAAE,IAAIA,EAAO,GAAG,EAExB7b,EAAI,YAAY,UAAW65R,CAAS,EAEhCT,IACFU,IACA95R,EAAI,UAAUw5R,EAAuB,GAGvCO,GACD,CAED,SAASl3R,EAAKgZ,EAAQm+Q,EAAc,CAE9BA,EACF,EAAE,KAAK,CACL,IAAKA,EACL,SAAU,OACV,QAAUL,GAAcD,EAAQ79Q,EAAQ89Q,CAAS,EACjD,MAAO,IAAMD,EAAQ79Q,CAAM,CACnC,CAAO,EAED69Q,EAAQ79Q,CAAM,CAEjB,CAED,SAASg+Q,GAAY,CAEnB,MAAM70G,EADkB,EAAE,qBAAqB,EACf,GAAG,UAAU,EAE7C,EAAE,UAAU,EAAE,IAAIA,CAAO,EAEzB,KAAM,CAAE,IAAAi1G,EAAK,IAAAC,CAAK,EAAGl6R,EAAI,UAAS,EAClC,EAAE,MAAM,EAAE,IAAIk6R,EAAK,GACnB,EAAE,MAAM,EAAE,IAAID,EAAK,GAEfj1G,EAAW+0G,EAAc,EAAUI,EAAiB,CACzD,CAED,SAASt9F,EAAOh4E,EAAOhpG,EAAQ,CAG7B,GAFqBA,EAAO,MAAQ,MAAQA,EAAO,MAAQ,MAAQA,EAAO,MAAQ,IAAMA,EAAO,MAAQ,GAEtF,CACfi+Q,IACA95R,EAAI,UAAUw5R,EAAuB,EACrC,MACD,CAEG39Q,EAAO,eAAe7b,EAAI,UAAU,CAAE,IAAK6b,EAAO,IAAK,IAAKA,EAAO,GAAK,GAE5E49Q,EAAQ,QAAQ7zC,GAAUA,EAAO,OAAO,IAAI,CAAC,EAG7C/gI,EAAM,QAASn1H,GAAS,CACtB,MAAMk2P,EAAS,IAAI,OAAO,KAAK,OAAO,CACpC,SAAU,CAAE,IAAKl2P,EAAK,IAAK,IAAKA,EAAK,GAAK,EAC1C,KAAMA,EAAK,QAAQ,IACnB,IAAAsQ,CACR,CAAO,EAEKo6R,EAAa,IAAI,OAAO,KAAK,WAAW,CAAE,QAAS1qS,EAAK,UAAU,CAAE,EAC1Ek2P,EAAO,YAAY,QAAS,IAAM,CAAEw0C,EAAW,KAAK,CAAE,OAAQx0C,EAAQ,IAAA5lP,EAAK,CAAE,CAAC,EAE9Ey5R,EAAQ,KAAK7zC,CAAM,CACzB,CAAK,EAED,IAAIz6E,GAAM,EAAG,gBACd,CAED,SAAS4uH,EAAaX,EAAa,CACjC,IAAIjuH,GAAQ,EAAC,aAAa,KAAK,CAChC,CAED,SAASgvH,GAAoB,CAC3B,IAAIhvH,GAAM,EAAG,gBACd,CAED,SAAS2uH,GAAmB,CAC1B,OAAO,cAAc,QACnB;AAAA,qDAGN,CACG,CAED,MAAO,CACL,IAAK,IAAe95R,EACpB,KAAM6C,EACN,OAAQg6L,CACT,CACH,CAEA,OAAO,IAAM,IAAI1rE,KC1HhB,UAAW,CACV,EAAE,UAAW,CACX,GAAI,EAAE,kCAAkC,EAAE,OAAS,EACjD,OAGF,MAAMkpK,EAAyB,EAAE,wBAAwB,EAEnDl0H,EAAY,SAAS9jL,EAAM,CAC/B,EAAE,IAAIA,EAAM,SAAS4kB,EAAM,CACzBozR,EAAuB,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOpzR,CAAI,EACjEozR,EAAuB,MAAM,MAAM,CAC3C,CAAO,CACP,EAEI,EAAE,QAAQ,EAAE,GAAG,QAAS,0CAA2C,SAASxuS,EAAG,CAE7E,GADAA,EAAE,eAAc,EACZ,GAAE,IAAI,EAAE,OAAO,IAAI,EAAE,SAAS,UAAU,EAG5C,OAAOs6K,EAAU,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAC3C,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,yDAA0D,SAASt6K,EAAG,CAC5F,OAAAA,EAAE,eAAc,EACTs6K,EAAU,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAC3C,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,4CAA6C,SAASt6K,EAAG,CAC/E,IAAIuwO,EAAOljP,EACX,OAAA2S,EAAE,eAAc,EAChBuwO,EAAQ,EAAE,IAAI,EAAE,QAAQ,MAAM,EAC9BljP,EAAMkjP,EAAM,KAAK,QAAQ,EAClB,EAAE,KAAK,CACZ,KAAM,OACN,IAAKljP,EACL,KAAMkjP,EAAM,UAAW,EACvB,QAAS,SAASn1N,EAAM,CACtB,MAAMmgP,EAASizC,EAAuB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAChEA,EAAuB,MAAM,MAAM,EAC/BjzC,IACE,EAAE,kBAAkB,EAAE,OAAS,GAGjC,SAAS,OAAM,EAGpB,EACD,MAAO,SAASngP,EAAM,CACpBozR,EAAuB,KAAK,gBAAgB,EAAE,MAAO,EAAC,OAAOpzR,EAAK,YAAY,CAC/E,CACT,CAAO,CACP,CAAK,CACL,CAAG,CAEH,GAAG,KAAK7T,MAAI,ECvDZ,MAAMknS,GAAgB,CAACC,EAAiBC,IAAkB,CACxD,MAAMC,EAAkB,KAAK,MAAMF,EAAgB,IAAK,GAClDG,EAAiB,KAAK,MAAMF,EAAc,IAAK,GAC/CG,EAAqB,OAAOF,CAAe,EAAE,OAAO,kBAAkB,EAExEC,EAAgBD,GAA+BD,EAAA,WAAW,SAAUG,CAAiB,EAEnF,MAAAC,EAAkB,IAAI,KAAKH,CAAe,EAC1CI,EAAgB,IAAI,KAAKH,CAAa,EACtCI,EAAY,OAAOD,CAAa,EAAE,KAAKD,EAAiB,MAAM,EAAI,EAClEG,EAAoB,SAAS,cAAc,qBAAqB,EAElEA,IACFA,EAAkB,MAAQ,YAAYD,EAAY,EAAI,OAAS,MAAM,IAEzE,EAEA,OAAO,oBAAsB,IAAM,CAC3B,MAAAP,EAAkB,EAAE,0BAA0B,EAC9CC,EAAgB,EAAE,wBAAwB,EAChDF,GAAcC,EAAiBC,CAAa,CAC9C,EAEA,OAAO,wBAA2BjiT,GAAU,CAC1C,MAAMoN,EAAQpN,EAAM,OAAO,GAAG,MAAM,GAAG,EAAE,MACnCgiT,EAAkB,EAAE,4BAA4B50S,CAAK,EAAE,EACvD60S,EAAgB,EAAE,0BAA0B70S,CAAK,EAAE,EACzD20S,GAAcC,EAAiBC,CAAa,CAC9C,EAEA,OAAO,sBAAwB,CAAC,CAAE,MAAAr8S,KAAY,CAC1C,+BAA6B,EAAE,OAE3B,MAAA68S,EAAkB,EAAE,wCAAwC,EAE9DA,GACA,EAAAA,CAAc,EAAE,YAAY,CAC5B,gBAAiB,MACjB,gBAAiB,GACjB,aAAc,GACd,YAAa,qBACd,EAGC78S,GAAO,MAAMA,CAAK,EAEhB,MAAAigQ,EAAoB7lQ,GAAU,CAClC,IAAI42D,EAAY,KAEZ52D,EAAM,SACJA,EAAM,OAAO,gBACH42D,EAAA52D,EAAM,OAAO,gBAAgB,SAAW,EAExC42D,EAAA52D,EAAM,OAAO,QAAU,KAInC42D,GACA,+BAA6B,EAAE,IAAI,MAAM,EAC3C,EAAE,6BAA6B,EAAE,KAAM,WAAY,EAAK,EACtD,WAAS,EAAE,KAAK,CAAC,KAAM,SAAU,GAAI,uBAAwB,KAAM,8BACnE,MAAO,OAAO,EAAE,SAAS,6BAA6B,IAExD,EAAE,6BAA6B,EAAE,KAAM,WAAY,EAAM,EACvD,yBAAuB,EAAE,UAGzB52D,EAAM,OAAO,iBAAmB,MAChC,iCAA+B,EAAE,OAAO42D,CAAS,EAG/CorP,QAAkB,EAAE,0BAA0B,EAC9CC,EAAgB,EAAE,wBAAwB,EAChDF,GAAcC,EAAiBC,CAAa,GAG9C,EAAE,4CAA4C,EAAE,GAAG,SAAUp8C,CAAgB,EAC7E,EAAE,wCAAwC,EAAE,GAAG,SAAUA,CAAgB,EAEzE,MAAM68C,EAAgB,EAAE,oDAAoD,EAAE,CAAC,EAE3EA,GACe78C,EAAA,CAAC,OAAQ68C,CAAA,CAAa,EAGzC,EAAE,KAAK,EAAE,6CAA6C,EAAG,UAAW,CAClE,MAAMj2G,EAAU,EAAE,IAAI,EAAE,GAAG,UAAU,EAC1B,EAAE,IAAI,EAAE,SAAS,IAAI,EAE7B,OAAOA,CAAO,EAClB,EAED,EAAE,6CAA6C,EAAE,GAAG,QAAS,UAAW,CACtE,MAAMA,EAAU,EAAE,IAAI,EAAE,GAAG,UAAU,EAC/Bk2G,EAAK,EAAE,IAAI,EAAE,SAAS,IAAI,EAE5BA,IACFA,EAAG,OAAOl2G,CAAO,EACjBk2G,EAAG,KAAK,iBAAiB,EAAE,KAAK,UAAWl2G,CAAO,EACpD,CACD,EAED,EAAE,sBAAsB,EAAE,KAAK,UAAW,EAAI,EAAE,GAAG,QAAUn5L,GAAMA,EAAE,eAAgB,GAErF,MAAMsvS,EAAgB,IAAM,CAC1B,MAAM1/R,EAAW,CAAC,EAAE,gCAAgC,EAAE,GAAG,UAAU,EACnE,EAAE,iDAAiD,EAAE,KAAK,WAAYA,CAAQ,GAGhF,EAAE,gCAAgC,EAAE,GAAG,SAAU0/R,CAAa,EAEhDA,IAER,MAAAzkS,EAAS,EAAE,wBAAwB,EAEzC,SAAS0kS,GAAgB,CACvB,MAAMC,EAAwB3kS,EAAO,QAAQ,MAAM,EAAE,KAAK,0BAA0B,EAC9E4kS,EAAwB5kS,EAAO,QAAQ,MAAM,EAAE,KAAK,6BAA6B,EAEvF2kS,EAAsB,OAAO3kS,EAAO,IAAI,IAAM,aAAa,EAC3D4kS,EAAsB,OAAO5kS,EAAO,IAAI,IAAM,aAAa,EAE3D,EAAE,kCAAkC,EAAE,OAAOA,EAAO,QAAU,UAAU,EACxE,EAAE,kCAAkC,EAAE,OAAOA,EAAO,QAAU,SAAS,CACzE,CAEOA,EAAA,GAAG,SAAU0kS,CAAa,EACnBA,IAEd,SAASG,GAAmC,CACtC,IAAA9F,EAAY,EAAE,sBAAsB,EACpC+F,EAAe,EAAE,oBAAoB,EAAE,QAAQ,aAAa,EAEhE,EAAE,wBAAwB,EAAE,GAAG,QAAS,SAAS3vS,EAAG,CAGlD,GAFAA,EAAE,eAAe,EAEb,EAAE,cAAe2vS,CAAW,EAAE,OAAS,GACrC,EAAE,sBAAuBA,CAAW,EAAE,QAAU,EAClD,aAAM,oCAAoC,EACnC,GAIX,GAAI,EAAE,6BAA6B,EAAE,OAAS,QAOxC,GAAC,QANW;AAAA;AAAA,6TAMI,EAGlB/F,EAAU,MAAM,MAFT,UAKXA,EAAU,MAAM,EACjB,CACH,CAEiC8F,IAE/B,cAAY,EAAE,YAAY,CAC1B,gBAAiB,OACjB,YAAa,wBACd,EAEK,MAAAhB,EAAkB,EAAE,0BAA0B,EAC9CC,EAAgB,EAAE,wBAAwB,EAEhDF,GAAcC,EAAiBC,CAAa,CAC9C,EC3KA,OAAO,mBAAqB,SAASiB,EAAc1M,EAAM2M,EAAqB,GAAO,EAClF,SAAUD,EAAc1M,EAAM2M,EAAqB,GAAO,CACzD,MAAMhsG,EAAW,EAAE,kBAAkB+rG,CAAY,SAAS,EACpDE,EAAa,EAAE,YAAYF,CAAY,gDAAgD,EAAE,OAAS,EAClG1D,EAAU,EAAE,IAAI0D,CAAY,gBAAgB,EAC5CG,EAAa,IAAM,EAAE,SAASH,CAAY,mBAAmB,EAAE,OAAO/rG,EAAS,GAAG,UAAU,CAAC,EAC7FmsG,EAAgB9D,EAAQ,KAAK,OAAOhJ,CAAI,QAAQ,EAE7Cr/F,EAAA,GAAG,SAAU,IAAM,CAC1BqoG,EAAQ,KAAK,OAAOhJ,CAAI,SAAUr/F,EAAS,GAAG,UAAU,CAAC,EAC9CksG,GAAA,CACZ,EAEGF,EACFhsG,EAAS,KAAK,UAAWisG,CAAU,EAAE,KAAK,WAAY,EAAI,EACjDA,IACTjsG,EAAS,KAAK,UAAW,EAAI,EAAE,KAAK,WAAY,EAAI,EACpDqoG,EAAQ,KAAK,OAAOhJ,CAAI,SAAUr/F,EAAS,GAAG,UAAU,CAAC,GAGvDmsG,IAAkB,IAAensG,EAAA,KAAK,UAAW,EAAI,EAE9CksG,GAAA,GACVH,EAAc1M,EAAM2M,CAAkB,EAExC,SAAUD,EAAc1M,EAAM2M,EAAqB,GAAO,CACzD,MAAMhsG,EAAW,EAAE,SAAS+rG,CAAY,eAAe,EACjDK,EAAgB,EAAE,aAAaL,CAAY,cAAc,EAAE,OAAS,EACpE1D,EAAU,EAAE,IAAI0D,CAAY,gBAAgB,EAC5CM,EAAa,iBAAiBhN,CAAI,SAClCiN,EAAmB,IAAM,EAAE,IAAIP,CAAY,6BAA6B,EAAE,OAAO/rG,EAAS,GAAG,UAAU,CAAC,EACxGmsG,EAAgB9D,EAAQ,KAAKgE,CAAU,EAEpCrsG,EAAA,GAAG,SAAU,IAAM,CAC1BqoG,EAAQ,KAAKgE,EAAYrsG,EAAS,GAAG,UAAU,CAAC,EAC/BssG,GAAA,CAClB,EAEGN,EACFhsG,EAAS,KAAK,WAAY,EAAI,EAAE,KAAK,UAAWosG,CAAa,EACpDA,IACTpsG,EAAS,KAAK,UAAW,EAAI,EAAE,KAAK,WAAY,EAAI,EACpDqoG,EAAQ,KAAKgE,EAAYrsG,EAAS,GAAG,UAAU,CAAC,GAG9CmsG,IAAkB,IAAensG,EAAA,KAAK,UAAW,EAAI,EAExCssG,GAAA,EAChBP,EAAc1M,EAAM2M,CAAkB,EAEvC,cAAY,EAAE,KAAK,UAAW,CAC5B,MAAI,EAAE,QAAQ,CACd,KAAM,GACN,QAAS,QACT,UAAW,QACX,QAAS,IAAM,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,EACnD,EACF,CACH,GC1DC,UAAW,CACV,IAAIO,EAAuBC,EAE3B,EAAE,2BAA6B,UAAW,CACxC,EAAE,iCAAiC,EAAE,SAAS,CAC5C,OAAQA,EACR,MAAO,SAASrwS,EAAGwzC,EAAI,CACrB,OAAOA,EAAG,YAAY,OAAOA,EAAG,KAAK,OAAM,CAAE,CAC9C,EACD,KAAM,SAASxzC,EAAGwzC,EAAI,CACpB,OAAO48P,EAAqB,CAC7B,CACP,CAAK,EAED,EAAE,8BAA8B,EAAE,SAAS,CACzC,OAAQC,EACR,MAAO,SAASrwS,EAAGwzC,EAAI,CACrB,OAAOA,EAAG,YAAY,OAAOA,EAAG,KAAK,OAAM,CAAE,CAC9C,EACD,KAAM,SAASxzC,EAAGwzC,EAAI,CACpB,OAAO48P,EAAqB,CAC7B,CACP,CAAK,CACL,EAEE,EAAE,2BAA0B,EAE5BC,EAAiB,SAASrwS,EAAGwzC,EAAI,CAC/B,OAAAA,EAAG,WAAW,KAAK,UAAW,CAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAK,CAAE,CAC1C,CAAK,EACMA,CACX,EAEE48P,EAAwB,UAAW,CACjC,IAAI3qF,EAAgB6qB,EAAK7sK,EACzBgiJ,EAAiB,EAAE,yDAAyD,EAE5E6qB,EAAM,EAAE,IAAI7qB,EAAgB,SAASv2M,EAAIte,EAAG,CAC1C,OAAO,EAAEse,CAAE,EAAE,KAAK,IAAI,CAC5B,CAAK,EAEDu0D,EAAO,EAAE,0BAA0B,EAAE,KAAK,MAAM,EAEhD,EAAE,KAAK,CACL,OAAQ,MACR,IAAKA,EACL,KAAM,CACJ,IAAK6sK,CACN,EACD,QAAS,SAAS9/O,EAAQ,CACxB,EAAE,UAAU,EAAE,OAAO,MAAM,EAC3B,EAAE,UAAU,EAAE,QAAQ,MAAM,CAC7B,EACD,KAAM,SAASA,EAAQ,CACrB,EAAE,QAAQ,EAAE,OAAO,MAAM,EACzB,EAAE,QAAQ,EAAE,QAAQ,MAAM,CAC3B,CACP,CAAK,CACL,CAEA,GAAG,KAAK+W,MAAI,GC7DX,UAAW,CACV,IAAI+oS,EAEJ,OAAO,mBAAqB,UAAW,CACrC,EAAE,kBAAkB,EAAE,SAAS,CAC7B,KAAM,SAAS,EAAG76Q,EAAG,CACnB,OAAO66Q,EAAkB,CAC1B,CACP,CAAK,CACL,EAEE,qBAEAA,EAAqB,UAAW,CAC9B,IAAIC,EAAejgE,EACnBigE,EAAgB,EAAE,sCAAsC,EAExDjgE,EAAM,EAAE,IAAIigE,EAAe,SAASC,EAAQ5/S,EAAG,CAC7C,OAAO,EAAE4/S,CAAM,EAAE,KAAK,IAAI,CAChC,CAAK,EAED,EAAE,KAAK,CACL,OAAQ,MACR,IAAK,wBACL,KAAM,CAAE,IAAKlgE,CAAK,EAClB,QAAS,SAAS9/O,EAAQ,CACxB,EAAE,UAAU,EAAE,OAAO,MAAM,EAC3B,EAAE,UAAU,EAAE,QAAQ,MAAM,CAC7B,EACD,KAAM,SAASA,EAAQ,CACrB,EAAE,QAAQ,EAAE,OAAO,MAAM,EACzB,EAAE,QAAQ,EAAE,QAAQ,MAAM,CAC3B,CACP,CAAK,CACL,CACA,GAAG,KAAK+W,MAAI,ECnCZ,OAAO,iCAAmC,IAAM,CAC9C,MAAMlN,EAAiB,CACrB,OAAQ,eACR,UAAW,GACX,UAAW,MACX,UAAW,EACX,UAAW,aACf,EAEE,SAASo2S,EAAoB39N,EAAO49N,EAAc,CAC5C59N,EAAM,WAAW,SAAS,EAAI49N,GAChC59N,EAAM,WAAW,UAAW49N,CAAY,EAE1C59N,EAAM,WAAW,aAAc49N,CAAY,CAC5C,CAED,EAAE,qEAAqE,EAAE,WAAWr2S,CAAc,EAElG,EAAE,mCAAmC,EAAE,WAAW,CAChD,GAAGA,EAAgB,UAAW,KAC/B,GAAE,GAAG,aAAc,SAAUoyB,EAAU,CACtCgkR,EAAoB,EAAE,mCAAmC,EAAGhkR,EAAS,IAAI,CAC7E,CAAG,EAED,EAAE,sDAAsD,EAAE,WAAW,CACnE,GAAGpyB,EAAgB,UAAW,KAC/B,GAAE,GAAG,aAAc,SAAUoyB,EAAU,CACtCgkR,EAAoB,EAAE,sDAAsD,EAAGhkR,EAAS,IAAI,CAChG,CAAG,EAED,EAAE,yFAAyF,EAAE,WAAW,CAAE,GAAGpyB,EAAgB,UAAW,KAAK,CAAE,EAE/I,EAAE,uEAAuE,EAAE,GAAG,QAAS,SAAS2F,EAAG,CAC7F,EAAE,kCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,MAAM,EACxE,EAAE,kCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,MAAM,EAEzE,EAAE,kCAAmC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,MAAM,EAExEA,EAAE,eAAc,CACpB,CAAG,EAED,EAAE,wCAAwC,EAAE,GAAG,SAAU,UAAW,CAClE,MAAMksS,EAAU,EAAE,IAAI,EAAE,QAAQ,iCAAiC,EAE7D,EAAE,IAAI,EAAE,IAAG,GAAM,eACnB,EAAE,oCAAqCA,CAAO,EAAE,IAAI,EAAE,EACtD,EAAE,8BAA+BA,CAAO,EAAE,SAAS,MAAM,EACzD,EAAE,oCAAqCA,CAAO,EAAE,IAAI,EAAE,EACtD,EAAE,8BAA+BA,CAAO,EAAE,SAAS,MAAM,EACzD,EAAE,0BAA2BA,CAAO,EAAE,YAAY,MAAM,IAExD,EAAE,8BAA+BA,CAAO,EAAE,YAAY,MAAM,EAC5D,EAAE,8BAA+BA,CAAO,EAAE,YAAY,MAAM,EAC5D,EAAE,0BAA2BA,CAAO,EAAE,SAAS,MAAM,EAE3D,CAAG,EAED,MAAMyE,EAA4B,EAAE,kDAAkD,EAEtF,SAASC,GAA4B,CACnC,MAAMC,EAAsBF,EAA0B,MACtD,EAAE,uBAAuB,EAAE,OAAOE,IAAwB,OAAO,CAClE,CAEDF,EAA0B,GAAG,SAAUC,CAAyB,EAChEA,IAEA,EAAE,YAAY,EAAE,KAAK,UAAW,CAC9B,EAAE,IAAI,EAAE,QAAQ,CACd,KAAM,GACN,QAAS,QACT,UAAW,MACX,QAAS,UAAW,CAClB,OAAO,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,MACtC,CACP,CAAK,CACL,CAAG,CACH,GC7EC,UAAW,CACV,EAAE,mBAAqB,UAAW,CAChC,EAAE,kBAAkB,EAAE,WACtB,EAAE,sBAAsB,EAAE,GAAG,QAAU5wS,GAAM,CAC3C,MAAM1T,EAAS,EAAE0T,EAAE,MAAM,EACX,EAAEA,EAAE,MAAM,EAAE,QAAQ,QAAQ,EACpC,KAAK,iBAAiB,EAAE,YAAY,GAAG,EAC7C1T,EAAO,KAAK,gBAAgB,EAAE,YAAY,CAAC,EAC3CA,EAAO,KAAK,cAAc,EAAE,YAAY,CAAC,CAC/C,CAAK,CACL,CACA,GAAG,KAAKib,MAAI,ECTZ,MAAMupS,GAAarpP,GAAM,cAAc,IAAI,ECA3C,IAAAspP,IAAA,KAAU,CACR,YAAYttO,EAAM,CAIlBqjH,GAAA,oBAAe,IACN5/G,GAAM,IAAI,GAAG,KAAK,IAAI,OAAO,GAGtC4/G,GAAA,sBAAiB,IACR5/G,GAAM,IAAI,GAAG,KAAK,IAAI,WAAW,GAG1C4/G,GAAA,sBAAkBryL,GACTyyE,GAAM,KAAK,GAAG,KAAK,IAAI,QAASzyE,CAAQ,GAGjDqyL,GAAA,mBAAe9xL,GACNkyE,GAAM,IAAI,GAAG,KAAK,IAAI,IAAIlyE,CAAE,OAAO,GAG5C8xL,GAAA,sBAAiB,CAAC9xL,EAAIP,IACbyyE,GAAM,IAAI,GAAG,KAAK,IAAI,IAAIlyE,CAAE,QAASP,CAAQ,GAGtDqyL,GAAA,sBAAkB9xL,GACTkyE,GAAM,OAAO,GAAG,KAAK,IAAI,IAAIlyE,CAAE,OAAO,GAG/C8xL,GAAA,wBAAoBwpD,GACXppK,GAAM,IAAI,gCAAiC,CAAE,IAAAopK,EAAU,GA5B9D,KAAK,KAAO7sK,CACd,CA6BF,ECvBA,SAASutO,IAAiBnvO,EAAK/6C,EAAM5qB,EAAM,CACzC,MAAMiX,EAASxI,GAASk3D,CAAG,EACrB9wE,EAAW,GACjB,QAAS,EAAI,EAAG,EAAIoiB,EAAO,OAAQ,IAAK,CACtC,MAAM/e,EAAQ+e,EAAO,CAAC,EACtB,GAAI/e,EAAM,IAAM,MAAQ0yB,EAAK,IAAI,OAAO,EAAG,CACzC,MAAMtoB,EAAM,gBAAgBtC,EAAK,WAAW,GAC5CnL,EAAS,KAAKkgT,EAAmB,cAAC,KAAM,CACtC,IAAAzyS,CACD,EAAC,CACR,SAAe,CAACpK,EAAM,QAAU,CAAC0yB,EAAK,MAAM1yB,CAAK,EAE3CrD,EAAS,KAAKqD,EAAM,SAAU,OACzB,CACL,IAAI88S,EAAWpqR,EAAK,OAAO1yB,CAAK,EAChC,GAAI,EAAE,QAAS88S,EAAS,OAAQ,CAE9B,MAAM1yS,EAAM,gBAAgBtC,EAAK,WAAW,GACtC+jB,EAAQ/pB,GAAQ,OAAO,CAC3B,IAAAsI,CACV,EAAW0yS,EAAS,KAAK,EACjBA,EAAWC,EAAkB,aAACD,EAAUjxR,CAAK,CAC9C,CACDlvB,EAAS,KAAKmgT,CAAQ,CACvB,CACF,CACD,OAAOngT,CACT,CAWA,SAASqgT,GAAoB7kT,EAASu6B,EAAM5qB,EAAM,CAChD,GAAIm1S,WAAe,MAAM9kT,EAAQ,MAAM,QAAQ,IAAM,EAEnD,OAAOA,EAET,MAAMkiE,EAAW,GACjB4iP,WAAe,QAAQ9kT,EAAQ,MAAM,SAAUoiE,GAAS,CAClD,OAAOA,GAAU,SAEnBF,EAAS,KAAK,MAAMA,EAAUuiP,IAAiBriP,EAAO7nC,EAAM5qB,CAAI,CAAC,EACxDo1S,iBAAqB3iP,CAAK,EAC/B,OAAOA,EAAM,MAAS,UAAY7nC,EAAK,WAAW,QAAQ6nC,EAAM,KAAK,YAAa,IAAK,EAEzFF,EAAS,KAAKE,CAAK,EAEnBF,EAAS,KAAK2iP,GAAoBziP,EAAO7nC,EAAM5qB,CAAI,CAAC,EAItDuyD,EAAS,KAAKE,CAAK,CAEzB,CAAG,EAGD,MAAMnwD,EAAM,gBAAgBtC,EAAK,WAAW,GACtCk8D,EAAWliE,GAAQ,OAAO,CAC9B,IAAAsI,CACJ,EAAKjS,EAAQ,KAAK,EAChB,OAAO4kT,eAAmB5kT,EAAS6rE,EAAU3J,CAAQ,CACvD,CAQA,MAAM8iP,IAAUtxR,GAAS,CAEvB,IAAIuxR,EAAS,EACb,MAAMC,EAAoBhrP,GAAQ,CAChC,GAAI,CACF,QAAAltD,EACA,WAAAkT,EACA,QAAA9a,CACD,EAAG80D,EACJ,OAAAh6C,EAAW,IAAM,iBAAiB+kS,GAAQ,GACtC/kS,EAAW,QACbA,EAAW,UAAYA,EAAW,MAClC,OAAOA,EAAW,OAEbwkS,gBAAoB13S,EAASkT,EAAY9a,CAAO,CAC3D,EACQymE,EAAW,CACf,IAAK,mBACT,EACE,UAAW/8C,KAAQ4E,EACb5E,IAAS,WAAaA,IAAS,MAAQA,IAAS,WAAaA,IAAS,aACxE+8C,EAAS/8C,CAAI,EAAI4E,EAAM5E,CAAI,GAG/B,MAAMyL,EAAO,IAAI0lO,GAAQvsO,EAAM,QAASwxR,CAAiB,EACnDx4L,EAAKh5F,EAAM,IAAMA,EAAM,SAAWyxR,EAAc,UAAI,OACpDjjP,EAAWxuC,EAAM,SACjB1zB,EAAU0kT,EAAmB,cAACh4L,EAAI7gD,EAAU3J,CAAQ,EAC1D,OAAO2iP,GAAoB7kT,EAASu6B,EAAM,CACxC,UAAW,CACf,CAAG,CACH,ECjHA6qR,IAAe,CAAC,CAAE,GAAA38S,EAAI,KAAA2d,EACJ,aAAAi/R,EACA,cAAAC,EACA,QAAAC,EACA,OAAAC,EACA,eAAAC,EACA,UAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,KAAAC,EAAM,OAAAC,EACN,aAAAC,EACA,OAAA94C,EACA,SAAA+4C,EACA,OAAAC,EACA,QAAA9+B,CAAQ,IAAM,CAE9B,IAAI++B,EAAY,KACZC,EAAc,KAElB,OAAIN,IAEAK,EAAA3hO,EAAC,KAAE,UAAWK,GAAW,CAAC,UAAW,CAACihO,GAAQ,UAAU,CAAC,EAAG,QAAS,IAAMA,GAAQA,IACjF,WAAC,IAAE,WAAU,iBAAgB,CAC/B,IAIAC,IAEAK,EAAA5hO,EAAC,KAAE,UAAWK,GAAW,CAAC,YAAa,CAACkhO,GAAU,UAAU,CAAC,EAAG,QAAS,IAAMA,GAAUA,IACvF,WAAC,IAAE,WAAU,mBAAkB,CACjC,IAKDtiN,GAAA,OAAI,UAASt7F,EAAI,MAAO,CAAE,cAAe,IAAM,UAAWi/Q,EAAU,oBAAsB,WACzF,UAAA3jL,GAAC,OAAI,UAAU,aAAc,MAAO,CAAE,MAAO,GAC1C,aAAC2jL,GAEG3jL,GAAAlf,GAAA,WAAA0gO,GAAW,CAACE,GACb3gO,EAAC,OAAI,MAAO,CAAE,WAAY,SAAU,MAAO,IAAK,QAAS,gBACtD,SAAgBwgO,EAAA,iBAAmBM,GAAmBA,EAAkB,EAAI,cAAgB,aAC/F,EAECH,GAAkBD,GACnB1gO,EAAC,MAAI,OAAO,CAAE,WAAY,SAAU,MAAO,IAAK,QAAS,cAAe,EACrE,YAAe6gO,EAAc,EAAI,UAAY,UAChD,GAEF,EAGD,CAACj+B,GAAWla,GAAU1oL,EAAC,OAAI,MAAO,CAAE,WAAY,SAAU,MAAO,IAAK,QAAS,gBAAmB,SAAO0oL,EAAA,GAExG84C,GAAgBZ,IACjB5gO,EAAA,OAAI,UAAU,eACZ,UAAC4iM,GACA3jL,GAAC,MACE,WAAgBuiN,GAAAG,EAChBH,GAAgBI,EAEhBhB,GAAa5gO,EAAC,IAAE,SAASyhO,EAAU,SAAM,WACzCb,GAAa5gO,EAAC,IAAE,SAAS0hO,EAAQ,SAAI,UACxC,CAEJ,IAEF,EAEC1hO,EAAA,OAAI,UAAU,gBACb,WAAC,KACC,UAAAA,EAACkgO,IAAQ,SAAS,CAAE,OAAQ,UAAa,SAAA5+R,CAAA,CAAK,CAChD,GACF,EACC0+D,EAAA,OAAI,UAAU,sBACb,YAAC,QACC,WAAAA,EAAC,SAAM,KAAK,WAAW,SAAS,WAAW,QAASihO,EAAa,EAAE,mEAErE,CACF,GACCjhO,EAAA,OAAI,UAAU,sBACb,YAAC,QACC,WAAAA,EAAC,SAAM,KAAK,WAAW,SAAS,WAAW,QAASmhO,EAAkB,EAAE,oDAE1E,CACF,GACCnhO,EAAA,OAAI,UAAU,sBACb,YAAC,QACC,WAAAA,EAAC,SAAM,KAAK,WAAW,SAAS,WAAW,QAAS+gO,EAAe,EAAE,kCAEpEC,GACEhhO,EAAA,QAAK,MAAO,CAAE,YAAa,CAAE,EAAG,MAAM,WAAW,SAAC,OAEvD,CACF,GACCA,EAAA,OAAI,UAAU,sBACb,YAAC,QACC,WAAAA,EAAC,SAAM,KAAK,WAAW,SAAS,WAAW,QAASugO,EAAa,EAAE,4CAErE,CACF,GACCvgO,EAAA,OAAI,UAAU,sBACb,YAAC,QACC,WAAAA,EAAC,SAAM,KAAK,WAAW,SAAS,WAAW,QAASkhO,EAAmB,EAAE,2CAExEA,GACDlhO,EAAC,KAAK,WAAAohO,GAAiB,IAAI,IAAoBS,GAAA7hO,EAAC,MAA0B,SAAa6hO,EAAA,OAA/BA,EAAa,EAAwB,CAAK,EAAE,GAEtG,CACF,GAECR,GACCrhO,EAAC,MACC,UAAAA,EAAC,IAAE,MAAMqhO,EAAiB,iBAAkB,OAAO,SAAU,SAAiBA,EAAA,KAAM,GACtF,CAEJ,GAEJ,EChIgB,SAAAvvI,GAASh/G,EAAWy+G,EAAa,CAC/C,KAAM,CAACvlJ,EAAMslJ,CAAO,EAAInzE,WAAS,EAAK,EAChC,CAACt5F,EAASktK,CAAU,EAAI5zE,EAAA,SAAS,CAAE,GAclC,SAZQrrC,EAAU,IAAIjuD,EAAQ,GAAI,KAAAmnB,EAAY,QAAAslJ,EAAkB,YAAAC,CAAyB,GAE7E1sK,GAAY,CAC7BysK,EAAQ,EAAI,EACZS,EAAWltK,CAAO,GAGF,IAAM,CACtBysK,EAAQ,EAAK,EACbS,EAAW,CAAE,GAGoB,CACrC,CChBA,MAAe+vI,GAAA,CAAC,CAAE,OAAArlT,EAAQ,OAAAquJ,EAAQ,UAAA7rI,KAC5B,CAAC,MAAM,QAAQ6rI,CAAM,GACrBA,EAAO,SAAW,EAAU,KAG9B9qE,EAAC,OAAI,UAAWK,GAAW,CAAC,4BAA6BphE,CAAS,CAAC,EAChE,SAAO6rI,EAAA,OAAaruJ,EAAS,GAAGA,CAAM,IAAIwE,CAAK,GAAKA,CAAK,EAAE,KAAK,IAAI,CACvE,GCPW8gT,IAAA,CAAC,CAAE,aAAA36S,EAAc,KAAAtM,EAAM,MAAAo7D,EAAO,OAAA40F,KAC3C7rD,GAAC,MAAI,WAAU,yCACb,UAACA,GAAA,SAAM,UAAU,8BACd,UAAA/oC,EAAM,IAAE8pB,EAAA,QAAK,MAAM,WAAW,SAAC,OAClC,EAEAA,EAAC,YACC,UAAU,6BACV,SAAS,WACT,gBAAc,OACd,KAAAllF,EACA,aAAAsM,EACA,KAAK,IACP,EAEA44E,EAAC8hO,IAAa,OAAAh3J,EAAe,GAC/B,ECjBFk3J,GAAe,CAAC,CAAE,MAAA9rP,EAAO,KAAAp7D,EAAM,eAAAmnT,EAAgB,QAAAn6G,EAAS,SAAAvvG,EAAU,WAAA5O,KAC/D3J,EAAA,OAAI,UAAU,sBACb,YAAC,QACC,WAAAA,EAAC,SACC,KAAK,SACL,aAAc,EACd,KAAAllF,CAAA,CACF,EACAklF,EAAC,SACC,UAAU,mBACV,KAAK,WACL,aAAc,EACd,eAAAiiO,EACA,QAAAn6G,EACA,SAAAvvG,EACA,KAAAz9F,EACA,SAAU6uF,CAAA,CACZ,EAECA,GAAe3J,EAAA,SAAM,KAAAllF,EAAY,KAAK,SAAS,MAAOgtM,EAAQ,EAC9D5xI,CAAA,EACH,CACF,GCrBFgsP,IAAe,CAAC,CAAE,KAAApnT,EAAM,GAAA6I,EAAI,MAAAw+S,EAAO,MAAAnhR,EAAO,QAAAohR,EAAS,MAAA35S,EAAO,SAAA45S,EACxC,KAAAf,EAAM,OAAAC,EAAQ,cAAAe,EAAe,gBAAAC,CAAgB,IAAM,CACnE,MAAMC,EAEFvjN,GAAAlf,GAAA,WAACC,EAAA,SAAM,KAAM,GAAGllF,CAAI,OAAQ,MAAOqnT,EAAQ,GAAKx+S,EAAK,KAAK,QAAQ,GAClEq8E,EAAC,SAAM,KAAM,GAAGllF,CAAI,eAAgB,MAAO2N,EAAO,KAAK,QAAQ,GAC/Du3E,EAAC,SAAM,KAAM,GAAGllF,CAAI,aAAc,MAAOsnT,EAAS,KAAK,QAAQ,GAC/DpiO,EAAC,QAAM,MAAM,GAAGllF,CAAI,yBAA0B,MAAOynT,GAAmB,GAAI,KAAK,QAAQ,EAC3F,IAGE,GAAAH,EAAgB,OAAAI,EAEpB,IAAIb,EAAY,KACZC,EAAc,KAElB,OAAIN,IAEAK,EAAA3hO,EAAC,KAAE,UAAWK,GAAW,CAAC,UAAW,CAACihO,GAAQ,UAAU,CAAC,EAAG,QAAS,IAAMA,GAAQA,IACjF,WAAC,IAAE,WAAU,iBAAgB,CAC/B,IAIAC,IAEAK,EAAA5hO,EAAC,KAAE,UAAWK,GAAW,CAAC,YAAa,CAACkhO,GAAU,UAAU,CAAC,EAAG,QAAS,IAAMA,GAAUA,IACvF,WAAC,IAAE,WAAU,mBAAkB,CACjC,IAKFtiN,GAAC,MAAI,WAAU,gBACZ,UAAAujN,EAEDvjN,GAAC,MAAI,WAAU,MACb,UAACjf,EAAA,OAAI,UAAU,qBACb,SAAAA,EAAC,SACC,UAAU,cACV,KAAM,GAAGllF,CAAI,UACb,aAAckmC,EACd,SAAWryB,GAAM,CAAe2zS,EAAA75S,EAAOkG,EAAE,OAAO,KAAK,CAAC,EACtD,SAAUyzS,CAAA,GAEd,IAEC,MAAI,WAAU,qBACb,SAACnjN,GAAA,OAAI,UAAU,0BACZ,UAAA0iN,EACAC,EACA5hO,EAAA,KAAE,QAASqiO,EAAU,SAAM,YAC9B,CACF,IACF,CACF,GAEJ,qCC3DA,OAAO,iBAAwB,aAAc,CAAE,MAAO,GAAM,EAC5D,SAASI,EAAc1uS,EAAK,CAGxB,OAAO,OAAOA,GAAQ,UAAY,EAAE,aAAcA,GAC9C,OAAO,UAAU,SAAS,KAAKA,CAAG,EAAE,MAAM,EAAG,EAAE,EAC/CA,CACR,CACA,IAAI2uS,EAAe,OAAO,SAAY,UAAY,GAClD,SAAS1wP,EAAUC,EAAWp3D,EAAS,CACnC,GAAI,CAACo3D,EAED,MAAIywP,EACM,IAAI,MAAM,kBAAkB,EAEhC,IAAI,MAAM7nT,EAAA,CAAS,CAEjC,CACAqsC,EAAA,UAAoB8qB,EACpB,IAAIztB,EAAiB,OAAO,UAAU,eAClCyvG,EAAS,MAAM,UAAU,OACzBn9H,EAAW,OAAO,UAAU,SAChC,SAAStR,EAAKwO,EAAK,CACf,OAAO8C,EAAS,KAAK9C,CAAG,EAAE,MAAM,EAAG,EAAE,CACzC,CACA,IAAI66C,EAAS,OAAO,QAAsC,SAAU3zD,EAAQyN,EAAQ,CAChF,OAAAi6S,EAAWj6S,CAAM,EAAE,QAAQ,SAAUyE,EAAK,CAClCo3B,EAAe,KAAK77B,EAAQyE,CAAG,IACxBlS,EAAAkS,CAAG,EAAIzE,EAAOyE,CAAG,EAC5B,CACH,EACMlS,CACX,EACI0nT,EAAa,OAAO,OAAO,uBAA0B,WACnD,SAAU5uS,EAAK,CAAS,cAAO,KAAKA,CAAG,EAAE,OAAO,OAAO,sBAAsBA,CAAG,CAAC,CAAG,EAEpF,SAAUA,EAAK,CAAS,cAAO,KAAKA,CAAG,CAAG,EAChD,SAASmE,EAAKiO,EAAQ,CAClB,OAAO,MAAM,QAAQA,CAAM,EACrByoC,EAAOzoC,EAAO,YAAYA,EAAO,MAAM,EAAGA,CAAM,EAC/C5gB,EAAK4gB,CAAM,IAAM,MACd,IAAI,IAAIA,CAAM,EACb5gB,EAAK4gB,CAAM,IAAM,MACd,IAAI,IAAIA,CAAM,EACbA,GAAU,OAAOA,GAAW,SACzByoC,EAAO,OAAO,OAAO,OAAO,eAAezoC,CAAM,CAAC,EAAGA,CAAM,EAE3DA,CACtB,CACA,IAAIinM,EAAyB,UAAY,CACrC,SAASA,GAAU,CACf,KAAK,SAAWx+J,EAAO,CAAC,EAAGg0P,CAAe,EAC1C,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EAEnC,KAAK,OAAO,OAAS,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACxD,KAAK,OAAO,SAAW,SAAUr+S,EAAGC,EAAG,CAAE,OAAOD,IAAMC,CAAA,EACjD,YAAO,WAAa,UAAY,CAAS,WAAI4oN,EAAU,SAChE,CACO,6BAAeA,EAAQ,UAAW,WAAY,CACjD,IAAK,UAAY,CACb,OAAO,KAAK,OAAO,QACvB,EACA,IAAK,SAAU5xN,EAAO,CAClB,KAAK,OAAO,SAAWA,CAC3B,EACA,WAAY,GACZ,aAAc,GACjB,EACD4xN,EAAQ,UAAU,OAAS,SAAUy1F,EAAWllS,EAAI,CAC3C,cAASklS,CAAS,EAAIllS,CAAA,EAE/ByvM,EAAQ,UAAU,OAAS,SAAUjnM,EAAQ28R,EAAO,CAChD,IAAIvrP,EAAQ,KACRwrP,EAAQ,OAAOD,GAAU,WAAc,CAAE,OAAQA,CAAU,EAAAA,EACzD,MAAM,QAAQ38R,CAAM,GAAK,MAAM,QAAQ48R,CAAI,GAC7C/wP,EAAU,CAAC,MAAM,QAAQ+wP,CAAI,EAAG,UAAY,CAAS,mMAEU,EAEnE/wP,EAAU,OAAO+wP,GAAS,UAAYA,IAAS,KAAM,UAAY,CAAS,+IAErE,uBAAyB,OAAO,KAAKxrP,EAAM,QAAQ,EAAE,KAAK,IAAI,EAAI,KAAO,EAC9E,IAAIyrP,EAAa78R,EACjB,OAAAw8R,EAAWI,CAAI,EAAE,QAAQ,SAAU51S,EAAK,CACpC,GAAIo3B,EAAe,KAAKgzB,EAAM,SAAUpqD,CAAG,EAAG,CAC1C,IAAI81S,EAAsB98R,IAAW68R,EACxBA,EAAAzrP,EAAM,SAASpqD,CAAG,EAAE41S,EAAK51S,CAAG,EAAG61S,EAAYD,EAAM58R,CAAM,EAChE88R,GAAuB1rP,EAAM,SAASyrP,EAAY78R,CAAM,IAC3C68R,EAAA78R,EACjB,KAEC,CACG,IAAA+8R,GAAkB39S,EAAK4gB,CAAM,IAAM,MACjCoxC,EAAM,OAAOpxC,EAAO,IAAIhZ,CAAG,EAAG41S,EAAK51S,CAAG,CAAC,EACvCoqD,EAAM,OAAOpxC,EAAOhZ,CAAG,EAAG41S,EAAK51S,CAAG,CAAC,EACrCg2S,GAAkB59S,EAAKy9S,CAAU,IAAM,MACrCA,EAAW,IAAI71S,CAAG,EAClB61S,EAAW71S,CAAG,GAChB,CAACoqD,EAAM,SAAS2rP,GAAiBC,EAAe,GAC7C,OAAOD,GAAoB,KACvB,CAAC3+Q,EAAe,KAAKpe,EAAQhZ,CAAG,KACnC61S,IAAe78R,IACf68R,EAAa9qS,EAAKiO,CAAM,GAExB5gB,EAAKy9S,CAAU,IAAM,MACVA,EAAA,IAAI71S,EAAK+1S,EAAe,EAGnCF,EAAW71S,CAAG,EAAI+1S,GAG9B,EACH,EACMF,CAAA,EAEJ51F,CAAA,EACT,EACFlmL,EAAA,QAAkBkmL,EAClB,IAAIw1F,EAAkB,CAClB,MAAO,SAAUpnT,EAAOwnT,EAAYD,EAAM,CACd,OAAAK,EAAAJ,EAAYD,EAAM,OAAO,EAC1CvnT,EAAM,OAASwnT,EAAW,OAAOxnT,CAAK,EAAIwnT,CACrD,EACA,SAAU,SAAUxnT,EAAOwnT,EAAYD,EAAM,CACjB,OAAAK,EAAAJ,EAAYD,EAAM,UAAU,EAC7CvnT,EAAM,OAASA,EAAM,OAAOwnT,CAAU,EAAIA,CACrD,EACA,QAAS,SAAUxnT,EAAOwnT,EAAYD,EAAMM,EAAgB,CACxD,OAAAC,EAAiBN,EAAYD,CAAI,EAC3BvnT,EAAA,QAAQ,SAAUylB,EAAM,CAC1BsiS,EAAgBtiS,CAAI,EAChB+hS,IAAeK,GAAkBpiS,EAAK,SACtC+hS,EAAa9qS,EAAKmrS,CAAc,GAE7BrvK,EAAA,MAAMgvK,EAAY/hS,CAAI,EAChC,EACM+hS,CACX,EACA,KAAM,SAAUxnT,EAAOgoT,EAAaT,EAAM,CACtC,OAAAU,EAAaV,CAAI,EACVvnT,CACX,EACA,QAAS,SAAUsqB,EAASk9R,EAAY,CACpCU,EAAmB59R,EAAS,SAAS,EACrC,IAAI69R,EAAiB79R,EAAQ,OAAS5N,EAAK8qS,CAAU,EAAIA,EACjD,OAAAl9R,EAAA,QAAQ,SAAU7qB,EAAQ,CAC9B0oT,EAAe1oT,CAAM,EAAI,CAAC+nT,EAAW/nT,CAAM,EAC9C,EACM0oT,CACX,EACA,OAAQ,SAAUnoT,EAAOwnT,EAAYY,EAAOP,EAAgB,CACxD,OAAAK,EAAmBloT,EAAO,QAAQ,EAC5BA,EAAA,QAAQ,SAAU2R,EAAK,CACrB,OAAO,eAAe,KAAK61S,EAAY71S,CAAG,IACtC61S,IAAeK,IACfL,EAAa9qS,EAAKmrS,CAAc,GAEpC,OAAOL,EAAW71S,CAAG,EACzB,CACH,EACM61S,CACX,EACA,KAAM,SAAUnkT,EAAQmkT,EAAYY,EAAOP,EAAgB,CACvD,OAAAQ,EAAkBb,EAAY,MAAM,EACpCU,EAAmB7kT,EAAQ,MAAM,EAC7B0G,EAAKy9S,CAAU,IAAM,MACdnkT,EAAA,QAAQ,SAAUnD,EAAI,CACzB,IAAIyR,EAAMzR,EAAG,CAAC,EAAGF,EAAQE,EAAG,CAAC,EACzBsnT,IAAeK,GAAkBL,EAAW,IAAI71S,CAAG,IAAM3R,IACzDwnT,EAAa9qS,EAAKmrS,CAAc,GAEzBL,EAAA,IAAI71S,EAAK3R,CAAK,EAC5B,EAGMqD,EAAA,QAAQ,SAAUrD,EAAO,CACxBwnT,IAAeK,GAAkB,CAACL,EAAW,IAAIxnT,CAAK,IACtDwnT,EAAa9qS,EAAKmrS,CAAc,GAEpCL,EAAW,IAAIxnT,CAAK,EACvB,EAEEwnT,CACX,EACA,QAAS,SAAUxnT,EAAOwnT,EAAYY,EAAOP,EAAgB,CACzD,OAAAQ,EAAkBb,EAAY,SAAS,EACvCU,EAAmBloT,EAAO,SAAS,EAC7BA,EAAA,QAAQ,SAAU2R,EAAK,CACrB61S,IAAeK,GAAkBL,EAAW,IAAI71S,CAAG,IACnD61S,EAAa9qS,EAAKmrS,CAAc,GAEpCL,EAAW,OAAO71S,CAAG,EACxB,EACM61S,CACX,EACA,OAAQ,SAAUxnT,EAAOwnT,EAAYY,EAAOP,EAAgB,CACxD,OAAAS,EAAed,EAAYxnT,CAAK,EAChCmnT,EAAWnnT,CAAK,EAAE,QAAQ,SAAU2R,EAAK,CACjC3R,EAAM2R,CAAG,IAAM61S,EAAW71S,CAAG,IACzB61S,IAAeK,IACfL,EAAa9qS,EAAKmrS,CAAc,GAEzBL,EAAA71S,CAAG,EAAI3R,EAAM2R,CAAG,EAC/B,CACH,EACM61S,CACX,EACA,OAAQ,SAAUxnT,EAAOg1B,EAAU,CAC/B,OAAAuzR,EAAevoT,CAAK,EACbA,EAAMg1B,CAAQ,CACzB,CACJ,EACIwzR,EAAiB,IAAI52F,EACzBlmL,EAAA,SAAmB88Q,EAAe,OAAO,SACzC98Q,EAAiB,OAAA88Q,EAAe,OAChC98Q,EAAkB,QAAA88Q,EAAe,OAEjC98Q,EAAQ,QAAQ,QAAUjxB,EAAiB,QAAA24C,EAAO1nB,EAAQ,QAASA,CAAO,EAE1E,SAASk8Q,EAAwB5nT,EAAOunT,EAAMniI,EAAS,CACnD5uH,EAAU,MAAM,QAAQx2D,CAAK,EAAG,UAAY,CAAE,MAAO,gCAAkCinT,EAAc7hI,CAAO,EAAI,wBAA0B6hI,EAAcjnT,CAAK,EAAI,IAAM,EACpJkoT,EAAAX,EAAKniI,CAAO,EAAGA,CAAO,CAC7C,CACA,SAAS8iI,EAAmBX,EAAMniI,EAAS,CACvC5uH,EAAU,MAAM,QAAQ+wP,CAAI,EAAG,UAAY,CAAE,MAAO,8BAAgCN,EAAc7hI,CAAO,EAAI,wBAA0B6hI,EAAcM,CAAI,EAAI,uDAClG,CAC/D,CACA,SAASO,EAAiB9nT,EAAOunT,EAAM,CACnC/wP,EAAU,MAAM,QAAQx2D,CAAK,EAAG,UAAY,CAAS,qDAAiDinT,EAAcjnT,CAAK,EAAI,EAC7H+nT,EAAgBR,EAAK,OAAO,CAChC,CACA,SAASQ,EAAgB/nT,EAAO,CAC5Bw2D,EAAU,MAAM,QAAQx2D,CAAK,EAAG,UAAY,CAAS,0EAAsEinT,EAAcjnT,CAAK,EAAI,wDACtF,CAChE,CACA,SAASuoT,EAAepmS,EAAI,CACdq0C,EAAA,OAAOr0C,GAAO,WAAY,UAAY,CAAS,iEAA6D8kS,EAAc9kS,CAAE,EAAI,IAAM,CACpJ,CACA,SAAS8lS,EAAaV,EAAM,CACxB/wP,EAAU,OAAO,KAAK+wP,CAAI,EAAE,SAAW,EAAG,UAAY,CAAS,6DAAyD,CAC5H,CACA,SAASe,EAAe7oT,EAAQgpT,EAAW,CACvCjyP,EAAUiyP,GAAa,OAAOA,GAAc,SAAU,UAAY,CAAS,+DAA2DxB,EAAcwB,CAAS,EAAI,EACjKjyP,EAAU/2D,GAAU,OAAOA,GAAW,SAAU,UAAY,CAAS,iEAA6DwnT,EAAcxnT,CAAM,EAAI,CAC9J,CACA,SAAS4oT,EAAkB5oT,EAAQ2lL,EAAS,CACpC,IAAAsjI,EAAe3+S,EAAKtK,CAAM,EAC9B+2D,EAAUkyP,IAAiB,OAASA,IAAiB,MAAO,UAAY,CAAE,MAAO,aAAezB,EAAc7hI,CAAO,EAAI,6CAA+C6hI,EAAcyB,CAAY,EAAI,CAC1M,uDCzPa5kT,IAAO,IACX,uCAAuC,QAAQ,QAAS,SAASoR,EAAG,CACzE,IAAIwzB,EAAI,KAAK,OAAM,EAAK,GAAK,EAC7B,OADoCxzB,IAAM,IAAMwzB,EAAKA,EAAI,EAAM,GACtD,SAAS,EAAE,CACxB,CAAG,ECDGmpD,IAAUz+D,GAEXqwE,GAAApS,GAAW,OAAX,CAAmB,GAAGj+D,EACrB,UAAAoxD,EAAC,SACC,KAAK,WACL,QAASpxD,EAAM,WACf,SAAU,IAAM,KAClB,EAAG,IACFA,EAAM,KACT,IAIWq3N,GAACr3N,GACdoxD,EAACoY,GAAA,CACE,GAAGxpE,EACJ,kBAAmB,GACnB,QAAO,GACP,WAAY,CAAE,OAAAy+D,GAAO,EACrB,SAAQ,GACV,ECfF82N,IAAe,CAAC,CAAE,MAAAjuP,EACA,KAAAnsC,EACA,KAAAjvB,EACA,QAAAwzR,EACA,WAAA81B,EACA,SAAAC,EACA,WAAA16N,EACA,SAAA4O,EACA,OAAAuyD,CAAO,IAAM,CAC7B,KAAM,CAACs2J,EAAekD,CAAgB,EAAInmN,WAASp0E,CAAI,EAEjDw6R,EAA0B58K,GAAU,CACxC28K,EAAiB38K,CAAK,EACtBpvC,EAASovC,CAAK,GAGV68K,EAAU,IAAM,CAChB,IAAAC,EAAmBrD,EAAc,QAEpBqD,EAAA,KAAK,CAAE,GAAInlT,IAAK,EAAG,MAAO,GAAI,KAAM,OAAQ,MAAO,EAAM,GAE1EilT,EAAuBE,CAAgB,GAGnCC,EAAcj8S,GAAU,CACxB,IAAAg8S,EAAmBrD,EAAc,QAC/B,MAAAS,EAAeT,EAAc34S,CAAK,EAEpCo5S,EAAa,IACE4C,EAAA,OAAOh8S,EAAO,CAAC,GAEhCo5S,EAAa,QAAU,IACvB4C,EAAiBh8S,CAAK,EAAIo5S,GAG5B0C,EAAuBE,CAAgB,GAGnCE,EAAmB,CAACC,EAAWC,IAAe,CAClD,MAAMC,EAAenlG,GAAOyhG,EAAe,CAAE,QAAS,CAAC,CAACwD,EAAW,CAAC,EAAG,CAACC,EAAY,EAAGzD,EAAcwD,CAAS,CAAC,CAAC,EAAG,EAEnHL,EAAuBO,CAAY,GAG/BC,EAAUt8S,GAAUk8S,EAAiBl8S,EAAOA,EAAQ,CAAC,EACrDu8S,EAAYv8S,GAAUk8S,EAAiBl8S,EAAOA,EAAQ,CAAC,EAEvDw8S,EAAc,CAACx8S,EAAOu4B,IAAU,CAChC,IAAAyjR,EAAmBrD,EAAc,QAEpBqD,EAAAh8S,CAAK,EAAE,MAAQu4B,EAE5BA,EAAM,WAAW,MAAM,EAAE,IAAM,KAAqByjR,EAAAh8S,CAAK,EAAE,mBAAqB,IAEpF87S,EAAuBE,CAAgB,GAGzC,OAEIzkO,EAAAD,GAAA,UAAAkf,GAAC,MAAI,WAAU,sBACb,UAAAjf,EAACgiO,GAAA,CACC,MAAA9rP,EACA,KAAM,GAAGp7D,CAAI,yBACb,SAAW6T,GAAMy1S,EAAWz1S,EAAE,OAAO,OAAO,EAC5C,QAAS2/Q,EACT,WAAY3kM,GAAc06N,CAAA,CAC5B,EAEArkO,EAAC8hO,IAAa,QAAUh3J,GAAU,IAAI,sBAA2B,GAAI,EAEpEwjI,GACDrvL,GAAC,MAAI,WAAU,iBACZ,UAAcmiN,EAAA,IAAI,CAACS,EAAcp5S,IAChCu3E,EAACkiO,IAAA,CACC,KAAM,GAAGpnT,CAAI,gCAEb,MAAA2N,EACA,GAAIo5S,EAAa,GACjB,MAAOA,EAAa,MACpB,QAASA,EAAa,QACtB,MAAOA,EAAa,MACpB,SAAU,IAAM6C,EAAWj8S,CAAK,EAChC,KAAM24S,EAAc34S,EAAM,CAAC,EAAI,IAAMs8S,EAAOt8S,CAAK,EAAI,KACrD,OAAQ24S,EAAc34S,EAAM,CAAC,EAAI,IAAMu8S,EAASv8S,CAAK,EAAI,KACzD,cAAew8S,EACf,gBAAiBpD,EAAa,oBAVzBA,EAAa,EAWpB,CACF,KACC,MACC,WAAC7hO,EAAA8hO,GAAA,CAAa,UAAU,uBAAuB,QAAUh3J,GAAU,CAAI,mBAAqB,CAAI,IAC/F9qE,EAAA8hO,GAAA,CAAa,UAAU,uBAAuB,OAAO,aAAa,QAAUh3J,GAAU,IAAI,sBAAsB,GAAK,CAAI,MACzH,IAAE,WAAU,yBAAyB,QAAS05J,EAAS,SAAU,gBACpE,GACF,EAEF,EACF,EAEJ,ECtGAU,IAAe,CAAC,CAAE,eAAAjD,EAAgB,MAAA/rP,EAAO,iBAAAmrP,EAAkB,OAAAv2J,EAAQ,KAAAhwJ,KAAW,CAC5E,KAAM,CAACwzR,EAAS81B,CAAU,EAAIjmN,WAAS,CAAC,CAAC8jN,CAAc,EAEvD,OAEIhjN,GAAAlf,GAAA,WAACC,EAAA,OAAI,UAAU,sBACb,SAAAA,EAACgiO,GAAA,CACC,MAAA9rP,EACA,eAAA+rP,EACA,SAAWtzS,GAAMy1S,EAAWz1S,EAAE,OAAO,OAAO,IAEhD,EACC2/Q,SAEC,SAACtuM,EAAA,OAAI,MAAO,CAAE,WAAY,EAAG,EAC3B,SACGif,GAAAlf,GAAA,WAAAshO,MACE,IACE,WAAiBA,EAAA,QACjB,KAAE,IACFrhO,EAAA,KAAE,KAAMqhO,EAAiB,iBAAkB,SAAa,mBAC3D,EAEFpiN,GAAC,MAAI,WAAU,kBACb,UAACjf,EAAA,SAAM,UAAU,8BAA8B,SAAK,UAEpDA,EAAC,SACC,UAAU,6BACV,KAAM,GAAGllF,CAAI,wCACb,cAAeumT,GAAoB,IAAI,MACzC,IACCS,GAAa,SAASh3J,GAAU,CAAC,GAAG,yBAAyB,EAAE,GAClE,EAEA7rD,GAAC,MAAI,WAAU,2BACb,UAACjf,EAAA,SAAM,UAAU,8BAA8B,SAAI,SACnDA,EAAC,SAAM,UAAU,gBAAgB,KAAK,OAAO,KAAM,GAAGllF,CAAI,sCAAuC,KAChGgnT,GAAa,SAASh3J,GAAU,CAAC,GAAG,wBAAwB,EAAE,GACjE,EACF,EACF,GACF,EAGC9qE,EAAA,SAAM,KAAK,SAAS,KAAM,GAAGllF,CAAI,qCAAsC,cAAeumT,GAAoB,CAAC,GAAG,EAAG,GACjHrhO,EAAA,SAAM,KAAK,SAAS,MAAQsuM,EAAgB,IAAN,IAAW,KAAM,GAAGxzR,CAAI,0CAA2C,EAC5G,GAEJ,EClDAqqT,IAAe,CAAC,CAAC,SAAAj5D,EAAU,OAAA/3N,KAAY,CACrC,KAAM,CAACm6P,EAAS81B,CAAU,EAAIjmN,WAAS+tJ,EAAS,aAAa,EAEvDgV,EAAmB,CAACvyP,EAAGpJ,IAAS,CACpCoJ,EAAE,eAAe,EAEjB,MAAMm5L,EAAUviM,IAAS,MACnBi6O,EAAa,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAEzD,EAAE,KAAKA,EAAY,CAAC/2O,EAAOoV,IAAO,EAAEA,CAAE,EAAE,KAAK,UAAWiqL,CAAO,EAAE,QAAQ,QAAQ,CAAC,GAIlF,OAAA7oG,GAAC,MAAI,WAAU,aACb,UAACjf,EAAA,SAAM,UAAU,MAAM,SAAqB,0BAC5Cif,GAAC,MAAI,WAAU,MACb,UAAAjf,EAAC,OAAI,UAAU,oDACb,SAACif,GAAA,OAAI,UAAU,4DACb,UAACjf,EAAA,SAAM,KAAK,SAAS,KAAM,GAAG7rD,CAAM,mBAAoB,MAAO+3N,EAAS,aAAc,GACpFlsK,EAAC,QAAK,UAAU,eACd,YAAC,QAAM,SAAS,GAAG7rD,CAAM,oBACvB,UAAA6rD,EAAC,SAAM,UAAU,yBAAyB,KAAK,QAAQ,MAAM,IACtD,eAAgBksK,EAAS,cACzB,SAAWv9O,GAAMy1S,EAAWz1S,EAAE,OAAO,OAAO,EAC5C,KAAM,GAAGwlB,CAAM,mBAAoB,GAAI,GAAGA,CAAM,oBAAoB,EAAE,kBAE/E,CACF,GACA6rD,EAAC,QAAK,UAAU,eACd,YAAC,QAAM,SAAS,GAAG7rD,CAAM,oBACvB,UAAA6rD,EAAC,SAAM,UAAU,yBAAyB,KAAK,QAAQ,MAAM,IACtD,eAAgB,CAACksK,EAAS,cAC1B,SAAWv9O,GAAMy1S,EAAW,CAACz1S,EAAE,OAAO,OAAO,EAC7C,KAAM,GAAGwlB,CAAM,mBAAoB,GAAI,GAAGA,CAAM,oBAAoB,EAAE,qBAE/E,CACF,IACJ,CACF,GAEC,CAACm6P,GACArvL,GAAC,MACC,WAAAA,GAAC,OAAI,UAAU,YAAY,MAAO,CAAC,WAAY,MAC7C,YAAAjf,EAAC,IAAE,WAAU,2BAA2B,KAAK,IAAI,QAAUrxE,GAAMuyP,EAAiBvyP,EAAG,KAAK,EAAG,SAAG,QAAI,MAEnGqxE,EAAA,KAAE,UAAU,2BAA2B,KAAK,IAAI,QAAUrxE,GAAMuyP,EAAiBvyP,EAAG,MAAM,EAAG,SAAI,UACpG,EACAswF,GAAC,MAAI,IAAG,sBAAsB,UAAU,aAAa,MAAO,CAAC,QAAS,KACpE,UAAAjf,EAAC,SAAM,KAAM,GAAG7rD,CAAM,mBAAoB,KAAK,SAAQ,EAEtD+3N,EAAS,mBAAmB,IAC3BtsJ,GAAA5f,EAAC,MAAI,WAAU,sBACb,SAAAif,GAAC,QAAM,SAAS,GAAG9qE,CAAM,iBAAiByrE,EAAS,GACjD,UAAA5f,EAAC,SACC,UAAU,iCACV,KAAK,WACL,MAAO4f,EAAS,GAChB,eAAgBssJ,EAAS,oBAAoB,SAAStsJ,EAAS,EAAE,EACjE,KAAM,GAAGzrE,CAAM,mBACf,GAAI,GAAGA,CAAM,iBAAiByrE,EAAS,GACzC,EACCA,EAAS,kBACZ,EAXwC,KAAGzrE,CAAM,iBAAiByrE,EAAS,EAY7E,CACF,GAEF,GACF,GAGJ,CACF,GAEJ,ECzEAwlN,IAAe,CAAC,CAAC,SAAAl5D,EAAU,OAAA/3N,KAAY,CACPgqE,EAAA,SAAS+tJ,EAAS,aAAa,EAEvD,MAAAm5D,EAAe,CAAC12S,EAAGpJ,IAAS,CAChCoJ,EAAE,eAAe,EAEjB,MAAMm5L,EAAUviM,IAAS,MACnBi6O,EAAa,EAAE,aAAa,EAAE,KAAK,aAAa,EAEtD,EAAE,KAAKA,EAAY,CAAC/2O,EAAOoV,IAAO,EAAEA,CAAE,EAAE,KAAK,UAAWiqL,CAAO,EAAE,QAAQ,QAAQ,CAAC,GAIlF,OAAA7oG,GAAC,MAAI,WAAU,aACb,UAACjf,EAAA,SAAM,UAAU,MAAM,SAAiB,sBACvCA,EAAA,OAAI,UAAU,MAAM,MAAO,CAAC,cAAe,QAC1C,SAAAif,GAAC,MAAI,WAAU,aACb,UAAAjf,EAAC,IAAE,WAAU,wBAAwB,KAAK,IAAI,QAAUrxE,GAAM02S,EAAa12S,EAAG,KAAK,EAAG,SAAG,QAAI,MAE5FqxE,EAAA,KAAE,UAAU,wBAAwB,KAAK,IAAI,QAAUrxE,GAAM02S,EAAa12S,EAAG,MAAM,EAAG,SAAI,UAC7F,CACF,GACCqxE,EAAA,OAAI,UAAU,MACb,SAACif,GAAA,OAAI,UAAU,aAAa,MAAO,CAAC,QAAS,CAC3C,YAAAjf,EAAC,SAAM,KAAM,GAAG7rD,CAAM,gBAAiB,KAAK,SAAQ,EAEnD+3N,EAAS,WAAW,OAClBlsK,EAAA,OAAI,UAAU,sBAAsB,MAAO,CAAC,UAAW,CAAC,EACvD,YAAC,QAAM,SAAS,GAAG7rD,CAAM,cAAc0qE,EAAM,GAC3C,UAAA7e,EAAC,SACC,UAAU,8BACV,KAAK,WACL,MAAO6e,EAAM,GACb,eAAgBqtJ,EAAS,iBAAiB,SAASrtJ,EAAM,EAAE,EAC3D,KAAM,GAAG1qE,CAAM,gBACf,GAAI,GAAGA,CAAM,cAAc0qE,EAAM,GACnC,EACCA,EAAM,MACT,EAX+D,KAAG1qE,CAAM,cAAc0qE,EAAM,EAY9F,CACF,GAEF,CACF,EACF,GAEJ,EC5CeymN,IAAA,CAAC,CAAE,QAAAzgT,EAAS,gBAAA66F,EAAiB,SAAAnH,KAGtC0G,GAAAlf,GAAA,WAAAC,EAACimK,GAAA,CACC,MAAOvmJ,EACP,QAAA76F,EACA,SAAA0zF,EACA,kBAAuB7hE,EAAI,MAC3B,kBAAuBA,EAAI,MAC3B,iBAAkB,IAAMgpE,EAAgB,QAAW76F,EAAQ,OAAS,EACtE,EAEC66F,EAAgB,IAAI,CAAC/2F,EAAQF,IAE1Bu3E,EAAC,SAEC,KAAK,2CACL,MAAOr3E,EAAO,MACd,KAAK,UAHAF,CAAA,CAMV,EAEAi3F,EAAgB,SAAW,GAC1B1f,EAAC,SAAM,KAAK,yCAAyC,KAAK,SAAQ,CAEtE,IC1BJulO,IAAe,CAAC,CAAE,cAAAnE,EAAe,SAAA7oN,KAAe,CAC9C,MAAMitN,EAAgBxkR,GAAWA,EAAM,WAAW,MAAM,EAAE,IAAM,GAEhE,IAAIn8B,EAAUu8S,EAAc,OAAQn9Q,GAAM,CAACuhR,EAAavhR,EAAE,KAAK,GAAK,CAACA,EAAE,OAAO,EAC1Ey7D,EAAkB76F,EAAQ,OAAQ8D,GAAWA,EAAO,kBAAkB,EAWxE,OAAAq3E,EAACimK,GAAA,CACC,MAAOvmJ,EACP,QAAA76F,EACA,SAZyB8iI,GAAU,CACjC,IAAA88K,EAAmBrD,EAAc,QAEpBqD,EAAA,IAAKjyS,GAASA,EAAK,mBAAqBm1H,EAAM,QAAQn1H,CAAI,IAAM,EAAE,EAEnF+lF,EAASksN,CAAgB,GAQvB,kBAAuB/tR,EAAI,MAC3B,kBAAuBA,EAAI,GAC3B,iBAAkB,IAAMgpE,EAAgB,QAAW76F,EAAQ,OAAS,GAG1E,ECvBA4gT,IAAe,CAAC,CAAE,SAAAv5D,EACA,cAAAk1D,EACA,4BAAAsE,EACA,uBAAAC,EACA,2BAAAC,EACA,oBAAAC,EACA,0BAAAC,EACA,OAAAh7J,CAAO,IACvB7rD,GAAC,MAAI,WAAU,OACb,UAAAjf,EAAC,SAAM,SAA+D,oEAErE8lO,GACC9lO,EAACulO,IAAoB,eAAAnE,EAA8B,SAAUsE,EAA4B,EAG1F,CAACI,GACA9lO,EAACslO,IAAA,CACC,SAAUM,EACV,gBAAiBD,EACjB,QAASz5D,EAAS25D,EAAsB,+BAAiC,mCAAmC,EAC9G,EAGF7lO,EAAC8hO,IAAa,QAAUh3J,GAAU,IAAI,8BAAmC,GAAI,GAC/E,EClBFi7J,GAAgB,CAAC,CAAE,SAAA75D,EACA,OAAAphG,EACA,SAAAu5J,EACA,OAAAlwR,EACA,QAAAiuR,EACA,yBAAA4D,EACA,0BAAAC,EACA,oBAAAC,CAAoB,IAAM,CAC3C,KAAM,CAACC,EAAkC/B,CAAU,EAAIjmN,WAAS+tJ,EAAS,cAAc,EACjF,CAAC25D,EAAqBO,CAAsB,EAAIjoN,WAAS+tJ,EAAS,YAAY,EAC9E,CAACm6D,EAA0BC,CAA2B,EAAInoN,WAAS+tJ,EAAS,iBAAiB,EAC7F,CAAC45D,EAA2BS,CAA4B,EAAIpoN,WAAS+tJ,EAAS,kBAAkB,EAChG,CAACk1D,EAAekD,CAAgB,EAAInmN,WAAS+tJ,EAAS,aAAa,EACnE,CAACy5D,EAAwBa,CAAyB,EAAIroN,WAAS+tJ,EAAS,+BAA+B,EAEvGu6D,GAA0BZ,GAAuBQ,IAA6BP,EAC9EY,EAA8BZ,GAA6B,CAACW,EAC5DE,EAA6Bd,GAAuBQ,EAEpDO,EACH5mO,EAAA5Q,GAAA,CAAQ,GAAG,oCAAoC,MAAM,GACpD,SAAA4Q,EAAC,IAAE,+HAGH,CACF,GAGIwiO,EAEFvjN,GAAAlf,GAAA,WAACC,EAAA,SAAM,KAAM,GAAG7rD,CAAM,OAAQ,MAAQ+3N,EAAS,IAAM,GAAK,KAAK,QAAQ,GACvElsK,EAAC,QAAM,MAAM,GAAG7rD,CAAM,aAAc,MAAQ+3N,EAAS,SAAW,GAAK,KAAK,QAAQ,GAClFlsK,EAAC,QAAM,MAAM,GAAG7rD,CAAM,YAAa,MAAQ+3N,EAAS,QAAU,GAAK,KAAK,QAAQ,GAChFlsK,EAAC,QAAM,MAAM,GAAG7rD,CAAM,gCAAiC,MAAO+3N,EAAS,QAAS,KAAK,QAAQ,GAC7FlsK,EAAC,QAAM,MAAK,SAAS,KAAM,GAAG7rD,CAAM,gBAAiB,MAAQ+3N,EAAS,YAAc,EAAI,GAEvFk2D,GAAYpiO,EAAA,SAAM,KAAM,GAAG7rD,CAAM,aAAc,MAAOiuR,EAAS,KAAK,QAAQ,GAE5E,CAACl2D,EAAS,SAAW,CAACm4D,GACrBrkO,EAAC,SAAM,KAAK,yCAAyC,KAAK,SAC1D,CAEJ,IAGE,GAAAoiO,EAAgB,OAAAI,EAEd,MAAAqE,EAA4Bv4B,GAAY,CAC5C83B,EAAuB93B,CAAO,EAC9Bk4B,EAA0B,CAAE,GACFP,EAAA33B,GAAW+3B,GAA4BP,CAAyB,GAGtFgB,EAAiCx4B,GAAY,CACjDg4B,EAA4Bh4B,CAAO,EACnCk4B,EAA0B,CAAE,GACFP,EAAA33B,GAAWu3B,GAAuBC,CAAyB,GAGjFiB,EAAkCz4B,GAAY,CAClDi4B,EAA6Bj4B,CAAO,EACpC23B,EAA0B33B,CAAO,GAGnC,OAEKrvL,GAAAlf,GAAA,WAAAimO,GACEhmO,EAAA,OAAI,UAAU,0CACb,SAACA,EAAAroB,GAAA,CAAO,UAAU,cAAc,QAAS,IAAMuuP,EAAoB,EAAG,8BAEtE,GACF,EAGFlmO,EAAC+hO,IAAA,CACC,MAAM,OACN,aAAc71D,EAAS,KACvB,KAAM,GAAG/3N,CAAM,SACf,QAAU22H,GAAU,IAAI,MAAW,CAAC,EACtC,EAEC,CAACohG,EAAS,SAAWA,EAAS,gBAC5BlsK,EAAA4vD,IAAA,CAAO,SAAAs8G,EAAoB,OAAA/3N,EAAgB,EAG7C,CAAC+3N,EAAS,SAAWA,EAAS,SAAW,CAACA,EAAS,gBAClDlsK,EAAC6vD,IAAW,UAAAq8G,EAAoB,OAAA/3N,CAAgB,GAGlD6rD,EAACgiO,GAAA,CACC,MAAM,kEACN,KAAM,GAAG7tR,CAAM,kBACf,QAAS0xR,EACT,WAAYa,GAAgCrC,GAAYwB,GAAuB,CAACQ,EAChF,SAAW13S,GAAMk4S,EAAyBl4S,EAAE,OAAO,OAAO,EAC5D,EAEAqxE,EAAC8hO,GAAa,WAAU,eAAe,QAAUh3J,GAAU,CAAI,kBAAoB,CAAI,IAEvF9qE,EAACgiO,GAAA,CACC,MAAM,mDACN,KAAM,GAAG7tR,CAAM,yBACf,QAASkyR,EACT,WAAYK,GAAgCrC,GAAYgC,GAA4B,CAACR,EACrF,SAAWl3S,GAAMm4S,EAA8Bn4S,EAAE,OAAO,OAAO,EACjE,EAEAqxE,EAAC8hO,GAAa,WAAU,eAAe,QAAUh3J,GAAU,CAAI,yBAA2B,CAAI,IAE9F9qE,EAACgiO,GAAA,CACC,MAAM,kCACN,eAAgB91D,EAAS,eACzB,KAAM,GAAG/3N,CAAM,oBACf,SAAWxlB,GAAMy1S,EAAWz1S,EAAE,OAAO,OAAO,EAC9C,EAECw3S,MACE,MACC,WAACnmO,EAAA,OAAI,MAAO,CAAE,YAAa,GAAI,QAAS,eAAgB,aAAc,CACpE,WAAAA,EAACgiO,GAAA,CACC,MAAM,YACN,eAAgB91D,EAAS,mBACzB,KAAM,GAAG/3N,CAAM,0BAEnB,EACA6rD,EAACrR,GAAA,CACC,UAAW,OACX,UAAU,QACV,QAASi4O,EAET,WAAC,MAAI,WAAU,YAAY,sBAAoB,GAAG,MAAM,GAAE,EAC5D,GACF,EAGF5mO,EAACgiO,GAAA,CACC,MAAM,2CACN,eAAgB91D,EAAS,aACzB,KAAM,GAAG/3N,CAAM,kBACjB,EAEA6rD,EAACmkO,IAAA,CACC,MAAO,2CACP,KAAM/C,EACN,KAAMjtR,EACN,OAAA22H,EACA,WAAYi8J,EACZ,QAASjB,EACT,SAAAzB,EACA,WAAY,CAACoC,GAA0BE,EACvC,SAAUrC,CAAA,CACZ,EAEAtkO,EAAC8hO,GAAa,WAAU,eAAe,QAAUh3J,GAAU,CAAI,UAAY,CAAI,IAE/E9qE,EAACklO,IAAA,CACC,MAAM,kCACN,GAAIh5D,EAAS,mBACb,eAAgBA,EAAS,iBACzB,iBAAkBA,EAAS,iBAC3B,OAAAphG,EACA,KAAM32H,CAAA,CACR,EAECkwR,GACCrkO,EAACylO,IAAA,CACC,SAAAv5D,EACA,uBAAAy5D,EACA,2BAA4Ba,EAC5B,cAAApF,EACA,4BAA6BkD,EAC7B,oBAAAuB,EACA,0BAAAC,EACA,OAAAh7J,CAAA,CACF,EAGD03J,CACH,GAEJ,EC3LA3wI,GAAez7G,GAAM,WAAW,CAAC,CAAE,SAAA81L,EAAU,OAAAphG,CAAA,EAAUziF,IAAS,CAC9D,KAAM,CAAC2+O,EAAcC,CAAe,EAAI9oN,WAAS+tJ,EAAS,YAAY,EAChE,CAACg7D,EAAmBC,CAAoB,EAAIhpN,EAAS,SAAA+tJ,EAAS,aAAa,MAAM,EACjF,CAACk7D,EAA0BC,CAA2B,EAAIlpN,WAAS+tJ,EAAS,wBAAwB,EACpGo7D,GAAgBx8J,GAAU,CAAI,kBAAoB,GAExD,IAAIy8J,EAAwB,EAE5B,MAAMC,EAAiB,IAAM,CACvB,IAAAC,EAAkB,CAAC,GAAGT,CAAY,EAClCU,EAAiB,OAAO,OAAO,GAAIx7D,EAAS,cAAc,EAE5Cu7D,IAAgB,OAAOC,CAAc,EAEvDT,EAAgBQ,CAAe,EAC/BN,EAAqBD,EAAoB,CAAC,GAGtCS,EAA2Bl/S,GAAU,CACrC,IAAAg/S,EAAkBT,EAAa,QAEnBS,EAAAh/S,CAAK,EAAE,QAAU,OAE5Bg/S,EAAgBh/S,CAAK,EAAE,KACVg/S,EAAAh/S,CAAK,EAAE,OAAS,QAGlCw+S,EAAgBQ,CAAe,EAC/BN,EAAqBD,EAAoB,CAAC,GAI1C,OAAAjoN,GAAC,QAAK,IAAA52B,EACJ,UAAA2X,EAAC4nO,GAAA,CACC,SAAA17D,EACA,OAAQ,WACR,OAAAphG,EAEA,SAAUo8J,EAAoB,EAC9B,QAAS,GACT,yBAA0B,GAC1B,0BAA2BG,EAC3B,oBAAqB,IAAM,CAAC,GALvBn7D,EAAS,EAMhB,EAEC86D,EAAa,IAAI,CAACx0S,EAAM/J,IAErBu3E,EAAC4nO,GAAA,CACC,SAAUp1S,EACV,OAAQ,sCAAsC/J,CAAK,IACnD,OAAQ6+S,EAAY90S,EAAK,OAAS+0S,EAAwBA,GAAuB,EAEjF,QAAS/0S,EAAK,QACd,yBAA0B00S,EAAoB,EAC9C,0BAA2B,IAAM,CAAC,EAClC,oBAAqB,IAAMS,EAAwBl/S,CAAK,GAJnDA,CAAA,CAOV,EAEA,CAACyjP,EAAS,SAAWk7D,GACpBpnO,EAACroB,IAAO,UAAU,cAAc,QAAUhpD,GAAM64S,EAAe,EAC5D,SAAoBN,EAAA,EAAI,8BAAgC,sBAC3D,CAEJ,GAEJ,CAAC,ECrEoB,MAAAt1I,WAAsBx7G,GAAM,SAAU,CACzD,YAAYxnC,EAAO,CACjB,MAAMA,CAAK,EACN,WAAQ,CAAE,SAAU,EAAM,CACjC,CAEA,OAAO,yBAAyB3tB,EAAO,CAC9B,OAAE,SAAU,GACrB,CAEA,kBAAkBA,EAAO2vK,EAAW,CAE1B,YAAI3vK,EAAO2vK,CAAS,CAC9B,CAEA,QAAS,CACH,YAAK,MAAM,SAEV5wF,EAAA,OAAI,UAAU,2DAA2D,SAE1E,0BAIG,KAAK,MAAM,QACpB,CACF,CCtBA,MAAe6nO,IAAA,CAAC,CAAE,KAAA77R,EAAM,QAAAslJ,EAAS,YAAAC,KAAkB,CAC3C,MAAAn7F,EAAMkJ,aAAWmgO,EAAU,EAC3BqI,EAAU50N,WACV,CAACg5J,EAAU67D,CAAW,EAAI5pN,WAAS,IAAI,EACvC,CAACszE,EAAiBC,CAAkB,EAAIvzE,WAAS,EAAK,EACtD,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,WAAS,IAAI,EAEzC/J,YAAU,IAAM,CACVpoE,IAAS,GACPoqD,EAAA,iBAAiB,KAAiB74E,GAAA,CAAEwqT,EAAYxqT,EAAS,IAAI,EAAG43L,EAAU,CAAE,GAAG,EAEnF4yH,EAAY,IAAI,CAClB,EACC,CAAC/7R,CAAI,CAAC,EAET,MAAM2lJ,EAAe,IAAM,CACzB,IAAIvuK,EAAW,IAAI,SAAS0kT,EAAQ,OAAO,EAE3C,GAAI57D,EAAS,gBACX,GAAI,EAAE,iCAAiC,EAAE,SAAW,EAClD,aAAM,oCAAoC,EACnC,WAGL,EAAE,gDAAgD,EAAE,OAAS,GAC3D,EAAE,oCAAoC,EAAE,SAAW,EACrD,aAAM,uCAAuC,EACtC,GAKT,GAAAz6E,EAAwB,SAC5BC,EAAmB,EAAI,EAEvBt7F,EACG,eAAehzE,CAAQ,EACvB,KAAiB7F,GAAA,CAChB+zK,EAAQ,EAAK,EACDC,IACZG,EAAmB,EAAK,EACzB,EACA,MAAOzwK,GAAS,CACfywK,EAAmB,EAAK,EACdyjB,EAAAl0L,EAAM,SAAS,KAAK,MAAM,EACrC,GAIL,UACG4lE,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,wBAAY,CAC3B,GACCmZ,EAAAnZ,GAAM,KAAN,CACC,WAAC+qG,GACA,UAAAs6E,GAAalsK,EAAA6xF,GAAA,CAAK,IAAKi2I,EAAS,SAAA57D,EAAoB,OAAAphG,CAAe,EACpE,GACF,EACA7rD,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAM,WAC7CtxF,EAACroB,IAAO,UAAU,cAAc,SAAU85G,EAAiB,QAASE,EAAc,SAAO,aAC3F,CACF,GAEJ,ECjEewmB,IAAA,CAAC,CAAE,KAAAnsK,EAAM,QAAAslJ,EAAS,GAAA3tK,EAAI,YAAA4tK,KAAkB,CAC/C,MAAAn7F,EAAMkJ,aAAWmgO,EAAU,EAC3BqI,EAAU50N,WACV,CAACg5J,EAAU67D,CAAW,EAAI5pN,WAAS,IAAI,EACvC,CAACszE,EAAiBC,CAAkB,EAAIvzE,WAAS,EAAK,EACtD,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,WAAS,IAAI,EAEzC/J,YAAU,IAAM,CACVpoE,IAAS,GACXoqD,EAAI,YAAYzyE,CAAE,EAAE,KAAiBpG,GAAA,CAAEwqT,EAAYxqT,EAAS,IAAI,EAAG43L,EAAU,CAAE,GAAG,EAElF4yH,EAAY,IAAI,CAClB,EACC,CAAC/7R,CAAI,CAAC,EAET,MAAMg8R,EAAe,IAAM,CACzB,IAAI5kT,EAAW,IAAI,SAAS0kT,EAAQ,OAAO,EAE3C,GAAI,CAAC57D,EAAS,SAAWA,EAAS,gBAChC,GAAI,EAAE,iCAAiC,EAAE,SAAW,EAClD,aAAM,oCAAoC,EACnC,WAGL,EAAE,gDAAgD,EAAE,OAAS,GAC3D,EAAE,oCAAoC,EAAE,SAAW,EACrD,aAAM,uCAAuC,EACtC,GAKT,GAAAz6E,EAAwB,SAC5BC,EAAmB,EAAI,EAEvBt7F,EACG,eAAezyE,EAAIP,CAAQ,EAC3B,KAAiB7F,GAAA,CAChB+zK,EAAQ,EAAK,EACDC,IACZG,EAAmB,EAAK,EACzB,EACA,MAAOzwK,GAAU,CAChBywK,EAAmB,EAAK,EACdyjB,EAAAl0L,EAAM,SAAS,KAAK,MAAM,EACrC,GAGL,UACG4lE,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,yBAAa,CAC5B,GACCmZ,EAAAnZ,GAAM,KAAN,CACC,WAAC+qG,GACE,UAAAs6E,GAAalsK,EAAA6xF,GAAA,CAAK,IAAKi2I,EAAS,SAAA57D,EAAoB,OAAAphG,CAAe,EACtE,GACF,EACA7rD,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAM,WAC7CtxF,EAACroB,IAAO,UAAU,cAAc,SAAU85G,EAAiB,QAASu2I,EAAc,SAAO,aAC3F,CACF,GAEJ,EClEeC,IAAA,CAAC,CAAE,KAAAj8R,EAAM,QAAAslJ,EAAS,GAAA3tK,EAAI,YAAA4tK,KAAkB,CAC/C,MAAAn7F,EAAMkJ,aAAWmgO,EAAU,EAE3B,CAAChuI,EAAiBC,CAAkB,EAAIvzE,WAAS,EAAK,EAEtD+3F,EAAe,IAAM,CACrB,GAAAzkB,EAAwB,SAC5BC,EAAmB,EAAI,EAEvBt7F,EAAI,eAAezyE,CAAE,EAClB,KAAiBpG,GAAA,CAChB+zK,EAAQ,EAAK,EACDC,IACZG,EAAmB,EAAK,EACzB,EACA,MAAM,IAAM,CACXA,EAAmB,EAAK,EACzB,GAGL,UACG7qG,GAAM,MAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAC5C,UAACtxF,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,2BAAe,CAC9B,GACCmZ,EAAAnZ,GAAM,KAAN,CAAW,SAEZ,kBACAo4B,GAACp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAM,WAC7CtxF,EAACroB,IAAO,UAAU,cAAc,SAAU85G,EAAiB,QAASykB,EAAc,SAAO,aAC3F,CACF,GAEJ,EC3BAxuD,IAAe,CAAC,CAAE,IAAA1rI,CAAA,IAAU,CACpB,MAAAo6E,EAAM,IAAIC,IAAIr6E,CAAG,EACjB,CAACksT,EAAWC,CAAY,EAAIhqN,WAAS,IAAI,EACzC,CAACsiN,EAAS2H,CAAU,EAAIjqN,WAAS,IAAI,EACrC,CAACuiN,EAAQ2H,CAAS,EAAIlqN,WAAS,IAAI,EAEnC6rG,EAAYz2G,cAAY,IAAK,CAC7Bnd,EAAA,eAAe,KAAiB74E,GAAA,CACrB4qT,EAAA5qT,EAAS,KAAK,SAAS,EACzB6qT,EAAA7qT,EAAS,KAAK,OAAO,EACtB8qT,EAAA9qT,EAAS,KAAK,MAAM,EAE5B,4BAA0B,EAAE,YAAY,wBAAyB,SAASA,EAAS,KAAK,cAAc,IAAM,CAAC,EAChH,CACH,EAAG,CAAE,GAEC,CAAC+qT,EAAa9lI,CAAe,EAAI1Q,GAAS+1I,IAAa79G,CAAS,EAChE,CAACu+G,EAAWhkI,CAAa,EAAIzS,GAASqmB,IAAW6R,CAAS,EAC1D,CAACw+G,EAAaC,CAAe,EAAI32I,GAASm2I,IAAaj+G,CAAS,EAMtE,GAJA51G,YAAU,IAAM,CACJ41G,GACZ,EAAG,CAAE,GAED,CAACk+G,EAAkB,YAEjB,MAAAQ,EAAe,CAAC9D,EAAWC,IAAe,CACxC,MAAA8D,EAAeT,EAAU,QACzBpD,EAAenlG,GAAOuoG,EAAW,CAAE,QAAS,CAAC,CAACtD,EAAW,CAAC,EAAG,CAACC,EAAY,EAAGqD,EAAUtD,CAAS,CAAC,CAAC,EAAG,EAC3GuD,EAAarD,CAAY,EAEnB,MAAA7lE,EAAM6lE,EAAa,OAAYvgT,KAAE,YAAY,EAAE,IAASA,KAAE,EAAE,EAElE6xE,EAAI,iBAAiB6oK,CAAG,EAAE,KAAM1hP,GAAa,CACvCA,EAAS,SAAW,KAAK4qT,EAAaQ,CAAY,CACvD,GAAE,MAAM,IAAMR,EAAaQ,CAAY,CAAC,GAGrC5D,EAAUt8S,GAAUigT,EAAajgT,EAAOA,EAAQ,CAAC,EACjDu8S,EAAYv8S,GAAUigT,EAAajgT,EAAOA,EAAQ,CAAC,EAEnDmgT,EAAoB,CAACp2S,EAAM/J,IAC/Bu3E,EAACsgO,IAAA,CAEC,MAAA73S,EACA,KAAM+J,EAAK,KACX,cAAeA,EAAK,cACpB,QAAAiuS,EACA,OAAAC,EACA,eAAgBluS,EAAK,eACrB,UAAWA,EAAK,UAChB,YAAaA,EAAK,YAClB,gBAAiBA,EAAK,gBACtB,MAAQ01S,EAAUz/S,EAAM,CAAC,GAAK,IAAI,aAAgB,IAAMs8S,EAAOt8S,CAAK,EAAI,KACxE,QAAUy/S,EAAUz/S,EAAM,CAAC,GAAK,IAAI,aAAgB,IAAMu8S,EAASv8S,CAAK,EAAI,KAC5E,aAAc+J,EAAK,aACnB,eAAgBA,EAAK,eACrB,mBAAoBA,EAAK,mBACzB,aAAcA,EAAK,aACnB,mBAAoBA,EAAK,mBACzB,kBAAmBA,EAAK,kBACxB,cAAeA,EAAK,cACpB,iBAAkBA,EAAK,iBACvB,SAAU,IAAMi2S,EAAgB,CAAE,GAAIj2S,EAAK,GAAI,EAC/C,OAAQ,IAAM+xK,EAAc,CAAE,GAAI/xK,EAAK,GAAI,EAC3C,aAAcA,EAAK,aACnB,OAAQA,EAAK,OACb,QAASA,EAAK,kBAxBTA,EAAK,IA4BRq2S,EACH7oO,EAAA,KAAE,UAAW5nD,GAAW,CAAC,iBAAiB,CAAC,EAAG,MAAO,CAAE,UAAW,GAAK,QAASoqJ,EAAiB,SAElG,iBAGF,OACGvjF,GAAAwgN,GAAW,SAAX,CAAoB,MAAOrpO,EACzB,UAAAkyO,EACAC,EACAC,EAEDvpN,GAAC,MAAI,WAAU,sBACb,UAACA,GAAA,OAAI,UAAU,gBACb,UAACjf,EAAA,MAAG,UAAU,YAAY,SAAS,cAClCA,EAAA,OAAI,UAAU,aAAc,SAAwB6oO,EAAA,EACpDpI,GAAWzgO,EAAC,KAAG,WAAU,qCAAqC,SAAU,eACxE0gO,GAAU1gO,EAAC,KAAG,WAAU,qCAAqC,SAAM,WACpEA,EAAC,MAAI,WAAU,UAAU,IAC3B,EAECA,EAAA,OAAI,UAAU,aACb,SAACA,EAAA,OAAI,UAAU,iBACZ,SAAUkoO,EAAA,IAAI,CAAC11S,EAAM/J,OAEjBs3E,WACE,WAAA6oO,EAAkBp2S,EAAM/J,CAAK,EAC7B+J,EAAK,cAAgBA,EAAK,aAAa,IAAK8qD,GAAUsrP,EAAkBtrP,EAAO70D,CAAK,CAAC,IAFzEA,CAGf,CAEH,EACH,CACF,IACF,CACF,GAEJ,ECjHA,SAAS,iBAAiB,mBAAoB,SAASpN,EAAO,CAC5D,EAAE,WAAW,EAAE,GAAG,yBAA0B,UAAY,CAClD,IAAAwiB,EAAK,SAAS,eAAe,sBAAsB,EAC9CosD,GAAA,SAAQy9D,IAAK,KAAK7pH,EAAG,QAAQ,IAAI,EAAIA,CAAE,EACjD,CACH,CAAC,ECRD,MAAMw4D,GAAI,CAAV,cACEo/G,GAAA,cAAS,IACA5/G,GAAM,IAAI,0CAA0C,GAG7D4/G,GAAA,eAAU,IACD5/G,GAAM,IAAI,2CAA2C,GAG9D4/G,GAAA,kBAAc1rK,GACL8rD,GAAM,IAAI,mDAAoD9rD,CAAI,GAE7E,CAEA,MAAMqsD,GAAM,IAAIC,oBCdhB,OAAO,eAAep2D,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EAED,IAAIw2C,IAAS7yB,EAET8yB,GAAUC,IAAuBF,GAAM,EAE3C,SAASE,IAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/FkM,GAAA,QAAkB,UAAY,CAC5B,OAAOy2C,GAAQ,QAAQ,cACrB,MACA,CAAE,MAAO,KAAM,OAAQ,KAAM,QAAS,WAAa,EACnDA,GAAQ,QAAQ,cAAc,OAAQ,CAAE,EAAG,yEAA0E,KAAM,OAAQ,SAAU,SAAS,CAAE,CAC5J,CACA,YChBA,OAAO,eAAenyD,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EAED,IAAIkyD,IAAS7yB,EAET8yB,GAAUC,IAAuBF,GAAM,EAE3C,SAASE,IAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/FxP,GAAA,QAAkB,UAAY,CAC5B,OAAOmyD,GAAQ,QAAQ,cACrB,MACA,CAAE,MAAO,KAAM,OAAQ,KAAM,QAAS,WAAa,EACnDA,GAAQ,QAAQ,cAAc,OAAQ,CAAE,EAAG,yHAA0H,KAAM,OAAQ,SAAU,SAAS,CAAE,CAC5M,CACA,YChBA,OAAO,eAAe2tG,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACmBA,GAAA,aAAGykJ,IAKvB,SAASA,IAAaztT,EAAO,CAG3B,GAAIA,EAAO,CACT,IAAI0tT,EAAiB1tT,EAAM,eAC3B,GAAI0tT,GAAkBA,EAAe,OAAS,EAAG,CAC/C,IAAI7vN,EAAQ6vN,EAAe,CAAC,EAC5B,MAAO,CAAE,EAAG7vN,EAAM,QAAS,EAAGA,EAAM,QACrC,CACD,IAAIinE,EAAQ9kK,EAAM,MAClB,GAAI8kK,IAAU,OACZ,MAAO,CAAE,EAAGA,EAAO,EAAG9kK,EAAM,KAAK,CAEpC,CACD,MAAO,CAAE,EAAG,EAAG,EAAG,CAAC,CACrB,CCvBA,OAAO,eAAe2gF,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EAED,IAAIntB,IAAW,OAAO,QAAU,SAAU5zD,EAAQ,CAAE,QAASoE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIqJ,EAAS,UAAUrJ,CAAC,EAAG,QAAS8N,KAAOzE,EAAc,OAAO,UAAU,eAAe,KAAKA,EAAQyE,CAAG,IAAKlS,EAAOkS,CAAG,EAAIzE,EAAOyE,CAAG,GAAS,OAAOlS,GAEnPgmF,IAAe,UAAY,CAAE,SAASC,EAAiBjmF,EAAQ2zB,EAAO,CAAE,QAASvvB,EAAI,EAAGA,EAAIuvB,EAAM,OAAQvvB,IAAK,CAAE,IAAIw9E,EAAajuD,EAAMvvB,CAAC,EAAGw9E,EAAW,WAAaA,EAAW,YAAc,GAAOA,EAAW,aAAe,GAAU,UAAWA,IAAYA,EAAW,SAAW,IAAM,OAAO,eAAe5hF,EAAQ4hF,EAAW,IAAKA,CAAU,CAAE,CAAI,CAAC,OAAO,SAAUhe,EAAasiB,EAAYC,EAAa,CAAE,OAAID,GAAYD,EAAiBriB,EAAY,UAAWsiB,CAAU,EAAOC,GAAaF,EAAiBriB,EAAauiB,CAAW,EAAUviB,CAAc,CAAG,IAE7iBpI,GAAS7yB,EAET8yB,GAAUC,GAAuBF,EAAM,EAEvCyW,IAAc9lC,GAEd+lC,IAAexW,GAAuBuW,GAAW,EAEjD3O,IAAal3B,GAEbm3B,GAAc7H,GAAuB4H,GAAU,EAE/CyqP,IAAS9+P,GAET++P,IAAUtyP,GAAuBqyP,GAAM,EAEvCE,IAAKt+P,GAELu+P,IAAMxyP,GAAuBuyP,GAAE,EAE/BE,GAAQ/6P,GAEZ,SAASsI,GAAuB5iD,EAAK,CAAE,OAAOA,GAAOA,EAAI,WAAaA,EAAM,CAAE,QAASA,CAAG,CAAK,CAE/F,SAASu5D,IAAyBv5D,EAAK0J,EAAM,CAAE,IAAIxiB,EAAS,CAAE,EAAE,QAASoE,KAAK0U,EAAW0J,EAAK,QAAQpe,CAAC,GAAK,GAAkB,OAAO,UAAU,eAAe,KAAK0U,EAAK1U,CAAC,IAAapE,EAAOoE,CAAC,EAAI0U,EAAI1U,CAAC,GAAK,OAAOpE,CAAS,CAE5N,SAAS0jE,IAAgBC,EAAUC,EAAa,CAAE,GAAI,EAAED,aAAoBC,GAAgB,MAAM,IAAI,UAAU,mCAAmC,CAAM,CAEzJ,SAASC,IAA2Br5C,EAAMs5C,EAAM,CAAE,GAAI,CAACt5C,EAAQ,MAAM,IAAI,eAAe,2DAA2D,EAAK,OAAOs5C,IAAS,OAAOA,GAAS,UAAY,OAAOA,GAAS,YAAcA,EAAOt5C,CAAO,CAEhP,SAASu5C,IAAU3O,EAAUC,EAAY,CAAE,GAAI,OAAOA,GAAe,YAAcA,IAAe,KAAQ,MAAM,IAAI,UAAU,2DAA6D,OAAOA,CAAU,EAAKD,EAAS,UAAY,OAAO,OAAOC,GAAcA,EAAW,UAAW,CAAE,YAAa,CAAE,MAAOD,EAAU,WAAY,GAAO,SAAU,GAAM,aAAc,EAAM,EAAE,EAAOC,IAAY,OAAO,eAAiB,OAAO,eAAeD,EAAUC,CAAU,EAAID,EAAS,UAAYC,EAAa,CAE9e,IAAI+4P,GAAS,SAAUC,EAAgB,CACrCtqP,IAAUqqP,EAAQC,CAAc,EAEhC,SAASD,EAAOz6R,EAAO,CACrB+vC,IAAgB,KAAM0qP,CAAM,EAE5B,IAAI9xP,EAAQuH,IAA2B,MAAOuqP,EAAO,WAAa,OAAO,eAAeA,CAAM,GAAG,KAAK,KAAMz6R,CAAK,CAAC,EAElH,OAAA2oC,EAAM,YAAcA,EAAM,YAAY,KAAKA,CAAK,EAChDA,EAAM,iBAAmBA,EAAM,iBAAiB,KAAKA,CAAK,EAC1DA,EAAM,gBAAkBA,EAAM,gBAAgB,KAAKA,CAAK,EACxDA,EAAM,eAAiBA,EAAM,eAAe,KAAKA,CAAK,EACtDA,EAAM,YAAcA,EAAM,YAAY,KAAKA,CAAK,EAChDA,EAAM,WAAaA,EAAM,WAAW,KAAKA,CAAK,EAC9CA,EAAM,kBAAoB,CAAC,EAAE3oC,EAAM,SAAWA,EAAM,gBACpD2oC,EAAM,MAAQ,CACZ,QAAS,CAAC,EAAE3oC,EAAM,SAAWA,EAAM,gBACnC,SAAU,EAChB,EACW2oC,CACR,CAED,OAAA0pB,IAAaooO,EAAQ,CAAC,CACpB,IAAK,qBACL,MAAO,SAA4Bz2P,EAAW,CACxCA,EAAU,UAAY,KAAK,MAAM,SAKnC,KAAK,SAAS,CAAE,QAAS,CAAC,CAAC,KAAK,MAAM,OAAO,CAAE,CAElD,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBv3D,EAAO,CACjC,GAAI,MAAK,MAAM,SAGf,KAAIm3M,EAAW,KAAK,MACpB,GAAIn3M,EAAM,SAAWm3M,GAAY,CAAC,KAAK,MAAO,CAC5C,KAAK,kBAAoBA,EAAS,QAClCn3M,EAAM,eAAc,EACpBm3M,EAAS,MAAK,EACdA,EAAS,MAAK,EACd,MACD,CAED,IAAI1K,EAAU,KAAK,MAAM,eAAe,SAAS,EAAI,KAAK,MAAM,QAAU0K,EAAS,QAEnF,KAAK,SAAS,CAAE,QAAS1K,CAAS,GACnC,CACL,EAAK,CACD,IAAK,mBACL,MAAO,SAA0BzsM,EAAO,CAClC,KAAK,MAAM,WAGf,KAAK,UAAa+tT,GAAM,cAAc/tT,CAAK,EAAE,EAC7C,KAAK,UAAY,GAClB,CACL,EAAK,CACD,IAAK,kBACL,MAAO,SAAyBA,EAAO,CACrC,GAAK,KAAK,YACV,KAAK,MAAQ,GAET,KAAK,QAAQ,CACf,IAAIkuT,KAAeH,GAAM,cAAc/tT,CAAK,EAAE,EAC1C,KAAK,MAAM,SAAWkuT,EAAW,GAAK,KAAK,QAC7C,KAAK,SAAS,CAAE,QAAS,EAAO,GAChC,KAAK,OAASA,EACd,KAAK,UAAY,IACRA,EAAW,GAAK,KAAK,SAC9B,KAAK,SAAS,CAAE,QAAS,EAAM,GAC/B,KAAK,OAASA,EACd,KAAK,UAAYA,EAAW,KAAK,OAAS,EAE7C,CACF,CACL,EAAK,CACD,IAAK,iBACL,MAAO,SAAwBluT,EAAO,CACpC,GAAK,KAAK,MACV,KAAIm3M,EAAW,KAAK,MAGpB,GAFAn3M,EAAM,eAAc,EAEhB,KAAK,OAAQ,CACf,IAAImuT,KAAWJ,GAAM,cAAc/tT,CAAK,EAAE,EACtC,KAAK,oBAAsB,IAAQ,KAAK,OAAS,EAAImuT,EACnD,KAAK,oBAAsB,KAAK,MAAM,UACxC,KAAK,SAAS,CAAE,QAAS,EAAO,GAChC,KAAK,kBAAoB,KAAK,MAAM,QACpCh3G,EAAS,MAAK,GAEP,KAAK,OAAS,EAAIg3G,GACvB,KAAK,oBAAsB,KAAK,MAAM,UACxC,KAAK,SAAS,CAAE,QAAS,EAAM,GAC/B,KAAK,kBAAoB,KAAK,MAAM,QACpCh3G,EAAS,MAAK,GAIlB,KAAK,UAAY,GACjB,KAAK,OAAS,KACd,KAAK,MAAQ,EACd,EACF,CACL,EAAK,CACD,IAAK,cACL,MAAO,SAAqBn3M,EAAO,CACjC,IAAI0zE,EAAU,KAAK,MAAM,QAGrBA,GACFA,EAAQ1zE,CAAK,EAGf,KAAK,SAAS,CAAE,SAAU,EAAM,EACjC,CACL,EAAK,CACD,IAAK,aACL,MAAO,SAAoBA,EAAO,CAChC,IAAIyzE,EAAS,KAAK,MAAM,OAGpBA,GACFA,EAAOzzE,CAAK,EAGd,KAAK,SAAS,CAAE,SAAU,EAAO,EAClC,CACL,EAAK,CACD,IAAK,UACL,MAAO,SAAiBkK,EAAM,CAC5B,IAAIsoM,EAAQ,KAAK,MAAM,MAEvB,OAAKA,EAGEA,EAAMtoM,CAAI,IAAM,OAAY8jT,EAAO,aAAa,MAAM9jT,CAAI,EAAIsoM,EAAMtoM,CAAI,EAFtE,IAGV,CACL,EAAK,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIs3D,EAAS,KAETmK,EAAS,KAAK,MACd/nD,EAAY+nD,EAAO,UACVA,EAAO,MAChB,IAAAwa,EAAalU,IAAyBtG,EAAQ,CAAC,YAAa,OAAO,CAAC,EAEpEhW,KAAcmc,IAAa,SAAS,eAAgB,CACtD,wBAAyB,KAAK,MAAM,QACpC,sBAAuB,KAAK,MAAM,SAClC,yBAA0B,KAAK,MAAM,QACtC,EAAEluD,CAAS,EAEZ,OAAOy3C,GAAQ,QAAQ,cACrB,MACA,CAAE,UAAW1F,EACX,QAAS,KAAK,YACd,aAAc,KAAK,iBACnB,YAAa,KAAK,gBAClB,WAAY,KAAK,cAAgB,EACnC0F,GAAQ,QAAQ,cACd,MACA,CAAE,UAAW,oBAAsB,EACnCA,GAAQ,QAAQ,cACd,MACA,CAAE,UAAW,0BAA4B,EACzC,KAAK,QAAQ,SAAS,CACvB,EACDA,GAAQ,QAAQ,cACd,MACA,CAAE,UAAW,sBAAwB,EACrC,KAAK,QAAQ,WAAW,CACzB,CACF,EACDA,GAAQ,QAAQ,cAAc,MAAO,CAAE,UAAW,qBAAsB,EACxEA,GAAQ,QAAQ,cAAc,QAAS7H,IAAS,CAAE,EAAE2yB,EAAY,CAC9D,IAAK,SAAapsB,EAAM,CACtByH,EAAO,MAAQzH,CAChB,EACD,QAAS,KAAK,YACd,OAAQ,KAAK,WACb,UAAW,iCACX,KAAM,UAAU,CAAE,CAAC,CAC7B,CACK,CACF,EAAC,EAEKi0P,CACT,EAAE5yP,GAAO,aAAa,EAEPmC,IAAAojB,GAAA,QAAGqtO,GAGlBA,GAAO,YAAc,SAErBA,GAAO,aAAe,CACpB,MAAO,CACL,QAAS3yP,GAAQ,QAAQ,cAAcuyP,IAAQ,QAAS,IAAI,EAC5D,UAAWvyP,GAAQ,QAAQ,cAAcyyP,IAAI,QAAS,IAAI,CAC3D,CACH,EAEAE,GAAO,UAAY,CACjB,QAAS7qP,GAAY,QAAQ,KAC7B,SAAUA,GAAY,QAAQ,KAC9B,eAAgBA,GAAY,QAAQ,KACpC,SAAUA,GAAY,QAAQ,KAC9B,QAASA,GAAY,QAAQ,KAC7B,OAAQA,GAAY,QAAQ,KAC5B,UAAWA,GAAY,QAAQ,OAC/B,KAAMA,GAAY,QAAQ,OAC1B,MAAOA,GAAY,QAAQ,OAC3B,GAAIA,GAAY,QAAQ,OACxB,kBAAmBA,GAAY,QAAQ,OACvC,aAAcA,GAAY,QAAQ,OAClC,MAAOA,GAAY,QAAQ,UAAU,CAACA,GAAY,QAAQ,KAAMA,GAAY,QAAQ,MAAM,CACxF,QAASA,GAAY,QAAQ,KAC7B,UAAWA,GAAY,QAAQ,IAChC,EAAC,CAAC,CACL,ECtQA,MAAAirP,IAAe,CAAC,CAAE,cAAAC,CAAA,IAAoB,CACpC,IAAIp7B,EAAUo7B,EAAc,QAE5B,OAEIzqN,GAAAlf,GAAA,WAAAC,EAAC,SAAM,KAAK,KAAK,aAAc0pO,EAAc,GAAI,KAAK,SAAQ,IAC7D,QACC,UAAA1pO,EAACqpO,IAAA,CACC,eAAgB/6B,EAChB,MAAO,GACP,KAAK,YAET,EAEArvL,GAAC,MAAI,WAAU,aACb,UAACjf,EAAA,SAAM,UAAU,gBAAgB,SAEjC,UAEAA,EAAC,SACC,UAAU,eACV,KAAK,QACL,aAAc0pO,EAAc,MAC9B,GACF,EAEAzqN,GAAC,MAAI,WAAU,kBACb,UAACjf,EAAA,SAAM,UAAU,qBAAqB,SAEtC,mCAEAA,EAAC,YACC,UAAU,oBACV,KAAK,UACL,KAAM,EACN,aAAc0pO,EAAc,QAC9B,GACF,CACF,GAEJ,ECxCAC,IAAe,IAAM,CACnB,KAAM,CAACD,EAAeE,CAAgB,EAAIzrN,WAAS,IAAI,EAEvD/J,YAAU,IAAM,CACVhe,GAAA,UAAU,KAAM74E,GAAaqsT,EAAiBrsT,EAAS,IAAI,CAAC,CAClE,EAAG,CAAE,GAEC,MAAAssT,EAAuBxuT,GAAU,CACrCA,EAAM,eAAe,EAGjB,IAAAqE,EAAWrE,EAAM,OAAO,SAE5BuuT,EAAiB,IAAI,EAErBxzO,GACG,WAAW,CACV,eAAgB,CACd,GAAI12E,EAAS,GAAG,MAChB,QAASA,EAAS,QAAQ,QAC1B,MAAOA,EAAS,MAAM,MACtB,QAASA,EAAS,QAAQ,KAC5B,EACD,EACA,KAAMnC,GAAa,CAClBqsT,EAAiBrsT,EAAS,IAAI,EACvB,qBAAc,UAAW,sBAAsB,EACvD,EACA,MAAM,IAAM,CACJ,qBAAc,QAAS,sBAAsB,EACrD,GAGCusT,EAAmB,IAAM,CAC7B,MAAM,eAAe,EACrBF,EAAiB,IAAI,EACjBxzO,GAAA,SAAS,KAAM74E,GAAaqsT,EAAiBrsT,EAAS,IAAI,CAAC,GAGjE,OAEI0hG,GAAAlf,GAAA,WAAAC,EAAC,MAAG,SAA4B,iCAEhCif,GAAC,OAAK,UAAU4qN,EACb,UAAiBH,GAAA1pO,EAACypO,KAAO,cAAAC,CAA6B,MAEtD,MACC,WAAA1pO,EAAC,MAAI,WAAU,YACZ,SAAA0pO,GAEGzqN,GAAAlf,GAAA,WAAAC,EAAC,SACC,KAAK,SACL,UAAU,kBACV,MAAO0pO,EAAc,GAAK,SAAW,SACvC,EACC1pO,EAAA,KAAE,UAAU,YAAY,cAAY,OAAO,MAAO,CAAE,WAAY,EAAG,YAAa,CAAI,IACpF0pO,EAAc,aACjB,CAEJ,GAEC1pO,EAAA,OAAI,UAAU,aACZ,YACAA,EAAA,SAAM,KAAK,SAAS,UAAU,kBAAkB,MAAM,cAAc,QAAS8pO,CAAiB,GAEjG,GACF,GACF,CACF,GAEJ,ECrEMj9N,IAAa,CACjB,CAAE,GAAI,iCAAkC,UAAW88N,GAAe,CACpE,EAEA,SAAS,iBAAiB,mBAAoB,IAAM,CAClD98N,IAAW,QAAQ,CAAC,CAAE,GAAAlpF,EAAI,UAAAmvD,KAAgB,CACpC,IAAA53D,EAAU,SAAS,eAAeyI,CAAE,EACpCzI,GAAS+uE,GAAS,OAAQ+V,EAAAltB,EAAA,CAAW,GAAG53D,EAAQ,QAAQ,EAAIA,CAAO,EACxE,CACH,CAAC,GCdA,UAAW,CACV,OAAO,wBAA0B,UAAW,CAC1C,EAAE,wBAAwB,EAAE,SAAS,CACnC,MAAO,kBACP,KAAM,SAAS,EAAGkpC,EAAG,CACnB2lR,GACD,CACP,CAAK,CACF,EAED,0BAEA,SAASA,GAAqB,CAC5B,IAAIC,EAAkB/qE,EACtB+qE,EAAmB,EAAE,4CAA4C,EAEjE/qE,EAAM,EAAE,IAAI+qE,EAAkB,SAAS7K,EAAQ5/S,EAAG,CAEhD,OAAY,EAAE4/S,CAAM,EAAE,KAAK,IAAI,CACrC,CAAK,EAED,EAAE,KAAK,CACL,OAAQ,MACR,IAAK,wCACL,KAAM,CACJ,IAAKlgE,CACN,EACD,QAAS,SAAS9/O,EAAQ,CACxB,EAAE,UAAU,EAAE,OAAO,MAAM,EAC3B,EAAE,UAAU,EAAE,QAAQ,MAAM,CAC7B,EACD,KAAM,SAASA,EAAQ,CACrB,EAAE,QAAQ,EAAE,OAAO,MAAM,EACzB,EAAE,QAAQ,EAAE,QAAQ,MAAM,CAC3B,CACP,CAAK,CACF,CACH,GAAG,KAAK+W,MAAI,ECrCZ,EAAE,QAAQ,EAAE,GAAG,QAAS,sBAAwBvH,GAAM,CACvC,EAAEA,EAAE,MAAM,EAAE,QAAQ,MAAM,EAClC,OAAM,CACb,CAAC,GCHA,UAAW,CACV,EAAE,QAAQ,EAAE,GAAG,QAAS,uBAAwB,UAAW,CACzD,EAAE,KAAK,CACL,IAAK,8BACL,SAAU,OACV,KAAM,CAAE,gBAAiB,EAAE,IAAI,EAAE,KAAK,iBAAiB,CAAG,EAC1D,KAAM,OACN,QAAS,UAAW,CAClB,IACD,CACP,CAAK,CACL,CAAG,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,yBAA0B,UAAW,CAC3D,EAAE,IAAI,EAAE,SAAS,SAAS,KAAK,sBAAsB,EAAE,IAAI,GAAG,CAClE,CAAG,CACH,GAAG,KAAKuH,MAAI,ECdZ,EAAE,QAAQ,EAAE,GAAG,QAAS,6BAA8B,SAASvH,EAAG,CAChEA,EAAE,eAAgB,EAClBknE,GACG,IAAI,EAAElnE,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,EAC3B,KAAKpR,GAAY,CAChB,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,QAAQ,OAAOA,EAAS,IAAI,EAC5E,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAC3C,CAAK,EACA,MAAO0D,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAC7D,CAAK,CACL,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,0BAA4B0N,GAAM,CACxDA,EAAE,eAAgB,EAElB,MAAM2mJ,EAAS,EAAE3mJ,EAAE,MAAM,EACzB2mJ,EAAO,KAAK,WAAY,EAAI,EAC5B,EAAE,yBAAyB,EAAE,YAAY,WAAW,EACpD,EAAE,yBAAyB,EAAE,KAAK,cAAc,EAAE,OAAM,EAExDz/E,GACG,MAAMy/E,EAAO,KAAK,KAAK,EAAG,CAAE,QAAS,EAAE,yBAAyB,EAAE,IAAG,EAAM,EAC3E,KAAK/3J,GAAY,CACd+3J,EAAO,KAAK,WAAY,EAAK,EAC7B,EAAE,qBAAqB,EAAE,MAAM,MAAM,EACrC,OAAO,cAAc,UAAW,cAAc,CACtD,CAAK,EACA,MAAOr0J,GAAU,CAEhB,GADAq0J,EAAO,KAAK,WAAY,EAAK,EACzBr0J,EAAM,SAAS,KAAK,cAAe,CACrC,MAAMjD,EAAO,6BAA+BiD,EAAM,SAAS,KAAK,cAAgB,UAChF,EAAE,yBAAyB,EAAE,SAAS,WAAW,EACjD,EAAE,yBAAyB,EAAE,OAAOjD,CAAI,CAChD,MACQ,EAAE,qBAAqB,EAAE,MAAM,MAAM,EACrC,OAAO,cAAc,QAASiD,EAAM,SAAS,KAAK,KAAO,CAEjE,CAAK,CACL,CAAC,ECtCD,EAAE,QAAQ,EAAE,GAAG,QAAS,sCAAwC0N,GAAM,CACpEA,EAAE,eAAc,EAEhBknE,GACG,IAAI,EAAElnE,EAAE,MAAM,EAAE,KAAK,KAAK,CAAC,EAC3B,KAAKpR,GAAY,CAChB,IAAIkmE,EAAQ,EAAE,gCAAgC,EAC9CA,EAAM,KAAK,gBAAgB,EAAE,MAAO,EAAC,OAAOlmE,EAAS,IAAI,EACzDkmE,EAAM,MAAM,MAAM,CACxB,CAAK,CACL,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,SAAU,gCAAkC90D,GAAM,CAC/DA,EAAE,eAAc,EAEhB,IAAI+3O,GAAY,EAAC,QAAQ,CACvB,KAAM,EAAE/3O,EAAE,MAAM,EAChB,UAAW,IAAM,CACf,EAAE,gCAAgC,EAAE,MAAM,MAAM,EAChD,OAAO,cAAc,UAAW,cAAc,CAC/C,EACD,QAAS,IAAM,CAAE,gBAAgB,MAAQ,CAC7C,CAAG,CACH,CAAC,ECxBD,MAAMs7S,GAA0Bt7S,GAAM,CACpCknE,GACG,MAAM,EAAElnE,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAM,CAAE,OAAQ,CAC7C,0BAA2B,EAAE,6DAA6D,EAAE,GAAG,UAAU,EACzG,2BAA4B,EAAE,8DAA8D,EAAE,GAAG,UAAU,CACjH,CAAK,CAAC,EACD,KAAKpR,GAAY,EAAE,EACnB,MAAO0D,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAC7D,CAAK,CACL,EAEA,EAAE,QAAQ,EAAE,GAAG,SAAU,gDAAiD,SAAS0N,EAAG,CACpFA,EAAE,eAAgB,EAClBs7S,GAAuBt7S,CAAC,CAC1B,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,SAAU,iDAAkD,SAASA,EAAG,CACrFA,EAAE,eAAgB,EAClBs7S,GAAuBt7S,CAAC,CAC1B,CAAC,GCtBA,UAAW,CACV,EAAE,UAAW,CAEX,MAAMu7S,EAAoB,EAAE,qBAAqB,EAE3CC,EAAqB,SAAUhlT,EAAM,CACzC,EAAE,KAAK,CACL,KAAM,MACN,IAAKA,EACL,MAAO,GACP,QAAS,SAAU4kB,EAAM,CACvBmgS,EAAkB,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOngS,CAAI,EAC5DmgS,EAAkB,MAAM,MAAM,CAC/B,EACD,MAAO,SAAUngS,EAAM,CACrBmgS,EAAkB,KAAK,gBAAgB,EAAE,MAAK,EAC9CA,EAAkB,MAAM,OAAO,EAC/B,OAAO,cAAc,QAAS,uBAAuB,CACtD,CACT,CAAO,CACP,EAEI,EAAE,QAAQ,EAAE,GAAG,QAAS,sCAAuC,SAAUv7S,EAAG,CAC1EA,EAAE,eAAc,EAChBw7S,EAAmB,EAAE,IAAI,EAAE,KAAK,MAAM,CAAC,CAC7C,CAAK,CAEL,CAAG,CACH,GAAG,KAAKj0S,MAAI,EC1BL,SAASk0S,GAAezmT,EAAI0mT,EAAiB,CAClDx0O,GACG,IAAI,4BAA8BlyE,CAAE,EACpC,KAAM2mT,GAAS,CACd,MAAM7mP,EAAQ,EAAE,aAAa,EAC7BA,EAAM,KAAK,gBAAgB,EAAE,MAAO,EAAC,OAAO6mP,EAAK,IAAI,EACrD7mP,EAAM,MAAM,MAAM,CACxB,CAAK,EACA,MAAOxiE,GAAU,CACXA,EAAM,SAAS,SAAW,KAAM,OAAO,cAAc,QAAS,sBAAsB,EACzFopT,EAAiB,CACvB,CAAK,CACL,CCZA,MAAME,IAAe,UAAW,CAC9B,SAASv+R,EAAKnnB,EAASwlT,EAAiB,CACtC,KAAM,CAAE,SAAAG,EAAU,QAAAC,EAAS,QAAAC,EAAS,aAAAC,EAAc,YAAAC,CAAa,EAAG/lT,EAElE,IAAI2wS,EAAS,EAAE,gBAAgB,EAC3BqV,EAAY,EAAE,WAAW,EAE7BrV,EAAO,WAAW,SAAS,EAC3BqV,EAAU,aAAa,SAAS,EAEhCA,EAAU,KAAK,EAAE,EAEjBA,EAAU,aAAa,CACrB,YAAa,YACb,YAAaL,EACb,SAAU,GACV,WAAY,GACZ,WAAY,GACZ,SAAU,EACV,QAASC,EACT,QAASC,EACT,gBAAiB,QACjB,0BAA2B,WAC3B,oBAAqB,6CACrB,OAAQ,GACR,mBAAoB,QACpB,WAAY,GACZ,MAAO,CACL,KAAM,CACJ,YAAa,cACb,aAAc,aACf,CACF,EACD,WAAY,OACZ,OAAQ,CACN,KAAM,KACN,OAAQ,KACR,MAAO,IACR,EACD,WAAaI,GAAaV,GAAeU,EAAS,GAAIT,CAAe,EACrE,UAAWM,EACX,OAAQC,CACd,CAAK,EAEDG,GACD,CAED,SAASA,GAAkB,CACzB,EAAE,YAAY,EAAE,KAAK,WAAW,EAChC,EAAE,WAAW,EAAE,aAAa,SAAU,SAAU,MAAM,EACtD,EAAE,eAAe,EAAE,QAAQ,oEAAoE,EAC/FC,IACAC,IACAC,IACA,EAAE,mBAAmB,EAAE,SACvB,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAE,SAAU,WAAY,WAAY,EAAM,EACvF,CAED,SAASD,GAAY,CACnB,EAAE,KAAK,EAAE,mBAAmB,EAAG,SAASE,EAAKj1P,EAAO,CAClD,EAAEA,CAAK,EAAE,KAAK,EAAEA,CAAK,EAAE,KAAI,CAAE,CACnC,CAAK,CACF,CAED,SAAS80P,GAAY,CACnB,EAAE,KAAK,EAAE,eAAe,EAAG,SAASG,EAAK34S,EAAM,CAC7C,IAAIg5D,EAAS,EAAEh5D,CAAI,EAAE,OAAM,EAC3B,OAAO,EAAEA,CAAI,EAAE,KAAK,aAAa,EAAE,IAAI,cAAeg5D,EAAS,EAAI,EAAE,CAC3E,CAAK,CACF,CAED,SAAS0/O,GAAe,CACtB,IAAIr7R,EAAa,EAAE,cAAc,EAEjC,EAAE,KAAKA,EAAY,SAASpnB,EAAO+J,EAAM,CACvC,IAAI44S,EAAaC,EAAa/zR,EAC9BA,EAAO,EAAE9kB,CAAI,EAAE,KAAK,MAAM,EAC1B44S,EAAc,IAAI,OAAO9zR,EAAM,OAAO,EACtC+zR,EAAc,IAAI,OAAO/zR,EAAM,OAAO,EAAE,IAAI,GAAI,SAAS,EACzD+zR,EAAY,OAAO,OAAO,EAE1B,EAAE74S,CAAI,EAAE,KAAK,UAAU,EAAE,KAAK,iCAC5B44S,EAAY,OAAO,OAAO,EAC1B,MACAC,EAAY,OAAO,OAAO,EAC1B,SAAS,CACjB,CAAK,CACF,CAED,MAAO,CACL,KAAMr/R,CACV,CACA,IAEMs/R,IAAa,UAAW,CAC5B,SAASt/R,EAAKnnB,EAASwlT,EAAiB,CACtC,GAAI,CAAE,YAAAkB,EAAa,aAAAZ,CAAY,EAAI9lT,EACnC,MAAM2mT,EAAmB,KAAK3mT,EAAQ,sBAAsB,EACxD2mT,EAAiB,OAAS,GAAG,EAAE,kBAAkB,EAAE,KAAKA,CAAgB,EAC5E,EAAE,WAAW,EAAE,KAAM,EACrBjB,IAAY,KAAK1lT,EAASwlT,CAAe,EAEzC,MAAMp9L,EAAS09L,EAAa,OACtBc,EAAaC,EAAUz+L,EAAS,IAAM,KAAOA,EAAS,IAAM,IAAI,EAEtE,IAAIr7F,EAAQ,EAAE,4BAA4B,EAE1CA,EAAM,IAAI,QAAS85R,EAAUz+L,EAAS,GAAG,CAAC,EAC1C,EAAE,YAAY,EAAE,KAAK,QAAS,UAAYy+L,EAAUH,CAAW,EAAI,YAAY,EAC/E,EAAE,uBAAuB,EAAE,IAAI,QAASG,EAAUH,EAAc,GAAG,EAAI,IAAI,EAE3E35R,EAAM,GAAG,aAAc,SAASjjB,EAAGg9S,EAAW,CAE1C,EAAE,4BAA4B,EAAE,IAAI,QAASF,CAAU,EACvD,EAAE,uBAAuB,EAAE,IAAI,QAASA,CAAU,EAClD,EAAE,mBAAmB,EAAE,IAAI,QAASA,CAAU,CAMtD,CAAK,EAED,EAAE,oCAAoC,EAAE,IAAI,mBAAoB,SAAS,EACzE,EAAE,yBAAyB,EAAE,OAAOC,EAAU,EAAE,yBAAyB,EAAE,SAAW,CAAC,CAAC,EACxF,EAAE,8BAA8B,EAAE,KAAK,QAAS,UAAYA,EAAU95R,EAAM,MAAO,EAAC,CACrF,CAED,SAAS85R,EAAUlwT,EAAO,CACxB,OAAOA,EAAM,SAAU,EAAG,IAC3B,CAED,MAAO,CACL,KAAMwwB,CACV,CACA,EAAI,ECzIE4/R,IAAc,UAAW,CAC7B,SAAS5/R,EAAKnnB,EAAS,CACrB,MAAMgnT,EAAgBhnT,EAAQ,OACxBinT,EAAe,KAAKjnT,EAAQ,kBAAkB,EAC9CknT,EAAoBlnT,EAAQ,kBACnB,EAAE,gBAAgB,EAC1B,WAAW,SAAS,EAC3B,EAAE,WAAW,EAAE,aAAa,SAAS,EACrC,EAAE,WAAW,EAAE,KAAK,iBAAiB,EACrC,EAAE,WAAW,EAAE,KAAKinT,CAAY,EAChC,EAAE,kBAAkB,EAAE,IAAI,QAASJ,GAAWG,EAAgB,GAAK,GAAG,CAAC,EACvE,EAAE,kBAAkB,EAAE,WAAW,CAAE,SAAU,WAAY,WAAY,EAAI,CAAE,EAC3E,EAAE,kBAAkB,EAAE,eAAe,CAAC,KAAQ,EAAG,KAAQ,GAAO,OAAQ,WAAW,CAAC,EACpF,EAAE,sBAAsB,EAAE,OAAOE,CAAiB,EAClD,EAAE,WAAW,EAAE,OACf,EAAE,8BAA8B,EAAE,KAAK,QAAS,UAAYL,EAAU,EAAE,+BAA+B,EAAE,MAAK,CAAE,CAAC,EAE9G,EAAE,+BAA+B,EAAE,MAAK,EAAK,GAAK,OAAO,WAAa,MACvE,EAAE,8BAA8B,EAAE,IAAI,aAAc,QAAQ,CAE/D,CAED,SAASA,EAAUlwT,EAAO,CACxB,OAAOA,EAAM,SAAU,EAAG,IAC3B,CAED,MAAO,CACL,KAAM,SAASqJ,EAAS,CAAE,OAAOmnB,EAAKnnB,CAAO,CAAG,CACpD,CACA,EAAI,EC3BE+qI,IAAU,UAAW,CACzB,SAASjqH,EAAK0kS,EAAiB,CAC7B,MAAM2B,EAAW,aAAa,QAAQ,sBAAsB,EAC5D,IAAIC,EAAiB,GAErB,GAAI,CACFA,EAAiB,KAAK,MAAMD,CAAQ,GAAK,EAC1C,MAAW,CACV,QAAQ,IAAI,eAAe,CAC5B,CAED,MAAME,EAAWD,EAAe,SAC1BE,EAAe,EAAE,kBAAkB,EACnCC,EAAc,EAAE,IAAID,EAAc,SAAUxjT,EAAQ,CACxD,OAAOA,EAAO,KACpB,CAAK,EACGujT,GAAY,EAAE,SAASE,EAAaF,CAAQ,GAAG,EAAE,WAAW,EAAE,IAAIA,CAAQ,EAE9E,EAAE,WAAW,EAAE,GAAG,SAAU,UAAW,CACrC,MAAMzsS,EAAM,EAAE,YAAa,CACzB,GAAI,eACJ,SAAU,WACV,MAAO,2CACP,KAAM,eACd,CAAO,EAED,EAAE,eAAe,EAAE,YAAY,SAAS,EACxC,EAAE,eAAe,EAAE,OAAQ,EAAC,YAAYA,CAAG,EAC3C,EAAE,eAAe,EAAE,YAAY,CAAE,gBAAiB,KAAK,CAAE,EAEzD,WAAW4qS,EAAiB,GAAG,CACrC,CAAK,CACF,CAED,MAAO,CACL,KAAM1kS,CACV,CACA,EAAI,ECrCEkqH,IAAc,UAAW,CAC7B,IAAIw8K,EAAoB,KAExB,SAAS1mS,EAAK0kS,EAAiB,CAC7BgC,EAAoBhC,EAEpB,EAAE,eAAe,EAAE,YAAY,CAC7B,yBAA0B,GAC1B,2BAA4B,GAC5B,SAAU,IAAMA,EAAiB,EACjC,WAAaxlT,GAAaA,EAAQ,SAAW,GAAKA,EAAQ,IAAK,IAAK,GAAM,MAAQA,EAAQ,OAAS,WACzG,CAAK,EAED,EAAE,eAAe,EAAE,GAAG,SAAU,UAAW,CACzCwlT,EAAiB,CACvB,CAAK,EAED,EAAE,WAAW,EAAE,GAAG,SAAU,SAAU17S,EAAG,CACvC,MAAMunE,EAAUvnE,EAAE,OAAO,MACzB29S,EAAgBp2O,CAAO,CAC7B,CAAK,EAEDo2O,EAAgB,EAAE,WAAW,EAAE,IAAG,CAAE,CAExC,CACE,SAASA,EAAgBp2O,EAAS,CAChCL,GAAM,IAAI,4CAA4CK,CAAO,EAAE,EAAE,KAAMo0O,GAAS,CAC9EiC,EAAgCjC,EAAK,IAAI,CAC/C,CAAK,CACF,CAED,SAASiC,EAAgC5sN,EAAY,CACnD,MAAMlgF,EAAM,EAAE,YAAa,CACzB,GAAI,eACJ,SAAU,WACV,MAAO,2CACP,KAAM,eACZ,CAAK,GAEAkgF,GAAc,IAAI,QAAQntF,GAAQ,CACjC,GAAIA,EAAK,gBAAgB,SAAW,EAAG,CACrC,IAAIg6S,EAAe,EAAE,YAAa,CAChC,MAAO,yBACP,MAAOh6S,EAAK,GACZ,KAAMA,EAAK,iBACrB,CAAS,EAEDiN,EAAI,OAAO+sS,CAAY,CAC/B,KAAa,CACL,IAAIC,EAAW,EAAE,cAAe,CAAE,MAAOj6S,EAAK,iBAAiB,CAAE,EAEjEA,EAAK,gBAAgB,QAAQk6S,GAAiB,CAC5C,IAAIF,EAAe,EAAE,YAAa,CAChC,MAAO,GAAGh6S,EAAK,EAAE,IAAIk6S,EAAc,EAAE,GACrC,KAAMA,EAAc,iBAChC,CAAW,EAEDD,EAAS,OAAOD,CAAY,CACtC,CAAS,EAED/sS,EAAI,OAAOgtS,CAAQ,EAEnB,IAAIE,EAAe,EAAE,cAAe,CAAE,MAAO,GAAI,MAAO,QAAQ,CAAE,EAClEltS,EAAI,OAAOktS,CAAY,CACxB,CACP,CAAK,EAED,EAAE,eAAe,EAAE,YAAY,SAAS,EACxC,EAAE,eAAe,EAAE,OAAQ,EAAC,YAAYltS,CAAG,EAC3CmtS,EAAyB,CAC1B,CAED,SAASA,GAA0B,CACjC,EAAE,eAAe,EAAE,YAAY,CAC7B,yBAA0B,GAC1B,uBAAwB,GACxB,cAAe,MACf,SAAU,IAAM,CACd,EAAE,eAAe,EAAE,KAAM,EAAC,YAAY,MAAM,EAC5CP,EAAmB,CACpB,EACD,WAAaxnT,GAAaA,EAAQ,SAAW,GAAKA,EAAQ,IAAK,IAAK,GAAM,MAAQA,EAAQ,OAAS,YACnG,cAAe,CAAC2U,EAAQlL,IAAc,CACpC,MAAMuP,EAAK,EAAErE,CAAM,EAAE,KAAI,EACzB,EAAEqE,CAAE,EAAE,GAAG,SAAU,yCAA0C,UAAW,CACtE,EAAEA,CAAE,EAAE,KAAK,wCAAwC,EAAE,MAAK,EAC1D,EAAEA,CAAE,EAAE,YAAY,MAAM,EACxB,WAAWwuS,EAAmB,GAAG,CAC3C,CAAS,CACF,CACP,CAAK,CACF,CAED,MAAO,CACL,KAAM1mS,CACV,CACA,EAAI,EClGEs4N,IAAa,UAAW,CAC5B,SAASt4N,EAAK0kS,EAAiB,CAC7B,EAAE,OAAO,EAAE,WAAW,CACpB,OAAQ,eACR,UAAW,EACX,UAAW,EACjB,CAAK,EAED,MAAMngM,EAAa,OAAO,KAAM,kBAAkB,EAC9CA,EAAW,WAAW,EAAE,OAAO,EAAE,WAAW,UAAWA,EAAW,OAAM,CAAE,EAE9E,EAAE,OAAO,EAAE,GAAG,SAAU,UAAW,CACjCmgM,EAAiB,CACvB,CAAK,CACF,CAED,MAAO,CACL,KAAM1kS,CACV,CACA,EAAI,ECnBEknS,IAAc,UAAW,CAC7B,SAASlnS,EAAK0kS,EAAiB,CAC7B,EAAE,cAAc,EAAE,GAAG,SAAU,SAAS17S,EAAG,CACzC,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAG,CAAE,EACrC07S,GACN,CAAK,EAED,EAAE,eAAe,EAAE,GAAG,QAAS,SAAS17S,EAAG,CACzC,IAAI4I,EACJ5I,EAAE,eAAc,EAChB4I,EAAM,EAAE,cAAc,EAAE,IAAG,EAEvBA,IAAQ,QAGV,EAAE,WAAW,EAAE,OACf,EAAE,sBAAsB,EAAE,OAC1B,EAAE,oBAAoB,EAAE,OACxB,EAAE,qBAAqB,EAAE,OACzB,EAAE,cAAc,EAAE,IAAI,KAAK,EAC3B,EAAE,0BAA0B,EAAE,OAAO,EAAI,EACzC,EAAE,4BAA4B,EAAE,OAAO,EAAI,EAC3C8yS,IACA,EAAE,gBAAgB,EAAE,YAAY,cAAc,EAC9C,EAAE,eAAe,EAAE,SAAS,cAAc,EAC1C,EAAE,eAAe,EAAE,YAAY,SAAS,EACxC,EAAE,eAAe,EAAE,WAAW,UAAU,EACxC,EAAE,8BAA8B,EAAE,IAAI,aAAc,QAAQ,GAG9DyC,GACN,CAAK,EAED,EAAE,gBAAgB,EAAE,GAAG,QAAS,SAASn+S,EAAG,CAC1CA,EAAE,eAAc,EAChB,IAAI4I,EAAM,EAAE,cAAc,EAAE,IAAG,EAC/B,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAEzBA,IAAQ,SAEV,EAAE,WAAW,EAAE,OACf,EAAE,sBAAsB,EAAE,OAC1B,EAAE,oBAAoB,EAAE,OACxB,EAAE,qBAAqB,EAAE,OACzB,EAAE,0BAA0B,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAU,cAAc,EACzF,EAAE,4BAA4B,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAU,cAAc,EAC3F,EAAE,cAAc,EAAE,IAAI,MAAM,EAC5B8yS,IACA,EAAE,eAAe,EAAE,YAAY,cAAc,EAC7C,EAAE,gBAAgB,EAAE,SAAS,cAAc,EAC3C,EAAE,eAAe,EAAE,YAAY,QAAQ,EAEpC,OAAO,WAAa,MACrB,EAAE,8BAA8B,EAAE,IAAI,aAAc,QAAQ,GAIhEyC,GACN,CAAK,EAEDA,GACD,CAED,SAASA,GAA4B,CACnC,MAAMC,EAAkB,mBAClBC,EAAkB,eAClBC,EAAiB,kBACjBC,EAAiB,cACjBC,EAAmB,EAAE,uBAAuB,EAC5CC,EAAmB,EAAE,uBAAuB,EAEtB,EAAE,cAAc,EAAE,IAAG,IAErB,OAC1BD,EAAiB,KAAKF,CAAc,EACpCG,EAAiB,KAAKF,CAAc,IAEpCC,EAAiB,KAAKJ,CAAe,EACrCK,EAAiB,KAAKJ,CAAe,EAExC,CAED,MAAO,CACL,KAAMrnS,CACV,CACA,EAAI,ECrFEoqH,IAAQ,UAAW,CACvB,SAASpqH,EAAK0kS,EAAiB,CAC7B,EAAE,eAAe,EAAE,YAAY,CAC7B,uBAAwB,GACxB,gBAAiB,GACjB,gBAAiB,OACjB,gBAAiB,EACjB,SAAU,IAAM,CACdA,IACAgD,EAAuB,CACxB,EACD,WAAaxoT,GAAaA,EAAQ,SAAW,GAAKA,EAAQ,IAAK,IAAK,GAAM,MAAQA,EAAQ,OAAS,WACzG,CAAK,CACF,CAED,SAASwoT,GAAwB,CAC/B,MAAMC,EAAiB,EAAE,eAAe,EAAE,OAAM,EAAG,KAAK,wBAAwB,EAAE,KAAK,WAAW,EAElG,GAAIA,EAAe,SAAW,EAC5B,EAAEA,EAAe,CAAC,CAAC,EAAE,SAAS,UAAU,EACxC,EAAEA,EAAe,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,WAAY,EAAI,MACnD,CACL,MAAMC,EAAmB,EAAE,eAAe,EAAE,OAAM,EAAG,KAAK,wBAAwB,EAAE,KAAK,aAAa,EAEtG,EAAE,KAAKA,EAAkB,SAAS9kT,EAAOoV,EAAI,CAC3C,EAAEA,CAAE,EAAE,YAAY,UAAU,EAC5B,EAAEA,CAAE,EAAE,KAAK,OAAO,EAAE,KAAK,WAAY,EAAK,CAClD,CAAO,CACF,CACF,CAED,MAAO,CACL,KAAM8H,CACV,CACA,EAAI,EClCE6nS,IAAiB,UAAW,CAChC,SAAS7nS,EAAK0kS,EAAiB,CAC7B,EAAE,kBAAkB,EAAE,GAAG,SAAU,SAAS17S,EAAG,CAC7C,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAG,CAAE,EACzC07S,GACN,CAAK,CACF,CAED,MAAO,CACL,KAAM1kS,CACV,CACA,EAAI,ECXE8nS,IAAgB,UAAW,CAC/B,SAAS9nS,EAAK0kS,EAAiB,CAC7B,EAAE,iBAAiB,EAAE,GAAG,SAAU,SAAS17S,EAAG,CAC5C,EAAE,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAG,CAAE,EAI7C,MAAM++S,EAFiB,EAAE,wBAAwB,EACb,QACI,eAExC,EAAE,0BAA0B,EAAE,OAAOA,CAAc,EACnD,EAAE,4BAA4B,EAAE,OAAOA,CAAc,EACrD,EAAE,cAAc,EAAE,OAAOA,CAAc,EACvC,EAAE,gBAAgB,EAAE,KAAK,WAAY,CAACA,CAAc,EAEpDrD,GACN,CAAK,CACF,CAED,MAAO,CACL,KAAM1kS,CACV,CACA,EAAI,ECrBEgoS,GAAa,UAAW,CAC5B,SAAShoS,EAAK0kS,EAAiB,CAC7B,EAAE,UAAU,EAAE,GAAG,SAAU,IAAMA,EAAe,CAAE,CACnD,CAED,SAASuD,EAA2B/oT,EAAS,CAC3C,EAAE,uBAAuB,EAAE,SAE3B,MAAM8D,EAAS,EAAE,YAAa,CAAE,KAAM,eAAe,GACrD,EAAE,gBAAgB,EAAE,OAAOA,CAAM,EAEjC,EAAE,KAAK9D,EAAS,SAAS4D,EAAOwtE,EAAM,CACpC,IAAIttE,EAAS,EAAE,YAAa,CAAE,MAAOstE,EAAK,GAAI,KAAMA,EAAK,KAAM,SAAUA,EAAK,QAAU,GACxF,EAAE,gBAAgB,EAAE,OAAOttE,CAAM,CACvC,CAAK,CACF,CAED,MAAO,CACL,KAAMgd,EACN,2BAA4BioS,CAChC,CACA,EAAI,ECRE3jH,IAAU,UAAW,CAGzB,SAAStkL,GAAO,CACV,EAAE,kBAAkB,EAAE,OAAS,IACjCiqH,IAAO,KAAKy6K,CAAe,EAC3Bx6K,IAAW,KAAKw6K,CAAe,EAC/BpsE,IAAU,KAAKosE,CAAe,EAC9BsD,GAAU,KAAKtD,CAAe,EAC9Bt6K,IAAK,KAAKs6K,CAAe,EACzBwC,IAAW,KAAKxC,CAAe,EAC/BmD,IAAc,KAAKnD,CAAe,EAClCoD,IAAa,KAAKpD,CAAe,GAGnC,EAAE,gBAAgB,EAAE,GAAG,SAAU,SAAS17S,EAAG,CAC3CA,EAAE,eAAc,EAChBk/S,GACN,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,kBAAmB,SAASl/S,EAAG,CACrDA,EAAE,eAAc,EAChBy7S,GAAe,EAAE,IAAI,EAAE,KAAK,IAAI,EAAGC,CAAe,CACxD,CAAK,EAED,EAAE,uBAAuB,EAAE,GAAG,QAAS,SAAS17S,EAAG,CACjDA,EAAE,eAAc,CACtB,CAAK,EAED,MAAM06F,EAAW,EAAE,WAAW,EACxBykN,EAAgB,EAAE,8BAA8B,EAEtDA,EAAc,GAAG,SAAU,IAAM,CAAEzkN,EAAS,WAAWykN,EAAc,YAAY,CAAC,CAAE,EACpFzkN,EAAS,GAAG,SAAU,IAAM,CAAEykN,EAAc,WAAWzkN,EAAS,YAAY,CAAC,CAAE,EAE/EwkN,GACD,CAED,SAASA,GAAa,CACpB,MAAMnzT,EAAO,EAAE,gBAAgB,EACzBsB,EAAMtB,EAAK,KAAK,QAAQ,EAAI,SAAWA,EAAK,YAElDqzT,EAAa,EAAI,EAEjBl4O,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChC,MAAMsH,EAAUtH,EAAS,KAErBsH,EAAQ,WAAa,OACvB8oT,GAAU,2BAA2B9oT,EAAQ,KAAK,EAClDymT,IAAU,KAAKzmT,EAASwlT,CAAe,GAC9BxlT,EAAQ,WAAa,WAC9B,EAAE,WAAW,EAAE,KAAK,KAAKA,EAAQ,kBAAkB,CAAC,GAEpD8oT,GAAU,2BAA2B9oT,EAAQ,KAAK,EAClD+mT,IAAW,KAAK/mT,CAAO,GAGzBkpT,EAAa,EAAK,CACxB,CAAK,EAAE,MAAOp/S,GAAM,CACdo/S,EAAa,EAAK,EACdp/S,EAAE,OAAS,gBAEb,OAAO,cAAc,QAAS,sBAAsB,CAE5D,CAAK,CACF,CAED,SAAS07S,GAAkB,CAEzB,MAAM2B,EADO,EAAE,oBAAoB,EACb,gBAElB,EAAE,uBAAuB,EAAE,OAAS,GACtC,aAAa,QAAQ,uBAAwBA,CAAQ,EAGvD6B,GACD,CAED,SAASE,EAAaxvS,EAAU,CAC9B,CAAC,GAAG,SAAS,uBAAuB,sBAAsB,CAAC,EAAE,IAAIV,GAAMA,EAAG,QAAQ,SAAWU,CAAQ,EACrG,CAAC,GAAG,SAAS,uBAAuB,sBAAsB,CAAC,EAAE,IAAIV,GAAMA,EAAG,QAAQ,SAAWU,CAAQ,CACtG,CAED,MAAO,CAAE,KAAMoH,EACjB,EAAI,EC/FJ,EAAE,UAAW,CACX,GAAI,EAAE,qBAAqB,EAAE,SAAW,EAAG,MAAO,GAClDskL,IAAO,KAAI,CACb,CAAC,ECLD,OAAO,yBAA2B,SAAS+jH,EAAen8M,EAAM,CAC9D,MAAM1sG,EAAO,wBAEPw5B,EADO,EAAE,oBAAoB,EACf,YAEdsvR,EAA8B,EAAE,6BAA6B,EAEnE,EAAE,IAAI9oT,EAAMw5B,EAAQ,SAAS5U,EAAM,CACjCkkS,EAA4B,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOlkS,CAAI,EACtE,EAAE,0BAA0B,EAAE,IAAI,EAAE,gCAAgC,EAAE,IAAG,CAAE,EAC3EkkS,EAA4B,MAAM,MAAM,CAC5C,CAAG,CACH,EAEA,EAAE,QAAQ,EAAE,GAAG,QAAS,iDAAkD,SAASt/S,EAAG,CACpFA,EAAE,eAAc,EAChB,IAAIuwO,EAAQ,EAAE,IAAI,EAAE,QAAQ,MAAM,EAC9BljP,EAAMkjP,EAAM,KAAK,QAAQ,EAE7B,EAAE,KAAK,CACL,KAAM,OACN,IAAKljP,EACL,KAAMkjP,EAAM,UAAW,EACvB,QAAS,SAASn1N,EAAM,CACtB,OAAO,SAAWA,EAAK,WACxB,EACD,MAAO,SAASA,EAAM,CACpB,EAAE,6BAA6B,EAAE,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOA,EAAK,YAAY,CACzF,CACL,CAAG,CACH,CAAC,EC3BD,EAAE,QAAQ,EAAE,GAAG,QAAS,yBAA0B,SAASpb,EAAG,CAC5DA,EAAE,eAAc,EAChB,MAAMu/S,EAAO,EAAE,IAAI,EACbhvE,EAAQgvE,EAAK,QAAQ,MAAM,EAE7BA,EAAK,KAAK,UAAU,IAAM,aAC5BA,EAAK,KAAK,WAAY,EAAI,EAE1Bx1F,GAAgB,KAAK,GAAI,EAEzB7iJ,GAAM,KAAKqpK,EAAM,KAAK,QAAQ,EAAG,IAAI,SAAS,EAAEA,CAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAM,CACrEgvE,EAAK,KAAK,WAAY,EAAK,EAC3Bx1F,GAAgB,KAAI,EACpB,OAAO,cAAc,UAAW,4BAA4B,EAC5Dw1F,EAAK,QAAQ,MAAM,EAAE,KAAK,4BAA4B,EAAE,IAAI,EAAE,CACpE,CAAK,EAAE,MAAM,IAAM,CACbA,EAAK,KAAK,WAAY,EAAK,EAC3Bx1F,GAAgB,KAAI,EACpB,OAAO,cAAc,QAAS,2BAA2B,CAC/D,CAAK,EAEL,CAAC,ECrBD,EAAE,QAAQ,EAAE,GAAG,QAAS,mBAAoB,SAAS/pN,EAAG,CACtDA,EAAE,eAAgB,EAElBknE,GACG,IAAI,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,EACvB,KAAKt4E,GAAY,CAChB,IAAIkmE,EAAQ,EAAE,sBAAsB,EACpCA,EAAM,KAAK,gBAAgB,EAAE,MAAO,EAAC,OAAOlmE,EAAS,IAAI,EACzDkmE,EAAM,MAAM,MAAM,CACxB,CAAK,CACL,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,SAAU,mCAAoC,SAAS90D,EAAG,CACvEA,EAAE,eAAgB,EAElB,IAAI+3O,GAAY,EAAC,QAAQ,CACvB,KAAM,EAAE/3O,EAAE,MAAM,EAChB,UAAYpR,GAAa,CACvB,IAAI7C,EAAO,EAAE,kCAAkC,EAC3C+oE,EAAQ,EAAE,sBAAsB,EACpC,EAAE,SAAW/oE,EAAK,KAAK,WAAW,CAAC,EAAE,MAAO,EAAC,OAAO6C,CAAQ,EAC5DkmE,EAAM,MAAM,MAAM,EAClB,OAAO,cAAc,UAAW,cAAc,CAC/C,EACD,QAAUlmE,GAAa,CAAE,gBAAgB,KAAI,CAAI,CACrD,CAAG,CACH,CAAC,EC3BD,EAAE,QAAQ,EAAE,MAAM,UAAW,CAC3B,EAAE,WAAW,EAAE,GAAG,gCAAiC,UAAY,CAC7D,EAAE,wDAAwD,EAAE,SAAS,CAAE,KAAO,GAAM4wT,EAAc,CAAC,CAAC,CAAE,EAEtG,EAAE,yCAAyC,EAAE,GAAG,QAAU,GAAM,CAC9D,MAAMlzT,EAAS,EAAE,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,EAAE,QAAQ,QAAQ,EACpC,KAAK,iBAAiB,EAAE,YAAY,GAAG,EAC7CA,EAAO,KAAK,gBAAgB,EAAE,YAAY,CAAC,EAC3CA,EAAO,KAAK,cAAc,EAAE,YAAY,CAAC,CAC/C,CAAK,EAED,SAASkzT,EAAc,EAAG,CAExB,MAAMxuN,EADO,EAAE,EAAE,MAAM,EACC,KAAK,iDAAiD,EACxEs/I,EAAM,EAAE,IAAIt/I,EAAa9hF,GAAO,EAAEA,CAAE,EAAE,KAAK,IAAI,CAAC,EAEtDg4D,GACG,IAAI,4BAA6B,CAAE,IAAKopK,CAAG,CAAE,EAC7C,KAAK,IAAM,CACV,EAAE,KAAKt/I,EAAY,CAACl3F,EAAOoV,IAAO,EAAEA,CAAE,EAAE,KAAK,iBAAiB,EAAE,KAAKpV,EAAQ,CAAC,CAAC,EAC/E,OAAO,cAAc,UAAW,sBAAsB,CAChE,CAAS,EACA,MAAOkG,GAAM,CACZ,QAAQ,IAAIA,CAAC,EACb,OAAO,cAAc,QAAS,sBAAsB,CAC9D,CAAS,CACJ,CACL,CAAG,CACH,CAAC,EC/BD,OAAO,oBAAsB,UAAW,CACtC,SAASy/S,GAAuB,CAC9B,MAAMC,EAAkB,EAAE,mDAAmD,EAAE,IAAG,EAElF,EAAE,0BAA0B,EAAE,OAAOA,IAAoB,MAAM,CAChE,CAED,SAASC,GAA0B,CACjC,MAAMC,EAAyB,EAAE,6DAA6D,EAAE,IAAG,EAEnG,EAAE,oCAAoC,EAAE,OAAOA,IAA2B,OAAO,CAClF,CAED,EAAE,2CAA2C,EAAE,GAAG,SAAU,UAAW,CACrEH,GACJ,CAAG,EAED,EAAE,qDAAqD,EAAE,GAAG,SAAU,UAAW,CAC/EE,GACJ,CAAG,EAEDF,IACAE,GACF,ECrBA,MAAeE,IAAA,CAAC,CAAE,MAAA/lT,EAAO,oBAAAgmT,EAAqB,oBAAAC,EAAqB,KAAA3kS,KAAW,CACtE,MAAE,cAAA4kS,EAAe,sBAAAC,CAA0B,EAAA7kS,EAC3CxL,EAAWqwS,GAAyB,GAE1C,OAAID,EAEA3uO,EAAC,UAAO,KAAK,SACL,SAAAzhE,EACA,MAAO,CAAE,MAAO,OAAQ,EACxB,UAAU,kBACV,QAAS,IAAMmwS,EAAoBjmT,CAAK,EAAG,iCAMnDu3E,EAAC,UAAO,KAAK,SACL,SAAAzhE,EACA,MAAO,CAAE,MAAO,OAAQ,EACxB,UAAU,iBACV,QAAS,IAAMkwS,EAAoBhmT,CAAK,EAC7C,SAAAshB,EAAK,KAAO,GAAK,SAAW,uBAIrC,ECzBA8kS,IAAe,CAAC,CAAE,MAAApmT,EAAO,KAAAqmT,EAAM,oBAAAL,EAAqB,oBAAAC,EAAqB,KAAA3kS,KAAW,CAC5E,MAAE,SAAAg2L,CAAa,EAAAh2L,EAErB,GAAIg2L,EAEA,OAAA//H,EAAC,UAAO,KAAK,SACL,MAAO,CAAE,MAAO,OAAQ,EACxB,UAAU,kBACV,QAAS,IAAM0uO,EAAoBjmT,CAAK,EAAG,oBAIhD,CACL,GAAIqmT,GAAQ,EAAU,YAEhB,MAAAC,EAAWhlS,EAAK,KAAO,GAAK,SAAYA,EAAK,YAAc,EAAI,cAAgB,cAGnF,OAAAi2D,EAAC,UAAO,KAAK,SACL,oBAAmBj2D,EAAK,YACxB,MAAO,CAAE,MAAO,OAAQ,EACxB,UAAU,iBACV,QAAS,IAAM0kS,EAAoBhmT,CAAK,EAC7C,SAAAsmT,CAAA,EAGP,CACF,ECzBeC,IAACrwR,GACVA,EAAO,qBACFqhD,EAACwuO,IAAyB,IAAG7vR,CAAO,GAEpCqhD,EAAC6uO,IAA0B,IAAGlwR,CAAO,GCJhDswR,IAAe,CAAC,CACd,MAAAxmT,EACA,KAAAshB,EACA,oBAAA0kS,EACA,oBAAAC,EACA,IAAAz2S,EACA,KAAA62S,EACA,OAAAhkK,EACA,qBAAAokK,CACF,IAAM,CACE,MAAA/6R,EAAS,yCAAyC1rB,CAAK,IACvD0mT,EAA0BrkK,EAAO,oBAAoBriJ,CAAK,sBAAsB,EAGpF,OAAAw2F,GAAC,MAAI,WAAU,0EACb,UAACjf,EAAA,SAAM,KAAK,SAAS,KAAM,GAAG7rD,CAAM,eAAgB,MAAO1rB,CAAM,KAChE,QAAM,MAAK,SAAS,KAAM,GAAG0rB,CAAM,eAAe,EACnD6rD,EAAC,QAAM,MAAK,SAAS,KAAM,GAAG7rD,CAAM,OAAQ,MAAOpK,EAAK,EAAG,GAC3Di2D,EAAC,QAAM,MAAK,SAAS,KAAM,GAAG7rD,CAAM,aAAc,MAAOpK,EAAK,UAAY,EAAM,GAChFi2D,EAAC,QAAM,MAAK,SAAS,KAAM,GAAG7rD,CAAM,mBAAoB,MAAOpK,EAAK,aAAc,GAEjFk1E,GAAA,SAAM,UAAU,gCAAgC,QAAQ,gCAAgC,kBACjFx2F,EAAQ,EAAE,IAEf,CAACymT,GAAwBnlS,EAAK,iBAAkB,OAAK,WAAU,sBAAsB,SAAc,oBACtG,EAEAk1E,GAAC,MAAI,WAAU,cACb,UAAAjf,EAAC,SACC,UAAW5nD,GAAW,eAAgB,WAAY,CAAE,GAAKrO,EAAK,KAAO,GAAI,EACzE,MAAO,CAAE,MAAO,OAAQ,EACxB,SAAS,WACT,gBAAc,OACd,KAAK,OACL,SAAUA,EAAK,SACf,aAAcA,EAAK,kBACnB,KAAM,GAAGoK,CAAM,uBACjB,EAEA6rD,EAAC,OAAI,MAAO,CAAE,MAAO,OAAQ,QAAS,gBAAiB,EAEvDA,EAACgvO,IAAA,CACC,MAAAvmT,EACA,IAAAwP,EACA,KAAA62S,EACA,KAAA/kS,EACA,oBAAA0kS,EACA,oBAAAC,EACA,qBAAAQ,CAAA,CACF,GACF,EAECC,GACCnvO,EAAC,MAAI,WAAU,YACb,SAAAA,EAAC,OAAK,WAAU,aACb,SAAAmvO,EAAwB,KAAK,IAAI,CACpC,GACF,CAEJ,GAEJ,EC9DMC,GAAa,GAEnBxH,IAAe,CAAC,CAAE,gBAAAyH,EAAiB,iBAAAC,EACjB,oBAAAb,EACA,oBAAAC,EACA,OAAA5jK,CAAO,IAAM,CAC7B,KAAM,CAACykK,EAAaC,CAAc,EAAIrxN,WAAS,CAAC,EAE1CsxN,GAA6BJ,GAAmB,CAAI,UAAQ3C,GACzD,CAAEA,EAAc,QACxB,EAEKgD,GAAqCL,GAAmB,CAAI,UAAQ3C,GACjE,CAAEA,EAAc,aACxB,EAEKoC,EAAOW,EAA0B,OACjCx3S,EAAMy3S,EAAkC,OACxCC,EAAuB13S,EAAM62S,EAC7B37S,EAAIi8S,GAAaO,EAEvBv7N,mBAAU,IAAM,CAAMm7N,EAAcp8S,GAAGq8S,EAAe,CAAC,GAAK,CAACr8S,CAAC,CAAC,EAI3D8rF,GAAAlf,GAAA,WAAAC,EAAC,OAAI,UAAU,MACb,SAACif,GAAA,OAAI,UAAU,YACb,UAAAjf,EAAC,SAAM,SAAc,oBACnBqvO,GAAmB,IAAI,IAAI,CAAC3C,EAAejkT,IAC3Cu3E,EAACivO,IAAA,CAEC,MAAAxmT,EACA,KAAMikT,EACN,oBAAA+B,EACA,oBAAAC,EACA,IAAAz2S,EACA,KAAA62S,EACA,OAAAhkK,EACA,qBAAsB4hK,EAAc,sBAR/BjkT,CASP,CACF,GACF,CACF,GAEAu3E,EAAC,MAAI,WAAU,MACb,SAAAA,EAAC,MAAI,WAAU,sBACb,SAAAif,GAAC,MAAI,WAAU,aACb,UAAAjf,EAAC,QAAM,WAAU,gCAAgC,QAAQ,gCAAgC,SAEzF,wBAEAif,GAAC,MAAI,WAAU,cACb,UAAAjf,EAAC,UAAO,UAAU,+BACV,MAAOuvO,EACP,MAAO,CAAE,MAAO,OAAQ,EACxB,SAAW5gT,GAAM6gT,EAAe,SAAS7gT,EAAE,OAAO,KAAK,CAAC,EAC7D,UAAC,GAAG,MAAMygT,EAAU,EAAE,MAAM,EAAE,IAAK/vT,GAAM2gF,EAAC,UAAe,MAAO3gF,EAAE,EAAI,SAAEA,EAAA,GAAlBA,CAAoB,CAAS,EACtF,EAEA2gF,EAAC,OAAI,MAAO,CAAE,MAAO,OAAQ,QAAS,gBAAiB,EAEvDA,EAAC,UAAO,KAAK,SACL,UAAU,kBACV,MAAO,CAAE,MAAO,OAAQ,EACxB,QAAS,IAAMsvO,EAAiBC,CAAW,EAAG,eAEtD,GACF,EACF,EACF,GACF,EAEAvvO,EAAC,MAAI,WAAU,UAAW,EAC5B,GAEJ,EC5EA4vO,IAAe,CAAC,CAAE,OAAA9kK,CAAA,IAEd9qE,EAAC,OAAI,GAAG,0BACN,WAAC,MAAI,WAAU,UAAW,EAC5B,GCHE4mO,IACH5mO,EAAA5Q,GAAA,CAAQ,GAAG,oCAAoC,MAAM,GACpD,SAAA4Q,EAAC,IAAE,yMAKH,CACF,GAGa6vO,IAAA,CAAC,CAAE,kBAAAC,EAAmB,qBAAAC,EAAsB,OAAAjlK,KAAa,CAChE,MAAAklK,EAA0BllK,EAAO,oBAEvC,SACG,MAAI,WAAU,2DACb,SAAC7rD,GAAA,OAAI,UAAU,WACb,UAAAjf,EAAC,SAAM,MAAM,IACN,aAAa,MACb,KAAK,SACL,KAAK,gCAA+B,EAC1Cif,GAAA,SAAM,UAAU,mBAAmB,QAAQ,+BAC1C,UAAAjf,EAAC,SAAM,UAAU,mBACV,KAAK,WACL,MAAM,IACN,SAAWrxE,GAAMohT,EAAqBphT,EAAE,OAAO,OAAO,EACtD,QAASmhT,EACT,KAAK,gCAA+B,EAAE,wBAG7C9vO,EAACrR,GAAA,CACC,UAAW,OACX,UAAU,QACV,QAASi4O,IAET,WAAC,MAAI,WAAU,YAAY,sBAAoB,GAAG,MAAM,GAAE,EAC5D,GACF,EAECoJ,GACChwO,EAAC,MAAI,WAAU,YACb,SAAAA,EAAC,OAAK,WAAU,aACb,SAAAgwO,EAAwB,KAAK,IAAI,CACpC,GACF,EAEJ,EACF,EAEJ,EC7CenpP,IAAA,CAAC,CAAE,WAAA63K,EAAY,KAAA1yN,EAAM,QAAAslJ,EAAS,mBAAA2+I,KAAyB,CACpE,KAAM,CAACH,EAAmBC,CAAoB,EAAI5xN,WAAS,IAAI,EACzD,CAACkxN,EAAiBa,CAAkB,EAAI/xN,WAAS,IAAI,EACrD,CAAC+wN,EAAsBiB,CAAuB,EAAIhyN,WAAS,IAAI,EAC/D,CAACs5H,EAASmjB,CAAU,EAAIz8I,WAAS,EAAI,EACrC,CAAC2sD,EAAQqqC,CAAS,EAAIh3F,EAAA,SAAS,CAAE,GACjCiyN,EAASl9N,WAEfkB,YAAU,IAAM,CACVpoE,EACF6pD,GACG,IAAI,qBAAqB6oK,CAAU,sBAAsB,EACzD,KAAa4rE,GAAA,CACR+E,MAAkB/E,EAAK,KAAK,gBAEXyF,EAAAzF,EAAK,KAAK,iBAAiB,EACxB6F,EAAA7F,EAAK,KAAK,oBAAoB,EACtD1vE,EAAW,EAAK,EAEZy0E,EAAgB,SAAW,IAC7BA,EAAkBA,EAAgB,OAAO,CAAE,GAAI,GAAI,kBAAmB,GAAI,EAC1EA,EAAkBA,EAAgB,OAAO,CAAE,GAAI,GAAI,kBAAmB,GAAI,GAG5Ea,EAAmBb,CAAe,EACnC,GAEHz0E,EAAW,EAAI,EACfzlD,EAAU,CAAE,GACZ+6H,EAAmB,CAAE,GACrBH,EAAqB,IAAI,EAC3B,EACC,CAAC/jS,CAAI,CAAC,EAETooE,YAAU,IAAM,CACd+gG,EAAU,CAAE,IACX,CAAC26H,CAAiB,CAAC,EAEhB,MAAAhkH,EAAa34L,GAAM,CACnB,IAAAk9S,EAAqB,CAAC,GAAGhB,CAAe,EAE5C,QAAShwT,EAAI,EAAGA,EAAI8T,EAAG9T,IACrBgxT,EAAqBA,EAAmB,OAAO,CAAE,GAAI,GAAI,kBAAmB,GAAI,EAGlFH,EAAmBG,CAAkB,GAGjCC,EAAqB7nT,GAAU,CAC7B,MAAA4nT,EAAqB,CAAC,GAAGhB,CAAe,EACxC1rT,EAAK0sT,EAAmB5nT,CAAK,EAAE,GAClB4nT,EAAA5nT,CAAK,EAAE,sBAA2B,GACrDynT,EAAmBG,CAAkB,EAE/Bx6O,GAAA,KAAK,qBAAqB6oK,CAAU,mBAAmB/6O,CAAE,iBAAiB,EAAE,KAAK,IAAM,CACxE0sT,EAAA5nT,CAAK,EAAE,sBAA2B,GAClC4nT,EAAA5nT,CAAK,EAAE4mT,EAAgB5mT,CAAK,EAAE,qBAAuB,gBAAkB,UAAU,EAAI,GACrFynT,EAAA,CAAC,GAAGG,CAAkB,CAAC,EAC3C,GAGGE,EAAqB9nT,GAAU,CAC7B,MAAA4nT,EAAqB,CAAC,GAAGhB,CAAe,EAE3BgB,EAAA5nT,CAAK,EAAE,sBAA2B,GACrDynT,EAAmBG,CAAkB,EAE/B,MAAA1sT,EAAK0sT,EAAmB5nT,CAAK,EAAE,GAE/BotE,GAAA,OAAO,qBAAqB6oK,CAAU,mBAAmB/6O,CAAE,iBAAiB,EAAE,KAAK,IAAM,CAC1E0sT,EAAA5nT,CAAK,EAAE,sBAA2B,GAClC4nT,EAAA5nT,CAAK,EAAE4mT,EAAgB5mT,CAAK,EAAE,qBAAuB,gBAAkB,UAAU,EAAI,GACrFynT,EAAA,CAAC,GAAGG,CAAkB,CAAC,EAC3C,GAGG7rI,EAAgB/7K,GAAU,CAC1B,IAAA4nT,EAAqB,CAAC,GAAGhB,CAAe,EAExCA,EAAgB5mT,CAAK,EAAE,KAAO,IAChC4nT,EAAqBA,EAAmB,OAAO,CAAC9wT,EAAGF,IAAMA,IAAMoJ,CAAK,EACpEynT,EAAmBG,CAAkB,GAEjChB,EAAgB5mT,CAAK,EAAE,qBACzB6nT,EAAkB7nT,CAAK,GAEJ4nT,EAAA5nT,CAAK,EAAE4mT,EAAgB5mT,CAAK,EAAE,qBAAuB,gBAAkB,UAAU,EAAI,GACxGynT,EAAmBG,CAAkB,EAEzC,EAGIG,EAAgB/nT,GAAU,CACxB,MAAA4nT,EAAqB,CAAC,GAAGhB,CAAe,EAE1CA,EAAgB5mT,CAAK,EAAE,qBACzB8nT,EAAkB9nT,CAAK,GAEJ4nT,EAAA5nT,CAAK,EAAE4mT,EAAgB5mT,CAAK,EAAE,qBAAuB,gBAAkB,UAAU,EAAI,GACxGynT,EAAmBG,CAAkB,EACvC,EAGI5+D,EAAgB9iP,GAAM,CAC1BA,EAAE,eAAe,EAEjB,MAAM2mJ,EAAS3mJ,EAAE,cACjB2mJ,EAAO,SAAW,GAElB,MAAMvrI,EAAO,IAAI,SAASqmS,EAAO,OAAO,EAExCv6O,GACG,KAAK,qBAAqB6oK,CAAU,kBAAmB30N,CAAI,EAC3D,KAAK,IAAM,CACVunJ,EAAQ,EAAK,EACb4+I,EAAmB,IAAI,EACJD,GAAA,CACpB,EACA,MAAOhvT,GAAU,CAChBq0J,EAAO,SAAW,GACdr0J,EAAM,SAAS,SAAY,KAAek0L,EAAAl0L,EAAM,SAAS,KAAK,MAAM,EACzE,GAGL,OACG++E,EAAAnZ,GAAA,CAAM,KAAA76C,EAAY,OAAQ,IAAMslJ,EAAQ,EAAK,EAAG,UAAU,yBACzD,SAACryE,GAAA,QAAK,SAAUwyJ,EAAc,IAAK2+D,EACjC,UAACpwO,EAAAnZ,GAAM,OAAN,CAAa,YAAW,GACvB,WAACA,GAAM,MAAN,CAAY,kBAAM,CACrB,KACCA,GAAM,KAAN,CACE,UAAC4wJ,GAEGx4H,GAAAlf,GAAA,YAACmvO,GACAlvO,EAAC6vO,IAAA,CACC,kBAAAC,EACA,qBAAAC,EACA,OAAAjlK,CAAA,CACF,EAGDglK,GACC9vO,EAAC4nO,IAAA,CACC,gBAAAyH,EACA,iBAAkBvjH,EAClB,oBAAqBtnB,EACrB,oBAAqBgsI,EACrB,OAAA1lK,CAAA,CACF,EAGD,CAACglK,GAAsB9vO,EAAA4vO,IAAA,CAAa,OAAA9kK,CAAe,IACtD,CAEJ,GACC,CAAC2sE,GACCx4H,GAAAp4B,GAAM,OAAN,CACC,UAAAmZ,EAACroB,IAAO,QAAS,IAAM25G,EAAQ,EAAK,EAAG,SAAM,aAC5C35G,GAAO,WAAU,kBAAkB,QAAS85L,EAAc,SAAO,aACpE,EAEJ,EACF,EAEJ,ECrKAg/D,IAAe,CAAC,CAAE,WAAA/xE,CAAA,IAAiB,CACjC,KAAM,CAACjnB,EAASmjB,CAAU,EAAIz8I,WAAS,EAAI,EACrC,CAAC8qF,EAAWkf,CAAY,EAAIhqG,WAAS,EAAK,EAC1C,CAACkxN,EAAiBa,CAAkB,EAAI/xN,EAAA,SAAS,CAAE,GACnD,CAAC+wN,EAAsBiB,CAAuB,EAAIhyN,WAAS,EAAK,EAEhEypC,EAAej5H,GAAM,CACzBA,EAAE,eAAe,EACjBw5L,EAAa,EAAI,GAGnB/zG,YAAU,IAAM,CACV60F,IAAc,IAA0BgnI,GAAA,EAC3C,CAAChnI,CAAS,CAAC,EAER,MAAAgnI,EAAqB18N,cAAY,IAAM,CAC3C1d,GACG,IAAI,qBAAqB6oK,CAAU,sBAAsB,EACzD,KAAa4rE,GAAA,CACZ,GAAI,CAAE,gBAAA+E,EAAiB,qBAAAH,GAAyB5E,EAAK,KACrD4F,EAAmBb,CAAe,EAClCc,EAAwBjB,CAAoB,EAC5Ct0E,EAAW,EAAK,EACjB,CACL,EAAG,CAAE,GAELxmJ,YAAU,IAAM,CAAqB67N,GAAE,EAAG,CAAE,GAE5C,MAAMS,EAAc,CAACxB,EACfyB,EAAqBtB,EAAgB,OAAS,EAEpD,OAEIpwN,GAAAlf,GAAA,WAAAC,EAACnZ,IAAA,CACC,WAAA63K,EACA,KAAMz1D,EACN,QAASkf,EACT,mBAAA8nH,CAAA,CACF,EAEC,CAACx4F,GACAx4H,GAAC,MACG,YAAgByxN,GAAA,CAACA,GAAeC,IAE9B1xN,GAAAlf,GAAA,WAAAC,EAAC,MAAG,SAAa,kBAEjBA,EAAC,MACC,SAACA,EAAA,UAAO,UAAU,yBAAyB,QAAS4nD,EAAa,sCAA0B,CAC7F,IACF,EAGDynL,EAAgB,IAAI,CAAC3C,EAAejkT,IACnCw2F,GAAAlf,GAAA,WAAAkf,GAAC,KAAG,mBAAMx2F,EAAQ,EAAE,KAAC,KACpB,KACE,WAAcikT,EAAA,kBAAkB,UAAQA,EAAc,GAAG,MAEzDA,EAAc,eAAiB1sO,EAAC,OAAK,WAAU,sBAAsB,SAAc,oBACtF,GACF,CAAG,GACL,CAEJ,GAEJ,EClEA,OAAO,uBAAyB,UAAW,CACnC,MAAAniE,EAAK,SAAS,eAAe,8BAA8B,EAC7DA,EACOosD,GAAA,SAAQwmP,IAAY,YAAY5yS,EAAG,QAAQ,WAAW,EAAIA,CAAE,EAErE,QAAQ,MAAM,8CAA8C,CAEhE,GCRC,UAAW,CACV,EAAE,QAAQ,EAAE,GAAG,QAAS,kCAAmC,SAASlP,EAAG,CAGrE,GAFAA,EAAE,eAAc,EACZiiT,EAAiB,GACjBC,EAAa,EAAI,MAAO,GAE5BC,EAAS,EAAE,IAAI,EAAG,MAAM,CAC5B,CAAG,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,+BAAgC,SAASniT,EAAG,CAGlE,GAFAA,EAAE,eAAc,EACZiiT,EAAiB,GACjBC,EAAa,EAAI,MAAO,GAE5BC,EAAS,EAAE,IAAI,EAAG,KAAK,CAC3B,CAAG,EAED,SAASF,GAAoB,CAC3B,OAAI,EAAE,oCAAoC,EAAE,OAAS,GAC/C,EAAE,4BAA4B,EAAE,OAAS,GACvC,EAAE,oCAAoC,EAAE,QAAU,GACpD,MAAM,sCAAsC,EACrC,IAKN,EACR,CAED,SAASC,GAAgB,CACvB,OAAI,EAAE,wBAAwB,EAAE,OAAS,GACnC,EAAE,gCAAgC,EAAE,QAAU,GAChD,MAAM,mCAAmC,EAClC,IAIJ,EACR,CAED,SAASC,EAAS51T,EAASyF,EAAQ,CACjC,MAAMu+O,EAAQhkP,EAAQ,QAAQ,MAAM,EAC9Bc,EAAMkjP,EAAM,KAAK,QAAQ,EACzB97O,EAAW,IAAI,SAAS,EAAE87O,CAAK,EAAE,CAAC,CAAC,EACnC6xE,EAAiB,EAAE,eAAgB7xE,CAAK,EAE9C6xE,EAAe,KAAK,WAAY,EAAI,EACpCr4F,GAAgB,KAAI,EAEpB,MAAM0hF,EAAa,IAAI1zD,GAEvB,EAAE,KAAK,CACL,KAAM/lP,EACN,IAAK3E,EACL,KAAMoH,EACN,SAAU,OACV,MAAQ,GACR,YAAa,GACb,YAAa,GACb,QAAS,IAAM,CACbs1N,GAAgB,KAAI,EACpBq4F,EAAe,KAAK,WAAY,EAAK,EACrC,EAAE,aAAa,EAAE,MAAM,MAAM,EAC7BC,GACD,EACD,MAAQzzT,GAAa,CACnBm7N,GAAgB,KAAI,EACpBq4F,EAAe,KAAK,WAAY,EAAK,EACrC3W,EAAW,aAAal7D,CAAK,EAC7Bk7D,EAAW,UAAUl7D,EAAO,YAAa3hP,EAAS,cAAgB,IAAI,MAAM,CAC7E,CACP,CAAK,CACF,CAED,OAAO,sBAAwB,UAAW,CACxC,EAAE,qBAAqB,EAAE,SAAS,CAChC,MAAO,kBACP,KAAM,SAASoR,EAAGy1B,EAAG,CACnB6sR,GACD,CACP,CAAK,CACF,EAED,wBAEA,SAASA,GAAwB,CAC/B,MAAMjH,EAAmB,EAAE,yCAAyC,EAC9D/qE,EAAM,EAAE,IAAI+qE,EAAkB,CAAC7K,EAAQ5/S,IAAM,EAAE4/S,CAAM,EAAE,KAAK,IAAI,CAAC,EAEvE,EAAE,KAAK,CACL,OAAQ,MACR,IAAK,2BACL,KAAM,CAAE,IAAKlgE,CAAK,EAClB,QAAS,SAAS9/O,EAAQ,CACxB,EAAE,UAAU,EAAE,OAAO,MAAM,EAC3B,EAAE,UAAU,EAAE,QAAQ,MAAM,CAC7B,EACD,KAAM,SAASA,EAAQ,CACrB,EAAE,QAAQ,EAAE,OAAO,MAAM,EACzB,EAAE,QAAQ,EAAE,QAAQ,MAAM,CAC3B,CACP,CAAK,CACF,CAED,SAAS6xT,GAAkB,CACzB,MAAMp2S,EAAI,EAAE,uBAAuB,EAC7Bs2S,EAAUt2S,EAAE,QAAQ,WAAW,EAE/B9f,EADO8f,EAAE,KAAK,MAAM,EACR,QAAQ,QAAQ,EAAE,EAC9Bu2S,EAAS,GAAGD,EAAQ,KAAK,KAAK,CAAC,SAASp2T,CAAI,GAElD,EAAE,IAAIq2T,EAAQ,SAASpnS,EAAM,CAC3B,EAAE,QAAQjvB,CAAI,EAAE,EAAE,KAAKivB,CAAI,EAC3B,uBACN,CAAK,CACF,CAED,EAAE,QAAQ,EAAE,MAAM,UAAW,CAC3B,EAAE,WAAW,EAAE,GAAG,yBAA0B,UAAW,CACrD,uBACN,CAAK,CACL,CAAG,CACH,GAAG,KAAK7T,MAAI,EC9HZ,OAAO,mBAAqB,IAAM,CAChC,MAAMgrP,EAAmB,IAAM,CAC7B,MAAM3pP,EAAM,EAAE,gDAAgD,EAAE,IAAI,EACpE,EAAE,2BAA2B,EAAE,OAAOA,IAAQ,GAAG,GAGnD,EAAE,wCAAwC,EAAE,GAAG,SAAU2pP,CAAgB,EAExDA,GACnB,ECPA,MAAMkwD,GAAsB,UAAY,CACtC,SAASC,EAAaC,EAAY,CAChC,MAAMC,EAAWD,GAAc,GAE/B,EAAE,KAAK,EAAE,+BAA+B,EAAG,UAAY,CACrD,EAAE,IAAI,EAAE,SAAS,yBAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,CAAC,CAChF,CAAK,EAED,EAAE,+BAA+B,EAAE,GAAG,QAAS,UAAY,CACzD,EAAE,IAAI,EAAE,SAAS,yBAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,CAAC,EACtEC,GAAUC,GACpB,CAAK,EAED,EAAE,wCAAwC,EAAE,GAAG,QAAS,UAAY,CAClE,IAAIC,EAAgB,EAAE,IAAI,EAAE,IAAG,EAC3B3pH,EAAU,EAAE,IAAI,EAAE,KAAK,SAAS,EAEpC,EAAE,KAAK,EAAE,wCAAwC,EAAG,UAAY,CAC1D,EAAE,IAAI,EAAE,IAAK,IAAK2pH,GAAe,EAAE,IAAI,EAAE,KAAK,UAAW3pH,CAAO,CAC5E,CAAO,EAEGypH,GAAUC,GACpB,CAAK,CACF,CAED,SAASA,GAAW,CAClB,EAAE,KAAK,CACL,KAAM,MACN,IAAK,EAAE,gBAAgB,EAAE,KAAK,QAAQ,EACtC,KAAM,EAAE,gBAAgB,EAAE,UAAW,CAC3C,CAAK,EAAE,KAAK,SAASznS,EAAM,CACrB,EAAE,2BAA2B,EAAE,YAAY,wBAAyB,CAACA,EAAK,UAAU,CAC1F,CAAK,EAAE,KAAK,UAAW,CACjB2nS,IACA,OAAO,cAAc,QAAS,sBAAsB,CAC1D,CAAK,CACF,CAED,SAASA,GAAY,CACnB,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAE5B,EAAE,IAAI,OAAO,SAAS,KAAO,mBAAoB,SAAU3nS,EAAO,CAChE,EAAE,iBAAiB,EAAE,KAAKA,CAAI,EAC9BqnS,GAAmB,aAAa,EAAI,CAC1C,CAAK,CACF,CAED,MAAO,CACL,aAAc,SAAUE,EAAY,CAClC,OAAOD,EAAaC,CAAU,CAC/B,EACD,UAAW,UAAY,CACrB,OAAOI,EAAW,CACnB,CACL,CACA,IAEA,EAAE,QAAQ,EAAE,MAAM,UAAW,CAC3B,MAAM/pL,EAAQ,EAAE,cAAc,EAC9BA,EAAM,GAAG,eAAgB,SAASh5H,EAAG,CAAEgjT,EAAQhjT,EAAG,CAAE,YAAa,EAAM,EAAC,CAAC,EACzEg5H,EAAM,GAAG,sBAAuB,SAASh5H,EAAG,CAAEgjT,EAAQhjT,EAAG,CAAE,YAAa,EAAO,EAAC,CAAC,EAEjF,SAASgjT,EAAQhjT,EAAG9J,EAAU,CAAE,YAAa,EAAI,EAAI,CACnD,MAAM+V,EAAI,EAAEjM,EAAE,MAAM,EACduiT,EAAUt2S,EAAE,QAAQ,WAAW,EAE/B9f,EADO8f,EAAE,KAAK,MAAM,EACR,QAAQ,QAAQ,EAAE,EAC9Bu2S,EAAS,GAAGD,EAAQ,KAAK,KAAK,CAAC,SAASp2T,CAAI,GAE9C+J,EAAQ,cACV,EAAE,6BAA6B,EAAE,QACjC,EAAE,QAAQ/J,CAAI,EAAE,EAAE,OAAO,EAAE,GAG7B,EAAE,IAAIq2T,EAAQ,SAASpnS,EAAM,CAC3B,EAAE,QAAQjvB,CAAI,EAAE,EAAE,KAAKivB,CAAI,EAC3BmnS,EAAQ,QAAQ,gBAAgBp2T,CAAI,EAAE,CAC5C,CAAK,CACF,CAED,EAAE,uBAAuB,EAAE,QAAQ,cAAc,EAEjD,EAAE,WAAW,EAAE,GAAG,0BAA2B,UAAW,CACtDs2T,GAAmB,UAAS,CAChC,CAAG,CACH,CAAC,ECrFD,EAAE,QAAQ,EAAE,GAAG,QAAS,+BAAiCziT,GAAM,CAC7DA,EAAE,eAAgB,EAElB,MAAM2mJ,EAAS,EAAE3mJ,EAAE,MAAM,EACzB2mJ,EAAO,KAAK,WAAY,EAAI,EAE5Bz/E,GACG,MAAMy/E,EAAO,KAAK,KAAK,CAAC,EACxB,KAAK/3J,GAAY,CAChB,OAAO,cAAc,UAAWA,EAAS,KAAK,OAAO,EACrD+3J,EAAO,KAAK,WAAY,EAAK,CACnC,CAAK,EACA,MAAOr0J,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,EACvDq0J,EAAO,KAAK,WAAY,EAAK,CACnC,CAAK,CACL,CAAC,EChBD,EAAE,QAAQ,EAAE,GAAG,QAAS,kCAAoC3mJ,GAAM,CAChEA,EAAE,eAAc,EAEhB,MAAM2mJ,EAAS,EAAE3mJ,EAAE,MAAM,EACzB2mJ,EAAO,KAAK,WAAY,EAAI,EAE5Bz/E,GACG,MAAMy/E,EAAO,KAAK,KAAK,CAAC,EACxB,KAAK/3J,GAAY,CAChB,OAAO,cAAc,UAAWA,EAAS,KAAK,OAAO,EACrD+3J,EAAO,KAAK,WAAY,EAAK,CACnC,CAAK,EACA,MAAOr0J,GAAU,CAChB,OAAO,cAAc,QAAS,sBAAsB,EACpDq0J,EAAO,KAAK,WAAY,EAAK,CACnC,CAAK,CACL,CAAC,EChBD,MAAMs8J,IAAkC32T,GAAW,CACjD,MAAMgD,EAAWhD,EAAO,KAAK,UAAU,EAEjC0jC,EADO,EAAE,6BAA6B,EACxB,kBAEpBk3C,GACG,IAAI,iCAAiC53E,CAAQ,WAAY,CAAE,OAAQ0gC,EAAQ,EAC3E,KAAKphC,GAAY,CAChB,MAAMkmE,EAAQ,EAAE,8BAA8B,EAC9CA,EAAM,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOlmE,EAAS,IAAI,EACzDkmE,EAAM,MAAM,MAAM,CACxB,CAAK,EACA,MAAOxiE,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAC7D,CAAK,CACL,EAEA,EAAE,QAAQ,EAAE,GAAG,QAAS,uBAAwB,SAAS0N,EAAG,CAC1D,EAAE,8BAA8B,EAAE,MAAM,MAAM,CAChD,CAAC,EAED,MAAMkjT,IAA2BljT,GAAM,CAErC,MAAMunE,EADiB,SAAS,cAAc,mBAAmB,EAClC,QAAQ,SACjC2tK,EAAsB,EAAE,4CAA4C,EAAE,KAAK,2BAA2B,EAE5GhuK,GACG,IAAI,gCAAiC,CAAE,OAAQ,CAC5C,SAAUK,EACV,oBAAqBvnE,EAAE,KAAK,sBAAsB,EAAE,IAAK,EACzD,qBAAsBk1O,CAC9B,CAAK,CAAC,EACD,KAAKtmP,GAAY,CAChB,eAAe,WAAW,sBAAsB,EAEhD,MAAMkmE,EAAQ,EAAE,4BAA4B,EAC5CA,EAAM,KAAK,gBAAgB,EAAE,MAAK,EAAG,OAAOlmE,EAAS,IAAI,EAEzDkmE,EAAM,KAAK,0CAA0C,EAAE,KAAK90D,EAAE,KAAK,uBAAuB,EAAE,KAAK,EACjG80D,EAAM,KAAK,uBAAuB,EAAE,KAAK90D,EAAE,KAAK,uBAAuB,EAAE,KAAK,EAC9E80D,EAAM,KAAK,6CAA6C,EAAE,IAAI90D,EAAE,KAAK,sBAAsB,EAAE,KAAK,EAClG80D,EAAM,MAAM,MAAM,EAElB,MAAMquP,EAAU,EAAE,kCAAkC,EACpDA,EAAQ,IAAI57O,CAAO,EACnB47O,EAAQ,QAAQ,QAAQ,CAC9B,CAAK,EACA,MAAO7wT,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAC7D,CAAK,CACL,EAEM8wT,IAAkB,IAAM,CAC5B,MAAMC,EAAW,KAAK,MAAM,eAAe,QAAQ,sBAAsB,CAAC,GAAK,GACzEv0S,EAAO,OAAO,KAAKu0S,CAAO,EAC1BnzT,EAAS,OAAO,OAAOmzT,CAAO,EAC9BC,EAAgB,EAAE,yCAAyC,EAAE,OAAS,EACtExpT,EAAQgV,EAAK,QAAQ,YAAY,EACnChV,EAAQ,IACV5J,EAAO,OAAO4J,EAAO,CAAC,EAExB,MAAMypT,EAAiBrzT,EAAO,IAAKslC,GAAMA,EAAE,OAAO,EAClD,OAAQ+tR,EAAe,QAAUD,GAAkBC,EAAe,QAAQ,EAAK,GAAK,EACtF,EAEMC,IAA4B,IAAM,CACtCt8O,GACG,IAAI,0CAA2C,CAAE,OAAQ,CACtD,SAAU,EAAE,kCAAkC,EAAE,IAAK,EACrD,oBAAqB,EAAE,6CAA6C,EAAE,IAAK,CACnF,CAAO,CAAC,EACH,KAAKt4E,GAAY,CAChB,MAAM60T,GAAgB,KAAK,MAAM,eAAe,QAAQ,sBAAsB,CAAC,GAAK,IAAI,EAAE,kCAAkC,EAAE,IAAG,CAAE,EAC7HtxT,EAAOsxT,EAAeA,EAAa,KAAU70T,EAAS,KAAK,MAAQ,GACnE+wR,EAAU8jC,EAAeA,EAAa,QAAa70T,EAAS,KAAK,QAEvE,EAAE,4BAA4B,EAAE,KAAK,8BAA8B,EAAE,IAAIuD,CAAI,EAC7E,EAAE,4BAA4B,EAAE,KAAK,iCAAiC,EAAE,KAAK,UAAWwtR,CAAO,EAC/F,SAAS,cAAc,sCAAsC,EAAE,OAAS,CAACA,EAEzE,MAAM16D,EAAYw+F,EAAeA,EAAa,WAAgB70T,EAAS,KAAK,WACtEs2N,EAAUu+F,EAAeA,EAAa,SAAc70T,EAAS,KAAK,SAExE,GAAIq2N,GAAaC,EAAS,CACxB,MAAMrsH,EAAS,QACT6qN,EAAgB,CACpB,QAAS,QACT,IAAK,UACL,MAAO,QACP,KAAM,UACN,SAAU,eACX,EAEK9nM,EAAY,IAAI,KAAKqpG,CAAS,EAAE,mBAAmBpsH,EAAQ6qN,CAAa,EACxE7nM,EAAU,IAAI,KAAKqpG,CAAO,EAAE,mBAAmBrsH,EAAQ6qN,CAAa,EACpEzuD,EAAY,IAAI,KAAKhwC,CAAS,EAAE,mBAAmBpsH,EAAQ,CAAE,SAAU,eAAiB,GAAE,MAAM,EAAG,CAAC,EACpGq8J,EAAU,IAAI,KAAKhwC,CAAO,EAAE,mBAAmBrsH,EAAQ,CAAE,SAAU,eAAiB,GAAE,MAAM,EAAG,CAAC,EAEhG/jC,EAAQ,EAAE,4BAA4B,EAC5CA,EAAM,KAAK,oCAAoC,EAAE,WAAW,UAAW8mD,CAAS,EAChF9mD,EAAM,KAAK,kCAAkC,EAAE,WAAW,UAAW+mD,CAAO,EAC5E/mD,EAAM,KAAK,oCAAoC,EAAE,IAAImgM,CAAS,EAC9DngM,EAAM,KAAK,kCAAkC,EAAE,IAAIogM,CAAO,EAC1DpgM,EAAM,KAAK,yCAAyC,EAAE,KAAK,UAAW6qN,CAAO,EAE7E,MAAMgkC,EAAkB,SAAS,cAAc,oBAAoB,EAC7DC,EAAoB,SAAS,cAAc,yCAAyC,EAC1FD,EAAgB,OAAS,GACzBC,EAAkB,QAAU,EAC7B,CAEG,EAAE,kCAAkC,EAAE,IAAK,GAAK,cAAiBjkC,GAAW,IAC9E,EAAE,4BAA4B,EAAE,KAAK,iCAAiC,EAAE,KAAK,UAAWyjC,KAAiB,CAEjH,CAAK,EACA,MAAO9wT,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAC7D,CAAK,CACL,EAEMuxT,GAA2B,IAAM,CACrC,MAAMh3T,EAAQ,KAAK,MAAM,eAAe,QAAQ,sBAAsB,GAAK,IAAI,EAC/EA,EAAM,EAAE,kCAAkC,EAAE,IAAK,GAAI,CACnD,oBAAqB,EAAE,6CAA6C,EAAE,IAAK,EAC3E,QAAS,EAAE,iCAAiC,EAAE,GAAG,UAAU,EAC3D,KAAM,EAAE,8BAA8B,EAAE,IAAK,EAC7C,WAAY,EAAE,oCAAoC,EAAE,IAAK,EACzD,SAAU,EAAE,kCAAkC,EAAE,IAAK,EACrD,WAAY,EAAE,oCAAoC,EAAE,IAAK,EACzD,SAAU,EAAE,kCAAkC,EAAE,IAAK,EACrD,iBAAkB,EAAE,yCAAyC,EAAE,KAAK,SAAS,CAC9E,EAED,eAAe,QAAQ,uBAAwB,KAAK,UAAUA,CAAK,CAAC,CACtE,EAEMi3T,GAAgB,IAAM,CAC1B,MAAMlsE,EAAiB,SAAS,cAAc,mBAAmB,EAEjE,GAAIA,EAAgB,CAClB,MAAMrwK,EAAUqwK,EAAe,QAAQ,SACjC1C,EAAsB,EAAE,4CAA4C,EAAE,KAAK,2BAA2B,EAE5GhuK,GACG,IAAI,6CAA8C,CAAC,OAAQ,CAAC,SAAUK,EAAS,qBAAsB2tK,CAAmB,CAAC,CAAC,EAC1H,KAAKtmP,GAAY,CAChB,EAAE,8DAA8D,EAAE,KAAK,UAAWA,EAAS,KAAK,4BAA8B,EAAK,EACnI,EAAE,uDAAuD,EAAE,KAAK,UAAWA,EAAS,KAAK,qBAAuB,EAAK,EACrH,EAAE,wDAAwD,EAAE,KAAK,UAAWA,EAAS,KAAK,sBAAwB,EAAK,EACvH,EAAE,yDAAyD,EAAE,KAAK,UAAWA,EAAS,KAAK,uBAAyB,EAAK,EACzH,EAAE,0EAA0E,EAAE,KAAK,UAAWA,EAAS,KAAK,wCAA0C,EAAK,EAC3J,EAAE,mEAAmE,EAAE,KAAK,UAAWA,EAAS,KAAK,iCAAmC,EAAK,EAC7I,EAAE,kEAAkE,EAAE,KAAK,UAAWA,EAAS,KAAK,gCAAkC,EAAK,EAC3I,EAAE,2EAA2E,EAAE,KAAK,UAAWA,EAAS,KAAK,yCAA2C,EAAK,EAE7J,EAAE,mCAAmC,EAAE,KAAK,UAAWA,EAAS,KAAK,mBAAqB,EAAK,CACvG,CAAO,EACA,MAAO0D,GAAU,CAChB,OAAO,cAAc,QAASA,EAAM,SAAS,KAAK,KAAK,CAC/D,CAAO,CACJ,CACH,EAEMyxT,IAAyB,IAAM,CACnCF,GAA0B,EAE1B,MAAMG,EAAwB,KAAK,MAAM,eAAe,QAAQ,sBAAsB,GAAK,EAAE,EAE7F,OAAO,KAAKA,CAAqB,EAAE,QAAQxlT,GAAO,CAC5CwlT,EAAsBxlT,CAAG,EAAE,OAC7BwlT,EAAsBxlT,CAAG,EAAE,KAAOwlT,EAAsBxlT,CAAG,EAAE,KAAK,QAAQ,MAAO;AAAA,CAAM,EAE7F,CAAG,EAED0oE,GACG,MAAM,gCAAiC,CAAE,wBAAyB88O,CAAqB,CAAE,EACzF,KAAKp1T,GAAY,CAChB,eAAe,WAAW,sBAAsB,EAChD,EAAE,4BAA4B,EAAE,MAAM,MAAM,EAC5Ck1T,GAAe,CACrB,CAAK,EACA,MAAOxxT,GAAU,CAChB,GAAIA,EAAM,SAAS,KAAK,MAAM,KAAM,CAClC,MAAM2xT,EAAQ,SAAS,cAAc,aAAa,EAC5CC,EAAS,SAAS,cAAc,8BAA8B,EACpED,EAAM,UAAY3xT,EAAM,SAAS,KAAK,MAAM,KAAK,KAAK;AAAA,CAAM,EAC5D4xT,EAAO,UAAU,IAAI,aAAa,CAC1C,MACQ,OAAO,cAAc,QAAS,OAAO,OAAO5xT,EAAM,SAAS,KAAK,KAAK,EAAE,KAAI,EAAG,KAAK;AAAA,CAAM,CAAC,CAElG,CAAK,CACL,EAEA,EAAE,QAAQ,EAAE,GAAG,QAAS,4ZAQsC,SAAS0N,EAAG,CACxEA,EAAE,eAAgB,EAClBkjT,IAAwB,EAAE,IAAI,CAAC,CACjC,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,0BAA2B,SAASljT,EAAG,CAC7DA,EAAE,eAAc,EAChBijT,IAA+B,EAAEjjT,EAAE,MAAM,CAAC,CAC5C,CAAC,EAGD,EAAE,QAAQ,EAAE,GAAG,SAAU,mCAAoC,SAASA,EAAG,CACvEA,EAAE,eAAgB,EAClBwjT,IAA2B,CAC7B,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,SAAU,qPAAsP,SAASxjT,EAAG,CACzRA,EAAE,eAAgB,EAClB6jT,GAA0B,CAC5B,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,uBAAwB,SAAS7jT,EAAG,CAC1DA,EAAE,eAAgB,EAClB+jT,IAAwB,CAC1B,CAAC,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,6BAA8B,SAAS/jT,EAAG,CAChEA,EAAE,eAAgB,EAClB,MAAMunE,EAAU,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EACnD,OAAO,WAAWA,CAAO,CAC3B,CAAC,EAEe,EAAE,qCAAqC,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAEpF,EAAE,QAAQ,EAAE,GAAG,SAAU,kCAAoC76E,GAAU,CACrE,SAAS,cAAc,sCAAsC,EAAE,OAAS,CAACA,EAAM,OAAO,OACxF,CAAC,EAGD,SAAS,cAAc,mBAAmB,EAE1C,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,MAAMkrP,EAAiB,SAAS,cAAc,mBAAmB,EACjEA,EAAe,iBAAiB,mBAAqBx8N,GAAS,CAC5Dw8N,EAAe,QAAQ,SAAWx8N,EAAK,OAAO,QAC9C0oS,IACJ,CAAG,CACH,CAAC,EAED,OAAO,WAAcv8O,GAAY,CAC/B,MAAMqwK,EAAiB,SAAS,cAAc,mBAAmB,EAEjE,GAAIA,EAAgB,CAClB,MAAMusE,EAAkB,IAAI,YAAY,mBAAoB,CAC1D,OAAQ,CAAE,QAAS58O,CAAS,CAClC,CAAK,EAEDqwK,EAAe,cAAcusE,CAAe,CAC7C,CACH,ECpQA,OAAO,sBAAwB,UAAW,CACxC,SAAS9mS,EAAKhwB,EAAK,CACjB,MAAMynE,EAAQ,EAAE,wBAAwB,EAExCoS,GAAM,IAAI75E,CAAG,EAAE,KAAMuB,GAAa,CAChCkmE,EAAM,KAAK,gBAAgB,EAAE,KAAKlmE,EAAS,IAAI,EAC/CkmE,EAAM,MAAM,MAAM,EAElB,EAAE,oBAAoB,EAAE,WAAW,CAAE,UAAW,EAAG,OAAQ,YAAY,CAAE,EAEzEA,EAAM,KAAK,sBAAsB,EAAE,GAAG,QAAU90D,GAAM,CACpDA,EAAE,eAAgB,EAElB,MAAMjU,EAAO+oE,EAAM,KAAK,MAAM,EACxBouC,EAAO,EAAE,oBAAoB,EAAE,WAAW,kBAAkB,EAC5Dr2G,EAAQ,EAAE,uBAAuB,EAAE,GAAG,UAAU,EAAI,KAAOq2G,EAEjE,EAAE,4BAA4B,EAAE,IAAIr2G,CAAK,EAEzC,EAAE,KAAK,CACL,KAAM,MACN,IAAKd,EAAK,KAAK,QAAQ,EACvB,MAAO,GACP,KAAMA,EAAK,UAAW,EACtB,QAAS,IAAM,CACb,EAAE,MAAM,EAAE,YAAY,YAAY,EAClC,EAAE,wBAAwB,EAAE,MAAM,MAAM,EACxC,OAAO,aAAa,EAAE,iCAAiC,EAAG,GAAM,EAAI,EACpE,OAAO,kBAAiB,CACzB,EACD,MAAO,IAAM,OAAO,cAAc,QAAS,sBAAsB,CAC3E,CAAS,CACT,CAAO,CACP,CAAK,CACF,CAED,MAAO,CAAE,KAAMsxB,CAAM,CACvB,EAEA,OAAO,iBAAmB,sBAAuB,ECzCjD,OAAO,mBAAqB,UAAW,CACrC,EAAE,sBAAsB,EAAE,GAAG,QAAS,SAASrd,EAAG,CAChDA,EAAE,eAAc,EAChBokT,EAAK,cAAc,CACvB,CAAG,EAED,EAAE,sBAAsB,EAAE,GAAG,QAAS,SAASpkT,EAAG,CAChDA,EAAE,eAAc,EAChBokT,EAAK,cAAc,CACvB,CAAG,EAED,EAAE,sBAAsB,EAAE,GAAG,QAAS,SAASpkT,EAAG,CAChDA,EAAE,eAAc,EAChBokT,EAAK,cAAc,CACvB,CAAG,EAED,EAAE,sBAAsB,EAAE,GAAG,SAAU,SAASpkT,EAAG,CACjDA,EAAE,eAAc,EAChBqkT,GACJ,CAAG,EAED,SAASA,GAAqB,CAC5B,MAAMz0S,EAAW,EAAE,wCAAwC,EAAE,SAAW,EACxE,EAAE,gBAAgB,EAAE,KAAK,WAAYA,CAAQ,CAC9C,CAED,SAASw0S,EAAKE,EAAY,CACxB,EAAE,cAAc,EAAE,IAAIA,CAAU,EAChC,EAAE,cAAc,EAAE,QAAQ,MAAM,EAAE,OAAM,CACzC,CAED,EAAE,qBAAqB,EAAE,GAAG,eAAgB,SAAS1zT,EAAGwqB,EAAM,CAC5D,EAAE,iBAAiB,EAAE,KAAKA,CAAI,CAClC,CAAG,EAED,EAAE,sBAAsB,EAAE,GAAG,QAAS,UAAW,CAC/C,EAAE,sBAAsB,EAAE,KAAK,UAAW,EAAE,sBAAsB,EAAE,CAAC,EAAE,OAAO,EAC9EipS,GACJ,CAAG,CACH,ECvCA,OAAO,yBAA2B,IAAM,CACtC,EAAE,aAAa,EAAE,WAAW,CAAE,OAAQ,eAAgB,UAAW,GAAM,CACzE,ECFA,OAAO,wBAA0B,IAAM,CACrC,MAAME,EAAoB,EAAE,kBAAkB,EAExCC,EAAyB,CAC7B,EAAK,EAAE,0CAA0C,EAAE,QAAS,EAC5D,EAAK,EAAE,2CAA2C,EAAE,QAAS,CACjE,EACQC,EAAoBD,EAAuB,CAAG,EAAE,OAAOA,EAAuB,CAAG,CAAC,EAElFE,EAAW,IAAM,CACrB,MAAMC,EAAY,IAAI,UAChBlwT,EAAWkwT,EAAU,oBAAoB,+BAA+B,EAE1ElwT,GAAY,MAAaA,GAAY,KAEvCgwT,EAAkB,QAASjwT,GAAU,CACnC,MAAMowT,EAAY,GAAGpwT,EAAM,IAAI,IAAIA,EAAM,KAAK,GAC1CC,EAAS,SAASmwT,CAAS,EAC7BC,EAAgB,CAACrwT,CAAK,EAAG,EAAI,EAE7BqwT,EAAgB,CAACrwT,CAAK,EAAG,EAAK,CAExC,CAAO,EAEqB,EAAE,iEAAiE,EAAE,IAAG,GAEzE,IACnBqwT,EAAgBJ,EAAmB,EAAI,EAEvCI,EAAgBJ,EAAmB,EAAK,EAI5CE,EAAU,kBAAkB,+BAA+B,CAC/D,EAEQG,EAAmC,IAAM,CAC7C,MAAMl8S,EAAM,EAAE,iEAAiE,EAAE,IAAG,EACpF,SAAE,8BAA8B,EAAE,OAAOA,GAAO,GAAG,EAE5CA,CACX,EAEQm8S,EAA4B,IAAM,CACtC,MAAMn8S,EAAMk8S,IACZE,IAEIp8S,GAAO,IACTi8S,EAAgBJ,EAAmB,EAAI,EAEvCI,EAAgBJ,EAAmB,EAAK,CAE9C,EAEQQ,EAAwC,IAAM,CAElD,MAAMC,EADa,EAAE,sEAAsE,EACvD,QAAS,EAAC,IAAKrhH,GAAaA,EAAS,KAAK,EAE9E,GAAIqhH,EAAiB,QAAU,EAC7BL,EAAgBJ,EAAmB,EAAI,UAC9BS,EAAiB,QAAU,EAAG,CACvC,MAAMC,EAAyBX,EAAuBU,EAAiB,CAAC,CAAC,EACzEL,EAAgBJ,EAAmB,EAAK,EACxCI,EAAgBM,EAAwB,EAAI,CAClD,MACMN,EAAgBJ,EAAmB,EAAK,CAE3C,EAEKI,EAAkB,CAACp/F,EAAgB54N,IAAU,CACjD44N,EAAe,QAASjxN,GAAU,CAChC,MAAMu7O,EAAav7O,EAAM,QAAQ,wBAC3B0lP,EAAoB,EAAE,kCAAoCnK,CAAU,EACpEq1E,EAAgB,SAAS,cAAc,2BAA2Br1E,CAAU,IAAI,EACtFv7O,EAAM,QAAU3H,EAChB,MAAMw4T,EAAqBnrE,EAAkB,CAAC,EAAE,iBAAiB,eAAe,EAAE,OAElFA,EAAkB,CAAC,EAAE,OAASmrE,GAAsB,EACpDD,EAAc,QAAUC,EAAqB,CACnD,CAAK,CACF,EAEKC,EAAkB,IAAM,CAC5Bf,EAAkB,WAAW,CAC3B,OAAQ,eACR,UAAW,GACX,UAAW,MACX,UAAW,CACjB,CAAK,CACF,EAEKgB,EAAgC74T,GAAU,CAC9C,MAAM84T,EAAa,KAAK,MAAM94T,EAAM,OAAO,OAAO,EAE5C+4T,EAA4B,kCADf/4T,EAAM,OAAO,QAAQ,WAElCwtP,EAAoB,EAAEurE,CAAyB,EAOrD,GANwB,EAAEA,EAA4B,QAAa,EACpD,KAAK,CAAC70T,EAAG+T,IAAM,CAAEA,EAAE,QAAU6gT,EAAY,EACxDtrE,EAAkB,OAAOsrE,CAAU,EAEN,MAAM,KAAK,EAAE,iEAAiE,CAAC,EAAE,QAAU,EAE9F,CACxB,MAAME,EAAkB,EAAE,6CAA6C,EACvEA,EAAgB,CAAC,EAAE,QAAU,GAC7B,EAAE,8BAA8B,EAAE,OAAO,EAAI,CAC9C,CACF,EAEKV,EAAgC,IAAM,CACvB,MAAM,KAAK,EAAE,sEAAsE,CAAC,EAC5F,QAASnhH,GAAaA,EAAS,QAAU,EAAK,CAC7D,EAEQ8hH,EAAwBj5T,GAAU,CACtC,MAAMqjP,EAAarjP,EAAM,OAAO,QAAQ,wBAClCk5T,EAAyB,SAAS,cAAc,2CAA2C71E,CAAU,EAAE,EACvG81E,EAAsB,SAAS,iBAAiB,0CAA0C91E,CAAU,IAAI,EACxG+1E,EAAkC,MAAM,KAAKD,CAAmB,EAAE,OAAQE,GAAOA,EAAG,OAAO,EACjGH,EAAuB,QAAUE,GAAmC,CACxE,EAEE,EAAE,yDAAyD,EAAE,GAAG,QAASf,CAAyB,EAClG,EAAE,8DAA8D,EAAE,GAAG,QAASE,CAAqC,EACnH,EAAE,+EAA+E,EAAE,GAAG,QAASM,CAA4B,EAC3H,EAAE,+DAA+D,EAAE,GAAG,QAASI,CAAoB,EAEnGjB,IACAI,IACAQ,GACF,EClIA,IAAAU,IAAA,KAAe,CACb,aAAc,CAAG,CAEjB,OAAQ,CACF,EAAE,wBAAwB,EAAE,OAAS,GACvC,EAAE,2BAA2B,EAAE,OAAO,IAAM,CAC1C,EAAE,WAAW,EAAE,YAAY,GAAG,CACtC,CAAO,EAGH,KAAK,yBAAwB,EAC7B,KAAK,wBAAuB,EAC5B,KAAK,0BAAyB,EAE1B,EAAE,wBAAwB,EAAE,OAAS,GACvC,EAAE,kBAAkB,EAAE,WAAW,UAAW,IAAI,IAAM,CAEzD,CAED,0BAA2B,CACzB,EAAE,QAAQ,EAAE,GAAG,SAAU,iCAAmCt5T,GAAU,CACpE,MAAM4uQ,EAAU,EAAE5uQ,EAAM,aAAa,EAErC,EAAE,KAAK,CACL,IAAK4uQ,EAAQ,KAAK,KAAK,EACvB,KAAM,CACJ,qBAAsBA,EAAQ,IAAK,EACnC,YAAaA,EAAQ,KAAK,aAAa,CACxC,CACT,CAAO,CACP,CAAK,CACF,CAED,yBAA0B,CACxB,EAAE,QAAQ,EAAE,GAAG,SAAU,gCAAkC5uQ,GAAU,CACnE,MAAM4uQ,EAAU,EAAE5uQ,EAAM,aAAa,EAOrC,EAAE,+BAA+B,EAAE,IAAI4uQ,EAAQ,GAAG,UAAU,CAAC,EAEzD,EAAE,wBAAwB,EAAE,IAAG,IAAO,IACxC,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAEjC,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAGpC,KAAK,UAAS,CACpB,CAAK,CACF,CAED,2BAA4B,CAC1B,EAAE,QAAQ,EAAE,GAAG,SAAU,6BAA8B,IAAM,CAC3D,KAAK,UAAS,CACpB,CAAK,CACF,CAED,WAAY,CACV,MAAM6lD,EAAoB,EAAE,+BAA+B,EAAE,IAAG,EAChE,IAAI8E,EAAkB,EAAE,4BAA4B,EAAE,IAAG,EAErD9E,GAAqB8E,IAAoB,SAC3CA,EAAkB,GAGpB,EAAE,KAAK,CACL,IAAK,EAAE,+BAA+B,EAAE,KAAK,KAAK,EAClD,KAAM,CACJ,sBAAuB9E,EACvB,iBAAkB8E,EAClB,aAAc,EAAE,wBAAwB,EAAE,IAAK,CAChD,CACP,CAAK,CACF,CACH,EC7EA,MAAMC,GAAmB,CACvB,aAAc,CAAG,CAEjB,OAAQ,CACN,KAAK,SAAQ,CACd,CAED,UAAW,CACT,EAAE,uCAAuC,EAAE,GAAG,SAAWx5T,GAAU,CACjE,MAAM4uQ,EAAU,EAAE5uQ,EAAM,aAAa,EAK/By5T,EAAa7qD,EAAQ,MACrBjuQ,EAAMiuQ,EAAQ,KAAK,WAAW,EAEpC,OAAO,SAAW,GAAIjuQ,CAAG,uBAAyB84T,CAAU,EAClE,CAAK,CACF,CACH,CCpBA,MAAMC,GAAS,CACb,aAAc,CAAG,CAEjB,OAAQ,CACF,EAAE,4CAA4C,EAAE,OAAS,GAI7D,EAAE,wBAAwB,EAAE,MAAO15T,GAAU,KAAK,aAAaA,CAAK,CAAC,CACtE,CAED,aAAaA,EAAO,CAClB,MAAM25T,EAAe,EAAE,yBAAyB,EAC1C/qD,EAAU,EAAE5uQ,EAAM,aAAa,EAErC,GAAI25T,EAAa,OAAS,EACxB,OAGF,MAAMjrS,EAAO,GACPA,EAAK,aAAekgP,EAAQ,KAAK,IAAI,EACrClgP,EAAK,GAAKkgP,EAAQ,MAClBlgP,EAAK,QAAUkgP,EAAQ,KAAK,SAAS,EAE3C,EAAE,KAAK,CACL,KAAM,OACN,IAAK+qD,EAAa,KAAK,QAAQ,EAC/B,KAAMjrS,EACN,SAAU,OAEV,QAAUA,GAAS,CACjBkgP,EAAQ,KAAK,UAAWlgP,EAAK,OAAO,CACrC,EAED,MAAO,IAAM,CAAG,CACtB,CAAK,CACF,CACH,CCrCA,MAAMkrS,GAAS,CACb,aAAc,CAAG,CAEjB,OAAQ,CACN,MAAMC,EAAgB,WAChB,CAACC,EAAeC,CAAc,EAAI,CAAC,mBAAoB,mBAAmB,EAC1E,CAACC,EAAcC,CAAa,EAAI,CAAC,kBAAmB,kBAAkB,EAE5E,EAAE,QAAQ,EAAE,GAAG,QAASF,EAAiB/5T,GAAU,CACjD,MAAMJ,EAAS,EAAEI,EAAM,MAAM,EAC7B,EAAEA,EAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,SAChCJ,EAAO,QAAQ,IAAI,EAAE,KAAKq6T,CAAa,EAAE,KAAK,WAAY,CAACr6T,EAAO,GAAG,UAAU,CAAC,CACtF,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAASk6T,EAAgB95T,GAAU,CAChD,MAAM4uQ,EAAU,EAAE5uQ,EAAM,MAAM,EACxBizR,EAAUrkB,EAAQ,GAAG,UAAU,EAC/BsrD,EAAOtrD,EAAQ,QAAQ,IAAI,EAEjC,EAAE5uQ,EAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,SAEhCk6T,EAAK,KAAKH,CAAc,EAAE,KAAK,WAAY,CAAC9mC,CAAO,EAE/CA,GACFinC,EAAK,SAASL,CAAa,EAC3BK,EAAK,KAAKF,CAAY,EAAE,KAAK,WAAY,EAAK,EAE1CE,EAAK,KAAKJ,CAAa,EAAE,QAAQ,KAAK,SAAS,GACjDI,EAAK,KAAKD,CAAa,EAAE,KAAK,WAAY,CAAChnC,CAAO,IAGpDinC,EAAK,YAAY,UAAU,EAC3BA,EAAK,KAAKD,CAAa,EAAE,KAAK,WAAY,EAAI,EAC9CC,EAAK,KAAKF,CAAY,EAAE,KAAK,WAAY,EAAI,EAErD,CAAK,CACF,CACH,CCrCA,MAAMG,GAAK,CACT,aAAc,CACZ,KAAK,UAAY,MAClB,CAED,OAAQ,CACN,KAAK,QAAO,EACZ,KAAK,SAAQ,EACb,KAAK,WAAU,CAChB,CAED,SAAU,CACR,EAAE,QAAQ,EAAE,GAAG,QAAS,gBAAiB,IAAM,CAC7C,EAAE,YAAY,EAAE,YAAY,KAAK,SAAS,EAC1C,EAAE,iBAAiB,EAAE,KAAK,WAAY,EAAE,YAAY,EAAE,SAAS,KAAK,SAAS,CAAC,CACpF,CAAK,CACF,CAED,UAAW,CACT,EAAE,QAAQ,EAAE,GAAG,SAAU,wCAAyC,IAAM,CAEtE,MAAMC,EADuB,EAAE,2CAA2C,EAAE,IAAG,IACxB,OAEvD,EAAE,0BAA0B,EAAE,KAAK,WAAYA,CAAoB,EACnE,EAAE,eAAe,EAAE,KAAK,WAAYA,CAAoB,CAC9D,CAAK,CACF,CAED,YAAa,CACX,EAAE,QAAQ,EAAE,GAAG,WAAY,YAAcp6T,GAAU,CAEjD,MAAM6jP,EADU,EAAE7jP,EAAM,aAAa,EACf,QAAQ,MAAM,EAEpC,EAAE,KAAK,CACL,IAAK6jP,EAAM,KAAK,QAAQ,EACxB,KAAMA,EAAM,UAAW,EACvB,KAAM,OAEN,QAAS,IAAM,CACb,OAAO,cAAc,UAAW,sBAAsB,CACvD,CACT,CAAO,CACP,CAAK,CACF,CACH,CC5CA,MAAMhxD,GAAM,CACV,aAAc,CACZ,KAAK,cAAgB,EAAE,2BAA2B,CACnD,CAED,OAAQ,CACN,EAAE,QAAQ,EAAE,GAAG,QAAS,sDAAwD7yL,GAAU,CACxF,KAAK,cAAc,MAAM,MAAM,EAC/B,EAAE,OAAQ,KAAK,aAAa,EAAE,KAAK,aAAc,EAAE,OAAQ,KAAK,aAAa,EAAE,UAAW,GAC1FA,EAAM,eAAc,EACpBA,EAAM,gBAAe,CAC3B,CAAK,EAEG,KAAK,cAAc,OAAS,IAC9B,KAAK,cAAc,GAAG,gBAAiB,IAAM,CAC3C,KAAK,cAAc,KAAK,MAAM,EAAE,CAAC,EAAE,QACnC,KAAK,cAAc,KAAK,wBAAwB,EAAE,OAAM,EACxD,KAAK,cAAc,KAAK,2CAA2C,EAAE,KAAI,EAEzE,EAAE,KAAK,CACL,OAAQ,MACR,IAAK,KAAK,cAAc,KAAK,KAAK,EAClC,SAAU,OAEV,QAAU0uB,GAAS,CACjB,EAAE,6BAA6B,EAAE,KAAK,UAAW,CAAC,CAACA,EAAK,0BAA0B,EAClF,EAAE,2BAA2B,EAAE,IAAIA,EAAK,kBAAkB,CAC3D,CACX,CAAS,CACT,CAAO,EAED,KAAK,cAAc,KAAK,MAAM,EAC3B,GAAG,eAAgB,CAAC1uB,EAAO0uB,IAAS,CACnC,GAAIA,EAAK,UAAW,CAClB,KAAK,cAAc,MAAM,MAAM,EAC/B,MACD,CAED,EAAE,kCAAkC,EAAE,KAAK,UAAWA,EAAK,MAAM,EAE7D,EAAE,WAAW,EAAE,KAAK,QAAQ,IAAM,uBACpC,KAAK,cAAc,MAAM,MAAM,EAE/B,OAAO,cAAc,UAAW,uBAAuB,EAEnE,CAAS,EACA,GAAG,aAAc,IAAM,CACtB,KAAK,cAAc,MAAM,MAAM,EAE/B,OAAO,cAAc,QAAS,uBAAuB,CAC/D,CAAS,EAEH,KAAK,cAAc,KAAK,cAAc,EACnC,GAAG,UAAW,CAAC1uB,EAAO0uB,IAAS,CAC9B,IAAI2rS,EAAU,EAAE,OAAQ,KAAK,aAAa,EAAE,UAAW,GAAI,EAAE,OAAQ,KAAK,aAAa,EAAE,KAAK,YAAY,EAE1G,OAAKA,GACH,KAAK,cAAc,MAAM,MAAM,EAG1BA,CACjB,CAAS,GAGD,EAAE,4CAA4C,EAAE,OAAS,GAC3D,EAAE,QAAQ,EAAE,GAAG,QAAS,oBAAsBr6T,GAAU,CACtD,EAAEA,EAAM,aAAa,EAAE,KAAK,WAAY,EAAI,CACpD,CAAO,CAEJ,CACH,CCtEA,MAAMs6T,GAAoB,CACxB,OAAQ,CACF,EAAE,2BAA2B,EAAE,OAAS,GAC1C,EAAE,aAAa,EAAE,WAAW,CAAE,OAAQ,eAAgB,UAAW,GAAM,CAE1E,CACH,CCNA,MAAMC,GAAgB,CACpB,OAAQ,CACF,EAAE,2FAA2F,EAAE,OAAS,GAC1G,EAAE,aAAa,EAAE,WAAW,CAC1B,OAAQ,eACR,UAAW,EACnB,CAAO,CAEJ,CACH,CCNA,MAAMC,GAAW,CACf,aAAc,CAAG,CAEjB,OAAQ,CACN,EAAE,cAAc,EAAE,GAAG,QAAU,GAAM,CACnC,EAAE,eAAc,EAChB,MAAMpyP,EAAQ,EAAE,wBAAwB,EACxCA,EAAM,MAAM,MAAM,EAClBoS,GAAM,IAAI,EAAE,OAAO,aAAa,MAAM,CAAC,EAAE,KAAK,CAAC,CAAE,KAAA9rD,KAAW,CAC1D05C,EAAM,KAAK,aAAa,EAAE,KAAK15C,CAAI,CAC3C,CAAO,CACP,CAAK,EAED,EAAE,QAAQ,EAAE,GAAG,QAAS,0BAA4B1uB,GAAU,CAC5DA,EAAM,eAAc,EAEpB,MAAMi6J,EAASj6J,EAAM,OAEf6jP,EADQ,EAAE7jP,EAAM,aAAa,EACf,QAAQ,MAAM,EAC5B++S,EAAa,IAAI1zD,GAEvBpxF,EAAO,SAAW,GAElB8kJ,EAAW,aAAal7D,CAAK,EAE7B,EAAE,KAAK,CACL,KAAM,OACN,IAAKA,EAAM,KAAK,QAAQ,EACxB,KAAM,IAAI,SAASA,EAAM,CAAC,CAAC,EAC3B,YAAa,GACb,YAAa,GAEb,QAAS,IAAM,CACb,EAAE,wBAAwB,EAAE,MAAM,MAAM,EACxC,IAAI,YAAY,mBAAmB,EACnC5pF,EAAO,SAAW,EACnB,EAED,MAAQ/3J,GAAa,CACnB+3J,EAAO,SAAW,GAClB8kJ,EAAW,UAAUl7D,EAAO,QAAS3hP,EAAS,cAAgB,CAAE,GAAE,MAAM,CACzE,CACT,CAAO,CACP,CAAK,CACF,CACH,CC7CA,MAAMu4T,GAAqB,CACzB,aAAc,CAAG,CAEjB,OAAQ,CACN,EAAE,QAAQ,EAAE,GAAG,QAAS,sBAAwB,GAAM,CACpD,EAAE,eAAc,EAGhB,MAAM95T,EADS,EAAE,OACE,aAAa,MAAM,EAEtC65E,GAAM,IAAI75E,EAAK,CAAE,QAAS,CAAE,OAAU,kCAAkC,CAAG,GAAG,KAAKuB,GAAY,CAC7F,MAAMw4T,EAAc,SAAS,cAAc,KAAK,EAChDA,EAAY,UAAYx4T,EAAS,KACjC,SAAS,KAAK,YAAYw4T,CAAW,EAErC,MAAMtyP,EAAQsyP,EAAY,cAAc,WAAW,EAC7Cr7T,EAAO+oE,EAAM,cAAc,qBAAqB,EAEtD/oE,EAAK,iBAAiB,SAAWiU,GAAM,CACrCA,EAAE,eAAc,EAEhB,IAAI+3O,GAAY,EAAC,QAAQ,CACvB,KAAM,EAAEhsP,CAAI,EACZ,OAAQ,cACR,UAAW,IAAM,CACf,EAAE+oE,CAAK,EAAE,MAAM,MAAM,EACrB,IAAI,YAAY,mBAAmB,CACpC,EACD,QAAS,IAAM,CACd,CACb,CAAW,CACX,CAAS,EAED,EAAEA,CAAK,EAAE,GAAG,kBAAmB,IAAM,CAAE,SAAS,KAAK,YAAYsyP,CAAW,CAAG,GAC/E,EAAEtyP,CAAK,EAAE,MAAM,MAAM,CAC7B,CAAO,CACP,CAAK,CACF,CACH,CCAA,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,IAAIu6K,IAAQ,EAAG,QACf,IAAI62E,IAAkB,EAAG,QACzB,IAAIE,IAAQ,EAAG,QACf,IAAIE,IAAQ,EAAG,QACf,IAAIO,IAAI,EAAG,QACX,IAAItnI,IAAK,EAAG,QACZ,IAAIynI,IAAmB,EAAG,QAC1B,IAAIC,IAAe,EAAG,QACtB,IAAIE,IAAoB,EAAG,QAC3B,IAAID,IAAU,EAAG,OACnB,CAAC,EChDD,EAAE,QAAQ,EAAE,GAAG,QAAS,4BAA8Bx6T,GAAU,CAC9DA,EAAM,eAAc,EAEpB,MAAMi6J,EAAS,EAAEj6J,EAAM,MAAM,EACvB8J,EAAOmwJ,EAAO,KAAK,MAAM,EAE3BA,EAAO,OAAO,IAAI,EAAE,SAAS,UAAU,GAE3Cz/E,GAAM,IAAI1wE,CAAI,EAAE,KAAM5H,GAAa,CACnB2sP,GAAS,IAAI3sP,EAAS,KAAM,CAAE,SAAU,IAAM,CACtC,IAAI41P,KACZ,KAAI,CACtB,CAAK,CAAC,CACN,CAAG,CACH,CAAC,EClBD,MAAM6iE,GAAK,CACT,aAAc,CAAG,CAEjB,OAAQ,CACN,EAAE,aAAa,EACZ,GAAG,gBAAiB,IAAM,EAAE,MAAM,EAAE,IAAI,WAAY,QAAQ,CAAC,EAC7D,GAAG,kBAAmB,IAAM,EAAE,MAAM,EAAE,IAAI,WAAY,MAAM,CAAC,EAE5D,EAAE,MAAM,EAAE,MAAK,GAAM,KACvB,EAAE,eAAe,EAAE,MAAO36T,GAAU,CACpB,EAAEA,EAAM,aAAa,EACb,KAAK,IAAI,EAAE,SAAQ,EAEjC,OAAO,MAAM,CAC7B,CAAO,CAEJ,CACH,CAIA,OAAO,OAAS,CACd,cAAckK,EAAMsrF,EAAU7vD,EAAOyC,EAAU,CACzCzC,GAAS,OAAQA,EAAQ,IACxByC,IAAYA,EAAW,KAE5B,OAAO,QAAU,CACf,YAAe,GACf,MAAS,GACT,YAAe,GACf,cAAiB,mBACjB,QAAW,KACX,aAAgB,MAChB,aAAgB,MAChB,QAAWA,EACX,kBAAqB,GACrB,WAAc,QACd,WAAc,SACd,WAAc,SACd,WAAc,UACd,mBAAoB,aACrB,EAED,MAAM5oC,EAAW,MAAM,QAAQg2F,CAAQ,EAAIA,EAAS,KAAK,OAAO,EAAIA,EACpE,OAAOtrF,CAAI,EAAE,SAAU1K,WAAmBmmC,CAAK,EAE/CnmC,EAAQ,QAAQ,QAAS;AAAA,CAAI,CAC9B,CACH,EChDA,MAAMo7T,GAAS,CACb,aAAc,CAAG,CAEjB,OAAQ,CACN,EAAE,+DAA+D,EAAE,GAAG,SAAW56T,GAAU,CACzF,MAAM0X,EAAQ,EAAE1X,EAAM,aAAa,EAEnC,OAAI0X,EAAM,KAAK,SAAS,IACtBA,EAAM,KAAK,UAAW,SAAS,EAC/B,EAAE,6EAA6E,EAAE,KAAK,UAAW,EAAK,GAGjG,KAAK,mBAClB,CAAK,EAED,KAAK,kBAAiB,CACvB,CAED,MAAO,CACL,GAAI,EAAE,sCAAsC,EAAE,OAAS,EAAG,CACxD,MAAMy/L,EAAW,EAAE,iCAAiC,EAC9CvxM,EAAQ,oEAEd,KAAK,UAAUuxM,EAAUvxM,CAAK,EAE9BuxM,EAAS,OAAO,IAAM,CACpB,KAAK,UAAUA,EAAUvxM,CAAK,CACtC,CAAO,CACF,CACF,CAED,UAAUkC,EAAOlC,EAAO,CACtB,IAAIpG,EAAU,GAEd,OAAKsI,EAAM,KAAK,SAAS,IACvBtI,EAAUoG,GAGLkC,EAAM,CAAC,EAAE,kBAAkBtI,CAAO,CAC1C,CAED,mBAAoB,CAClB,MAAMq7T,EAAoB,EAAE,uEAAuE,EAAE,IAAG,IAAO,IAE/G,EAAE,iCAAiC,EAAE,KAAK,eAAe,EAAE,KAAK,WAAYA,CAAgB,EAC5F,EAAE,4BAA4B,EAAE,KAAK,eAAe,EAAE,YAAY,YAAaA,CAAgB,CAChG,CACH,CC/CA,MAAMl4E,GAAS,CACb,aAAc,CAAG,CAEjB,OAAQ,CACF,EAAE,kDAAkD,EAAE,OAAS,GAI/D,EAAE,sBAAsB,EAAE,IAAG,IAAO,OACtC,EAAE,eAAe,EAAE,OAEtB,CACH,CCZA,MAAM9mB,GAAO,CACX,aAAc,CAAG,CAEjB,OAAQ,CACF,EAAE,4FAA4F,EAAE,OAAS,IAIzG,EAAE,sBAAsB,EAAE,IAAG,IAAO,OACtC,EAAE,eAAe,EAAE,QAGjB,EAAE,gCAAgC,EAAE,OAAS,GAC/C,KAAK,UAAS,EAEjB,CAED,WAAY,CACV,MAAMi/F,EAAO,EAAE,gCAAgC,EACzCC,EAAUD,EAAK,KAAK,OAAO,EAC3B7yT,EAAS,QAAQ,IAAI,mBAAmB,EAE9C,GAAIA,IAAW,OACb6yT,EAAK,MAAM,MAAM,EAEjB,QAAQ,IAAI,oBAAqB,CAACC,CAAO,CAAC,MACrC,CACL,MAAMx3N,EAAS,KAAK,MAAMt7F,CAAM,EAE5Bs7F,EAAO,QAAQw3N,CAAO,IAAM,KAC9BD,EAAK,MAAM,MAAM,EACjBv3N,EAAO,KAAKw3N,CAAO,EAEnB,QAAQ,IAAI,oBAAqBx3N,CAAM,EAE1C,CACF,CACH,CCrCA,MAAMy3N,GAAuB,CAC3B,aAAc,CAAG,CAEjB,OAAQ,CACN,KAAK,uBAAsB,CAC5B,CAED,wBAAyB,CACvB,EAAE,QAAQ,EAAE,GAAG,QAAS,mCAAqCh7T,GAAU,CACrEA,EAAM,eAAc,EAEpB,MAAMi7T,EAAU,EAAEj7T,EAAM,aAAa,EAAE,KAAK,SAAS,EAErD,EAAE,KAAK,CACL,IAAK,iBAAmBi7T,EAAU,mCAClC,OAAQ,MAER,QAAUvsS,GAAS,CACjB,OAAO,cAAc,UAAW,SAAS,EAEzC,EAAE,iCAAiC,EAAE,KAAKA,EAAK,8BAA8B,EAC7E,EAAE,qCAAqC,EAAE,KAAKA,EAAK,kCAAkC,EACrF,EAAE,oCAAoC,EAAE,KAAKA,EAAK,iCAAiC,EACnF,EAAE,gCAAgC,EAAE,KAAKA,EAAK,6BAA6B,CAC5E,EAED,MAAO,IAAM,CACX,OAAO,cAAc,QAAS,8BAA8B,CAC7D,CACT,CAAO,CACP,CAAK,CACF,CACH,CC9BA,MAAMwsS,GAAO,CACX,aAAc,CACZ,KAAK,aAAe,EAAE,cAAc,CACrC,CAED,OAAQ,CACN,KAAK,MAAK,EACV,KAAK,SAAQ,CACd,CAED,OAAQ,CACN,EAAE,mBAAmB,EAAE,GAAG,QAAS,IAAM,KAAK,aAAa,MAAM,MAAM,CAAC,CACzE,CAED,UAAW,CACT,EAAE,eAAe,EAAE,GAAG,QAAUl7T,GAAU,CAExC,MAAM6jP,EADQ,EAAE7jP,EAAM,aAAa,EACf,QAAQ,gBAAgB,EAAE,KAAK,gBAAgB,EAEnE,EAAE,KAAK,CACL,KAAM,OACN,IAAK6jP,EAAM,KAAK,QAAQ,EACxB,KAAM,IAAI,SAASA,EAAM,CAAC,CAAC,EAC3B,YAAa,GACb,YAAa,GAEb,QAAS,IAAM,CAAE,KAAK,aAAa,MAAM,MAAM,CAAG,EAElD,MAAQ3hP,GAAa,CACnB,IAAImpP,GAAU,EAAG,UAAUxH,EAAO,SAAU3hP,EAAS,cAAgB,IAAI,MAAM,CAChF,CACT,CAAO,CACP,CAAK,CACF,CACH,CCpCA,MAAMi5T,GAAmB,CACvB,aAAc,CAAG,CAEjB,OAAQ,CACN,EAAE,8BAA8B,EAAE,GAAG,QAAS,IAAM,CAClD,EAAE,6BAA6B,EAAE,MAAM,MAAM,CACnD,CAAK,EAED,EAAE,8BAA8B,EAAE,GAAG,QAAS,IAAM,CAClD,MAAMt3E,EAAQ,EAAE,2BAA2B,EAE3C,EAAE,KAAK,CACL,KAAM,OACN,IAAKA,EAAM,KAAK,QAAQ,EACxB,KAAM,IAAI,SAASA,EAAM,CAAC,CAAC,EAC3B,YAAa,GACb,YAAa,GAEb,QAAU3hP,GAAa,CACrB,OAAO,SAAS,KAAOA,EAAS,WACjC,EAED,MAAQ0D,GAAU,CAChB,KAAM,CAAE,OAAA6pJ,CAAM,EAAK7pJ,EAAM,aAErB6pJ,EAAO,KACT,OAAO,cAAc,QAASA,EAAO,KAAK,KAAK,IAAI,CAAC,EAEpD,OAAO,cAAc,QAAS,0BAA0B,CAE3D,CACT,CAAO,CACP,CAAK,CACF,CACH,CClCA,EAAE,QAAQ,EAAE,MAAM,UAAU,CAC1B,SAAS2rK,GAAa,CACpB,MAAMC,EAAa,EAAE,MAAM,EAAE,MAAK,EAC5BC,EAAY,EAAE,SAAS,EAAE,MAAO,EAElCD,GAAc,MAAQA,GAAc,KAAOC,EAAW,MACxD,EAAE,cAAc,EAAE,IAAI,UAAW,MAAM,EACvC,EAAE,qBAAqB,EAAE,IAAI,YAAa,OAAO,EAEpD,CACDF,IAEA,EAAE,MAAM,EAAE,OAAOA,CAAU,CAC7B,CAAC,EC8BD,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,IAAIR,IAAQ,EAAG,QACf,IAAIj4E,IAAQ,EAAG,QACf,IAAIg4E,IAAI,EAAG,QACX,IAAI9+F,IAAM,EAAG,QACb,IAAIm/F,IAAsB,EAAG,QAC7B,IAAIpoI,GAAM,EAAG,QACb,IAAIsoI,IAAM,EAAG,QACb,IAAIC,IAAkB,EAAG,OAC3B,CAAC,EC5CD,OAAO,OAAS/1R,GAIhBm2R,KACAC,GAAgB,SAAS,OAEzB,OAAO,MAAQpnT","names":["BuiltInHTMLElement","wrapperForTheName","prototype","submitter","validateSubmitter","form","raise","errorConstructor","message","name","submittersByForm","findSubmitterFromClickTarget","target","element","candidate","clickCaptured","event","FrameLoadingStyle","FrameElement","value","frameLoadingStyleFromString","_a","_b","style","expandURL","locatable","getAnchor","url","anchorMatch","getAction","action","getExtension","getLastPathComponent","isHTML","isPrefixedBy","baseURL","prefix","getPrefix","locationIsVisitable","location","rootLocation","getRequestURL","anchor","toCacheKey","urlsAreEqual","left","right","getPathComponents","addTrailingSlash","FetchResponse","response","activateScriptElement","createdScriptElement","cspNonce","getMetaContent","copyElementAttributes","destinationElement","sourceElement","createDocumentFragment","html","template","dispatch","eventName","cancelable","detail","nextAnimationFrame","resolve","nextEventLoopTick","nextMicrotask","parseHTMLDocument","unindent","strings","values","lines","interpolate","match","indent","line","result","string","i","uuid","_","getAttribute","attributeName","elements","hasAttribute","markAsBusy","clearBusyState","waitForLoad","timeoutInMilliseconds","onComplete","getHistoryMethodForAction","isAction","getVisitAction","getMetaElement","setMetaContent","content","findClosestRecursively","selector","FetchMethod","fetchMethodFromString","method","FetchRequest","delegate","body","_value","fetchOptions","error","fetchResponse","mimeType","requestInterception","AppearanceObserver","entries","lastEntry","StreamMessage","fragment","importStreamElements","streamElement","inertScriptElement","FormSubmissionState","FormEnctype","formEnctypeFromString","encoding","FormSubmission","_element","_submitter","formElement","mustRedirect","buildFormData","mergeFormDataEntries","formElementAction","initialized","requesting","confirmationMessage","stopping","stopped","request","token","getCookieValue","_request","responseSucceededWithoutRedirect","input","formData","cookieName","cookie","searchParams","Snapshot","inertDisabledOrHidden","queryPermanentElementsAll","id","getPermanentElementById","snapshot","permanentElementMap","currentPermanentElement","newPermanentElement","node","FormSubmitObserver","eventTarget","submissionDoesNotDismissDialog","submissionDoesNotTargetIFrame","View","x","y","renderer","isPreview","shouldRender","renderInterception","options","reason","FrameView","LinkInterceptor","_event","LinkClickObserver","link","doesNotTargetIFrame","FormLinkClickObserver","originalEvent","type","turboFrame","turboAction","turboConfirm","Bardo","callback","bardo","permanentElement","placeholder","createPlaceholderForPermanentElement","clone","Renderer","currentSnapshot","newSnapshot","renderElement","willRender","reject","elementIsFocusable","FrameRenderer","currentElement","newElement","destinationRange","frameElement","sourceRange","block","readScrollLogicalPosition","behavior","readScrollBehavior","activatedScriptElement","defaultValue","ProgressBar","HeadSnapshot","elementIsNoscript","elementWithoutNonce","outerHTML","details","elementType","elementIsTracked","matchedType","tracked","elementIsMetaElementWithName","elementIsScript","elementIsStylesheet","tagName","PageSnapshot","head","headSnapshot","clonedElement","selectElements","clonedSelectElements","index","source","option","clonedPasswordInput","root","TimingMetric","VisitState","defaultOptions","SystemStatusCode","Visit","restorationIdentifier","historyChanged","referrer","snapshotHTML","visitCachedSnapshot","updateHistory","shouldCacheSnapshot","acceptsStreamResponse","actionForHistory","statusCode","isSuccessful","responseHTML","_response","redirected","_error","scrollPosition","metric","BrowserAdapter","session","visit","_visit","_formSubmission","CacheObserver","FrameRedirector","_location","frame","meta","History$1","turbo","state","additionalData","restorationData","Navigator","formSubmission","visitOptions","currentAnchor","isRestorationToTop","oldURL","newURL","PageStage","PageObserver","readyState","ScrollObserver","position","StreamMessageRenderer","getPermanentElementMapForFragment","permanentElementsInDocument","permanentElementInDocument","elementInStream","StreamObserver","fetchResponseFromEvent","fetchResponseIsStream","ErrorRenderer","documentElement","replaceableElement","parentNode","PageRenderer","mergedHeadElements","newStylesheetElements","loadingElements","newHeadElements","elementList","SnapshotCache","size","key","PageView","cachedSnapshot","Preloader","responseText","Session","History","adapter","delay","mode","extendURLWithDeprecatedProperties","defaultPrevented","render","_snapshot","_isPreview","ev","newBody","timing","submitterIsNavigatable","container","withinFrame","deprecatedLocationPropertyDescriptors","Cache","StreamActions","e","targetElement","cache","navigator$1","start","registerAdapter","connectStreamSource","disconnectStreamSource","renderStreamMessage","clearCache","setProgressBarDelay","setConfirmMethod","confirmMethod","setFormMode","Turbo","TurboFrameMissingError","FrameController","_fetchResponse","src","document","fetchRequest","newFrame","_newElement","newFrameElement","pageSnapshot","wrapped","getFrameElementById","activateElement","sourceURL","currentURL","StreamElement","c","existingChildren","newChildrenIds","actionFunction","StreamSourceElement","$","undefined","defaults","$el","scene","plugin","settings","settingsTemp","$children","windowW","resposiveObj","length","w","on","elSize","$slide","property","gutter","slideValue","pagerWidth","slideWidth","thumbWidth","interval","isTouch","refresh","item","j","k","cln","ln","support","transition","$this","tWr","tI","tItem","n","m","pagers","v","thumb","minPgr","$cSouter","$pager","cl","gMargin","ob","fade","obj","setCss","tH","tP","tHT","t","sc","l","nl","$thumb","s","_sV","thumbSlide","endCoords","startCoords","distance","swipeVal","swipeValT","mxVal","_next","gC","next","ad","tW","num","isDraging","orig","xMovement","yMovement","nextI","_slideValue","_touch","global","factory","module","this","window","noGlobal","arr","getProto","slice","flat","array","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","isFunction","isWindow","preservedScriptAttributes","DOMEval","code","doc","val","script","toType","version","jQuery","context","elems","ret","elem","_elem","len","copy","copyIsArray","deep","msg","proto","Ctor","isArrayLike","results","first","second","invert","callbackInverse","matches","callbackExpect","arg","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","expando","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","els","seed","nid","groups","newSelector","newContext","nodeType","testContext","toSelector","keys","markFunction","fn","assert","el","addHandle","attrs","handler","siblingCheck","cur","diff","createInputPseudo","createButtonPseudo","createDisabledPseudo","disabled","createPositionalPseudo","argument","matchIndexes","namespace","hasCompare","subWindow","attrId","tag","tmp","className","adown","bup","compare","aup","ap","bp","expr","sel","duplicates","excess","unquoted","nodeNameSelector","nodeName","pattern","operator","check","what","_argument","last","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","dir","parent","useCache","pseudo","args","idx","matched","matcher","unmatched","text","lang","elemLang","hash","attr","_matchIndexes","setFilters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","filter","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","find","compiled","_name","until","truncate","siblings","rneedsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","init","rparentsprev","guaranteedUnique","targets","selectors","sibling","rnothtmlwhite","createOptions","object","flag","firing","memory","fired","locked","queue","firingIndex","fire","add","Identity","Thrower","ex","adoptValue","noValue","func","tuples","promise","deferred","fns","newDefer","tuple","returned","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","then","process","stateString","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","readyList","wait","completed","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","data","prop","dataPriv","dataUser","rbrace","rmultiDash","getData","dataAttr","startLength","hooks","setter","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","defaultDisplayMap","getDefaultDisplay","display","showHide","show","rcheckableType","rtagName","rscriptType","div","wrapMap","getAll","setGlobalEval","refElements","buildFragment","scripts","selection","ignored","wrap","attached","nodes","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","one","origFn","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","mappedTypes","origCount","nativeEvent","handlerQueue","matchedHandlers","matchedSelectors","delegateCount","hook","leverageNative","notAsync","saved","handle","props","delegateType","fix","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","remove","keepData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","original","insert","rnumnonpx","rcustomProp","getStyles","view","swap","old","rboxStyle","rtrimCSS","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","table","tr","trChild","trStyle","curCSS","computed","width","minWidth","maxWidth","isCustomProp","addGetHookIf","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","rdisplayswap","cssShow","cssNormalTransform","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","origName","scrollboxSizeBuggy","suffix","expanded","parts","Tween","end","easing","percent","eased","p","fxNow","inProgress","rfxtypes","rrun","schedule","createFxNow","genFx","includeWidth","which","createTween","animation","Animation","defaultPrefilter","opts","toggle","oldfire","propTween","restoreDisplay","isBox","anim","hidden","dataShow","propFilter","specialEasing","properties","tick","currentTime","gotoEnd","prepend","speed","opt","to","empty","optall","doAnimation","clearQueue","stopQueue","stop","dequeue","timers","cssFn","timer","time","timeout","boolHook","attrHandle","nType","attrNames","getter","lowercaseName","rfocusable","rclickable","tabindex","stripAndCollapse","getClass","classesToArray","classNames","curValue","finalValue","stateVal","isValidValue","rreturn","max","optionSet","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","attaches","nonce","rquery","parserErrorElem","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","selected","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","contents","ajaxConvert","isSuccess","conv2","current","conv","prev","converters","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","requestHeaders","requestHeadersNames","strAbort","statusText","finalText","status","nativeStatusText","headers","success","modified","htmlIsFunction","xhrSuccessStatus","xhrSupported","errorCallback","complete","xhr","evt","oldCallbacks","rjsonp","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","params","off","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","rect","win","offsetParent","offset","parentOffset","top","defaultExtra","funcName","margin","fnOver","fnOut","proxy","hold","_jQuery","_$","define","$container","listener","toastId","toastType","toastr","clear","getContainer","info","subscribe","warning","previousToast","title","optionsOverride","notify","getOptions","create","createContainer","$toastElement","clearOptions","clearToast","clearContainer","removeToast","toastsToClear","force","getDefaults","publish","iconClass","shouldExit","intervalId","$titleElement","$messageElement","$progressElement","$closeElement","progressBar","personalizeToast","displayToast","handleEvents","escapeHtml","setIcon","setTitle","setMessage","setCloseButton","setProgressBar","setRTL","setSequence","setAria","ariaValue","stickAround","delayedHideToast","hideToast","updateProgress","override","duration","percentage","deps","require$$0","d","f","g","h","q","r","o","u","z","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","objectAssign","from","symbols","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","aa","X","Y","Z","ba","react_production_min","reactModule","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","require$$1","require$$2","da","ea","fa","ha","ia","ja","ka","la","ma","na","oa","pa","qa","ra","sa","ta","ua","va","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","rb","sb","tb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Yc","Zc","$c","bd","cd","dd","ed","fd","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","zd","Ad","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","Gg","Hg","Ig","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","ub","vb","Pj","Xc","Qj","Rj","Sj","Tj","wb","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","reactDom_production_min","checkDCE","err","reactDomModule","_globalModule","core","_coreModule","_aFunction","it","aFunction","_ctx","_isObject","isObject","_anObject","_fails","exec","_descriptors","is","_domCreate","_ie8DomDefine","_toPrimitive","anObject","IE8_DOM_DEFINE","toPrimitive","dP","_objectDp","require$$3","Attributes","_propertyDesc","bitmap","createDesc","_hide","_has","ctx","hide","has","require$$4","PROTOTYPE","$export","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","expProto","own","out","_export","_cof","cof","_iobject","_defined","IObject","defined","_toIobject","ceil","floor","_toInteger","toInteger","min","_toLength","_toAbsoluteIndex","toIObject","toLength","toAbsoluteIndex","_arrayIncludes","IS_INCLUDES","fromIndex","_library","SHARED","store","_sharedModule","px","_uid","shared","uid","_sharedKey","arrayIndexOf","IE_PROTO","_objectKeysInternal","names","_enumBugKeys","$keys","enumBugKeys","_objectKeys","_objectGops","_objectPie","_toObject","DESCRIPTORS","getKeys","gOPS","pIE","require$$5","$assign","_objectAssign","require$$6","aLen","getSymbols","isEnum","assign","_extends","_Object$assign","_objectDps","Properties","_html","dPs","Empty","createDict","iframe","lt","gt","iframeDocument","_objectCreate","$Object","gOPD","_objectGopd","_setProto","test","buggy","set","setPrototypeOf","_setPrototypeOf","_Object$setPrototypeOf","_inheritsLoose","subClass","superClass","_Object$create","fails","_objectSap","KEY","exp","_objectWithoutPropertiesLoose","excluded","sourceKeys","_Object$keys","classes","argType","inner","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","propTypesModule","invariant","condition","format","argIndex","browser","componentWillMount","componentWillReceiveProps","nextProps","updater","prevState","componentWillUpdate","nextState","prevProps","polyfill","Component","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","componentDidUpdate","maybeSnapshot","_objectToArray","isEntries","$entries","Size","SIZE_MAP","State","Style","curry","_len","variant","bsClass","defaultClass","propTypes","defaultProps","PropTypes","bsStyles","defaultStyle","existing","propType","bsSizes","sizes","defaultSize","mappedSize","getClassSet","_classes","bsSize","getBsProps","isBsProp","splitBsProps","elementProps","_Object$entries","_ref","propValue","createChainableTypeChecker","validate","checkType","isRequired","componentNameSafe","propFullNameSafe","chainedCheckType","$values","CloseButton","_React$Component","_proto","_this$props","label","onClick","React","CloseButton$1","_assertThisInitialized","reactIs_production_min","reactIsModule","_react","_react2","_interopRequireDefault","_reactIs","_createChainableTypeChecker","_createChainableTypeChecker2","createChainedFunction","funcs","acc","_len2","_key2","isTrivialHref","href","SafeAnchor","_this","_this$props2","onKeyDown","SafeAnchor$1","Button","componentClass","_extends2","active","_splitBsProps","bsProps","fullClassName","Button$2","_Object$values","all","validators","allPropTypes","validator","vertical","ButtonGroup","justified","ButtonGroup$1","_default","_inDOM","transform","transitionEnd","animationEnd","transitionProperty","transitionDuration","transitionTiming","transitionDelay","animationName","animationDuration","animationTiming","animationDelay","_getTransitionPropert","getTransitionProperties","vendorMap","vendors","vendor","camelize","rHyphen","chr","camelizeStyleName","_camelize","msPattern","hyphenate","rUpper","hyphenateStyleName","_hyphenate","_getComputedStyle","_camelizeStyle","rposition","runStyle","rsLeft","removeStyle","isTransform","supportedTransforms","_hyphenateStyle","_getComputedStyle2","_removeStyle","_properties","_isTransform","css","transforms","default_1","ENTERED_1","ENTERING_1","_interopRequireWildcard","_reactDom","_reactLifecyclesCompat","newObj","desc","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","parentGroup","appear","initialStatus","nextIn","nextStatus","exit","enter","mounting","_this2","appearing","timeouts","enterTimeout","_this3","_this4","doesNotHaveTimeoutOrListener","children","childProps","child","noop","ownerDocument","activeElement","_ownerDocument","fallback","isRequiredForA11y","capture","_on2","_off2","_on","_off","componentOrElement","_ownerDocument2","_reactDom2","_contains","_contains2","_propTypes","_propTypes2","_addEventListener","_addEventListener2","_classCallCheck","instance","Constructor","_possibleConstructorReturn","call","_inherits","escapeKeyCode","isLeftClickEvent","isModifiedEvent","RootCloseWrapper","splitComponentProps","componentPropTypes","parentProps","_fadeStyles","fadeStyles","Fade","innerProps","Fade$1","qsa","simpleSelectorRE","toArray","maybeID","maybeClass","nameOnly","isSimple","found","filterEvents","_querySelectorAll","listen","_filter","_listen","scrollbarSize","recalc","scrollDiv","_typeof","warning_1","deprecated","_warning","_warning2","warned","messageKey","_resetWarned","hasClass","addClass","_hasClass","replaceClassName","origClass","classToRemove","removeClass","_class","_addClass","_removeClass","getWindow","isOverflowing","_isWindow","_isWindow2","isBody","bodyIsOverflowing","fullWidth","documentElementRect","manageAriaHidden","ariaHidden","hideSiblings","showSiblings","BLACKLIST","isHidable","mount","mountNode","_class2","_style","_style2","_scrollbarSize","_scrollbarSize2","_isOverflowing","_isOverflowing2","_manageAriaHidden","findIndexOf","findContainer","modal","setContainerStyle","removeContainerStyle","ModalManager","_ref2","_ref2$hideSiblingNode","hideSiblingNodes","_ref2$handleContainer","handleContainerOverflow","modalIdx","containerIdx","defaultContainer","_componentOrElement","_componentOrElement2","_getContainer","_getContainer2","Portal","_temp","_ret","overlay","initialRender","_inDOM2","_LegacyPortal","require$$7","_LegacyPortal2","RefHolder","addFocusListener","useFocusin","_activeElement","_activeElement2","_deprecated","_deprecated2","_elementType","_elementType2","require$$8","require$$9","_ModalManager","require$$10","_ModalManager2","_Portal","require$$11","_Portal2","_RefHolder","require$$12","_RefHolder2","require$$13","_addFocusListener","require$$14","_addFocusListener2","require$$15","require$$16","modalManager","Modal","_initialiseProps","newProps","_props","backdrop","onExit","onExiting","onEnter","onEntering","onEntered","dialog","filteredProps","mountModal","_dialog$props","role","tabIndex","_props2","dialogElement","currentActiveElement","_props3","backdropStyle","backdropClassName","renderBackdrop","backdropRef","ref","_props4","ModalBody","Body","ModalDialog","dialogClassName","onMouseDownDialog","bsClassName","modalStyle","dialogClasses","ModalDialog$1","ModalFooter","Footer$1","contextTypes","ModalHeader","closeLabel","closeButton","onHide","Header$3","ModalTitle","Title","BaseModal","childContextTypes","DialogTransition","BackdropTransition","dialogNode","canUseDOM","dialogHeight","ReactDOM","modalIsOverflowing","getScrollbarSize","Dialog","onExited","_splitComponentProps","baseModalProps","dialogProps","inClassName","Header","Footer","Modal$5","scrollTop","_offset","_offsetParent","_scrollTop","_scrollLeft","_offset2","_position","_position2","_scrollTop2","getContainerDimensions","containerNode","height","scroll","_getOffset","getTopDelta","overlayHeight","padding","containerDimensions","containerScroll","containerHeight","topEdgeOffset","bottomEdgeOffset","getLeftDelta","overlayWidth","containerWidth","leftEdgeOffset","rightEdgeOffset","placement","overlayNode","childOffset","_getOffset2","positionLeft","positionTop","arrowOffsetLeft","arrowOffsetTop","topDelta","leftDelta","_classnames","_classnames2","_calculatePosition","_calculatePosition2","_objectWithoutProperties","Position","placementChanged","_state","arrowPosition","_Position","_Position2","_RootCloseWrapper","_RootCloseWrapper2","Overlay","containerPadding","shouldUpdatePosition","rootClose","mountOverlay","BaseOverlay","cloneElement","_isArray","isArray","isOneOf","_Array$isArray","triggerType","OverlayTrigger","relatedNative","trigger","onBlur","onFocus","onMouseOut","onMouseOver","triggerProps","OverlayTrigger$1","Popover","outerStyle","arrowStyle","Popover$3","bind","thisArg","isUndefined","isBuffer","isArrayBuffer","isFormData","isArrayBufferView","isString","isNumber","isPlainObject","isDate","isFile","isBlob","isStream","isURLSearchParams","trim","str","isStandardBrowserEnv","forEach","merge","assignValue","extend","stripBOM","utils","encode","buildURL","paramsSerializer","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","InterceptorManager_1","transformData","isCancel","normalizeHeaderName","normalizedName","enhanceError","config","createError","settle","validateStatus","cookies","expires","path","domain","secure","isAbsoluteURL","combineURLs","relativeURL","buildFullPath","requestedURL","ignoreDuplicateOf","parseHeaders","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","requestData","username","password","fullPath","responseData","timeoutErrorMessage","xsrfValue","cancel","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","defaults_1","throwIfCancellationRequested","dispatchRequest","mergeConfig","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Axios","instanceConfig","chain","interceptor","Axios_1","Cancel","Cancel_1","CancelToken","executor","resolvePromise","CancelToken_1","spread","isAxiosError","payload","createInstance","defaultConfig","axios","promises","axiosModule","Api$4","user","venueId","reportTypeKey","api","Api","sheetForTag","createStyleElement","StyleSheet","before","rule","sheet","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","abs","charat","replace","replacement","indexof","search","substr","begin","strlen","sizeof","append","combine","column","character","characters","char","peek","caret","alloc","dealloc","delimit","delimiter","escaping","commenter","parse","rules","rulesets","points","declarations","atrule","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","serialize","output","stringify","middleware","rulesheet","prefixer","memoize","identifierWithPointTracking","toRules","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","defaultStylisPlugins","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","serialized","shouldCache","reactIs","REACT_STATICS","KNOWN_STATICS","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","getStatics","component","defineProperty","getOwnPropertyNames","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","hoistNonReactStatics_cjs","isBrowser","getRegisteredStyles","registered","registeredStyles","rawClassName","registerStyles","isStringTag","insertStyles","murmur2","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","handleInterpolation","mergedProps","interpolation","createStringFromObject","previousCursor","interpolated","labelPattern","serializeStyles","stringMode","identifierName","hashString","syncFallback","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","createContext","withEmotionCache","forwardRef","useContext","ThemeContext","typePropName","createEmotionProps","Insertion","Emotion","cssProp","WrappedComponent","createElement","Fragment","jsx","argsLength","createElementArgArray","keyframes","insertable","classnames","cls","toAdd","serializedArr","ClassNames","hasRendered","cx","ele","_taggedTemplateLiteral","objectWithoutPropertiesLoose","sourceSymbolKeys","AutosizeInput_1","_createClass","defineProperties","protoProps","staticProps","sizerStyle","INPUT_PROPS_BLACKLIST","cleanInputProps","inputProps","field","copyStyles","isIE","generateId","AutosizeInput","_Component","inputStyles","newInputWidth","extraWidth","injectStyles","sizerValue","previousValue","wrapperStyle","inputStyle","_defineProperties","_defineProperty","ownKeys","enumerableOnly","sym","_objectSpread2","_getPrototypeOf","_isNativeReflectConstruct","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","applyPrefixToName","cleanValue","cleanCommonProps","isDocumentElement","getScrollTop","scrollTo","getScrollParent","excludeStaticParent","overflowRx","docEl","easeOutCubic","animatedScrollTo","change","increment","animateScroll","scrollIntoView","menuEl","focusedEl","menuRect","focusedRect","overScroll","getBoundingClientObj","isTouchCapable","isMobileDevice","passiveOptionAccessed","supportsPassiveEvents","getMenuPlacement","maxHeight","minHeight","shouldScroll","isFixedPosition","theme","spacing","scrollParent","defaultState","_scrollParent$getBoun","scrollHeight","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","_menuEl$offsetParent$","containerTop","viewHeight","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","constrainedHeight","_constrainedHeight","spaceAbove","_constrainedHeight2","alignToControl","placementToCSSProp","coercePlacement","menuCSS","_ref3","_ref2$theme","borderRadius","colors","_defineProperty$1","PortalPlacementContext","MenuPlacer","_super","minMenuHeight","maxMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getPortalPlacement","Menu","innerRef","menuListCSS","_ref4","baseUnit","MenuList","isMulti","noticeCSS","_ref5","_ref5$theme","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","LoadingMessage","menuPortalCSS","_ref6","MenuPortal","_Component2","_super2","_ref7","initialPlacement","appendTo","controlElement","isFixed","scrollDistance","menuWrapper","createPortal","containerCSS","isDisabled","isRtl","SelectContainer","valueContainerCSS","ValueContainer","hasValue","indicatorsContainerCSS","IndicatorsContainer","_templateObject","Svg","CrossIcon","DownChevron","baseCSS","isFocused","_ref3$theme","dropdownIndicatorCSS","DropdownIndicator","clearIndicatorCSS","ClearIndicator","indicatorSeparatorCSS","_ref4$theme","IndicatorSeparator","loadingDotAnimations","loadingIndicatorCSS","LoadingDot","css$2","LoadingIndicator","_ref$theme","Control","menuIsOpen","groupCSS","Group","Heading","headingProps","selectProps","groupHeadingCSS","GroupHeading","_cleanCommonProps","inputCSS","isHidden","Input","multiValueCSS","multiValueLabelCSS","cropWithEllipsis","multiValueRemoveCSS","MultiValueGeneric","MultiValueContainer","MultiValueLabel","MultiValueRemove","MultiValue","components","removeProps","Container","Label","Remove","emotionCx","optionCSS","isSelected","Option","placeholderCSS","Placeholder","css$1","SingleValue","defaultComponents","_arrayLikeToArray","arr2","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","_unsupportedIterableToArray","minLen","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","safeIsNaN","isEqual","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","lastThis","lastArgs","lastResult","calledOnce","memoized","newArgs","A11yText","defaultAriaLiveMessages","isSearchable","tabSelectsValue","_props$label","_props$focused","focused","_props$label2","selectValue","getArrayIndex","inputValue","resultsMessage","LiveRegion","ariaSelection","focusedOption","focusedValue","focusableOptions","ariaLiveMessages","getOptionLabel","isOptionDisabled","screenReaderStatus","ariaLabel","ariaLive","messages","useMemo","ariaSelected","removedValue","asOption","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ariaContext","diacritics","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","trimString","defaultStringify","createFilter","rawInput","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","matchFrom","DummyInput","cancelScroll","useScrollCapture","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","useRef","isTop","touchStart","scrollTarget","handleEventDelta","useCallback","_scrollTarget$current","clientHeight","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","onTouchStart","onTouchMove","deltaY","startListening","notPassive","stopListening","useEffect","STYLE_KEYS","LOCK_STYLES","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","activeScrollLocks","listenerOptions","useScrollLock","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","clientWidth","adjustedPadding","removeScrollLock","blurSelectInput","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","setScrollLockTarget","targetRef","formatGroupLabel","group","getOptionValue","defaultStyles","controlHeight","menuGutter","defaultTheme","toCategorizedOption","_isOptionDisabled","_isOptionSelected","getOptionLabel$1","getOptionValue$1","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","buildFocusableOptions","_props$inputValue","shouldHideSelectedOptions","_filterOption","getNextFocusedValue","nextSelectValue","lastSelectValue","lastFocusedIndex","nextFocusedIndex","getNextFocusedOption","lastFocusedOption","hideSelectedOptions","instanceId","Select","newValue","actionMeta","onChange","closeMenuOnSelect","_this$props3","blurInputOnSelect","deselected","newValueArray","lastSelectedValue","custom","openMenuOnClick","_this$props4","touches","touch","deltaX","moveThreshold","_this$props5","backspaceRemovesValue","escapeClearsValue","isClearable","openMenuOnFocus","_this$state","_this$props6","focusOption","_this$state2","openAtIndex","selectedIndex","direction","_this$state3","focusedIndex","lastIndex","nextFocus","pageSize","clearValue","getValue","selectOption","setValue","_this$props7","_this$props8","inputId","_this$getComponents","inputIsHidden","commonProps","ariaAttributes","_this$getComponents2","_this$props9","controlShouldRenderValue","_this$state4","selectValues","isOptionFocused","_this$getComponents3","_this$props10","isLoading","_this$getComponents4","_this$props11","_this$getComponents5","_this$getComponents6","_this$getComponents7","_this$props12","captureMenuScroll","loadingMessage","menuPortalTarget","menuShouldBlockScroll","noOptionsMessage","onMenuScrollToTop","onMenuScrollToBottom","onHover","onSelect","optionId","menuUI","groupIndex","groupId","headingId","_message","menuPlacementProps","menuElement","_ref4$placerProps","scrollTargetRef","_this5","_this$props13","_this$state5","_this$getComponents8","_this$props14","clearFocusValueOnUpdate","inputIsHiddenAfterUpdate","newMenuOptionsState","newInputIsHiddenState","manageState","SelectComponent","StateManager","Select$2","useFetch","processedUrl","setProcessedUrl","useState","pending","setPending","setResult","setError","json","DropDown","Venues$2","onChanged","venues","venue","setVenue","useVenues","Icon","jsxs","urlParams","processedItem","setProcessedItem","processed","newVenue","venueIdQueryParam","defaultFilterOption","Facilities$2","selectedOptions","facilities","facility","setFacility","useFacilities","emptyOption","processedVenueId","setProcessedVenueId","selectedFacility","PopoverPortal_1","react_1","react_dom_1","PopoverPortal","scoutElement","rectsAreEqual","rectA","rectB","containerStyle","containerClassName","popoverRectForPosition","childRect","popoverRect","align","targetMidX","targetMidY","getNewPopoverRect","boundaryInset","boundaryRect","reposition","boundaryViolation","getNudgedPopoverRect","topBoundary","leftBoundary","rightBoundary","bottomBoundary","useElementRef_1","util_1","useElementRef","usePopover_1","POPOVER_STYLE","SCOUT_STYLE","usePopover","isOpen","childRef","positions","parentElement","contentLocation","boundaryElement","onPositionPopover","popoverRef","scoutRef","positionPopover","_c","_d","_e","positionIndex","_f","parentRect","_g","_h","scoutRect","_j","_k","_l","inputTop","inputLeft","left_1","top_1","isExhausted","_m","shouldNudge","_o","nudgedLeft","nudgedTop","finalTop","finalLeft","potentialViolations","useMemoizedArray_1","useMemoizedArray","externalArray","prevArrayRef","__assign","useArrowContainer_1","useArrowContainer","arrowSize","arrowColor","arrowContainerStyle","arrowWidth","lowerBound","leftUpperBound","topUpperBound","ArrowContainer_1","jsx_runtime_1","ArrowContainer","arrowClassName","externalArrowStyle","externalArrowContainerStyle","mergedContainerStyle","mergedArrowStyle","DEFAULT_POSITIONS","PopoverInternal","externalRef","externalPositions","onClickOutside","clickOutsideCapture","prevIsOpen","prevPositions","prevContentLocation","prevReposition","popoverState","setPopoverState","shouldUpdate","updatePopover","popoverElement","handleOnClickOutside","handleWindowResize","handleRef","renderChild","renderPopover","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","res","arrLen","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","some","fun","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","Moment","isMoment","warn","deprecate","firstTime","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","now","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","isFuture","pastFuture","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","isLeapYear","year","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","get","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","p3","p4","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","month","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","llc","localeMonthsParse","setMonth","dayOfMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","getSetYear","getIsLeapYear","createDate","ms","date","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","weekYear","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","offsetFromString","chunkOffset","chunk","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","period","dur","isAdding","updateOffset","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor2","adjust","toISOString","keepOffset","utc","zone","datetime","inputString","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","preParsePostFormat","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","momentDate","moment","DateRangeButton","timePeriod","togglePopover","startDate","endDate","UI","DayFlag","SelectionState","getClassNamesForModifiers","modifiers","modifiersClassNames","Chevron","orientation","CaptionLabel","Day","tdProps","DayButton","buttonProps","Dropdown","cssClassSelect","selectedOption","DropdownNav","Month","calendarMonth","displayIndex","divProps","MonthCaption","MonthGrid","Months","Nav","Root","Weeks","Week","trProps","Weekday","Weekdays","WeekNumber","WeekNumberHeader","getComponents","customComponents","getDataAttributes","dataAttributes","argStr","constructFrom","addDays","amount","_date","addMonths","endOfDesiredMonth","addWeeks","addYears","millisecondsInWeek","millisecondsInDay","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarMonths","_dateLeft","_dateRight","yearDiff","getDefaultOptions","endOfWeek","weekStartsOn","endOfISOWeek","endOfMonth","endOfYear","formatDistanceLocale","formatDistance","tokenValue","buildFormatLongFn","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","buildMatchFn","matchPattern","matchResult","matchedString","parsePatterns","findIndex","findKey","rest","predicate","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","enUS","startOfYear","cleanDate","getDayOfYear","startOfWeek","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfISOWeekYear","fourthOfJanuary","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","fractionalSeconds","dayPeriodEnum","formatters","signedWeekYear","twoDigitYear","isoWeekYear","isoWeek","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","dateToCompare","_dateToCompare","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","isSameMonth","isSameYear","dates","dirtyDate","monthIndex","lastDayOfMonth","dateWithDesiredMonth","setYear","startOfMonth","dateLib","getDateLib","customLib","getDefaultClassNames","formatCaption","defaultDateLib","formatMonthCaption","formatDay","formatMonthDropdown","monthNumber","formatWeekNumber","weekNumber","formatWeekNumberHeader","formatWeekdayName","formatYearDropdown","formatYearCaption","getFormatters","customFormatters","defaultFormatters","getMonthOptions","displayMonth","navStart","navEnd","Date","getStyleForModifiers","dayModifiers","modifiersStyles","modifier","getWeekdays","ISOWeek","getYearOptions","calendarStart","calendarEnd","firstNavYear","lastNavYear","labelGrid","labelCaption","labelGridcell","labelDayButton","labelDay","labelNav","labelMonthDropdown","labelNext","labelPrevious","labelWeekday","labelWeekNumber","labelWeekNumberHeader","labelYearDropdown","NrOfDaysWithFixedWeeks","getDates","displayMonths","maxDate","firstMonth","lastMonth","fixedWeeks","startWeekFirstDate","endWeekLastDate","nOfDays","nOfMonths","extraDates","getDays","calendarMonths","initialDays","weekDays","getDisplayMonths","firstDisplayedMonth","calendarEndMonth","numberOfMonths","getInitialMonth","defaultMonth","today","endMonth","startMonth","initialMonth","CalendarDay","CalendarMonth","CalendarWeek","getMonths","dayPickerMonths","firstDateOfFirstWeek","lastDateOfLastWeek","monthDates","dayPickerMonth","getNavMonths","fromYear","toYear","fromMonth","toMonth","hasDropdowns","getNextMonth","pagedNavigation","getPreviousMonth","calendarStartMonth","getWeeks","initialWeeks","useControlledValue","controlledValue","uncontrolledValue","useCalendar","setFirstMonth","previousMonth","nextMonth","disableNavigation","onMonthChange","isDayInCalendar","goToMonth","newMonth","dayPickerContext","calculateFocusTarget","getModifiers","lastFocused","focusTarget","rangeIncludesDate","range","excludeEnds","isDateInterval","isDateRange","isDateAfterType","isDateBeforeType","isDayOfWeekType","isDatesArray","dateMatchModifiers","matchersArr","diffBefore","diffAfter","isDayBefore","isDayAfter","getFocusableDate","moveBy","moveDir","refDate","focusableDate","getNextFocus","refDay","attempt","targetMonth","focusDay","useFocus","autoFocus","setLastFocused","focusedDay","setFocused","useGetModifiers","showOutsideDays","internalModifiersMap","customModifiersMap","selectionModifiersMap","isOutside","isToday","modifierValue","dayFlags","selectionStates","customModifiers","useMulti","initiallySelected","required","setSelected","triggerDate","newDates","addToRange","initialRange","useRange","excludeDisabled","newRange","newDate","useSingle","compareDate","useSelection","single","multi","DayPicker","labels","defaultLabels","captionLayout","onDayBlur","onDayClick","onDayFocus","onDayKeyDown","onDayMouseEnter","onDayMouseLeave","onNextClick","onPrevClick","showWeekNumber","useAdditionalDayOfYearTokens","useAdditionalWeekYearTokens","formatOptions","labelOptions","selectedValue","blur","isFocusTarget","moveFocus","isInteractive","handlePreviousClick","handleNextClick","handleDayClick","handleDayFocus","handleDayBlur","handleDayKeyDown","keyMap","handleDayMouseEnter","handleDayMouseLeave","contextValue","handleMonthChange","selectedMonth","handleYearChange","dropdownMonths","dropdownYears","weekIndex","require","chunkArray","chunkSize","chunks","CustomYearGrid","dateMonth","chunkedMonths","quarterIndex","formattedYear","CustomCenturyGrid","onYearChange","currentYear","chunkedYears","yearIndex","Calendar$2","selectedRange","setDateMonth","minDate","calendarMode","setCalendarMode","fromDate","handleChangeMonth","newDateMonth","handlePrevMonth","handleNextMonth","handleChangeYear","formattedDate","disabledPrev","disabledNext","DoubleCalendar","rangeLimit","onDateChange","setSelectedRange","startDateMonth","setStartDateMonth","endDateMonth","setEndDateMonth","setStartDate","momentFrom","setEndDate","momentTo","selectedDates","nonNullValues","dateStr","enabledButton","Calendar","DATE_FORMAT","generateYearsList","listType","twoYearsAgo","cutoffMonth","startYear","yearsList","previousYear","List","items","handleClick","Historical","setStartAndEndDate","PeriodButton","timePeriods","setTimePeriod","showCalendar","setShowCalendar","showHistorical","setShowHistorical","isPopoverOpen","setIsPopoverOpen","calendarTimePeriod","setCalendarTimePeriod","historicalTimePeriod","setHistoricalTimePeriod","onPeriodClick","TimePeriods$1","useTimePeriods","availableTimePeriods","defaultTimePeriod","startDateQueryParam","endDateQueryParam","defaultPeriod","newTimePeriod","InvoiceCategories","invoiceCategories","invoiceCategory","setInvoiceCategory","useInvoiceCategories","selectedInvoiceCategories","singleMatcher","multiMatcher","decodeComponents","decode","customDecodeURIComponent","replaceMap","decodeUriComponent","encodedURI","splitOnFirst","separatorIndex","includeKeys","isNullOrUndefined","strictUriEncode","encodeFragmentIdentifier","encoderForArrayFormat","keyValueSeparator","parserForArrayFormat","accumulator","isEncodedArray","arrayValue","validateArrayFormatSeparator","decodeComponent","keysSorter","removeHash","hashStart","getHash","parseValue","extract","queryStart","query","returnValue","parameter","parameter_","key2","value2","shouldFilter","objectCopy","parseUrl","url_","stringifyUrl","queryFromUrl","queryString","urlObjectForFragmentEncode","pick","fragmentIdentifier","exclude","exclusionFilter","prepareUrl","filtersData","itemKey","multiFacilityIds","queryParams","useFuturePrices","futurePricesOptionInitialized","setFuturePricesOptionInitialized","setOption","priceOptions","optionName","FuturePrices","priceOption","setPriceOption","documentTypes","DocumentTypes","documentTypeIndex","documentType","setDocumentType","reportTypes","ReportTypes$1","reportType","setReportType","offlineStatuses","OfflineStatuses","offlineStatus","setOfflineStatus","partnerMarkers","PartnerMarker","partnerMarker","setPartnerMarker","filterOptions","BookingsStatuses","bookingsStatus","setBookingsStatus","Date$2","Customer","MultiSelectDropdown","Days$2","selectedDays","setDays","useDays","MultiFacilities","selectedFacilities","setFacilities","incomeTypes","IncomeTypes","incomeType","setincomeType","FILTERS","Venues","Facilities","TimePeriods","Days","ReportTypes","initParams","activeFilters","baseParams","useSelectedOptions","filters","setSelectedOptions","assignOption","mergedParams","mapObjectSkip","isObjectCustom","mapObject","mapper","isSeen","mapArray","mapResult","newKey","shouldRecurse","mapObjModule","toNoCase_1","toNoCase","hasSpace","hasSeparator","hasCamel","unseparate","uncamelize","separatorSplitter","camelSplitter","uppers","clean","toSpaceCase_1","toSpaceCase","toSpace","toSnakeCase_1","toSnakeCase","snakeCase","snakecaseKeys","patterns","getQueryString","snakeCaseKeys","getReportUrl","page","loadData","Filter$2","onUpdated","mergeClassNames","classList","FUNC_ERROR_TEXT","HASH_UNDEFINED","funcTag","genTag","reRegExpChar","reIsHostCtor","freeGlobal","freeSelf","isHostObject","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","funcToString","objectToString","reIsNative","splice","Map","getNative","nativeCreate","Hash","entry","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","eq","baseIsNative","isMasked","toSource","isKeyable","resolver","lodash_memoize","uniqDefined","normalizeLocales","splitEl","getUserLocalesInternal","_ref$useFallbackLocal","useFallbackLocale","_ref$fallbackLocale","fallbackLocale","languageList","_window","navigator","getUserLocales","getUserLocaleInternal","getUserLocale","makeGetEdgeOfNeighbor","getPeriod","getEdgeOfPeriod","defaultOffset","previousPeriod","makeGetEnd","getBeginOfNextPeriod","makeGetRange","functions","getYear","getMonth","getDate","getCenturyStart","centuryStartYear","centuryStartDate","getPreviousCenturyStart","getNextCenturyStart","getCenturyEnd","getPreviousCenturyEnd","getCenturyRange","getDecadeStart","decadeStartYear","decadeStartDate","getPreviousDecadeStart","getNextDecadeStart","getDecadeEnd","getPreviousDecadeEnd","getDecadeRange","getYearStart","yearStartDate","getPreviousYearStart","getNextYearStart","getYearEnd","getPreviousYearEnd","getYearRange","makeGetEdgeOfNeighborMonth","getMonthStart","monthStartDate","getPreviousMonthStart","getNextMonthStart","getMonthEnd","getPreviousMonthEnd","getMonthRange","makeGetEdgeOfNeighborDay","getDayStart","dayStartDate","getNextDayStart","getDayEnd","getDayRange","_CALENDAR_TYPE_LOCALE","CALENDAR_TYPES","CALENDAR_TYPE_LOCALES","WEEKDAYS","formatterCache","getFormatter","localeWithDefault","formatterCacheLocale","toSafeHour","safeDate","getSafeFormatter","formatDayOptions","formatLongDateOptions","formatMonthOptions","formatMonthYearOptions","formatShortWeekdayOptions","formatWeekdayOptions","formatYearOptions","formatLongDate","formatMonth","formatMonthYear","formatShortWeekday","formatWeekday","formatYear","SUNDAY","FRIDAY","SATURDAY","getDayOfWeek","calendarType","getBeginOfCenturyYear","beginOfCentury","getBeginOfDecadeYear","beginOfDecade","getBeginOfWeek","getMonthIndex","getWeekNumber","calendarTypeForWeekNumber","beginOfWeek","dayInWeekOne","beginOfFirstWeek","getBegin","rangeType","getBeginPrevious","getBeginNext","getBeginPrevious2","getBeginNext2","getEnd","getEndPrevious","getEndPrevious2","getRange","getValueRange","date1","date2","rawNextValue","toYearLabel","defaultFormatYear","getCenturyLabel","getDecadeLabel","isWeekend","calendarTypes","allViews","isCalendarType","isClassName","isMinDate","isMaxDate","isRef","isValue","isViews","isView","views","allowedViews","tileGroupProps","tileProps","Navigation","activeStartDate","drillUp","_ref$formatMonthYear","defaultFormatMonthYear","_ref$formatYear","_ref$navigationAriaLa","navigationAriaLabel","navigationAriaLive","navigationLabel","_ref$next2AriaLabel","next2AriaLabel","_ref$next2Label","next2Label","_ref$nextAriaLabel","nextAriaLabel","_ref$nextLabel","nextLabel","_ref$prev2AriaLabel","prev2AriaLabel","_ref$prev2Label","prev2Label","_ref$prevAriaLabel","prevAriaLabel","_ref$prevLabel","prevLabel","setActiveStartDate","showDoubleView","drillUpAvailable","shouldShowPrevNext2Buttons","previousActiveStartDate","previousActiveStartDate2","nextActiveStartDate","nextActiveStartDate2","prevButtonDisabled","previousActiveEndDate","prev2ButtonDisabled","nextButtonDisabled","next2ButtonDisabled","onClickPrevious","onClickPrevious2","onClickNext","onClickNext2","renderLabel","renderButton","labelClassName","_excluded","_objectSpread","toPercent","Flex","otherProps","between","isValueWithinRange","isRangeWithinRange","greaterRange","smallerRange","doRangesOverlap","range1","range2","getRangeClassNames","valueRange","dateRange","baseClassName","isRange","isRangeStart","isRangeEnd","getTileClasses","valueType","dateType","hover","valueRangeClassNames","valueArray","hoverRange","hoverRangeClassNames","TileGroup","_ref$count","dateTransform","_ref$step","step","Tile","tiles","point","datesAreDifferent","formatAbbr","maxDateTransform","minDateTransform","tileDisabled","tileClassName","tileContent","Decade","Decades","CenturyView","renderDecades","Year","Years","DecadeView","renderYears","_ref$formatMonth","defaultFormatMonth","YearView","renderMonths","_ref$formatDay","defaultFormatDay","_ref$formatLongDate","defaultFormatLongDate","currentMonthIndex","showFixedNumberOfWeeks","showNeighboringMonth","hasFixedNumberOfWeeks","activeEndDate","daysUntilEndOfTheWeek","weekdayClassName","_props$formatShortWee","defaultFormatShortWeekday","_props$formatWeekday","defaultFormatWeekday","onMouseLeave","anyDate","beginOfMonth","weekdayDate","onClickWeekNumber","WeekNumbers","numberOfWeeks","numberOfDays","startWeekday","weekNumbers","getCalendarTypeFromLocale","MonthView","_props$calendarType","showWeekNumbers","renderWeekdays","renderWeekNumbers","renderDays","defaultMinDate","defaultMaxDate","allValueTypes","getLimitedViews","minDetail","maxDetail","isViewAllowed","getView","getValueType","rawValue","valueDate","getDetailValue","valuePiece","detailValueFrom","getDetailValueFrom","getDetailValueTo","getDetailValueArray","getActiveStartDate","valueFrom","getInitialActiveStartDate","defaultActiveStartDate","defaultView","getIsSingleValue","_args","_assertThisInitialize","previousView","allowPartialRange","onActiveStartDateChange","onViewChange","selectRange","prevArgs","isSingleValue","_assertThisInitialize2","onDrillDown","nextView","_assertThisInitialize3","onDrillUp","_assertThisInitialize4","goToRangeStartOnSelect","isFirstValueInRange","nextValue","_assertThisInitialize5","_assertThisInitialize6","onClickDay","onClickDecade","onClickMonth","onClickYear","activeStartDateProps","activeStartDateState","valueProps","valueState","viewProps","viewState","processFunction","currentActiveStartDate","_formatYear","showNavigation","inputRef","isActiveStartDate","isLooseValue","DEFAULT_FORMAT","DateInput","dateText","handleChange","Error","errors","FormError","onSelectReportType","capitalizeFirstLetter","snakeToTitle","singularize","endings","regexp","toReplace","timePeriodTitles","IntervalTitleDecorator","scheduleInterval","ReportIntervals","availableReportIntervals","reportInterval","setReportInterval","ReportExportType","availableExportOptions","exportType","setExportType","exportOption","weekDaysOnlySelected","weekendOnlySelected","DaysSelector","dayNames","ReportDays","setWeekDays","_assign","_assign2","_stringAt","TO_STRING","_redefine","_iterators","Symbol","USE_SYMBOL","$exports","_wksModule","def","TAG","_setToStringTag","stat","setToStringTag","IteratorPrototype","_iterCreate","NAME","ObjectProto","_objectGpo","redefine","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","_iterDefine","Base","DEFAULT","IS_SET","FORCED","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$anyNative","methods","$at","iterated","_iterStep","TO_STRING_TAG","DOMIterables","Collection","_wksExt","iterator","META","setDesc","isExtensible","FREEZE","setMeta","fastKey","getWeak","onFreeze","_metaModule","wksExt","_wksDefine","$Symbol","_enumKeys","hiddenKeys","_objectGopn","gOPN","windowNames","getWindowNames","_objectGopnExt","$fails","wks","wksDefine","enumKeys","require$$17","require$$18","require$$19","require$$20","_create","require$$21","gOPNExt","require$$22","$GOPD","require$$23","$GOPS","require$$24","$DP","require$$25","require$$26","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setSymbolDesc","protoDesc","isSymbol","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","require$$27","require$$28","require$$29","es6Symbols","wellKnownSymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","require$$30","symbol","_typeof_1","_iterator","_iterator2","_symbol","_symbol2","_typeof2","_typeof3","_setPrototypeOf2","_create2","EventBaseObject","immediate","_EventBaseObject","_EventBaseObject2","_objectAssign2","TRUE","FALSE","eventNormalizers","wheelDelta","axis","wheelDeltaY","wheelDeltaX","eventDoc","button","retTrue","retFalse","DomEventObject","isNative","isDefaultPrevented","fixFns","fixFn","normalizer","EventBaseObjectProto","addEventListener","_EventObject","_EventObject2","eventType","wrapCallback","useCapture","addEventListenerWrap","addDOMEventListener","ContainerRender","ready","visible","getComponent","forceRender","didUpdate","isPointsEq","a1","a2","isAlignPoint","getAlignFromPlacement","builtinPlacements","placementStr","baseAlign","getAlignPopupClassName","prefixCls","saveRef","_defineProperty2","vendorPrefix","jsCssMap","getVendorPrefix","testProp","getTransitionName","getTransformName","setTransitionProperty","setTransform","getTransitionProperty","getTransformXY","matrix","matrix2d","matrix3d","setTransformXY","xy","match2d","match3d","RE_NUM","getComputedStyleX","forceRelayout","originalStyle","getClientPosition","getScroll","getScrollLeft","getOffset","getDocument","cs","computedStyle","_RE_NUM_NO_PX","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","getOffsetDirection","oppositeOffsetDirection","setLeftTop","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","preset","_dir","setTransform$1","originalXY","resultXY","setOffset","oriOffset","oLeft","oTop","tLeft","tTop","each","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","getPBMWidth","domUtils","refWin","documentElementProp","getWH","borderBoxValue","cssBoxValue","borderBoxValueOrIsBorderBox","getWHIgnoreDisplay","includeMargin","mix","getParent","getOffsetParent","positionStyle","skipStatic","getParent$1","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","originalPosition","scrollX","scrollY","viewportWidth","viewportHeight","documentWidth","documentHeight","bodyStyle","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","getRegion","getAlignOffset","region","getElFuturePos","refNodeRegion","targetOffset","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","reg","flipOffset","convertOffset","offsetLen","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","newOffset","newTargetOffset","newElFuturePos","_newPoints","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","alignPoint","tgtPoint","pageX","pageY","pointInView","buffer","bufferFn","isSamePoint","isSimilarValue","val1","val2","int1","int2","restoreFocus","getElement","getPoint","Align","onAlign","reAlign","sourceRect","lastPoint","currentPoint","preRect","childrenProps","propList","unsafeLifecyclesPolyfill","toArrayChildren","findChildInChildrenByKey","findShownChildInChildrenByKey","showProp","isSameChildren","c1","c2","same","child2","mergeChildren","nextChildrenPending","pendingChildren","START_EVENT_NAME_MAP","END_EVENT_NAME_MAP","startEvents","endEvents","detectEvents","testEl","EVENT_NAME_MAP","baseEventName","baseEvents","eventListener","removeEventListener","TransitionEvents","startEvent","endEvent","componentIndexof","componentClasses","ClassList","isCssAnimationSupported","Event","capitalPrefixes","prefixes","getStyleProperty","fixBrowserByTimeout","clearBrowserBugTimeout","cssAnimation","transitionName","endCallback","nameIsObj","activeClassName","nodeClasses","util","transitionMap","AnimateChild","animUtil","animationType","finishCallback","activeName","cssAnimate","stopper","defaultKey","getChildrenFromProps","Animate","nextChildren","currentlyAnimatingKeys","currentChildren","newChildren","currentChild","nextChild","newChild","hasPrev","showInNext","showInNow","hasNext","keysToEnter","keysToLeave","stateChildren","passedProps","Animate$1","LazyRenderBox","hiddenClassName","PopupInner","Popup","currentAlignClassName","savePopupRef","stretchChecked","targetHeight","targetWidth","getClassNameFromAlign","destroyPopupOnHide","stretch","onMouseEnter","onMouseDown","sizeStyle","newStyle","popupInnerProps","maskElement","maskTransition","popupDomNode","getRootDomNode","_state2","$ele","returnEmptyString","returnDocument","ALL_HANDLERS","IS_REACT_16","Trigger","popupVisible","triggerAfterPopupVisibleChange","currentDocument","newState","popupPlacement","popupAlign","prevPopupVisible","delayS","childPros","showAction","hideAction","_props5","_props6","_props7","childCallback","_props8","newChildProps","childrenClassName","renderComponent","portal","mouseEnterDelay","preTime","nextVisible","_context$rcTrigger","rcTrigger","findDOMNode","_props9","getPopupClassNameFromAlign","_props10","popupClassName","onPopupAlign","popupAnimation","popupTransitionName","popupStyle","mask","maskAnimation","maskTransitionName","zIndex","popup","mouseProps","popupContainer","hourOptions","minuteOptions","secondOptions","disabledHours","disabledMinutes","disabledSeconds","originalValue","disabledHourOptions","disabledMinuteOptions","disabledSecondOptions","changedValue","onEsc","_format","focusOnOpen","requestAnimationFrame","defaultOpenValue","inputReadOnly","invalid","invalidClass","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performanceNowModule","hr","raf","caf","frameDuration","_now","cp","rafModule","difference","perTick","_getPrototypeOf2","_classNames","ReactDom","topOption","formatOption","disabledOptions","Combobox","itemValue","use12Hours","isAM","onAmPmChange","ampm","onCurrentSelectPanelChange","showHour","hourOptionsAdj","hourAdj","minute","showMinute","showSecond","AMPMOptions","generateOptions","hideDisabledOptions","toNearestValidTime","Panel","currentSelectPanel","realValue","clearText","addon","hourStep","minuteStep","secondStep","clearIcon","validDefaultOpenValue","autoAdjustOverflow","placements","refFn","Picker","open","defaultOpen","_props$open","_open","_props$value","fmtString","selectColumnCount","onOpen","onClose","currentOpen","allowEmpty","_onClick","getPopupContainer","autoComplete","inputIcon","ReportTime","reportTime","setReportTime","TimePicker","ReportUsers","availableCcUsers","ccUsers","setCcUsers","Form$5","searchFilters","showCcUsersSelector","setReportTypes","handleFiltersChange","MegaFilter","ErrorBoundary$2","errorInfo","initialState","findReportType","filterReportIntervals","reducer","dayNumber","venueUsers","currentUser","availableUsers","Modal$3","setShow","onCompleted","useReducer","disabledConfirm","setDisabledConfirm","handleCreate","ErrorBoundary","Form","useModal","setOptions","isAbsolute","pathname","spliceOne","resolvePathname","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","up","addLeadingSlash","stripLeadingSlash","hasBasename","stripBasename","stripTrailingSlash","parsePath","hashIndex","searchIndex","createPath","createLocation","currentLocation","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","listeners","appendListener","isActive","notifyListeners","getConfirmation","supportsHistory","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","history","handlePopState","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","go","initialLocation","createHref","prevIndex","nextKeys","goBack","goForward","listenerCount","checkDOMListeners","isBlocked","unblock","unlisten","HashChangeEvent$1","HashPathCoders","stripHash","getHashPath","pushHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","encodePath","decodePath","ignorePath","locationsAreEqual$$1","encodedPath","prevLocation","allPaths","baseTag","hashChanged","nextPaths","clamp","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","isarray","pathToRegexpModule","pathToRegexp","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeAsterisk","segment","attachKeys","regexpToRegexp","arrayToRegexp","stringToRegexp","route","endsWithDelimiter","MAX_SIGNED_31_BIT_INT","commonjsGlobal","getUniqueId","objectIs","createEventEmitter","changedBits","onlyChild","createReactContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","Provider","oldValue","Consumer","_React$Component2","observedBits","_proto2","createNamedContext","historyContext","Router","cache$1","cacheLimit$1","cacheCount$1","compilePath$1","cacheKey","pathCache","matchPath","_options$exact","exact","_options$strict","_options$sensitive","sensitive","paths","_compilePath","isExact","memo","isEmptyChildren","Route","context$1","addBasename","createURL","staticHandler","methodName","Switch","withRouter","displayName","wrappedComponentRef","remainingProps","hoistStatics","useHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","navigate","Link","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","joinClassnames","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","FlashMessage","useWindowPosition","setPosition","handleResize","newPosition","adapters","logger","secondsSince","ConnectionMonitor","connection","staleThreshold","reconnectionBackoffRate","backoff","jitter","INTERNAL","message_types","protocols","supportedProtocols","Connection","consumer","allowReconnect","states","reconnect","Subscription","mixin","SubscriptionGuarantor","subscriptions","subscription","Subscriptions","channelName","channel","command","createWebSocketURL","createConsumer","getConfig","handleReceived","onSuccess","onFailed","REPORTS_PATH","ExportButton","customPath","setDisabled","reportFileGeneratorId","setReportFileGeneratorId","handleExport","defaultReportPath","urlWithParams","disconnect","buttonTitles","defaultClasses","ExportButtons","exportFormats","AddButton","buttonClassNames","showNotice","Header$1","currentUserIsRo","reportsLoaded","reportSchedulesCount","showModalCreate","dateFormatter","dayDateFormatter","timeFormatter","Text","periodGenerator","startKey","endKey","splitter","validDates","DatePeriod","TimeSlot","currencyFormatter","toCurrency","negativeBraces","hideSign","toCurrencyOrBlank","CurrencyOrBlank","Currency","Cell","Percent","linkFormatter","Column","LOCALE","HOUR_SETTINGS","PERCENT_SETTINGS","getNumberFormat","HourValue","PercentValue","Table$1","reportSchedules","showModalEdit","handleDelete","createRange","ultimatePaginationUtils","ultimatePaginationConstants","ultimate_pagination_constants_1","ultimatePaginationItemFactories","pageNumber","currentPage","totalPages","ultimate_pagination_utils_1","ultimate_pagination_item_factories_1","getPaginationModel","boundaryPagesRange","siblingPagesRange","hidePreviousAndNextPageLinks","hideFirstAndLastPageLinks","hideEllipsis","ellipsisSize","paginationModel","createPage","allPages","firstPagesStart","firstPagesEnd","firstPages","lastPagesStart","lastPagesEnd","lastPages","mainPagesStart","mainPagesEnd","mainPages","firstEllipsisPageNumber","showPageInsteadOfFirstEllipsis","createFirstEllipsisOrPage","firstEllipsis","secondEllipsisPageNumber","showPageInsteadOfSecondEllipsis","createSecondEllipsisOrPage","secondEllipsis","ultimatePagination","reactUltimatePagination","ITEM_TYPES","createUltimatePagination_1","_ultimatePagination","renderItemComponentFunctionFactory","itemTypeToComponent","onItemClickFunctionFactory","ItemComponent","onItemClick","createUltimatePagination","_ref2$WrapperComponen","WrapperComponent","UltimatePaginationComponent","restProps","renderItemComponent","itemModel","withPreventDefault","Page","Ellipsis","FirstPageLink","PreviousPageLink","NextPageLink","LastPageLink","Pagination","Index","setReportsLoaded","setReportSchedules","setCurrentUserIsRo","setReportSchedulesCount","pagination","setPagination","setPage","setItem","updateReportSchedules","showModal","handleChangePage","scheduleId","Table","IndexPage$1","history$2","ReportSchedules","IndexPage","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","debounce","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","toNumber","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","flush","debounced","isInvoking","isObjectLike","isBinary","lodash_debounce","_lodash","DebounceInput","_React$PureComponent","minLength","debounceTimeout","debouncedChangeFunc","_debounceTimeout2","oldTimeout","stateValue","forceNotifyByEnter","forceNotifyOnBlur","maybeOnKeyDown","maybeOnBlur","maybeRef","_require","lib","AccessContext","React.createContext","ViewModeContext","StaffRotaContext","Search$1","term","setTerm","Venue$1","setVenueId","setReady","fullAccess","setVenues","prepareVenues","paramVenueId","selectedVenueId","TimePeriod","ViewModes","ViewMode","allowManage","viewMode","setViewMode","Filter$1","venueFilterReady","setVenueFilterReady","Search","Venue","showFirstColumn","multiple","clearHighlight","toggleSelectAll","SHIFTS","DIRECTIONS","SESSIONS_OPTIONS","SESSIONS","SmartTime","defaultMinutes","defaultDirection","defaultSession","defaultIncludeInternal","internalEnabled","setInternalEnabled","handleMinutesChange","setDirection","TimeSelector","timeOption","setTimeOption","saveShiftOptions","VERSION","zones","links","countries","guesses","cachedGuess","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","whole","fractional","multiplier","arrayToInt","intToUntil","mapIndices","indices","unpack","offsets","untils","Zone","packedString","unpacked","zone_name","country_code","offsetNext","offsetPrev","tz","Country","country_name","zone_names","OffsetAt","at","timeString","ZoneScore","offsetAt","findChange","low","mid","userOffsets","sortZoneScores","addToGuesses","guessesForUserOffsets","offsetsLength","filteredGuesses","guessesOffset","rebuildGuess","intlName","normalizeName","zoneScores","zoneScore","getZone","guess","ignoreCache","addZone","packed","normalized","caller","getNames","getCountryNames","addLink","normal0","normal1","addCountries","country_zones","getCountry","zonesForCountry","country","with_offset","zoneExists","needsOffset","isUnixTimestamp","abbrWrap","resetZoneWrap","resetZoneWrap2","momentTimezoneModule","Error$2","Form$4","staffItem","valueB","onChangeValueB","users","setUsers","Rescue","ModalEdit$1","itemId","setAfterEditMessageType","setStaffItem","setErrors","updatingInProgress","setUpdatingInProgress","confirmChanges","rescue","Api$3","__publicField","staffItemId","staffItemIds","MESSAGE","MESSAGE2","ModalDelete","currentUserId","removalInProgress","setRemovalInProgress","handleRemove","MultipleForm","selectedItemIds","staffItemsErrors","ErrorBoundary$1","MultipleEdit","selectedNonCancelledItemIds","staffItems","setStaffItems","MultipleClearHighlight","setClearHighlight","MultipleDelete","userIds","AfterEdit","messageType","Modals","onRemoved","onEdited","showEdit","setShowEdit","showDelete","setShowDelete","showMultiEdit","setShowMultiEdit","showClearHighlightEdit","setShowClearHighlightEdit","showMultiDelete","setShowMultiDelete","showAfterEdit","setShowAfterEdit","afterEditMessageType","handleOnEdited","handleOnRemoved","ModalEdit","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","TYPE","VENDOR","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","extensions","mergedRegexes","enumerize","enums","str1","str2","lowerize","majorize","rgxMapper","arrays","strMapper","oldSafariMap","windowsVersionMap","UAParser","_navigator","_ua","_uach","_rgxmap","_isSelfNav","_browser","_cpu","_device","_engine","_os","parser","_interopDefault","React__default","ClientUAInstance","cpu","device","engine","os","setUa","userAgentString","parseUserAgent","userAgent","UserAgentInstance","UAHelper","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","_s","DeviceTypes","BrowserTypes","OsTypes","InitialDeviceTypes","checkDeviceType","setUserAgent","setDefaults","getNavigatorInstance","isIOS13Check","nav","browserPayload","mobilePayload","smartTvPayload","isSmartTV","consolePayload","isConsole","wearablePayload","isWearable","embeddedPayload","isEmbedded","deviceDetect","isMobile","isTablet","isMobileType","isTabletType","isMobileAndTabletType","isSmartTVType","isBrowserType","isWearableType","isConsoleType","isEmbeddedType","_ref8","getMobileVendor","_ref9","getMobileModel","_ref10","getDeviceType","_ref11","isAndroidType","_ref12","isWindowsType","_ref13","isMacOsType","_ref14","isWinPhoneType","_ref15","isIOSType","_ref16","getOsVersion","_ref17","getOsName","_ref18","isChromeType","_ref19","isFirefoxType","_ref20","isChromiumType","_ref21","isEdgeType","_ref22","isYandexType","_ref23","isSafariType","_ref24","isMobileSafariType","_ref25","isOperaType","_ref26","isIEType","_ref27","isMIUIType","_ref28","isSamsungBrowserType","_ref29","getBrowserFullVersion","_ref30","getBrowserVersion","_ref31","getBrowserName","_ref32","getEngineName","_ref33","getEngineVersion","_ref34","isElectronType","isEdgeChromiumType","getIOS13","getIPad13","getIphone13","getIPod13","getUseragent","userAg","buildSelectorsObject","isMobileSafari","isChromium","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","osVersion","osName","fullBrowserVersion","browserVersion","browserName","mobileVendor","mobileModel","engineName","engineVersion","getUA","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","getSelectorsByUserAgent","_UAHelper$parseUserAg","AndroidView","renderWithFragment","BrowserView","IEView","IOSView","MobileView","TabletView","WinPhoneView","MobileOnlyView","SmartTVView","ConsoleView","WearableView","CustomView","withOrientationChange","useMobileOrientation","_useState","_useState2","handleOrientationChange","useDeviceData","hookUserAgent","useDeviceSelectors","deviceData","isMobile_1","momentTime","timePresenter","Row","selectedItems","toggleSelectedItem","handleEdit","rowClass","MarkViewed","nonViewed","nonViewedNames","setNonViewed","checked","setChecked","EmptyListModal","Multiple$1","setMultiple","setShowModal","ClearHighlight","setSelectedItems","Actions","showCreate","handleMultiEdit","handleClearHighlightEdit","handleMultiDelete","showMultiple","showClearHighlight","showExportButton","Multiple","showCreateButton","creationProcess","setItemId","showAfterConfirmed","setShowAfterConfirmed","selectedNonCancelledItems","setSelectedNonCancelledItems","preloadItem","newSelectedItems","newSelectedNonCancelledItems","row","setTotal","setNonViewedNames","qid","setQid","filterReady","setFilterReady","fetchData","Filter","DAYS","Block","eventDate","setEventDate","endCondition","setEndCondition","setSelectedDays","maxEndConditionDate","weekDay","toggleSelectedDay","dayId","newSelectedDays","Shift","removeItem","repeatShiftEnabled","setBlock","shiftOptions","setShiftOptions","BackButton","ConfirmationErrorModal","CreateButton","onCreated","onError","creationInProgress","setCreationInProgress","showErrorModal","setShowErrorModal","AddShiftButton","handleAdd","initItems","Form$3","setItems","staffRotaId","setStaffRotaId","newItems","_el","history$1","_callSuper","_construct","_toPropertyKey","_superPropBase","_get","receiver","_classPrivateFieldGet","privateMap","_classExtractFieldDescriptor","_classApplyDescriptorGet","_classPrivateFieldSet","_classApplyDescriptorSet","_checkPrivateRedeclaration","privateCollection","_classPrivateFieldInitSpec","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","restoreActiveElement","returnFocus","swalPrefix","swalClasses","icons","iconTypes","icon","consolePrefix","previousWarnOnceMessages","warnOnce","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","hasToPromiseFn","asPromise","isPromise","elementBySelector","selectorString","elementByClass","getPopup","getIcon","getIconContent","getTitle","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","getCancelButton","getDenyButton","getInputLabel","getLoader","getActions","getFooter","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","isToast","setInnerHtml","removeCustomClasses","applyCustomClass","getInput$1","inputClass","focusInput","toggleClass","getDirectChildByClass","applyNumericalStyle","showWhenInnerHtmlPresent","setStyle","allButtonsAreHidden","isScrollable","hasCssAnimation","animDuration","transDuration","animateTimerProgressBar","reset","timerProgressBar","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","resetOldContainer","oldContainer","resetValidationMessage$1","addInputChangeListeners","file","rangeOutput","checkbox","textarea","getTarget","setupAccessibility","setupRTL","oldContainerExisted","parseHtmlToContainer","param","handleObject","handleJqueryElem","animationEndEvent","renderActions","actions","loader","renderButtons","confirmButton","denyButton","cancelButton","handleButtonsStyling","buttonType","buttonName","renderCloseButton","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","grow","privateProps","inputClasses","renderInput","innerParams","rerender","inputContainer","setAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attrName","inputAttributes","setInputPlaceholder","setInputLabel","prependTo","labelClass","inputType","checkAndSetInputValue","rangeInput","radio","checkboxContainer","getMargin","initialPopupWidth","textareaResizeHandler","textareaWidth","renderContent","htmlContainer","renderFooter","footer","renderIcon","setContent","applyStyles","_Object$entries$_i","iconType","iconClassName","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","oldContent","newContent","iconContent","defaultIconHtml","_i2","renderImage","image","renderPopup","addClasses$1","showClass","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","stepEl","createStepElement","lineEl","createLineElement","renderTitle","isVisible","clickConfirm","_dom$getConfirmButton","clickDeny","_dom$getDenyButton","clickCancel","_dom$getCancelButton","DismissReason","removeKeydownHandler","addKeydownHandler","dismissWith","keydownHandler","setFocus","_dom$getPopup","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","handleEnter","handleTab","handleArrows","handleEsc","btnIndex","buttons","buttonToFocus","privateMethods","setAriaHidden","bodyChildren","unsetAriaHidden","isSafariOrIOS","iOSfix","lockBodyScroll","shouldPreventTouchMove","isStylus","isZoom","undoIOSfix","measureScrollbar","scrollbarWidth","previousBodyPadding","replaceScrollbarWithPadding","initialBodyOverflow","undoReplaceScrollbarWithPadding","removePopupAndResetState","didClose","triggerDidCloseAndDispose","removeBodyClasses","close","resolveValue","prepareResolveValue","swalPromiseResolve","triggerClosePopup","handleAwaitingPromise","handlePopupAnimation","rejectPromise","animationIsSupported","animatePopup","showLoading","buttonToReplace","Swal","replaceButton","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","processInputOptions","inputOptions","populateSelectOptions","formatInputOptions","populateRadioOptions","renderOption","optionLabel","optionValue","inputOption","optgroup","radioValue","radioLabel","radioInput","radioLabelElement","radios","valueFormatted","handleConfirmButtonClick","handleConfirmOrDenyWithInput","confirm","handleDenyButtonClick","deny","handleCancelButtonClick","handleInputValidator","validationPromise","validationMessage","preDenyPromise","preDenyValue","rejectWith","succeedWith","preConfirmPromise","preConfirmValue","hideLoading","domCache","showRelatedButton","getInput","setButtonsDisabled","setInputDisabled","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","resetValidationMessage","defaultParams","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","showWarningsForParams","update","validUpdatableParams","filterValidParams","updatedParams","_destroy","disposeWeakMaps","disposeSwal","unsetWeakMaps","instanceMethods","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","isAnyButtonShown","ignoreOutsideClick","isJqueryElement","isElement","argsToParams","mixinParams","MixinSwal","priorityMixinParams","getTimerLeft","stopTimer","resumeTimer","toggleTimer","increaseTimer","isTimerRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","staticMethods","Timer","running","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalFunctionParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","swalParams","showWarningsForAttributes","swalFunctions","swalButtons","paramNames","allowedElements","allowedAttributes","attribute","SHOW_CLASS_TIMEOUT","openPopup","bodyStyles","addClasses","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","scrollbarPadding","defaultInputValidators","setDefaultInputValidators","validateCustomTargetElement","setParameters","currentInstance","_promise","SweetAlert","outerParams","userParams","isAwaitingPromise","prepareParams","populateDomCache","swalPromise","onFinally","dismiss","setupTimer","initFocus","templateParams","blurActiveElement","focusButton","initiationDate","ukrainianAnthem","_currentInstance","NeoDialog","yesText","noText","showDenyButton","ConfirmButton","serviceMessage","staffRotaCreated","confirmationInProgress","setConfirmationInProgress","confirmStaffItem","NewPage","setData","setServiceMessage","myRef","executeScroll","handleUpdateTable","AfterConfirmedModal","ScrollToTop","ScrollToTop$1","StaffRota","setAllowManage","showAfterConfirmedModal","setShowAfterConfirmedModal","afterConfirmedMessage","setAfterConfirmMessage","setCurrentUserId","handleStaffRotaCreated","viewModeSettings","newStaffRotaSettings","LAZY_COMPONENTS","__vitePreload","Index$1","COMPONENTS","load","lazy","Suspense","EventListener","eventOptions","binding","extendedEvent","extendEvent","leftIndex","rightIndex","stopImmediatePropagation","Dispatcher","application","clearEventListeners","eventListenerMap","defaultActionDescriptorFilters","descriptorPattern","parseActionDescriptorString","descriptorString","keyFilter","parseEventTarget","parseEventOptions","eventTargetName","stringifyEventTarget","namespaceCamelize","capitalize","dasherize","Action","schema","getDefaultEventNameForElement","eventFilter","filteres","ctrl","alt","standardFilter","typecast","defaultEventNames","Binding","actionDescriptorFilters","passes","currentTarget","actionEvent","controller","ElementObserver","mutations","mutation","tree","processor","AttributeObserver","fetch","del","prune","Multimap","_values","SelectorObserver","_attributeName","matchedBefore","StringMapObserver","TokenListObserver","unmatchedTokens","matchedTokens","previousTokens","currentTokens","firstDifferingIndex","zip","previousToken","currentToken","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","valuesByToken","BindingObserver","ValueObserver","writer","rawOldValue","changedMethodName","changedMethod","valueDescriptorMap","descriptors","hasMethodName","TargetObserver","readInheritableStaticArrayValues","constructor","propertyName","ancestors","getAncestorsForConstructor","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","definition","OutletObserver","outletName","observer","_selector","outlet","dependencies","identifiers","Context","scope","functionName","bless","shadow","getBlessedProperties","shadowConstructor","shadowProperties","getShadowProperties","blessedProperties","blessing","getOwnKeys","getShadowedDescriptor","shadowingDescriptor","extendWithReflect","extended","testReflectExtension","blessDefinition","Module","ClassMap","DataMap","Guide","warnedKeys","attributeValueContainsToken","TargetSet","targetName","targetNames","targetDescriptor","revisedAttributeName","OutletSet","controllerElement","outletNames","outlets","controllerAttribute","Scope","ScopeObserver","scopesByIdentifier","referenceCount","afterLoad","defaultSchema","objectFromEntries","Application","domReady","controllerConstructor","ClassPropertiesBlessing","classDefinition","propertiesForClassDefinition","OutletPropertiesBlessing","outletDefinition","propertiesForOutletDefinition","camelizedName","outletController","TargetPropertiesBlessing","targetDefinition","propertiesForTargetDefinition","ValuePropertiesBlessing","valueDefinitionPairs","propertyDescriptorMap","valueDefinitionPair","valueDescriptor","parseValueDefinitionPair","propertiesForValueDefinitionPair","read","write","typeDefinition","valueDescriptorForTokenAndTypeDefinition","parseValueTypeConstant","constant","parseValueTypeDefault","parseValueTypeObject","typeFromObject","defaultValueType","propertyPath","parseValueTypeDefinition","typeFromDefaultValue","typeFromConstant","defaultValueForDefinition","defaultValuesByType","readers","writers","writeString","writeJSON","Controller$1","_identifier","_application","bubbles","Controller","ApiTokensController","BillController","expandedDescriptionsCount","calendarIco","isDateInMonth","dateValue","givenDate","monthToCheck","InlineDatepicker","handleChangeValue","minEventDate","maxEventDate","onChangeDay","Facility$2","EventDate$1","Periods","periods","startTime","endTime","onChangeStartTime","onChangeEndTime","startPeriods","endPeriods","dropdownsDisabled","BookingOption","bookingOptions","VatCheckbox","Extra","description","pricing_calculation_type","mandatory","persons","price_adjustment","price_adjustment_reason","showPriceAdjustment","onChangeChecked","onPriceAdjustmentChange","onPriceAdjustmentReasonChange","onChangePersons","List$1","extras","handleChangeChecked","handleChangePersons","handlePriceAdjustmentChange","handlePriceAdjustmentReasonChange","prepareExtras","bookingsExtras","dbe","getLastIndexChecked","memoExtras","lastIndexChecked","getDefaultShowAll","ExtrasDropdown","setBookingsExtras","showAllExtras","setShowAllExtras","extraId","newBookingsExtras","visibleExtras","PriceAdjustmentReason","PriceAdjustment","Error$1","Api$2","userId","httpParams","bookingOptionKey","bookingId","facilityKey","internalOrderUuid","api$1","statusOrPrice","Notice","notice","TimeSlots","startTimeIndex","endTimeIndex","clickItem","Modal$2","loading","onSendForm","continueButtonDisabled","reassignStartAndEndTime","bookingDayRateAvailablePeriods","startTimes","endTimes","selectPeriods","momentPrevStartTime","startItem","prepareItem","sortItems","maxEndIndex","availablePeriods","momentStartTime","ProcessingModal","showProcessing","processingModal","LuxonError","InvalidDateTimeError","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","InvalidArgumentError","ZoneIsAbstractError","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","ts","otherZone","singleton","SystemZone","parseZoneInfo","formatOffset","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","fMonth","fDay","fYear","fadOrBc","fHour","fMinute","fSecond","partsOffset","filled","ianaZoneCache","IANAZone","adOrBc","asUTC","objToLocalTS","asTS","over","intlLFCache","getCachedLF","locString","intlDTCache","getCachedDTF","intlNumCache","getCachedINF","inf","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","weekInfoCache","getCachedWeekInfo","parseLocaleString","localeStr","xIndex","uIndex","selectedStr","smaller","numberingSystem","intlConfigString","outputCalendar","mapMonths","dt","DateTime","mapWeekdays","listStuff","loc","englishFn","intlFn","supportsFastNumbers","PolyNumberFormatter","intl","forceSimple","padTo","otherOpts","intlOpts","fixed","roundTo","padStart","PolyDateFormatter","gmtOffset","offsetZ","offsetName","PolyRelFormatter","isEnglish","hasRelative","English.formatRelativeTime","fallbackWeekSettings","weekSettings","defaultToEN","specifiedLocale","Settings","localeR","numberingSystemR","outputCalendarR","weekSettingsR","validateWeekSettings","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","isActuallyEn","hasNoWeirdness","alts","English.months","English.weekdays","English.meridiems","English.eras","matching","hasLocaleWeekInfo","FixedOffsetZone","signedOffset","InvalidZone","zoneName","normalizeZone","defaultZone","lowered","numberingSystems","numberingSystemsUTF16","hanidecChars","parseDigits","digitRegexCache","resetDigitRegexCache","digitRegex","ns","defaultNumberingSystem","defaultOutputCalendar","twoDigitCutoffYear","throwOnInvalid","defaultWeekSettings","cutoffYear","Invalid","explanation","nonLeapLadder","leapLadder","unitOutOfRange","js","computeOrdinal","uncomputeOrdinal","month0","isoWeekdayToLocal","isoWeekday","gregorianToWeek","gregObj","minDaysInFirstWeek","weeksInWeekYear","timeObject","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","usesLocalWeekValues","hasInvalidWeekData","validYear","isInteger","validWeek","integerBetween","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","millisecond","validHour","validMinute","validSecond","validMillisecond","maybeArray","thing","bestBy","by","best","pair","bottom","floorMod","isNeg","parseInteger","parseFloating","parseMillis","fraction","digits","towardZero","factor","modYear","offsetFormat","timeZone","offHourStr","offMinuteStr","offHour","offMin","offMinSigned","asNumber","numericValue","normalizeObject","monthsLong","monthsShort","monthsNarrow","weekdaysLong","weekdaysShort","weekdaysNarrow","meridiems","erasLong","erasShort","erasNarrow","meridiemForDateTime","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","numeric","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","stringifyTokens","splits","tokenToString","macroTokenToFormatOpts","Formats.DATE_SHORT","Formats.DATE_MED","Formats.DATE_FULL","Formats.DATE_HUGE","Formats.TIME_SIMPLE","Formats.TIME_WITH_SECONDS","Formats.TIME_WITH_SHORT_OFFSET","Formats.TIME_WITH_LONG_OFFSET","Formats.TIME_24_SIMPLE","Formats.TIME_24_WITH_SECONDS","Formats.TIME_24_WITH_SHORT_OFFSET","Formats.TIME_24_WITH_LONG_OFFSET","Formats.DATETIME_SHORT","Formats.DATETIME_MED","Formats.DATETIME_FULL","Formats.DATETIME_HUGE","Formats.DATETIME_SHORT_WITH_SECONDS","Formats.DATETIME_MED_WITH_SECONDS","Formats.DATETIME_FULL_WITH_SECONDS","Formats.DATETIME_HUGE_WITH_SECONDS","Formatter","fmt","currentFull","bracketed","formatOpts","knownEnglish","useDateTimeFormatter","English.meridiemForDateTime","standalone","English.monthForDateTime","English.weekdayForDateTime","maybeMacro","English.eraForDateTime","tokenToField","lildur","realTokens","literal","collapsed","ianaRegex","combineRegexes","full","combineExtractors","extractors","mergedVals","mergedZone","extractor","simpleParse","offsetRegex","isoExtendedZone","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","weekStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","fromStrings","English.monthsShort","English.weekdaysLong","English.weekdaysShort","extractRFC2822","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","extractISOTimeOnly","parseISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","conf","durationToMillis","vals","sum","normalizeValues","previousVal","rollUp","removeZeroes","newVals","accurate","durationLike","fmtOpts","millis","mixed","conversionAccuracy","built","accumulated","lastUnit","negated","v1","v2","validateStartEnd","Interval","builtStart","friendlyDateTime","builtEnd","validateError","startIsValid","endIsValid","dateTime","dateTimes","sorted","added","numberOfParts","intervals","sofar","currentCount","ends","flattened","mapFn","Info","locObj","dayDiff","earlier","later","utcDayStart","highOrderDiffs","differs","lowestOrder","highWater","differ","remainingMillis","lowerOrderUnits","MISSING_FTP","intUnit","NBSP","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","startIndex","escapeToken","unitForToken","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","partTypeStyleToTokenVal","tokenForPart","resolvedOpts","isSpace","actualType","buildRegex","matchIndex","dateTimeFromMatches","toField","specificOffset","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatOptsToTokens","expandMacroTokens","TokenParser","regexString","rawMatches","explainFromTokens","parseFromTokens","invalidReason","MAX_DATE","unsupportedZone","possiblyCachedWeekData","possiblyCachedLocalWeekData","inst","fixOffset","localTS","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","setZone","interpretationZone","toTechFormat","allowZ","toISODate","longFormat","toISOTime","suppressSeconds","suppressMilliseconds","includeOffset","extendedZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","normalizeUnit","normalizeUnitWithLocalWeeks","guessOffsetForZone","zoneOffsetGuessCache","zoneOffsetTs","quickDT","offsetProvis","diffRelative","lastOpts","argList","ot","zoneToUse","tsNow","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","localeToUse","localeOpts","tokenList","dayMs","minuteMs","oEarlier","oLater","o1","ts1","ts2","keepCalendarTime","newTS","offsetGuess","asObj","settingWeekStuff","useLocaleWeeks","normalizedUnit","ext","includePrefix","includeZone","includeOffsetSpace","otherDateTime","durOpts","otherIsLater","diffed","adjustedToZone","formatParser","Formats.DATE_MED_WITH_WEEKDAY","Formats.DATETIME_MED_WITH_WEEKDAY","dateTimeish","Form$2","setLoading","setBookingOptions","setExtras","setPeriods","setMinEventDate","setMaxEventDate","setBookingId","setUserId","setFacilityKey","setBookingOptionKey","vatEnabled","setVatEnabled","setStartTime","setEndTime","setDay","priceAdjustment","setPriceAdjustment","priceAdjustmentReason","setPriceAdjustmentReason","setShowPriceAdjustment","showVatEnabled","setShowVatEnabled","setInternalOrderUuid","setInProgress","isNull","newStartTime","newEndTime","newEventDate","luxonEventDate","response2","newBookingOptionKey","newBookingId","newFacilityKey","newInternalOrderUuid","response3","newPeriod","failedLoading","handleChangeFacility","newExtras","bookingsExtra","bok","loadPeriods","handleChangeBookingOption","handleChangeEventDate","handleChangeVat","handleChangeStartTime","handleChangeEndTime","extraIds","formattedEventDate","bookings_extra","destroy","reloadUrl","Facility","EventDate","Extras","BillRowController","modalBox","elemDiv","MapBoxController","RoomController","gallery","FavouriteFacilityController","facilityId","presence","dataset","hasText","PopoverController","AddVenues","onVenuesAdded","ids","$form","regex2","indexes","newHtml","VenueUsersController","updForm","checkboxes","notification","userAccessType","accessType","notificationColumn","showNotificationColumn","venueCheckboxes","multiselectRow","addVenues","isPercentage","hideContent","showContent","ANIMATION_STATE_CLASSES","getStaticStateClasses","animationStateClasses","propsToOmitFromDiv","AnimateHeight","componentProps","animateOpacity","applyInlineTransitions","contentClassName","userDelay","userDuration","onHeightAnimationEnd","onHeightAnimationStart","propKey","prevHeight","contentElement","animationClassesTimeoutID","timeoutID","stateClasses","prefersReducedMotion","initHeight","initOverflow","currentHeight","setCurrentHeight","setOverflow","useTransitions","setUseTransitions","animationStateClassNames","setAnimationStateClassNames","contentHeight","totalDuration","newHeight","timeoutHeight","timeoutOverflow","timeoutUseTransitions","isCurrentHeightAuto","newAnimationStateClassNames","timeoutAnimationStateClasses","componentStyle","contentStyle","Modal$1","selectedAll","selectAllValue","newValues","SELECT_ALL_VALUE","MultiSelect$1","showSelectedNumber","myOptions","onChangeSorted","newV","ReactSelect","actionMete","InfoIcon","HirersOptions","hirers","setHirers","Form$1","conversationPurpose","onlineMembershipsPurpose","defaultHirers","messageHeight","setMessageHeight","dateOfBooking","setDateOfBooking","_setHirers","usersReady","setUsersReady","facilitiesReady","setFacilitiesReady","showVenuesFilter","setShowVenuesFilter","setSelectedVenueId","selectedUsers","setSelectedUsers","setSelectedFacilities","userSignature","setUserSignature","messageRef","fileRef","hirersOptions","hirer","enabledSendButton","applyFilter","newSelectedUsers","handleClickDateOfBooking","customMessageSignature","venueAndRecipients","res1","res2","res3","inboxes","sendMessage","facilitiesAndBookingDatesDisabled","MultiSelect","DatePicker","MultiMessageButtonController","mountPoint","CognitaVenueFieldsController","CustomMessageSignatureController","submenuElement","enabledSignatureCheckbox","TagsInputController","SmartyForm","formGroup","formOptions","EditAccountPasswordController","requirementText","modalContent","passwordBlock","requirementBlock","OrderCancellationRequestController","customRefundElement","refundableTextEl","selectedRefundPercent","customRefundPercent","refundPercent","LinkVenuesFacilitiesController","RELOAD_TRIGGER","NeoTableController","queryStringIndex","sortBy","sortDir","span","isCurrentSortBy","spanTitle","sD","pageLink","SoftDeletedFacilityController","FlashController","OrderMenuButtonController","ulDropDown","newUlDropDown","CustomerCustomOptionsController","$parent","exceptedIds","extraList","existedRecords","bookingOptionList","resultClassName","$resultBlock","CustomerVenueLinkingsController","checkboxesContainer","Neo$1","tableName","Neo","VenueGroupsController","selectedIncomeType","checkedVenues","boolean","getRandomValues","rnds8","rng","byteToHex","bytesToUuid","buf","bth","v4","rnds","NeoModal","contentDiv","parsedHTML","firstDiv","randomUUID","uuidv4","AttachmentsController","toggleUrl","BillVersionsController","cacheNumber","buttonsList","cancellationRequestBtnBlock","removeClassFor","updateBill","amendButton","activeAmendmentContainer","addSessionsBlock","hideCancellationRequestButtons","Tab","header","tabParams","targetDiv","orderInfoElement","BillButtonsController","sessionBlock","addSessions","orderUrl","OrderTab","bookingForm","tab","Checkouts__VenueQuestionsController","isElementInViewport","question","answersTriggerChild","parsedAnswers","childInputs","tabPane","navLink","NeoModalController","messageBlock","errorMessage","errorGroups","errorMessages","errorGroup","successEvent","errorEvent","NeoButtonController","CheckFileSize","Document","uploadUrl","updateFile","removeDocument","documentsLength","onInProgress","allowDelete","askUpload","setAskUpload","uploadProcess","setUploadProcess","showError","setShowError","showErrorMessage","setShowErrorMessage","hiddenDeleteButton","setHiddenDeleteButton","uploadPercent","setUploadPercent","upload","uploadFile","approve","increase","progressEvent","progress","decrease","removeDoc","visibleDelete","fileClassName","Documents","initDocuments","documentsLimit","documents","setDocuments","addDocument","updatedDocuments","sendEvent","isMandatory","FileUploaderController","documentComponent","PendingModificationController","subscriptionOptions","IncomeOptionFormController","amountBox","incomeOptionStartDateInput","incomeOptionEndDateInput","firstCheckedVenueCommission","amountInput","firstVenueCommission","PaymentCardController","CheckoutPaymentController","stripeIntentStatus","axn","onReceived","elementStyles","stripeForm","stripe","onSubmit","onDisabledInputs","onEnabledInputs","stripeElements","elementOptions","cardNumber","cardExpiry","cardCvc","resetForm","enableInputs","disableInputs","triggerBrowserValidation","submit","plainInputsValid","handleSubmit","addErrorsHandler","savedErrors","nextError","maybeFoundError","PaymentFormController","submitEvent","failedEvent","anx","modification","orderId","clientSecret","confirmFn","modificationId","RetryFailedPaymentController","parentClassName","visibleElement","CasualPaymentController","CalendarScrollerController","dateEl","pageStep","pageDirection","DatepickerController","autoclose","onChangeDateCallback","datepicker","FileManager","tableRows","selectedVenue","docType","filterDocs","venueName","venueFromRow","documents_tab","venue_questions_tab","nameInput","expirationInput","linkInput","_self","request_url","itemRow","FileManagerController","fileManager","currentPath","newPath","modalElement","cellEl","smartRedirect","redirectTo","redirectURL","ConversationButtonsController","userType","primaryName","primaryEmail","encodedTlds","encodedUtlds","alpha","asciinumeric","alphanumeric","emoji","scheme","slashscheme","registerGroup","addToGroups","flagsForToken","exactOnly","inputs","templateState","allFlags","tt","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","SLASH","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","ASCII_LETTER","LETTER","EMOJI","DIGIT","SPACE","NL","EMOJI_VARIATION","EMOJI_JOINER","tlds","utlds","init$2","customSchemes","Start","decodeTlds","Num","Word","UWord","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","sch","run$1","iterable","stringToArray","charCount","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","defaultt","jr","encoded","words","popDigitCount","popCount","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","isCallable","MultiToken","protocol","formattedHref","rel","eventListeners","createTokenClass","Token","Email","Nl","Url","makeState","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","SchemeColon","SlashSchemeColon","SlashSchemeColonSlash","UriPrefix","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","HTML_NODE","TXT_NODE","replaceChildWithChildren","oldChild","lastNewChild","tokensToNodes","linkifyElementHelper","childElement","getDefaultRender","linkifyElement","LinkifyController","FileUploaderValidatorController","fileSize","FacilityController","Components","ReactComponentController","InfoPageController","rows","OnlineFacilityController","OnlineMembershipPlanController","NewSpecialDateController","typeSelect","currentAction","ToggleInputsController","currentState","toggleInputs","FuturePricesModalController","SessionStorageController","ExtraFormController","toggleFacilities","togglePricingCalculationType","toggleFuturePrice","future_extra_price_block","futureToggle","ExtrasTableController","SignOutController","CheckboxBlockController","PaymentScheduleOverrideController","radioButton","VenueController","stripeConnectVenueId","InboxUnreadCountController","OnlineMembershipCancellationController","FileManagerFiltersController","searchInput","docTypeInput","customerId","linkToOnlineMembership","searchData","doc_type","waitTime","OnlineMembersButtonsController","parsedForm","addImageButton","reader","imagePreview","VenueCheckoutController","MembersMultiMessageForm","MembersMultiMessageButtonController","RelatedTeamsController","CalendarBookingModalController","Checkouts__RelatedTeamsController","LOCALE_OPTIONS","BookingCustomMessagesController","startDateEl","endDateEl","startHourEl","endHourEl","scheduleToggleEl","currentStartDate","currentEndDate","startHour","endHour","OnlineMembershipPackageController","firstOption","BillSendController","BaseController","addZero","getSign","formatDuration","unsignedMs","BillCountdownController","cmd","onTimerUpdate","createOverlay","disabledDiv","addOverlayIfNotExist","amendmentBlock","parent2Block","checkoutBox","intDuration","bookingOptionDayRateEvents","dayRateIdent","dayRateCheckbox","onChangeDayRateTime","dayRate","startTimeContainer","endTimeContainer","setDayRatePrice","startTimeSelect","endTimeSelect","dayRateRadioBtnEnabled","onPeakPrice","getPrice","rate","getHours","ceilPrice","diffDayHours","getTime","timeHour","timeMin","toggleBookingOptionDayRateRadioBtn","toggleDayBookingOptionDayRateRow","onSubmitBookingOptionDayRateForm","toggleBookingOptionDayRateCheckbox","weekdayChecked","weekendChecked","BookingOptionController","virtualSpace","currentOffPeakEnabled","futureOffPeakEnabled","addFuturePrice","current_off_peak_price","current_off_peak_weekend_price","future_off_peak_price","future_off_peak_weekend_price","ext_current_off_peak_price","ext_current_off_peak_weekend_price","ext_future_off_peak_price","ext_future_off_peak_weekend_price","currentOffPeakPrice","currentOffPeakWeekendPrice","futureOffPeakPrice","futureOffPeakWeekendPrice","extCurrentOffPeakPrice","extCurrentOffPeakWeekendPrice","extFutureOffPeakPrice","extFutureOffPeakWeekendPrice","currentSeasonsEnabled","futureSeasonsEnabled","onPeakWeekdayPrice","onPeakWeekendPrice","addDayRate","checkCustomSpace","preassign","toggleParentBookingOption","toggleCurrentOffPeakEnabled","toggleBookingOptionDayRateOnCheckedPricing","toggleFutureOffPeakEnabled","marker","toggleFutureSeasonPrice","priceType","currentMonth","toggleDayRateCheckbox","checkCurrent","toggleCurrentSeasonPrice","seasonsEnabled","checkFuture","wsInverse","newId","space","visibleElements","bookingOptionGroups","bookingOptionSelect","firstVisibleOptionVal","parentBookingOption","parentBookingOptionValue","showPopup","MessagesCounterController","rensponse","ModificationController","OrderModalController","$target","reload","reloadPath","changePage","OrdersTableController","checkedValue","neoTableElement","OrderApprovalController","PostgresQueryController","ConversationRemoveThreadController","selectedInbox","DynamicPopoverController","turboFrameId","BillApproval","lockResponse","OrderVenueNoteController","infoPath","tempContainer","newText","infoRow","notesCellMobile","rowElement","appendToEl","toTransformString","setWidthHeight","LOAD_STATE","specialKeyUsed","getElementsFromOption","legacySelector","isPswpClass","PhotoSwipeEvent$1","Eventable$1","_this$_filters$name","_this$_filters$name2","_this$pswp","f1","f2","_this$_filters$name3","_this$_listeners$name","_this$pswp2","_this$pswp3","_this$_listeners$name2","PhotoSwipeEvent","Placeholder$1","imageSrc","imgEl","_this$element","Content$1","itemData","isLazy","placeholderEl","placeholderSrc","_this$data$src","_this$data$alt","imageElement","slide","isInitialSizeUpdate","sizesWidth","_this$instance$option","_this$instance$option2","errorMsgEl","supportsDecode","getViewportSize","pswp","newViewportSize","parsePaddingOption","viewportSize","paddingValue","legacyPropName","getPanAreaSize","MAX_IMAGE_WIDTH","ZoomLevel$1","panAreaSize","elementSize","hRatio","vRatio","optionPrefix","currZoomLevel","lazyLoadData","zoomLevel","ZoomLevel","lazyLoadSlide","Eventable","_this$options","numItems","dataSource","slideData","Content","_this$options2","dataSourceItem","galleryElement","_this$options3","_this$options4","linkEl","thumbnailEl","_thumbnailEl$getAttri","PhotoSwipeLightbox","PhotoSwipeBase","initialPoint","clickedIndex","clickedTarget","clickedChildIndex","galleryElements","promiseArray","pswpModuleType","iterableModules","mainModule","equalizePoints","roundPoint","getDistanceBetween","pointsEqual","defaultCSSEasing","setTransitionStyle","ease","removeTransitionStyle","decodeImage","img","supportsPassive","DOMEvents","passive","poolItem","unbind","skipPool","eType","PanBounds","panOffset","Slide","holderElement","scaleMultiplier","_this$content$placeho","destZoomLevel","centerPoint","ignoreBounds","prevZoomLevel","finishTransition","zoomFactor","panX","panY","zoom","newResolution","PAN_END_FRICTION","VERTICAL_DRAG_FRICTION","MIN_RATIO_TO_CLOSE","MIN_NEXT_SLIDE_SPEED","project","initialVelocity","decelerationRate","DragHandler","gestures","prevP1","dragAxis","currSlide","bgOpacity","velocity","mainScroll","indexDiff","currentSlideVisibilityRatio","pan","bounds","panPos","restoreBgOpacity","projectedPosition","vDragRatio","projectedVDragRatio","correctedPanPosition","dampingRatio","initialBgOpacity","totalPanDist","animationProgressRatio","isMultitouch","newMainScrollX","newPan","currSlideMainScrollX","mainScrollShiftDiff","isLeftToRight","isRightToLeft","_this$pswp$currSlide$","_this$pswp$currSlide","potentialPan","customFriction","UPPER_ZOOM_FRICTION","LOWER_ZOOM_FRICTION","getZoomPointsCenter","ZoomHandler","startP1","startP2","minZoomLevel","maxZoomLevel","ignoreGesture","destinationZoomLevel","currZoomLevelNeedsChange","initialPan","destinationPan","panNeedsChange","newZoomLevel","didTapOnMainContent","TapHandler","targetClassList","isImageClick","isBackgroundClick","actionName","_this$gestures$pswp$e","actionFullName","AXIS_SWIPE_HYSTERISIS","DOUBLE_TAP_DELAY","MIN_TAP_DISTANCE","Gestures","pref","down","cancelEvent","isMousePointer","tapDelay","displacement","pointerType","pointerEvent","pointerIndex","ongoingPointer","touchEvent","axisToCheck","MAIN_SCROLL_END_FRICTION","MainScroll","resizeSlides","newSlideWidth","slideWidthChanged","itemHolder","animate","velocityX","newIndex","numSlides","destinationX","currDiff","currDistance","_this$itemHolders$","positionDifference","diffAbs","tempHolder","_itemHolder$slide","dragging","newSlideIndexOffset","KeyboardKeyCodesMap","getKeyboardEventKey","isKeySupported","Keyboard$1","lastActiveElement","keydownAction","isForward","DEFAULT_EASING","CSSAnimation","_props$prop","onFinish","DEFAULT_NATURAL_FREQUENCY","DEFAULT_DAMPING_RATIO","SpringEaser","naturalFrequency","deltaPosition","deltaTime","coeff","naturalDumpingPow","dumpedFCos","dumpedFSin","SpringAnimation","onUpdate","easer","prevTime","animationLoop","Animations","isSpring","ScrollWheel","addElementHTML","htmlData","svgData","UIElement","_container","elementHTML","ariaText","initArrowButton","isNextButton","arrowPrev","arrowNext","zoomButton","loadingIndicator","indicatorElement","delayTimeout","toggleIndicatorClass","setIndicatorVisibility","updatePreloaderVisibility","_pswp$currSlide","_pswp$currSlide2","counterIndicator","counterElement","setZoomedIn","isZoomedIn","uiElementData","_pswp$element","elementData","currZoomLevelDiff","potentialZoomLevel","getBoundsByElement","thumbAreaRect","getCroppedBoundsByElement","imageWidth","imageHeight","fillZoomLevel","offsetX","offsetY","getThumbBounds","thumbBounds","thumbnail","thumbSelector","MIN_SLIDES_TO_CACHE","ContentLoader","preload","indexToRemove","MIN_OPACITY","Opener","_options$showHideOpac","decoded","isDelaying","_this$pswp$element","_this$pswp$element2","innerRect","containerOnePanX","containerOnePanY","containerTwoPanX","containerTwoPanY","animations","animProps","PhotoSwipe","Keyboard","rootClasses","itemHolders","_this$currSlide","_this$currSlide2","_itemHolder$slide2","slideIndex","_this$currSlide$index","_this$currSlide3","potentialHolderIndex","_itemHolder$slide3","holder","opacity","_this$element2","GalleryController","lightbox","el2","imageBox","assignBackground","VenueCustomerController","UserController","MemberController","MembersDownloadController","VenueGroupController","MiniMessengerController","modalDialog","modalWidth","messengerMessages","btn","signature","conversationMessage","BillApproveController","UserFormController","noExtend","ssrDocument","ssrWindow","classesToTokens","deleteProps","nextTick","getComputedStyle","getTranslate","curTransform","transformMatrix","curStyle","isNode","nextSource","keysArray","nextKey","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","side","startPosition","isOutOfBound","easeProgress","currentPosition","getSlideTransformEl","slideEl","elementChildren","elementIsChildOfSlot","slot","elementsQueue","elementToCheck","elementIsChildOf","isChild","showWarning","elementOffset","clientTop","clientLeft","scrollLeft","elementPrevAll","prevEls","elementNextAll","nextEls","elementStyle","elementIndex","elementParents","parents","elementTransitionEnd","fireCallBack","elementOuterSize","includeMargins","makeElementsArray","getRotateFix","calcSupport","getSupport","deviceCached","calcDevice","platform","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","calcBrowser","needPerspectiveFix","isWebView","isSafariBrowser","need3dFix","getBrowser","Resize","emit","animationFrame","resizeHandler","createObserver","newWidth","contentBoxSize","contentRect","removeObserver","orientationChangeHandler","Observer","extendParams","observers","attach","ObserverFunc","observerUpdate","containerParents","eventsEmitter","onceHandler","eventHandler","updateSize","updateSlides","getDirectionPropertyValue","wrapperEl","slidesEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","gridEnabled","slideSize","shouldResetSlideSize","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","marginLeft","marginRight","boxSizing","offsetWidth","newSlidesGrid","slidesGridItem","groupSize","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","getSlideByIndex","updateSlidesOffset","minusOffset","toggleSlideClasses$1","updateSlidesProgress","translate","offsetCenter","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","translatesDiff","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","toggleSlideClasses","updateSlidesClasses","activeIndex","getFilteredSlide","activeSlide","prevSlide","nextSlide","processLazyPreloader","imageEl","slideSelector","lazyEl","unlazy","slidesPerView","activeColumn","preloadColumns","slideIndexLastInView","realIndex","getActiveIndexByTranslate","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","firstSlideInColumn","activeSlideIndex","updateClickedSlide","pathEl","slideFound","getSwiperTranslate","currentTranslate","setTranslate","byController","newProgress","minTranslate","maxTranslate","translateTo","runCallbacks","translateBounds","internal","newTranslate","isH","setTransition","transitionEmit","transitionStart","slideTo","enabled","normalizedTranslate","normalizedGrid","normalizedGridNext","slideToLoop","targetSlideIndex","cols","centeredSlides","needLoopFix","slideNext","animating","perGroup","slidePrev","rtlTranslate","normalize","normalizedSnapGrid","isFreeMode","prevSnap","prevSnapIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToClickedSlide","slideToIndex","loopCreate","slideRealIndex","initSlides","slidesPerGroup","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slidesToAdd","loopFix","byMousewheel","allowSlidePrev","allowSlideNext","loopedSlides","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","currentSlideTranslate","loopParams","loopDestroy","newSlidesOrder","loop","setGrabCursor","moving","unsetGrabCursor","grabCursor","closestElement","__closestFrom","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","targetEl","swipingClassHasValue","noSwipingSelector","isTargetShadow","startY","preventDefault","shouldPreventDefault","targetTouch","diffX","diffY","touchAngle","touchesDiff","prevTouchesDirection","isLoop","allowLoopFix","loopFixed","disableParentSwiper","resistanceRatio","onTouchEnd","touchEndTime","timeDiff","pathTree","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","onResize","isVirtualLoop","onScroll","onLoad","onDocumentTouchStart","domMethod","swiperMethod","attachEvents","detachEvents","events$1","isGridEnabled","setBreakpoint","breakpoints","breakpointsBase","breakpointContainer","breakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","hasLoop","getBreakpoint","containerEl","minRatio","prepareClasses","resultClasses","suffixes","removeClasses","wasLocked","slidesOffsetBefore","lastSlideRightEdge","checkOverflow$1","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","extendedDefaults","Swiper","swipers","newParams","swiperParams","updates","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","getWrapperSelector","lazyElements","deleteInstance","cleanStyles","newDefaults","modules","prototypeGroup","protoMethod","Virtual","cssModeTimeout","tempDOM","renderSlide","beforeInit","forceActiveIndex","initialSlide","addSlidesBefore","addSlidesAfter","previousFrom","previousTo","previousSlidesGrid","previousOffset","slidesAfter","slidesBefore","onRendered","slidesToRender","prependIndexes","appendIndexes","getSlideIndex","loopFrom","loopTo","appendSlide","prependSlide","numberOfNewSlides","cachedIndex","cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","domSlidesAssigned","pageUpDown","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","enable","disable","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","sX","sY","pX","pY","handleMouseEnter","handleMouseLeave","animateSlider","newEvent","releaseScroll","targetElContainsTarget","rtlFactor","prevEvent","ignoreWheelEvents","firstEvent","snapToThreshold","createElementIfNotDefined","originalParams","checkProps","getEl","toggleEl","subEl","nextEl","prevEl","initButton","destroyButton","targetIsButton","classesToSelector","pfx","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","bulletActiveClass","getMoveDirection","onBulletClick","moveDirection","bullets","firstIndex","midIndex","classesToRemove","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","totalEl","progressbarDirection","scaleX","scaleY","progressEl","paginationHTML","numberOfBullets","Scrollbar","isTouched","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","dragEl","newSize","newPos","getPointerPosition","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","passiveListener","eventMethod","enableDraggable","disableDraggable","swiperEl","Parallax","elementsSelector","rotate","currentOpacity","currentScale","currentRotate","hostEl","parallaxEl","parallaxDuration","_swiper","Zoom","isScaling","isPanningWithMouse","mousePanStart","mousePanSensitivity","fakeGestureTouched","fakeGestureMoved","evCache","gesture","getDistanceBetweenTouches","x1","y1","x2","y2","getMaxRatio","maxRatio","imageMaxRatio","getScaleOrigin","getSlideSelector","eventWithinSlide","eventWithinZoomContainer","onGestureStart","originX","originY","onGestureChange","cachedEv","onGestureEnd","allowTouchMoveTimeout","isMousePan","onMouseMove","scaledWidth","scaledHeight","scaleRatio","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","slideHeight","minX","maxX","minY","maxY","newX","newY","zoomIn","touchX","touchY","translateX","translateY","translateMinX","translateMinY","translateMaxX","translateMaxY","prevScale","forceZoomRatio","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","LinearSpline","binarySearch","maxIndex","minIndex","i1","i3","getInterpolateFunction","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","onControllerSwiper","A11y","liveRegion","preventFocusHandler","focusTargetSlideEl","visibilityChangedTimestamp","getRandomNumber","randomChar","makeElFocusable","makeElNotFocusable","addElRole","addElRoleDescription","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","updateNavigation","hasPagination","hasClickablePagination","updatePagination","initNavEl","wrapperId","handlePointerDown","handlePointerUp","onVisibilityChange","handleFocus","ariaLabelMessage","slugify","getPathValues","urlOverride","pathArray","setHistory","scrollToSlide","setHistoryPopState","HashNavigation","slideWithHash","onHashChange","newHash","activeSlideEl","activeSlideHash","setHash","Autoplay","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","resume","calcTimeLeft","timeLeft","getSlideDelay","delayForce","currentSlideDelay","proceed","pause","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","Thumb","swiperCreated","onThumbClick","thumbsSwiper","clickedSlide","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","autoScrollOffset","useOffset","currentThumbsIndex","newThumbsIndex","newThumbsSlide","thumbs","getThumbsElementAndInit","thumbsElement","onThumbsSwiper","watchForThumbsToAppear","freeMode","once","lastMoveEvent","velocityEvent","momentumDistance","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","getSpaceBetween","fill","unsetSlides","updateSlide","newSlideOrderIndex","slideIndexInGroup","columnsInGroup","updateWrapperSize","roundLengths","onInit","appendElement","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","Manipulation","effectInit","effect","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","shadowEl","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","effectVirtualTransitionEnd","transformElements","allSlides","getSlide","eventTriggered","transitionEndTarget","EffectFade","tx","ty","slideOpacity","EffectCube","createSlideShadows","isHorizontal","shadowBefore","shadowAfter","wrapperRotate","cubeShadowEl","slideAngle","shadowAngle","scale1","scale2","zFactor","createShadow","shadowClass","shadowContainer","EffectFlip","rotateFix","rotateY","rotateX","EffectCoverflow","center","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","EffectCreative","getTranslateValue","isCenteredSlides","originalProgress","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","startTranslate","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","SwiperController","MainSearchController","category","area","multiVenueId","multiVenueIdOption","PlaceAutocompleteController","InlineDatepickerController","BackstretchController","images","AutosubmitDropdownController","AutosubmitCheckboxController","SelectizeController","ManageSecondaryUserController","SelectPrimaryUserController","dropdown","CheckoutButtonDisablerController","billId","initiator","billTimerInProgress","BookButtonController","host","MultiMessagesButtonController","ConversationButtons","FileUploaderValidator","NestedForm","OnlineMembershipCancellation","CalendarBookingModal","ModalBillSendController","ConversationRemoveThread","DynamicPopoverThread","ModalBillApproveController","globalExpand","singleExpand","replaceClass","aClass","bClass","checkAllRows","allUp","$nextRow","setCorner","solverLeftColspan","cell","solveRightColspan","setParent","ownParent","fixHead","thead","cells","setBackground","fixFoot","tfoot","fixLeft","fixRight","elementBackground","parentBackground","background","fixColumn","inc","nth","colspan","scanTable","$table","$cell","cspan","rspan","rescan","formId","pageWrapper","headerHeight","footerHeight","showBootstrapAlert","alertModal","titleElement","bodyElement","Vat","showVatConfirmationModal","sendVat","switchVatCheckboxElement","MultiVat","switchMultiVatCheckbox","submitMultiVatModal","$bookingsBlock","clicked","selectAll","selectAllMobile","CheckoutOptions","submitLink","checkoutOptionKey","reloadPaymentsUrl","reloadPaymentOptionsUrl","reloadBillIssueUrl","endpoints","endpoint","paymentsTable","paymentsOptions","billIssue","PaymentOptions","paymentOption","DeleteBookingItem","disabledSingleEdit","bookingIds","ContinueButton","handleOrderContinue","issue","goToCheckout","handleOrderCastling","orderCalculationId","submitSendToUserForm","submitBtn","addErrors","BookingTable","fixWidth","pricePosition","nextElements","totalWidth","updateBookingsTable","cleanBookingsTable","withScroll","reload_url","changeNotificationState","changeAllNotificationStates","$new_message_conversation_modal","showMessageModal","disableScroll","ajaxLoad","navigateTo","tabTarget","$admin_modal_info_modal","$new_note_modal","showNoteModal","reloadData","note","send_note_url","change_page","orders_url","ajax","resolvedBy","smartyForm","openLinkModal","renderAfterFormSubmit","saveFormData","dataAttrs","enableButton","$modal","processError","processSuccess","wrapper","haversineDistance","mk1","mk2","rlat1","rlat2","difflat","difflon","searchAddressAutocomplete","onPlaceChanged","optionsForAutocomplete","autocomplete","place","typeRequest","scrollToTop","globalLng","globalLat","room","longitude","latitude","$element","unknownArea","featuresGroup","checkedCount","slideEvent","NULL_ISLAND_COORDINATES","markers","initMap","mapStyles","controlDiv","onDragend","showFlashMessage","applyFilters","mapStylesURL","lat","lng","calculateDistance","infowindow","$admin_customers_modal","updateEndDate","startDateTarget","endDateTarget","parsedStartDate","parsedEndDate","formatedStartDate","startDateNumber","endDateNumber","daysRange","weekDaysContainer","weekDaysSelect","facilitiesEl","ul","toggleOffPeak","toggleDayType","openingHoursContainer","allowBookingContainer","specialHourRequestFormValidation","modalWindow","scheduleType","disabledCheckboxes","anyOffPeak","toggleArea","wrapperStatus","anyClosedHour","statusName","toggleClosedArea","collectBookingOptions","fixWidthHelper","collectExtraOrders","extra_records","record","setAtDateFromToDate","selectedDate","disabledBookingTimeSelect","toggleDisabledBookingTime","disabledBookingTime","ApiContext","Api$1","stringToElements","React.createElement","rendered","React.cloneElement","linkifyReactElement","React.Children","React.isValidElement","Linkify","linkId","defaultLinkRender","React.Fragment","Item","allowComment","allFacilities","isVenue","isUser","multipleVenues","canManage","venuesCount","facilitiesCount","allowDocuments","mandatoryDocuments","allowOptions","allowQuestionItems","allowYesNoOptions","questionItems","questionDocument","onUp","onDown","allowReorder","onRemove","onEdit","moveUpBtn","moveDownBtn","questionItem","ErrorMessage","QuestionTitle","CheckboxOption","defaultChecked","QuestionItem","isNew","deleted","onDelete","onChangeTitle","triggerQuestion","hiddenFields","stringifiable","isProduction","getAllKeys","defaultCommands","directive","$spec","spec","nextObject","objectWasNextObject","nextValueForKey","nextObjectValue","invariantPushAndUnshift","originalObject","invariantSplices","invariantSplice","_nextObject","invariantSet","invariantSpecArray","nextObjectCopy","_spec","invariantMapOrSet","invariantMerge","invariantApply","defaultContext","specValue","typeOfTarget","QuestionItems","setEnabled","hasChild","setQuestionItems","handleNewQuestionItems","addItem","newQuestionItems","deleteItem","moveQuestionItem","dragIndex","hoverIndex","newQuestions","moveUp","moveDown","updateTitle","QuestionDocument","Facilities$1","Venues$1","toggleVenues","AllowOptionsTrigger","QuestionItemTrigger","isEmptyTitle","OptionsTriggerQuestion","onChangeQuestionItemTrigger","allowOptionTriggerList","onChangeAllowOptionTrigger","enabledAllowOptions","enabledAllowQuestionItems","MultipleFields$1","enabledRemoveChildButton","onEnableCreateChildButton","onDeleteSubQuestion","displayMandatoryDocumentCheckbox","setEnabledAllowOptions","enabledAllowYesNoOptions","setEnabledAllowYesNoOptions","setEnabledAllowQuestionItems","setAllowOptionTriggerList","enabledAllowCheckboxes","disabledAllowYesNoNAOptions","enabledAllowYesNoNaOptions","popoverLeft","handleEnableAllowOptions","handleEnableAllowYesNoOptions","handleEnableAllowQuestionItems","subQuestions","setSubQuestions","subQuestionsCount","setSubQuestionsCount","enabledCreateChildButton","setEnabledCreateChildButton","childErrors","subQuestionErrorIndex","addSubQuestion","newSubQuestions","newSubQuestion","handleRemoveSubQuestion","MultipleFields","ModalCreate","formRef","setQuestion","handleUpdate","ModalRemove","questions","setQuestions","setIsVenue","setIsUser","modalCreate","modalEdit","modalRemove","showModalRemove","moveQuestion","tmpQuestions","renderQuestionRow","renderAddQuestionButton","pointerCoord","changedTouches","_check","_check2","_x","_x2","_util","Toggle","_PureComponent","currentX","endX","Fields","noticeMessage","NoticeMessages","setNoticeMessage","updateNoticeMessage","newNoticeMessage","collectLogoSection","document_records","updateOrderMessageRule","newVenueNoteModal","showVenueNoteModal","getBookingInfo","refreshCalendar","resp","DayCalendar","viewDate","minTime","maxTime","facilityData","bookingData","$calendar","calEvent","rebuildCalendar","AlignText","MakeLinks","prettifyAxis","ind","displaytime","parsed_time","AgendaDay","headerWidth","calendarNoteHTML","tableWidth","valueToPx","isFloated","AgendaWeek","filter_amount","weekViewHTML","staff_rota_toggle","formJson","formAttributes","venue_id","venueOptions","venueValues","refreshCalendarFn","onVenueIdUpdate","calendarFilterReplaceFacilities","normalOption","optGroup","childFacility","fakeOptGroup","initFacilityMultiselect","PeriodView","togglePrevNextButtonsText","prevWeekCaption","nextWeekCaption","prevDayCaption","nextDayCaption","targetPrevButton","targetNextButton","disableLastCheckedDay","activeElements","disabledElements","StaffRotaView","WeekViewType","isAvailability","Customers","calendarFilterReplaceUsers","formSubmit","calendarOnTop","toggleScroll","facility_code","$admin_internal_order_modal","$btn","collectOrders","checkVenueTimePeriod","venueTimePeriod","checkMinimumBookingRule","minimumTimeRuleEnabled","VenueAdminControlButton","deleteChildFacility","revertChildFacility","deleteRequest","deleteRequestDisabled","SystemAdminControlButton","len2","btnTitle","ControlButton","ChildFacility","deleteRequestEnabled","internalReferenceErrors","MAX_NUMBER","childFacilities","addChildFacility","selectedNum","setSelectedNum","nonDeletedChildFacilities","nonDeleteRequestedChildFacilities","sumDeletedFacilities","SingleFields","Switcher","groupMainFacility","setGroupMainFacility","groupMainFacilityErrors","fetchMultiSwitcher","setChildFacilities","setDeleteRequestEnabled","formEl","newChildFacilities","sendDeleteRequest","undoDeleteRequest","handleRevert","PanelButton","systemAdmin","hasChildFacilities","missingFacilities","missingVenues","sendForm","confirm_button","reloadDocuments","collectDocumentOrders","areaNav","tabUrl","FacilityActivities","bindElements","autoSubmit","autoSend","sendData","checkboxValue","reloadTab","loadTab","openCustomMessagesPreviewModal","openCustomMessagesModal","venueEl","checkEnabledAll","storage","option_length","enabled_values","getCustomMessagesDataJson","storage_data","localeOptions","inputsContainer","timeRangeCheckBox","changeCustomMessagesData","updateSubmenu","saveCustomMessagesData","bookingCustomMessages","errEl","bodyEl","dataChangeEvent","make","toggleNotesButtons","actionType","datepickerElement","valueBookingOptionsMap","allBookingOptions","initForm","formUtils","nameValue","checkCheckBoxes","toggleSpecificFacilitiesSelector","allOrCustomBookingOptions","uncheckSpecificBookingOptions","checkSpecificFacilitiesBookingOptions","checkboxesValues","selectedBookingOptions","facilityInput","checkedInputsCount","setupDatepicker","toggleFacilityBookingOptions","checkValue","bookingOptionListSelector","facilitiesInput","bookingOptionHandler","parentFacilityCheckbox","childBookingOptions","checkedChildBookingOptionsCount","bo","Facility$1","classRoomsCount","HelpCentreDocument","partner_id","InfoPage","$publishForm","Schedule","selectedClass","onPeakEnabled","offPeakEnabled","onPeakSelect","offPeakSelect","$row","Vats","isVenueVatRegistered","changed","ApplicationSettings","OfflinePayments","Invitation","VenueAdminInvitation","responseDiv","Home","Checkout","isRadioButtonOff","$box","venueID","PaymentRequestCounters","orderID","Themes","VenueAdminCastling","checkWidth","windowsize","namesize","Turbo.start","Turbo.navigator"],"sources":["../../../../opt/node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js","../../../../opt/node_modules/lightslider/dist/js/lightslider.js","../../../../opt/node_modules/jquery/dist/jquery.js","../../../../opt/node_modules/toastr/toastr.js","../../../../opt/node_modules/jquery-backstretch/jquery.backstretch.min.js","../../../../opt/node_modules/object-assign/index.js","../../../../opt/node_modules/react/cjs/react.production.min.js","../../../../opt/node_modules/react/index.js","../../../../opt/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../opt/node_modules/react/jsx-runtime.js","../../../../opt/node_modules/scheduler/cjs/scheduler.production.min.js","../../../../opt/node_modules/scheduler/index.js","../../../../opt/node_modules/react-dom/cjs/react-dom.production.min.js","../../../../opt/node_modules/react-dom/index.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_global.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_core.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_a-function.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ctx.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-object.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_an-object.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_fails.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_descriptors.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_dom-create.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_ie8-dom-define.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-primitive.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dp.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_property-desc.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_hide.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_has.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_export.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_cof.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iobject.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_defined.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-iobject.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-integer.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-length.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-absolute-index.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_array-includes.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_library.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_uid.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_shared-key.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys-internal.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_enum-bug-keys.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-keys.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gops.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-pie.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_to-object.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-assign.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.assign.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/assign.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/object/assign.js","../../../../opt/node_modules/@babel/runtime-corejs2/helpers/esm/extends.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-dps.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_html.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-create.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.create.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/create.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/object/create.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-gopd.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_set-proto.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/set-prototype-of.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","../../../../opt/node_modules/@babel/runtime-corejs2/helpers/esm/setPrototypeOf.js","../../../../opt/node_modules/@babel/runtime-corejs2/helpers/esm/inheritsLoose.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-sap.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.object.keys.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/keys.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/object/keys.js","../../../../opt/node_modules/@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose.js","../../../../opt/node_modules/classnames/index.js","../../../../opt/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../opt/node_modules/prop-types/factoryWithThrowingShims.js","../../../../opt/node_modules/prop-types/index.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/extends.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../../opt/node_modules/invariant/browser.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../../opt/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_object-to-array.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.object.entries.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/entries.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/object/entries.js","../../../../opt/node_modules/react-bootstrap/es/utils/StyleConfig.js","../../../../opt/node_modules/react-bootstrap/es/utils/bootstrapUtils.js","../../../../opt/node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es7.object.values.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/object/values.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/object/values.js","../../../../opt/node_modules/react-bootstrap/es/CloseButton.js","../../../../opt/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized.js","../../../../opt/node_modules/react-is/cjs/react-is.production.min.js","../../../../opt/node_modules/react-is/index.js","../../../../opt/node_modules/prop-types-extra/lib/elementType.js","../../../../opt/node_modules/react-bootstrap/es/utils/createChainedFunction.js","../../../../opt/node_modules/react-bootstrap/es/SafeAnchor.js","../../../../opt/node_modules/react-bootstrap/es/Button.js","../../../../opt/node_modules/prop-types-extra/lib/all.js","../../../../opt/node_modules/react-bootstrap/es/ButtonGroup.js","../../../../opt/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../../../opt/node_modules/dom-helpers/util/inDOM.js","../../../../opt/node_modules/dom-helpers/transition/properties.js","../../../../opt/node_modules/dom-helpers/util/camelize.js","../../../../opt/node_modules/dom-helpers/util/camelizeStyle.js","../../../../opt/node_modules/dom-helpers/util/hyphenate.js","../../../../opt/node_modules/dom-helpers/util/hyphenateStyle.js","../../../../opt/node_modules/dom-helpers/style/getComputedStyle.js","../../../../opt/node_modules/dom-helpers/style/removeStyle.js","../../../../opt/node_modules/dom-helpers/transition/isTransform.js","../../../../opt/node_modules/dom-helpers/style/index.js","../../../../opt/node_modules/warning/browser.js","../../../../opt/node_modules/react-transition-group/Transition.js","../../../../opt/node_modules/dom-helpers/ownerDocument.js","../../../../opt/node_modules/dom-helpers/activeElement.js","../../../../opt/node_modules/dom-helpers/query/contains.js","../../../../opt/node_modules/prop-types-extra/lib/isRequiredForA11y.js","../../../../opt/node_modules/dom-helpers/events/on.js","../../../../opt/node_modules/dom-helpers/events/off.js","../../../../opt/node_modules/react-overlays/lib/utils/addEventListener.js","../../../../opt/node_modules/react-overlays/lib/utils/ownerDocument.js","../../../../opt/node_modules/react-overlays/lib/RootCloseWrapper.js","../../../../opt/node_modules/react-bootstrap/es/utils/splitComponentProps.js","../../../../opt/node_modules/react-bootstrap/es/Fade.js","../../../../opt/node_modules/dom-helpers/query/querySelectorAll.js","../../../../opt/node_modules/dom-helpers/events/filter.js","../../../../opt/node_modules/dom-helpers/events/listen.js","../../../../opt/node_modules/dom-helpers/events/index.js","../../../../opt/node_modules/dom-helpers/util/scrollbarSize.js","../../../../opt/node_modules/prop-types-extra/lib/componentOrElement.js","../../../../opt/node_modules/prop-types-extra/node_modules/warning/warning.js","../../../../opt/node_modules/prop-types-extra/lib/deprecated.js","../../../../opt/node_modules/dom-helpers/class/hasClass.js","../../../../opt/node_modules/dom-helpers/class/addClass.js","../../../../opt/node_modules/dom-helpers/class/removeClass.js","../../../../opt/node_modules/dom-helpers/class/index.js","../../../../opt/node_modules/dom-helpers/query/isWindow.js","../../../../opt/node_modules/react-overlays/lib/utils/isOverflowing.js","../../../../opt/node_modules/react-overlays/lib/utils/manageAriaHidden.js","../../../../opt/node_modules/react-overlays/lib/ModalManager.js","../../../../opt/node_modules/react-overlays/lib/utils/getContainer.js","../../../../opt/node_modules/react-overlays/lib/LegacyPortal.js","../../../../opt/node_modules/react-overlays/lib/Portal.js","../../../../opt/node_modules/react-overlays/lib/RefHolder.js","../../../../opt/node_modules/react-overlays/lib/utils/addFocusListener.js","../../../../opt/node_modules/react-overlays/lib/Modal.js","../../../../opt/node_modules/react-bootstrap/es/ModalBody.js","../../../../opt/node_modules/react-bootstrap/es/ModalDialog.js","../../../../opt/node_modules/react-bootstrap/es/ModalFooter.js","../../../../opt/node_modules/react-bootstrap/es/ModalHeader.js","../../../../opt/node_modules/react-bootstrap/es/ModalTitle.js","../../../../opt/node_modules/react-bootstrap/es/Modal.js","../../../../opt/node_modules/dom-helpers/query/offset.js","../../../../opt/node_modules/dom-helpers/query/offsetParent.js","../../../../opt/node_modules/dom-helpers/query/scrollTop.js","../../../../opt/node_modules/dom-helpers/query/scrollLeft.js","../../../../opt/node_modules/dom-helpers/query/position.js","../../../../opt/node_modules/react-overlays/lib/utils/calculatePosition.js","../../../../opt/node_modules/react-overlays/lib/Position.js","../../../../opt/node_modules/react-overlays/lib/Overlay.js","../../../../opt/node_modules/react-bootstrap/es/Overlay.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.is-array.js","../../../../opt/node_modules/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/is-array.js","../../../../opt/node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","../../../../opt/node_modules/react-bootstrap/es/OverlayTrigger.js","../../../../opt/node_modules/react-bootstrap/es/Popover.js","../../../../opt/node_modules/axios/lib/helpers/bind.js","../../../../opt/node_modules/axios/lib/utils.js","../../../../opt/node_modules/axios/lib/helpers/buildURL.js","../../../../opt/node_modules/axios/lib/core/InterceptorManager.js","../../../../opt/node_modules/axios/lib/core/transformData.js","../../../../opt/node_modules/axios/lib/cancel/isCancel.js","../../../../opt/node_modules/axios/lib/helpers/normalizeHeaderName.js","../../../../opt/node_modules/axios/lib/core/enhanceError.js","../../../../opt/node_modules/axios/lib/core/createError.js","../../../../opt/node_modules/axios/lib/core/settle.js","../../../../opt/node_modules/axios/lib/helpers/cookies.js","../../../../opt/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../../opt/node_modules/axios/lib/helpers/combineURLs.js","../../../../opt/node_modules/axios/lib/core/buildFullPath.js","../../../../opt/node_modules/axios/lib/helpers/parseHeaders.js","../../../../opt/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../../opt/node_modules/axios/lib/adapters/xhr.js","../../../../opt/node_modules/axios/lib/defaults.js","../../../../opt/node_modules/axios/lib/core/dispatchRequest.js","../../../../opt/node_modules/axios/lib/core/mergeConfig.js","../../../../opt/node_modules/axios/lib/core/Axios.js","../../../../opt/node_modules/axios/lib/cancel/Cancel.js","../../../../opt/node_modules/axios/lib/cancel/CancelToken.js","../../../../opt/node_modules/axios/lib/helpers/spread.js","../../../../opt/node_modules/axios/lib/helpers/isAxiosError.js","../../../../opt/node_modules/axios/lib/axios.js","../../../../opt/node_modules/axios/index.js","../../../app/packs/src/components/ReportSchedules/Modal/api.js","../../../../opt/node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Enum.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Utility.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Tokenizer.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Parser.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Prefixer.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Serializer.js","../../../../opt/node_modules/@emotion/cache/node_modules/stylis/src/Middleware.js","../../../../opt/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../../../opt/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../../../opt/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../../../opt/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../../../opt/node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../../../opt/node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../opt/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../../../opt/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../../../opt/node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../../../../opt/node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../../opt/node_modules/react-input-autosize/lib/AutosizeInput.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/createClass.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/inherits.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../../opt/node_modules/react-select/dist/index-4bd03571.esm.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../../opt/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../../opt/node_modules/memoize-one/dist/memoize-one.esm.js","../../../../opt/node_modules/react-select/dist/Select-dbb12e54.esm.js","../../../../opt/node_modules/react-select/dist/stateManager-845a3300.esm.js","../../../../opt/node_modules/react-select/dist/react-select.esm.js","../../../app/packs/src/components/Api/UseFetch.jsx","../../../app/packs/src/components/MegaFilter/DropDown.jsx","../../../app/packs/src/components/MegaFilter/Venues.jsx","../../../app/packs/src/components/MegaFilter/Facilities.jsx","../../../../opt/node_modules/react-tiny-popover/dist/PopoverPortal.js","../../../../opt/node_modules/react-tiny-popover/dist/util.js","../../../../opt/node_modules/react-tiny-popover/dist/useElementRef.js","../../../../opt/node_modules/react-tiny-popover/dist/usePopover.js","../../../../opt/node_modules/react-tiny-popover/dist/useMemoizedArray.js","../../../../opt/node_modules/react-tiny-popover/dist/useArrowContainer.js","../../../../opt/node_modules/react-tiny-popover/dist/ArrowContainer.js","../../../../opt/node_modules/react-tiny-popover/dist/Popover.js","../../../../opt/node_modules/moment/dist/moment.js","../../../app/packs/src/components/MegaFilter/TimePeriods/Button.jsx","../../../../opt/node_modules/react-day-picker/dist/esm/UI.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getClassNamesForModifiers.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Button.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Chevron.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/CaptionLabel.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Day.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/DayButton.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Dropdown.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/DropdownNav.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Footer.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Month.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/MonthCaption.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/MonthGrid.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Months.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Nav.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Option.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Root.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Select.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Weeks.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Week.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Weekday.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/Weekdays.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/WeekNumber.js","../../../../opt/node_modules/react-day-picker/dist/esm/components/WeekNumberHeader.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getComponents.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/toDate.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/constructFrom.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/addDays.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/addMonths.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/addWeeks.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/addYears.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/constants.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfDay.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/differenceInCalendarDays.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/differenceInCalendarMonths.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/defaultOptions.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/endOfWeek.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/endOfISOWeek.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/endOfMonth.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/endOfYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/en-US/_lib/match.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/locale/en-US.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/getDayOfYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfWeek.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfISOWeek.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/getISOWeekYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfISOWeekYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/getISOWeek.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/getWeekYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfWeekYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/getWeek.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/addLeadingZeros.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/format/lightFormatters.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/format/formatters.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/format/longFormatters.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/_lib/protectedTokens.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isDate.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isValid.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/format.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isAfter.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isBefore.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isSameDay.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isSameMonth.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/isSameYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/max.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/min.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/getDaysInMonth.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/setMonth.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/setYear.mjs","../../../../opt/node_modules/react-day-picker/node_modules/date-fns/startOfMonth.mjs","../../../../opt/node_modules/react-day-picker/dist/esm/lib/dateLib.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getDateLib.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatCaption.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatDay.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatMonthDropdown.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumber.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatWeekNumberHeader.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatWeekdayName.js","../../../../opt/node_modules/react-day-picker/dist/esm/formatters/formatYearDropdown.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getFormatters.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelGrid.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelGridcell.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelDayButton.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelNav.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelMonthDropdown.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelNext.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelPrevious.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelWeekday.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelWeekNumber.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelWeekNumberHeader.js","../../../../opt/node_modules/react-day-picker/dist/esm/labels/labelYearDropdown.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getDates.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getDays.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js","../../../../opt/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js","../../../../opt/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js","../../../../opt/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getMonths.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getNavMonth.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getNextMonth.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getPreviousMonth.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getWeeks.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/useControlledValue.js","../../../../opt/node_modules/react-day-picker/dist/esm/useCalendar.js","../../../../opt/node_modules/react-day-picker/dist/esm/useDayPicker.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js","../../../../opt/node_modules/react-day-picker/dist/esm/utils/rangeIncludesDate.js","../../../../opt/node_modules/react-day-picker/dist/esm/utils/typeguards.js","../../../../opt/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getFocusableDate.js","../../../../opt/node_modules/react-day-picker/dist/esm/helpers/getNextFocus.js","../../../../opt/node_modules/react-day-picker/dist/esm/useFocus.js","../../../../opt/node_modules/react-day-picker/dist/esm/useGetModifiers.js","../../../../opt/node_modules/react-day-picker/dist/esm/selection/useMulti.js","../../../../opt/node_modules/react-day-picker/dist/esm/utils/addToRange.js","../../../../opt/node_modules/react-day-picker/dist/esm/selection/useRange.js","../../../../opt/node_modules/react-day-picker/dist/esm/selection/useSingle.js","../../../../opt/node_modules/react-day-picker/dist/esm/useSelection.js","../../../../opt/node_modules/react-day-picker/dist/esm/DayPicker.js","../../../../opt/node_modules/moment/moment.js","../../../app/packs/src/components/MegaFilter/TimePeriods/utils.js","../../../app/packs/src/components/MegaFilter/TimePeriods/CustomYearGrid.jsx","../../../app/packs/src/components/MegaFilter/TimePeriods/CustomCenturyGrid.jsx","../../../app/packs/src/components/MegaFilter/TimePeriods/Calendar.jsx","../../../app/packs/src/components/MegaFilter/TimePeriods/DoubleCalendar.jsx","../../../app/packs/src/components/MegaFilter/TimePeriods/yearLists.js","../../../app/packs/src/components/MegaFilter/TimePeriods/Historical.jsx","../../../app/packs/src/components/MegaFilter/TimePeriods/DropDown.jsx","../../../app/packs/src/components/MegaFilter/TimePeriods.jsx","../../../app/packs/src/components/MegaFilter/InvoiceCategories.jsx","../../../../opt/node_modules/decode-uri-component/index.js","../../../../opt/node_modules/split-on-first/index.js","../../../../opt/node_modules/filter-obj/index.js","../../../../opt/node_modules/query-string/base.js","../../../app/packs/src/components/MegaFilter/FuturePrices/useFuturePrices.jsx","../../../app/packs/src/components/MegaFilter/FuturePrices/index.jsx","../../../app/packs/src/components/MegaFilter/DocumentTypes.jsx","../../../app/packs/src/components/MegaFilter/ReportTypes.jsx","../../../app/packs/src/components/MegaFilter/OfflineStatuses.jsx","../../../app/packs/src/components/MegaFilter/PartnerMarker.jsx","../../../app/packs/src/components/MegaFilter/BookingsStatuses.jsx","../../../app/packs/src/components/MegaFilter/Date.jsx","../../../app/packs/src/components/MegaFilter/Customers.jsx","../../../app/packs/src/components/MegaFilter/MultiSelectDropdown.jsx","../../../app/packs/src/components/MegaFilter/Days.jsx","../../../app/packs/src/components/MegaFilter/MultiFacilities.jsx","../../../app/packs/src/components/MegaFilter/IncomeTypes.jsx","../../../app/packs/src/components/MegaFilter/filters.jsx","../../../app/packs/src/components/MegaFilter/useSelectedOptions.jsx","../../../../opt/node_modules/map-obj/index.js","../../../../opt/node_modules/to-no-case/index.js","../../../../opt/node_modules/to-space-case/index.js","../../../../opt/node_modules/to-snake-case/index.js","../../../../opt/node_modules/snakecase-keys/index.js","../../../app/packs/src/components/Reports/Api.jsx","../../../app/packs/src/components/MegaFilter/Index.jsx","../../../../opt/node_modules/merge-class-names/dist/esm/index.js","../../../../opt/node_modules/lodash.memoize/index.js","../../../../opt/node_modules/get-user-locale/dist/esm/index.js","../../../../opt/node_modules/@wojtekmaj/date-utils/dist/esm/index.js","../../../../opt/node_modules/react-calendar/dist/esm/shared/const.js","../../../../opt/node_modules/react-calendar/dist/esm/shared/dateFormatter.js","../../../../opt/node_modules/react-calendar/dist/esm/shared/dates.js","../../../../opt/node_modules/react-calendar/dist/esm/shared/propTypes.js","../../../../opt/node_modules/react-calendar/dist/esm/Calendar/Navigation.js","../../../../opt/node_modules/react-calendar/dist/esm/Flex.js","../../../../opt/node_modules/react-calendar/dist/esm/shared/utils.js","../../../../opt/node_modules/react-calendar/dist/esm/TileGroup.js","../../../../opt/node_modules/react-calendar/dist/esm/Tile.js","../../../../opt/node_modules/react-calendar/dist/esm/CenturyView/Decade.js","../../../../opt/node_modules/react-calendar/dist/esm/CenturyView/Decades.js","../../../../opt/node_modules/react-calendar/dist/esm/CenturyView.js","../../../../opt/node_modules/react-calendar/dist/esm/DecadeView/Year.js","../../../../opt/node_modules/react-calendar/dist/esm/DecadeView/Years.js","../../../../opt/node_modules/react-calendar/dist/esm/DecadeView.js","../../../../opt/node_modules/react-calendar/dist/esm/YearView/Month.js","../../../../opt/node_modules/react-calendar/dist/esm/YearView/Months.js","../../../../opt/node_modules/react-calendar/dist/esm/YearView.js","../../../../opt/node_modules/react-calendar/dist/esm/MonthView/Day.js","../../../../opt/node_modules/react-calendar/dist/esm/MonthView/Days.js","../../../../opt/node_modules/react-calendar/dist/esm/MonthView/Weekdays.js","../../../../opt/node_modules/react-calendar/dist/esm/MonthView/WeekNumber.js","../../../../opt/node_modules/react-calendar/dist/esm/MonthView/WeekNumbers.js","../../../../opt/node_modules/react-calendar/dist/esm/MonthView.js","../../../../opt/node_modules/react-calendar/dist/esm/Calendar.js","../../../app/packs/src/components/DateInput/index.jsx","../../../app/packs/src/components/Form/Error.jsx","../../../app/packs/src/components/ReportSchedules/Components/FormError.jsx","../../../app/packs/src/components/ReportSchedules/Components/ReportTypes.jsx","../../../app/packs/src/helpers/strings.js","../../../app/packs/src/components/ReportSchedules/helpers/interval_title_decorator.js","../../../app/packs/src/components/ReportSchedules/Components/ReportIntervals.jsx","../../../app/packs/src/components/ReportSchedules/Components/ReportExportType.jsx","../../../app/packs/src/components/ReportSchedules/Components/days_selector.jsx","../../../app/packs/src/components/ReportSchedules/Components/ReportDays.jsx","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../../../../opt/node_modules/babel-runtime/core-js/object/assign.js","../../../../opt/node_modules/babel-runtime/helpers/extends.js","../../../../opt/node_modules/babel-runtime/helpers/classCallCheck.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../../../../opt/node_modules/babel-runtime/core-js/symbol/iterator.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../../../../opt/node_modules/babel-runtime/core-js/symbol.js","../../../../opt/node_modules/babel-runtime/helpers/typeof.js","../../../../opt/node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../../../../opt/node_modules/babel-runtime/core-js/object/set-prototype-of.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../../../../opt/node_modules/babel-runtime/core-js/object/create.js","../../../../opt/node_modules/babel-runtime/helpers/inherits.js","../../../../opt/node_modules/rc-util/es/Dom/contains.js","../../../../opt/node_modules/add-dom-event-listener/lib/EventBaseObject.js","../../../../opt/node_modules/add-dom-event-listener/lib/EventObject.js","../../../../opt/node_modules/add-dom-event-listener/lib/index.js","../../../../opt/node_modules/rc-util/es/Dom/addEventListener.js","../../../../opt/node_modules/rc-util/es/ContainerRender.js","../../../../opt/node_modules/rc-util/es/Portal.js","../../../../opt/node_modules/rc-trigger/es/utils.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../../../../opt/node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../../../../opt/node_modules/babel-runtime/core-js/object/define-property.js","../../../../opt/node_modules/babel-runtime/helpers/createClass.js","../../../../opt/node_modules/dom-align/dist-web/index.js","../../../../opt/node_modules/rc-align/es/util.js","../../../../opt/node_modules/rc-align/es/Align.js","../../../../opt/node_modules/babel-runtime/helpers/defineProperty.js","../../../../opt/node_modules/rc-util/es/unsafeLifecyclesPolyfill.js","../../../../opt/node_modules/rc-animate/es/ChildrenUtils.js","../../../../opt/node_modules/css-animation/es/Event.js","../../../../opt/node_modules/component-indexof/index.js","../../../../opt/node_modules/component-classes/index.js","../../../../opt/node_modules/css-animation/es/index.js","../../../../opt/node_modules/rc-animate/es/util/animate.js","../../../../opt/node_modules/rc-animate/es/AnimateChild.js","../../../../opt/node_modules/rc-animate/es/Animate.js","../../../../opt/node_modules/babel-runtime/helpers/objectWithoutProperties.js","../../../../opt/node_modules/rc-trigger/es/LazyRenderBox.js","../../../../opt/node_modules/rc-trigger/es/PopupInner.js","../../../../opt/node_modules/rc-trigger/es/Popup.js","../../../../opt/node_modules/rc-trigger/es/index.js","../../../../opt/node_modules/rc-time-picker/es/Header.js","../../../../opt/node_modules/performance-now/lib/performance-now.js","../../../../opt/node_modules/raf/index.js","../../../../opt/node_modules/rc-time-picker/es/Select.js","../../../../opt/node_modules/rc-time-picker/es/Combobox.js","../../../../opt/node_modules/rc-time-picker/es/Panel.js","../../../../opt/node_modules/rc-time-picker/es/placements.js","../../../../opt/node_modules/rc-time-picker/es/TimePicker.js","../../../app/packs/src/components/ReportSchedules/Components/ReportTime.jsx","../../../app/packs/src/components/ReportSchedules/Components/ReportUsers.jsx","../../../app/packs/src/components/ReportSchedules/Modal/Form.jsx","../../../app/packs/src/components/ReportSchedules/ErrorBoundary.jsx","../../../app/packs/src/components/ReportSchedules/Modal/reducer.jsx","../../../app/packs/src/components/ReportSchedules/Modal/Index.jsx","../../../app/packs/src/components/ReportSchedules/useModal.jsx","../../../../opt/node_modules/resolve-pathname/esm/resolve-pathname.js","../../../../opt/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../../opt/node_modules/history/esm/history.js","../../../../opt/node_modules/react-router/node_modules/isarray/index.js","../../../../opt/node_modules/react-router/node_modules/path-to-regexp/index.js","../../../../opt/node_modules/react-router/esm/react-router.js","../../../../opt/node_modules/react-router-dom/esm/react-router-dom.js","../../../app/packs/src/components/MainSearch/FlashMessage.jsx","../../../app/packs/src/components/ReportSchedules/hooks/useWindowPosition.jsx","../../../../opt/node_modules/@rails/actioncable/app/assets/javascripts/actioncable.esm.js","../../../app/packs/src/components/Reports/Export/cable.js","../../../app/packs/src/components/Reports/Export/Button.jsx","../../../app/packs/src/components/Reports/Export/Buttons.jsx","../../../app/packs/src/components/ReportSchedules/Index/Header.jsx","../../../app/packs/src/components/Reports/Columns.jsx","../../../app/packs/src/components/ReportSchedules/Index/Table.jsx","../../../../opt/node_modules/ultimate-pagination/lib/ultimate-pagination-utils.js","../../../../opt/node_modules/ultimate-pagination/lib/ultimate-pagination-constants.js","../../../../opt/node_modules/ultimate-pagination/lib/ultimate-pagination-item-factories.js","../../../../opt/node_modules/ultimate-pagination/lib/ultimate-pagination.js","../../../../opt/node_modules/react-ultimate-pagination/lib/react-ultimate-pagination.js","../../../app/packs/src/components/Reports/Pagination.jsx","../../../app/packs/src/components/ReportSchedules/Index/Index.jsx","../../../app/packs/src/components/ReportSchedules/utils/history.js","../../../app/packs/src/components/ReportSchedules/Index.jsx","../../../../opt/node_modules/lodash.debounce/index.js","../../../../opt/node_modules/react-debounce-input/lib/Component.js","../../../../opt/node_modules/react-debounce-input/lib/index.js","../../../app/packs/src/components/StaffRota/utils/context.jsx","../../../app/packs/src/components/StaffRota/Index/Filter/Search.jsx","../../../app/packs/src/components/StaffRota/Index/Filter/Venue.jsx","../../../app/packs/src/components/StaffRota/Index/Filter/TimePeriod.jsx","../../../app/packs/src/components/StaffRota/Index/Filter/ViewMode.jsx","../../../app/packs/src/components/StaffRota/Index/Filter.jsx","../../../app/packs/src/components/StaffRota/components/Table/Header.jsx","../../../app/packs/src/components/StaffRota/components/Form/SmartTime.jsx","../../../app/packs/src/components/StaffRota/components/Form/TimeSelector.jsx","../../../../opt/node_modules/moment-timezone/moment-timezone.js","../../../../opt/node_modules/moment-timezone/index.js","../../../app/packs/src/components/StaffRota/components/Form/Error.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/Form.jsx","../../../app/packs/src/components/StaffRota/rescue.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/Edit.jsx","../../../app/packs/src/components/StaffRota/api.js","../../../app/packs/src/components/StaffRota/components/Table/Modals/Delete.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/MultipleForm.jsx","../../../app/packs/src/components/StaffRota/ErrorBoundary.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/MultipleEdit.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/MultipleClearHighlight.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/MultipleDelete.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals/AfterEdit.jsx","../../../app/packs/src/components/StaffRota/components/Table/Modals.jsx","../../../../opt/node_modules/ua-parser-js/dist/ua-parser.min.js","../../../../opt/node_modules/react-device-detect/dist/lib.js","../../../app/packs/src/components/StaffRota/Formats.jsx","../../../app/packs/src/components/StaffRota/components/Table/Row.jsx","../../../app/packs/src/components/StaffRota/components/Table/MarkViewed.jsx","../../../app/packs/src/components/StaffRota/components/Table/EmptyListModal.jsx","../../../app/packs/src/components/StaffRota/components/Table/Multiple.jsx","../../../app/packs/src/components/StaffRota/components/Table/ClearHighlight.jsx","../../../app/packs/src/components/StaffRota/components/Table/Actions.jsx","../../../app/packs/src/components/StaffRota/components/Table/Table.jsx","../../../app/packs/src/components/StaffRota/components/Table/Pagination.jsx","../../../app/packs/src/components/StaffRota/Index/Index.jsx","../../../app/packs/src/components/StaffRota/New/Block.jsx","../../../app/packs/src/components/StaffRota/New/Shift.jsx","../../../app/packs/src/components/StaffRota/New/BackButton.jsx","../../../app/packs/src/components/StaffRota/New/ConfirmationErrorModal.jsx","../../../app/packs/src/components/StaffRota/New/CreateButton.jsx","../../../app/packs/src/components/StaffRota/New/AddShiftButton.jsx","../../../app/packs/src/components/StaffRota/New/Form.jsx","../../../app/packs/src/components/StaffRota/utils/history.js","../../../../opt/node_modules/sweetalert2/dist/sweetalert2.all.js","../../../app/packs/src/NeoDialog.js","../../../app/packs/src/components/StaffRota/New/ConfirmButton.jsx","../../../app/packs/src/components/StaffRota/New/Index.jsx","../../../app/packs/src/components/StaffRota/components/Modals/AfterConfirmed.jsx","../../../app/packs/src/components/StaffRota/ScrollToTop.js","../../../app/packs/src/components/StaffRota/Index.jsx","../../../app/packs/src/pages/index.jsx","../../../../opt/node_modules/@hotwired/stimulus/dist/stimulus.js","../../../app/packs/controllers/application.js","../../../app/packs/controllers/api_tokens_controller.js","../../../app/packs/controllers/bill_controller.js","../../../app/packs/src/components/EditBooking/calend-icon.png","../../../app/packs/src/components/LegacyDatepicker/InlineDatepicker.jsx","../../../app/packs/src/components/EditBooking/Calendar.jsx","../../../app/packs/src/components/EditBooking/Day.jsx","../../../app/packs/src/components/EditBooking/Facility.jsx","../../../app/packs/src/components/EditBooking/EventDate.jsx","../../../app/packs/src/components/BookingForm/Block/Periods.jsx","../../../app/packs/src/components/EditBooking/BookingOption.jsx","../../../app/packs/src/components/EditBooking/VatCheckbox.jsx","../../../app/packs/src/components/EditBooking/ExtrasDropdown/Extra.jsx","../../../app/packs/src/components/EditBooking/ExtrasDropdown/List.jsx","../../../app/packs/src/components/EditBooking/ExtrasDropdown/index.jsx","../../../app/packs/src/components/EditBooking/PriceAdjustmentReason.jsx","../../../app/packs/src/components/EditBooking/PriceAdjustment.jsx","../../../app/packs/src/components/EditBooking/Error.jsx","../../../app/packs/src/components/EditBooking/api.js","../../../app/packs/src/components/EditBooking/TimeSlots.jsx","../../../app/packs/src/components/EditBooking/Modal.jsx","../../../app/packs/src/components/EditBooking/utils/startAndEndTime.js","../../../app/packs/src/nextgen/helpers/processing_modal.js","../../../../opt/node_modules/luxon/src/errors.js","../../../../opt/node_modules/luxon/src/impl/formats.js","../../../../opt/node_modules/luxon/src/zone.js","../../../../opt/node_modules/luxon/src/zones/systemZone.js","../../../../opt/node_modules/luxon/src/zones/IANAZone.js","../../../../opt/node_modules/luxon/src/impl/locale.js","../../../../opt/node_modules/luxon/src/zones/fixedOffsetZone.js","../../../../opt/node_modules/luxon/src/zones/invalidZone.js","../../../../opt/node_modules/luxon/src/impl/zoneUtil.js","../../../../opt/node_modules/luxon/src/impl/digits.js","../../../../opt/node_modules/luxon/src/settings.js","../../../../opt/node_modules/luxon/src/impl/invalid.js","../../../../opt/node_modules/luxon/src/impl/conversions.js","../../../../opt/node_modules/luxon/src/impl/util.js","../../../../opt/node_modules/luxon/src/impl/english.js","../../../../opt/node_modules/luxon/src/impl/formatter.js","../../../../opt/node_modules/luxon/src/impl/regexParser.js","../../../../opt/node_modules/luxon/src/duration.js","../../../../opt/node_modules/luxon/src/interval.js","../../../../opt/node_modules/luxon/src/info.js","../../../../opt/node_modules/luxon/src/impl/diff.js","../../../../opt/node_modules/luxon/src/impl/tokenParser.js","../../../../opt/node_modules/luxon/src/datetime.js","../../../app/packs/src/components/EditBooking/Form.jsx","../../../app/packs/controllers/bill_row_controller.jsx","../../../app/packs/controllers/map_box_controller.js","../../../app/packs/controllers/room_controller.js","../../../app/packs/controllers/favourite_facility_controller.js","../../../app/packs/controllers/popover_controller.js","../../../app/packs/src/nextgen/admin/users/AddVenues.js","../../../app/packs/controllers/venue_users_controller.js","../../../../opt/node_modules/react-animate-height/dist/esm/index.js","../../../app/packs/src/components/Modal/index.jsx","../../../app/packs/src/components/MultiSelect/Option.jsx","../../../app/packs/src/components/MultiSelect/ValueContainer.jsx","../../../app/packs/src/components/MultiSelect/index.jsx","../../../app/packs/src/components/InfoIcon/index.jsx","../../../app/packs/src/components/MultiMessages/Form.jsx","../../../app/packs/controllers/multi_message_button_controller.jsx","../../../app/packs/controllers/cognita_venue_fields_controller.js","../../../app/packs/controllers/custom_message_signature_controller.js","../../../../opt/node_modules/bootstrap-tagsinput/dist/bootstrap-tagsinput.min.js","../../../app/packs/controllers/tags_input_controller.js","../../../app/packs/src/nextgen/helpers/smarty_form.js","../../../app/packs/controllers/edit_account_password_controller.js","../../../app/packs/controllers/order_cancellation_request_controller.js","../../../app/packs/controllers/link_venues_facilities_controller.js","../../../app/packs/controllers/neo_table_controller.js","../../../app/packs/controllers/admin/soft_deleted_facility.js","../../../app/packs/controllers/flash_controller.js","../../../app/packs/controllers/order_menu_button_controller.js","../../../app/packs/controllers/admin/customer_custom_options_controller.js","../../../app/packs/controllers/admin/customer_venue_linkings_controller.js","../../../app/packs/src/Neo.js","../../../app/packs/controllers/admin/venue_groups_controller.js","../../../../opt/node_modules/uuid/dist/esm-browser/rng.js","../../../../opt/node_modules/uuid/dist/esm-browser/bytesToUuid.js","../../../../opt/node_modules/uuid/dist/esm-browser/v4.js","../../../app/packs/src/NeoModal.js","../../../app/packs/controllers/admin/attachments_controller.js","../../../app/packs/controllers/bill_versions_controller.js","../../../app/packs/src/nextgen/orders/Tab.js","../../../app/packs/controllers/bill_buttons_controller.jsx","../../../app/packs/controllers/checkouts/venue_questions_controller.js","../../../app/packs/controllers/neo_modal_controller.js","../../../app/packs/controllers/neo_button_controller.js","../../../app/packs/src/components/FileUploader/Validations.jsx","../../../app/packs/src/components/FileUploader/Document.jsx","../../../app/packs/src/components/FileUploader/Documents.jsx","../../../app/packs/controllers/file_uploader_controller.jsx","../../../app/packs/controllers/pending_modification_controller.js","../../../app/packs/controllers/admin/income_option_form_controller.js","../../../app/packs/controllers/payment_card_controller.js","../../../app/packs/controllers/checkout_payment_controller.js","../../../app/packs/src/nextgen/Payments/anx.js","../../../app/packs/src/nextgen/Payments/Form/elementStyles.js","../../../app/packs/src/nextgen/Payments/Form/stripeForm.js","../../../app/packs/controllers/payment_form_controller.js","../../../app/packs/controllers/retry_failed_payment_controller.js","../../../app/packs/controllers/casual_payment_controller.js","../../../app/packs/controllers/calendar_scroller_controller.js","../../../app/packs/controllers/datepicker_controller.js","../../../app/packs/src/nextgen/pages/file_manager.js","../../../app/packs/controllers/file_manager_controller.js","../../../app/packs/src/nextgen/smartRedirect.js","../../../app/packs/controllers/conversation_buttons_controller.js","../../../../opt/node_modules/linkifyjs/dist/linkify.es.js","../../../../opt/node_modules/linkify-element/dist/linkify-element.es.js","../../../app/packs/controllers/linkify_controller.js","../../../app/packs/controllers/file_uploader_validator_controller.js","../../../app/packs/controllers/facility_controller.js","../../../app/packs/controllers/react_component_controller.jsx","../../../app/packs/controllers/info_page_controller.js","../../../app/packs/controllers/online_facility_controller.js","../../../app/packs/controllers/online_membership_plan_controller.js","../../../app/packs/controllers/admin/new_special_date_controller.js","../../../../opt/node_modules/stimulus-rails-nested-form/dist/stimulus-rails-nested-form.mjs","../../../app/packs/controllers/toggle_inputs_controller.js","../../../app/packs/controllers/admin/future_prices_modal_controller.js","../../../app/packs/controllers/session_storage_controller.js","../../../app/packs/controllers/admin/extra_form_controller.js","../../../app/packs/controllers/extras_table_controller.js","../../../app/packs/controllers/sign_out_controller.js","../../../app/packs/controllers/checkbox_block_controller.js","../../../app/packs/controllers/payment_schedule_override_controller.js","../../../app/packs/controllers/venue_controller.js","../../../app/packs/controllers/inbox_unread_count_controller.js","../../../app/packs/controllers/online_membership_cancellation.js","../../../app/packs/controllers/file_manager_filters_controller.js","../../../app/packs/controllers/online_members_buttons_controller.js","../../../app/packs/controllers/admin/venue_checkout_controller.js","../../../app/packs/src/components/Messenger/MembersMultiMessageForm.jsx","../../../app/packs/controllers/members_multi_message_button_controller.jsx","../../../app/packs/controllers/related_teams_controller.js","../../../app/packs/controllers/calendar_booking_modal_controller.js","../../../app/packs/controllers/checkouts/related_teams_controller.js","../../../app/packs/controllers/admin/booking_custom_messages_controller.js","../../../app/packs/controllers/online_membership_package_controller.js","../../../app/packs/controllers/modals/bill_send_controller.js","../../../app/packs/src/formatDuration.js","../../../app/packs/controllers/bill_countdown_controller.js","../../../app/packs/src/nextgen/admin/booking_options/day_rate.js","../../../app/packs/controllers/booking_option_controller.js","../../../app/packs/controllers/messages_counter_controller.js","../../../app/packs/controllers/modification_controller.js","../../../app/packs/controllers/order_modal_controller.js","../../../app/packs/controllers/orders_table.js","../../../app/packs/controllers/order_approval_controller.js","../../../app/packs/controllers/postgres_query_controller.js","../../../app/packs/controllers/conversation_remove_thread_controller.js","../../../app/packs/controllers/dynamic_popover_controller.js","../../../app/packs/controllers/bill/approval.js","../../../app/packs/controllers/order_venue_note_controller.js","../../../../opt/node_modules/photoswipe/dist/photoswipe-lightbox.esm.js","../../../../opt/node_modules/photoswipe/dist/photoswipe.esm.js","../../../app/packs/controllers/gallery_controller.js","../../../app/packs/controllers/venue_customer_controller.js","../../../app/packs/controllers/user_controller.js","../../../app/packs/controllers/member_controller.js","../../../app/packs/controllers/members_download_controller.js","../../../app/packs/controllers/venue_group_controller.js","../../../app/packs/controllers/mini_messenger_controller.js","../../../app/packs/controllers/modals/bill_approve_controller.js","../../../app/packs/controllers/user_form_controller.js","../../../../opt/node_modules/swiper/shared/ssr-window.esm.mjs","../../../../opt/node_modules/swiper/shared/utils.mjs","../../../../opt/node_modules/swiper/shared/swiper-core.mjs","../../../../opt/node_modules/swiper/modules/virtual.mjs","../../../../opt/node_modules/swiper/modules/keyboard.mjs","../../../../opt/node_modules/swiper/modules/mousewheel.mjs","../../../../opt/node_modules/swiper/shared/create-element-if-not-defined.mjs","../../../../opt/node_modules/swiper/modules/navigation.mjs","../../../../opt/node_modules/swiper/shared/classes-to-selector.mjs","../../../../opt/node_modules/swiper/modules/pagination.mjs","../../../../opt/node_modules/swiper/modules/scrollbar.mjs","../../../../opt/node_modules/swiper/modules/parallax.mjs","../../../../opt/node_modules/swiper/modules/zoom.mjs","../../../../opt/node_modules/swiper/modules/controller.mjs","../../../../opt/node_modules/swiper/modules/a11y.mjs","../../../../opt/node_modules/swiper/modules/history.mjs","../../../../opt/node_modules/swiper/modules/hash-navigation.mjs","../../../../opt/node_modules/swiper/modules/autoplay.mjs","../../../../opt/node_modules/swiper/modules/thumbs.mjs","../../../../opt/node_modules/swiper/modules/free-mode.mjs","../../../../opt/node_modules/swiper/modules/grid.mjs","../../../../opt/node_modules/swiper/modules/manipulation.mjs","../../../../opt/node_modules/swiper/shared/effect-init.mjs","../../../../opt/node_modules/swiper/shared/effect-target.mjs","../../../../opt/node_modules/swiper/shared/effect-virtual-transition-end.mjs","../../../../opt/node_modules/swiper/modules/effect-fade.mjs","../../../../opt/node_modules/swiper/modules/effect-cube.mjs","../../../../opt/node_modules/swiper/shared/create-shadow.mjs","../../../../opt/node_modules/swiper/modules/effect-flip.mjs","../../../../opt/node_modules/swiper/modules/effect-coverflow.mjs","../../../../opt/node_modules/swiper/modules/effect-creative.mjs","../../../../opt/node_modules/swiper/modules/effect-cards.mjs","../../../../opt/node_modules/swiper/swiper-bundle.mjs","../../../app/packs/controllers/swiper_controller.js","../../../app/packs/controllers/main_search_controller.js","../../../app/packs/controllers/place_autocomplete_controller.js","../../../app/packs/controllers/inline_datepicker_controller.js","../../../app/packs/controllers/backstretch_controller.js","../../../app/packs/controllers/autosubmit_dropdown_controller.js","../../../app/packs/controllers/autosubmit_checkbox_controller.js","../../../app/packs/controllers/selectize_controller.js","../../../app/packs/controllers/manage_secondary_user_controller.js","../../../app/packs/controllers/select_primary_user_controller.js","../../../app/packs/controllers/checkout_button_disabler_controller.js","../../../app/packs/controllers/book_button_controller.js","../../../app/packs/controllers/index.js","../../../app/packs/src/nextgen/utils/expandableTable.js","../../../app/packs/src/nextgen/utils/jquery.disabled_event.js","../../../app/packs/src/nextgen/utils/weekTableHeadFixer.js","../../../app/packs/src/nextgen/utils/formUtils.js","../../../app/packs/src/nextgen/main_section_height.js","../../../app/packs/src/nextgen/BootstrapAlert.js","../../../app/packs/src/nextgen/SendOrderToCustomer.js","../../../app/packs/src/nextgen/BookingItems/vat.js","../../../app/packs/src/nextgen/BookingItems/multiVat.js","../../../app/packs/src/nextgen/BookingItems/multiple.js","../../../app/packs/src/nextgen/BookingItems/checkoutOptions.js","../../../app/packs/src/nextgen/BookingItems/paymentOptions.js","../../../app/packs/src/nextgen/BookingItems/deleteBookingItems.js","../../../app/packs/src/nextgen/BookingItems/continueButton.js","../../../app/packs/src/nextgen/BookingItems/bookingTable.js","../../../app/packs/src/nextgen/users/notifications.js","../../../app/packs/src/nextgen/users/profile.js","../../../app/packs/src/nextgen/orders/bills.js","../../../app/packs/src/nextgen/orders/index.js","../../../app/packs/src/nextgen/order_notes/index.js","../../../app/packs/src/nextgen/actionMessage.js","../../../app/packs/src/nextgen/modifications.js","../../../app/packs/src/nextgen/send_modification_request_modal.js","../../../app/packs/src/nextgen/modals/form.js","../../../app/packs/src/nextgen/ResendInvitation.js","../../../app/packs/src/nextgen/MultiEditBookings.jsx","../../../app/packs/src/nextgen/Map/distance.js","../../../app/packs/src/nextgen/Map/searchAddressAutocomplete.js","../../../app/packs/src/nextgen/pages/search.js","../../../app/packs/src/nextgen/Map/index.js","../../../app/packs/src/nextgen/admin/Customers/table.js","../../../app/packs/src/nextgen/admin/special_dates/form.jsx","../../../app/packs/src/nextgen/admin/schedules/form.jsx","../../../app/packs/src/nextgen/admin/booking_options/sort.js","../../../app/packs/src/nextgen/admin/extras/sort.js","../../../app/packs/src/nextgen/admin/venues/settings.js","../../../app/packs/src/nextgen/admin/venues/sort.js","../../../app/packs/src/nextgen/admin/questions/ApiContext.jsx","../../../app/packs/src/nextgen/admin/questions/api.jsx","../../../../opt/node_modules/linkify-react/dist/linkify-react.es.js","../../../app/packs/src/nextgen/admin/questions/Item.jsx","../../../app/packs/src/nextgen/admin/questions/useModal.jsx","../../../app/packs/src/nextgen/admin/questions/fields/ErrorMessage.jsx","../../../app/packs/src/nextgen/admin/questions/fields/QuestionTitle.jsx","../../../app/packs/src/nextgen/admin/questions/fields/CheckboxOption.jsx","../../../app/packs/src/nextgen/admin/questions/fields/QuestionItem.jsx","../../../../opt/node_modules/immutability-helper/index.js","../../../app/packs/src/nextgen/admin/questions/uuid.js","../../../app/packs/src/nextgen/admin/questions/fields/MultiSelectOptions.jsx","../../../app/packs/src/nextgen/admin/questions/fields/QuestionItems.jsx","../../../app/packs/src/nextgen/admin/questions/fields/QuestionDocument.jsx","../../../app/packs/src/nextgen/admin/questions/Facilities.jsx","../../../app/packs/src/nextgen/admin/questions/Venues.jsx","../../../app/packs/src/nextgen/admin/questions/fields/AllowOptionsTrigger.jsx","../../../app/packs/src/nextgen/admin/questions/fields/QuestionItemTrigger.jsx","../../../app/packs/src/nextgen/admin/questions/OptionsTriggerQuestion.jsx","../../../app/packs/src/nextgen/admin/questions/MultipleFields.jsx","../../../app/packs/src/nextgen/admin/questions/Form.jsx","../../../app/packs/src/components/Reports/ErrorBoundary.jsx","../../../app/packs/src/nextgen/admin/questions/ModalCreate.jsx","../../../app/packs/src/nextgen/admin/questions/ModalEdit.jsx","../../../app/packs/src/nextgen/admin/questions/ModalRemove.jsx","../../../app/packs/src/nextgen/admin/questions/List.jsx","../../../app/packs/src/nextgen/admin/questions/Index.jsx","../../../app/packs/src/nextgen/admin/settings/NoticeMessages/api.js","../../../../opt/node_modules/react-toggle/dist/component/check.js","../../../../opt/node_modules/react-toggle/dist/component/x.js","../../../../opt/node_modules/react-toggle/dist/component/util.js","../../../../opt/node_modules/react-toggle/dist/component/index.js","../../../app/packs/src/nextgen/admin/settings/NoticeMessages/Fields.jsx","../../../app/packs/src/nextgen/admin/settings/NoticeMessages/Index.jsx","../../../app/packs/src/nextgen/admin/settings/Index.jsx","../../../app/packs/src/nextgen/admin/settings/logo_section/index.js","../../../app/packs/src/nextgen/admin/app_features/form.js","../../../app/packs/src/nextgen/admin/booking_closed_hours/booking_closed_hours.js","../../../app/packs/src/nextgen/admin/orders/resend_message.js","../../../app/packs/src/nextgen/admin/orders/user_to_action_reminder.js","../../../app/packs/src/nextgen/admin/orders/order_message_rules.js","../../../app/packs/src/nextgen/admin/orders/show_initiated_message_modal.js","../../../app/packs/src/nextgen/admin/calendars/Modal.js","../../../app/packs/src/nextgen/admin/calendars/Views/AgendaDay.js","../../../app/packs/src/nextgen/admin/calendars/Views/AgendaWeek.js","../../../app/packs/src/nextgen/admin/calendars/Filter/Venues.js","../../../app/packs/src/nextgen/admin/calendars/Filter/Facilities.js","../../../app/packs/src/nextgen/admin/calendars/Filter/EventDate.js","../../../app/packs/src/nextgen/admin/calendars/Filter/PeriodView.js","../../../app/packs/src/nextgen/admin/calendars/Filter/Days.js","../../../app/packs/src/nextgen/admin/calendars/Filter/StaffRotaView.js","../../../app/packs/src/nextgen/admin/calendars/Filter/WeekViewType.js","../../../app/packs/src/nextgen/admin/calendars/Filter/Customers.js","../../../app/packs/src/nextgen/admin/calendars/Filter/index.js","../../../app/packs/src/nextgen/admin/calendars/calendar.js","../../../app/packs/src/nextgen/admin/calendars/InternalOrder.js","../../../app/packs/src/nextgen/admin/calendars/Messages.js","../../../app/packs/src/nextgen/admin/calendars/CalendarNote.js","../../../app/packs/src/nextgen/admin/Facilities/sort.js","../../../app/packs/src/nextgen/admin/Facilities/form.js","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/VenueAdminControlButton.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/SystemAdminControlButton.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/ControlButton.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/ChildFacility.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/MultipleFields.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/SingleFields.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/Switcher.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/Modal.jsx","../../../app/packs/src/nextgen/admin/Facilities/MultiConverter/PanelButton.jsx","../../../app/packs/src/nextgen/admin/Facilities/converter.jsx","../../../app/packs/src/nextgen/admin/documents/index.js","../../../app/packs/src/nextgen/admin/documents/form.jsx","../../../app/packs/src/nextgen/admin/areas/index.js","../../../app/packs/src/nextgen/admin/orders/resend_failed_payment_email.js","../../../app/packs/src/nextgen/admin/orders/overdue_payment_reminder_email.js","../../../app/packs/src/nextgen/admin/conversations/custom_message.js","../../../app/packs/src/nextgen/admin/OfflineSchedules/index.js","../../../app/packs/src/nextgen/admin/InternalNotes/index.js","../../../app/packs/src/nextgen/admin/OfflinePayments/form.js","../../../app/packs/src/nextgen/admin/venues/future_prices_form.js","../../../app/packs/src/nextgen/admin/migrated/facility.js","../../../app/packs/src/nextgen/admin/migrated/help_centre_document.js","../../../app/packs/src/nextgen/admin/migrated/info_page.js","../../../app/packs/src/nextgen/admin/migrated/schedule.js","../../../app/packs/src/nextgen/admin/migrated/vats.js","../../../app/packs/src/nextgen/admin/migrated/venue.js","../../../app/packs/src/nextgen/admin/ApplicationSettings/index.js","../../../app/packs/src/nextgen/admin/OfflinePayments/index.js","../../../app/packs/src/nextgen/admin/users/Invitation.js","../../../app/packs/src/nextgen/admin/VenueAdmins/Invitation.js","../../../app/packs/src/nextgen/admin/index.js","../../../app/packs/src/nextgen/pages/file_manager_button.js","../../../app/packs/src/nextgen/pages/home.js","../../../app/packs/src/nextgen/pages/checkout.js","../../../app/packs/src/nextgen/pages/facility.js","../../../app/packs/src/nextgen/pages/notice.js","../../../app/packs/src/nextgen/pages/payment_request_counters.js","../../../app/packs/src/nextgen/pages/themes.js","../../../app/packs/src/nextgen/admin/users/VenueAdminCastling.js","../../../app/packs/src/nextgen/pages/navbar.js","../../../app/packs/src/nextgen/Index.js","../../../app/packs/entrypoints/application.jsx"],"sourcesContent":["/*\nTurbo 7.3.0\nCopyright © 2023 37signals LLC\n */\n(function () {\n if (window.Reflect === undefined ||\n window.customElements === undefined ||\n window.customElements.polyfillWrapFlushCallback) {\n return;\n }\n const BuiltInHTMLElement = HTMLElement;\n const wrapperForTheName = {\n HTMLElement: function HTMLElement() {\n return Reflect.construct(BuiltInHTMLElement, [], this.constructor);\n },\n };\n window.HTMLElement = wrapperForTheName[\"HTMLElement\"];\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n})();\n\n/**\n * The MIT License (MIT)\n * \n * Copyright (c) 2019 Javan Makhmali\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function(prototype) {\n if (typeof prototype.requestSubmit == \"function\") return\n\n prototype.requestSubmit = function(submitter) {\n if (submitter) {\n validateSubmitter(submitter, this);\n submitter.click();\n } else {\n submitter = document.createElement(\"input\");\n submitter.type = \"submit\";\n submitter.hidden = true;\n this.appendChild(submitter);\n submitter.click();\n this.removeChild(submitter);\n }\n };\n\n function validateSubmitter(submitter, form) {\n submitter instanceof HTMLElement || raise(TypeError, \"parameter 1 is not of type 'HTMLElement'\");\n submitter.type == \"submit\" || raise(TypeError, \"The specified element is not a submit button\");\n submitter.form == form || raise(DOMException, \"The specified element is not owned by this form element\", \"NotFoundError\");\n }\n\n function raise(errorConstructor, message, name) {\n throw new errorConstructor(\"Failed to execute 'requestSubmit' on 'HTMLFormElement': \" + message + \".\", name)\n }\n})(HTMLFormElement.prototype);\n\nconst submittersByForm = new WeakMap();\nfunction findSubmitterFromClickTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n const candidate = element ? element.closest(\"input, button\") : null;\n return (candidate === null || candidate === void 0 ? void 0 : candidate.type) == \"submit\" ? candidate : null;\n}\nfunction clickCaptured(event) {\n const submitter = findSubmitterFromClickTarget(event.target);\n if (submitter && submitter.form) {\n submittersByForm.set(submitter.form, submitter);\n }\n}\n(function () {\n if (\"submitter\" in Event.prototype)\n return;\n let prototype = window.Event.prototype;\n if (\"SubmitEvent\" in window && /Apple Computer/.test(navigator.vendor)) {\n prototype = window.SubmitEvent.prototype;\n }\n else if (\"SubmitEvent\" in window) {\n return;\n }\n addEventListener(\"click\", clickCaptured, true);\n Object.defineProperty(prototype, \"submitter\", {\n get() {\n if (this.type == \"submit\" && this.target instanceof HTMLFormElement) {\n return submittersByForm.get(this.target);\n }\n },\n });\n})();\n\nvar FrameLoadingStyle;\n(function (FrameLoadingStyle) {\n FrameLoadingStyle[\"eager\"] = \"eager\";\n FrameLoadingStyle[\"lazy\"] = \"lazy\";\n})(FrameLoadingStyle || (FrameLoadingStyle = {}));\nclass FrameElement extends HTMLElement {\n static get observedAttributes() {\n return [\"disabled\", \"complete\", \"loading\", \"src\"];\n }\n constructor() {\n super();\n this.loaded = Promise.resolve();\n this.delegate = new FrameElement.delegateConstructor(this);\n }\n connectedCallback() {\n this.delegate.connect();\n }\n disconnectedCallback() {\n this.delegate.disconnect();\n }\n reload() {\n return this.delegate.sourceURLReloaded();\n }\n attributeChangedCallback(name) {\n if (name == \"loading\") {\n this.delegate.loadingStyleChanged();\n }\n else if (name == \"complete\") {\n this.delegate.completeChanged();\n }\n else if (name == \"src\") {\n this.delegate.sourceURLChanged();\n }\n else {\n this.delegate.disabledChanged();\n }\n }\n get src() {\n return this.getAttribute(\"src\");\n }\n set src(value) {\n if (value) {\n this.setAttribute(\"src\", value);\n }\n else {\n this.removeAttribute(\"src\");\n }\n }\n get loading() {\n return frameLoadingStyleFromString(this.getAttribute(\"loading\") || \"\");\n }\n set loading(value) {\n if (value) {\n this.setAttribute(\"loading\", value);\n }\n else {\n this.removeAttribute(\"loading\");\n }\n }\n get disabled() {\n return this.hasAttribute(\"disabled\");\n }\n set disabled(value) {\n if (value) {\n this.setAttribute(\"disabled\", \"\");\n }\n else {\n this.removeAttribute(\"disabled\");\n }\n }\n get autoscroll() {\n return this.hasAttribute(\"autoscroll\");\n }\n set autoscroll(value) {\n if (value) {\n this.setAttribute(\"autoscroll\", \"\");\n }\n else {\n this.removeAttribute(\"autoscroll\");\n }\n }\n get complete() {\n return !this.delegate.isLoading;\n }\n get isActive() {\n return this.ownerDocument === document && !this.isPreview;\n }\n get isPreview() {\n var _a, _b;\n return (_b = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.documentElement) === null || _b === void 0 ? void 0 : _b.hasAttribute(\"data-turbo-preview\");\n }\n}\nfunction frameLoadingStyleFromString(style) {\n switch (style.toLowerCase()) {\n case \"lazy\":\n return FrameLoadingStyle.lazy;\n default:\n return FrameLoadingStyle.eager;\n }\n}\n\nfunction expandURL(locatable) {\n return new URL(locatable.toString(), document.baseURI);\n}\nfunction getAnchor(url) {\n let anchorMatch;\n if (url.hash) {\n return url.hash.slice(1);\n }\n else if ((anchorMatch = url.href.match(/#(.*)$/))) {\n return anchorMatch[1];\n }\n}\nfunction getAction(form, submitter) {\n const action = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formaction\")) || form.getAttribute(\"action\") || form.action;\n return expandURL(action);\n}\nfunction getExtension(url) {\n return (getLastPathComponent(url).match(/\\.[^.]*$/) || [])[0] || \"\";\n}\nfunction isHTML(url) {\n return !!getExtension(url).match(/^(?:|\\.(?:htm|html|xhtml|php))$/);\n}\nfunction isPrefixedBy(baseURL, url) {\n const prefix = getPrefix(url);\n return baseURL.href === expandURL(prefix).href || baseURL.href.startsWith(prefix);\n}\nfunction locationIsVisitable(location, rootLocation) {\n return isPrefixedBy(location, rootLocation) && isHTML(location);\n}\nfunction getRequestURL(url) {\n const anchor = getAnchor(url);\n return anchor != null ? url.href.slice(0, -(anchor.length + 1)) : url.href;\n}\nfunction toCacheKey(url) {\n return getRequestURL(url);\n}\nfunction urlsAreEqual(left, right) {\n return expandURL(left).href == expandURL(right).href;\n}\nfunction getPathComponents(url) {\n return url.pathname.split(\"/\").slice(1);\n}\nfunction getLastPathComponent(url) {\n return getPathComponents(url).slice(-1)[0];\n}\nfunction getPrefix(url) {\n return addTrailingSlash(url.origin + url.pathname);\n}\nfunction addTrailingSlash(value) {\n return value.endsWith(\"/\") ? value : value + \"/\";\n}\n\nclass FetchResponse {\n constructor(response) {\n this.response = response;\n }\n get succeeded() {\n return this.response.ok;\n }\n get failed() {\n return !this.succeeded;\n }\n get clientError() {\n return this.statusCode >= 400 && this.statusCode <= 499;\n }\n get serverError() {\n return this.statusCode >= 500 && this.statusCode <= 599;\n }\n get redirected() {\n return this.response.redirected;\n }\n get location() {\n return expandURL(this.response.url);\n }\n get isHTML() {\n return this.contentType && this.contentType.match(/^(?:text\\/([^\\s;,]+\\b)?html|application\\/xhtml\\+xml)\\b/);\n }\n get statusCode() {\n return this.response.status;\n }\n get contentType() {\n return this.header(\"Content-Type\");\n }\n get responseText() {\n return this.response.clone().text();\n }\n get responseHTML() {\n if (this.isHTML) {\n return this.response.clone().text();\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n header(name) {\n return this.response.headers.get(name);\n }\n}\n\nfunction activateScriptElement(element) {\n if (element.getAttribute(\"data-turbo-eval\") == \"false\") {\n return element;\n }\n else {\n const createdScriptElement = document.createElement(\"script\");\n const cspNonce = getMetaContent(\"csp-nonce\");\n if (cspNonce) {\n createdScriptElement.nonce = cspNonce;\n }\n createdScriptElement.textContent = element.textContent;\n createdScriptElement.async = false;\n copyElementAttributes(createdScriptElement, element);\n return createdScriptElement;\n }\n}\nfunction copyElementAttributes(destinationElement, sourceElement) {\n for (const { name, value } of sourceElement.attributes) {\n destinationElement.setAttribute(name, value);\n }\n}\nfunction createDocumentFragment(html) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content;\n}\nfunction dispatch(eventName, { target, cancelable, detail } = {}) {\n const event = new CustomEvent(eventName, {\n cancelable,\n bubbles: true,\n composed: true,\n detail,\n });\n if (target && target.isConnected) {\n target.dispatchEvent(event);\n }\n else {\n document.documentElement.dispatchEvent(event);\n }\n return event;\n}\nfunction nextAnimationFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => resolve()));\n}\nfunction nextEventLoopTick() {\n return new Promise((resolve) => setTimeout(() => resolve(), 0));\n}\nfunction nextMicrotask() {\n return Promise.resolve();\n}\nfunction parseHTMLDocument(html = \"\") {\n return new DOMParser().parseFromString(html, \"text/html\");\n}\nfunction unindent(strings, ...values) {\n const lines = interpolate(strings, values).replace(/^\\n/, \"\").split(\"\\n\");\n const match = lines[0].match(/^\\s+/);\n const indent = match ? match[0].length : 0;\n return lines.map((line) => line.slice(indent)).join(\"\\n\");\n}\nfunction interpolate(strings, values) {\n return strings.reduce((result, string, i) => {\n const value = values[i] == undefined ? \"\" : values[i];\n return result + string + value;\n }, \"\");\n}\nfunction uuid() {\n return Array.from({ length: 36 })\n .map((_, i) => {\n if (i == 8 || i == 13 || i == 18 || i == 23) {\n return \"-\";\n }\n else if (i == 14) {\n return \"4\";\n }\n else if (i == 19) {\n return (Math.floor(Math.random() * 4) + 8).toString(16);\n }\n else {\n return Math.floor(Math.random() * 15).toString(16);\n }\n })\n .join(\"\");\n}\nfunction getAttribute(attributeName, ...elements) {\n for (const value of elements.map((element) => element === null || element === void 0 ? void 0 : element.getAttribute(attributeName))) {\n if (typeof value == \"string\")\n return value;\n }\n return null;\n}\nfunction hasAttribute(attributeName, ...elements) {\n return elements.some((element) => element && element.hasAttribute(attributeName));\n}\nfunction markAsBusy(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.setAttribute(\"busy\", \"\");\n }\n element.setAttribute(\"aria-busy\", \"true\");\n }\n}\nfunction clearBusyState(...elements) {\n for (const element of elements) {\n if (element.localName == \"turbo-frame\") {\n element.removeAttribute(\"busy\");\n }\n element.removeAttribute(\"aria-busy\");\n }\n}\nfunction waitForLoad(element, timeoutInMilliseconds = 2000) {\n return new Promise((resolve) => {\n const onComplete = () => {\n element.removeEventListener(\"error\", onComplete);\n element.removeEventListener(\"load\", onComplete);\n resolve();\n };\n element.addEventListener(\"load\", onComplete, { once: true });\n element.addEventListener(\"error\", onComplete, { once: true });\n setTimeout(resolve, timeoutInMilliseconds);\n });\n}\nfunction getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n}\nfunction isAction(action) {\n return action == \"advance\" || action == \"replace\" || action == \"restore\";\n}\nfunction getVisitAction(...elements) {\n const action = getAttribute(\"data-turbo-action\", ...elements);\n return isAction(action) ? action : null;\n}\nfunction getMetaElement(name) {\n return document.querySelector(`meta[name=\"${name}\"]`);\n}\nfunction getMetaContent(name) {\n const element = getMetaElement(name);\n return element && element.content;\n}\nfunction setMetaContent(name, content) {\n let element = getMetaElement(name);\n if (!element) {\n element = document.createElement(\"meta\");\n element.setAttribute(\"name\", name);\n document.head.appendChild(element);\n }\n element.setAttribute(\"content\", content);\n return element;\n}\nfunction findClosestRecursively(element, selector) {\n var _a;\n if (element instanceof Element) {\n return (element.closest(selector) ||\n findClosestRecursively(element.assignedSlot || ((_a = element.getRootNode()) === null || _a === void 0 ? void 0 : _a.host), selector));\n }\n}\n\nvar FetchMethod;\n(function (FetchMethod) {\n FetchMethod[FetchMethod[\"get\"] = 0] = \"get\";\n FetchMethod[FetchMethod[\"post\"] = 1] = \"post\";\n FetchMethod[FetchMethod[\"put\"] = 2] = \"put\";\n FetchMethod[FetchMethod[\"patch\"] = 3] = \"patch\";\n FetchMethod[FetchMethod[\"delete\"] = 4] = \"delete\";\n})(FetchMethod || (FetchMethod = {}));\nfunction fetchMethodFromString(method) {\n switch (method.toLowerCase()) {\n case \"get\":\n return FetchMethod.get;\n case \"post\":\n return FetchMethod.post;\n case \"put\":\n return FetchMethod.put;\n case \"patch\":\n return FetchMethod.patch;\n case \"delete\":\n return FetchMethod.delete;\n }\n}\nclass FetchRequest {\n constructor(delegate, method, location, body = new URLSearchParams(), target = null) {\n this.abortController = new AbortController();\n this.resolveRequestPromise = (_value) => { };\n this.delegate = delegate;\n this.method = method;\n this.headers = this.defaultHeaders;\n this.body = body;\n this.url = location;\n this.target = target;\n }\n get location() {\n return this.url;\n }\n get params() {\n return this.url.searchParams;\n }\n get entries() {\n return this.body ? Array.from(this.body.entries()) : [];\n }\n cancel() {\n this.abortController.abort();\n }\n async perform() {\n const { fetchOptions } = this;\n this.delegate.prepareRequest(this);\n await this.allowRequestToBeIntercepted(fetchOptions);\n try {\n this.delegate.requestStarted(this);\n const response = await fetch(this.url.href, fetchOptions);\n return await this.receive(response);\n }\n catch (error) {\n if (error.name !== \"AbortError\") {\n if (this.willDelegateErrorHandling(error)) {\n this.delegate.requestErrored(this, error);\n }\n throw error;\n }\n }\n finally {\n this.delegate.requestFinished(this);\n }\n }\n async receive(response) {\n const fetchResponse = new FetchResponse(response);\n const event = dispatch(\"turbo:before-fetch-response\", {\n cancelable: true,\n detail: { fetchResponse },\n target: this.target,\n });\n if (event.defaultPrevented) {\n this.delegate.requestPreventedHandlingResponse(this, fetchResponse);\n }\n else if (fetchResponse.succeeded) {\n this.delegate.requestSucceededWithResponse(this, fetchResponse);\n }\n else {\n this.delegate.requestFailedWithResponse(this, fetchResponse);\n }\n return fetchResponse;\n }\n get fetchOptions() {\n var _a;\n return {\n method: FetchMethod[this.method].toUpperCase(),\n credentials: \"same-origin\",\n headers: this.headers,\n redirect: \"follow\",\n body: this.isSafe ? null : this.body,\n signal: this.abortSignal,\n referrer: (_a = this.delegate.referrer) === null || _a === void 0 ? void 0 : _a.href,\n };\n }\n get defaultHeaders() {\n return {\n Accept: \"text/html, application/xhtml+xml\",\n };\n }\n get isSafe() {\n return this.method === FetchMethod.get;\n }\n get abortSignal() {\n return this.abortController.signal;\n }\n acceptResponseType(mimeType) {\n this.headers[\"Accept\"] = [mimeType, this.headers[\"Accept\"]].join(\", \");\n }\n async allowRequestToBeIntercepted(fetchOptions) {\n const requestInterception = new Promise((resolve) => (this.resolveRequestPromise = resolve));\n const event = dispatch(\"turbo:before-fetch-request\", {\n cancelable: true,\n detail: {\n fetchOptions,\n url: this.url,\n resume: this.resolveRequestPromise,\n },\n target: this.target,\n });\n if (event.defaultPrevented)\n await requestInterception;\n }\n willDelegateErrorHandling(error) {\n const event = dispatch(\"turbo:fetch-request-error\", {\n target: this.target,\n cancelable: true,\n detail: { request: this, error: error },\n });\n return !event.defaultPrevented;\n }\n}\n\nclass AppearanceObserver {\n constructor(delegate, element) {\n this.started = false;\n this.intersect = (entries) => {\n const lastEntry = entries.slice(-1)[0];\n if (lastEntry === null || lastEntry === void 0 ? void 0 : lastEntry.isIntersecting) {\n this.delegate.elementAppearedInViewport(this.element);\n }\n };\n this.delegate = delegate;\n this.element = element;\n this.intersectionObserver = new IntersectionObserver(this.intersect);\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.intersectionObserver.observe(this.element);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.intersectionObserver.unobserve(this.element);\n }\n }\n}\n\nclass StreamMessage {\n static wrap(message) {\n if (typeof message == \"string\") {\n return new this(createDocumentFragment(message));\n }\n else {\n return message;\n }\n }\n constructor(fragment) {\n this.fragment = importStreamElements(fragment);\n }\n}\nStreamMessage.contentType = \"text/vnd.turbo-stream.html\";\nfunction importStreamElements(fragment) {\n for (const element of fragment.querySelectorAll(\"turbo-stream\")) {\n const streamElement = document.importNode(element, true);\n for (const inertScriptElement of streamElement.templateElement.content.querySelectorAll(\"script\")) {\n inertScriptElement.replaceWith(activateScriptElement(inertScriptElement));\n }\n element.replaceWith(streamElement);\n }\n return fragment;\n}\n\nvar FormSubmissionState;\n(function (FormSubmissionState) {\n FormSubmissionState[FormSubmissionState[\"initialized\"] = 0] = \"initialized\";\n FormSubmissionState[FormSubmissionState[\"requesting\"] = 1] = \"requesting\";\n FormSubmissionState[FormSubmissionState[\"waiting\"] = 2] = \"waiting\";\n FormSubmissionState[FormSubmissionState[\"receiving\"] = 3] = \"receiving\";\n FormSubmissionState[FormSubmissionState[\"stopping\"] = 4] = \"stopping\";\n FormSubmissionState[FormSubmissionState[\"stopped\"] = 5] = \"stopped\";\n})(FormSubmissionState || (FormSubmissionState = {}));\nvar FormEnctype;\n(function (FormEnctype) {\n FormEnctype[\"urlEncoded\"] = \"application/x-www-form-urlencoded\";\n FormEnctype[\"multipart\"] = \"multipart/form-data\";\n FormEnctype[\"plain\"] = \"text/plain\";\n})(FormEnctype || (FormEnctype = {}));\nfunction formEnctypeFromString(encoding) {\n switch (encoding.toLowerCase()) {\n case FormEnctype.multipart:\n return FormEnctype.multipart;\n case FormEnctype.plain:\n return FormEnctype.plain;\n default:\n return FormEnctype.urlEncoded;\n }\n}\nclass FormSubmission {\n static confirmMethod(message, _element, _submitter) {\n return Promise.resolve(confirm(message));\n }\n constructor(delegate, formElement, submitter, mustRedirect = false) {\n this.state = FormSubmissionState.initialized;\n this.delegate = delegate;\n this.formElement = formElement;\n this.submitter = submitter;\n this.formData = buildFormData(formElement, submitter);\n this.location = expandURL(this.action);\n if (this.method == FetchMethod.get) {\n mergeFormDataEntries(this.location, [...this.body.entries()]);\n }\n this.fetchRequest = new FetchRequest(this, this.method, this.location, this.body, this.formElement);\n this.mustRedirect = mustRedirect;\n }\n get method() {\n var _a;\n const method = ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formmethod\")) || this.formElement.getAttribute(\"method\") || \"\";\n return fetchMethodFromString(method.toLowerCase()) || FetchMethod.get;\n }\n get action() {\n var _a;\n const formElementAction = typeof this.formElement.action === \"string\" ? this.formElement.action : null;\n if ((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"formaction\")) {\n return this.submitter.getAttribute(\"formaction\") || \"\";\n }\n else {\n return this.formElement.getAttribute(\"action\") || formElementAction || \"\";\n }\n }\n get body() {\n if (this.enctype == FormEnctype.urlEncoded || this.method == FetchMethod.get) {\n return new URLSearchParams(this.stringFormData);\n }\n else {\n return this.formData;\n }\n }\n get enctype() {\n var _a;\n return formEnctypeFromString(((_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"formenctype\")) || this.formElement.enctype);\n }\n get isSafe() {\n return this.fetchRequest.isSafe;\n }\n get stringFormData() {\n return [...this.formData].reduce((entries, [name, value]) => {\n return entries.concat(typeof value == \"string\" ? [[name, value]] : []);\n }, []);\n }\n async start() {\n const { initialized, requesting } = FormSubmissionState;\n const confirmationMessage = getAttribute(\"data-turbo-confirm\", this.submitter, this.formElement);\n if (typeof confirmationMessage === \"string\") {\n const answer = await FormSubmission.confirmMethod(confirmationMessage, this.formElement, this.submitter);\n if (!answer) {\n return;\n }\n }\n if (this.state == initialized) {\n this.state = requesting;\n return this.fetchRequest.perform();\n }\n }\n stop() {\n const { stopping, stopped } = FormSubmissionState;\n if (this.state != stopping && this.state != stopped) {\n this.state = stopping;\n this.fetchRequest.cancel();\n return true;\n }\n }\n prepareRequest(request) {\n if (!request.isSafe) {\n const token = getCookieValue(getMetaContent(\"csrf-param\")) || getMetaContent(\"csrf-token\");\n if (token) {\n request.headers[\"X-CSRF-Token\"] = token;\n }\n }\n if (this.requestAcceptsTurboStreamResponse(request)) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n var _a;\n this.state = FormSubmissionState.waiting;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.setAttribute(\"disabled\", \"\");\n this.setSubmitsWith();\n dispatch(\"turbo:submit-start\", {\n target: this.formElement,\n detail: { formSubmission: this },\n });\n this.delegate.formSubmissionStarted(this);\n }\n requestPreventedHandlingResponse(request, response) {\n this.result = { success: response.succeeded, fetchResponse: response };\n }\n requestSucceededWithResponse(request, response) {\n if (response.clientError || response.serverError) {\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n else if (this.requestMustRedirect(request) && responseSucceededWithoutRedirect(response)) {\n const error = new Error(\"Form responses must redirect to another location\");\n this.delegate.formSubmissionErrored(this, error);\n }\n else {\n this.state = FormSubmissionState.receiving;\n this.result = { success: true, fetchResponse: response };\n this.delegate.formSubmissionSucceededWithResponse(this, response);\n }\n }\n requestFailedWithResponse(request, response) {\n this.result = { success: false, fetchResponse: response };\n this.delegate.formSubmissionFailedWithResponse(this, response);\n }\n requestErrored(request, error) {\n this.result = { success: false, error };\n this.delegate.formSubmissionErrored(this, error);\n }\n requestFinished(_request) {\n var _a;\n this.state = FormSubmissionState.stopped;\n (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.removeAttribute(\"disabled\");\n this.resetSubmitterText();\n dispatch(\"turbo:submit-end\", {\n target: this.formElement,\n detail: Object.assign({ formSubmission: this }, this.result),\n });\n this.delegate.formSubmissionFinished(this);\n }\n setSubmitsWith() {\n if (!this.submitter || !this.submitsWith)\n return;\n if (this.submitter.matches(\"button\")) {\n this.originalSubmitText = this.submitter.innerHTML;\n this.submitter.innerHTML = this.submitsWith;\n }\n else if (this.submitter.matches(\"input\")) {\n const input = this.submitter;\n this.originalSubmitText = input.value;\n input.value = this.submitsWith;\n }\n }\n resetSubmitterText() {\n if (!this.submitter || !this.originalSubmitText)\n return;\n if (this.submitter.matches(\"button\")) {\n this.submitter.innerHTML = this.originalSubmitText;\n }\n else if (this.submitter.matches(\"input\")) {\n const input = this.submitter;\n input.value = this.originalSubmitText;\n }\n }\n requestMustRedirect(request) {\n return !request.isSafe && this.mustRedirect;\n }\n requestAcceptsTurboStreamResponse(request) {\n return !request.isSafe || hasAttribute(\"data-turbo-stream\", this.submitter, this.formElement);\n }\n get submitsWith() {\n var _a;\n return (_a = this.submitter) === null || _a === void 0 ? void 0 : _a.getAttribute(\"data-turbo-submits-with\");\n }\n}\nfunction buildFormData(formElement, submitter) {\n const formData = new FormData(formElement);\n const name = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"name\");\n const value = submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"value\");\n if (name) {\n formData.append(name, value || \"\");\n }\n return formData;\n}\nfunction getCookieValue(cookieName) {\n if (cookieName != null) {\n const cookies = document.cookie ? document.cookie.split(\"; \") : [];\n const cookie = cookies.find((cookie) => cookie.startsWith(cookieName));\n if (cookie) {\n const value = cookie.split(\"=\").slice(1).join(\"=\");\n return value ? decodeURIComponent(value) : undefined;\n }\n }\n}\nfunction responseSucceededWithoutRedirect(response) {\n return response.statusCode == 200 && !response.redirected;\n}\nfunction mergeFormDataEntries(url, entries) {\n const searchParams = new URLSearchParams();\n for (const [name, value] of entries) {\n if (value instanceof File)\n continue;\n searchParams.append(name, value);\n }\n url.search = searchParams.toString();\n return url;\n}\n\nclass Snapshot {\n constructor(element) {\n this.element = element;\n }\n get activeElement() {\n return this.element.ownerDocument.activeElement;\n }\n get children() {\n return [...this.element.children];\n }\n hasAnchor(anchor) {\n return this.getElementForAnchor(anchor) != null;\n }\n getElementForAnchor(anchor) {\n return anchor ? this.element.querySelector(`[id='${anchor}'], a[name='${anchor}']`) : null;\n }\n get isConnected() {\n return this.element.isConnected;\n }\n get firstAutofocusableElement() {\n const inertDisabledOrHidden = \"[inert], :disabled, [hidden], details:not([open]), dialog:not([open])\";\n for (const element of this.element.querySelectorAll(\"[autofocus]\")) {\n if (element.closest(inertDisabledOrHidden) == null)\n return element;\n else\n continue;\n }\n return null;\n }\n get permanentElements() {\n return queryPermanentElementsAll(this.element);\n }\n getPermanentElementById(id) {\n return getPermanentElementById(this.element, id);\n }\n getPermanentElementMapForSnapshot(snapshot) {\n const permanentElementMap = {};\n for (const currentPermanentElement of this.permanentElements) {\n const { id } = currentPermanentElement;\n const newPermanentElement = snapshot.getPermanentElementById(id);\n if (newPermanentElement) {\n permanentElementMap[id] = [currentPermanentElement, newPermanentElement];\n }\n }\n return permanentElementMap;\n }\n}\nfunction getPermanentElementById(node, id) {\n return node.querySelector(`#${id}[data-turbo-permanent]`);\n}\nfunction queryPermanentElementsAll(node) {\n return node.querySelectorAll(\"[id][data-turbo-permanent]\");\n}\n\nclass FormSubmitObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.submitCaptured = () => {\n this.eventTarget.removeEventListener(\"submit\", this.submitBubbled, false);\n this.eventTarget.addEventListener(\"submit\", this.submitBubbled, false);\n };\n this.submitBubbled = ((event) => {\n if (!event.defaultPrevented) {\n const form = event.target instanceof HTMLFormElement ? event.target : undefined;\n const submitter = event.submitter || undefined;\n if (form &&\n submissionDoesNotDismissDialog(form, submitter) &&\n submissionDoesNotTargetIFrame(form, submitter) &&\n this.delegate.willSubmitForm(form, submitter)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.delegate.formSubmitted(form, submitter);\n }\n }\n });\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"submit\", this.submitCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"submit\", this.submitCaptured, true);\n this.started = false;\n }\n }\n}\nfunction submissionDoesNotDismissDialog(form, submitter) {\n const method = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formmethod\")) || form.getAttribute(\"method\");\n return method != \"dialog\";\n}\nfunction submissionDoesNotTargetIFrame(form, submitter) {\n if ((submitter === null || submitter === void 0 ? void 0 : submitter.hasAttribute(\"formtarget\")) || form.hasAttribute(\"target\")) {\n const target = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"formtarget\")) || form.target;\n for (const element of document.getElementsByName(target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n }\n else {\n return true;\n }\n}\n\nclass View {\n constructor(delegate, element) {\n this.resolveRenderPromise = (_value) => { };\n this.resolveInterceptionPromise = (_value) => { };\n this.delegate = delegate;\n this.element = element;\n }\n scrollToAnchor(anchor) {\n const element = this.snapshot.getElementForAnchor(anchor);\n if (element) {\n this.scrollToElement(element);\n this.focusElement(element);\n }\n else {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n }\n scrollToAnchorFromLocation(location) {\n this.scrollToAnchor(getAnchor(location));\n }\n scrollToElement(element) {\n element.scrollIntoView();\n }\n focusElement(element) {\n if (element instanceof HTMLElement) {\n if (element.hasAttribute(\"tabindex\")) {\n element.focus();\n }\n else {\n element.setAttribute(\"tabindex\", \"-1\");\n element.focus();\n element.removeAttribute(\"tabindex\");\n }\n }\n }\n scrollToPosition({ x, y }) {\n this.scrollRoot.scrollTo(x, y);\n }\n scrollToTop() {\n this.scrollToPosition({ x: 0, y: 0 });\n }\n get scrollRoot() {\n return window;\n }\n async render(renderer) {\n const { isPreview, shouldRender, newSnapshot: snapshot } = renderer;\n if (shouldRender) {\n try {\n this.renderPromise = new Promise((resolve) => (this.resolveRenderPromise = resolve));\n this.renderer = renderer;\n await this.prepareToRenderSnapshot(renderer);\n const renderInterception = new Promise((resolve) => (this.resolveInterceptionPromise = resolve));\n const options = { resume: this.resolveInterceptionPromise, render: this.renderer.renderElement };\n const immediateRender = this.delegate.allowsImmediateRender(snapshot, options);\n if (!immediateRender)\n await renderInterception;\n await this.renderSnapshot(renderer);\n this.delegate.viewRenderedSnapshot(snapshot, isPreview);\n this.delegate.preloadOnLoadLinksForView(this.element);\n this.finishRenderingSnapshot(renderer);\n }\n finally {\n delete this.renderer;\n this.resolveRenderPromise(undefined);\n delete this.renderPromise;\n }\n }\n else {\n this.invalidate(renderer.reloadReason);\n }\n }\n invalidate(reason) {\n this.delegate.viewInvalidated(reason);\n }\n async prepareToRenderSnapshot(renderer) {\n this.markAsPreview(renderer.isPreview);\n await renderer.prepareToRender();\n }\n markAsPreview(isPreview) {\n if (isPreview) {\n this.element.setAttribute(\"data-turbo-preview\", \"\");\n }\n else {\n this.element.removeAttribute(\"data-turbo-preview\");\n }\n }\n async renderSnapshot(renderer) {\n await renderer.render();\n }\n finishRenderingSnapshot(renderer) {\n renderer.finishRendering();\n }\n}\n\nclass FrameView extends View {\n missing() {\n this.element.innerHTML = `<strong class=\"turbo-frame-error\">Content missing</strong>`;\n }\n get snapshot() {\n return new Snapshot(this.element);\n }\n}\n\nclass LinkInterceptor {\n constructor(delegate, element) {\n this.clickBubbled = (event) => {\n if (this.respondsToEventTarget(event.target)) {\n this.clickEvent = event;\n }\n else {\n delete this.clickEvent;\n }\n };\n this.linkClicked = ((event) => {\n if (this.clickEvent && this.respondsToEventTarget(event.target) && event.target instanceof Element) {\n if (this.delegate.shouldInterceptLinkClick(event.target, event.detail.url, event.detail.originalEvent)) {\n this.clickEvent.preventDefault();\n event.preventDefault();\n this.delegate.linkClickIntercepted(event.target, event.detail.url, event.detail.originalEvent);\n }\n }\n delete this.clickEvent;\n });\n this.willVisit = ((_event) => {\n delete this.clickEvent;\n });\n this.delegate = delegate;\n this.element = element;\n }\n start() {\n this.element.addEventListener(\"click\", this.clickBubbled);\n document.addEventListener(\"turbo:click\", this.linkClicked);\n document.addEventListener(\"turbo:before-visit\", this.willVisit);\n }\n stop() {\n this.element.removeEventListener(\"click\", this.clickBubbled);\n document.removeEventListener(\"turbo:click\", this.linkClicked);\n document.removeEventListener(\"turbo:before-visit\", this.willVisit);\n }\n respondsToEventTarget(target) {\n const element = target instanceof Element ? target : target instanceof Node ? target.parentElement : null;\n return element && element.closest(\"turbo-frame, html\") == this.element;\n }\n}\n\nclass LinkClickObserver {\n constructor(delegate, eventTarget) {\n this.started = false;\n this.clickCaptured = () => {\n this.eventTarget.removeEventListener(\"click\", this.clickBubbled, false);\n this.eventTarget.addEventListener(\"click\", this.clickBubbled, false);\n };\n this.clickBubbled = (event) => {\n if (event instanceof MouseEvent && this.clickEventIsSignificant(event)) {\n const target = (event.composedPath && event.composedPath()[0]) || event.target;\n const link = this.findLinkFromClickTarget(target);\n if (link && doesNotTargetIFrame(link)) {\n const location = this.getLocationForLink(link);\n if (this.delegate.willFollowLinkToLocation(link, location, event)) {\n event.preventDefault();\n this.delegate.followedLinkToLocation(link, location);\n }\n }\n }\n };\n this.delegate = delegate;\n this.eventTarget = eventTarget;\n }\n start() {\n if (!this.started) {\n this.eventTarget.addEventListener(\"click\", this.clickCaptured, true);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.eventTarget.removeEventListener(\"click\", this.clickCaptured, true);\n this.started = false;\n }\n }\n clickEventIsSignificant(event) {\n return !((event.target && event.target.isContentEditable) ||\n event.defaultPrevented ||\n event.which > 1 ||\n event.altKey ||\n event.ctrlKey ||\n event.metaKey ||\n event.shiftKey);\n }\n findLinkFromClickTarget(target) {\n return findClosestRecursively(target, \"a[href]:not([target^=_]):not([download])\");\n }\n getLocationForLink(link) {\n return expandURL(link.getAttribute(\"href\") || \"\");\n }\n}\nfunction doesNotTargetIFrame(anchor) {\n if (anchor.hasAttribute(\"target\")) {\n for (const element of document.getElementsByName(anchor.target)) {\n if (element instanceof HTMLIFrameElement)\n return false;\n }\n return true;\n }\n else {\n return true;\n }\n}\n\nclass FormLinkClickObserver {\n constructor(delegate, element) {\n this.delegate = delegate;\n this.linkInterceptor = new LinkClickObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n }\n stop() {\n this.linkInterceptor.stop();\n }\n willFollowLinkToLocation(link, location, originalEvent) {\n return (this.delegate.willSubmitFormLinkToLocation(link, location, originalEvent) &&\n link.hasAttribute(\"data-turbo-method\"));\n }\n followedLinkToLocation(link, location) {\n const form = document.createElement(\"form\");\n const type = \"hidden\";\n for (const [name, value] of location.searchParams) {\n form.append(Object.assign(document.createElement(\"input\"), { type, name, value }));\n }\n const action = Object.assign(location, { search: \"\" });\n form.setAttribute(\"data-turbo\", \"true\");\n form.setAttribute(\"action\", action.href);\n form.setAttribute(\"hidden\", \"\");\n const method = link.getAttribute(\"data-turbo-method\");\n if (method)\n form.setAttribute(\"method\", method);\n const turboFrame = link.getAttribute(\"data-turbo-frame\");\n if (turboFrame)\n form.setAttribute(\"data-turbo-frame\", turboFrame);\n const turboAction = getVisitAction(link);\n if (turboAction)\n form.setAttribute(\"data-turbo-action\", turboAction);\n const turboConfirm = link.getAttribute(\"data-turbo-confirm\");\n if (turboConfirm)\n form.setAttribute(\"data-turbo-confirm\", turboConfirm);\n const turboStream = link.hasAttribute(\"data-turbo-stream\");\n if (turboStream)\n form.setAttribute(\"data-turbo-stream\", \"\");\n this.delegate.submittedFormLinkToLocation(link, location, form);\n document.body.appendChild(form);\n form.addEventListener(\"turbo:submit-end\", () => form.remove(), { once: true });\n requestAnimationFrame(() => form.requestSubmit());\n }\n}\n\nclass Bardo {\n static async preservingPermanentElements(delegate, permanentElementMap, callback) {\n const bardo = new this(delegate, permanentElementMap);\n bardo.enter();\n await callback();\n bardo.leave();\n }\n constructor(delegate, permanentElementMap) {\n this.delegate = delegate;\n this.permanentElementMap = permanentElementMap;\n }\n enter() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement, newPermanentElement] = this.permanentElementMap[id];\n this.delegate.enteringBardo(currentPermanentElement, newPermanentElement);\n this.replaceNewPermanentElementWithPlaceholder(newPermanentElement);\n }\n }\n leave() {\n for (const id in this.permanentElementMap) {\n const [currentPermanentElement] = this.permanentElementMap[id];\n this.replaceCurrentPermanentElementWithClone(currentPermanentElement);\n this.replacePlaceholderWithPermanentElement(currentPermanentElement);\n this.delegate.leavingBardo(currentPermanentElement);\n }\n }\n replaceNewPermanentElementWithPlaceholder(permanentElement) {\n const placeholder = createPlaceholderForPermanentElement(permanentElement);\n permanentElement.replaceWith(placeholder);\n }\n replaceCurrentPermanentElementWithClone(permanentElement) {\n const clone = permanentElement.cloneNode(true);\n permanentElement.replaceWith(clone);\n }\n replacePlaceholderWithPermanentElement(permanentElement) {\n const placeholder = this.getPlaceholderById(permanentElement.id);\n placeholder === null || placeholder === void 0 ? void 0 : placeholder.replaceWith(permanentElement);\n }\n getPlaceholderById(id) {\n return this.placeholders.find((element) => element.content == id);\n }\n get placeholders() {\n return [...document.querySelectorAll(\"meta[name=turbo-permanent-placeholder][content]\")];\n }\n}\nfunction createPlaceholderForPermanentElement(permanentElement) {\n const element = document.createElement(\"meta\");\n element.setAttribute(\"name\", \"turbo-permanent-placeholder\");\n element.setAttribute(\"content\", permanentElement.id);\n return element;\n}\n\nclass Renderer {\n constructor(currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n this.activeElement = null;\n this.currentSnapshot = currentSnapshot;\n this.newSnapshot = newSnapshot;\n this.isPreview = isPreview;\n this.willRender = willRender;\n this.renderElement = renderElement;\n this.promise = new Promise((resolve, reject) => (this.resolvingFunctions = { resolve, reject }));\n }\n get shouldRender() {\n return true;\n }\n get reloadReason() {\n return;\n }\n prepareToRender() {\n return;\n }\n finishRendering() {\n if (this.resolvingFunctions) {\n this.resolvingFunctions.resolve();\n delete this.resolvingFunctions;\n }\n }\n async preservingPermanentElements(callback) {\n await Bardo.preservingPermanentElements(this, this.permanentElementMap, callback);\n }\n focusFirstAutofocusableElement() {\n const element = this.connectedSnapshot.firstAutofocusableElement;\n if (elementIsFocusable(element)) {\n element.focus();\n }\n }\n enteringBardo(currentPermanentElement) {\n if (this.activeElement)\n return;\n if (currentPermanentElement.contains(this.currentSnapshot.activeElement)) {\n this.activeElement = this.currentSnapshot.activeElement;\n }\n }\n leavingBardo(currentPermanentElement) {\n if (currentPermanentElement.contains(this.activeElement) && this.activeElement instanceof HTMLElement) {\n this.activeElement.focus();\n this.activeElement = null;\n }\n }\n get connectedSnapshot() {\n return this.newSnapshot.isConnected ? this.newSnapshot : this.currentSnapshot;\n }\n get currentElement() {\n return this.currentSnapshot.element;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n get permanentElementMap() {\n return this.currentSnapshot.getPermanentElementMapForSnapshot(this.newSnapshot);\n }\n}\nfunction elementIsFocusable(element) {\n return element && typeof element.focus == \"function\";\n}\n\nclass FrameRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n var _a;\n const destinationRange = document.createRange();\n destinationRange.selectNodeContents(currentElement);\n destinationRange.deleteContents();\n const frameElement = newElement;\n const sourceRange = (_a = frameElement.ownerDocument) === null || _a === void 0 ? void 0 : _a.createRange();\n if (sourceRange) {\n sourceRange.selectNodeContents(frameElement);\n currentElement.appendChild(sourceRange.extractContents());\n }\n }\n constructor(delegate, currentSnapshot, newSnapshot, renderElement, isPreview, willRender = true) {\n super(currentSnapshot, newSnapshot, renderElement, isPreview, willRender);\n this.delegate = delegate;\n }\n get shouldRender() {\n return true;\n }\n async render() {\n await nextAnimationFrame();\n this.preservingPermanentElements(() => {\n this.loadFrameElement();\n });\n this.scrollFrameIntoView();\n await nextAnimationFrame();\n this.focusFirstAutofocusableElement();\n await nextAnimationFrame();\n this.activateScriptElements();\n }\n loadFrameElement() {\n this.delegate.willRenderFrame(this.currentElement, this.newElement);\n this.renderElement(this.currentElement, this.newElement);\n }\n scrollFrameIntoView() {\n if (this.currentElement.autoscroll || this.newElement.autoscroll) {\n const element = this.currentElement.firstElementChild;\n const block = readScrollLogicalPosition(this.currentElement.getAttribute(\"data-autoscroll-block\"), \"end\");\n const behavior = readScrollBehavior(this.currentElement.getAttribute(\"data-autoscroll-behavior\"), \"auto\");\n if (element) {\n element.scrollIntoView({ block, behavior });\n return true;\n }\n }\n return false;\n }\n activateScriptElements() {\n for (const inertScriptElement of this.newScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n get newScriptElements() {\n return this.currentElement.querySelectorAll(\"script\");\n }\n}\nfunction readScrollLogicalPosition(value, defaultValue) {\n if (value == \"end\" || value == \"start\" || value == \"center\" || value == \"nearest\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\nfunction readScrollBehavior(value, defaultValue) {\n if (value == \"auto\" || value == \"smooth\") {\n return value;\n }\n else {\n return defaultValue;\n }\n}\n\nclass ProgressBar {\n static get defaultCSS() {\n return unindent `\n .turbo-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 2147483647;\n transition:\n width ${ProgressBar.animationDuration}ms ease-out,\n opacity ${ProgressBar.animationDuration / 2}ms ${ProgressBar.animationDuration / 2}ms ease-in;\n transform: translate3d(0, 0, 0);\n }\n `;\n }\n constructor() {\n this.hiding = false;\n this.value = 0;\n this.visible = false;\n this.trickle = () => {\n this.setValue(this.value + Math.random() / 100);\n };\n this.stylesheetElement = this.createStylesheetElement();\n this.progressElement = this.createProgressElement();\n this.installStylesheetElement();\n this.setValue(0);\n }\n show() {\n if (!this.visible) {\n this.visible = true;\n this.installProgressElement();\n this.startTrickling();\n }\n }\n hide() {\n if (this.visible && !this.hiding) {\n this.hiding = true;\n this.fadeProgressElement(() => {\n this.uninstallProgressElement();\n this.stopTrickling();\n this.visible = false;\n this.hiding = false;\n });\n }\n }\n setValue(value) {\n this.value = value;\n this.refresh();\n }\n installStylesheetElement() {\n document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }\n installProgressElement() {\n this.progressElement.style.width = \"0\";\n this.progressElement.style.opacity = \"1\";\n document.documentElement.insertBefore(this.progressElement, document.body);\n this.refresh();\n }\n fadeProgressElement(callback) {\n this.progressElement.style.opacity = \"0\";\n setTimeout(callback, ProgressBar.animationDuration * 1.5);\n }\n uninstallProgressElement() {\n if (this.progressElement.parentNode) {\n document.documentElement.removeChild(this.progressElement);\n }\n }\n startTrickling() {\n if (!this.trickleInterval) {\n this.trickleInterval = window.setInterval(this.trickle, ProgressBar.animationDuration);\n }\n }\n stopTrickling() {\n window.clearInterval(this.trickleInterval);\n delete this.trickleInterval;\n }\n refresh() {\n requestAnimationFrame(() => {\n this.progressElement.style.width = `${10 + this.value * 90}%`;\n });\n }\n createStylesheetElement() {\n const element = document.createElement(\"style\");\n element.type = \"text/css\";\n element.textContent = ProgressBar.defaultCSS;\n if (this.cspNonce) {\n element.nonce = this.cspNonce;\n }\n return element;\n }\n createProgressElement() {\n const element = document.createElement(\"div\");\n element.className = \"turbo-progress-bar\";\n return element;\n }\n get cspNonce() {\n return getMetaContent(\"csp-nonce\");\n }\n}\nProgressBar.animationDuration = 300;\n\nclass HeadSnapshot extends Snapshot {\n constructor() {\n super(...arguments);\n this.detailsByOuterHTML = this.children\n .filter((element) => !elementIsNoscript(element))\n .map((element) => elementWithoutNonce(element))\n .reduce((result, element) => {\n const { outerHTML } = element;\n const details = outerHTML in result\n ? result[outerHTML]\n : {\n type: elementType(element),\n tracked: elementIsTracked(element),\n elements: [],\n };\n return Object.assign(Object.assign({}, result), { [outerHTML]: Object.assign(Object.assign({}, details), { elements: [...details.elements, element] }) });\n }, {});\n }\n get trackedElementSignature() {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => this.detailsByOuterHTML[outerHTML].tracked)\n .join(\"\");\n }\n getScriptElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"script\", snapshot);\n }\n getStylesheetElementsNotInSnapshot(snapshot) {\n return this.getElementsMatchingTypeNotInSnapshot(\"stylesheet\", snapshot);\n }\n getElementsMatchingTypeNotInSnapshot(matchedType, snapshot) {\n return Object.keys(this.detailsByOuterHTML)\n .filter((outerHTML) => !(outerHTML in snapshot.detailsByOuterHTML))\n .map((outerHTML) => this.detailsByOuterHTML[outerHTML])\n .filter(({ type }) => type == matchedType)\n .map(({ elements: [element] }) => element);\n }\n get provisionalElements() {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { type, tracked, elements } = this.detailsByOuterHTML[outerHTML];\n if (type == null && !tracked) {\n return [...result, ...elements];\n }\n else if (elements.length > 1) {\n return [...result, ...elements.slice(1)];\n }\n else {\n return result;\n }\n }, []);\n }\n getMetaValue(name) {\n const element = this.findMetaElementByName(name);\n return element ? element.getAttribute(\"content\") : null;\n }\n findMetaElementByName(name) {\n return Object.keys(this.detailsByOuterHTML).reduce((result, outerHTML) => {\n const { elements: [element], } = this.detailsByOuterHTML[outerHTML];\n return elementIsMetaElementWithName(element, name) ? element : result;\n }, undefined);\n }\n}\nfunction elementType(element) {\n if (elementIsScript(element)) {\n return \"script\";\n }\n else if (elementIsStylesheet(element)) {\n return \"stylesheet\";\n }\n}\nfunction elementIsTracked(element) {\n return element.getAttribute(\"data-turbo-track\") == \"reload\";\n}\nfunction elementIsScript(element) {\n const tagName = element.localName;\n return tagName == \"script\";\n}\nfunction elementIsNoscript(element) {\n const tagName = element.localName;\n return tagName == \"noscript\";\n}\nfunction elementIsStylesheet(element) {\n const tagName = element.localName;\n return tagName == \"style\" || (tagName == \"link\" && element.getAttribute(\"rel\") == \"stylesheet\");\n}\nfunction elementIsMetaElementWithName(element, name) {\n const tagName = element.localName;\n return tagName == \"meta\" && element.getAttribute(\"name\") == name;\n}\nfunction elementWithoutNonce(element) {\n if (element.hasAttribute(\"nonce\")) {\n element.setAttribute(\"nonce\", \"\");\n }\n return element;\n}\n\nclass PageSnapshot extends Snapshot {\n static fromHTMLString(html = \"\") {\n return this.fromDocument(parseHTMLDocument(html));\n }\n static fromElement(element) {\n return this.fromDocument(element.ownerDocument);\n }\n static fromDocument({ head, body }) {\n return new this(body, new HeadSnapshot(head));\n }\n constructor(element, headSnapshot) {\n super(element);\n this.headSnapshot = headSnapshot;\n }\n clone() {\n const clonedElement = this.element.cloneNode(true);\n const selectElements = this.element.querySelectorAll(\"select\");\n const clonedSelectElements = clonedElement.querySelectorAll(\"select\");\n for (const [index, source] of selectElements.entries()) {\n const clone = clonedSelectElements[index];\n for (const option of clone.selectedOptions)\n option.selected = false;\n for (const option of source.selectedOptions)\n clone.options[option.index].selected = true;\n }\n for (const clonedPasswordInput of clonedElement.querySelectorAll('input[type=\"password\"]')) {\n clonedPasswordInput.value = \"\";\n }\n return new PageSnapshot(clonedElement, this.headSnapshot);\n }\n get headElement() {\n return this.headSnapshot.element;\n }\n get rootLocation() {\n var _a;\n const root = (_a = this.getSetting(\"root\")) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n get cacheControlValue() {\n return this.getSetting(\"cache-control\");\n }\n get isPreviewable() {\n return this.cacheControlValue != \"no-preview\";\n }\n get isCacheable() {\n return this.cacheControlValue != \"no-cache\";\n }\n get isVisitable() {\n return this.getSetting(\"visit-control\") != \"reload\";\n }\n getSetting(name) {\n return this.headSnapshot.getMetaValue(`turbo-${name}`);\n }\n}\n\nvar TimingMetric;\n(function (TimingMetric) {\n TimingMetric[\"visitStart\"] = \"visitStart\";\n TimingMetric[\"requestStart\"] = \"requestStart\";\n TimingMetric[\"requestEnd\"] = \"requestEnd\";\n TimingMetric[\"visitEnd\"] = \"visitEnd\";\n})(TimingMetric || (TimingMetric = {}));\nvar VisitState;\n(function (VisitState) {\n VisitState[\"initialized\"] = \"initialized\";\n VisitState[\"started\"] = \"started\";\n VisitState[\"canceled\"] = \"canceled\";\n VisitState[\"failed\"] = \"failed\";\n VisitState[\"completed\"] = \"completed\";\n})(VisitState || (VisitState = {}));\nconst defaultOptions = {\n action: \"advance\",\n historyChanged: false,\n visitCachedSnapshot: () => { },\n willRender: true,\n updateHistory: true,\n shouldCacheSnapshot: true,\n acceptsStreamResponse: false,\n};\nvar SystemStatusCode;\n(function (SystemStatusCode) {\n SystemStatusCode[SystemStatusCode[\"networkFailure\"] = 0] = \"networkFailure\";\n SystemStatusCode[SystemStatusCode[\"timeoutFailure\"] = -1] = \"timeoutFailure\";\n SystemStatusCode[SystemStatusCode[\"contentTypeMismatch\"] = -2] = \"contentTypeMismatch\";\n})(SystemStatusCode || (SystemStatusCode = {}));\nclass Visit {\n constructor(delegate, location, restorationIdentifier, options = {}) {\n this.identifier = uuid();\n this.timingMetrics = {};\n this.followedRedirect = false;\n this.historyChanged = false;\n this.scrolled = false;\n this.shouldCacheSnapshot = true;\n this.acceptsStreamResponse = false;\n this.snapshotCached = false;\n this.state = VisitState.initialized;\n this.delegate = delegate;\n this.location = location;\n this.restorationIdentifier = restorationIdentifier || uuid();\n const { action, historyChanged, referrer, snapshot, snapshotHTML, response, visitCachedSnapshot, willRender, updateHistory, shouldCacheSnapshot, acceptsStreamResponse, } = Object.assign(Object.assign({}, defaultOptions), options);\n this.action = action;\n this.historyChanged = historyChanged;\n this.referrer = referrer;\n this.snapshot = snapshot;\n this.snapshotHTML = snapshotHTML;\n this.response = response;\n this.isSamePage = this.delegate.locationWithActionIsSamePage(this.location, this.action);\n this.visitCachedSnapshot = visitCachedSnapshot;\n this.willRender = willRender;\n this.updateHistory = updateHistory;\n this.scrolled = !willRender;\n this.shouldCacheSnapshot = shouldCacheSnapshot;\n this.acceptsStreamResponse = acceptsStreamResponse;\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n get restorationData() {\n return this.history.getRestorationDataForIdentifier(this.restorationIdentifier);\n }\n get silent() {\n return this.isSamePage;\n }\n start() {\n if (this.state == VisitState.initialized) {\n this.recordTimingMetric(TimingMetric.visitStart);\n this.state = VisitState.started;\n this.adapter.visitStarted(this);\n this.delegate.visitStarted(this);\n }\n }\n cancel() {\n if (this.state == VisitState.started) {\n if (this.request) {\n this.request.cancel();\n }\n this.cancelRender();\n this.state = VisitState.canceled;\n }\n }\n complete() {\n if (this.state == VisitState.started) {\n this.recordTimingMetric(TimingMetric.visitEnd);\n this.state = VisitState.completed;\n this.followRedirect();\n if (!this.followedRedirect) {\n this.adapter.visitCompleted(this);\n this.delegate.visitCompleted(this);\n }\n }\n }\n fail() {\n if (this.state == VisitState.started) {\n this.state = VisitState.failed;\n this.adapter.visitFailed(this);\n }\n }\n changeHistory() {\n var _a;\n if (!this.historyChanged && this.updateHistory) {\n const actionForHistory = this.location.href === ((_a = this.referrer) === null || _a === void 0 ? void 0 : _a.href) ? \"replace\" : this.action;\n const method = getHistoryMethodForAction(actionForHistory);\n this.history.update(method, this.location, this.restorationIdentifier);\n this.historyChanged = true;\n }\n }\n issueRequest() {\n if (this.hasPreloadedResponse()) {\n this.simulateRequest();\n }\n else if (this.shouldIssueRequest() && !this.request) {\n this.request = new FetchRequest(this, FetchMethod.get, this.location);\n this.request.perform();\n }\n }\n simulateRequest() {\n if (this.response) {\n this.startRequest();\n this.recordResponse();\n this.finishRequest();\n }\n }\n startRequest() {\n this.recordTimingMetric(TimingMetric.requestStart);\n this.adapter.visitRequestStarted(this);\n }\n recordResponse(response = this.response) {\n this.response = response;\n if (response) {\n const { statusCode } = response;\n if (isSuccessful(statusCode)) {\n this.adapter.visitRequestCompleted(this);\n }\n else {\n this.adapter.visitRequestFailedWithStatusCode(this, statusCode);\n }\n }\n }\n finishRequest() {\n this.recordTimingMetric(TimingMetric.requestEnd);\n this.adapter.visitRequestFinished(this);\n }\n loadResponse() {\n if (this.response) {\n const { statusCode, responseHTML } = this.response;\n this.render(async () => {\n if (this.shouldCacheSnapshot)\n this.cacheSnapshot();\n if (this.view.renderPromise)\n await this.view.renderPromise;\n if (isSuccessful(statusCode) && responseHTML != null) {\n await this.view.renderPage(PageSnapshot.fromHTMLString(responseHTML), false, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n this.complete();\n }\n else {\n await this.view.renderError(PageSnapshot.fromHTMLString(responseHTML), this);\n this.adapter.visitRendered(this);\n this.fail();\n }\n });\n }\n }\n getCachedSnapshot() {\n const snapshot = this.view.getCachedSnapshotForLocation(this.location) || this.getPreloadedSnapshot();\n if (snapshot && (!getAnchor(this.location) || snapshot.hasAnchor(getAnchor(this.location)))) {\n if (this.action == \"restore\" || snapshot.isPreviewable) {\n return snapshot;\n }\n }\n }\n getPreloadedSnapshot() {\n if (this.snapshotHTML) {\n return PageSnapshot.fromHTMLString(this.snapshotHTML);\n }\n }\n hasCachedSnapshot() {\n return this.getCachedSnapshot() != null;\n }\n loadCachedSnapshot() {\n const snapshot = this.getCachedSnapshot();\n if (snapshot) {\n const isPreview = this.shouldIssueRequest();\n this.render(async () => {\n this.cacheSnapshot();\n if (this.isSamePage) {\n this.adapter.visitRendered(this);\n }\n else {\n if (this.view.renderPromise)\n await this.view.renderPromise;\n await this.view.renderPage(snapshot, isPreview, this.willRender, this);\n this.performScroll();\n this.adapter.visitRendered(this);\n if (!isPreview) {\n this.complete();\n }\n }\n });\n }\n }\n followRedirect() {\n var _a;\n if (this.redirectedToLocation && !this.followedRedirect && ((_a = this.response) === null || _a === void 0 ? void 0 : _a.redirected)) {\n this.adapter.visitProposedToLocation(this.redirectedToLocation, {\n action: \"replace\",\n response: this.response,\n shouldCacheSnapshot: false,\n willRender: false,\n });\n this.followedRedirect = true;\n }\n }\n goToSamePageAnchor() {\n if (this.isSamePage) {\n this.render(async () => {\n this.cacheSnapshot();\n this.performScroll();\n this.changeHistory();\n this.adapter.visitRendered(this);\n });\n }\n }\n prepareRequest(request) {\n if (this.acceptsStreamResponse) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted() {\n this.startRequest();\n }\n requestPreventedHandlingResponse(_request, _response) { }\n async requestSucceededWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.redirectedToLocation = response.redirected ? response.location : undefined;\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n async requestFailedWithResponse(request, response) {\n const responseHTML = await response.responseHTML;\n const { redirected, statusCode } = response;\n if (responseHTML == undefined) {\n this.recordResponse({\n statusCode: SystemStatusCode.contentTypeMismatch,\n redirected,\n });\n }\n else {\n this.recordResponse({ statusCode: statusCode, responseHTML, redirected });\n }\n }\n requestErrored(_request, _error) {\n this.recordResponse({\n statusCode: SystemStatusCode.networkFailure,\n redirected: false,\n });\n }\n requestFinished() {\n this.finishRequest();\n }\n performScroll() {\n if (!this.scrolled && !this.view.forceReloaded) {\n if (this.action == \"restore\") {\n this.scrollToRestoredPosition() || this.scrollToAnchor() || this.view.scrollToTop();\n }\n else {\n this.scrollToAnchor() || this.view.scrollToTop();\n }\n if (this.isSamePage) {\n this.delegate.visitScrolledToSamePageLocation(this.view.lastRenderedLocation, this.location);\n }\n this.scrolled = true;\n }\n }\n scrollToRestoredPosition() {\n const { scrollPosition } = this.restorationData;\n if (scrollPosition) {\n this.view.scrollToPosition(scrollPosition);\n return true;\n }\n }\n scrollToAnchor() {\n const anchor = getAnchor(this.location);\n if (anchor != null) {\n this.view.scrollToAnchor(anchor);\n return true;\n }\n }\n recordTimingMetric(metric) {\n this.timingMetrics[metric] = new Date().getTime();\n }\n getTimingMetrics() {\n return Object.assign({}, this.timingMetrics);\n }\n getHistoryMethodForAction(action) {\n switch (action) {\n case \"replace\":\n return history.replaceState;\n case \"advance\":\n case \"restore\":\n return history.pushState;\n }\n }\n hasPreloadedResponse() {\n return typeof this.response == \"object\";\n }\n shouldIssueRequest() {\n if (this.isSamePage) {\n return false;\n }\n else if (this.action == \"restore\") {\n return !this.hasCachedSnapshot();\n }\n else {\n return this.willRender;\n }\n }\n cacheSnapshot() {\n if (!this.snapshotCached) {\n this.view.cacheSnapshot(this.snapshot).then((snapshot) => snapshot && this.visitCachedSnapshot(snapshot));\n this.snapshotCached = true;\n }\n }\n async render(callback) {\n this.cancelRender();\n await new Promise((resolve) => {\n this.frame = requestAnimationFrame(() => resolve());\n });\n await callback();\n delete this.frame;\n }\n cancelRender() {\n if (this.frame) {\n cancelAnimationFrame(this.frame);\n delete this.frame;\n }\n }\n}\nfunction isSuccessful(statusCode) {\n return statusCode >= 200 && statusCode < 300;\n}\n\nclass BrowserAdapter {\n constructor(session) {\n this.progressBar = new ProgressBar();\n this.showProgressBar = () => {\n this.progressBar.show();\n };\n this.session = session;\n }\n visitProposedToLocation(location, options) {\n this.navigator.startVisit(location, (options === null || options === void 0 ? void 0 : options.restorationIdentifier) || uuid(), options);\n }\n visitStarted(visit) {\n this.location = visit.location;\n visit.loadCachedSnapshot();\n visit.issueRequest();\n visit.goToSamePageAnchor();\n }\n visitRequestStarted(visit) {\n this.progressBar.setValue(0);\n if (visit.hasCachedSnapshot() || visit.action != \"restore\") {\n this.showVisitProgressBarAfterDelay();\n }\n else {\n this.showProgressBar();\n }\n }\n visitRequestCompleted(visit) {\n visit.loadResponse();\n }\n visitRequestFailedWithStatusCode(visit, statusCode) {\n switch (statusCode) {\n case SystemStatusCode.networkFailure:\n case SystemStatusCode.timeoutFailure:\n case SystemStatusCode.contentTypeMismatch:\n return this.reload({\n reason: \"request_failed\",\n context: {\n statusCode,\n },\n });\n default:\n return visit.loadResponse();\n }\n }\n visitRequestFinished(_visit) {\n this.progressBar.setValue(1);\n this.hideVisitProgressBar();\n }\n visitCompleted(_visit) { }\n pageInvalidated(reason) {\n this.reload(reason);\n }\n visitFailed(_visit) { }\n visitRendered(_visit) { }\n formSubmissionStarted(_formSubmission) {\n this.progressBar.setValue(0);\n this.showFormProgressBarAfterDelay();\n }\n formSubmissionFinished(_formSubmission) {\n this.progressBar.setValue(1);\n this.hideFormProgressBar();\n }\n showVisitProgressBarAfterDelay() {\n this.visitProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n hideVisitProgressBar() {\n this.progressBar.hide();\n if (this.visitProgressBarTimeout != null) {\n window.clearTimeout(this.visitProgressBarTimeout);\n delete this.visitProgressBarTimeout;\n }\n }\n showFormProgressBarAfterDelay() {\n if (this.formProgressBarTimeout == null) {\n this.formProgressBarTimeout = window.setTimeout(this.showProgressBar, this.session.progressBarDelay);\n }\n }\n hideFormProgressBar() {\n this.progressBar.hide();\n if (this.formProgressBarTimeout != null) {\n window.clearTimeout(this.formProgressBarTimeout);\n delete this.formProgressBarTimeout;\n }\n }\n reload(reason) {\n var _a;\n dispatch(\"turbo:reload\", { detail: reason });\n window.location.href = ((_a = this.location) === null || _a === void 0 ? void 0 : _a.toString()) || window.location.href;\n }\n get navigator() {\n return this.session.navigator;\n }\n}\n\nclass CacheObserver {\n constructor() {\n this.selector = \"[data-turbo-temporary]\";\n this.deprecatedSelector = \"[data-turbo-cache=false]\";\n this.started = false;\n this.removeTemporaryElements = ((_event) => {\n for (const element of this.temporaryElements) {\n element.remove();\n }\n });\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-cache\", this.removeTemporaryElements, false);\n }\n }\n get temporaryElements() {\n return [...document.querySelectorAll(this.selector), ...this.temporaryElementsWithDeprecation];\n }\n get temporaryElementsWithDeprecation() {\n const elements = document.querySelectorAll(this.deprecatedSelector);\n if (elements.length) {\n console.warn(`The ${this.deprecatedSelector} selector is deprecated and will be removed in a future version. Use ${this.selector} instead.`);\n }\n return [...elements];\n }\n}\n\nclass FrameRedirector {\n constructor(session, element) {\n this.session = session;\n this.element = element;\n this.linkInterceptor = new LinkInterceptor(this, element);\n this.formSubmitObserver = new FormSubmitObserver(this, element);\n }\n start() {\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n stop() {\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldRedirect(element);\n }\n linkClickIntercepted(element, url, event) {\n const frame = this.findFrameElement(element);\n if (frame) {\n frame.delegate.linkClickIntercepted(element, url, event);\n }\n }\n willSubmitForm(element, submitter) {\n return (element.closest(\"turbo-frame\") == null &&\n this.shouldSubmit(element, submitter) &&\n this.shouldRedirect(element, submitter));\n }\n formSubmitted(element, submitter) {\n const frame = this.findFrameElement(element, submitter);\n if (frame) {\n frame.delegate.formSubmitted(element, submitter);\n }\n }\n shouldSubmit(form, submitter) {\n var _a;\n const action = getAction(form, submitter);\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const rootLocation = expandURL((_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\");\n return this.shouldRedirect(form, submitter) && locationIsVisitable(action, rootLocation);\n }\n shouldRedirect(element, submitter) {\n const isNavigatable = element instanceof HTMLFormElement\n ? this.session.submissionIsNavigatable(element, submitter)\n : this.session.elementIsNavigatable(element);\n if (isNavigatable) {\n const frame = this.findFrameElement(element, submitter);\n return frame ? frame != element.closest(\"turbo-frame\") : false;\n }\n else {\n return false;\n }\n }\n findFrameElement(element, submitter) {\n const id = (submitter === null || submitter === void 0 ? void 0 : submitter.getAttribute(\"data-turbo-frame\")) || element.getAttribute(\"data-turbo-frame\");\n if (id && id != \"_top\") {\n const frame = this.element.querySelector(`#${id}:not([disabled])`);\n if (frame instanceof FrameElement) {\n return frame;\n }\n }\n }\n}\n\nclass History {\n constructor(delegate) {\n this.restorationIdentifier = uuid();\n this.restorationData = {};\n this.started = false;\n this.pageLoaded = false;\n this.onPopState = (event) => {\n if (this.shouldHandlePopState()) {\n const { turbo } = event.state || {};\n if (turbo) {\n this.location = new URL(window.location.href);\n const { restorationIdentifier } = turbo;\n this.restorationIdentifier = restorationIdentifier;\n this.delegate.historyPoppedToLocationWithRestorationIdentifier(this.location, restorationIdentifier);\n }\n }\n };\n this.onPageLoad = async (_event) => {\n await nextMicrotask();\n this.pageLoaded = true;\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"popstate\", this.onPopState, false);\n addEventListener(\"load\", this.onPageLoad, false);\n this.started = true;\n this.replace(new URL(window.location.href));\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"popstate\", this.onPopState, false);\n removeEventListener(\"load\", this.onPageLoad, false);\n this.started = false;\n }\n }\n push(location, restorationIdentifier) {\n this.update(history.pushState, location, restorationIdentifier);\n }\n replace(location, restorationIdentifier) {\n this.update(history.replaceState, location, restorationIdentifier);\n }\n update(method, location, restorationIdentifier = uuid()) {\n const state = { turbo: { restorationIdentifier } };\n method.call(history, state, \"\", location.href);\n this.location = location;\n this.restorationIdentifier = restorationIdentifier;\n }\n getRestorationDataForIdentifier(restorationIdentifier) {\n return this.restorationData[restorationIdentifier] || {};\n }\n updateRestorationData(additionalData) {\n const { restorationIdentifier } = this;\n const restorationData = this.restorationData[restorationIdentifier];\n this.restorationData[restorationIdentifier] = Object.assign(Object.assign({}, restorationData), additionalData);\n }\n assumeControlOfScrollRestoration() {\n var _a;\n if (!this.previousScrollRestoration) {\n this.previousScrollRestoration = (_a = history.scrollRestoration) !== null && _a !== void 0 ? _a : \"auto\";\n history.scrollRestoration = \"manual\";\n }\n }\n relinquishControlOfScrollRestoration() {\n if (this.previousScrollRestoration) {\n history.scrollRestoration = this.previousScrollRestoration;\n delete this.previousScrollRestoration;\n }\n }\n shouldHandlePopState() {\n return this.pageIsLoaded();\n }\n pageIsLoaded() {\n return this.pageLoaded || document.readyState == \"complete\";\n }\n}\n\nclass Navigator {\n constructor(delegate) {\n this.delegate = delegate;\n }\n proposeVisit(location, options = {}) {\n if (this.delegate.allowsVisitingLocationWithAction(location, options.action)) {\n if (locationIsVisitable(location, this.view.snapshot.rootLocation)) {\n this.delegate.visitProposedToLocation(location, options);\n }\n else {\n window.location.href = location.toString();\n }\n }\n }\n startVisit(locatable, restorationIdentifier, options = {}) {\n this.stop();\n this.currentVisit = new Visit(this, expandURL(locatable), restorationIdentifier, Object.assign({ referrer: this.location }, options));\n this.currentVisit.start();\n }\n submitForm(form, submitter) {\n this.stop();\n this.formSubmission = new FormSubmission(this, form, submitter, true);\n this.formSubmission.start();\n }\n stop() {\n if (this.formSubmission) {\n this.formSubmission.stop();\n delete this.formSubmission;\n }\n if (this.currentVisit) {\n this.currentVisit.cancel();\n delete this.currentVisit;\n }\n }\n get adapter() {\n return this.delegate.adapter;\n }\n get view() {\n return this.delegate.view;\n }\n get history() {\n return this.delegate.history;\n }\n formSubmissionStarted(formSubmission) {\n if (typeof this.adapter.formSubmissionStarted === \"function\") {\n this.adapter.formSubmissionStarted(formSubmission);\n }\n }\n async formSubmissionSucceededWithResponse(formSubmission, fetchResponse) {\n if (formSubmission == this.formSubmission) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const shouldCacheSnapshot = formSubmission.isSafe;\n if (!shouldCacheSnapshot) {\n this.view.clearSnapshotCache();\n }\n const { statusCode, redirected } = fetchResponse;\n const action = this.getActionForFormSubmission(formSubmission);\n const visitOptions = {\n action,\n shouldCacheSnapshot,\n response: { statusCode, responseHTML, redirected },\n };\n this.proposeVisit(fetchResponse.location, visitOptions);\n }\n }\n }\n async formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n const responseHTML = await fetchResponse.responseHTML;\n if (responseHTML) {\n const snapshot = PageSnapshot.fromHTMLString(responseHTML);\n if (fetchResponse.serverError) {\n await this.view.renderError(snapshot, this.currentVisit);\n }\n else {\n await this.view.renderPage(snapshot, false, true, this.currentVisit);\n }\n this.view.scrollToTop();\n this.view.clearSnapshotCache();\n }\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished(formSubmission) {\n if (typeof this.adapter.formSubmissionFinished === \"function\") {\n this.adapter.formSubmissionFinished(formSubmission);\n }\n }\n visitStarted(visit) {\n this.delegate.visitStarted(visit);\n }\n visitCompleted(visit) {\n this.delegate.visitCompleted(visit);\n }\n locationWithActionIsSamePage(location, action) {\n const anchor = getAnchor(location);\n const currentAnchor = getAnchor(this.view.lastRenderedLocation);\n const isRestorationToTop = action === \"restore\" && typeof anchor === \"undefined\";\n return (action !== \"replace\" &&\n getRequestURL(location) === getRequestURL(this.view.lastRenderedLocation) &&\n (isRestorationToTop || (anchor != null && anchor !== currentAnchor)));\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.delegate.visitScrolledToSamePageLocation(oldURL, newURL);\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n getActionForFormSubmission({ submitter, formElement }) {\n return getVisitAction(submitter, formElement) || \"advance\";\n }\n}\n\nvar PageStage;\n(function (PageStage) {\n PageStage[PageStage[\"initial\"] = 0] = \"initial\";\n PageStage[PageStage[\"loading\"] = 1] = \"loading\";\n PageStage[PageStage[\"interactive\"] = 2] = \"interactive\";\n PageStage[PageStage[\"complete\"] = 3] = \"complete\";\n})(PageStage || (PageStage = {}));\nclass PageObserver {\n constructor(delegate) {\n this.stage = PageStage.initial;\n this.started = false;\n this.interpretReadyState = () => {\n const { readyState } = this;\n if (readyState == \"interactive\") {\n this.pageIsInteractive();\n }\n else if (readyState == \"complete\") {\n this.pageIsComplete();\n }\n };\n this.pageWillUnload = () => {\n this.delegate.pageWillUnload();\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n if (this.stage == PageStage.initial) {\n this.stage = PageStage.loading;\n }\n document.addEventListener(\"readystatechange\", this.interpretReadyState, false);\n addEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n document.removeEventListener(\"readystatechange\", this.interpretReadyState, false);\n removeEventListener(\"pagehide\", this.pageWillUnload, false);\n this.started = false;\n }\n }\n pageIsInteractive() {\n if (this.stage == PageStage.loading) {\n this.stage = PageStage.interactive;\n this.delegate.pageBecameInteractive();\n }\n }\n pageIsComplete() {\n this.pageIsInteractive();\n if (this.stage == PageStage.interactive) {\n this.stage = PageStage.complete;\n this.delegate.pageLoaded();\n }\n }\n get readyState() {\n return document.readyState;\n }\n}\n\nclass ScrollObserver {\n constructor(delegate) {\n this.started = false;\n this.onScroll = () => {\n this.updatePosition({ x: window.pageXOffset, y: window.pageYOffset });\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n addEventListener(\"scroll\", this.onScroll, false);\n this.onScroll();\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n removeEventListener(\"scroll\", this.onScroll, false);\n this.started = false;\n }\n }\n updatePosition(position) {\n this.delegate.scrollPositionChanged(position);\n }\n}\n\nclass StreamMessageRenderer {\n render({ fragment }) {\n Bardo.preservingPermanentElements(this, getPermanentElementMapForFragment(fragment), () => document.documentElement.appendChild(fragment));\n }\n enteringBardo(currentPermanentElement, newPermanentElement) {\n newPermanentElement.replaceWith(currentPermanentElement.cloneNode(true));\n }\n leavingBardo() { }\n}\nfunction getPermanentElementMapForFragment(fragment) {\n const permanentElementsInDocument = queryPermanentElementsAll(document.documentElement);\n const permanentElementMap = {};\n for (const permanentElementInDocument of permanentElementsInDocument) {\n const { id } = permanentElementInDocument;\n for (const streamElement of fragment.querySelectorAll(\"turbo-stream\")) {\n const elementInStream = getPermanentElementById(streamElement.templateElement.content, id);\n if (elementInStream) {\n permanentElementMap[id] = [permanentElementInDocument, elementInStream];\n }\n }\n }\n return permanentElementMap;\n}\n\nclass StreamObserver {\n constructor(delegate) {\n this.sources = new Set();\n this.started = false;\n this.inspectFetchResponse = ((event) => {\n const response = fetchResponseFromEvent(event);\n if (response && fetchResponseIsStream(response)) {\n event.preventDefault();\n this.receiveMessageResponse(response);\n }\n });\n this.receiveMessageEvent = (event) => {\n if (this.started && typeof event.data == \"string\") {\n this.receiveMessageHTML(event.data);\n }\n };\n this.delegate = delegate;\n }\n start() {\n if (!this.started) {\n this.started = true;\n addEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n removeEventListener(\"turbo:before-fetch-response\", this.inspectFetchResponse, false);\n }\n }\n connectStreamSource(source) {\n if (!this.streamSourceIsConnected(source)) {\n this.sources.add(source);\n source.addEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n disconnectStreamSource(source) {\n if (this.streamSourceIsConnected(source)) {\n this.sources.delete(source);\n source.removeEventListener(\"message\", this.receiveMessageEvent, false);\n }\n }\n streamSourceIsConnected(source) {\n return this.sources.has(source);\n }\n async receiveMessageResponse(response) {\n const html = await response.responseHTML;\n if (html) {\n this.receiveMessageHTML(html);\n }\n }\n receiveMessageHTML(html) {\n this.delegate.receivedMessageFromStream(StreamMessage.wrap(html));\n }\n}\nfunction fetchResponseFromEvent(event) {\n var _a;\n const fetchResponse = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.fetchResponse;\n if (fetchResponse instanceof FetchResponse) {\n return fetchResponse;\n }\n}\nfunction fetchResponseIsStream(response) {\n var _a;\n const contentType = (_a = response.contentType) !== null && _a !== void 0 ? _a : \"\";\n return contentType.startsWith(StreamMessage.contentType);\n}\n\nclass ErrorRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n const { documentElement, body } = document;\n documentElement.replaceChild(newElement, body);\n }\n async render() {\n this.replaceHeadAndBody();\n this.activateScriptElements();\n }\n replaceHeadAndBody() {\n const { documentElement, head } = document;\n documentElement.replaceChild(this.newHead, head);\n this.renderElement(this.currentElement, this.newElement);\n }\n activateScriptElements() {\n for (const replaceableElement of this.scriptElements) {\n const parentNode = replaceableElement.parentNode;\n if (parentNode) {\n const element = activateScriptElement(replaceableElement);\n parentNode.replaceChild(element, replaceableElement);\n }\n }\n }\n get newHead() {\n return this.newSnapshot.headSnapshot.element;\n }\n get scriptElements() {\n return document.documentElement.querySelectorAll(\"script\");\n }\n}\n\nclass PageRenderer extends Renderer {\n static renderElement(currentElement, newElement) {\n if (document.body && newElement instanceof HTMLBodyElement) {\n document.body.replaceWith(newElement);\n }\n else {\n document.documentElement.appendChild(newElement);\n }\n }\n get shouldRender() {\n return this.newSnapshot.isVisitable && this.trackedElementsAreIdentical;\n }\n get reloadReason() {\n if (!this.newSnapshot.isVisitable) {\n return {\n reason: \"turbo_visit_control_is_reload\",\n };\n }\n if (!this.trackedElementsAreIdentical) {\n return {\n reason: \"tracked_element_mismatch\",\n };\n }\n }\n async prepareToRender() {\n await this.mergeHead();\n }\n async render() {\n if (this.willRender) {\n await this.replaceBody();\n }\n }\n finishRendering() {\n super.finishRendering();\n if (!this.isPreview) {\n this.focusFirstAutofocusableElement();\n }\n }\n get currentHeadSnapshot() {\n return this.currentSnapshot.headSnapshot;\n }\n get newHeadSnapshot() {\n return this.newSnapshot.headSnapshot;\n }\n get newElement() {\n return this.newSnapshot.element;\n }\n async mergeHead() {\n const mergedHeadElements = this.mergeProvisionalElements();\n const newStylesheetElements = this.copyNewHeadStylesheetElements();\n this.copyNewHeadScriptElements();\n await mergedHeadElements;\n await newStylesheetElements;\n }\n async replaceBody() {\n await this.preservingPermanentElements(async () => {\n this.activateNewBody();\n await this.assignNewBody();\n });\n }\n get trackedElementsAreIdentical() {\n return this.currentHeadSnapshot.trackedElementSignature == this.newHeadSnapshot.trackedElementSignature;\n }\n async copyNewHeadStylesheetElements() {\n const loadingElements = [];\n for (const element of this.newHeadStylesheetElements) {\n loadingElements.push(waitForLoad(element));\n document.head.appendChild(element);\n }\n await Promise.all(loadingElements);\n }\n copyNewHeadScriptElements() {\n for (const element of this.newHeadScriptElements) {\n document.head.appendChild(activateScriptElement(element));\n }\n }\n async mergeProvisionalElements() {\n const newHeadElements = [...this.newHeadProvisionalElements];\n for (const element of this.currentHeadProvisionalElements) {\n if (!this.isCurrentElementInElementList(element, newHeadElements)) {\n document.head.removeChild(element);\n }\n }\n for (const element of newHeadElements) {\n document.head.appendChild(element);\n }\n }\n isCurrentElementInElementList(element, elementList) {\n for (const [index, newElement] of elementList.entries()) {\n if (element.tagName == \"TITLE\") {\n if (newElement.tagName != \"TITLE\") {\n continue;\n }\n if (element.innerHTML == newElement.innerHTML) {\n elementList.splice(index, 1);\n return true;\n }\n }\n if (newElement.isEqualNode(element)) {\n elementList.splice(index, 1);\n return true;\n }\n }\n return false;\n }\n removeCurrentHeadProvisionalElements() {\n for (const element of this.currentHeadProvisionalElements) {\n document.head.removeChild(element);\n }\n }\n copyNewHeadProvisionalElements() {\n for (const element of this.newHeadProvisionalElements) {\n document.head.appendChild(element);\n }\n }\n activateNewBody() {\n document.adoptNode(this.newElement);\n this.activateNewBodyScriptElements();\n }\n activateNewBodyScriptElements() {\n for (const inertScriptElement of this.newBodyScriptElements) {\n const activatedScriptElement = activateScriptElement(inertScriptElement);\n inertScriptElement.replaceWith(activatedScriptElement);\n }\n }\n async assignNewBody() {\n await this.renderElement(this.currentElement, this.newElement);\n }\n get newHeadStylesheetElements() {\n return this.newHeadSnapshot.getStylesheetElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get newHeadScriptElements() {\n return this.newHeadSnapshot.getScriptElementsNotInSnapshot(this.currentHeadSnapshot);\n }\n get currentHeadProvisionalElements() {\n return this.currentHeadSnapshot.provisionalElements;\n }\n get newHeadProvisionalElements() {\n return this.newHeadSnapshot.provisionalElements;\n }\n get newBodyScriptElements() {\n return this.newElement.querySelectorAll(\"script\");\n }\n}\n\nclass SnapshotCache {\n constructor(size) {\n this.keys = [];\n this.snapshots = {};\n this.size = size;\n }\n has(location) {\n return toCacheKey(location) in this.snapshots;\n }\n get(location) {\n if (this.has(location)) {\n const snapshot = this.read(location);\n this.touch(location);\n return snapshot;\n }\n }\n put(location, snapshot) {\n this.write(location, snapshot);\n this.touch(location);\n return snapshot;\n }\n clear() {\n this.snapshots = {};\n }\n read(location) {\n return this.snapshots[toCacheKey(location)];\n }\n write(location, snapshot) {\n this.snapshots[toCacheKey(location)] = snapshot;\n }\n touch(location) {\n const key = toCacheKey(location);\n const index = this.keys.indexOf(key);\n if (index > -1)\n this.keys.splice(index, 1);\n this.keys.unshift(key);\n this.trim();\n }\n trim() {\n for (const key of this.keys.splice(this.size)) {\n delete this.snapshots[key];\n }\n }\n}\n\nclass PageView extends View {\n constructor() {\n super(...arguments);\n this.snapshotCache = new SnapshotCache(10);\n this.lastRenderedLocation = new URL(location.href);\n this.forceReloaded = false;\n }\n renderPage(snapshot, isPreview = false, willRender = true, visit) {\n const renderer = new PageRenderer(this.snapshot, snapshot, PageRenderer.renderElement, isPreview, willRender);\n if (!renderer.shouldRender) {\n this.forceReloaded = true;\n }\n else {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n }\n return this.render(renderer);\n }\n renderError(snapshot, visit) {\n visit === null || visit === void 0 ? void 0 : visit.changeHistory();\n const renderer = new ErrorRenderer(this.snapshot, snapshot, ErrorRenderer.renderElement, false);\n return this.render(renderer);\n }\n clearSnapshotCache() {\n this.snapshotCache.clear();\n }\n async cacheSnapshot(snapshot = this.snapshot) {\n if (snapshot.isCacheable) {\n this.delegate.viewWillCacheSnapshot();\n const { lastRenderedLocation: location } = this;\n await nextEventLoopTick();\n const cachedSnapshot = snapshot.clone();\n this.snapshotCache.put(location, cachedSnapshot);\n return cachedSnapshot;\n }\n }\n getCachedSnapshotForLocation(location) {\n return this.snapshotCache.get(location);\n }\n get snapshot() {\n return PageSnapshot.fromElement(this.element);\n }\n}\n\nclass Preloader {\n constructor(delegate) {\n this.selector = \"a[data-turbo-preload]\";\n this.delegate = delegate;\n }\n get snapshotCache() {\n return this.delegate.navigator.view.snapshotCache;\n }\n start() {\n if (document.readyState === \"loading\") {\n return document.addEventListener(\"DOMContentLoaded\", () => {\n this.preloadOnLoadLinksForView(document.body);\n });\n }\n else {\n this.preloadOnLoadLinksForView(document.body);\n }\n }\n preloadOnLoadLinksForView(element) {\n for (const link of element.querySelectorAll(this.selector)) {\n this.preloadURL(link);\n }\n }\n async preloadURL(link) {\n const location = new URL(link.href);\n if (this.snapshotCache.has(location)) {\n return;\n }\n try {\n const response = await fetch(location.toString(), { headers: { \"VND.PREFETCH\": \"true\", Accept: \"text/html\" } });\n const responseText = await response.text();\n const snapshot = PageSnapshot.fromHTMLString(responseText);\n this.snapshotCache.put(location, snapshot);\n }\n catch (_) {\n }\n }\n}\n\nclass Session {\n constructor() {\n this.navigator = new Navigator(this);\n this.history = new History(this);\n this.preloader = new Preloader(this);\n this.view = new PageView(this, document.documentElement);\n this.adapter = new BrowserAdapter(this);\n this.pageObserver = new PageObserver(this);\n this.cacheObserver = new CacheObserver();\n this.linkClickObserver = new LinkClickObserver(this, window);\n this.formSubmitObserver = new FormSubmitObserver(this, document);\n this.scrollObserver = new ScrollObserver(this);\n this.streamObserver = new StreamObserver(this);\n this.formLinkClickObserver = new FormLinkClickObserver(this, document.documentElement);\n this.frameRedirector = new FrameRedirector(this, document.documentElement);\n this.streamMessageRenderer = new StreamMessageRenderer();\n this.drive = true;\n this.enabled = true;\n this.progressBarDelay = 500;\n this.started = false;\n this.formMode = \"on\";\n }\n start() {\n if (!this.started) {\n this.pageObserver.start();\n this.cacheObserver.start();\n this.formLinkClickObserver.start();\n this.linkClickObserver.start();\n this.formSubmitObserver.start();\n this.scrollObserver.start();\n this.streamObserver.start();\n this.frameRedirector.start();\n this.history.start();\n this.preloader.start();\n this.started = true;\n this.enabled = true;\n }\n }\n disable() {\n this.enabled = false;\n }\n stop() {\n if (this.started) {\n this.pageObserver.stop();\n this.cacheObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkClickObserver.stop();\n this.formSubmitObserver.stop();\n this.scrollObserver.stop();\n this.streamObserver.stop();\n this.frameRedirector.stop();\n this.history.stop();\n this.started = false;\n }\n }\n registerAdapter(adapter) {\n this.adapter = adapter;\n }\n visit(location, options = {}) {\n const frameElement = options.frame ? document.getElementById(options.frame) : null;\n if (frameElement instanceof FrameElement) {\n frameElement.src = location.toString();\n frameElement.loaded;\n }\n else {\n this.navigator.proposeVisit(expandURL(location), options);\n }\n }\n connectStreamSource(source) {\n this.streamObserver.connectStreamSource(source);\n }\n disconnectStreamSource(source) {\n this.streamObserver.disconnectStreamSource(source);\n }\n renderStreamMessage(message) {\n this.streamMessageRenderer.render(StreamMessage.wrap(message));\n }\n clearCache() {\n this.view.clearSnapshotCache();\n }\n setProgressBarDelay(delay) {\n this.progressBarDelay = delay;\n }\n setFormMode(mode) {\n this.formMode = mode;\n }\n get location() {\n return this.history.location;\n }\n get restorationIdentifier() {\n return this.history.restorationIdentifier;\n }\n historyPoppedToLocationWithRestorationIdentifier(location, restorationIdentifier) {\n if (this.enabled) {\n this.navigator.startVisit(location, restorationIdentifier, {\n action: \"restore\",\n historyChanged: true,\n });\n }\n else {\n this.adapter.pageInvalidated({\n reason: \"turbo_disabled\",\n });\n }\n }\n scrollPositionChanged(position) {\n this.history.updateRestorationData({ scrollPosition: position });\n }\n willSubmitFormLinkToLocation(link, location) {\n return this.elementIsNavigatable(link) && locationIsVisitable(location, this.snapshot.rootLocation);\n }\n submittedFormLinkToLocation() { }\n willFollowLinkToLocation(link, location, event) {\n return (this.elementIsNavigatable(link) &&\n locationIsVisitable(location, this.snapshot.rootLocation) &&\n this.applicationAllowsFollowingLinkToLocation(link, location, event));\n }\n followedLinkToLocation(link, location) {\n const action = this.getActionForLink(link);\n const acceptsStreamResponse = link.hasAttribute(\"data-turbo-stream\");\n this.visit(location.href, { action, acceptsStreamResponse });\n }\n allowsVisitingLocationWithAction(location, action) {\n return this.locationWithActionIsSamePage(location, action) || this.applicationAllowsVisitingLocation(location);\n }\n visitProposedToLocation(location, options) {\n extendURLWithDeprecatedProperties(location);\n this.adapter.visitProposedToLocation(location, options);\n }\n visitStarted(visit) {\n if (!visit.acceptsStreamResponse) {\n markAsBusy(document.documentElement);\n }\n extendURLWithDeprecatedProperties(visit.location);\n if (!visit.silent) {\n this.notifyApplicationAfterVisitingLocation(visit.location, visit.action);\n }\n }\n visitCompleted(visit) {\n clearBusyState(document.documentElement);\n this.notifyApplicationAfterPageLoad(visit.getTimingMetrics());\n }\n locationWithActionIsSamePage(location, action) {\n return this.navigator.locationWithActionIsSamePage(location, action);\n }\n visitScrolledToSamePageLocation(oldURL, newURL) {\n this.notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL);\n }\n willSubmitForm(form, submitter) {\n const action = getAction(form, submitter);\n return (this.submissionIsNavigatable(form, submitter) &&\n locationIsVisitable(expandURL(action), this.snapshot.rootLocation));\n }\n formSubmitted(form, submitter) {\n this.navigator.submitForm(form, submitter);\n }\n pageBecameInteractive() {\n this.view.lastRenderedLocation = this.location;\n this.notifyApplicationAfterPageLoad();\n }\n pageLoaded() {\n this.history.assumeControlOfScrollRestoration();\n }\n pageWillUnload() {\n this.history.relinquishControlOfScrollRestoration();\n }\n receivedMessageFromStream(message) {\n this.renderStreamMessage(message);\n }\n viewWillCacheSnapshot() {\n var _a;\n if (!((_a = this.navigator.currentVisit) === null || _a === void 0 ? void 0 : _a.silent)) {\n this.notifyApplicationBeforeCachingSnapshot();\n }\n }\n allowsImmediateRender({ element }, options) {\n const event = this.notifyApplicationBeforeRender(element, options);\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) {\n this.view.lastRenderedLocation = this.history.location;\n this.notifyApplicationAfterRender();\n }\n preloadOnLoadLinksForView(element) {\n this.preloader.preloadOnLoadLinksForView(element);\n }\n viewInvalidated(reason) {\n this.adapter.pageInvalidated(reason);\n }\n frameLoaded(frame) {\n this.notifyApplicationAfterFrameLoad(frame);\n }\n frameRendered(fetchResponse, frame) {\n this.notifyApplicationAfterFrameRender(fetchResponse, frame);\n }\n applicationAllowsFollowingLinkToLocation(link, location, ev) {\n const event = this.notifyApplicationAfterClickingLinkToLocation(link, location, ev);\n return !event.defaultPrevented;\n }\n applicationAllowsVisitingLocation(location) {\n const event = this.notifyApplicationBeforeVisitingLocation(location);\n return !event.defaultPrevented;\n }\n notifyApplicationAfterClickingLinkToLocation(link, location, event) {\n return dispatch(\"turbo:click\", {\n target: link,\n detail: { url: location.href, originalEvent: event },\n cancelable: true,\n });\n }\n notifyApplicationBeforeVisitingLocation(location) {\n return dispatch(\"turbo:before-visit\", {\n detail: { url: location.href },\n cancelable: true,\n });\n }\n notifyApplicationAfterVisitingLocation(location, action) {\n return dispatch(\"turbo:visit\", { detail: { url: location.href, action } });\n }\n notifyApplicationBeforeCachingSnapshot() {\n return dispatch(\"turbo:before-cache\");\n }\n notifyApplicationBeforeRender(newBody, options) {\n return dispatch(\"turbo:before-render\", {\n detail: Object.assign({ newBody }, options),\n cancelable: true,\n });\n }\n notifyApplicationAfterRender() {\n return dispatch(\"turbo:render\");\n }\n notifyApplicationAfterPageLoad(timing = {}) {\n return dispatch(\"turbo:load\", {\n detail: { url: this.location.href, timing },\n });\n }\n notifyApplicationAfterVisitingSamePageLocation(oldURL, newURL) {\n dispatchEvent(new HashChangeEvent(\"hashchange\", {\n oldURL: oldURL.toString(),\n newURL: newURL.toString(),\n }));\n }\n notifyApplicationAfterFrameLoad(frame) {\n return dispatch(\"turbo:frame-load\", { target: frame });\n }\n notifyApplicationAfterFrameRender(fetchResponse, frame) {\n return dispatch(\"turbo:frame-render\", {\n detail: { fetchResponse },\n target: frame,\n cancelable: true,\n });\n }\n submissionIsNavigatable(form, submitter) {\n if (this.formMode == \"off\") {\n return false;\n }\n else {\n const submitterIsNavigatable = submitter ? this.elementIsNavigatable(submitter) : true;\n if (this.formMode == \"optin\") {\n return submitterIsNavigatable && form.closest('[data-turbo=\"true\"]') != null;\n }\n else {\n return submitterIsNavigatable && this.elementIsNavigatable(form);\n }\n }\n }\n elementIsNavigatable(element) {\n const container = findClosestRecursively(element, \"[data-turbo]\");\n const withinFrame = findClosestRecursively(element, \"turbo-frame\");\n if (this.drive || withinFrame) {\n if (container) {\n return container.getAttribute(\"data-turbo\") != \"false\";\n }\n else {\n return true;\n }\n }\n else {\n if (container) {\n return container.getAttribute(\"data-turbo\") == \"true\";\n }\n else {\n return false;\n }\n }\n }\n getActionForLink(link) {\n return getVisitAction(link) || \"advance\";\n }\n get snapshot() {\n return this.view.snapshot;\n }\n}\nfunction extendURLWithDeprecatedProperties(url) {\n Object.defineProperties(url, deprecatedLocationPropertyDescriptors);\n}\nconst deprecatedLocationPropertyDescriptors = {\n absoluteURL: {\n get() {\n return this.toString();\n },\n },\n};\n\nclass Cache {\n constructor(session) {\n this.session = session;\n }\n clear() {\n this.session.clearCache();\n }\n resetCacheControl() {\n this.setCacheControl(\"\");\n }\n exemptPageFromCache() {\n this.setCacheControl(\"no-cache\");\n }\n exemptPageFromPreview() {\n this.setCacheControl(\"no-preview\");\n }\n setCacheControl(value) {\n setMetaContent(\"turbo-cache-control\", value);\n }\n}\n\nconst StreamActions = {\n after() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e.nextSibling); });\n },\n append() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.append(this.templateContent));\n },\n before() {\n this.targetElements.forEach((e) => { var _a; return (_a = e.parentElement) === null || _a === void 0 ? void 0 : _a.insertBefore(this.templateContent, e); });\n },\n prepend() {\n this.removeDuplicateTargetChildren();\n this.targetElements.forEach((e) => e.prepend(this.templateContent));\n },\n remove() {\n this.targetElements.forEach((e) => e.remove());\n },\n replace() {\n this.targetElements.forEach((e) => e.replaceWith(this.templateContent));\n },\n update() {\n this.targetElements.forEach((targetElement) => {\n targetElement.innerHTML = \"\";\n targetElement.append(this.templateContent);\n });\n },\n};\n\nconst session = new Session();\nconst cache = new Cache(session);\nconst { navigator: navigator$1 } = session;\nfunction start() {\n session.start();\n}\nfunction registerAdapter(adapter) {\n session.registerAdapter(adapter);\n}\nfunction visit(location, options) {\n session.visit(location, options);\n}\nfunction connectStreamSource(source) {\n session.connectStreamSource(source);\n}\nfunction disconnectStreamSource(source) {\n session.disconnectStreamSource(source);\n}\nfunction renderStreamMessage(message) {\n session.renderStreamMessage(message);\n}\nfunction clearCache() {\n console.warn(\"Please replace `Turbo.clearCache()` with `Turbo.cache.clear()`. The top-level function is deprecated and will be removed in a future version of Turbo.`\");\n session.clearCache();\n}\nfunction setProgressBarDelay(delay) {\n session.setProgressBarDelay(delay);\n}\nfunction setConfirmMethod(confirmMethod) {\n FormSubmission.confirmMethod = confirmMethod;\n}\nfunction setFormMode(mode) {\n session.setFormMode(mode);\n}\n\nvar Turbo = /*#__PURE__*/Object.freeze({\n __proto__: null,\n navigator: navigator$1,\n session: session,\n cache: cache,\n PageRenderer: PageRenderer,\n PageSnapshot: PageSnapshot,\n FrameRenderer: FrameRenderer,\n start: start,\n registerAdapter: registerAdapter,\n visit: visit,\n connectStreamSource: connectStreamSource,\n disconnectStreamSource: disconnectStreamSource,\n renderStreamMessage: renderStreamMessage,\n clearCache: clearCache,\n setProgressBarDelay: setProgressBarDelay,\n setConfirmMethod: setConfirmMethod,\n setFormMode: setFormMode,\n StreamActions: StreamActions\n});\n\nclass TurboFrameMissingError extends Error {\n}\n\nclass FrameController {\n constructor(element) {\n this.fetchResponseLoaded = (_fetchResponse) => { };\n this.currentFetchRequest = null;\n this.resolveVisitPromise = () => { };\n this.connected = false;\n this.hasBeenLoaded = false;\n this.ignoredAttributes = new Set();\n this.action = null;\n this.visitCachedSnapshot = ({ element }) => {\n const frame = element.querySelector(\"#\" + this.element.id);\n if (frame && this.previousFrameElement) {\n frame.replaceChildren(...this.previousFrameElement.children);\n }\n delete this.previousFrameElement;\n };\n this.element = element;\n this.view = new FrameView(this, this.element);\n this.appearanceObserver = new AppearanceObserver(this, this.element);\n this.formLinkClickObserver = new FormLinkClickObserver(this, this.element);\n this.linkInterceptor = new LinkInterceptor(this, this.element);\n this.restorationIdentifier = uuid();\n this.formSubmitObserver = new FormSubmitObserver(this, this.element);\n }\n connect() {\n if (!this.connected) {\n this.connected = true;\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.loadSourceURL();\n }\n this.formLinkClickObserver.start();\n this.linkInterceptor.start();\n this.formSubmitObserver.start();\n }\n }\n disconnect() {\n if (this.connected) {\n this.connected = false;\n this.appearanceObserver.stop();\n this.formLinkClickObserver.stop();\n this.linkInterceptor.stop();\n this.formSubmitObserver.stop();\n }\n }\n disabledChanged() {\n if (this.loadingStyle == FrameLoadingStyle.eager) {\n this.loadSourceURL();\n }\n }\n sourceURLChanged() {\n if (this.isIgnoringChangesTo(\"src\"))\n return;\n if (this.element.isConnected) {\n this.complete = false;\n }\n if (this.loadingStyle == FrameLoadingStyle.eager || this.hasBeenLoaded) {\n this.loadSourceURL();\n }\n }\n sourceURLReloaded() {\n const { src } = this.element;\n this.ignoringChangesToAttribute(\"complete\", () => {\n this.element.removeAttribute(\"complete\");\n });\n this.element.src = null;\n this.element.src = src;\n return this.element.loaded;\n }\n completeChanged() {\n if (this.isIgnoringChangesTo(\"complete\"))\n return;\n this.loadSourceURL();\n }\n loadingStyleChanged() {\n if (this.loadingStyle == FrameLoadingStyle.lazy) {\n this.appearanceObserver.start();\n }\n else {\n this.appearanceObserver.stop();\n this.loadSourceURL();\n }\n }\n async loadSourceURL() {\n if (this.enabled && this.isActive && !this.complete && this.sourceURL) {\n this.element.loaded = this.visit(expandURL(this.sourceURL));\n this.appearanceObserver.stop();\n await this.element.loaded;\n this.hasBeenLoaded = true;\n }\n }\n async loadResponse(fetchResponse) {\n if (fetchResponse.redirected || (fetchResponse.succeeded && fetchResponse.isHTML)) {\n this.sourceURL = fetchResponse.response.url;\n }\n try {\n const html = await fetchResponse.responseHTML;\n if (html) {\n const document = parseHTMLDocument(html);\n const pageSnapshot = PageSnapshot.fromDocument(document);\n if (pageSnapshot.isVisitable) {\n await this.loadFrameResponse(fetchResponse, document);\n }\n else {\n await this.handleUnvisitableFrameResponse(fetchResponse);\n }\n }\n }\n finally {\n this.fetchResponseLoaded = () => { };\n }\n }\n elementAppearedInViewport(element) {\n this.proposeVisitIfNavigatedWithAction(element, element);\n this.loadSourceURL();\n }\n willSubmitFormLinkToLocation(link) {\n return this.shouldInterceptNavigation(link);\n }\n submittedFormLinkToLocation(link, _location, form) {\n const frame = this.findFrameElement(link);\n if (frame)\n form.setAttribute(\"data-turbo-frame\", frame.id);\n }\n shouldInterceptLinkClick(element, _location, _event) {\n return this.shouldInterceptNavigation(element);\n }\n linkClickIntercepted(element, location) {\n this.navigateFrame(element, location);\n }\n willSubmitForm(element, submitter) {\n return element.closest(\"turbo-frame\") == this.element && this.shouldInterceptNavigation(element, submitter);\n }\n formSubmitted(element, submitter) {\n if (this.formSubmission) {\n this.formSubmission.stop();\n }\n this.formSubmission = new FormSubmission(this, element, submitter);\n const { fetchRequest } = this.formSubmission;\n this.prepareRequest(fetchRequest);\n this.formSubmission.start();\n }\n prepareRequest(request) {\n var _a;\n request.headers[\"Turbo-Frame\"] = this.id;\n if ((_a = this.currentNavigationElement) === null || _a === void 0 ? void 0 : _a.hasAttribute(\"data-turbo-stream\")) {\n request.acceptResponseType(StreamMessage.contentType);\n }\n }\n requestStarted(_request) {\n markAsBusy(this.element);\n }\n requestPreventedHandlingResponse(_request, _response) {\n this.resolveVisitPromise();\n }\n async requestSucceededWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n async requestFailedWithResponse(request, response) {\n await this.loadResponse(response);\n this.resolveVisitPromise();\n }\n requestErrored(request, error) {\n console.error(error);\n this.resolveVisitPromise();\n }\n requestFinished(_request) {\n clearBusyState(this.element);\n }\n formSubmissionStarted({ formElement }) {\n markAsBusy(formElement, this.findFrameElement(formElement));\n }\n formSubmissionSucceededWithResponse(formSubmission, response) {\n const frame = this.findFrameElement(formSubmission.formElement, formSubmission.submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, formSubmission.formElement, formSubmission.submitter);\n frame.delegate.loadResponse(response);\n if (!formSubmission.isSafe) {\n session.clearCache();\n }\n }\n formSubmissionFailedWithResponse(formSubmission, fetchResponse) {\n this.element.delegate.loadResponse(fetchResponse);\n session.clearCache();\n }\n formSubmissionErrored(formSubmission, error) {\n console.error(error);\n }\n formSubmissionFinished({ formElement }) {\n clearBusyState(formElement, this.findFrameElement(formElement));\n }\n allowsImmediateRender({ element: newFrame }, options) {\n const event = dispatch(\"turbo:before-frame-render\", {\n target: this.element,\n detail: Object.assign({ newFrame }, options),\n cancelable: true,\n });\n const { defaultPrevented, detail: { render }, } = event;\n if (this.view.renderer && render) {\n this.view.renderer.renderElement = render;\n }\n return !defaultPrevented;\n }\n viewRenderedSnapshot(_snapshot, _isPreview) { }\n preloadOnLoadLinksForView(element) {\n session.preloadOnLoadLinksForView(element);\n }\n viewInvalidated() { }\n willRenderFrame(currentElement, _newElement) {\n this.previousFrameElement = currentElement.cloneNode(true);\n }\n async loadFrameResponse(fetchResponse, document) {\n const newFrameElement = await this.extractForeignFrameElement(document.body);\n if (newFrameElement) {\n const snapshot = new Snapshot(newFrameElement);\n const renderer = new FrameRenderer(this, this.view.snapshot, snapshot, FrameRenderer.renderElement, false, false);\n if (this.view.renderPromise)\n await this.view.renderPromise;\n this.changeHistory();\n await this.view.render(renderer);\n this.complete = true;\n session.frameRendered(fetchResponse, this.element);\n session.frameLoaded(this.element);\n this.fetchResponseLoaded(fetchResponse);\n }\n else if (this.willHandleFrameMissingFromResponse(fetchResponse)) {\n this.handleFrameMissingFromResponse(fetchResponse);\n }\n }\n async visit(url) {\n var _a;\n const request = new FetchRequest(this, FetchMethod.get, url, new URLSearchParams(), this.element);\n (_a = this.currentFetchRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n this.currentFetchRequest = request;\n return new Promise((resolve) => {\n this.resolveVisitPromise = () => {\n this.resolveVisitPromise = () => { };\n this.currentFetchRequest = null;\n resolve();\n };\n request.perform();\n });\n }\n navigateFrame(element, url, submitter) {\n const frame = this.findFrameElement(element, submitter);\n frame.delegate.proposeVisitIfNavigatedWithAction(frame, element, submitter);\n this.withCurrentNavigationElement(element, () => {\n frame.src = url;\n });\n }\n proposeVisitIfNavigatedWithAction(frame, element, submitter) {\n this.action = getVisitAction(submitter, element, frame);\n if (this.action) {\n const pageSnapshot = PageSnapshot.fromElement(frame).clone();\n const { visitCachedSnapshot } = frame.delegate;\n frame.delegate.fetchResponseLoaded = (fetchResponse) => {\n if (frame.src) {\n const { statusCode, redirected } = fetchResponse;\n const responseHTML = frame.ownerDocument.documentElement.outerHTML;\n const response = { statusCode, redirected, responseHTML };\n const options = {\n response,\n visitCachedSnapshot,\n willRender: false,\n updateHistory: false,\n restorationIdentifier: this.restorationIdentifier,\n snapshot: pageSnapshot,\n };\n if (this.action)\n options.action = this.action;\n session.visit(frame.src, options);\n }\n };\n }\n }\n changeHistory() {\n if (this.action) {\n const method = getHistoryMethodForAction(this.action);\n session.history.update(method, expandURL(this.element.src || \"\"), this.restorationIdentifier);\n }\n }\n async handleUnvisitableFrameResponse(fetchResponse) {\n console.warn(`The response (${fetchResponse.statusCode}) from <turbo-frame id=\"${this.element.id}\"> is performing a full page visit due to turbo-visit-control.`);\n await this.visitResponse(fetchResponse.response);\n }\n willHandleFrameMissingFromResponse(fetchResponse) {\n this.element.setAttribute(\"complete\", \"\");\n const response = fetchResponse.response;\n const visit = async (url, options = {}) => {\n if (url instanceof Response) {\n this.visitResponse(url);\n }\n else {\n session.visit(url, options);\n }\n };\n const event = dispatch(\"turbo:frame-missing\", {\n target: this.element,\n detail: { response, visit },\n cancelable: true,\n });\n return !event.defaultPrevented;\n }\n handleFrameMissingFromResponse(fetchResponse) {\n this.view.missing();\n this.throwFrameMissingError(fetchResponse);\n }\n throwFrameMissingError(fetchResponse) {\n const message = `The response (${fetchResponse.statusCode}) did not contain the expected <turbo-frame id=\"${this.element.id}\"> and will be ignored. To perform a full page visit instead, set turbo-visit-control to reload.`;\n throw new TurboFrameMissingError(message);\n }\n async visitResponse(response) {\n const wrapped = new FetchResponse(response);\n const responseHTML = await wrapped.responseHTML;\n const { location, redirected, statusCode } = wrapped;\n return session.visit(location, { response: { redirected, statusCode, responseHTML } });\n }\n findFrameElement(element, submitter) {\n var _a;\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n return (_a = getFrameElementById(id)) !== null && _a !== void 0 ? _a : this.element;\n }\n async extractForeignFrameElement(container) {\n let element;\n const id = CSS.escape(this.id);\n try {\n element = activateElement(container.querySelector(`turbo-frame#${id}`), this.sourceURL);\n if (element) {\n return element;\n }\n element = activateElement(container.querySelector(`turbo-frame[src][recurse~=${id}]`), this.sourceURL);\n if (element) {\n await element.loaded;\n return await this.extractForeignFrameElement(element);\n }\n }\n catch (error) {\n console.error(error);\n return new FrameElement();\n }\n return null;\n }\n formActionIsVisitable(form, submitter) {\n const action = getAction(form, submitter);\n return locationIsVisitable(expandURL(action), this.rootLocation);\n }\n shouldInterceptNavigation(element, submitter) {\n const id = getAttribute(\"data-turbo-frame\", submitter, element) || this.element.getAttribute(\"target\");\n if (element instanceof HTMLFormElement && !this.formActionIsVisitable(element, submitter)) {\n return false;\n }\n if (!this.enabled || id == \"_top\") {\n return false;\n }\n if (id) {\n const frameElement = getFrameElementById(id);\n if (frameElement) {\n return !frameElement.disabled;\n }\n }\n if (!session.elementIsNavigatable(element)) {\n return false;\n }\n if (submitter && !session.elementIsNavigatable(submitter)) {\n return false;\n }\n return true;\n }\n get id() {\n return this.element.id;\n }\n get enabled() {\n return !this.element.disabled;\n }\n get sourceURL() {\n if (this.element.src) {\n return this.element.src;\n }\n }\n set sourceURL(sourceURL) {\n this.ignoringChangesToAttribute(\"src\", () => {\n this.element.src = sourceURL !== null && sourceURL !== void 0 ? sourceURL : null;\n });\n }\n get loadingStyle() {\n return this.element.loading;\n }\n get isLoading() {\n return this.formSubmission !== undefined || this.resolveVisitPromise() !== undefined;\n }\n get complete() {\n return this.element.hasAttribute(\"complete\");\n }\n set complete(value) {\n this.ignoringChangesToAttribute(\"complete\", () => {\n if (value) {\n this.element.setAttribute(\"complete\", \"\");\n }\n else {\n this.element.removeAttribute(\"complete\");\n }\n });\n }\n get isActive() {\n return this.element.isActive && this.connected;\n }\n get rootLocation() {\n var _a;\n const meta = this.element.ownerDocument.querySelector(`meta[name=\"turbo-root\"]`);\n const root = (_a = meta === null || meta === void 0 ? void 0 : meta.content) !== null && _a !== void 0 ? _a : \"/\";\n return expandURL(root);\n }\n isIgnoringChangesTo(attributeName) {\n return this.ignoredAttributes.has(attributeName);\n }\n ignoringChangesToAttribute(attributeName, callback) {\n this.ignoredAttributes.add(attributeName);\n callback();\n this.ignoredAttributes.delete(attributeName);\n }\n withCurrentNavigationElement(element, callback) {\n this.currentNavigationElement = element;\n callback();\n delete this.currentNavigationElement;\n }\n}\nfunction getFrameElementById(id) {\n if (id != null) {\n const element = document.getElementById(id);\n if (element instanceof FrameElement) {\n return element;\n }\n }\n}\nfunction activateElement(element, currentURL) {\n if (element) {\n const src = element.getAttribute(\"src\");\n if (src != null && currentURL != null && urlsAreEqual(src, currentURL)) {\n throw new Error(`Matching <turbo-frame id=\"${element.id}\"> element has a source URL which references itself`);\n }\n if (element.ownerDocument !== document) {\n element = document.importNode(element, true);\n }\n if (element instanceof FrameElement) {\n element.connectedCallback();\n element.disconnectedCallback();\n return element;\n }\n }\n}\n\nclass StreamElement extends HTMLElement {\n static async renderElement(newElement) {\n await newElement.performAction();\n }\n async connectedCallback() {\n try {\n await this.render();\n }\n catch (error) {\n console.error(error);\n }\n finally {\n this.disconnect();\n }\n }\n async render() {\n var _a;\n return ((_a = this.renderPromise) !== null && _a !== void 0 ? _a : (this.renderPromise = (async () => {\n const event = this.beforeRenderEvent;\n if (this.dispatchEvent(event)) {\n await nextAnimationFrame();\n await event.detail.render(this);\n }\n })()));\n }\n disconnect() {\n try {\n this.remove();\n }\n catch (_a) { }\n }\n removeDuplicateTargetChildren() {\n this.duplicateChildren.forEach((c) => c.remove());\n }\n get duplicateChildren() {\n var _a;\n const existingChildren = this.targetElements.flatMap((e) => [...e.children]).filter((c) => !!c.id);\n const newChildrenIds = [...(((_a = this.templateContent) === null || _a === void 0 ? void 0 : _a.children) || [])].filter((c) => !!c.id).map((c) => c.id);\n return existingChildren.filter((c) => newChildrenIds.includes(c.id));\n }\n get performAction() {\n if (this.action) {\n const actionFunction = StreamActions[this.action];\n if (actionFunction) {\n return actionFunction;\n }\n this.raise(\"unknown action\");\n }\n this.raise(\"action attribute is missing\");\n }\n get targetElements() {\n if (this.target) {\n return this.targetElementsById;\n }\n else if (this.targets) {\n return this.targetElementsByQuery;\n }\n else {\n this.raise(\"target or targets attribute is missing\");\n }\n }\n get templateContent() {\n return this.templateElement.content.cloneNode(true);\n }\n get templateElement() {\n if (this.firstElementChild === null) {\n const template = this.ownerDocument.createElement(\"template\");\n this.appendChild(template);\n return template;\n }\n else if (this.firstElementChild instanceof HTMLTemplateElement) {\n return this.firstElementChild;\n }\n this.raise(\"first child element must be a <template> element\");\n }\n get action() {\n return this.getAttribute(\"action\");\n }\n get target() {\n return this.getAttribute(\"target\");\n }\n get targets() {\n return this.getAttribute(\"targets\");\n }\n raise(message) {\n throw new Error(`${this.description}: ${message}`);\n }\n get description() {\n var _a, _b;\n return (_b = ((_a = this.outerHTML.match(/<[^>]+>/)) !== null && _a !== void 0 ? _a : [])[0]) !== null && _b !== void 0 ? _b : \"<turbo-stream>\";\n }\n get beforeRenderEvent() {\n return new CustomEvent(\"turbo:before-stream-render\", {\n bubbles: true,\n cancelable: true,\n detail: { newStream: this, render: StreamElement.renderElement },\n });\n }\n get targetElementsById() {\n var _a;\n const element = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.getElementById(this.target);\n if (element !== null) {\n return [element];\n }\n else {\n return [];\n }\n }\n get targetElementsByQuery() {\n var _a;\n const elements = (_a = this.ownerDocument) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.targets);\n if (elements.length !== 0) {\n return Array.prototype.slice.call(elements);\n }\n else {\n return [];\n }\n }\n}\n\nclass StreamSourceElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.streamSource = null;\n }\n connectedCallback() {\n this.streamSource = this.src.match(/^ws{1,2}:/) ? new WebSocket(this.src) : new EventSource(this.src);\n connectStreamSource(this.streamSource);\n }\n disconnectedCallback() {\n if (this.streamSource) {\n disconnectStreamSource(this.streamSource);\n }\n }\n get src() {\n return this.getAttribute(\"src\") || \"\";\n }\n}\n\nFrameElement.delegateConstructor = FrameController;\nif (customElements.get(\"turbo-frame\") === undefined) {\n customElements.define(\"turbo-frame\", FrameElement);\n}\nif (customElements.get(\"turbo-stream\") === undefined) {\n customElements.define(\"turbo-stream\", StreamElement);\n}\nif (customElements.get(\"turbo-stream-source\") === undefined) {\n customElements.define(\"turbo-stream-source\", StreamSourceElement);\n}\n\n(() => {\n let element = document.currentScript;\n if (!element)\n return;\n if (element.hasAttribute(\"data-turbo-suppress-warning\"))\n return;\n element = element.parentElement;\n while (element) {\n if (element == document.body) {\n return console.warn(unindent `\n You are loading Turbo from a <script> element inside the <body> element. This is probably not what you meant to do!\n\n Load your application’s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\n For more information, see: https://turbo.hotwired.dev/handbook/building#working-with-script-elements\n\n ——\n Suppress this warning by adding a \"data-turbo-suppress-warning\" attribute to: %s\n `, element.outerHTML);\n }\n element = element.parentElement;\n }\n})();\n\nwindow.Turbo = Turbo;\nstart();\n\nexport { FrameElement, FrameLoadingStyle, FrameRenderer, PageRenderer, PageSnapshot, StreamActions, StreamElement, StreamSourceElement, cache, clearCache, connectStreamSource, disconnectStreamSource, navigator$1 as navigator, registerAdapter, renderStreamMessage, session, setConfirmMethod, setFormMode, setProgressBarDelay, start, visit };\n","/*! lightslider - v1.1.3 - 2015-07-18\r\n* https://github.com/sachinchoolur/lightslider\r\n* Copyright (c) 2015 Sachin N; Licensed MIT */\r\n(function ($, undefined) {\r\n 'use strict';\r\n var defaults = {\r\n item: 3,\r\n autoWidth: false,\r\n slideMove: 1,\r\n slideMargin: 10,\r\n addClass: '',\r\n mode: 'slide',\r\n useCSS: true,\r\n cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)',\r\n easing: 'linear', //'for jquery animation',//\r\n speed: 400, //ms'\r\n auto: false,\r\n loop: false,\r\n slideEndAnimation: true,\r\n pause: 2000,\r\n keyPress: false,\r\n controls: true,\r\n prevHtml: '',\r\n nextHtml: '',\r\n rtl: false,\r\n adaptiveHeight: false,\r\n vertical: false,\r\n verticalHeight: 500,\r\n vThumbWidth: 100,\r\n thumbItem: 10,\r\n pager: true,\r\n gallery: false,\r\n galleryMargin: 5,\r\n thumbMargin: 5,\r\n currentPagerPosition: 'middle',\r\n enableTouch: true,\r\n enableDrag: true,\r\n freeMove: true,\r\n swipeThreshold: 40,\r\n responsive: [],\r\n /* jshint ignore:start */\r\n onBeforeStart: function ($el) {},\r\n onSliderLoad: function ($el) {},\r\n onBeforeSlide: function ($el, scene) {},\r\n onAfterSlide: function ($el, scene) {},\r\n onBeforeNextSlide: function ($el, scene) {},\r\n onBeforePrevSlide: function ($el, scene) {}\r\n /* jshint ignore:end */\r\n };\r\n $.fn.lightSlider = function (options) {\r\n if (this.length === 0) {\r\n return this;\r\n }\r\n\r\n if (this.length > 1) {\r\n this.each(function () {\r\n $(this).lightSlider(options);\r\n });\r\n return this;\r\n }\r\n\r\n var plugin = {},\r\n settings = $.extend(true, {}, defaults, options),\r\n settingsTemp = {},\r\n $el = this;\r\n plugin.$el = this;\r\n\r\n if (settings.mode === 'fade') {\r\n settings.vertical = false;\r\n }\r\n var $children = $el.children(),\r\n windowW = $(window).width(),\r\n breakpoint = null,\r\n resposiveObj = null,\r\n length = 0,\r\n w = 0,\r\n on = false,\r\n elSize = 0,\r\n $slide = '',\r\n scene = 0,\r\n property = (settings.vertical === true) ? 'height' : 'width',\r\n gutter = (settings.vertical === true) ? 'margin-bottom' : 'margin-right',\r\n slideValue = 0,\r\n pagerWidth = 0,\r\n slideWidth = 0,\r\n thumbWidth = 0,\r\n interval = null,\r\n isTouch = ('ontouchstart' in document.documentElement);\r\n var refresh = {};\r\n\r\n refresh.chbreakpoint = function () {\r\n windowW = $(window).width();\r\n if (settings.responsive.length) {\r\n var item;\r\n if (settings.autoWidth === false) {\r\n item = settings.item;\r\n }\r\n if (windowW < settings.responsive[0].breakpoint) {\r\n for (var i = 0; i < settings.responsive.length; i++) {\r\n if (windowW < settings.responsive[i].breakpoint) {\r\n breakpoint = settings.responsive[i].breakpoint;\r\n resposiveObj = settings.responsive[i];\r\n }\r\n }\r\n }\r\n if (typeof resposiveObj !== 'undefined' && resposiveObj !== null) {\r\n for (var j in resposiveObj.settings) {\r\n if (resposiveObj.settings.hasOwnProperty(j)) {\r\n if (typeof settingsTemp[j] === 'undefined' || settingsTemp[j] === null) {\r\n settingsTemp[j] = settings[j];\r\n }\r\n settings[j] = resposiveObj.settings[j];\r\n }\r\n }\r\n }\r\n if (!$.isEmptyObject(settingsTemp) && windowW > settings.responsive[0].breakpoint) {\r\n for (var k in settingsTemp) {\r\n if (settingsTemp.hasOwnProperty(k)) {\r\n settings[k] = settingsTemp[k];\r\n }\r\n }\r\n }\r\n if (settings.autoWidth === false) {\r\n if (slideValue > 0 && slideWidth > 0) {\r\n if (item !== settings.item) {\r\n scene = Math.round(slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n refresh.calSW = function () {\r\n if (settings.autoWidth === false) {\r\n slideWidth = (elSize - ((settings.item * (settings.slideMargin)) - settings.slideMargin)) / settings.item;\r\n }\r\n };\r\n\r\n refresh.calWidth = function (cln) {\r\n var ln = cln === true ? $slide.find('.lslide').length : $children.length;\r\n if (settings.autoWidth === false) {\r\n w = ln * (slideWidth + settings.slideMargin);\r\n } else {\r\n w = 0;\r\n for (var i = 0; i < ln; i++) {\r\n w += (parseInt($children.eq(i).width()) + settings.slideMargin);\r\n }\r\n }\r\n return w;\r\n };\r\n plugin = {\r\n doCss: function () {\r\n var support = function () {\r\n var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];\r\n var root = document.documentElement;\r\n for (var i = 0; i < transition.length; i++) {\r\n if (transition[i] in root.style) {\r\n return true;\r\n }\r\n }\r\n };\r\n if (settings.useCSS && support()) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n keyPress: function () {\r\n if (settings.keyPress) {\r\n $(document).on('keyup.lightslider', function (e) {\r\n if (!$(':focus').is('input, textarea')) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n }\r\n if (e.keyCode === 37) {\r\n $el.goToPrevSlide();\r\n clearInterval(interval);\r\n } else if (e.keyCode === 39) {\r\n $el.goToNextSlide();\r\n clearInterval(interval);\r\n }\r\n }\r\n });\r\n }\r\n },\r\n controls: function () {\r\n if (settings.controls) {\r\n $el.after('<div class=\"lSAction\"><a class=\"lSPrev\">' + settings.prevHtml + '</a><a class=\"lSNext\">' + settings.nextHtml + '</a></div>');\r\n if (!settings.autoWidth) {\r\n if (length <= settings.item) {\r\n $slide.find('.lSAction').hide();\r\n }\r\n } else {\r\n if (refresh.calWidth(false) < elSize) {\r\n $slide.find('.lSAction').hide();\r\n }\r\n }\r\n $slide.find('.lSAction a').on('click', function (e) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n }\r\n if ($(this).attr('class') === 'lSPrev') {\r\n $el.goToPrevSlide();\r\n } else {\r\n $el.goToNextSlide();\r\n }\r\n clearInterval(interval);\r\n return false;\r\n });\r\n }\r\n },\r\n initialStyle: function () {\r\n var $this = this;\r\n if (settings.mode === 'fade') {\r\n settings.autoWidth = false;\r\n settings.slideEndAnimation = false;\r\n }\r\n if (settings.auto) {\r\n settings.slideEndAnimation = false;\r\n }\r\n if (settings.autoWidth) {\r\n settings.slideMove = 1;\r\n settings.item = 1;\r\n }\r\n if (settings.loop) {\r\n settings.slideMove = 1;\r\n settings.freeMove = false;\r\n }\r\n settings.onBeforeStart.call(this, $el);\r\n refresh.chbreakpoint();\r\n $el.addClass('lightSlider').wrap('<div class=\"lSSlideOuter ' + settings.addClass + '\"><div class=\"lSSlideWrapper\"></div></div>');\r\n $slide = $el.parent('.lSSlideWrapper');\r\n if (settings.rtl === true) {\r\n $slide.parent().addClass('lSrtl');\r\n }\r\n if (settings.vertical) {\r\n $slide.parent().addClass('vertical');\r\n elSize = settings.verticalHeight;\r\n $slide.css('height', elSize + 'px');\r\n } else {\r\n elSize = $el.outerWidth();\r\n }\r\n $children.addClass('lslide');\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n refresh.calSW();\r\n refresh.clone = function () {\r\n if (refresh.calWidth(true) > elSize) {\r\n /**/\r\n var tWr = 0,\r\n tI = 0;\r\n for (var k = 0; k < $children.length; k++) {\r\n tWr += (parseInt($el.find('.lslide').eq(k).width()) + settings.slideMargin);\r\n tI++;\r\n if (tWr >= (elSize + settings.slideMargin)) {\r\n break;\r\n }\r\n }\r\n var tItem = settings.autoWidth === true ? tI : settings.item;\r\n\r\n /**/\r\n if (tItem < $el.find('.clone.left').length) {\r\n for (var i = 0; i < $el.find('.clone.left').length - tItem; i++) {\r\n $children.eq(i).remove();\r\n }\r\n }\r\n if (tItem < $el.find('.clone.right').length) {\r\n for (var j = $children.length - 1; j > ($children.length - 1 - $el.find('.clone.right').length); j--) {\r\n scene--;\r\n $children.eq(j).remove();\r\n }\r\n }\r\n /**/\r\n for (var n = $el.find('.clone.right').length; n < tItem; n++) {\r\n $el.find('.lslide').eq(n).clone().removeClass('lslide').addClass('clone right').appendTo($el);\r\n scene++;\r\n }\r\n for (var m = $el.find('.lslide').length - $el.find('.clone.left').length; m > ($el.find('.lslide').length - tItem); m--) {\r\n $el.find('.lslide').eq(m - 1).clone().removeClass('lslide').addClass('clone left').prependTo($el);\r\n }\r\n $children = $el.children();\r\n } else {\r\n if ($children.hasClass('clone')) {\r\n $el.find('.clone').remove();\r\n $this.move($el, 0);\r\n }\r\n }\r\n };\r\n refresh.clone();\r\n }\r\n refresh.sSW = function () {\r\n length = $children.length;\r\n if (settings.rtl === true && settings.vertical === false) {\r\n gutter = 'margin-left';\r\n }\r\n if (settings.autoWidth === false) {\r\n $children.css(property, slideWidth + 'px');\r\n }\r\n $children.css(gutter, settings.slideMargin + 'px');\r\n w = refresh.calWidth(false);\r\n $el.css(property, w + 'px');\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n if (on === false) {\r\n scene = $el.find('.clone.left').length;\r\n }\r\n }\r\n };\r\n refresh.calL = function () {\r\n $children = $el.children();\r\n length = $children.length;\r\n };\r\n if (this.doCss()) {\r\n $slide.addClass('usingCss');\r\n }\r\n refresh.calL();\r\n if (settings.mode === 'slide') {\r\n refresh.calSW();\r\n refresh.sSW();\r\n if (settings.loop === true) {\r\n slideValue = $this.slideValue();\r\n this.move($el, slideValue);\r\n }\r\n if (settings.vertical === false) {\r\n this.setHeight($el, false);\r\n }\r\n\r\n } else {\r\n this.setHeight($el, true);\r\n $el.addClass('lSFade');\r\n if (!this.doCss()) {\r\n $children.fadeOut(0);\r\n $children.eq(scene).fadeIn(0);\r\n }\r\n }\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n $children.eq(scene).addClass('active');\r\n } else {\r\n $children.first().addClass('active');\r\n }\r\n },\r\n pager: function () {\r\n var $this = this;\r\n refresh.createPager = function () {\r\n thumbWidth = (elSize - ((settings.thumbItem * (settings.thumbMargin)) - settings.thumbMargin)) / settings.thumbItem;\r\n var $children = $slide.find('.lslide');\r\n var length = $slide.find('.lslide').length;\r\n var i = 0,\r\n pagers = '',\r\n v = 0;\r\n for (i = 0; i < length; i++) {\r\n if (settings.mode === 'slide') {\r\n // calculate scene * slide value\r\n if (!settings.autoWidth) {\r\n v = i * ((slideWidth + settings.slideMargin) * settings.slideMove);\r\n } else {\r\n v += ((parseInt($children.eq(i).width()) + settings.slideMargin) * settings.slideMove);\r\n }\r\n }\r\n var thumb = $children.eq(i * settings.slideMove).attr('data-thumb');\r\n if (settings.gallery === true) {\r\n pagers += '<li style=\"width:100%;' + property + ':' + thumbWidth + 'px;' + gutter + ':' + settings.thumbMargin + 'px\"><a href=\"#\"><img src=\"' + thumb + '\" /></a></li>';\r\n } else {\r\n pagers += '<li><a href=\"#\">' + (i + 1) + '</a></li>';\r\n }\r\n if (settings.mode === 'slide') {\r\n if ((v) >= w - elSize - settings.slideMargin) {\r\n i = i + 1;\r\n var minPgr = 2;\r\n if (settings.autoWidth) {\r\n pagers += '<li><a href=\"#\">' + (i + 1) + '</a></li>';\r\n minPgr = 1;\r\n }\r\n if (i < minPgr) {\r\n pagers = null;\r\n $slide.parent().addClass('noPager');\r\n } else {\r\n $slide.parent().removeClass('noPager');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n var $cSouter = $slide.parent();\r\n $cSouter.find('.lSPager').html(pagers); \r\n if (settings.gallery === true) {\r\n if (settings.vertical === true) {\r\n // set Gallery thumbnail width\r\n $cSouter.find('.lSPager').css('width', settings.vThumbWidth + 'px');\r\n }\r\n pagerWidth = (i * (settings.thumbMargin + thumbWidth)) + 0.5;\r\n $cSouter.find('.lSPager').css({\r\n property: pagerWidth + 'px',\r\n 'transition-duration': settings.speed + 'ms'\r\n });\r\n if (settings.vertical === true) {\r\n $slide.parent().css('padding-right', (settings.vThumbWidth + settings.galleryMargin) + 'px');\r\n }\r\n $cSouter.find('.lSPager').css(property, pagerWidth + 'px');\r\n }\r\n var $pager = $cSouter.find('.lSPager').find('li');\r\n $pager.first().addClass('active');\r\n $pager.on('click', function () {\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n scene = scene + ($pager.index(this) - $cSouter.find('.lSPager').find('li.active').index());\r\n } else {\r\n scene = $pager.index(this);\r\n }\r\n $el.mode(false);\r\n if (settings.gallery === true) {\r\n $this.slideThumb();\r\n }\r\n clearInterval(interval);\r\n return false;\r\n });\r\n };\r\n if (settings.pager) {\r\n var cl = 'lSpg';\r\n if (settings.gallery) {\r\n cl = 'lSGallery';\r\n }\r\n $slide.after('<ul class=\"lSPager ' + cl + '\"></ul>');\r\n var gMargin = (settings.vertical) ? 'margin-left' : 'margin-top';\r\n $slide.parent().find('.lSPager').css(gMargin, settings.galleryMargin + 'px');\r\n refresh.createPager();\r\n }\r\n\r\n setTimeout(function () {\r\n refresh.init();\r\n }, 0);\r\n },\r\n setHeight: function (ob, fade) {\r\n var obj = null,\r\n $this = this;\r\n if (settings.loop) {\r\n obj = ob.children('.lslide ').first();\r\n } else {\r\n obj = ob.children().first();\r\n }\r\n var setCss = function () {\r\n var tH = obj.outerHeight(),\r\n tP = 0,\r\n tHT = tH;\r\n if (fade) {\r\n tH = 0;\r\n tP = ((tHT) * 100) / elSize;\r\n }\r\n ob.css({\r\n 'height': tH + 'px',\r\n 'padding-bottom': tP + '%'\r\n });\r\n };\r\n setCss();\r\n if (obj.find('img').length) {\r\n if ( obj.find('img')[0].complete) {\r\n setCss();\r\n if (!interval) {\r\n $this.auto();\r\n } \r\n }else{\r\n obj.find('img').load(function () {\r\n setTimeout(function () {\r\n setCss();\r\n if (!interval) {\r\n $this.auto();\r\n }\r\n }, 100);\r\n });\r\n }\r\n }else{\r\n if (!interval) {\r\n $this.auto();\r\n }\r\n }\r\n },\r\n active: function (ob, t) {\r\n if (this.doCss() && settings.mode === 'fade') {\r\n $slide.addClass('on');\r\n }\r\n var sc = 0;\r\n if (scene * settings.slideMove < length) {\r\n ob.removeClass('active');\r\n if (!this.doCss() && settings.mode === 'fade' && t === false) {\r\n ob.fadeOut(settings.speed);\r\n }\r\n if (t === true) {\r\n sc = scene;\r\n } else {\r\n sc = scene * settings.slideMove;\r\n }\r\n //t === true ? sc = scene : sc = scene * settings.slideMove;\r\n var l, nl;\r\n if (t === true) {\r\n l = ob.length;\r\n nl = l - 1;\r\n if (sc + 1 >= l) {\r\n sc = nl;\r\n }\r\n }\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n //t === true ? sc = scene - $el.find('.clone.left').length : sc = scene * settings.slideMove;\r\n if (t === true) {\r\n sc = scene - $el.find('.clone.left').length;\r\n } else {\r\n sc = scene * settings.slideMove;\r\n }\r\n if (t === true) {\r\n l = ob.length;\r\n nl = l - 1;\r\n if (sc + 1 === l) {\r\n sc = nl;\r\n } else if (sc + 1 > l) {\r\n sc = 0;\r\n }\r\n }\r\n }\r\n\r\n if (!this.doCss() && settings.mode === 'fade' && t === false) {\r\n ob.eq(sc).fadeIn(settings.speed);\r\n }\r\n ob.eq(sc).addClass('active');\r\n } else {\r\n ob.removeClass('active');\r\n ob.eq(ob.length - 1).addClass('active');\r\n if (!this.doCss() && settings.mode === 'fade' && t === false) {\r\n ob.fadeOut(settings.speed);\r\n ob.eq(sc).fadeIn(settings.speed);\r\n }\r\n }\r\n },\r\n move: function (ob, v) {\r\n if (settings.rtl === true) {\r\n v = -v;\r\n }\r\n if (this.doCss()) {\r\n if (settings.vertical === true) {\r\n ob.css({\r\n 'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)',\r\n '-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)'\r\n });\r\n } else {\r\n ob.css({\r\n 'transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',\r\n '-webkit-transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',\r\n });\r\n }\r\n } else {\r\n if (settings.vertical === true) {\r\n ob.css('position', 'relative').animate({\r\n top: -v + 'px'\r\n }, settings.speed, settings.easing);\r\n } else {\r\n ob.css('position', 'relative').animate({\r\n left: -v + 'px'\r\n }, settings.speed, settings.easing);\r\n }\r\n }\r\n var $thumb = $slide.parent().find('.lSPager').find('li');\r\n this.active($thumb, true);\r\n },\r\n fade: function () {\r\n this.active($children, false);\r\n var $thumb = $slide.parent().find('.lSPager').find('li');\r\n this.active($thumb, true);\r\n },\r\n slide: function () {\r\n var $this = this;\r\n refresh.calSlide = function () {\r\n if (w > elSize) {\r\n slideValue = $this.slideValue();\r\n $this.active($children, false);\r\n if ((slideValue) > w - elSize - settings.slideMargin) {\r\n slideValue = w - elSize - settings.slideMargin;\r\n } else if (slideValue < 0) {\r\n slideValue = 0;\r\n }\r\n $this.move($el, slideValue);\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n if (scene >= (length - ($el.find('.clone.left').length / settings.slideMove))) {\r\n $this.resetSlide($el.find('.clone.left').length);\r\n }\r\n if (scene === 0) {\r\n $this.resetSlide($slide.find('.lslide').length);\r\n }\r\n }\r\n }\r\n };\r\n refresh.calSlide();\r\n },\r\n resetSlide: function (s) {\r\n var $this = this;\r\n $slide.find('.lSAction a').addClass('disabled');\r\n setTimeout(function () {\r\n scene = s;\r\n $slide.css('transition-duration', '0ms');\r\n slideValue = $this.slideValue();\r\n $this.active($children, false);\r\n plugin.move($el, slideValue);\r\n setTimeout(function () {\r\n $slide.css('transition-duration', settings.speed + 'ms');\r\n $slide.find('.lSAction a').removeClass('disabled');\r\n }, 50);\r\n }, settings.speed + 100);\r\n },\r\n slideValue: function () {\r\n var _sV = 0;\r\n if (settings.autoWidth === false) {\r\n _sV = scene * ((slideWidth + settings.slideMargin) * settings.slideMove);\r\n } else {\r\n _sV = 0;\r\n for (var i = 0; i < scene; i++) {\r\n _sV += (parseInt($children.eq(i).width()) + settings.slideMargin);\r\n }\r\n }\r\n return _sV;\r\n },\r\n slideThumb: function () {\r\n var position;\r\n switch (settings.currentPagerPosition) {\r\n case 'left':\r\n position = 0;\r\n break;\r\n case 'middle':\r\n position = (elSize / 2) - (thumbWidth / 2);\r\n break;\r\n case 'right':\r\n position = elSize - thumbWidth;\r\n }\r\n var sc = scene - $el.find('.clone.left').length;\r\n var $pager = $slide.parent().find('.lSPager');\r\n if (settings.mode === 'slide' && settings.loop === true) {\r\n if (sc >= $pager.children().length) {\r\n sc = 0;\r\n } else if (sc < 0) {\r\n sc = $pager.children().length;\r\n }\r\n }\r\n var thumbSlide = sc * ((thumbWidth + settings.thumbMargin)) - (position);\r\n if ((thumbSlide + elSize) > pagerWidth) {\r\n thumbSlide = pagerWidth - elSize - settings.thumbMargin;\r\n }\r\n if (thumbSlide < 0) {\r\n thumbSlide = 0;\r\n }\r\n this.move($pager, thumbSlide);\r\n },\r\n auto: function () {\r\n if (settings.auto) {\r\n interval = setInterval(function () {\r\n $el.goToNextSlide();\r\n }, settings.pause);\r\n }\r\n },\r\n\r\n touchMove: function (endCoords, startCoords) {\r\n $slide.css('transition-duration', '0ms');\r\n if (settings.mode === 'slide') {\r\n var distance = endCoords - startCoords;\r\n var swipeVal = slideValue - distance;\r\n if ((swipeVal) >= w - elSize - settings.slideMargin) {\r\n if (settings.freeMove === false) {\r\n swipeVal = w - elSize - settings.slideMargin;\r\n } else {\r\n var swipeValT = w - elSize - settings.slideMargin;\r\n swipeVal = swipeValT + ((swipeVal - swipeValT) / 5);\r\n\r\n }\r\n } else if (swipeVal < 0) {\r\n if (settings.freeMove === false) {\r\n swipeVal = 0;\r\n } else {\r\n swipeVal = swipeVal / 5;\r\n }\r\n }\r\n this.move($el, swipeVal);\r\n }\r\n },\r\n\r\n touchEnd: function (distance) {\r\n $slide.css('transition-duration', settings.speed + 'ms');\r\n clearInterval(interval);\r\n if (settings.mode === 'slide') {\r\n var mxVal = false;\r\n var _next = true;\r\n slideValue = slideValue - distance;\r\n if ((slideValue) > w - elSize - settings.slideMargin) {\r\n slideValue = w - elSize - settings.slideMargin;\r\n if (settings.autoWidth === false) {\r\n mxVal = true;\r\n }\r\n } else if (slideValue < 0) {\r\n slideValue = 0;\r\n }\r\n var gC = function (next) {\r\n var ad = 0;\r\n if (!mxVal) {\r\n if (next) {\r\n ad = 1;\r\n }\r\n }\r\n if (!settings.autoWidth) {\r\n var num = slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove);\r\n scene = parseInt(num) + ad;\r\n if (slideValue >= (w - elSize - settings.slideMargin)) {\r\n if (num % 1 !== 0) {\r\n scene++;\r\n }\r\n }\r\n } else {\r\n var tW = 0;\r\n for (var i = 0; i < $children.length; i++) {\r\n tW += (parseInt($children.eq(i).width()) + settings.slideMargin);\r\n scene = i + ad;\r\n if (tW >= slideValue) {\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n if (distance >= settings.swipeThreshold) {\r\n gC(false);\r\n _next = false;\r\n } else if (distance <= -settings.swipeThreshold) {\r\n gC(true);\r\n _next = false;\r\n }\r\n $el.mode(_next);\r\n this.slideThumb();\r\n } else {\r\n if (distance >= settings.swipeThreshold) {\r\n $el.goToPrevSlide();\r\n } else if (distance <= -settings.swipeThreshold) {\r\n $el.goToNextSlide();\r\n }\r\n }\r\n },\r\n\r\n\r\n\r\n enableDrag: function () {\r\n var $this = this;\r\n if (!isTouch) {\r\n var startCoords = 0,\r\n endCoords = 0,\r\n isDraging = false;\r\n $slide.find('.lightSlider').addClass('lsGrab');\r\n $slide.on('mousedown', function (e) {\r\n if (w < elSize) {\r\n if (w !== 0) {\r\n return false;\r\n }\r\n }\r\n if ($(e.target).attr('class') !== ('lSPrev') && $(e.target).attr('class') !== ('lSNext')) {\r\n startCoords = (settings.vertical === true) ? e.pageY : e.pageX;\r\n isDraging = true;\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n }\r\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\r\n $slide.scrollLeft += 1;\r\n $slide.scrollLeft -= 1;\r\n // *\r\n $slide.find('.lightSlider').removeClass('lsGrab').addClass('lsGrabbing');\r\n clearInterval(interval);\r\n }\r\n });\r\n $(window).on('mousemove', function (e) {\r\n if (isDraging) {\r\n endCoords = (settings.vertical === true) ? e.pageY : e.pageX;\r\n $this.touchMove(endCoords, startCoords);\r\n }\r\n });\r\n $(window).on('mouseup', function (e) {\r\n if (isDraging) {\r\n $slide.find('.lightSlider').removeClass('lsGrabbing').addClass('lsGrab');\r\n isDraging = false;\r\n endCoords = (settings.vertical === true) ? e.pageY : e.pageX;\r\n var distance = endCoords - startCoords;\r\n if (Math.abs(distance) >= settings.swipeThreshold) {\r\n $(window).on('click.ls', function (e) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n }\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n $(window).off('click.ls');\r\n });\r\n }\r\n\r\n $this.touchEnd(distance);\r\n\r\n }\r\n });\r\n }\r\n },\r\n\r\n\r\n\r\n\r\n enableTouch: function () {\r\n var $this = this;\r\n if (isTouch) {\r\n var startCoords = {},\r\n endCoords = {};\r\n $slide.on('touchstart', function (e) {\r\n endCoords = e.originalEvent.targetTouches[0];\r\n startCoords.pageX = e.originalEvent.targetTouches[0].pageX;\r\n startCoords.pageY = e.originalEvent.targetTouches[0].pageY;\r\n clearInterval(interval);\r\n });\r\n $slide.on('touchmove', function (e) {\r\n if (w < elSize) {\r\n if (w !== 0) {\r\n return false;\r\n }\r\n }\r\n var orig = e.originalEvent;\r\n endCoords = orig.targetTouches[0];\r\n var xMovement = Math.abs(endCoords.pageX - startCoords.pageX);\r\n var yMovement = Math.abs(endCoords.pageY - startCoords.pageY);\r\n if (settings.vertical === true) {\r\n if ((yMovement * 3) > xMovement) {\r\n e.preventDefault();\r\n }\r\n $this.touchMove(endCoords.pageY, startCoords.pageY);\r\n } else {\r\n if ((xMovement * 3) > yMovement) {\r\n e.preventDefault();\r\n }\r\n $this.touchMove(endCoords.pageX, startCoords.pageX);\r\n }\r\n\r\n });\r\n $slide.on('touchend', function () {\r\n if (w < elSize) {\r\n if (w !== 0) {\r\n return false;\r\n }\r\n }\r\n var distance;\r\n if (settings.vertical === true) {\r\n distance = endCoords.pageY - startCoords.pageY;\r\n } else {\r\n distance = endCoords.pageX - startCoords.pageX;\r\n }\r\n $this.touchEnd(distance);\r\n });\r\n }\r\n },\r\n build: function () {\r\n var $this = this;\r\n $this.initialStyle();\r\n if (this.doCss()) {\r\n\r\n if (settings.enableTouch === true) {\r\n $this.enableTouch();\r\n }\r\n if (settings.enableDrag === true) {\r\n $this.enableDrag();\r\n }\r\n }\r\n $this.pager();\r\n $this.controls();\r\n $this.keyPress();\r\n }\r\n };\r\n plugin.build();\r\n refresh.init = function () {\r\n refresh.chbreakpoint();\r\n if (settings.vertical === true) {\r\n if (settings.item > 1) {\r\n elSize = settings.verticalHeight;\r\n } else {\r\n elSize = $children.outerHeight();\r\n }\r\n $slide.css('height', elSize + 'px');\r\n } else {\r\n elSize = $slide.outerWidth();\r\n }\r\n if (settings.loop === true && settings.mode === 'slide') {\r\n refresh.clone();\r\n }\r\n refresh.calL();\r\n if (settings.mode === 'slide') {\r\n $el.removeClass('lSSlide');\r\n }\r\n if (settings.mode === 'slide') {\r\n refresh.calSW();\r\n refresh.sSW();\r\n }\r\n setTimeout(function () {\r\n if (settings.mode === 'slide') {\r\n $el.addClass('lSSlide');\r\n }\r\n }, 1000);\r\n if (settings.pager) {\r\n refresh.createPager();\r\n }\r\n if (settings.adaptiveHeight === true && settings.vertical === false) {\r\n $el.css('height', $children.eq(scene).outerHeight(true));\r\n }\r\n if (settings.adaptiveHeight === false) {\r\n if (settings.mode === 'slide') {\r\n if (settings.vertical === false) {\r\n plugin.setHeight($el, false);\r\n }else{\r\n plugin.auto();\r\n }\r\n } else {\r\n plugin.setHeight($el, true);\r\n }\r\n }\r\n if (settings.gallery === true) {\r\n plugin.slideThumb();\r\n }\r\n if (settings.mode === 'slide') {\r\n plugin.slide();\r\n }\r\n if (settings.autoWidth === false) {\r\n if ($children.length <= settings.item) {\r\n $slide.find('.lSAction').hide();\r\n } else {\r\n $slide.find('.lSAction').show();\r\n }\r\n } else {\r\n if ((refresh.calWidth(false) < elSize) && (w !== 0)) {\r\n $slide.find('.lSAction').hide();\r\n } else {\r\n $slide.find('.lSAction').show();\r\n }\r\n }\r\n };\r\n $el.goToPrevSlide = function () {\r\n if (scene > 0) {\r\n settings.onBeforePrevSlide.call(this, $el, scene);\r\n scene--;\r\n $el.mode(false);\r\n if (settings.gallery === true) {\r\n plugin.slideThumb();\r\n }\r\n } else {\r\n if (settings.loop === true) {\r\n settings.onBeforePrevSlide.call(this, $el, scene);\r\n if (settings.mode === 'fade') {\r\n var l = (length - 1);\r\n scene = parseInt(l / settings.slideMove);\r\n }\r\n $el.mode(false);\r\n if (settings.gallery === true) {\r\n plugin.slideThumb();\r\n }\r\n } else if (settings.slideEndAnimation === true) {\r\n $el.addClass('leftEnd');\r\n setTimeout(function () {\r\n $el.removeClass('leftEnd');\r\n }, 400);\r\n }\r\n }\r\n };\r\n $el.goToNextSlide = function () {\r\n var nextI = true;\r\n if (settings.mode === 'slide') {\r\n var _slideValue = plugin.slideValue();\r\n nextI = _slideValue < w - elSize - settings.slideMargin;\r\n }\r\n if (((scene * settings.slideMove) < length - settings.slideMove) && nextI) {\r\n settings.onBeforeNextSlide.call(this, $el, scene);\r\n scene++;\r\n $el.mode(false);\r\n if (settings.gallery === true) {\r\n plugin.slideThumb();\r\n }\r\n } else {\r\n if (settings.loop === true) {\r\n settings.onBeforeNextSlide.call(this, $el, scene);\r\n scene = 0;\r\n $el.mode(false);\r\n if (settings.gallery === true) {\r\n plugin.slideThumb();\r\n }\r\n } else if (settings.slideEndAnimation === true) {\r\n $el.addClass('rightEnd');\r\n setTimeout(function () {\r\n $el.removeClass('rightEnd');\r\n }, 400);\r\n }\r\n }\r\n };\r\n $el.mode = function (_touch) {\r\n if (settings.adaptiveHeight === true && settings.vertical === false) {\r\n $el.css('height', $children.eq(scene).outerHeight(true));\r\n }\r\n if (on === false) {\r\n if (settings.mode === 'slide') {\r\n if (plugin.doCss()) {\r\n $el.addClass('lSSlide');\r\n if (settings.speed !== '') {\r\n $slide.css('transition-duration', settings.speed + 'ms');\r\n }\r\n if (settings.cssEasing !== '') {\r\n $slide.css('transition-timing-function', settings.cssEasing);\r\n }\r\n }\r\n } else {\r\n if (plugin.doCss()) {\r\n if (settings.speed !== '') {\r\n $el.css('transition-duration', settings.speed + 'ms');\r\n }\r\n if (settings.cssEasing !== '') {\r\n $el.css('transition-timing-function', settings.cssEasing);\r\n }\r\n }\r\n }\r\n }\r\n if (!_touch) {\r\n settings.onBeforeSlide.call(this, $el, scene);\r\n }\r\n if (settings.mode === 'slide') {\r\n plugin.slide();\r\n } else {\r\n plugin.fade();\r\n }\r\n setTimeout(function () {\r\n if (!_touch) {\r\n settings.onAfterSlide.call(this, $el, scene);\r\n }\r\n }, settings.speed);\r\n on = true;\r\n };\r\n $el.play = function () {\r\n clearInterval(interval);\r\n $el.goToNextSlide();\r\n interval = setInterval(function () {\r\n $el.goToNextSlide();\r\n }, settings.pause);\r\n };\r\n $el.pause = function () {\r\n clearInterval(interval);\r\n };\r\n $el.refresh = function () {\r\n refresh.init();\r\n };\r\n $el.getCurrentSlideCount = function () {\r\n var sc = scene;\r\n if (settings.loop) {\r\n var ln = $slide.find('.lslide').length,\r\n cl = $el.find('.clone.left').length;\r\n if (scene <= cl - 1) {\r\n sc = ln + (scene - cl);\r\n } else if (scene >= (ln + cl)) {\r\n sc = scene - ln - cl;\r\n } else {\r\n sc = scene - cl;\r\n }\r\n }\r\n return sc + 1;\r\n }; \r\n $el.getTotalSlideCount = function () {\r\n return $slide.find('.lslide').length;\r\n };\r\n $el.goToSlide = function (s) {\r\n if (settings.loop) {\r\n scene = (s + $el.find('.clone.left').length - 1);\r\n } else {\r\n scene = s;\r\n }\r\n $el.mode(false);\r\n if (settings.gallery === true) {\r\n plugin.slideThumb();\r\n }\r\n };\r\n setTimeout(function () {\r\n settings.onSliderLoad.call(this, $el);\r\n }, 10);\r\n $(window).on('resize orientationchange', function (e) {\r\n setTimeout(function () {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n }\r\n refresh.init();\r\n }, 200);\r\n });\r\n return this;\r\n };\r\n}(jQuery));","/*!\n * jQuery JavaScript Library v3.6.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-08-26T17:52Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\t// trim whitespace for custom property (issue gh-4926)\n\t\tif ( isCustomProp ) {\n\n\t\t\t// rtrim treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" );\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('<div/>')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '<button type=\"button\">×</button>',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('<div/>');\n var $titleElement = $('<div/>');\n var $messageElement = $('<div/>');\n var $progressElement = $('<div/>');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) { //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n}));\n","/*! Backstretch - v2.1.18 - 2019-09-18\\n* Copyright (c) 2019 Scott Robbin;* Fork of improvements - by Daniel Cohen Gindi (danielgindi@gmail.com) Licensed MIT */!function(a,b,c){\"use strict\";function d(a){return m.hasOwnProperty(a)?a:\"cover\"}var e=/^.*(youtu\\.be\\/|youtube\\.com\\/v\\/|youtube\\.com\\/embed\\/|youtube\\.com\\/watch\\?v=|youtube\\.com\\/watch\\?.*\\&v=)([^#\\&\\?]*).*/i;a.fn.backstretch=function(d,e){var f=arguments;0===a(b).scrollTop()&&b.scrollTo(0,0);var g;return this.each(function(b){var h=a(this),i=h.data(\"backstretch\");if(i){if(\"string\"==typeof f[0]&&\"function\"==typeof i[f[0]]){var j=i[f[0]].apply(i,Array.prototype.slice.call(f,1));return j===i&&(j=c),void(j!==c&&(g=g||[],g[b]=j))}e=a.extend(i.options,e),\"object\"==typeof i&&\"destroy\"in i&&i.destroy(!0)}if(!d||d&&0===d.length){var k=h.css(\"background-image\");k&&\"none\"!==k?d=[{url:h.css(\"backgroundImage\").replace(/url\\(|\\)|\"|'/g,\"\")}]:a.error(\"No images were supplied for Backstretch, or element must have a CSS-defined background image.\")}i=new n(this,d,e||{}),h.data(\"backstretch\",i)}),g?1===g.length?g[0]:g:this},a.backstretch=function(b,c){return a(\"body\").backstretch(b,c).data(\"backstretch\")},a.expr[\":\"].backstretch=function(b){return a(b).data(\"backstretch\")!==c},a.fn.backstretch.defaults={duration:5e3,transition:\"fade\",transitionDuration:0,animateFirst:!0,alignX:.5,alignY:.5,paused:!1,start:0,preload:2,preloadSize:1,resolutionRefreshRate:2500,resolutionChangeRatioThreshold:.1};var f={wrap:{left:0,top:0,overflow:\"hidden\",margin:0,padding:0,height:\"100%\",width:\"100%\",zIndex:-999999},itemWrapper:{position:\"absolute\",display:\"none\",margin:0,padding:0,border:\"none\",width:\"100%\",height:\"100%\",zIndex:-999999},item:{position:\"absolute\",margin:0,padding:0,border:\"none\",width:\"100%\",height:\"100%\",maxWidth:\"none\"}},g=function(){var c=function(a){for(var b=1;b<a.length;b++){for(var c=a[b],d=b;a[d-1]&&parseInt(a[d-1].width,10)>parseInt(c.width,10);)a[d]=a[d-1],--d;a[d]=c}return a},d=function(a,c,d){for(var e,f,g=b.devicePixelRatio||1,h=q(),i=(r(),c>a?\"portrait\":a>c?\"landscape\":\"square\"),j=0,k=0;k<d.length&&(f=d[k],\"string\"==typeof f&&(f=d[k]={url:f}),f.pixelRatio&&\"auto\"!==f.pixelRatio&&parseFloat(f.pixelRatio)!==g||f.deviceOrientation&&f.deviceOrientation!==h||f.windowOrientation&&f.windowOrientation!==h||f.orientation&&f.orientation!==i||(j=k,e=a,\"auto\"===f.pixelRatio&&(a*=g),!(f.width>=e)));k++);return d[Math.min(k,j)]},e=function(a,b){if(\"string\"==typeof a)a=a.replace(/{{(width|height)}}/g,b);else if(a instanceof Array)for(var c=0;c<a.length;c++)a[c].src?a[c].src=e(a[c].src,b):a[c]=e(a[c],b);return a};return function(b,f){for(var g=b.width(),h=b.height(),i=[],j=function(a,b){return\"width\"===b?g:\"height\"===b?h:a},k=0;k<f.length;k++)if(a.isArray(f[k])){f[k]=c(f[k]);var l=d(g,h,f[k]);i.push(l)}else{\"string\"==typeof f[k]&&(f[k]={url:f[k]});var m=a.extend({},f[k]);m.url=e(m.url,j),i.push(m)}return i}}(),h=function(a){return e.test(a.url)||a.isVideo},i=function(b,c,d,e,f){var g=[],i=function(a){for(var b=0;b<g.length;b++)if(g[b].src===a.src)return g[b];return g.push(a),a},j=function(a,b,c){\"function\"==typeof b&&b.call(a,c)};return function b(c,d,e,f,g){if(\"undefined\"!=typeof c){a.isArray(c)||(c=[c]),arguments.length<5&&\"function\"==typeof arguments[arguments.length-1]&&(g=arguments[arguments.length-1]),d=\"function\"!=typeof d&&d?d:0,e=\"function\"==typeof e||!e||e<0?c.length:Math.min(e,c.length),f=\"function\"!=typeof f&&f?f:1,d>=c.length&&(d=0,e=0),f<0&&(f=e),f=Math.min(f,e);var k=c.slice(d+f,e-f);if(c=c.slice(d,f),e=c.length,!e)return void j(c,g,!0);for(var l,m=0,n=function(){m++,m===e&&(j(c,g,!k),b(k,0,0,f,g))},o=0;o<c.length;o++)h(c[o])||(l=new Image,l.src=c[o].url,l=i(l),l.complete?n():a(l).on(\"load error\",n))}}}(),j=function(b){for(var c=[],d=0;d<b.length;d++)\"string\"==typeof b[d]?c.push({url:b[d]}):a.isArray(b[d])?c.push(j(b[d])):c.push(k(b[d]));return c},k=function(a,e){return(a.centeredX||a.centeredY)&&(b.console&&b.console.log&&b.console.log(\"jquery.backstretch: `centeredX`/`centeredY` is deprecated, please use `alignX`/`alignY`\"),a.centeredX&&(a.alignX=.5),a.centeredY&&(a.alignY=.5)),a.speed!==c&&(b.console&&b.console.log&&b.console.log(\"jquery.backstretch: `speed` is deprecated, please use `transitionDuration`\"),a.transitionDuration=a.speed,a.transition=\"fade\"),a.resolutionChangeRatioTreshold!==c&&(b.console.log(\"jquery.backstretch: `treshold` is a typo!\"),a.resolutionChangeRatioThreshold=a.resolutionChangeRatioTreshold),a.fadeFirst!==c&&(a.animateFirst=a.fadeFirst),a.fade!==c&&(a.transitionDuration=a.fade,a.transition=\"fade\"),a.scale&&(a.scale=d(a.scale)),l(a)},l=function(a,b){return\"left\"===a.alignX?a.alignX=0:\"center\"===a.alignX?a.alignX=.5:\"right\"===a.alignX?a.alignX=1:(a.alignX!==c||b)&&(a.alignX=parseFloat(a.alignX),isNaN(a.alignX)&&(a.alignX=.5)),\"top\"===a.alignY?a.alignY=0:\"center\"===a.alignY?a.alignY=.5:\"bottom\"===a.alignY?a.alignY=1:(a.alignX!==c||b)&&(a.alignY=parseFloat(a.alignY),isNaN(a.alignY)&&(a.alignY=.5)),a},m={cover:\"cover\",fit:\"fit\",\"fit-smaller\":\"fit-smaller\",fill:\"fill\"},n=function(c,d,e){this.options=a.extend({},a.fn.backstretch.defaults,e||{}),this.firstShow=!0,k(this.options,!0),this.images=j(a.isArray(d)?d:[d]),this.options.paused&&(this.paused=!0),this.options.start>=this.images.length&&(this.options.start=this.images.length-1),this.options.start<0&&(this.options.start=0),this.isBody=c===document.body;var h=a(b);this.$container=a(c),this.$root=this.isBody?s?h:a(document):this.$container,this.originalImages=this.images,this.images=g(this.options.alwaysTestWindowResolution?h:this.$root,this.originalImages),i(this.images,this.options.start||0,this.options.preload||1);var l=this.$container.children(\".backstretch\").first();if(this.$wrap=l.length?l:a('<div class=\"backstretch\"></div>').css(this.options.bypassCss?{}:f.wrap).appendTo(this.$container),!this.options.bypassCss){if(!this.isBody){var m=this.$container.css(\"position\"),n=this.$container.css(\"zIndex\");this.$container.css({position:\"static\"===m?\"relative\":m,zIndex:\"auto\"===n?0:n}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&s?\"fixed\":\"absolute\"})}this.index=this.options.start,this.show(this.index),h.on(\"resize.backstretch\",a.proxy(this.resize,this)).on(\"orientationchange.backstretch\",a.proxy(function(){this.isBody&&0===b.pageYOffset&&(b.scrollTo(0,1),this.resize())},this))},o=function(b){var d=b.transition||\"fade\";\"string\"==typeof d&&d.indexOf(\"|\")>-1&&(d=d.split(\"|\")),d instanceof Array&&(d=d[Math.round(Math.random()*(d.length-1))]);var e=b.new,f=b.old?b.old:a([]);switch(d.toString().toLowerCase()){default:case\"fade\":e.fadeIn({duration:b.duration,complete:b.complete,easing:b.easing||c});break;case\"fadeinout\":case\"fade_in_out\":var g=function(){e.fadeIn({duration:b.duration/2,complete:b.complete,easing:b.easing||c})};f.length?f.fadeOut({duration:b.duration/2,complete:g,easing:b.easing||c}):g();break;case\"pushleft\":case\"push_left\":case\"pushright\":case\"push_right\":case\"pushup\":case\"push_up\":case\"pushdown\":case\"push_down\":case\"coverleft\":case\"cover_left\":case\"coverright\":case\"cover_right\":case\"coverup\":case\"cover_up\":case\"coverdown\":case\"cover_down\":var h=d.match(/^(cover|push)_?(.*)$/),i=\"left\"===h[2]?\"right\":\"right\"===h[2]?\"left\":\"down\"===h[2]?\"top\":\"up\"===h[2]?\"bottom\":\"right\",j={display:\"\"},k={};if(j[i]=\"-100%\",k[i]=0,e.css(j).animate(k,{duration:b.duration,complete:function(){e.css(i,\"\"),b.complete.apply(this,arguments)},easing:b.easing||c}),\"push\"===h[1]&&f.length){var l={};l[i]=\"100%\",f.animate(l,{duration:b.duration,complete:function(){f.css(\"display\",\"none\")},easing:b.easing||c})}}};n.prototype={resize:function(){try{var e=this.options.alwaysTestWindowResolution?a(b):this.$root,f=e.width(),h=e.height(),j=f/(this._lastResizeContainerWidth||0),k=h/(this._lastResizeContainerHeight||0),l=this.options.resolutionChangeRatioThreshold||0;if((f!==this._lastResizeContainerWidth||h!==this._lastResizeContainerHeight)&&(Math.abs(j-1)>=l||isNaN(j)||Math.abs(k-1)>=l||isNaN(k))&&(this._lastResizeContainerWidth=f,this._lastResizeContainerHeight=h,this.images=g(e,this.originalImages),this.options.preload&&i(this.images,(this.index+1)%this.images.length,this.options.preload),1===this.images.length&&this._currentImage.url!==this.images[0].url)){var m=this;clearTimeout(m._selectAnotherResolutionTimeout),m._selectAnotherResolutionTimeout=setTimeout(function(){m.show(0)},this.options.resolutionRefreshRate)}var n,o,p={left:0,top:0,right:\"auto\",bottom:\"auto\"},q=this.isBody?this.$root.width():this.$root.innerWidth(),r=this.isBody?b.innerHeight?b.innerHeight:this.$root.height():this.$root.innerHeight(),s=this.$itemWrapper.data(\"width\"),t=this.$itemWrapper.data(\"height\"),u=s/t||1,v=this._currentImage.alignX===c?this.options.alignX:this._currentImage.alignX,w=this._currentImage.alignY===c?this.options.alignY:this._currentImage.alignY,x=d(this._currentImage.scale||this.options.scale);if(\"fit\"===x||\"fit-smaller\"===x){if(n=s,o=t,n>q||o>r||\"fit-smaller\"===x){var y=q/r;y>u?(n=Math.floor(r*u),o=r):y<u?(n=q,o=Math.floor(q/u)):(n=q,o=r)}}else\"fill\"===x?(n=q,o=r):(n=Math.max(r*u,q),o=Math.max(n/u,r));p.top=-(o-r)*w,p.left=-(n-q)*v,p.width=n,p.height=o,this.options.bypassCss||this.$wrap.css({width:q,height:r}).find(\">.backstretch-item\").not(\".deleteable\").each(function(){var b=a(this);b.find(\"img,video,iframe\").css(p)});var z=a.Event(\"backstretch.resize\",{relatedTarget:this.$container[0]});this.$container.trigger(z,this)}catch(a){}return this},show:function(b,d){if(!(Math.abs(b)>this.images.length-1)){var e=this,g=e.$wrap.find(\">.backstretch-item\").addClass(\"deleteable\"),i=e.videoWrapper,j={relatedTarget:e.$container[0]};e.$container.trigger(a.Event(\"backstretch.before\",j),[e,b]),this.index=b;var k=e.images[b];clearTimeout(e._cycleTimeout),delete e.videoWrapper;var l=h(k);return l?(e.videoWrapper=new p(k),e.$item=e.videoWrapper.$video.css(\"pointer-events\",\"none\")):e.$item=a(\"<img />\"),e.$itemWrapper=a('<div class=\"backstretch-item\">').append(e.$item),this.options.bypassCss?e.$itemWrapper.css({display:\"none\"}):(e.$itemWrapper.css(f.itemWrapper),e.$item.css(f.item)),e.$item.bind(l?\"canplay\":\"load\",function(f){var h=a(this),k=h.parent(),m=k.data(\"options\");d&&(m=a.extend({},m,d));var n=this.naturalWidth||this.videoWidth||this.width,p=this.naturalHeight||this.videoHeight||this.height;k.data(\"width\",n).data(\"height\",p);var q=function(a){return m[a]!==c?m[a]:e.options[a]},r=q(\"transition\"),s=q(\"transitionEasing\"),t=q(\"transitionDuration\"),u=function(){i&&(i.stop(),i.destroy()),g.remove(),!e.paused&&e.images.length>1&&e.cycle(),e.options.bypassCss||e.isBody||e.$container.css(\"background-image\",\"none\"),a([\"after\",\"show\"]).each(function(){e.$container.trigger(a.Event(\"backstretch.\"+this,j),[e,b])}),l&&e.videoWrapper.play()};e.firstShow&&!e.options.animateFirst||!t||!r?(k.show(),u()):o({new:k,old:g,transition:r,duration:t,easing:s,complete:u}),e.firstShow=!1,e.resize()}),e.$itemWrapper.appendTo(e.$wrap),e.$item.attr(\"alt\",k.alt||\"\"),e.$itemWrapper.data(\"options\",k),l||e.$item.attr(\"src\",k.url),e._currentImage=k,e}},current:function(){return this.index},next:function(){var a=Array.prototype.slice.call(arguments,0);return a.unshift(this.index<this.images.length-1?this.index+1:0),this.show.apply(this,a)},prev:function(){var a=Array.prototype.slice.call(arguments,0);return a.unshift(0===this.index?this.images.length-1:this.index-1),this.show.apply(this,a)},pause:function(){return this.paused=!0,this.videoWrapper&&this.videoWrapper.pause(),this},resume:function(){return this.paused=!1,this.videoWrapper&&this.videoWrapper.play(),this.cycle(),this},cycle:function(){if(this.images.length>1){clearTimeout(this._cycleTimeout);var b=this._currentImage&&this._currentImage.duration||this.options.duration,c=h(this._currentImage),d=function(){this.$item.off(\".cycle\"),this.paused||this.next()};if(c){if(!this._currentImage.loop){var e=0;this.$item.on(\"playing.cycle\",function(){var b=a(this).data(\"player\");clearTimeout(e),e=setTimeout(function(){b.pause(),b.$video.trigger(\"ended\")},1e3*(b.getDuration()-b.getCurrentTime()))}).on(\"ended.cycle\",function(){clearTimeout(e)})}this.$item.on(\"error.cycle initerror.cycle\",a.proxy(d,this))}c&&!this._currentImage.duration?this.$item.on(\"ended.cycle\",a.proxy(d,this)):this._cycleTimeout=setTimeout(a.proxy(d,this),b)}return this},destroy:function(c){a(b).off(\"resize.backstretch orientationchange.backstretch\"),this.videoWrapper&&this.videoWrapper.destroy(),clearTimeout(this._cycleTimeout),c||this.$wrap.remove(),this.$container.removeData(\"backstretch\")}};var p=function(){this.init.apply(this,arguments)};p.prototype.init=function(d){var f,g=this,h=function(){g.$video=f,g.video=f[0]},i=\"video\";if(d.url instanceof Array||!e.test(d.url)||(i=\"youtube\"),g.type=i,\"youtube\"===i){p.loadYoutubeAPI(),g.ytId=d.url.match(e)[2];var j=\"https://www.youtube.com/embed/\"+g.ytId+\"?rel=0&autoplay=0&showinfo=0&controls=0&modestbranding=1&cc_load_policy=0&disablekb=1&iv_load_policy=3&loop=0&enablejsapi=1&origin=\"+encodeURIComponent(b.location.origin);g.__ytStartMuted=!!d.mute||d.mute===c,f=a(\"<iframe />\").attr({src_to_load:j}).css({border:0,margin:0,padding:0}).data(\"player\",g),d.loop&&f.on(\"ended.loop\",function(){g.__manuallyStopped||g.play()}),g.ytReady=!1,h(),b.YT&&b.YT.loaded?(g._initYoutube(),f.trigger(\"initsuccess\")):a(b).one(\"youtube_api_load\",function(){g._initYoutube(),f.trigger(\"initsuccess\")})}else{f=a(\"<video>\").prop(\"autoplay\",!1).prop(\"controls\",!1).prop(\"loop\",!!d.loop).prop(\"muted\",!!d.mute||d.mute===c).prop(\"preload\",\"auto\").prop(\"poster\",d.poster||\"\");for(var k=d.url instanceof Array?d.url:[d.url],l=0;l<k.length;l++){var m=k[l];\"string\"==typeof m&&(m={src:m}),a(\"<source>\").attr(\"src\",m.src).attr(\"type\",m.type||null).appendTo(f)}f[0].canPlayType&&k.length?f.trigger(\"initsuccess\"):f.trigger(\"initerror\"),h()}},p.prototype._initYoutube=function(){var c=this,d=b.YT;c.$video.attr(\"src\",c.$video.attr(\"src_to_load\")).removeAttr(\"src_to_load\");var e=!!c.$video[0].parentNode;if(!e){var f=a(\"<div>\").css(\"display\",\"none !important\").appendTo(document.body);c.$video.appendTo(f)}var g=new d.Player(c.video,{events:{onReady:function(){c.__ytStartMuted&&g.mute(),e||(c.$video[0].parentNode===f[0]&&c.$video.detach(),f.remove()),c.ytReady=!0,c._updateYoutubeSize(),c.$video.trigger(\"canplay\")},onStateChange:function(a){switch(a.data){case d.PlayerState.PLAYING:c.$video.trigger(\"playing\");break;case d.PlayerState.ENDED:c.$video.trigger(\"ended\");break;case d.PlayerState.PAUSED:c.$video.trigger(\"pause\");break;case d.PlayerState.BUFFERING:c.$video.trigger(\"waiting\");break;case d.PlayerState.CUED:c.$video.trigger(\"canplay\")}},onPlaybackQualityChange:function(){c._updateYoutubeSize(),c.$video.trigger(\"resize\")},onError:function(a){c.hasError=!0,c.$video.trigger({type:\"error\",error:a})}}});return c.ytPlayer=g,c},p.prototype._updateYoutubeSize=function(){var a=this;switch(a.ytPlayer.getPlaybackQuality()||\"medium\"){case\"small\":a.video.videoWidth=426,a.video.videoHeight=240;break;case\"medium\":a.video.videoWidth=640,a.video.videoHeight=360;break;default:case\"large\":a.video.videoWidth=854,a.video.videoHeight=480;break;case\"hd720\":a.video.videoWidth=1280,a.video.videoHeight=720;break;case\"hd1080\":a.video.videoWidth=1920,a.video.videoHeight=1080;break;case\"highres\":a.video.videoWidth=2560,a.video.videoHeight=1440}return a},p.prototype.play=function(){var a=this;return a.__manuallyStopped=!1,\"youtube\"===a.type?a.ytReady&&(a.$video.trigger(\"play\"),a.ytPlayer.playVideo()):a.video.play(),a},p.prototype.pause=function(){var a=this;return a.__manuallyStopped=!1,\"youtube\"===a.type?a.ytReady&&a.ytPlayer.pauseVideo():a.video.pause(),a},p.prototype.stop=function(){var a=this;return a.__manuallyStopped=!0,\"youtube\"===a.type?a.ytReady&&(a.ytPlayer.pauseVideo(),a.ytPlayer.seekTo(0)):(a.video.pause(),a.video.currentTime=0),a},p.prototype.destroy=function(){var a=this;return a.ytPlayer&&a.ytPlayer.destroy(),a.$video.remove(),a},p.prototype.getCurrentTime=function(a){var b=this;return\"youtube\"!==b.type?b.video.currentTime:b.ytReady?b.ytPlayer.getCurrentTime():0},p.prototype.setCurrentTime=function(a){var b=this;return\"youtube\"===b.type?b.ytReady&&b.ytPlayer.seekTo(a,!0):b.video.currentTime=a,b},p.prototype.getDuration=function(){var a=this;return\"youtube\"!==a.type?a.video.duration:a.ytReady?a.ytPlayer.getDuration():0},p.loadYoutubeAPI=function(){b.YT&&b.__yt_load_event_interval__||(b.YT||a(\"script[src*=www\\\\.youtube\\\\.com\\\\/iframe_api]\").length||a('<script type=\"text/javascript\" src=\"https://www.youtube.com/iframe_api\">').appendTo(\"body\"),b.__yt_load_event_interval__=setInterval(function(){b.YT&&b.YT.loaded&&(a(b).trigger(\"youtube_api_load\"),clearTimeout(b.__yt_load_event_interval__),delete b.__yt_load_event_interval__)},50))};var q=function(){if(\"matchMedia\"in b){if(b.matchMedia(\"(orientation: portrait)\").matches)return\"portrait\";if(b.matchMedia(\"(orientation: landscape)\").matches)return\"landscape\"}return screen.height>screen.width?\"portrait\":\"landscape\"},r=function(){return b.innerHeight>b.innerWidth?\"portrait\":b.innerWidth>b.innerHeight?\"landscape\":\"square\"},s=function(){var a=navigator.userAgent,c=navigator.platform,d=a.match(/AppleWebKit\\/([0-9]+)/),e=!!d&&d[1],f=a.match(/Fennec\\/([0-9]+)/),g=!!f&&f[1],h=a.match(/Opera Mobi\\/([0-9]+)/),i=!!h&&h[1],j=a.match(/MSIE ([0-9]+)/),k=!!j&&j[1];return!((c.indexOf(\"iPhone\")>-1||c.indexOf(\"iPad\")>-1||c.indexOf(\"iPod\")>-1)&&e&&e<534||b.operamini&&\"[object OperaMini]\"==={}.toString.call(b.operamini)||h&&i<7458||a.indexOf(\"Android\")>-1&&e&&e<533||g&&g<6||\"palmGetResource\"in b&&e&&e<534||a.indexOf(\"MeeGo\")>-1&&a.indexOf(\"NokiaBrowser/8.5.0\")>-1||k&&k<=6)}()}(jQuery,window);","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v16.14.0\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v16.14.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.14.0\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.14.0\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","module.exports = true;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = require(\"core-js/library/fn/object/assign\");","import _Object$assign from \"@babel/runtime-corejs2/core-js/object/assign\";\nexport default function _extends() {\n _extends = _Object$assign ? _Object$assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","module.exports = require(\"core-js/library/fn/object/create\");","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","module.exports = require(\"core-js/library/fn/object/set-prototype-of\");","import _Object$setPrototypeOf from \"@babel/runtime-corejs2/core-js/object/set-prototype-of\";\nexport default function _setPrototypeOf(o, p) {\n _setPrototypeOf = _Object$setPrototypeOf ? _Object$setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _Object$create from \"@babel/runtime-corejs2/core-js/object/create\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = _Object$create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n","module.exports = require(\"core-js/library/fn/object/keys\");","import _Object$keys from \"@babel/runtime-corejs2/core-js/object/keys\";\nexport default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = _Object$keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","require('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n","module.exports = require(\"core-js/library/fn/object/entries\");","export var Size = {\n LARGE: 'large',\n SMALL: 'small',\n XSMALL: 'xsmall'\n};\nexport var SIZE_MAP = {\n large: 'lg',\n medium: 'md',\n small: 'sm',\n xsmall: 'xs',\n lg: 'lg',\n md: 'md',\n sm: 'sm',\n xs: 'xs'\n};\nexport var DEVICE_SIZES = ['lg', 'md', 'sm', 'xs'];\nexport var State = {\n SUCCESS: 'success',\n WARNING: 'warning',\n DANGER: 'danger',\n INFO: 'info'\n};\nexport var Style = {\n DEFAULT: 'default',\n PRIMARY: 'primary',\n LINK: 'link',\n INVERSE: 'inverse'\n};","import _Object$entries from \"@babel/runtime-corejs2/core-js/object/entries\";\nimport _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\n// TODO: The publicly exposed parts of this should be in lib/BootstrapUtils.\nimport invariant from 'invariant';\nimport PropTypes from 'prop-types';\nimport { SIZE_MAP } from './StyleConfig';\n\nfunction curry(fn) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var last = args[args.length - 1];\n\n if (typeof last === 'function') {\n return fn.apply(void 0, args);\n }\n\n return function (Component) {\n return fn.apply(void 0, args.concat([Component]));\n };\n };\n}\n\nexport function prefix(props, variant) {\n var bsClass = (props.bsClass || '').trim();\n !(bsClass != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A `bsClass` prop is required for this component') : invariant(false) : void 0;\n return bsClass + (variant ? \"-\" + variant : '');\n}\nexport var bsClass = curry(function (defaultClass, Component) {\n var propTypes = Component.propTypes || (Component.propTypes = {});\n var defaultProps = Component.defaultProps || (Component.defaultProps = {});\n propTypes.bsClass = PropTypes.string;\n defaultProps.bsClass = defaultClass;\n return Component;\n});\nexport var bsStyles = curry(function (styles, defaultStyle, Component) {\n if (typeof defaultStyle !== 'string') {\n Component = defaultStyle;\n defaultStyle = undefined;\n }\n\n var existing = Component.STYLES || [];\n var propTypes = Component.propTypes || {};\n styles.forEach(function (style) {\n if (existing.indexOf(style) === -1) {\n existing.push(style);\n }\n });\n var propType = PropTypes.oneOf(existing); // expose the values on the propType function for documentation\n\n Component.STYLES = existing;\n propType._values = existing;\n Component.propTypes = _extends({}, propTypes, {\n bsStyle: propType\n });\n\n if (defaultStyle !== undefined) {\n var defaultProps = Component.defaultProps || (Component.defaultProps = {});\n defaultProps.bsStyle = defaultStyle;\n }\n\n return Component;\n});\nexport var bsSizes = curry(function (sizes, defaultSize, Component) {\n if (typeof defaultSize !== 'string') {\n Component = defaultSize;\n defaultSize = undefined;\n }\n\n var existing = Component.SIZES || [];\n var propTypes = Component.propTypes || {};\n sizes.forEach(function (size) {\n if (existing.indexOf(size) === -1) {\n existing.push(size);\n }\n });\n var values = [];\n existing.forEach(function (size) {\n var mappedSize = SIZE_MAP[size];\n\n if (mappedSize && mappedSize !== size) {\n values.push(mappedSize);\n }\n\n values.push(size);\n });\n var propType = PropTypes.oneOf(values);\n propType._values = values; // expose the values on the propType function for documentation\n\n Component.SIZES = existing;\n Component.propTypes = _extends({}, propTypes, {\n bsSize: propType\n });\n\n if (defaultSize !== undefined) {\n if (!Component.defaultProps) {\n Component.defaultProps = {};\n }\n\n Component.defaultProps.bsSize = defaultSize;\n }\n\n return Component;\n});\nexport function getClassSet(props) {\n var _classes;\n\n var classes = (_classes = {}, _classes[prefix(props)] = true, _classes);\n\n if (props.bsSize) {\n var bsSize = SIZE_MAP[props.bsSize] || props.bsSize;\n classes[prefix(props, bsSize)] = true;\n }\n\n if (props.bsStyle) {\n classes[prefix(props, props.bsStyle)] = true;\n }\n\n return classes;\n}\n\nfunction getBsProps(props) {\n return {\n bsClass: props.bsClass,\n bsSize: props.bsSize,\n bsStyle: props.bsStyle,\n bsRole: props.bsRole\n };\n}\n\nfunction isBsProp(propName) {\n return propName === 'bsClass' || propName === 'bsSize' || propName === 'bsStyle' || propName === 'bsRole';\n}\n\nexport function splitBsProps(props) {\n var elementProps = {};\n\n _Object$entries(props).forEach(function (_ref) {\n var propName = _ref[0],\n propValue = _ref[1];\n\n if (!isBsProp(propName)) {\n elementProps[propName] = propValue;\n }\n });\n\n return [getBsProps(props), elementProps];\n}\nexport function splitBsPropsAndOmit(props, omittedPropNames) {\n var isOmittedProp = {};\n omittedPropNames.forEach(function (propName) {\n isOmittedProp[propName] = true;\n });\n var elementProps = {};\n\n _Object$entries(props).forEach(function (_ref2) {\n var propName = _ref2[0],\n propValue = _ref2[1];\n\n if (!isBsProp(propName) && !isOmittedProp[propName]) {\n elementProps[propName] = propValue;\n }\n });\n\n return [getBsProps(props), elementProps];\n}\n/**\n * Add a style variant to a Component. Mutates the propTypes of the component\n * in order to validate the new variant.\n */\n\nexport function addStyle(Component) {\n for (var _len2 = arguments.length, styleVariant = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n styleVariant[_key2 - 1] = arguments[_key2];\n }\n\n bsStyles(styleVariant)(Component);\n}\nexport var _curry = curry;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","module.exports = require(\"core-js/library/fn/object/values\");","import _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nvar propTypes = {\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func\n};\nvar defaultProps = {\n label: 'Close'\n};\n\nvar CloseButton =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CloseButton, _React$Component);\n\n function CloseButton() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = CloseButton.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n label = _this$props.label,\n onClick = _this$props.onClick;\n return React.createElement(\"button\", {\n type: \"button\",\n className: \"close\",\n onClick: onClick\n }, React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, \"\\xD7\"), React.createElement(\"span\", {\n className: \"sr-only\"\n }, label));\n };\n\n return CloseButton;\n}(React.Component);\n\nCloseButton.propTypes = propTypes;\nCloseButton.defaultProps = defaultProps;\nexport default CloseButton;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactIs = require('react-is');\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction elementType(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (_react2.default.isValidElement(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`,expected an element type (a string ') + ', component class, or function component).');\n }\n\n if (!(0, _reactIs.isValidElementType)(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + ', component class, or function component).');\n }\n\n return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(elementType);\nmodule.exports = exports['default'];","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nfunction createChainedFunction() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n return funcs.filter(function (f) {\n return f != null;\n }).reduce(function (acc, f) {\n if (typeof f !== 'function') {\n throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');\n }\n\n if (acc === null) {\n return f;\n }\n\n return function chainedFunction() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n acc.apply(this, args);\n f.apply(this, args);\n };\n }, null);\n}\n\nexport default createChainedFunction;","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport createChainedFunction from './utils/createChainedFunction';\nvar propTypes = {\n href: PropTypes.string,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n disabled: PropTypes.bool,\n role: PropTypes.string,\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * this is sort of silly but needed for Button\n */\n componentClass: elementType\n};\nvar defaultProps = {\n componentClass: 'a'\n};\n\nfunction isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * There are situations due to browser quirks or Bootstrap CSS where\n * an anchor tag is needed, when semantically a button tag is the\n * better choice. SafeAnchor ensures that when an anchor is used like a\n * button its accessible. It also emulates input `disabled` behavior for\n * links, which is usually desirable for Buttons, NavItems, MenuItems, etc.\n */\n\n\nvar SafeAnchor =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(SafeAnchor, _React$Component);\n\n function SafeAnchor(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n return _this;\n }\n\n var _proto = SafeAnchor.prototype;\n\n _proto.handleClick = function handleClick(event) {\n var _this$props = this.props,\n disabled = _this$props.disabled,\n href = _this$props.href,\n onClick = _this$props.onClick;\n\n if (disabled || isTrivialHref(href)) {\n event.preventDefault();\n }\n\n if (disabled) {\n event.stopPropagation();\n return;\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n if (event.key === ' ') {\n event.preventDefault();\n this.handleClick(event);\n }\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n Component = _this$props2.componentClass,\n disabled = _this$props2.disabled,\n onKeyDown = _this$props2.onKeyDown,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"componentClass\", \"disabled\", \"onKeyDown\"]);\n\n if (isTrivialHref(props.href)) {\n props.role = props.role || 'button'; // we want to make sure there is a href attribute on the node\n // otherwise, the cursor incorrectly styled (except with role='button')\n\n props.href = props.href || '#';\n }\n\n if (disabled) {\n props.tabIndex = -1;\n props.style = _extends({\n pointerEvents: 'none'\n }, props.style);\n }\n\n return React.createElement(Component, _extends({}, props, {\n onClick: this.handleClick,\n onKeyDown: createChainedFunction(this.handleKeyDown, onKeyDown)\n }));\n };\n\n return SafeAnchor;\n}(React.Component);\n\nSafeAnchor.propTypes = propTypes;\nSafeAnchor.defaultProps = defaultProps;\nexport default SafeAnchor;","import _Object$values from \"@babel/runtime-corejs2/core-js/object/values\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport { bsClass, bsSizes, bsStyles, getClassSet, prefix, splitBsProps } from './utils/bootstrapUtils';\nimport { Size, State, Style } from './utils/StyleConfig';\nimport SafeAnchor from './SafeAnchor';\nvar propTypes = {\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n block: PropTypes.bool,\n onClick: PropTypes.func,\n componentClass: elementType,\n href: PropTypes.string,\n\n /**\n * Defines HTML button type attribute\n * @defaultValue 'button'\n */\n type: PropTypes.oneOf(['button', 'reset', 'submit'])\n};\nvar defaultProps = {\n active: false,\n block: false,\n disabled: false\n};\n\nvar Button =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Button, _React$Component);\n\n function Button() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Button.prototype;\n\n _proto.renderAnchor = function renderAnchor(elementProps, className) {\n return React.createElement(SafeAnchor, _extends({}, elementProps, {\n className: classNames(className, elementProps.disabled && 'disabled')\n }));\n };\n\n _proto.renderButton = function renderButton(_ref, className) {\n var componentClass = _ref.componentClass,\n elementProps = _objectWithoutPropertiesLoose(_ref, [\"componentClass\"]);\n\n var Component = componentClass || 'button';\n return React.createElement(Component, _extends({}, elementProps, {\n type: elementProps.type || 'button',\n className: className\n }));\n };\n\n _proto.render = function render() {\n var _extends2;\n\n var _this$props = this.props,\n active = _this$props.active,\n block = _this$props.block,\n className = _this$props.className,\n props = _objectWithoutPropertiesLoose(_this$props, [\"active\", \"block\", \"className\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = _extends({}, getClassSet(bsProps), (_extends2 = {\n active: active\n }, _extends2[prefix(bsProps, 'block')] = block, _extends2));\n\n var fullClassName = classNames(className, classes);\n\n if (elementProps.href) {\n return this.renderAnchor(elementProps, fullClassName);\n }\n\n return this.renderButton(elementProps, fullClassName);\n };\n\n return Button;\n}(React.Component);\n\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\nexport default bsClass('btn', bsSizes([Size.LARGE, Size.SMALL, Size.XSMALL], bsStyles(_Object$values(State).concat([Style.DEFAULT, Style.PRIMARY, Style.LINK]), Style.DEFAULT, Button)));","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport all from 'prop-types-extra/lib/all';\nimport Button from './Button';\nimport { bsClass, getClassSet, prefix, splitBsProps } from './utils/bootstrapUtils';\nvar propTypes = {\n vertical: PropTypes.bool,\n justified: PropTypes.bool,\n\n /**\n * Display block buttons; only useful when used with the \"vertical\" prop.\n * @type {bool}\n */\n block: all(PropTypes.bool, function (_ref) {\n var block = _ref.block,\n vertical = _ref.vertical;\n return block && !vertical ? new Error('`block` requires `vertical` to be set to have any effect') : null;\n })\n};\nvar defaultProps = {\n block: false,\n justified: false,\n vertical: false\n};\n\nvar ButtonGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ButtonGroup, _React$Component);\n\n function ButtonGroup() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ButtonGroup.prototype;\n\n _proto.render = function render() {\n var _extends2;\n\n var _this$props = this.props,\n block = _this$props.block,\n justified = _this$props.justified,\n vertical = _this$props.vertical,\n className = _this$props.className,\n props = _objectWithoutPropertiesLoose(_this$props, [\"block\", \"justified\", \"vertical\", \"className\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = _extends({}, getClassSet(bsProps), (_extends2 = {}, _extends2[prefix(bsProps)] = !vertical, _extends2[prefix(bsProps, 'vertical')] = vertical, _extends2[prefix(bsProps, 'justified')] = justified, _extends2[prefix(Button.defaultProps, 'block')] = block, _extends2));\n\n return React.createElement(\"div\", _extends({}, elementProps, {\n className: classNames(className, classes)\n }));\n };\n\n return ButtonGroup;\n}(React.Component);\n\nButtonGroup.propTypes = propTypes;\nButtonGroup.defaultProps = defaultProps;\nexport default bsClass('btn-group', ButtonGroup);","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar transform = 'transform';\nexports.transform = transform;\nvar prefix, transitionEnd, animationEnd;\nexports.animationEnd = animationEnd;\nexports.transitionEnd = transitionEnd;\nvar transitionProperty, transitionDuration, transitionTiming, transitionDelay;\nexports.transitionDelay = transitionDelay;\nexports.transitionTiming = transitionTiming;\nexports.transitionDuration = transitionDuration;\nexports.transitionProperty = transitionProperty;\nvar animationName, animationDuration, animationTiming, animationDelay;\nexports.animationDelay = animationDelay;\nexports.animationTiming = animationTiming;\nexports.animationDuration = animationDuration;\nexports.animationName = animationName;\n\nif (_inDOM.default) {\n var _getTransitionPropert = getTransitionProperties();\n\n prefix = _getTransitionPropert.prefix;\n exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n exports.transform = transform = prefix + \"-\" + transform;\n exports.transitionProperty = transitionProperty = prefix + \"-transition-property\";\n exports.transitionDuration = transitionDuration = prefix + \"-transition-duration\";\n exports.transitionDelay = transitionDelay = prefix + \"-transition-delay\";\n exports.transitionTiming = transitionTiming = prefix + \"-transition-timing-function\";\n exports.animationName = animationName = prefix + \"-animation-name\";\n exports.animationDuration = animationDuration = prefix + \"-animation-duration\";\n exports.animationTiming = animationTiming = prefix + \"-animation-delay\";\n exports.animationDelay = animationDelay = prefix + \"-animation-timing-function\";\n}\n\nvar _default = {\n transform: transform,\n end: transitionEnd,\n property: transitionProperty,\n timing: transitionTiming,\n delay: transitionDelay,\n duration: transitionDuration\n};\nexports.default = _default;\n\nfunction getTransitionProperties() {\n var style = document.createElement('div').style;\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var transitionEnd, animationEnd;\n var prefix = '';\n\n for (var i = 0; i < vendors.length; i++) {\n var vendor = vendors[i];\n\n if (vendor + \"TransitionProperty\" in style) {\n prefix = \"-\" + vendor.toLowerCase();\n transitionEnd = vendorMap[vendor]('TransitionEnd');\n animationEnd = vendorMap[vendor]('AnimationEnd');\n break;\n }\n }\n\n if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n style = null;\n return {\n animationEnd: animationEnd,\n transitionEnd: transitionEnd,\n prefix: prefix\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = camelize;\nvar rHyphen = /-(.)/g;\n\nfunction camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = camelizeStyleName;\n\nvar _camelize = _interopRequireDefault(require(\"./camelize\"));\n\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js\n */\nvar msPattern = /^-ms-/;\n\nfunction camelizeStyleName(string) {\n return (0, _camelize.default)(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hyphenate;\nvar rUpper = /([A-Z])/g;\n\nfunction hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = hyphenateStyleName;\n\nvar _hyphenate = _interopRequireDefault(require(\"./hyphenate\"));\n\n/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nvar msPattern = /^ms-/;\n\nfunction hyphenateStyleName(string) {\n return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = _getComputedStyle;\n\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\n\nvar rposition = /^(top|right|bottom|left)$/;\nvar rnumnonpx = /^([+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|))(?!px)[a-z%]+$/i;\n\nfunction _getComputedStyle(node) {\n if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');\n var doc = node.ownerDocument;\n return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {\n //ie 8 \"magic\" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72\n getPropertyValue: function getPropertyValue(prop) {\n var style = node.style;\n prop = (0, _camelizeStyle.default)(prop);\n if (prop == 'float') prop = 'styleFloat';\n var current = node.currentStyle[prop] || null;\n if (current == null && style && style[prop]) current = style[prop];\n\n if (rnumnonpx.test(current) && !rposition.test(prop)) {\n // Remember the original values\n var left = style.left;\n var runStyle = node.runtimeStyle;\n var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out\n\n if (rsLeft) runStyle.left = node.currentStyle.left;\n style.left = prop === 'fontSize' ? '1em' : current;\n current = style.pixelLeft + 'px'; // Revert the changed values\n\n style.left = left;\n if (rsLeft) runStyle.left = rsLeft;\n }\n\n return current;\n }\n };\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = removeStyle;\n\nfunction removeStyle(node, key) {\n return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = isTransform;\nvar supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\n\nfunction isTransform(property) {\n return !!(property && supportedTransforms.test(property));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = style;\n\nvar _camelizeStyle = _interopRequireDefault(require(\"../util/camelizeStyle\"));\n\nvar _hyphenateStyle = _interopRequireDefault(require(\"../util/hyphenateStyle\"));\n\nvar _getComputedStyle2 = _interopRequireDefault(require(\"./getComputedStyle\"));\n\nvar _removeStyle = _interopRequireDefault(require(\"./removeStyle\"));\n\nvar _properties = require(\"../transition/properties\");\n\nvar _isTransform = _interopRequireDefault(require(\"../transition/isTransform\"));\n\nfunction style(node, property, value) {\n var css = '';\n var transforms = '';\n var props = property;\n\n if (typeof property === 'string') {\n if (value === undefined) {\n return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));\n } else {\n (props = {})[property] = value;\n }\n }\n\n Object.keys(props).forEach(function (key) {\n var value = props[key];\n\n if (!value && value !== 0) {\n (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key));\n } else if ((0, _isTransform.default)(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += (0, _hyphenateStyle.default)(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += _properties.transform + \": \" + transforms + \";\";\n }\n\n node.style.cssText += ';' + css;\n}\n\nmodule.exports = exports[\"default\"];","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = ownerDocument;\n\nfunction ownerDocument(node) {\n return node && node.ownerDocument || document;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = activeElement;\n\nvar _ownerDocument = _interopRequireDefault(require(\"./ownerDocument\"));\n\nfunction activeElement(doc) {\n if (doc === void 0) {\n doc = (0, _ownerDocument.default)();\n }\n\n try {\n return doc.activeElement;\n } catch (e) {\n /* ie throws if no active element */\n }\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar _default = function () {\n // HTML DOM and SVG DOM may have different support levels,\n // so we need to check on context instead of a document root element.\n return _inDOM.default ? function (context, node) {\n if (context.contains) {\n return context.contains(node);\n } else if (context.compareDocumentPosition) {\n return context === node || !!(context.compareDocumentPosition(node) & 16);\n } else {\n return fallback(context, node);\n }\n } : fallback;\n}();\n\nexports.default = _default;\n\nfunction fallback(context, node) {\n if (node) do {\n if (node === context) return true;\n } while (node = node.parentNode);\n return false;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRequiredForA11y;\nfunction isRequiredForA11y(validator) {\n return function validate(props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.');\n }\n\n for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n args[_key - 5] = arguments[_key];\n }\n\n return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));\n };\n}\nmodule.exports = exports['default'];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar on = function on() {};\n\nif (_inDOM.default) {\n on = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent('on' + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\n\nvar _default = on;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar off = function off() {};\n\nif (_inDOM.default) {\n off = function () {\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.removeEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.detachEvent('on' + eventName, handler);\n };\n }();\n}\n\nvar _default = off;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (node, event, handler, capture) {\n (0, _on2.default)(node, event, handler, capture);\n\n return {\n remove: function remove() {\n (0, _off2.default)(node, event, handler, capture);\n }\n };\n};\n\nvar _on = require('dom-helpers/events/on');\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _off = require('dom-helpers/events/off');\n\nvar _off2 = _interopRequireDefault(_off);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (componentOrElement) {\n return (0, _ownerDocument2.default)(_reactDom2.default.findDOMNode(componentOrElement));\n};\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar escapeKeyCode = 27;\n\nfunction isLeftClickEvent(event) {\n return event.button === 0;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n/**\n * The `<RootCloseWrapper/>` component registers your callback on the document\n * when rendered. Powers the `<Overlay/>` component. This is used achieve modal\n * style behavior where your callback is triggered when the user tries to\n * interact with the rest of the document or hits the `esc` key.\n */\n\nvar RootCloseWrapper = function (_React$Component) {\n _inherits(RootCloseWrapper, _React$Component);\n\n function RootCloseWrapper(props, context) {\n _classCallCheck(this, RootCloseWrapper);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.addEventListeners = function () {\n // Store the current event to avoid triggering handlers immediately\n // https://github.com/facebook/react/issues/20074\n _this.currentEvent = window.event;\n\n var event = _this.props.event;\n\n var doc = (0, _ownerDocument2.default)(_this);\n\n // Use capture for this listener so it fires before React's listener, to\n // avoid false positives in the contains() check below if the target DOM\n // element is removed in the React mouse callback.\n _this.documentMouseCaptureListener = (0, _addEventListener2.default)(doc, event, _this.handleMouseCapture, true);\n\n _this.documentMouseListener = (0, _addEventListener2.default)(doc, event, _this.handleMouse);\n\n _this.documentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this.handleKeyUp);\n };\n\n _this.removeEventListeners = function () {\n if (_this.documentMouseCaptureListener) {\n _this.documentMouseCaptureListener.remove();\n }\n\n if (_this.documentMouseListener) {\n _this.documentMouseListener.remove();\n }\n\n if (_this.documentKeyupListener) {\n _this.documentKeyupListener.remove();\n }\n };\n\n _this.handleMouseCapture = function (e) {\n _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2.default)(_reactDom2.default.findDOMNode(_this), e.target);\n };\n\n _this.handleMouse = function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === _this.currentEvent) {\n _this.currentEvent = undefined;\n return;\n }\n\n if (!_this.preventMouseRootClose && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.handleKeyUp = function (e) {\n // skip if this event is the same as the one running when we added the handlers\n if (e === _this.currentEvent) {\n _this.currentEvent = undefined;\n return;\n }\n\n if (e.keyCode === escapeKeyCode && _this.props.onRootClose) {\n _this.props.onRootClose(e);\n }\n };\n\n _this.preventMouseRootClose = false;\n return _this;\n }\n\n RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {\n if (!this.props.disabled) {\n this.addEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (!this.props.disabled && prevProps.disabled) {\n this.addEventListeners();\n } else if (this.props.disabled && !prevProps.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {\n if (!this.props.disabled) {\n this.removeEventListeners();\n }\n };\n\n RootCloseWrapper.prototype.render = function render() {\n return this.props.children;\n };\n\n return RootCloseWrapper;\n}(_react2.default.Component);\n\nRootCloseWrapper.displayName = 'RootCloseWrapper';\n\nRootCloseWrapper.propTypes = {\n /**\n * Callback fired after click or mousedown. Also triggers when user hits `esc`.\n */\n onRootClose: _propTypes2.default.func,\n /**\n * Children to render.\n */\n children: _propTypes2.default.element,\n /**\n * Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`.\n */\n disabled: _propTypes2.default.bool,\n /**\n * Choose which document mouse event to bind to.\n */\n event: _propTypes2.default.oneOf(['click', 'mousedown'])\n};\n\nRootCloseWrapper.defaultProps = {\n event: 'click'\n};\n\nexports.default = RootCloseWrapper;\nmodule.exports = exports['default'];","import _Object$entries from \"@babel/runtime-corejs2/core-js/object/entries\";\nexport default function splitComponentProps(props, Component) {\n var componentPropTypes = Component.propTypes;\n var parentProps = {};\n var childProps = {};\n\n _Object$entries(props).forEach(function (_ref) {\n var propName = _ref[0],\n propValue = _ref[1];\n\n if (componentPropTypes[propName]) {\n parentProps[propName] = propValue;\n } else {\n childProps[propName] = propValue;\n }\n });\n\n return [parentProps, childProps];\n}","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\n\nvar _fadeStyles;\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Transition, { ENTERED, ENTERING } from 'react-transition-group/Transition';\nvar propTypes = {\n /**\n * Show the component; triggers the fade in or fade out animation\n */\n in: PropTypes.bool,\n\n /**\n * Wait until the first \"enter\" transition to mount the component (add it to the DOM)\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * Unmount the component (remove it from the DOM) when it is faded out\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Run the fade in animation when the component mounts, if it is initially\n * shown\n */\n appear: PropTypes.bool,\n\n /**\n * Duration of the fade animation in milliseconds, to ensure that finishing\n * callbacks are fired even if the original browser transition end events are\n * canceled\n */\n timeout: PropTypes.number,\n\n /**\n * Callback fired before the component fades in\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the component starts to fade in\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the has component faded in\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the component fades out\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the component starts to fade out\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the component has faded out\n */\n onExited: PropTypes.func\n};\nvar defaultProps = {\n in: false,\n timeout: 300,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false\n};\nvar fadeStyles = (_fadeStyles = {}, _fadeStyles[ENTERING] = 'in', _fadeStyles[ENTERED] = 'in', _fadeStyles);\n\nvar Fade =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Fade, _React$Component);\n\n function Fade() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Fade.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n children = _this$props.children,\n props = _objectWithoutPropertiesLoose(_this$props, [\"className\", \"children\"]);\n\n return React.createElement(Transition, props, function (status, innerProps) {\n return React.cloneElement(children, _extends({}, innerProps, {\n className: classNames('fade', className, children.props.className, fadeStyles[status])\n }));\n });\n };\n\n return Fade;\n}(React.Component);\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\nexport default Fade;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = qsa;\n// Zepto.js\n// (c) 2010-2015 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\nvar simpleSelectorRE = /^[\\w-]*$/;\nvar toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);\n\nfunction qsa(element, selector) {\n var maybeID = selector[0] === '#',\n maybeClass = selector[0] === '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n isSimple = simpleSelectorRE.test(nameOnly),\n found;\n\n if (isSimple) {\n if (maybeID) {\n element = element.getElementById ? element : document;\n return (found = element.getElementById(nameOnly)) ? [found] : [];\n }\n\n if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));\n return toArray(element.getElementsByTagName(selector));\n }\n\n return toArray(element.querySelectorAll(selector));\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = filterEvents;\n\nvar _contains = _interopRequireDefault(require(\"../query/contains\"));\n\nvar _querySelectorAll = _interopRequireDefault(require(\"../query/querySelectorAll\"));\n\nfunction filterEvents(selector, handler) {\n return function filterHandler(e) {\n var top = e.currentTarget,\n target = e.target,\n matches = (0, _querySelectorAll.default)(top, selector);\n if (matches.some(function (match) {\n return (0, _contains.default)(match, target);\n })) handler.call(this, e);\n };\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _inDOM = _interopRequireDefault(require(\"../util/inDOM\"));\n\nvar _on = _interopRequireDefault(require(\"./on\"));\n\nvar _off = _interopRequireDefault(require(\"./off\"));\n\nvar listen = function listen() {};\n\nif (_inDOM.default) {\n listen = function listen(node, eventName, handler, capture) {\n (0, _on.default)(node, eventName, handler, capture);\n return function () {\n (0, _off.default)(node, eventName, handler, capture);\n };\n };\n}\n\nvar _default = listen;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _on = _interopRequireDefault(require(\"./on\"));\n\nexports.on = _on.default;\n\nvar _off = _interopRequireDefault(require(\"./off\"));\n\nexports.off = _off.default;\n\nvar _filter = _interopRequireDefault(require(\"./filter\"));\n\nexports.filter = _filter.default;\n\nvar _listen = _interopRequireDefault(require(\"./listen\"));\n\nexports.listen = _listen.default;\nvar _default = {\n on: _on.default,\n off: _off.default,\n filter: _filter.default,\n listen: _listen.default\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollbarSize;\n\nvar _inDOM = _interopRequireDefault(require(\"./inDOM\"));\n\nvar size;\n\nfunction scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (_inDOM.default) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);\n\n if (_react2.default.isValidElement(propValue)) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.');\n }\n\n if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {\n return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');\n }\n\n return null;\n}\n\nexports.default = (0, _createChainableTypeChecker2.default)(validate);\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = deprecated;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar warned = {};\n\nfunction deprecated(validator, reason) {\n return function validate(props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<<anonymous>>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] != null) {\n var messageKey = componentName + '.' + propName;\n\n (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));\n\n warned[messageKey] = true;\n }\n\n for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {\n args[_key - 5] = arguments[_key];\n }\n\n return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));\n };\n}\n\n/* eslint-disable no-underscore-dangle */\nfunction _resetWarned() {\n warned = {};\n}\n\ndeprecated._resetWarned = _resetWarned;\n/* eslint-enable no-underscore-dangle */\n\nmodule.exports = exports['default'];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _addClass = _interopRequireDefault(require(\"./addClass\"));\n\nexports.addClass = _addClass.default;\n\nvar _removeClass = _interopRequireDefault(require(\"./removeClass\"));\n\nexports.removeClass = _removeClass.default;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nexports.hasClass = _hasClass.default;\nvar _default = {\n addClass: _addClass.default,\n removeClass: _removeClass.default,\n hasClass: _hasClass.default\n};\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getWindow;\n\nfunction getWindow(node) {\n return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true;\nexports.default = isOverflowing;\n\nvar _isWindow = require('dom-helpers/query/isWindow');\n\nvar _isWindow2 = _interopRequireDefault(_isWindow);\n\nvar _ownerDocument = require('dom-helpers/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBody(node) {\n return node && node.tagName.toLowerCase() === 'body';\n}\n\nfunction bodyIsOverflowing(node) {\n var doc = (0, _ownerDocument2.default)(node);\n var win = (0, _isWindow2.default)(doc);\n var fullWidth = win.innerWidth;\n\n // Support: ie8, no innerWidth\n if (!fullWidth) {\n var documentElementRect = doc.documentElement.getBoundingClientRect();\n fullWidth = documentElementRect.right - Math.abs(documentElementRect.left);\n }\n\n return doc.body.clientWidth < fullWidth;\n}\n\nfunction isOverflowing(container) {\n var win = (0, _isWindow2.default)(container);\n\n return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.ariaHidden = ariaHidden;\nexports.hideSiblings = hideSiblings;\nexports.showSiblings = showSiblings;\n\nvar BLACKLIST = ['template', 'script', 'style'];\n\nvar isHidable = function isHidable(_ref) {\n var nodeType = _ref.nodeType,\n tagName = _ref.tagName;\n return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;\n};\n\nvar siblings = function siblings(container, mount, cb) {\n mount = [].concat(mount);\n\n [].forEach.call(container.children, function (node) {\n if (mount.indexOf(node) === -1 && isHidable(node)) {\n cb(node);\n }\n });\n};\n\nfunction ariaHidden(show, node) {\n if (!node) {\n return;\n }\n if (show) {\n node.setAttribute('aria-hidden', 'true');\n } else {\n node.removeAttribute('aria-hidden');\n }\n}\n\nfunction hideSiblings(container, mountNode) {\n siblings(container, mountNode, function (node) {\n return ariaHidden(true, node);\n });\n}\n\nfunction showSiblings(container, mountNode) {\n siblings(container, mountNode, function (node) {\n return ariaHidden(false, node);\n });\n}","'use strict';\n\nexports.__esModule = true;\n\nvar _class = require('dom-helpers/class');\n\nvar _class2 = _interopRequireDefault(_class);\n\nvar _style = require('dom-helpers/style');\n\nvar _style2 = _interopRequireDefault(_style);\n\nvar _scrollbarSize = require('dom-helpers/util/scrollbarSize');\n\nvar _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);\n\nvar _isOverflowing = require('./utils/isOverflowing');\n\nvar _isOverflowing2 = _interopRequireDefault(_isOverflowing);\n\nvar _manageAriaHidden = require('./utils/manageAriaHidden');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction findIndexOf(arr, cb) {\n var idx = -1;\n arr.some(function (d, i) {\n if (cb(d, i)) {\n idx = i;\n return true;\n }\n });\n return idx;\n}\n\nfunction findContainer(data, modal) {\n return findIndexOf(data, function (d) {\n return d.modals.indexOf(modal) !== -1;\n });\n}\n\nfunction setContainerStyle(state, container) {\n var style = { overflow: 'hidden' };\n\n // we are only interested in the actual `style` here\n // becasue we will override it\n state.style = {\n overflow: container.style.overflow,\n paddingRight: container.style.paddingRight\n };\n\n if (state.overflowing) {\n // use computed style, here to get the real padding\n // to add our scrollbar width\n style.paddingRight = parseInt((0, _style2.default)(container, 'paddingRight') || 0, 10) + (0, _scrollbarSize2.default)() + 'px';\n }\n\n (0, _style2.default)(container, style);\n}\n\nfunction removeContainerStyle(_ref, container) {\n var style = _ref.style;\n\n\n Object.keys(style).forEach(function (key) {\n return container.style[key] = style[key];\n });\n}\n/**\n * Proper state managment for containers and the modals in those containers.\n *\n * @internal Used by the Modal to ensure proper styling of containers.\n */\n\nvar ModalManager = function ModalManager() {\n var _this = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$hideSiblingNode = _ref2.hideSiblingNodes,\n hideSiblingNodes = _ref2$hideSiblingNode === undefined ? true : _ref2$hideSiblingNode,\n _ref2$handleContainer = _ref2.handleContainerOverflow,\n handleContainerOverflow = _ref2$handleContainer === undefined ? true : _ref2$handleContainer;\n\n _classCallCheck(this, ModalManager);\n\n this.add = function (modal, container, className) {\n var modalIdx = _this.modals.indexOf(modal);\n var containerIdx = _this.containers.indexOf(container);\n\n if (modalIdx !== -1) {\n return modalIdx;\n }\n\n modalIdx = _this.modals.length;\n _this.modals.push(modal);\n\n if (_this.hideSiblingNodes) {\n (0, _manageAriaHidden.hideSiblings)(container, modal.modalNode);\n }\n\n if (containerIdx !== -1) {\n _this.data[containerIdx].modals.push(modal);\n return modalIdx;\n }\n\n var data = {\n modals: [modal],\n //right now only the first modal of a container will have its classes applied\n classes: className ? className.split(/\\s+/) : [],\n\n overflowing: (0, _isOverflowing2.default)(container)\n };\n\n if (_this.handleContainerOverflow) {\n setContainerStyle(data, container);\n }\n\n data.classes.forEach(_class2.default.addClass.bind(null, container));\n\n _this.containers.push(container);\n _this.data.push(data);\n\n return modalIdx;\n };\n\n this.remove = function (modal) {\n var modalIdx = _this.modals.indexOf(modal);\n\n if (modalIdx === -1) {\n return;\n }\n\n var containerIdx = findContainer(_this.data, modal);\n var data = _this.data[containerIdx];\n var container = _this.containers[containerIdx];\n\n data.modals.splice(data.modals.indexOf(modal), 1);\n\n _this.modals.splice(modalIdx, 1);\n\n // if that was the last modal in a container,\n // clean up the container\n if (data.modals.length === 0) {\n data.classes.forEach(_class2.default.removeClass.bind(null, container));\n\n if (_this.handleContainerOverflow) {\n removeContainerStyle(data, container);\n }\n\n if (_this.hideSiblingNodes) {\n (0, _manageAriaHidden.showSiblings)(container, modal.modalNode);\n }\n _this.containers.splice(containerIdx, 1);\n _this.data.splice(containerIdx, 1);\n } else if (_this.hideSiblingNodes) {\n //otherwise make sure the next top modal is visible to a SR\n (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].modalNode);\n }\n };\n\n this.isTopModal = function (modal) {\n return !!_this.modals.length && _this.modals[_this.modals.length - 1] === modal;\n };\n\n this.hideSiblingNodes = hideSiblingNodes;\n this.handleContainerOverflow = handleContainerOverflow;\n this.modals = [];\n this.containers = [];\n this.data = [];\n};\n\nexports.default = ModalManager;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = getContainer;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getContainer(container, defaultContainer) {\n container = typeof container === 'function' ? container() : container;\n return _reactDom2.default.findDOMNode(container) || defaultContainer;\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The `<Portal/>` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `<Portal/>` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Portal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._mountOverlayTarget = function () {\n if (!_this._overlayTarget) {\n _this._overlayTarget = document.createElement('div');\n _this._portalContainerNode = (0, _getContainer2.default)(_this.props.container, (0, _ownerDocument2.default)(_this).body);\n _this._portalContainerNode.appendChild(_this._overlayTarget);\n }\n }, _this._unmountOverlayTarget = function () {\n if (_this._overlayTarget) {\n _this._portalContainerNode.removeChild(_this._overlayTarget);\n _this._overlayTarget = null;\n }\n _this._portalContainerNode = null;\n }, _this._renderOverlay = function () {\n var overlay = !_this.props.children ? null : _react2.default.Children.only(_this.props.children);\n\n // Save reference for future access.\n if (overlay !== null) {\n _this._mountOverlayTarget();\n\n var initialRender = !_this._overlayInstance;\n\n _this._overlayInstance = _reactDom2.default.unstable_renderSubtreeIntoContainer(_this, overlay, _this._overlayTarget, function () {\n if (initialRender && _this.props.onRendered) {\n _this.props.onRendered();\n }\n });\n } else {\n // Unrender if the component is null for transitions to null\n _this._unrenderOverlay();\n _this._unmountOverlayTarget();\n }\n }, _this._unrenderOverlay = function () {\n if (_this._overlayTarget) {\n _reactDom2.default.unmountComponentAtNode(_this._overlayTarget);\n _this._overlayInstance = null;\n }\n }, _this.getMountNode = function () {\n return _this._overlayTarget;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Portal.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this._renderOverlay();\n };\n\n Portal.prototype.componentDidUpdate = function componentDidUpdate() {\n this._renderOverlay();\n };\n\n Portal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (this._overlayTarget && nextProps.container !== this.props.container) {\n this._portalContainerNode.removeChild(this._overlayTarget);\n this._portalContainerNode = (0, _getContainer2.default)(nextProps.container, (0, _ownerDocument2.default)(this).body);\n this._portalContainerNode.appendChild(this._overlayTarget);\n }\n };\n\n Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this._unrenderOverlay();\n this._unmountOverlayTarget();\n };\n\n Portal.prototype.render = function render() {\n return null;\n };\n\n return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n /**\n * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n onRendered: _propTypes2.default.func\n};\nexports.default = Portal;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nvar _LegacyPortal = require('./LegacyPortal');\n\nvar _LegacyPortal2 = _interopRequireDefault(_LegacyPortal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The `<Portal/>` component renders its children into a new \"subtree\" outside of current component hierarchy.\n * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.\n * The children of `<Portal/>` component will be appended to the `container` specified.\n */\nvar Portal = function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n function Portal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Portal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getMountNode = function () {\n return _this._portalContainerNode;\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Portal.prototype.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n if (!_inDOM2.default) {\n return;\n }\n\n var container = this.props.container;\n\n if (typeof container === 'function') {\n container = container();\n }\n\n if (container && !_reactDom2.default.findDOMNode(container)) {\n // The container is a React component that has not yet been rendered.\n // Don't set the container node yet.\n return;\n }\n\n this.setContainer(container);\n };\n\n Portal.prototype.componentDidMount = function componentDidMount() {\n if (!this._portalContainerNode) {\n this.setContainer(this.props.container);\n this.forceUpdate(this.props.onRendered);\n } else if (this.props.onRendered) {\n this.props.onRendered();\n }\n };\n\n Portal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.container !== this.props.container) {\n this.setContainer(nextProps.container);\n }\n };\n\n Portal.prototype.componentWillUnmount = function componentWillUnmount() {\n this._portalContainerNode = null;\n };\n\n Portal.prototype.setContainer = function setContainer(container) {\n this._portalContainerNode = (0, _getContainer2.default)(container, (0, _ownerDocument2.default)(this).body);\n };\n\n Portal.prototype.render = function render() {\n return this.props.children && this._portalContainerNode ? _reactDom2.default.createPortal(this.props.children, this._portalContainerNode) : null;\n };\n\n return Portal;\n}(_react2.default.Component);\n\nPortal.displayName = 'Portal';\nPortal.propTypes = {\n /**\n * A Node, Component instance, or function that returns either. The `container` will have the Portal children\n * appended to it.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n onRendered: _propTypes2.default.func\n};\nexports.default = _reactDom2.default.createPortal ? Portal : _LegacyPortal2.default;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = {\n children: _propTypes2.default.node\n};\n\n/**\n * Internal helper component to allow attaching a non-conflicting ref to a\n * child element that may not accept refs.\n */\n\nvar RefHolder = function (_React$Component) {\n _inherits(RefHolder, _React$Component);\n\n function RefHolder() {\n _classCallCheck(this, RefHolder);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n RefHolder.prototype.render = function render() {\n return this.props.children;\n };\n\n return RefHolder;\n}(_react2.default.Component);\n\nRefHolder.propTypes = propTypes;\n\nexports.default = RefHolder;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\nexports.default = addFocusListener;\n/**\n * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling\n * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8\n *\n * We only allow one Listener at a time to avoid stack overflows\n */\nfunction addFocusListener(handler) {\n var useFocusin = !document.addEventListener;\n var remove = void 0;\n\n if (useFocusin) {\n document.attachEvent('onfocusin', handler);\n remove = function remove() {\n return document.detachEvent('onfocusin', handler);\n };\n } else {\n document.addEventListener('focus', handler, true);\n remove = function remove() {\n return document.removeEventListener('focus', handler, true);\n };\n }\n\n return { remove: remove };\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _activeElement = require('dom-helpers/activeElement');\n\nvar _activeElement2 = _interopRequireDefault(_activeElement);\n\nvar _contains = require('dom-helpers/query/contains');\n\nvar _contains2 = _interopRequireDefault(_contains);\n\nvar _inDOM = require('dom-helpers/util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _deprecated = require('prop-types-extra/lib/deprecated');\n\nvar _deprecated2 = _interopRequireDefault(_deprecated);\n\nvar _elementType = require('prop-types-extra/lib/elementType');\n\nvar _elementType2 = _interopRequireDefault(_elementType);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _ModalManager = require('./ModalManager');\n\nvar _ModalManager2 = _interopRequireDefault(_ModalManager);\n\nvar _Portal = require('./Portal');\n\nvar _Portal2 = _interopRequireDefault(_Portal);\n\nvar _RefHolder = require('./RefHolder');\n\nvar _RefHolder2 = _interopRequireDefault(_RefHolder);\n\nvar _addEventListener = require('./utils/addEventListener');\n\nvar _addEventListener2 = _interopRequireDefault(_addEventListener);\n\nvar _addFocusListener = require('./utils/addFocusListener');\n\nvar _addFocusListener2 = _interopRequireDefault(_addFocusListener);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/prop-types */\n\nvar modalManager = new _ModalManager2.default();\n\n/**\n * Love them or hate them, `<Modal/>` provides a solid foundation for creating dialogs, lightboxes, or whatever else.\n * The Modal component renders its `children` node in front of a backdrop component.\n *\n * The Modal offers a few helpful features over using just a `<Portal/>` component and some styles:\n *\n * - Manages dialog stacking when one-at-a-time just isn't enough.\n * - Creates a backdrop, for disabling interaction below the modal.\n * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed.\n * - It disables scrolling of the page content while open.\n * - Adds the appropriate ARIA roles are automatically.\n * - Easily pluggable animations via a `<Transition/>` component.\n *\n * Note that, in the same way the backdrop element prevents users from clicking or interacting\n * with the page content underneath the Modal, Screen readers also need to be signaled to not to\n * interact with page content while the Modal is open. To do this, we use a common technique of applying\n * the `aria-hidden='true'` attribute to the non-Modal elements in the Modal `container`. This means that for\n * a Modal to be truly modal, it should have a `container` that is _outside_ your app's\n * React hierarchy (such as the default: document.body).\n */\n\nvar Modal = function (_React$Component) {\n _inherits(Modal, _React$Component);\n\n function Modal() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Modal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _initialiseProps.call(_this), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Modal.prototype.omitProps = function omitProps(props, propTypes) {\n\n var keys = Object.keys(props);\n var newProps = {};\n keys.map(function (prop) {\n if (!Object.prototype.hasOwnProperty.call(propTypes, prop)) {\n newProps[prop] = props[prop];\n }\n });\n\n return newProps;\n };\n\n Modal.prototype.render = function render() {\n var _props = this.props,\n show = _props.show,\n container = _props.container,\n children = _props.children,\n Transition = _props.transition,\n backdrop = _props.backdrop,\n className = _props.className,\n style = _props.style,\n onExit = _props.onExit,\n onExiting = _props.onExiting,\n onEnter = _props.onEnter,\n onEntering = _props.onEntering,\n onEntered = _props.onEntered;\n\n\n var dialog = _react2.default.Children.only(children);\n var filteredProps = this.omitProps(this.props, Modal.propTypes);\n\n var mountModal = show || Transition && !this.state.exited;\n if (!mountModal) {\n return null;\n }\n\n var _dialog$props = dialog.props,\n role = _dialog$props.role,\n tabIndex = _dialog$props.tabIndex;\n\n\n if (role === undefined || tabIndex === undefined) {\n dialog = (0, _react.cloneElement)(dialog, {\n role: role === undefined ? 'document' : role,\n tabIndex: tabIndex == null ? '-1' : tabIndex\n });\n }\n\n if (Transition) {\n dialog = _react2.default.createElement(\n Transition,\n {\n appear: true,\n unmountOnExit: true,\n 'in': show,\n onExit: onExit,\n onExiting: onExiting,\n onExited: this.handleHidden,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n },\n dialog\n );\n }\n\n return _react2.default.createElement(\n _Portal2.default,\n {\n ref: this.setMountNode,\n container: container,\n onRendered: this.onPortalRendered\n },\n _react2.default.createElement(\n 'div',\n _extends({\n ref: this.setModalNodeRef,\n role: role || 'dialog'\n }, filteredProps, {\n style: style,\n className: className\n }),\n backdrop && this.renderBackdrop(),\n _react2.default.createElement(\n _RefHolder2.default,\n { ref: this.setDialogRef },\n dialog\n )\n )\n );\n };\n\n Modal.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.show) {\n this.setState({ exited: false });\n } else if (!nextProps.transition) {\n // Otherwise let handleHidden take care of marking exited.\n this.setState({ exited: true });\n }\n };\n\n Modal.prototype.UNSAFE_componentWillUpdate = function UNSAFE_componentWillUpdate(nextProps) {\n if (!this.props.show && nextProps.show) {\n this.checkForFocus();\n }\n };\n\n Modal.prototype.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n if (this.props.show) {\n this.onShow();\n }\n };\n\n Modal.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var transition = this.props.transition;\n\n\n if (prevProps.show && !this.props.show && !transition) {\n // Otherwise handleHidden will call this.\n this.onHide();\n } else if (!prevProps.show && this.props.show) {\n this.onShow();\n }\n };\n\n Modal.prototype.componentWillUnmount = function componentWillUnmount() {\n var _props2 = this.props,\n show = _props2.show,\n transition = _props2.transition;\n\n\n this._isMounted = false;\n\n if (show || transition && !this.state.exited) {\n this.onHide();\n }\n };\n\n Modal.prototype.autoFocus = function autoFocus() {\n if (!this.props.autoFocus) {\n return;\n }\n\n var dialogElement = this.getDialogElement();\n var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(this));\n\n if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n this.lastFocus = currentActiveElement;\n\n if (!dialogElement.hasAttribute('tabIndex')) {\n (0, _warning2.default)(false, 'The modal content node does not accept focus. For the benefit of ' + 'assistive technologies, the tabIndex of the node is being set ' + 'to \"-1\".');\n\n dialogElement.setAttribute('tabIndex', -1);\n }\n\n dialogElement.focus();\n }\n };\n\n Modal.prototype.restoreLastFocus = function restoreLastFocus() {\n // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)\n if (this.lastFocus && this.lastFocus.focus) {\n this.lastFocus.focus();\n this.lastFocus = null;\n }\n };\n\n Modal.prototype.getDialogElement = function getDialogElement() {\n return _reactDom2.default.findDOMNode(this.dialog);\n };\n\n Modal.prototype.isTopModal = function isTopModal() {\n return this.props.manager.isTopModal(this);\n };\n\n return Modal;\n}(_react2.default.Component);\n\nModal.propTypes = _extends({}, _Portal2.default.propTypes, {\n\n /**\n * Set the visibility of the Modal\n */\n show: _propTypes2.default.bool,\n\n /**\n * A Node, Component instance, or function that returns either. The Modal is appended to it's container element.\n *\n * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the\n * page content can be placed behind a virtual backdrop as well as a visual one.\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n /**\n * A callback fired when the Modal is opening.\n */\n onShow: _propTypes2.default.func,\n\n /**\n * A callback fired when either the backdrop is clicked, or the escape key is pressed.\n *\n * The `onHide` callback only signals intent from the Modal,\n * you must actually set the `show` prop to `false` for the Modal to close.\n */\n onHide: _propTypes2.default.func,\n\n /**\n * Include a backdrop component.\n */\n backdrop: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.oneOf(['static'])]),\n\n /**\n * A function that returns a backdrop component. Useful for custom\n * backdrop rendering.\n *\n * ```js\n * renderBackdrop={props => <MyBackdrop {...props} />}\n * ```\n */\n renderBackdrop: _propTypes2.default.func,\n\n /**\n * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n */\n onEscapeKeyDown: _propTypes2.default.func,\n\n /**\n * Support for this function will be deprecated. Please use `onEscapeKeyDown` instead\n * A callback fired when the escape key, if specified in `keyboard`, is pressed.\n * @deprecated\n */\n onEscapeKeyUp: (0, _deprecated2.default)(_propTypes2.default.func, 'Please use onEscapeKeyDown instead for consistency'),\n\n /**\n * A callback fired when the backdrop, if specified, is clicked.\n */\n onBackdropClick: _propTypes2.default.func,\n\n /**\n * A style object for the backdrop component.\n */\n backdropStyle: _propTypes2.default.object,\n\n /**\n * A css class or classes for the backdrop component.\n */\n backdropClassName: _propTypes2.default.string,\n\n /**\n * A css class or set of classes applied to the modal container when the modal is open,\n * and removed when it is closed.\n */\n containerClassName: _propTypes2.default.string,\n\n /**\n * Close the modal when escape key is pressed\n */\n keyboard: _propTypes2.default.bool,\n\n /**\n * A `react-transition-group@2.0.0` `<Transition/>` component used\n * to control animations for the dialog component.\n */\n transition: _elementType2.default,\n\n /**\n * A `react-transition-group@2.0.0` `<Transition/>` component used\n * to control animations for the backdrop components.\n */\n backdropTransition: _elementType2.default,\n\n /**\n * When `true` The modal will automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes. This also\n * works correctly with any Modal children that have the `autoFocus` prop.\n *\n * Generally this should never be set to `false` as it makes the Modal less\n * accessible to assistive technologies, like screen readers.\n */\n autoFocus: _propTypes2.default.bool,\n\n /**\n * When `true` The modal will prevent focus from leaving the Modal while open.\n *\n * Generally this should never be set to `false` as it makes the Modal less\n * accessible to assistive technologies, like screen readers.\n */\n enforceFocus: _propTypes2.default.bool,\n\n /**\n * When `true` The modal will restore focus to previously focused element once\n * modal is hidden\n */\n restoreFocus: _propTypes2.default.bool,\n\n /**\n * Callback fired before the Modal transitions in\n */\n onEnter: _propTypes2.default.func,\n\n /**\n * Callback fired as the Modal begins to transition in\n */\n onEntering: _propTypes2.default.func,\n\n /**\n * Callback fired after the Modal finishes transitioning in\n */\n onEntered: _propTypes2.default.func,\n\n /**\n * Callback fired right before the Modal transitions out\n */\n onExit: _propTypes2.default.func,\n\n /**\n * Callback fired as the Modal begins to transition out\n */\n onExiting: _propTypes2.default.func,\n\n /**\n * Callback fired after the Modal finishes transitioning out\n */\n onExited: _propTypes2.default.func,\n\n /**\n * A ModalManager instance used to track and manage the state of open\n * Modals. Useful when customizing how modals interact within a container\n */\n manager: _propTypes2.default.object.isRequired\n});\nModal.defaultProps = {\n show: false,\n backdrop: true,\n keyboard: true,\n autoFocus: true,\n enforceFocus: true,\n restoreFocus: true,\n onHide: function onHide() {},\n manager: modalManager,\n renderBackdrop: function renderBackdrop(props) {\n return _react2.default.createElement('div', props);\n }\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this2 = this;\n\n this.state = { exited: !this.props.show };\n\n this.renderBackdrop = function () {\n var _props3 = _this2.props,\n backdropStyle = _props3.backdropStyle,\n backdropClassName = _props3.backdropClassName,\n renderBackdrop = _props3.renderBackdrop,\n Transition = _props3.backdropTransition;\n\n\n var backdropRef = function backdropRef(ref) {\n return _this2.backdrop = ref;\n };\n\n var backdrop = renderBackdrop({\n ref: backdropRef,\n style: backdropStyle,\n className: backdropClassName,\n onClick: _this2.handleBackdropClick\n });\n\n if (Transition) {\n backdrop = _react2.default.createElement(\n Transition,\n {\n appear: true,\n 'in': _this2.props.show\n },\n backdrop\n );\n }\n\n return backdrop;\n };\n\n this.onPortalRendered = function () {\n _this2.autoFocus();\n\n if (_this2.props.onShow) {\n _this2.props.onShow();\n }\n };\n\n this.onShow = function () {\n var doc = (0, _ownerDocument2.default)(_this2);\n var container = (0, _getContainer2.default)(_this2.props.container, doc.body);\n\n _this2.props.manager.add(_this2, container, _this2.props.containerClassName);\n\n _this2._onDocumentKeydownListener = (0, _addEventListener2.default)(doc, 'keydown', _this2.handleDocumentKeyDown);\n\n _this2._onDocumentKeyupListener = (0, _addEventListener2.default)(doc, 'keyup', _this2.handleDocumentKeyUp);\n\n _this2._onFocusinListener = (0, _addFocusListener2.default)(_this2.enforceFocus);\n };\n\n this.onHide = function () {\n _this2.props.manager.remove(_this2);\n\n _this2._onDocumentKeydownListener.remove();\n\n _this2._onDocumentKeyupListener.remove();\n\n _this2._onFocusinListener.remove();\n\n if (_this2.props.restoreFocus) {\n _this2.restoreLastFocus();\n }\n };\n\n this.setMountNode = function (ref) {\n _this2.mountNode = ref ? ref.getMountNode() : ref;\n };\n\n this.setModalNodeRef = function (ref) {\n _this2.modalNode = ref;\n };\n\n this.setDialogRef = function (ref) {\n _this2.dialog = ref;\n };\n\n this.handleHidden = function () {\n _this2.setState({ exited: true });\n _this2.onHide();\n\n if (_this2.props.onExited) {\n var _props4;\n\n (_props4 = _this2.props).onExited.apply(_props4, arguments);\n }\n };\n\n this.handleBackdropClick = function (e) {\n if (e.target !== e.currentTarget) {\n return;\n }\n\n if (_this2.props.onBackdropClick) {\n _this2.props.onBackdropClick(e);\n }\n\n if (_this2.props.backdrop === true) {\n _this2.props.onHide();\n }\n };\n\n this.handleDocumentKeyDown = function (e) {\n if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n if (_this2.props.onEscapeKeyDown) {\n _this2.props.onEscapeKeyDown(e);\n }\n\n _this2.props.onHide();\n }\n };\n\n this.handleDocumentKeyUp = function (e) {\n if (_this2.props.keyboard && e.keyCode === 27 && _this2.isTopModal()) {\n if (_this2.props.onEscapeKeyUp) {\n _this2.props.onEscapeKeyUp(e);\n }\n }\n };\n\n this.checkForFocus = function () {\n if (_inDOM2.default) {\n _this2.lastFocus = (0, _activeElement2.default)();\n }\n };\n\n this.enforceFocus = function () {\n if (!_this2.props.enforceFocus || !_this2._isMounted || !_this2.isTopModal()) {\n return;\n }\n\n var dialogElement = _this2.getDialogElement();\n var currentActiveElement = (0, _activeElement2.default)((0, _ownerDocument2.default)(_this2));\n\n if (dialogElement && !(0, _contains2.default)(dialogElement, currentActiveElement)) {\n dialogElement.focus();\n }\n };\n};\n\nModal.Manager = _ModalManager2.default;\n\nexports.default = Modal;\nmodule.exports = exports['default'];","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport { bsClass, getClassSet, splitBsProps } from './utils/bootstrapUtils';\nvar propTypes = {\n componentClass: elementType\n};\nvar defaultProps = {\n componentClass: 'div'\n};\n\nvar ModalBody =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ModalBody, _React$Component);\n\n function ModalBody() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ModalBody.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.componentClass,\n className = _this$props.className,\n props = _objectWithoutPropertiesLoose(_this$props, [\"componentClass\", \"className\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = getClassSet(bsProps);\n return React.createElement(Component, _extends({}, elementProps, {\n className: classNames(className, classes)\n }));\n };\n\n return ModalBody;\n}(React.Component);\n\nModalBody.propTypes = propTypes;\nModalBody.defaultProps = defaultProps;\nexport default bsClass('modal-body', ModalBody);","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { bsClass, bsSizes, getClassSet, prefix, splitBsProps } from './utils/bootstrapUtils';\nimport { Size } from './utils/StyleConfig';\nvar propTypes = {\n /**\n * A css class to apply to the Modal dialog DOM node.\n */\n dialogClassName: PropTypes.string\n};\n\nvar ModalDialog =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ModalDialog, _React$Component);\n\n function ModalDialog() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ModalDialog.prototype;\n\n _proto.render = function render() {\n var _extends2;\n\n var _this$props = this.props,\n dialogClassName = _this$props.dialogClassName,\n className = _this$props.className,\n style = _this$props.style,\n children = _this$props.children,\n onMouseDownDialog = _this$props.onMouseDownDialog,\n props = _objectWithoutPropertiesLoose(_this$props, [\"dialogClassName\", \"className\", \"style\", \"children\", \"onMouseDownDialog\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var bsClassName = prefix(bsProps);\n\n var modalStyle = _extends({\n display: 'block'\n }, style);\n\n var dialogClasses = _extends({}, getClassSet(bsProps), (_extends2 = {}, _extends2[bsClassName] = false, _extends2[prefix(bsProps, 'dialog')] = true, _extends2));\n\n return React.createElement(\"div\", _extends({}, elementProps, {\n tabIndex: \"-1\",\n role: \"dialog\",\n style: modalStyle,\n className: classNames(className, bsClassName)\n }), React.createElement(\"div\", {\n className: classNames(dialogClassName, dialogClasses),\n onMouseDown: onMouseDownDialog\n }, React.createElement(\"div\", {\n className: prefix(bsProps, 'content'),\n role: \"document\"\n }, children)));\n };\n\n return ModalDialog;\n}(React.Component);\n\nModalDialog.propTypes = propTypes;\nexport default bsClass('modal', bsSizes([Size.LARGE, Size.SMALL], ModalDialog));","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport { bsClass, getClassSet, splitBsProps } from './utils/bootstrapUtils';\nvar propTypes = {\n componentClass: elementType\n};\nvar defaultProps = {\n componentClass: 'div'\n};\n\nvar ModalFooter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ModalFooter, _React$Component);\n\n function ModalFooter() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ModalFooter.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.componentClass,\n className = _this$props.className,\n props = _objectWithoutPropertiesLoose(_this$props, [\"componentClass\", \"className\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = getClassSet(bsProps);\n return React.createElement(Component, _extends({}, elementProps, {\n className: classNames(className, classes)\n }));\n };\n\n return ModalFooter;\n}(React.Component);\n\nModalFooter.propTypes = propTypes;\nModalFooter.defaultProps = defaultProps;\nexport default bsClass('modal-footer', ModalFooter);","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { bsClass, getClassSet, splitBsProps } from './utils/bootstrapUtils';\nimport createChainedFunction from './utils/createChainedFunction';\nimport CloseButton from './CloseButton'; // TODO: `aria-label` should be `closeLabel`.\n\nvar propTypes = {\n /**\n * Provides an accessible label for the close\n * button. It is used for Assistive Technology when the label text is not\n * readable.\n */\n closeLabel: PropTypes.string,\n\n /**\n * Specify whether the Component should contain a close button\n */\n closeButton: PropTypes.bool,\n\n /**\n * A Callback fired when the close button is clicked. If used directly inside\n * a Modal component, the onHide will automatically be propagated up to the\n * parent Modal `onHide`.\n */\n onHide: PropTypes.func\n};\nvar defaultProps = {\n closeLabel: 'Close',\n closeButton: false\n};\nvar contextTypes = {\n $bs_modal: PropTypes.shape({\n onHide: PropTypes.func\n })\n};\n\nvar ModalHeader =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ModalHeader, _React$Component);\n\n function ModalHeader() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ModalHeader.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n closeLabel = _this$props.closeLabel,\n closeButton = _this$props.closeButton,\n onHide = _this$props.onHide,\n className = _this$props.className,\n children = _this$props.children,\n props = _objectWithoutPropertiesLoose(_this$props, [\"closeLabel\", \"closeButton\", \"onHide\", \"className\", \"children\"]);\n\n var modal = this.context.$bs_modal;\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = getClassSet(bsProps);\n return React.createElement(\"div\", _extends({}, elementProps, {\n className: classNames(className, classes)\n }), closeButton && React.createElement(CloseButton, {\n label: closeLabel,\n onClick: createChainedFunction(modal && modal.onHide, onHide)\n }), children);\n };\n\n return ModalHeader;\n}(React.Component);\n\nModalHeader.propTypes = propTypes;\nModalHeader.defaultProps = defaultProps;\nModalHeader.contextTypes = contextTypes;\nexport default bsClass('modal-header', ModalHeader);","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport { bsClass, getClassSet, splitBsProps } from './utils/bootstrapUtils';\nvar propTypes = {\n componentClass: elementType\n};\nvar defaultProps = {\n componentClass: 'h4'\n};\n\nvar ModalTitle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ModalTitle, _React$Component);\n\n function ModalTitle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = ModalTitle.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.componentClass,\n className = _this$props.className,\n props = _objectWithoutPropertiesLoose(_this$props, [\"componentClass\", \"className\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = getClassSet(bsProps);\n return React.createElement(Component, _extends({}, elementProps, {\n className: classNames(className, classes)\n }));\n };\n\n return ModalTitle;\n}(React.Component);\n\nModalTitle.propTypes = propTypes;\nModalTitle.defaultProps = defaultProps;\nexport default bsClass('modal-title', ModalTitle);","import _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport events from 'dom-helpers/events';\nimport ownerDocument from 'dom-helpers/ownerDocument';\nimport canUseDOM from 'dom-helpers/util/inDOM';\nimport getScrollbarSize from 'dom-helpers/util/scrollbarSize';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport BaseModal from 'react-overlays/lib/Modal';\nimport isOverflowing from 'react-overlays/lib/utils/isOverflowing';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport Fade from './Fade';\nimport Body from './ModalBody';\nimport ModalDialog from './ModalDialog';\nimport Footer from './ModalFooter';\nimport Header from './ModalHeader';\nimport Title from './ModalTitle';\nimport { bsClass, bsSizes, prefix } from './utils/bootstrapUtils';\nimport createChainedFunction from './utils/createChainedFunction';\nimport splitComponentProps from './utils/splitComponentProps';\nimport { Size } from './utils/StyleConfig';\n\nvar propTypes = _extends({}, BaseModal.propTypes, ModalDialog.propTypes, {\n /**\n * Include a backdrop component. Specify 'static' for a backdrop that doesn't\n * trigger an \"onHide\" when clicked.\n */\n backdrop: PropTypes.oneOf(['static', true, false]),\n\n /**\n * Add an optional extra class name to .modal-backdrop\n * It could end up looking like class=\"modal-backdrop foo-modal-backdrop in\".\n */\n backdropClassName: PropTypes.string,\n\n /**\n * Close the modal when escape key is pressed\n */\n keyboard: PropTypes.bool,\n\n /**\n * Open and close the Modal with a slide and fade animation.\n */\n animation: PropTypes.bool,\n\n /**\n * A Component type that provides the modal content Markup. This is a useful\n * prop when you want to use your own styles and markup to create a custom\n * modal component.\n */\n dialogComponentClass: elementType,\n\n /**\n * When `true` The modal will automatically shift focus to itself when it\n * opens, and replace it to the last focused element when it closes.\n * Generally this should never be set to false as it makes the Modal less\n * accessible to assistive technologies, like screen-readers.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * When `true` The modal will prevent focus from leaving the Modal while\n * open. Consider leaving the default value here, as it is necessary to make\n * the Modal work well with assistive technologies, such as screen readers.\n */\n enforceFocus: PropTypes.bool,\n\n /**\n * When `true` The modal will restore focus to previously focused element once\n * modal is hidden\n */\n restoreFocus: PropTypes.bool,\n\n /**\n * When `true` The modal will show itself.\n */\n show: PropTypes.bool,\n\n /**\n * A callback fired when the header closeButton or non-static backdrop is\n * clicked. Required if either are specified.\n */\n onHide: PropTypes.func,\n\n /**\n * Callback fired before the Modal transitions in\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired as the Modal begins to transition in\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the Modal finishes transitioning in\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired right before the Modal transitions out\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired as the Modal begins to transition out\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the Modal finishes transitioning out\n */\n onExited: PropTypes.func,\n\n /**\n * @private\n */\n container: BaseModal.propTypes.container\n});\n\nvar defaultProps = _extends({}, BaseModal.defaultProps, {\n animation: true,\n dialogComponentClass: ModalDialog\n});\n\nvar childContextTypes = {\n $bs_modal: PropTypes.shape({\n onHide: PropTypes.func\n })\n};\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\nfunction DialogTransition(props) {\n return React.createElement(Fade, _extends({}, props, {\n timeout: Modal.TRANSITION_DURATION\n }));\n}\n\nfunction BackdropTransition(props) {\n return React.createElement(Fade, _extends({}, props, {\n timeout: Modal.BACKDROP_TRANSITION_DURATION\n }));\n}\n/* eslint-enable no-use-before-define */\n\n\nvar Modal =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Modal, _React$Component);\n\n function Modal(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n _this.handleDialogBackdropMouseDown = function () {\n _this._waitingForMouseUp = true;\n };\n\n _this.handleMouseUp = function (ev) {\n var dialogNode = _this._modal.getDialogElement();\n\n if (_this._waitingForMouseUp && ev.target === dialogNode) {\n _this._ignoreBackdropClick = true;\n }\n\n _this._waitingForMouseUp = false;\n };\n\n _this.handleEntering = _this.handleEntering.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleWindowResize = _this.handleWindowResize.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleDialogClick = _this.handleDialogClick.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.setModalRef = _this.setModalRef.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.state = {\n style: {}\n };\n return _this;\n }\n\n var _proto = Modal.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n $bs_modal: {\n onHide: this.props.onHide\n }\n };\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // Clean up the listener if we need to.\n this.handleExited();\n };\n\n _proto.setModalRef = function setModalRef(ref) {\n this._modal = ref;\n };\n\n _proto.handleDialogClick = function handleDialogClick(e) {\n if (this._ignoreBackdropClick || e.target !== e.currentTarget) {\n this._ignoreBackdropClick = false;\n return;\n }\n\n this.props.onHide();\n };\n\n _proto.handleEntering = function handleEntering() {\n // FIXME: This should work even when animation is disabled.\n events.on(window, 'resize', this.handleWindowResize);\n this.updateStyle();\n };\n\n _proto.handleExited = function handleExited() {\n // FIXME: This should work even when animation is disabled.\n events.off(window, 'resize', this.handleWindowResize);\n };\n\n _proto.handleWindowResize = function handleWindowResize() {\n this.updateStyle();\n };\n\n _proto.updateStyle = function updateStyle() {\n if (!canUseDOM) {\n return;\n }\n\n var dialogNode = this._modal.getDialogElement();\n\n var dialogHeight = dialogNode.scrollHeight;\n var document = ownerDocument(dialogNode);\n var bodyIsOverflowing = isOverflowing(ReactDOM.findDOMNode(this.props.container || document.body));\n var modalIsOverflowing = dialogHeight > document.documentElement.clientHeight;\n this.setState({\n style: {\n paddingRight: bodyIsOverflowing && !modalIsOverflowing ? getScrollbarSize() : undefined,\n paddingLeft: !bodyIsOverflowing && modalIsOverflowing ? getScrollbarSize() : undefined\n }\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n backdrop = _this$props.backdrop,\n backdropClassName = _this$props.backdropClassName,\n animation = _this$props.animation,\n show = _this$props.show,\n Dialog = _this$props.dialogComponentClass,\n className = _this$props.className,\n style = _this$props.style,\n children = _this$props.children,\n onEntering = _this$props.onEntering,\n onExited = _this$props.onExited,\n props = _objectWithoutPropertiesLoose(_this$props, [\"backdrop\", \"backdropClassName\", \"animation\", \"show\", \"dialogComponentClass\", \"className\", \"style\", \"children\", \"onEntering\", \"onExited\"]);\n\n var _splitComponentProps = splitComponentProps(props, BaseModal),\n baseModalProps = _splitComponentProps[0],\n dialogProps = _splitComponentProps[1];\n\n var inClassName = show && !animation && 'in';\n return React.createElement(BaseModal, _extends({}, baseModalProps, {\n ref: this.setModalRef,\n show: show,\n containerClassName: prefix(props, 'open'),\n transition: animation ? DialogTransition : undefined,\n backdrop: backdrop,\n backdropTransition: animation ? BackdropTransition : undefined,\n backdropClassName: classNames(prefix(props, 'backdrop'), backdropClassName, inClassName),\n onEntering: createChainedFunction(onEntering, this.handleEntering),\n onExited: createChainedFunction(onExited, this.handleExited),\n onMouseUp: this.handleMouseUp\n }), React.createElement(Dialog, _extends({}, dialogProps, {\n style: _extends({}, this.state.style, style),\n className: classNames(className, inClassName),\n onClick: backdrop === true ? this.handleDialogClick : null,\n onMouseDownDialog: this.handleDialogBackdropMouseDown\n }), children));\n };\n\n return Modal;\n}(React.Component);\n\nModal.propTypes = propTypes;\nModal.defaultProps = defaultProps;\nModal.childContextTypes = childContextTypes;\nModal.Body = Body;\nModal.Header = Header;\nModal.Title = Title;\nModal.Footer = Footer;\nModal.Dialog = ModalDialog;\nModal.TRANSITION_DURATION = 300;\nModal.BACKDROP_TRANSITION_DURATION = 150;\nexport default bsClass('modal', bsSizes([Size.LARGE, Size.SMALL], Modal));","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = offset;\n\nvar _contains = _interopRequireDefault(require(\"./contains\"));\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\n\nfunction offset(node) {\n var doc = (0, _ownerDocument.default)(node),\n win = (0, _isWindow.default)(doc),\n docElem = doc && doc.documentElement,\n box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n if (!doc) return; // Make sure it's not a disconnected DOM node\n\n if (!(0, _contains.default)(docElem, node)) return box;\n if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect(); // IE8 getBoundingClientRect doesn't support width & height\n\n box = {\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),\n width: (box.width == null ? node.offsetWidth : box.width) || 0,\n height: (box.height == null ? node.offsetHeight : box.height) || 0\n };\n return box;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = offsetParent;\n\nvar _ownerDocument = _interopRequireDefault(require(\"../ownerDocument\"));\n\nvar _style = _interopRequireDefault(require(\"../style\"));\n\nfunction nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n}\n\nfunction offsetParent(node) {\n var doc = (0, _ownerDocument.default)(node),\n offsetParent = node && node.offsetParent;\n\n while (offsetParent && nodeName(node) !== 'html' && (0, _style.default)(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || doc.documentElement;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;\n if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = scrollTop;\n\nvar _isWindow = _interopRequireDefault(require(\"./isWindow\"));\n\nfunction scrollTop(node, val) {\n var win = (0, _isWindow.default)(node);\n if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;\n if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = position;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _offset = _interopRequireDefault(require(\"./offset\"));\n\nvar _offsetParent = _interopRequireDefault(require(\"./offsetParent\"));\n\nvar _scrollTop = _interopRequireDefault(require(\"./scrollTop\"));\n\nvar _scrollLeft = _interopRequireDefault(require(\"./scrollLeft\"));\n\nvar _style = _interopRequireDefault(require(\"../style\"));\n\nfunction nodeName(node) {\n return node.nodeName && node.nodeName.toLowerCase();\n}\n\nfunction position(node, offsetParent) {\n var parentOffset = {\n top: 0,\n left: 0\n },\n offset; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if ((0, _style.default)(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n offsetParent = offsetParent || (0, _offsetParent.default)(node);\n offset = (0, _offset.default)(node);\n if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset.default)(offsetParent);\n parentOffset.top += parseInt((0, _style.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop.default)(offsetParent) || 0;\n parentOffset.left += parseInt((0, _style.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft.default)(offsetParent) || 0;\n } // Subtract parent offsets and node margins\n\n\n return (0, _extends2.default)({}, offset, {\n top: offset.top - parentOffset.top - (parseInt((0, _style.default)(node, 'marginTop'), 10) || 0),\n left: offset.left - parentOffset.left - (parseInt((0, _style.default)(node, 'marginLeft'), 10) || 0)\n });\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nexports.__esModule = true;\nexports.default = calculatePosition;\n\nvar _offset = require('dom-helpers/query/offset');\n\nvar _offset2 = _interopRequireDefault(_offset);\n\nvar _position = require('dom-helpers/query/position');\n\nvar _position2 = _interopRequireDefault(_position);\n\nvar _scrollTop = require('dom-helpers/query/scrollTop');\n\nvar _scrollTop2 = _interopRequireDefault(_scrollTop);\n\nvar _ownerDocument = require('./ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getContainerDimensions(containerNode) {\n var width = void 0,\n height = void 0,\n scroll = void 0;\n\n if (containerNode.tagName === 'BODY') {\n width = window.innerWidth;\n height = window.innerHeight;\n\n scroll = (0, _scrollTop2.default)((0, _ownerDocument2.default)(containerNode).documentElement) || (0, _scrollTop2.default)(containerNode);\n } else {\n var _getOffset = (0, _offset2.default)(containerNode);\n\n width = _getOffset.width;\n height = _getOffset.height;\n\n scroll = (0, _scrollTop2.default)(containerNode);\n }\n\n return { width: width, height: height, scroll: scroll };\n}\n\nfunction getTopDelta(top, overlayHeight, container, padding) {\n var containerDimensions = getContainerDimensions(container);\n var containerScroll = containerDimensions.scroll;\n var containerHeight = containerDimensions.height;\n\n var topEdgeOffset = top - padding - containerScroll;\n var bottomEdgeOffset = top + padding - containerScroll + overlayHeight;\n\n if (topEdgeOffset < 0) {\n return -topEdgeOffset;\n } else if (bottomEdgeOffset > containerHeight) {\n return containerHeight - bottomEdgeOffset;\n } else {\n return 0;\n }\n}\n\nfunction getLeftDelta(left, overlayWidth, container, padding) {\n var containerDimensions = getContainerDimensions(container);\n var containerWidth = containerDimensions.width;\n\n var leftEdgeOffset = left - padding;\n var rightEdgeOffset = left + padding + overlayWidth;\n\n if (leftEdgeOffset < 0) {\n return -leftEdgeOffset;\n } else if (rightEdgeOffset > containerWidth) {\n return containerWidth - rightEdgeOffset;\n }\n\n return 0;\n}\n\nfunction calculatePosition(placement, overlayNode, target, container, padding) {\n var childOffset = container.tagName === 'BODY' ? (0, _offset2.default)(target) : (0, _position2.default)(target, container);\n\n var _getOffset2 = (0, _offset2.default)(overlayNode),\n overlayHeight = _getOffset2.height,\n overlayWidth = _getOffset2.width;\n\n var positionLeft = void 0,\n positionTop = void 0,\n arrowOffsetLeft = void 0,\n arrowOffsetTop = void 0;\n\n if (placement === 'left' || placement === 'right') {\n positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;\n\n if (placement === 'left') {\n positionLeft = childOffset.left - overlayWidth;\n } else {\n positionLeft = childOffset.left + childOffset.width;\n }\n\n var topDelta = getTopDelta(positionTop, overlayHeight, container, padding);\n\n positionTop += topDelta;\n arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%';\n arrowOffsetLeft = void 0;\n } else if (placement === 'top' || placement === 'bottom') {\n positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;\n\n if (placement === 'top') {\n positionTop = childOffset.top - overlayHeight;\n } else {\n positionTop = childOffset.top + childOffset.height;\n }\n\n var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding);\n\n positionLeft += leftDelta;\n arrowOffsetLeft = 50 * (1 - 2 * leftDelta / overlayWidth) + '%';\n arrowOffsetTop = void 0;\n } else {\n throw new Error('calcOverlayPosition(): No such placement of \"' + placement + '\" found.');\n }\n\n return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop };\n}\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _componentOrElement = require('prop-types-extra/lib/componentOrElement');\n\nvar _componentOrElement2 = _interopRequireDefault(_componentOrElement);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _calculatePosition = require('./utils/calculatePosition');\n\nvar _calculatePosition2 = _interopRequireDefault(_calculatePosition);\n\nvar _getContainer = require('./utils/getContainer');\n\nvar _getContainer2 = _interopRequireDefault(_getContainer);\n\nvar _ownerDocument = require('./utils/ownerDocument');\n\nvar _ownerDocument2 = _interopRequireDefault(_ownerDocument);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * The Position component calculates the coordinates for its child, to position\n * it relative to a `target` component or node. Useful for creating callouts\n * and tooltips, the Position component injects a `style` props with `left` and\n * `top` values for positioning your component.\n *\n * It also injects \"arrow\" `left`, and `top` values for styling callout arrows\n * for giving your components a sense of directionality.\n */\nvar Position = function (_React$Component) {\n _inherits(Position, _React$Component);\n\n function Position(props, context) {\n _classCallCheck(this, Position);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.getTarget = function () {\n var target = _this.props.target;\n\n var targetElement = typeof target === 'function' ? target() : target;\n return targetElement && _reactDom2.default.findDOMNode(targetElement) || null;\n };\n\n _this.maybeUpdatePosition = function (placementChanged) {\n var target = _this.getTarget();\n\n if (!_this.props.shouldUpdatePosition && target === _this._lastTarget && !placementChanged) {\n return;\n }\n\n _this.updatePosition(target);\n };\n\n _this.state = {\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n };\n\n _this._needsFlush = false;\n _this._lastTarget = null;\n return _this;\n }\n\n Position.prototype.componentDidMount = function componentDidMount() {\n this.updatePosition(this.getTarget());\n };\n\n Position.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps() {\n this._needsFlush = true;\n };\n\n Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this._needsFlush) {\n this._needsFlush = false;\n this.maybeUpdatePosition(this.props.placement !== prevProps.placement);\n }\n };\n\n Position.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n props = _objectWithoutProperties(_props, ['children', 'className']);\n\n var _state = this.state,\n positionLeft = _state.positionLeft,\n positionTop = _state.positionTop,\n arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop']);\n\n // These should not be forwarded to the child.\n\n\n delete props.target;\n delete props.container;\n delete props.containerPadding;\n delete props.shouldUpdatePosition;\n\n var child = _react2.default.Children.only(children);\n return (0, _react.cloneElement)(child, _extends({}, props, arrowPosition, {\n // FIXME: Don't forward `positionLeft` and `positionTop` via both props\n // and `props.style`.\n positionLeft: positionLeft,\n positionTop: positionTop,\n className: (0, _classnames2.default)(className, child.props.className),\n style: _extends({}, child.props.style, {\n left: positionLeft,\n top: positionTop\n })\n }));\n };\n\n Position.prototype.updatePosition = function updatePosition(target) {\n this._lastTarget = target;\n\n if (!target) {\n this.setState({\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n });\n\n return;\n }\n\n var overlay = _reactDom2.default.findDOMNode(this);\n var container = (0, _getContainer2.default)(this.props.container, (0, _ownerDocument2.default)(this).body);\n\n this.setState((0, _calculatePosition2.default)(this.props.placement, overlay, target, container, this.props.containerPadding));\n };\n\n return Position;\n}(_react2.default.Component);\n\nPosition.propTypes = {\n /**\n * A node, element, or function that returns either. The child will be\n * be positioned next to the `target` specified.\n */\n target: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n\n /**\n * \"offsetParent\" of the component\n */\n container: _propTypes2.default.oneOfType([_componentOrElement2.default, _propTypes2.default.func]),\n /**\n * Minimum spacing in pixels between container border and component border\n */\n containerPadding: _propTypes2.default.number,\n /**\n * How to position the component relative to the target\n */\n placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),\n /**\n * Whether the position should be changed on each update\n */\n shouldUpdatePosition: _propTypes2.default.bool\n};\n\nPosition.displayName = 'Position';\n\nPosition.defaultProps = {\n containerPadding: 0,\n placement: 'right',\n shouldUpdatePosition: false\n};\n\nexports.default = Position;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _elementType = require('prop-types-extra/lib/elementType');\n\nvar _elementType2 = _interopRequireDefault(_elementType);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Portal = require('./Portal');\n\nvar _Portal2 = _interopRequireDefault(_Portal);\n\nvar _Position = require('./Position');\n\nvar _Position2 = _interopRequireDefault(_Position);\n\nvar _RootCloseWrapper = require('./RootCloseWrapper');\n\nvar _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Built on top of `<Position/>` and `<Portal/>`, the overlay component is great for custom tooltip overlays.\n */\nvar Overlay = function (_React$Component) {\n _inherits(Overlay, _React$Component);\n\n function Overlay(props, context) {\n _classCallCheck(this, Overlay);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this.handleHidden = function () {\n _this.setState({ exited: true });\n\n if (_this.props.onExited) {\n var _this$props;\n\n (_this$props = _this.props).onExited.apply(_this$props, arguments);\n }\n };\n\n _this.state = { exited: !props.show };\n _this.onHiddenListener = _this.handleHidden.bind(_this);\n return _this;\n }\n\n Overlay.prototype.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.show) {\n this.setState({ exited: false });\n } else if (!nextProps.transition) {\n // Otherwise let handleHidden take care of marking exited.\n this.setState({ exited: true });\n }\n };\n\n Overlay.prototype.render = function render() {\n var _props = this.props,\n container = _props.container,\n containerPadding = _props.containerPadding,\n target = _props.target,\n placement = _props.placement,\n shouldUpdatePosition = _props.shouldUpdatePosition,\n rootClose = _props.rootClose,\n children = _props.children,\n Transition = _props.transition,\n props = _objectWithoutProperties(_props, ['container', 'containerPadding', 'target', 'placement', 'shouldUpdatePosition', 'rootClose', 'children', 'transition']);\n\n // Don't un-render the overlay while it's transitioning out.\n\n\n var mountOverlay = props.show || Transition && !this.state.exited;\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n var child = children;\n\n // Position is be inner-most because it adds inline styles into the child,\n // which the other wrappers don't forward correctly.\n child = _react2.default.createElement(\n _Position2.default,\n { container: container, containerPadding: containerPadding, target: target, placement: placement, shouldUpdatePosition: shouldUpdatePosition },\n child\n );\n\n if (Transition) {\n var onExit = props.onExit,\n onExiting = props.onExiting,\n onEnter = props.onEnter,\n onEntering = props.onEntering,\n onEntered = props.onEntered;\n\n // This animates the child node by injecting props, so it must precede\n // anything that adds a wrapping div.\n\n child = _react2.default.createElement(\n Transition,\n {\n 'in': props.show,\n appear: true,\n onExit: onExit,\n onExiting: onExiting,\n onExited: this.onHiddenListener,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n },\n child\n );\n }\n\n // This goes after everything else because it adds a wrapping div.\n if (rootClose) {\n child = _react2.default.createElement(\n _RootCloseWrapper2.default,\n {\n onRootClose: props.onHide,\n event: props.rootCloseEvent\n },\n child\n );\n }\n\n return _react2.default.createElement(\n _Portal2.default,\n { container: container },\n child\n );\n };\n\n return Overlay;\n}(_react2.default.Component);\n\nOverlay.propTypes = _extends({}, _Portal2.default.propTypes, _Position2.default.propTypes, {\n\n /**\n * Set the visibility of the Overlay\n */\n show: _propTypes2.default.bool,\n\n /**\n * Specify whether the overlay should trigger `onHide` when the user clicks outside the overlay\n */\n rootClose: _propTypes2.default.bool,\n\n /**\n * Specify event for toggling overlay\n */\n rootCloseEvent: _RootCloseWrapper2.default.propTypes.event,\n\n /**\n * A Callback fired by the Overlay when it wishes to be hidden.\n *\n * __required__ when `rootClose` is `true`.\n *\n * @type func\n */\n onHide: function onHide(props) {\n var propType = _propTypes2.default.func;\n if (props.rootClose) {\n propType = propType.isRequired;\n }\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return propType.apply(undefined, [props].concat(args));\n },\n\n\n /**\n * A `react-transition-group@2.0.0` `<Transition/>` component\n * used to animate the overlay as it changes visibility.\n */\n transition: _elementType2.default,\n\n /**\n * Callback fired before the Overlay transitions in\n */\n onEnter: _propTypes2.default.func,\n\n /**\n * Callback fired as the Overlay begins to transition in\n */\n onEntering: _propTypes2.default.func,\n\n /**\n * Callback fired after the Overlay finishes transitioning in\n */\n onEntered: _propTypes2.default.func,\n\n /**\n * Callback fired right before the Overlay transitions out\n */\n onExit: _propTypes2.default.func,\n\n /**\n * Callback fired as the Overlay begins to transition out\n */\n onExiting: _propTypes2.default.func,\n\n /**\n * Callback fired after the Overlay finishes transitioning out\n */\n onExited: _propTypes2.default.func\n});\n\nexports.default = Overlay;\nmodule.exports = exports['default'];","import _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport BaseOverlay from 'react-overlays/lib/Overlay';\nimport elementType from 'prop-types-extra/lib/elementType';\nimport Fade from './Fade';\n\nvar propTypes = _extends({}, BaseOverlay.propTypes, {\n /**\n * Set the visibility of the Overlay\n */\n show: PropTypes.bool,\n\n /**\n * Specify whether the overlay should trigger onHide when the user clicks outside the overlay\n */\n rootClose: PropTypes.bool,\n\n /**\n * A callback invoked by the overlay when it wishes to be hidden. Required if\n * `rootClose` is specified.\n */\n onHide: PropTypes.func,\n\n /**\n * Use animation\n */\n animation: PropTypes.oneOfType([PropTypes.bool, elementType]),\n\n /**\n * Callback fired before the Overlay transitions in\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired as the Overlay begins to transition in\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the Overlay finishes transitioning in\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired right before the Overlay transitions out\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired as the Overlay begins to transition out\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the Overlay finishes transitioning out\n */\n onExited: PropTypes.func,\n\n /**\n * Sets the direction of the Overlay.\n */\n placement: PropTypes.oneOf(['top', 'right', 'bottom', 'left'])\n});\n\nvar defaultProps = {\n animation: Fade,\n rootClose: false,\n show: false,\n placement: 'right'\n};\n\nvar Overlay =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Overlay, _React$Component);\n\n function Overlay() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Overlay.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n animation = _this$props.animation,\n children = _this$props.children,\n props = _objectWithoutPropertiesLoose(_this$props, [\"animation\", \"children\"]);\n\n var transition = animation === true ? Fade : animation || null;\n var child;\n\n if (!transition) {\n child = cloneElement(children, {\n className: classNames(children.props.className, 'in')\n });\n } else {\n child = children;\n }\n\n return React.createElement(BaseOverlay, _extends({}, props, {\n transition: transition\n }), child);\n };\n\n return Overlay;\n}(React.Component);\n\nOverlay.propTypes = propTypes;\nOverlay.defaultProps = defaultProps;\nexport default Overlay;","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\n","module.exports = require(\"core-js/library/fn/array/is-array\");","import _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _Array$isArray from \"@babel/runtime-corejs2/core-js/array/is-array\";\nimport contains from 'dom-helpers/query/contains';\nimport React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport warning from 'warning';\nimport Overlay from './Overlay';\nimport createChainedFunction from './utils/createChainedFunction';\n/**\n * Check if value one is inside or equal to the of value\n *\n * @param {string} one\n * @param {string|array} of\n * @returns {boolean}\n */\n\nfunction isOneOf(one, of) {\n if (_Array$isArray(of)) {\n return of.indexOf(one) >= 0;\n }\n\n return one === of;\n}\n\nvar triggerType = PropTypes.oneOf(['click', 'hover', 'focus']);\n\nvar propTypes = _extends({}, Overlay.propTypes, {\n /**\n * Specify which action or actions trigger Overlay visibility\n */\n trigger: PropTypes.oneOfType([triggerType, PropTypes.arrayOf(triggerType)]),\n\n /**\n * A millisecond delay amount to show and hide the Overlay once triggered\n */\n delay: PropTypes.number,\n\n /**\n * A millisecond delay amount before showing the Overlay once triggered.\n */\n delayShow: PropTypes.number,\n\n /**\n * A millisecond delay amount before hiding the Overlay once triggered.\n */\n delayHide: PropTypes.number,\n // FIXME: This should be `defaultShow`.\n\n /**\n * The initial visibility state of the Overlay. For more nuanced visibility\n * control, consider using the Overlay component directly.\n */\n defaultOverlayShown: PropTypes.bool,\n\n /**\n * An element or text to overlay next to the target.\n */\n overlay: PropTypes.node.isRequired,\n\n /**\n * @private\n */\n onBlur: PropTypes.func,\n\n /**\n * @private\n */\n onClick: PropTypes.func,\n\n /**\n * @private\n */\n onFocus: PropTypes.func,\n\n /**\n * @private\n */\n onMouseOut: PropTypes.func,\n\n /**\n * @private\n */\n onMouseOver: PropTypes.func,\n // Overridden props from `<Overlay>`.\n\n /**\n * @private\n */\n target: PropTypes.oneOf([null]),\n\n /**\n * @private\n */\n onHide: PropTypes.oneOf([null]),\n\n /**\n * @private\n */\n show: PropTypes.oneOf([null])\n});\n\nvar defaultProps = {\n defaultOverlayShown: false,\n trigger: ['hover', 'focus']\n};\n\nvar OverlayTrigger =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(OverlayTrigger, _React$Component);\n\n function OverlayTrigger(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n _this.handleToggle = _this.handleToggle.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleDelayedShow = _this.handleDelayedShow.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleDelayedHide = _this.handleDelayedHide.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.handleHide = _this.handleHide.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n _this.handleMouseOver = function (e) {\n return _this.handleMouseOverOut(_this.handleDelayedShow, e, 'fromElement');\n };\n\n _this.handleMouseOut = function (e) {\n return _this.handleMouseOverOut(_this.handleDelayedHide, e, 'toElement');\n };\n\n _this._mountNode = null;\n _this.state = {\n show: props.defaultOverlayShown\n };\n return _this;\n }\n\n var _proto = OverlayTrigger.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._mountNode = document.createElement('div');\n this.renderOverlay();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.renderOverlay();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n ReactDOM.unmountComponentAtNode(this._mountNode);\n this._mountNode = null;\n clearTimeout(this._hoverShowDelay);\n clearTimeout(this._hoverHideDelay);\n };\n\n _proto.handleDelayedHide = function handleDelayedHide() {\n var _this2 = this;\n\n if (this._hoverShowDelay != null) {\n clearTimeout(this._hoverShowDelay);\n this._hoverShowDelay = null;\n return;\n }\n\n if (!this.state.show || this._hoverHideDelay != null) {\n return;\n }\n\n var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay;\n\n if (!delay) {\n this.hide();\n return;\n }\n\n this._hoverHideDelay = setTimeout(function () {\n _this2._hoverHideDelay = null;\n\n _this2.hide();\n }, delay);\n };\n\n _proto.handleDelayedShow = function handleDelayedShow() {\n var _this3 = this;\n\n if (this._hoverHideDelay != null) {\n clearTimeout(this._hoverHideDelay);\n this._hoverHideDelay = null;\n return;\n }\n\n if (this.state.show || this._hoverShowDelay != null) {\n return;\n }\n\n var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;\n\n if (!delay) {\n this.show();\n return;\n }\n\n this._hoverShowDelay = setTimeout(function () {\n _this3._hoverShowDelay = null;\n\n _this3.show();\n }, delay);\n };\n\n _proto.handleHide = function handleHide() {\n this.hide();\n }; // Simple implementation of mouseEnter and mouseLeave.\n // React's built version is broken: https://github.com/facebook/react/issues/4251\n // for cases when the trigger is disabled and mouseOut/Over can cause flicker\n // moving from one child element to another.\n\n\n _proto.handleMouseOverOut = function handleMouseOverOut(handler, e, relatedNative) {\n var target = e.currentTarget;\n var related = e.relatedTarget || e.nativeEvent[relatedNative];\n\n if ((!related || related !== target) && !contains(target, related)) {\n handler(e);\n }\n };\n\n _proto.handleToggle = function handleToggle() {\n if (this.state.show) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.hide = function hide() {\n this.setState({\n show: false\n });\n };\n\n _proto.makeOverlay = function makeOverlay(overlay, props) {\n return React.createElement(Overlay, _extends({}, props, {\n show: this.state.show,\n onHide: this.handleHide,\n target: this\n }), overlay);\n };\n\n _proto.show = function show() {\n this.setState({\n show: true\n });\n };\n\n _proto.renderOverlay = function renderOverlay() {\n ReactDOM.unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n trigger = _this$props.trigger,\n overlay = _this$props.overlay,\n children = _this$props.children,\n onBlur = _this$props.onBlur,\n onClick = _this$props.onClick,\n onFocus = _this$props.onFocus,\n onMouseOut = _this$props.onMouseOut,\n onMouseOver = _this$props.onMouseOver,\n props = _objectWithoutPropertiesLoose(_this$props, [\"trigger\", \"overlay\", \"children\", \"onBlur\", \"onClick\", \"onFocus\", \"onMouseOut\", \"onMouseOver\"]);\n\n delete props.delay;\n delete props.delayShow;\n delete props.delayHide;\n delete props.defaultOverlayShown;\n var child = React.Children.only(children);\n var childProps = child.props;\n var triggerProps = {};\n\n if (this.state.show) {\n triggerProps['aria-describedby'] = overlay.props.id;\n } // FIXME: The logic here for passing through handlers on this component is\n // inconsistent. We shouldn't be passing any of these props through.\n\n\n triggerProps.onClick = createChainedFunction(childProps.onClick, onClick);\n\n if (isOneOf('click', trigger)) {\n triggerProps.onClick = createChainedFunction(triggerProps.onClick, this.handleToggle);\n }\n\n if (isOneOf('hover', trigger)) {\n process.env.NODE_ENV !== \"production\" ? warning(!(trigger === 'hover'), '[react-bootstrap] Specifying only the `\"hover\"` trigger limits the ' + 'visibility of the overlay to just mouse users. Consider also ' + 'including the `\"focus\"` trigger so that touch and keyboard only ' + 'users can see the overlay as well.') : void 0;\n triggerProps.onMouseOver = createChainedFunction(childProps.onMouseOver, onMouseOver, this.handleMouseOver);\n triggerProps.onMouseOut = createChainedFunction(childProps.onMouseOut, onMouseOut, this.handleMouseOut);\n }\n\n if (isOneOf('focus', trigger)) {\n triggerProps.onFocus = createChainedFunction(childProps.onFocus, onFocus, this.handleDelayedShow);\n triggerProps.onBlur = createChainedFunction(childProps.onBlur, onBlur, this.handleDelayedHide);\n }\n\n this._overlay = this.makeOverlay(overlay, props);\n return cloneElement(child, triggerProps);\n };\n\n return OverlayTrigger;\n}(React.Component);\n\nOverlayTrigger.propTypes = propTypes;\nOverlayTrigger.defaultProps = defaultProps;\nexport default OverlayTrigger;","import _extends from \"@babel/runtime-corejs2/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime-corejs2/helpers/esm/inheritsLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport isRequiredForA11y from 'prop-types-extra/lib/isRequiredForA11y';\nimport { bsClass, getClassSet, prefix, splitBsProps } from './utils/bootstrapUtils';\nvar propTypes = {\n /**\n * An html id attribute, necessary for accessibility\n * @type {string}\n * @required\n */\n id: isRequiredForA11y(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n\n /**\n * Sets the direction the Popover is positioned towards.\n */\n placement: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),\n\n /**\n * The \"top\" position value for the Popover.\n */\n positionTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The \"left\" position value for the Popover.\n */\n positionLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The \"top\" position value for the Popover arrow.\n */\n arrowOffsetTop: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The \"left\" position value for the Popover arrow.\n */\n arrowOffsetLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * Title content\n */\n title: PropTypes.node\n};\nvar defaultProps = {\n placement: 'right'\n};\n\nvar Popover =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Popover, _React$Component);\n\n function Popover() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n _proto.render = function render() {\n var _extends2;\n\n var _this$props = this.props,\n placement = _this$props.placement,\n positionTop = _this$props.positionTop,\n positionLeft = _this$props.positionLeft,\n arrowOffsetTop = _this$props.arrowOffsetTop,\n arrowOffsetLeft = _this$props.arrowOffsetLeft,\n title = _this$props.title,\n className = _this$props.className,\n style = _this$props.style,\n children = _this$props.children,\n props = _objectWithoutPropertiesLoose(_this$props, [\"placement\", \"positionTop\", \"positionLeft\", \"arrowOffsetTop\", \"arrowOffsetLeft\", \"title\", \"className\", \"style\", \"children\"]);\n\n var _splitBsProps = splitBsProps(props),\n bsProps = _splitBsProps[0],\n elementProps = _splitBsProps[1];\n\n var classes = _extends({}, getClassSet(bsProps), (_extends2 = {}, _extends2[placement] = true, _extends2));\n\n var outerStyle = _extends({\n display: 'block',\n top: positionTop,\n left: positionLeft\n }, style);\n\n var arrowStyle = {\n top: arrowOffsetTop,\n left: arrowOffsetLeft\n };\n return React.createElement(\"div\", _extends({}, elementProps, {\n role: \"tooltip\",\n className: classNames(className, classes),\n style: outerStyle\n }), React.createElement(\"div\", {\n className: \"arrow\",\n style: arrowStyle\n }), title && React.createElement(\"h3\", {\n className: prefix(bsProps, 'title')\n }, title), React.createElement(\"div\", {\n className: prefix(bsProps, 'content')\n }, children));\n };\n\n return Popover;\n}(React.Component);\n\nPopover.propTypes = propTypes;\nPopover.defaultProps = defaultProps;\nexport default bsClass('popover', Popover);","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","import axios from \"axios\";\n\nclass Api {\n saveReportSchedule(id, state) {\n const formData = {\n report_schedule: {\n report: state.reportTypeKey,\n filters: state.searchFilters,\n start_date: state.startDate,\n week_days: state.weekDays.map(item => item.value),\n export_type: state.exportType,\n report_time: state.reportTime,\n cc_users: state.ccUsers.map(user => delete user['readOnly?'] && user),\n report_interval: state.reportInterval\n }\n };\n\n const noId = id === null || id === undefined;\n\n return noId ?\n axios.post('/admin/reports/schedules.json', formData) :\n axios.put(`/admin/reports/schedules/${id}.json`, formData)\n }\n\n fetchUsers(venueId, reportTypeKey) {\n const params = { venue_id: venueId, report_type: reportTypeKey };\n return axios.get('/admin/reports/schedules/venue_users.json', { params: params })\n }\n}\n\nconst api = new Api();\n\nexport default api;","/*\n\nBased off glamor's StyleSheet, thanks Sunil â¤ï¸\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3)\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && characters.charCodeAt(length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset:\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule) {\n\t\t\t\t\t\t\t\t\t// d m s\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\nexport function prefix (value, length) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// flex, flex-direction\n\t\tcase 6828: case 4268:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// (s)ticky?\n\t\t\tif (charat(value, length + 1) !== 115)\n\t\t\t\tbreak\n\t\t// display: (flex|inline-flex)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n\t\t\t\t// stic(k)y\n\t\t\t\tcase 107:\n\t\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\t\t// (inline-)?fl(e)x\n\t\t\t\tcase 101:\n\t\t\t\t\treturn replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t}\n\t\t\tbreak\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t}\n\n\t\t\treturn WEBKIT + value + MS + value + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length)\n\t\t\t\t\tbreak\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = element.parent === children[0]; // in nested rules comments become children of the \"auto-inserted\" rule\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? children[0].children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","import * as React from 'react';\nimport { useLayoutEffect } from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-6a883da9.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-6a883da9.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.4\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": \"./macro.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.10.0\",\n\t\t\"@emotion/cache\": \"^11.10.0\",\n\t\t\"@emotion/serialize\": \"^1.1.0\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.18.5\",\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.10.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.0\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.4\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": \"./macro.js\"\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\t_createClass(AutosizeInput, null, [{\n\t\tkey: 'getDerivedStateFromProps',\n\t\tvalue: function getDerivedStateFromProps(props, state) {\n\t\t\tvar id = props.id;\n\n\t\t\treturn id !== state.prevId ? { inputId: id || generateId(), prevId: id } : null;\n\t\t}\n\t}]);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId(),\n\t\t\tprevId: props.id\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { jsx, keyframes, css as css$2, ClassNames } from '@emotion/react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/esm/taggedTemplateLiteral';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\nimport AutosizeInput from 'react-input-autosize';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _defineProperty$1 from '@babel/runtime/helpers/esm/defineProperty';\nimport { createContext, Component } from 'react';\nimport { createPortal } from 'react-dom';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\n// ==============================\n// NO OP\n// ==============================\nvar noop = function noop() {};\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\n\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, state, className) {\n var arr = [className];\n\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n} // ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n}; // ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"]);\n\n return _objectSpread2({}, innerProps);\n}; // ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n\n return inputValue;\n} // ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n} // Normalized Scroll Top\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n} // Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n} // Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\n\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n\n animateScroll();\n} // Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n} // ==============================\n// Get bounding client object\n// ==============================\n// cannot get keys using array notation with DOMRect\n\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n} // ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n} // ==============================\n// Passive Event Detector\n// ==============================\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\n\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n\n}; // check for SSR\n\nvar w = typeof window !== 'undefined' ? window : {};\n\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\n\nvar supportsPassiveEvents = passiveOptionAccessed;\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: maxHeight\n }; // something went wrong, return default state\n\n if (!menuEl || !menuEl.offsetParent) return defaultState; // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n } // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n } // 4. Forked beviour when there isn't enough space below\n // AUTO: flip the menu, render above\n\n\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - spacing.controlHeight, maxHeight);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n } // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n\n\n if (placement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n }\n\n break;\n\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 2: the menu will fit, if scrolled\n\n\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: maxHeight\n };\n } // 3: the menu will fit, if constrained\n\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight; // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n } // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n\n\n return {\n placement: 'bottom',\n maxHeight: maxHeight\n };\n\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(placement, \"\\\".\"));\n } // fulfil contract with flow: implicit return value of undefined\n\n\n return defaultState;\n} // Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\n\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {\n label: 'menu'\n }, _defineProperty$1(_ref3, alignToControl(placement), '100%'), _defineProperty$1(_ref3, \"backgroundColor\", colors.neutral0), _defineProperty$1(_ref3, \"borderRadius\", borderRadius), _defineProperty$1(_ref3, \"boxShadow\", '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), _defineProperty$1(_ref3, \"marginBottom\", spacing.menuGutter), _defineProperty$1(_ref3, \"marginTop\", spacing.menuGutter), _defineProperty$1(_ref3, \"position\", 'absolute'), _defineProperty$1(_ref3, \"width\", '100%'), _defineProperty$1(_ref3, \"zIndex\", 1), _ref3;\n};\nvar PortalPlacementContext = /*#__PURE__*/createContext({\n getPortalPlacement: null\n}); // NOTE: internal only\n\nvar MenuPlacer = /*#__PURE__*/function (_Component) {\n _inherits(MenuPlacer, _Component);\n\n var _super = _createSuper(MenuPlacer);\n\n function MenuPlacer() {\n var _this;\n\n _classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n };\n\n _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n if (!ref) return; // DO NOT scroll if position is fixed\n\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n var getPortalPlacement = _this.context.getPortalPlacement;\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n };\n\n _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n return _objectSpread2(_objectSpread2({}, _this.props), {}, {\n placement: placement,\n maxHeight: _this.state.maxHeight\n });\n };\n\n return _this;\n }\n\n _createClass(MenuPlacer, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n\n return MenuPlacer;\n}(Component);\nMenuPlacer.contextType = PortalPlacementContext;\n\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('menu', props),\n className: cx({\n menu: true\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return jsx(\"div\", _extends({\n css: getStyles('menuList', props),\n className: cx({\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n }, innerProps), children);\n}; // ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\"),\n textAlign: 'center'\n };\n};\n\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('noOptionsMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps), children);\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('loadingMessage', props),\n className: cx({\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps), children);\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n}; // ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref6) {\n var rect = _ref6.rect,\n offset = _ref6.offset,\n position = _ref6.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = /*#__PURE__*/function (_Component2) {\n _inherits(MenuPortal, _Component2);\n\n var _super2 = _createSuper(MenuPortal);\n\n function MenuPortal() {\n var _this2;\n\n _classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _this2.state = {\n placement: null\n };\n\n _this2.getPortalPlacement = function (_ref7) {\n var placement = _ref7.placement;\n var initialPlacement = coercePlacement(_this2.props.menuPlacement); // avoid re-renders if the placement has not changed\n\n if (placement !== initialPlacement) {\n _this2.setState({\n placement: placement\n });\n }\n };\n\n return _this2;\n }\n\n _createClass(MenuPortal, [{\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n appendTo = _this$props2.appendTo,\n children = _this$props2.children,\n className = _this$props2.className,\n controlElement = _this$props2.controlElement,\n cx = _this$props2.cx,\n innerProps = _this$props2.innerProps,\n menuPlacement = _this$props2.menuPlacement,\n position = _this$props2.menuPosition,\n getStyles = _this$props2.getStyles;\n var isFixed = position === 'fixed'; // bail early if required elements aren't present\n\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = {\n offset: offset,\n position: position,\n rect: rect\n }; // same wrapper element whether fixed or portalled\n\n var menuWrapper = jsx(\"div\", _extends({\n css: getStyles('menuPortal', state),\n className: cx({\n 'menu-portal': true\n }, className)\n }, innerProps), children);\n return jsx(PortalPlacementContext.Provider, {\n value: {\n getPortalPlacement: this.getPortalPlacement\n }\n }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);\n }\n }]);\n\n return MenuPortal;\n}(Component);\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('container', props),\n className: cx({\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\"),\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n getStyles = props.getStyles,\n hasValue = props.hasValue;\n return jsx(\"div\", _extends({\n css: getStyles('valueContainer', props),\n className: cx({\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n }, innerProps), children);\n}; // ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n innerProps = props.innerProps,\n getStyles = props.getStyles;\n return jsx(\"div\", _extends({\n css: getStyles('indicatorsContainer', props),\n className: cx({\n indicators: true\n }, className)\n }, innerProps), children);\n};\n\nvar _templateObject;\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n name: \"tj5bde-Svg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDb21tb25Qcm9wcywgVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBJY29uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IFN2ZyA9ICh7IHNpemUsIC4uLnByb3BzIH06IHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk0xNC4zNDggMTQuODQ5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwbC0yLjY1MS0zLjAzMC0yLjY1MSAzLjAyOWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMC0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOSAwLTEuNjk3bDIuNzU4LTMuMTUtMi43NTktMy4xNTJjLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI4IDAtMS42OTdzMS4yMjgtMC40NjkgMS42OTcgMGwyLjY1MiAzLjAzMSAyLjY1MS0zLjAzMWMwLjQ2OS0wLjQ2OSAxLjIyOC0wLjQ2OSAxLjY5NyAwczAuNDY5IDEuMjI5IDAgMS42OTdsLTIuNzU4IDMuMTUyIDIuNzU4IDMuMTVjMC40NjkgMC40NjkgMC40NjkgMS4yMjkgMCAxLjY5OHpcIiAvPlxuICA8L1N2Zz5cbik7XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IGFueSkgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEluZGljYXRvclByb3BzID0gQ29tbW9uUHJvcHMgJiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuOiBOb2RlLFxuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IGFueSxcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgLyoqIFdoZXRoZXIgdGhlIHRleHQgaXMgcmlnaHQgdG8gbGVmdCAqL1xuICBpc1J0bDogYm9vbGVhbixcbn07XG5cbmNvbnN0IGJhc2VDU1MgPSAoe1xuICBpc0ZvY3VzZWQsXG4gIHRoZW1lOiB7XG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIGNvbG9ycyxcbiAgfSxcbn06IEluZGljYXRvclByb3BzKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvckNvbnRhaW5lcicsXG4gIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG5cbiAgJzpob3Zlcic6IHtcbiAgICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw4MCA6IGNvbG9ycy5uZXV0cmFsNDAsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IChwcm9wczogSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnZHJvcGRvd25JbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IChwcm9wczogSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnY2xlYXJJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudHlwZSBTZXBhcmF0b3JTdGF0ZSA9IHsgaXNEaXNhYmxlZDogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogQ29tbW9uUHJvcHMgJiBTZXBhcmF0b3JTdGF0ZSkgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JTZXBhcmF0b3InLFxuICBhbGlnblNlbGY6ICdzdHJldGNoJyxcbiAgYmFja2dyb3VuZENvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWwxMCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIG1hcmdpbkJvdHRvbTogYmFzZVVuaXQgKiAyLFxuICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMixcbiAgd2lkdGg6IDEsXG59KTtcblxuZXhwb3J0IGNvbnN0IEluZGljYXRvclNlcGFyYXRvciA9IChwcm9wczogSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdpbmRpY2F0b3JTZXBhcmF0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KHsgJ2luZGljYXRvci1zZXBhcmF0b3InOiB0cnVlIH0sIGNsYXNzTmFtZSl9XG4gICAgLz5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTG9hZGluZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IGxvYWRpbmdEb3RBbmltYXRpb25zID0ga2V5ZnJhbWVzYFxuICAwJSwgODAlLCAxMDAlIHsgb3BhY2l0eTogMDsgfVxuICA0MCUgeyBvcGFjaXR5OiAxOyB9XG5gO1xuXG5leHBvcnQgY29uc3QgbG9hZGluZ0luZGljYXRvckNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgc2l6ZSxcbiAgdGhlbWU6IHtcbiAgICBjb2xvcnMsXG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICB9LFxufToge1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4sXG4gIHNpemU6IG51bWJlcixcbiAgdGhlbWU6IFRoZW1lLFxufSkgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgZm9udFNpemU6IHNpemUsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG1hcmdpblJpZ2h0OiBzaXplLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbn0pO1xuXG50eXBlIERvdFByb3BzID0geyBkZWxheTogbnVtYmVyLCBvZmZzZXQ6IGJvb2xlYW4gfTtcbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IERvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiBudWxsLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nSWNvblByb3BzID0ge1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IGFueSxcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgLyoqIFdoZXRoZXIgdGhlIHRleHQgaXMgcmlnaHQgdG8gbGVmdCAqL1xuICBpc1J0bDogYm9vbGVhbixcbn0gJiBDb21tb25Qcm9wcyAmIHtcbiAgICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgICBzaXplOiBudW1iZXIsXG4gIH07XG5leHBvcnQgY29uc3QgTG9hZGluZ0luZGljYXRvciA9IChwcm9wczogTG9hZGluZ0ljb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcywgaXNSdGwgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2xvYWRpbmdJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Mb2FkaW5nSW5kaWNhdG9yLmRlZmF1bHRQcm9wcyA9IHsgc2l6ZTogNCB9O1xuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, [\"size\"]);\n\n return jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return jsx(Svg, _extends({\n size: 20\n }, props), jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n}; // ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n label: 'indicatorContainer',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('dropdownIndicator', props),\n className: cx({\n indicator: true,\n 'dropdown-indicator': true\n }, className)\n }, innerProps), children || jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('clearIndicator', props),\n className: cx({\n indicator: true,\n 'clear-indicator': true\n }, className)\n }, innerProps), children || jsx(CrossIcon, null));\n}; // ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return {\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"span\", _extends({}, innerProps, {\n css: getStyles('indicatorSeparator', props),\n className: cx({\n 'indicator-separator': true\n }, className)\n }));\n}; // ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return {\n label: 'loadingIndicator',\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return jsx(\"span\", {\n css: /*#__PURE__*/css$2({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0xJIiwiZmlsZSI6ImluZGljYXRvcnMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyB0eXBlIE5vZGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3gsIGtleWZyYW1lcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDb21tb25Qcm9wcywgVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRHJvcGRvd24gJiBDbGVhciBJY29uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IFN2ZyA9ICh7IHNpemUsIC4uLnByb3BzIH06IHsgc2l6ZTogbnVtYmVyIH0pID0+IChcbiAgPHN2Z1xuICAgIGhlaWdodD17c2l6ZX1cbiAgICB3aWR0aD17c2l6ZX1cbiAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGZvY3VzYWJsZT1cImZhbHNlXCJcbiAgICBjc3M9e3tcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBsaW5lSGVpZ2h0OiAxLFxuICAgICAgc3Ryb2tlOiAnY3VycmVudENvbG9yJyxcbiAgICAgIHN0cm9rZVdpZHRoOiAwLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogYW55KSA9PiAoXG4gIDxTdmcgc2l6ZT17MjB9IHsuLi5wcm9wc30+XG4gICAgPHBhdGggZD1cIk0xNC4zNDggMTQuODQ5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwbC0yLjY1MS0zLjAzMC0yLjY1MSAzLjAyOWMtMC40NjkgMC40NjktMS4yMjkgMC40NjktMS42OTcgMC0wLjQ2OS0wLjQ2OS0wLjQ2OS0xLjIyOSAwLTEuNjk3bDIuNzU4LTMuMTUtMi43NTktMy4xNTJjLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI4IDAtMS42OTdzMS4yMjgtMC40NjkgMS42OTcgMGwyLjY1MiAzLjAzMSAyLjY1MS0zLjAzMWMwLjQ2OS0wLjQ2OSAxLjIyOC0wLjQ2OSAxLjY5NyAwczAuNDY5IDEuMjI5IDAgMS42OTdsLTIuNzU4IDMuMTUyIDIuNzU4IDMuMTVjMC40NjkgMC40NjkgMC40NjkgMS4yMjkgMCAxLjY5OHpcIiAvPlxuICA8L1N2Zz5cbik7XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IGFueSkgPT4gKFxuICA8U3ZnIHNpemU9ezIwfSB7Li4ucHJvcHN9PlxuICAgIDxwYXRoIGQ9XCJNNC41MTYgNy41NDhjMC40MzYtMC40NDYgMS4wNDMtMC40ODEgMS41NzYgMGwzLjkwOCAzLjc0NyAzLjkwOC0zLjc0N2MwLjUzMy0wLjQ4MSAxLjE0MS0wLjQ0NiAxLjU3NCAwIDAuNDM2IDAuNDQ1IDAuNDA4IDEuMTk3IDAgMS42MTUtMC40MDYgMC40MTgtNC42OTUgNC41MDItNC42OTUgNC41MDItMC4yMTcgMC4yMjMtMC41MDIgMC4zMzUtMC43ODcgMC4zMzVzLTAuNTctMC4xMTItMC43ODktMC4zMzVjMCAwLTQuMjg3LTQuMDg0LTQuNjk1LTQuNTAycy0wLjQzNi0xLjE3IDAtMS42MTV6XCIgLz5cbiAgPC9Tdmc+XG4pO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIERyb3Bkb3duICYgQ2xlYXIgQnV0dG9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIEluZGljYXRvclByb3BzID0gQ29tbW9uUHJvcHMgJiB7XG4gIC8qKiBUaGUgY2hpbGRyZW4gdG8gYmUgcmVuZGVyZWQgaW5zaWRlIHRoZSBpbmRpY2F0b3IuICovXG4gIGNoaWxkcmVuOiBOb2RlLFxuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IGFueSxcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgLyoqIFdoZXRoZXIgdGhlIHRleHQgaXMgcmlnaHQgdG8gbGVmdCAqL1xuICBpc1J0bDogYm9vbGVhbixcbn07XG5cbmNvbnN0IGJhc2VDU1MgPSAoe1xuICBpc0ZvY3VzZWQsXG4gIHRoZW1lOiB7XG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgIGNvbG9ycyxcbiAgfSxcbn06IEluZGljYXRvclByb3BzKSA9PiAoe1xuICBsYWJlbDogJ2luZGljYXRvckNvbnRhaW5lcicsXG4gIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG5cbiAgJzpob3Zlcic6IHtcbiAgICBjb2xvcjogaXNGb2N1c2VkID8gY29sb3JzLm5ldXRyYWw4MCA6IGNvbG9ycy5uZXV0cmFsNDAsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IChwcm9wczogSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnZHJvcGRvd25JbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IChwcm9wczogSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBjeCwgZ2V0U3R5bGVzLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e2dldFN0eWxlcygnY2xlYXJJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWVcbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxudHlwZSBTZXBhcmF0b3JTdGF0ZSA9IHsgaXNEaXNhYmxlZDogYm9vbGVhbiB9O1xuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gKHtcbiAgaXNEaXNhYmxlZCxcbiAgdGhlbWU6IHtcbiAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgY29sb3JzLFxuICB9LFxufTogQ29tbW9uUHJvcHMgJiBTZXBhcmF0b3JTdGF0ZSkgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JTZXBhcmF0b3InLFxuICBhbGlnblNlbGY6ICdzdHJldGNoJyxcbiAgYmFja2dyb3VuZENvbG9yOiBpc0Rpc2FibGVkID8gY29sb3JzLm5ldXRyYWwxMCA6IGNvbG9ycy5uZXV0cmFsMjAsXG4gIG1hcmdpbkJvdHRvbTogYmFzZVVuaXQgKiAyLFxuICBtYXJnaW5Ub3A6IGJhc2VVbml0ICogMixcbiAgd2lkdGg6IDEsXG59KTtcblxuZXhwb3J0IGNvbnN0IEluZGljYXRvclNlcGFyYXRvciA9IChwcm9wczogSW5kaWNhdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgeyBjbGFzc05hbWUsIGN4LCBnZXRTdHlsZXMsIGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIGNzcz17Z2V0U3R5bGVzKCdpbmRpY2F0b3JTZXBhcmF0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KHsgJ2luZGljYXRvci1zZXBhcmF0b3InOiB0cnVlIH0sIGNsYXNzTmFtZSl9XG4gICAgLz5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTG9hZGluZ1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmNvbnN0IGxvYWRpbmdEb3RBbmltYXRpb25zID0ga2V5ZnJhbWVzYFxuICAwJSwgODAlLCAxMDAlIHsgb3BhY2l0eTogMDsgfVxuICA0MCUgeyBvcGFjaXR5OiAxOyB9XG5gO1xuXG5leHBvcnQgY29uc3QgbG9hZGluZ0luZGljYXRvckNTUyA9ICh7XG4gIGlzRm9jdXNlZCxcbiAgc2l6ZSxcbiAgdGhlbWU6IHtcbiAgICBjb2xvcnMsXG4gICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICB9LFxufToge1xuICBpc0ZvY3VzZWQ6IGJvb2xlYW4sXG4gIHNpemU6IG51bWJlcixcbiAgdGhlbWU6IFRoZW1lLFxufSkgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHBhZGRpbmc6IGJhc2VVbml0ICogMixcbiAgdHJhbnNpdGlvbjogJ2NvbG9yIDE1MG1zJyxcbiAgYWxpZ25TZWxmOiAnY2VudGVyJyxcbiAgZm9udFNpemU6IHNpemUsXG4gIGxpbmVIZWlnaHQ6IDEsXG4gIG1hcmdpblJpZ2h0OiBzaXplLFxuICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICB2ZXJ0aWNhbEFsaWduOiAnbWlkZGxlJyxcbn0pO1xuXG50eXBlIERvdFByb3BzID0geyBkZWxheTogbnVtYmVyLCBvZmZzZXQ6IGJvb2xlYW4gfTtcbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IERvdFByb3BzKSA9PiAoXG4gIDxzcGFuXG4gICAgY3NzPXt7XG4gICAgICBhbmltYXRpb246IGAke2xvYWRpbmdEb3RBbmltYXRpb25zfSAxcyBlYXNlLWluLW91dCAke2RlbGF5fW1zIGluZmluaXRlO2AsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdjdXJyZW50Q29sb3InLFxuICAgICAgYm9yZGVyUmFkaXVzOiAnMWVtJyxcbiAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgbWFyZ2luTGVmdDogb2Zmc2V0ID8gJzFlbScgOiBudWxsLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nSWNvblByb3BzID0ge1xuICAvKiogUHJvcHMgdGhhdCB3aWxsIGJlIHBhc3NlZCBvbiB0byB0aGUgY2hpbGRyZW4uICovXG4gIGlubmVyUHJvcHM6IGFueSxcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbixcbiAgLyoqIFdoZXRoZXIgdGhlIHRleHQgaXMgcmlnaHQgdG8gbGVmdCAqL1xuICBpc1J0bDogYm9vbGVhbixcbn0gJiBDb21tb25Qcm9wcyAmIHtcbiAgICAvKiogU2V0IHNpemUgb2YgdGhlIGNvbnRhaW5lci4gKi9cbiAgICBzaXplOiBudW1iZXIsXG4gIH07XG5leHBvcnQgY29uc3QgTG9hZGluZ0luZGljYXRvciA9IChwcm9wczogTG9hZGluZ0ljb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGNsYXNzTmFtZSwgY3gsIGdldFN0eWxlcywgaW5uZXJQcm9wcywgaXNSdGwgfSA9IHByb3BzO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY3NzPXtnZXRTdHlsZXMoJ2xvYWRpbmdJbmRpY2F0b3InLCBwcm9wcyl9XG4gICAgICBjbGFzc05hbWU9e2N4KFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIHsuLi5pbm5lclByb3BzfVxuICAgID5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXswfSBvZmZzZXQ9e2lzUnRsfSAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezE2MH0gb2Zmc2V0IC8+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MzIwfSBvZmZzZXQ9eyFpc1J0bH0gLz5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5Mb2FkaW5nSW5kaWNhdG9yLmRlZmF1bHRQcm9wcyA9IHsgc2l6ZTogNCB9O1xuIl19 */\")\n });\n};\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isRtl = props.isRtl;\n return jsx(\"div\", _extends({\n css: getStyles('loadingIndicator', props),\n className: cx({\n indicator: true,\n 'loading-indicator': true\n }, className)\n }, innerProps), jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\nLoadingIndicator.defaultProps = {\n size: 4\n};\n\nvar css = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n label: 'control',\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return jsx(\"div\", _extends({\n ref: innerRef,\n css: getStyles('control', props),\n className: cx({\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }, className)\n }, innerProps), children);\n};\n\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return jsx(\"div\", _extends({\n css: getStyles('group', props),\n className: cx({\n group: true\n }, className)\n }, innerProps), jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n cx: cx\n }), label), jsx(\"div\", null, children));\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n label: 'group',\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\nvar GroupHeading = function GroupHeading(props) {\n var getStyles = props.getStyles,\n cx = props.cx,\n className = props.className;\n\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, [\"data\"]);\n\n return jsx(\"div\", _extends({\n css: getStyles('groupHeading', props),\n className: cx({\n 'group-heading': true\n }, className)\n }, innerProps));\n};\n\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\n\nvar inputStyle = function inputStyle(isHidden) {\n return {\n label: 'input',\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n innerProps = _objectWithoutProperties(_cleanCommonProps, [\"innerRef\", \"isDisabled\", \"isHidden\"]);\n\n return jsx(\"div\", {\n css: getStyles('input', props)\n }, jsx(AutosizeInput, _extends({\n className: cx({\n input: true\n }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n label: 'multiValue',\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n\n };\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return jsx(\"div\", innerProps, children || jsx(CrossIcon, {\n size: 14\n }));\n}\n\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n className = props.className,\n components = props.components,\n cx = props.cx,\n data = props.data,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return jsx(ClassNames, null, function (_ref6) {\n var css = _ref6.css,\n emotionCx = _ref6.cx;\n return jsx(Container, {\n data: data,\n innerProps: _objectSpread2({\n className: emotionCx(css(getStyles('multiValue', props)), cx({\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className))\n }, innerProps),\n selectProps: selectProps\n }, jsx(Label, {\n data: data,\n innerProps: {\n className: emotionCx(css(getStyles('multiValueLabel', props)), cx({\n 'multi-value__label': true\n }, className))\n },\n selectProps: selectProps\n }, children), jsx(Remove, {\n data: data,\n innerProps: _objectSpread2({\n className: emotionCx(css(getStyles('multiValueRemove', props)), cx({\n 'multi-value__remove': true\n }, className))\n }, removeProps),\n selectProps: selectProps\n }));\n });\n};\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'option',\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled && (isSelected ? colors.primary : colors.primary50)\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('option', props),\n className: cx({\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className),\n ref: innerRef\n }, innerProps), children);\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'placeholder',\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('placeholder', props),\n className: cx({\n placeholder: true\n }, className)\n }, innerProps), children);\n};\n\nvar css$1 = function css(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n label: 'singleValue',\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: \"calc(100% - \".concat(spacing.baseUnit * 2, \"px)\"),\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return jsx(\"div\", _extends({\n css: getStyles('singleValue', props),\n className: cx({\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps), children);\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread2(_objectSpread2({}, components), props.components);\n};\n\nexport { isMobileDevice as A, classNames as B, defaultComponents as C, isDocumentElement as D, cleanValue as E, scrollIntoView as F, noop as G, handleInputChange as H, MenuPlacer as M, _createSuper as _, _objectSpread2 as a, clearIndicatorCSS as b, components as c, containerCSS as d, css as e, dropdownIndicatorCSS as f, groupCSS as g, groupHeadingCSS as h, indicatorsContainerCSS as i, indicatorSeparatorCSS as j, inputCSS as k, loadingIndicatorCSS as l, loadingMessageCSS as m, menuCSS as n, menuListCSS as o, menuPortalCSS as p, multiValueCSS as q, multiValueLabelCSS as r, supportsPassiveEvents as s, multiValueRemoveCSS as t, noOptionsMessageCSS as u, optionCSS as v, placeholderCSS as w, css$1 as x, valueContainerCSS as y, isTouchCapable as z };\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { a as _objectSpread2, s as supportsPassiveEvents, b as clearIndicatorCSS, d as containerCSS, e as css$1, f as dropdownIndicatorCSS, g as groupCSS, h as groupHeadingCSS, i as indicatorsContainerCSS, j as indicatorSeparatorCSS, k as inputCSS, l as loadingIndicatorCSS, m as loadingMessageCSS, n as menuCSS, o as menuListCSS, p as menuPortalCSS, q as multiValueCSS, r as multiValueLabelCSS, t as multiValueRemoveCSS, u as noOptionsMessageCSS, v as optionCSS, w as placeholderCSS, x as css$2, y as valueContainerCSS, z as isTouchCapable, A as isMobileDevice, _ as _createSuper, B as classNames, C as defaultComponents, D as isDocumentElement, E as cleanValue, F as scrollIntoView, G as noop, M as MenuPlacer } from './index-4bd03571.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\nimport React, { useMemo, useRef, useCallback, useEffect, Component } from 'react';\nimport { jsx, css } from '@emotion/react';\nimport memoizeOne from 'memoize-one';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFJIiwiZmlsZSI6IkExMXlUZXh0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQGZsb3dcbi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgdHlwZSBFbGVtZW50Q29uZmlnIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vLyBBc3Npc3RpdmUgdGV4dCB0byBkZXNjcmliZSB2aXN1YWwgZWxlbWVudHMuIEhpZGRlbiBmb3Igc2lnaHRlZCB1c2Vycy5cbmNvbnN0IEExMXlUZXh0ID0gKHByb3BzOiBFbGVtZW50Q29uZmlnPCdzcGFuJz4pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\n\nvar A11yText = function A11yText(props) {\n return jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n isDisabled = props.isDisabled;\n\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n _props$focused = props.focused,\n focused = _props$focused === void 0 ? {} : _props$focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live']; // Update aria live message configuration when prop changes\n\n var messages = useMemo(function () {\n return _objectSpread2(_objectSpread2({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]); // Update aria live selected option when prop changes\n\n var ariaSelected = useMemo(function () {\n var message = '';\n\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n removedValue = ariaSelection.removedValue,\n value = ariaSelection.value; // select-option when !isMulti does not return option so we assume selected option is value\n\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n var selected = removedValue || option || asOption(value);\n\n var onChangeProps = _objectSpread2({\n isDisabled: selected && isOptionDisabled(selected),\n label: selected ? getOptionLabel(selected) : ''\n }, ariaSelection);\n\n message = messages.onChange(onChangeProps);\n }\n\n return message;\n }, [ariaSelection, isOptionDisabled, getOptionLabel, messages]);\n var ariaFocused = useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused),\n isSelected: isSelected,\n options: options,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, options, selectValue]);\n var ariaResults = useMemo(function () {\n var resultsMsg = '';\n\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = useMemo(function () {\n var guidanceMsg = '';\n\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n return jsx(A11yText, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && jsx(React.Fragment, null, jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext)));\n};\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\n\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\n\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne(stripDiacritics);\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\n\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _objectSpread2({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nfunction DummyInput(_ref) {\n _ref.in;\n _ref.out;\n _ref.onExited;\n _ref.appear;\n _ref.enter;\n _ref.exit;\n var innerRef = _ref.innerRef;\n _ref.emotion;\n var props = _objectWithoutProperties(_ref, [\"in\", \"out\", \"onExited\", \"appear\", \"enter\", \"exit\", \"innerRef\", \"emotion\"]);\n\n return jsx(\"input\", _extends({\n ref: innerRef\n }, props, {\n css: /*#__PURE__*/css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUJNIiwiZmlsZSI6IkR1bW15SW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbjogaW5Qcm9wLFxuICBvdXQsXG4gIG9uRXhpdGVkLFxuICBhcHBlYXIsXG4gIGVudGVyLFxuICBleGl0LFxuICBpbm5lclJlZixcbiAgZW1vdGlvbixcbiAgLi4ucHJvcHNcbn06IGFueSkge1xuICByZXR1cm4gKFxuICAgIDxpbnB1dFxuICAgICAgcmVmPXtpbm5lclJlZn1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAgIGNzcz17e1xuICAgICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICAgIG91dGxpbmU6IDAsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICAgIHdpZHRoOiAxLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICAgIGxlZnQ6IC0xMDAsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSgwKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\n\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = useRef(false);\n var isTop = useRef(false);\n var touchStart = useRef(0);\n var scrollTarget = useRef(null);\n var handleEventDelta = useCallback(function (event, delta) {\n // Reference should never be `null` at this point, but flow complains otherwise\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false; // reset bottom/top flags\n\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n } // bottom limit\n\n\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true; // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n } // cancel scroll\n\n\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, []);\n var onWheel = useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = supportsPassiveEvents ? {\n passive: false\n } : false; // all the if statements are to appease Flow 😢\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', onWheel, notPassive);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', onTouchStart, notPassive);\n }\n\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return; // all the if statements are to appease Flow 😢\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', onWheel, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', onTouchStart, false);\n }\n\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', onTouchMove, false);\n }\n }, [onTouchMove, onTouchStart, onWheel]);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n} // `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\n\n\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = useRef({});\n var scrollTarget = useRef(null);\n var addScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n } // apply the lock styles and padding if this is the first scroll lock\n\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n } // account for touch devices\n\n\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions); // Allow scroll on provided target\n\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n } // increment active scroll locks\n\n\n activeScrollLocks += 1;\n }, []);\n var removeScrollLock = useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style; // safely decrement active scroll locks\n\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0); // reapply original body styles, if any\n\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n } // remove touch listeners\n\n\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, []);\n useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\nvar blurSelectInput = function blurSelectInput() {\n return document.activeElement && document.activeElement.blur();\n};\n\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0RVIiwiZmlsZSI6IlNjcm9sbE1hbmFnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgUmVhY3QsIHsgdHlwZSBFbGVtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZVNjcm9sbENhcHR1cmUgZnJvbSAnLi91c2VTY3JvbGxDYXB0dXJlJztcbmltcG9ydCB1c2VTY3JvbGxMb2NrIGZyb20gJy4vdXNlU2Nyb2xsTG9jayc7XG5cbnR5cGUgUmVmQ2FsbGJhY2s8VD4gPSAoVCB8IG51bGwpID0+IHZvaWQ7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiAoUmVmQ2FsbGJhY2s8SFRNTEVsZW1lbnQ+KSA9PiBFbGVtZW50PCo+LFxuICBsb2NrRW5hYmxlZDogYm9vbGVhbixcbiAgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW4sXG4gIG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBTeW50aGV0aWNFdmVudDxIVE1MRWxlbWVudD4pID0+IHZvaWQsXG4gIG9uQm90dG9tTGVhdmU/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZCxcbiAgb25Ub3BBcnJpdmU/OiAoZXZlbnQ6IFN5bnRoZXRpY0V2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZCxcbiAgb25Ub3BMZWF2ZT86IChldmVudDogU3ludGhldGljRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB2b2lkLFxufTtcblxuY29uc3QgYmx1clNlbGVjdElucHV0ID0gKCkgPT5cbiAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2Nyb2xsTWFuYWdlcih7XG4gIGNoaWxkcmVuLFxuICBsb2NrRW5hYmxlZCxcbiAgY2FwdHVyZUVuYWJsZWQgPSB0cnVlLFxuICBvbkJvdHRvbUFycml2ZSxcbiAgb25Cb3R0b21MZWF2ZSxcbiAgb25Ub3BBcnJpdmUsXG4gIG9uVG9wTGVhdmUsXG59OiBQcm9wcykge1xuICBjb25zdCBzZXRTY3JvbGxDYXB0dXJlVGFyZ2V0ID0gdXNlU2Nyb2xsQ2FwdHVyZSh7XG4gICAgaXNFbmFibGVkOiBjYXB0dXJlRW5hYmxlZCxcbiAgICBvbkJvdHRvbUFycml2ZSxcbiAgICBvbkJvdHRvbUxlYXZlLFxuICAgIG9uVG9wQXJyaXZlLFxuICAgIG9uVG9wTGVhdmUsXG4gIH0pO1xuICBjb25zdCBzZXRTY3JvbGxMb2NrVGFyZ2V0ID0gdXNlU2Nyb2xsTG9jayh7IGlzRW5hYmxlZDogbG9ja0VuYWJsZWQgfSk7XG5cbiAgY29uc3QgdGFyZ2V0UmVmID0gZWxlbWVudCA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\n\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n\n return jsx(React.Fragment, null, lockEnabled && jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2\n }), children(targetRef));\n}\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n}; // Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _objectSpread2({}, source); // massage in target styles\n\n\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4; // Used to calculate consistent margin/padding on elements\n\nvar baseUnit = 4; // The minimum height of the control\n\nvar controlHeight = 38; // The amount of space between the control and menu */\n\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\n\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n\n var isSelected = _isOptionSelected(props, option, selectValue);\n\n var label = getOptionLabel$1(props, option);\n var value = getOptionValue$1(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\n\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if (groupOrOption.options) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }) // Flow limitation (see https://github.com/facebook/flow/issues/1414)\n .filter(function (categorizedOption) {\n return !!categorizedOption;\n });\n}\n\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n\n return optionsAccumulator;\n }, []);\n}\n\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\n\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\n\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n\n return null;\n}\n\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\n\nvar getOptionLabel$1 = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\n\nvar getOptionValue$1 = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\n\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\n\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n\n var candidate = getOptionValue$1(props, option);\n return selectValue.some(function (i) {\n return getOptionValue$1(props, i) === candidate;\n });\n}\n\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\n\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\n\nvar instanceId = 1;\n\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n\n var _super = _createSuper(Select);\n\n // Misc. Instance Properties\n // ------------------------------\n // TODO\n // Refs\n // ------------------------------\n // Lifecycle\n // ------------------------------\n function Select(_props) {\n var _this;\n\n _classCallCheck(this, Select);\n\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n\n _this.focusedOptionRef = null;\n\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n\n _this.menuListRef = null;\n\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n\n _this.inputRef = null;\n\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n\n _this.ariaOnChange(newValue, actionMeta);\n\n onChange(newValue, actionMeta);\n };\n\n _this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments.length > 2 ? arguments[2] : undefined;\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti;\n\n _this.onInputChange('', {\n action: 'set-value'\n });\n\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } // when the select value should change, we should reset focusedValue\n\n\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n\n _this.setValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue([].concat(_toConsumableArray(selectValue), [newValue]), 'select-option', newValue);\n } else {\n _this.setValue(newValue, 'select-option');\n }\n } else {\n _this.ariaOnChange(newValue, {\n action: 'select-option',\n name: name\n });\n\n return;\n }\n\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n\n var candidate = _this.getOptionValue(removedValue);\n\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = isMulti ? newValueArray : newValueArray[0] || null;\n\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n\n _this.focusInput();\n };\n\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n\n _this.onChange(_this.props.isMulti ? [] : null, {\n action: 'clear',\n removedValues: selectValue\n });\n };\n\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = isMulti ? newValueArray : newValueArray[0] || null;\n\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n\n _this.getOptionLabel = function (data) {\n return getOptionLabel$1(_this.props, data);\n };\n\n _this.getOptionValue = function (data) {\n return getOptionValue$1(_this.props, data);\n };\n\n _this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n\n _this.getComponents = function () {\n return defaultComponents(_this.props);\n };\n\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread2({\n value: value\n }, actionMeta)\n });\n };\n\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n _this.focusInput();\n };\n\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n\n _this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this.props.openMenuOnClick;\n\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n\n if ( // $FlowFixMe\n event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n\n _this.focusInput();\n\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n\n event.preventDefault();\n event.stopPropagation();\n };\n\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n\n _this.clearValue();\n\n event.stopPropagation();\n _this.openAfterFocus = false;\n\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n\n if (!touch) {\n return;\n }\n\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return; // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n } // reset move vars\n\n\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onControlMouseDown(event);\n };\n\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onClearIndicatorMouseDown(event);\n };\n\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n _this.onDropdownIndicatorMouseDown(event);\n };\n\n _this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange(inputValue, {\n action: 'input-change'\n });\n\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n\n _this.openAfterFocus = false;\n };\n\n _this.onInputBlur = function (event) {\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n\n return;\n }\n\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n\n _this.onInputChange('', {\n action: 'input-blur'\n });\n\n _this.onMenuClose();\n\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n\n _this.setState({\n focusedOption: focusedOption\n });\n };\n\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n\n if (event.defaultPrevented) {\n return;\n }\n } // Block option hover events when the user has just pressed a key\n\n\n _this.blockOptionHover = true;\n\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('previous');\n\n break;\n\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n\n _this.focusValue('next');\n\n break;\n\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n\n break;\n\n case 'Tab':\n if (_this.isComposing) return;\n\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption || // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n\n _this.selectOption(focusedOption);\n\n break;\n }\n\n return;\n\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n\n _this.onInputChange('', {\n action: 'menu-close'\n });\n\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n\n break;\n\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n\n if (!menuIsOpen) {\n _this.openMenu('first');\n\n break;\n }\n\n if (!focusedOption) return;\n\n _this.selectOption(focusedOption);\n\n break;\n\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n\n break;\n\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n\n break;\n\n case 'PageUp':\n if (!menuIsOpen) return;\n\n _this.focusOption('pageup');\n\n break;\n\n case 'PageDown':\n if (!menuIsOpen) return;\n\n _this.focusOption('pagedown');\n\n break;\n\n case 'Home':\n if (!menuIsOpen) return;\n\n _this.focusOption('first');\n\n break;\n\n case 'End':\n if (!menuIsOpen) return;\n\n _this.focusOption('last');\n\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n };\n\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = cleanValue(_props.value);\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n if ( // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled || // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programatically disabled while focused\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } // scroll the focused option into view if necessary\n\n\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n } // ==============================\n // Consumer Handlers\n // ==============================\n\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close'\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n } // ==============================\n // Methods\n // ==============================\n\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n } // aliased for consumers\n\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n } // only scroll if the menu isn't already open\n\n\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue; // Only multiselects support value focusing\n\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n\n if (!focusedValue) {\n focusedIndex = -1;\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n\n break;\n\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n\n break;\n }\n\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n\n var focusedIndex = options.indexOf(focusedOption);\n\n if (!focusedOption) {\n focusedIndex = -1;\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value: // ==============================\n // Getters\n // ==============================\n function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n } // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n\n\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n } // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n\n\n return _objectSpread2(_objectSpread2({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti; // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var inputValue = this.props.inputValue;\n var selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: inputValue,\n selectValue: selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n } // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: \"startListeningComposition\",\n value: // ==============================\n // Composition Handlers\n // ==============================\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value: // ==============================\n // Touch Handlers\n // ==============================\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value: // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form;\n\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n\n var inputIsHidden = this.state.inputIsHidden;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input'); // aria attributes makes the JSX \"noisy\", separated for clarity\n\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n disabled: isDisabled,\n tabIndex: tabIndex,\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n\n return /*#__PURE__*/React.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state4 = this.state,\n selectValue = _this$state4.selectValue,\n focusedValue = _this$state4.focusedValue,\n isFocused = _this$state4.isFocused;\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused\n }), placeholder);\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n return /*#__PURE__*/React.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: \"\".concat(_this3.getOptionValue(opt)).concat(index),\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return /*#__PURE__*/React.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator; // separator doesn't make sense without the dropdown indicator\n\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null; // TODO: Internal Option Type here\n\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n\n var menuUI;\n\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React.createElement(NoOptionsMessage, commonProps, _message);\n }\n\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React.createElement(MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n }); // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name;\n var selectValue = this.state.selectValue;\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\"\n });\n return /*#__PURE__*/React.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n\n return /*#__PURE__*/React.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state5 = this.state,\n ariaSelection = _this$state5.ariaSelection,\n focusedOption = _this$state5.focusedOption,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused,\n selectValue = _this$state5.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React.createElement(LiveRegion, _extends({}, commonProps, {\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue;\n var newMenuOptionsState = {};\n\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var selectValue = cleanValue(value);\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n } // some updates should toggle the state of the input visibility\n\n\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n return _objectSpread2(_objectSpread2(_objectSpread2({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props\n });\n }\n }]);\n\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nexport { Select as S, getOptionLabel as a, defaultProps as b, createFilter as c, defaultTheme as d, getOptionValue as g, mergeStyles as m };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport { _ as _createSuper } from './index-4bd03571.esm.js';\nimport React, { Component } from 'react';\n\nvar defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(StateManager, _Component);\n\n var _super = _createSuper(StateManager);\n\n function StateManager() {\n var _this;\n\n _classCallCheck(this, StateManager);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.select = void 0;\n _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n };\n\n _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n\n _this.setState({\n value: value\n });\n };\n\n _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n };\n\n _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n\n _this.setState({\n menuIsOpen: true\n });\n };\n\n _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n\n _this.setState({\n menuIsOpen: false\n });\n };\n\n return _this;\n }\n\n _createClass(StateManager, [{\n key: \"focus\",\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.select.blur();\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"getProp\",\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n } // FIXME: untyped flow code, return any\n\n }, {\n key: \"callProp\",\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _this$props;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$props = this.props)[name].apply(_this$props, args);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props;\n _this$props2.defaultInputValue;\n _this$props2.defaultMenuIsOpen;\n _this$props2.defaultValue;\n var props = _objectWithoutProperties(_this$props2, [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\"]);\n\n return /*#__PURE__*/React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n\n return StateManager;\n }(Component), _class.defaultProps = defaultProps, _temp;\n};\n\nexport { manageState as m };\n","import { S as Select } from './Select-dbb12e54.esm.js';\nexport { c as createFilter, d as defaultTheme, m as mergeStyles } from './Select-dbb12e54.esm.js';\nimport { m as manageState } from './stateManager-845a3300.esm.js';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport { _ as _createSuper } from './index-4bd03571.esm.js';\nexport { c as components } from './index-4bd03571.esm.js';\nimport React, { Component } from 'react';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\nimport memoizeOne from 'memoize-one';\nimport '@babel/runtime/helpers/extends';\nimport '@babel/runtime/helpers/toConsumableArray';\nimport '@babel/runtime/helpers/objectWithoutProperties';\nimport '@babel/runtime/helpers/taggedTemplateLiteral';\nimport '@babel/runtime/helpers/typeof';\nimport 'react-input-autosize';\nimport '@babel/runtime/helpers/defineProperty';\nimport 'react-dom';\n\nvar NonceProvider = /*#__PURE__*/function (_Component) {\n _inherits(NonceProvider, _Component);\n\n var _super = _createSuper(NonceProvider);\n\n function NonceProvider(props) {\n var _this;\n\n _classCallCheck(this, NonceProvider);\n\n _this = _super.call(this, props);\n\n _this.createEmotionCache = function (nonce, key) {\n return createCache({\n nonce: nonce,\n key: key\n });\n };\n\n _this.createEmotionCache = memoizeOne(_this.createEmotionCache);\n return _this;\n }\n\n _createClass(NonceProvider, [{\n key: \"render\",\n value: function render() {\n var emotionCache = this.createEmotionCache(this.props.nonce, this.props.cacheKey);\n return /*#__PURE__*/React.createElement(CacheProvider, {\n value: emotionCache\n }, this.props.children);\n }\n }]);\n\n return NonceProvider;\n}(Component);\n\nvar index = manageState(Select);\n\nexport default index;\nexport { NonceProvider };\n","import { useState, useEffect } from \"react\";\n\nexport const useFetch = (url) => {\n const [processedUrl, setProcessedUrl] = useState(null);\n const [pending, setPending] = useState(true);\n const [result, setResult] = useState(null);\n const [error, setError] = useState(false);\n\n useEffect(() => {\n const FetchData = async () => {\n if (url) {\n setPending(true);\n\n try {\n const res = await fetch(url);\n const json = await res.json();\n setResult(json);\n setPending(false);\n setProcessedUrl(url);\n } catch (error) {\n setError(error);\n setPending(false);\n setProcessedUrl(url);\n }\n }\n };\n\n FetchData();\n }, [url]);\n\n return { pending, error, result };\n};","import React, { useRef } from 'react';\nimport Select from \"react-select\";\n\nexport default (props) => {\n const ref = useRef(null);\n\n const onMenuOpen = () => {\n // react-select does not scroll into view selected option\n // https://github.com/JedWatson/react-select/issues/3769\n setTimeout(() => {\n ref.current.select.scrollToFocusedOptionOnUpdate = true;\n\n const focusedOption = props.options.find(option => {\n return props.getOptionValue(option || {}) === props.getOptionValue(props.value || {});\n });\n\n if (focusedOption) ref.current.select.setState({ focusedOption });\n }, 10);\n };\n\n return (\n <Select {...props} ref={ref} onMenuOpen={onMenuOpen}/>\n )\n}","import React, { useState, useMemo, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport { components } from 'react-select';\nimport { useFetch } from \"../Api/UseFetch\";\nimport DropDown from \"./DropDown\";\n\nexport default ({ item, options, target, onChanged }) => {\n const { venues, venue, setVenue, pending } = useVenues(item, options, target);\n\n useEffect(() => {\n const params = venue ? { venueId: venue.id } : null;\n onChanged({ value: venue, pending, params })\n }, [venue, pending]);\n\n return (\n <div className={classNames(['filter-block filter-venues'])}>\n <label htmlFor=\"filter-venues\">Venue:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={venue}\n onChange={setVenue}\n options={venues}\n isDisabled={pending}\n components={{ SingleValue, Option }}\n isLoading={pending}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.id}\n />\n </div>\n </div>\n )\n};\n\nconst Icon = ({ data }) => {\n return <div className={classNames(['option-icon', data.className])}>â—</div>;\n};\n\nconst SingleValue = ({ data, children }) => (\n <div style={{whiteSpace: 'nowrap', width: '16px' }}>\n <Icon data={data}/> {children}\n </div>\n);\n\nconst Option = ({ data , label, ...props }) => (\n <components.Option {...props}>\n <div style={{ paddingLeft: 16, position: 'relative' }}>\n <div style={{ position: 'absolute', left: -3, top: -3 }}><Icon data={data}/></div> {label}\n </div>\n </components.Option>\n);\n\nexport const useVenues = (item, options, target) => {\n const urlParams = `?${target || 'item'}=${item.key}`;\n const [processedItem, setProcessedItem] = useState({});\n const [venue, setVenue] = useState(null);\n const { pending, result, error } = useFetch(`/admin/api/venues.json${urlParams}`);\n\n // Status\n const processed = useMemo(() => (item || {}).key === processedItem.key, [item, processedItem]);\n\n // Filter options\n const venues = useMemo(() => {\n if (pending || error) return [];\n return result.venues;\n }, [pending, item, processed]);\n\n // Select option\n useEffect(() => {\n if (!pending && !error && !processed) {\n let newVenue = venue;\n const venueIdQueryParam = new URLSearchParams(location.search).get('venue_id')\n\n if (!newVenue) {\n let defaultFilterOption = item.defaultVenueFilter;\n\n if (venueIdQueryParam) {\n defaultFilterOption = venueIdQueryParam;\n } else if (defaultFilterOption == 'all_venues') {\n defaultFilterOption = 'venue-group-all-venues';\n } else if (defaultFilterOption === 'first_venue') {\n defaultFilterOption = venues[0]?.id;\n } else {\n defaultFilterOption = options.venueId\n }\n\n // We use == because we need to compare values and do not compare types\n const selectedVenue = venues.find(venue => venue.id == defaultFilterOption);\n\n newVenue = selectedVenue || venues[0];\n }\n\n if (!(venues.map(x => x.id).includes(newVenue?.id))) {\n newVenue = venues[0];\n }\n\n setVenue(newVenue);\n setProcessedItem(item)\n }\n }, [pending, processed]);\n\n return {\n venues,\n venue,\n setVenue,\n error,\n pending: !processed\n }\n};\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useFetch } from '../Api/UseFetch';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nexport default ({ item, options, onChanged, selectedOptions }) => {\n const { facilities, facility, setFacility, pending } = useFacilities(item, options, selectedOptions);\n\n useEffect(() => {\n const params = facility ? { facilityId: facility.id } : null;\n onChanged({ value: facility, pending, params })\n }, [facility, pending]);\n\n return (\n <div className={classNames(['filter-block filter-facilities'])}>\n <label htmlFor=\"filter-facilities\">Facility:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={facility}\n isLoading={pending}\n isDisabled={pending}\n options={facilities}\n onChange={setFacility}\n getOptionLabel={opt => `${opt.internalReference}${opt.softDeleted ? ' (deleted)' : ''}`}\n getOptionValue={opt => opt.id}\n />\n </div>\n </div>\n )\n};\n\nconst emptyOption = { id: null, internalReference: 'All' };\n\nexport const useFacilities = (item, options, selectedOptions) => {\n const venueId = selectedOptions.venueId;\n const urlParams = `disabled_facility_publishing=${item.disabledFacilityPublishing}`;\n const url = venueId ? `/admin/api/venues/${venueId}/facilities.json?${urlParams}` : null;\n const [processedVenueId, setProcessedVenueId] = useState(null);\n const [facility, setFacility] = useState(null);\n const { pending, result, error } = useFetch(url);\n\n // Status\n const processed = useMemo(() => venueId === processedVenueId, [venueId, processedVenueId]);\n\n // Filter options\n const facilities = useMemo(() => {\n if (pending || error) return [];\n return [emptyOption, ...result.facilities];\n }, [pending, item, processed]);\n\n // Select option\n useEffect(() => {\n if (!pending && !error && !processed) {\n const selectedFacility = facilities.find(facility => facility.id === options.facilityId);\n setFacility(selectedFacility || facilities[0]);\n setProcessedVenueId(venueId)\n }\n }, [pending, processed]);\n\n return {\n facilities,\n facility,\n setFacility,\n error,\n pending: !processed\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PopoverPortal = void 0;\nvar react_1 = require(\"react\");\nvar react_dom_1 = require(\"react-dom\");\nvar PopoverPortal = function (_a) {\n var container = _a.container, element = _a.element, scoutElement = _a.scoutElement, children = _a.children;\n react_1.useLayoutEffect(function () {\n container.appendChild(element);\n container.appendChild(scoutElement);\n return function () {\n container.removeChild(element);\n container.removeChild(scoutElement);\n };\n }, [container, element, scoutElement]);\n return react_dom_1.createPortal(children, element);\n};\nexports.PopoverPortal = PopoverPortal;\n//# sourceMappingURL=PopoverPortal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNudgedPopoverRect = exports.getNewPopoverRect = exports.popoverRectForPosition = exports.createContainer = exports.rectsAreEqual = exports.EMPTY_CLIENT_RECT = void 0;\nexports.EMPTY_CLIENT_RECT = {\n top: 0,\n left: 0,\n bottom: 0,\n height: 0,\n right: 0,\n width: 0,\n};\nvar rectsAreEqual = function (rectA, rectB) {\n return rectA === rectB ||\n ((rectA === null || rectA === void 0 ? void 0 : rectA.bottom) === (rectB === null || rectB === void 0 ? void 0 : rectB.bottom) &&\n (rectA === null || rectA === void 0 ? void 0 : rectA.height) === (rectB === null || rectB === void 0 ? void 0 : rectB.height) &&\n (rectA === null || rectA === void 0 ? void 0 : rectA.left) === (rectB === null || rectB === void 0 ? void 0 : rectB.left) &&\n (rectA === null || rectA === void 0 ? void 0 : rectA.right) === (rectB === null || rectB === void 0 ? void 0 : rectB.right) &&\n (rectA === null || rectA === void 0 ? void 0 : rectA.top) === (rectB === null || rectB === void 0 ? void 0 : rectB.top) &&\n (rectA === null || rectA === void 0 ? void 0 : rectA.width) === (rectB === null || rectB === void 0 ? void 0 : rectB.width));\n};\nexports.rectsAreEqual = rectsAreEqual;\nvar createContainer = function (containerStyle, containerClassName) {\n var container = window.document.createElement('div');\n if (containerClassName)\n container.className = containerClassName;\n Object.assign(container.style, containerStyle);\n return container;\n};\nexports.createContainer = createContainer;\nvar popoverRectForPosition = function (position, childRect, popoverRect, padding, align) {\n var targetMidX = childRect.left + childRect.width / 2;\n var targetMidY = childRect.top + childRect.height / 2;\n var width = popoverRect.width, height = popoverRect.height;\n var top;\n var left;\n switch (position) {\n case 'left':\n top = targetMidY - height / 2;\n left = childRect.left - padding - width;\n if (align === 'start') {\n top = childRect.top;\n }\n if (align === 'end') {\n top = childRect.bottom - height;\n }\n break;\n case 'bottom':\n top = childRect.bottom + padding;\n left = targetMidX - width / 2;\n if (align === 'start') {\n left = childRect.left;\n }\n if (align === 'end') {\n left = childRect.right - width;\n }\n break;\n case 'right':\n top = targetMidY - height / 2;\n left = childRect.right + padding;\n if (align === 'start') {\n top = childRect.top;\n }\n if (align === 'end') {\n top = childRect.bottom - height;\n }\n break;\n default:\n top = childRect.top - height - padding;\n left = targetMidX - width / 2;\n if (align === 'start') {\n left = childRect.left;\n }\n if (align === 'end') {\n left = childRect.right - width;\n }\n break;\n }\n return { top: top, left: left, width: width, height: height, right: left + width, bottom: top + height };\n};\nexports.popoverRectForPosition = popoverRectForPosition;\nvar getNewPopoverRect = function (_a, boundaryInset) {\n var position = _a.position, align = _a.align, childRect = _a.childRect, popoverRect = _a.popoverRect, boundaryRect = _a.boundaryRect, padding = _a.padding, reposition = _a.reposition;\n var rect = exports.popoverRectForPosition(position, childRect, popoverRect, padding, align);\n var boundaryViolation = reposition &&\n ((position === 'top' && rect.top < boundaryRect.top + boundaryInset) ||\n (position === 'left' && rect.left < boundaryRect.left + boundaryInset) ||\n (position === 'right' && rect.right > boundaryRect.right - boundaryInset) ||\n (position === 'bottom' && rect.bottom > boundaryRect.bottom - boundaryInset));\n return {\n rect: rect,\n boundaryViolation: boundaryViolation,\n };\n};\nexports.getNewPopoverRect = getNewPopoverRect;\nvar getNudgedPopoverRect = function (popoverRect, boundaryRect, boundaryInset) {\n var topBoundary = boundaryRect.top + boundaryInset;\n var leftBoundary = boundaryRect.left + boundaryInset;\n var rightBoundary = boundaryRect.right - boundaryInset;\n var bottomBoundary = boundaryRect.bottom - boundaryInset;\n var top = popoverRect.top < topBoundary ? topBoundary : popoverRect.top;\n top = top + popoverRect.height > bottomBoundary ? bottomBoundary - popoverRect.height : top;\n var left = popoverRect.left < leftBoundary ? leftBoundary : popoverRect.left;\n left = left + popoverRect.width > rightBoundary ? rightBoundary - popoverRect.width : left;\n return {\n top: top,\n left: left,\n width: popoverRect.width,\n height: popoverRect.height,\n right: left + popoverRect.width,\n bottom: top + popoverRect.height,\n };\n};\nexports.getNudgedPopoverRect = getNudgedPopoverRect;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useElementRef = void 0;\nvar react_1 = require(\"react\");\nvar util_1 = require(\"./util\");\nvar useElementRef = function (containerClassName, containerStyle) {\n var ref = react_1.useRef();\n var element = react_1.useMemo(function () { return util_1.createContainer(containerStyle, containerClassName); }, [containerClassName, containerStyle]);\n ref.current = element;\n return ref;\n};\nexports.useElementRef = useElementRef;\n//# sourceMappingURL=useElementRef.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.usePopover = void 0;\nvar react_1 = require(\"react\");\nvar util_1 = require(\"./util\");\nvar useElementRef_1 = require(\"./useElementRef\");\nvar POPOVER_STYLE = {\n position: 'fixed',\n overflow: 'visible',\n top: '0px',\n left: '0px',\n};\nvar SCOUT_STYLE = {\n position: 'fixed',\n top: '0px',\n left: '0px',\n width: '0px',\n height: '0px',\n visibility: 'hidden',\n};\nvar usePopover = function (_a) {\n var isOpen = _a.isOpen, childRef = _a.childRef, positions = _a.positions, containerClassName = _a.containerClassName, parentElement = _a.parentElement, contentLocation = _a.contentLocation, align = _a.align, padding = _a.padding, reposition = _a.reposition, boundaryInset = _a.boundaryInset, boundaryElement = _a.boundaryElement, onPositionPopover = _a.onPositionPopover;\n var popoverRef = useElementRef_1.useElementRef(containerClassName, POPOVER_STYLE);\n var scoutRef = useElementRef_1.useElementRef('react-tiny-popover-scout', SCOUT_STYLE);\n var positionPopover = react_1.useCallback(function (_a) {\n var _b, _c;\n var _d = _a === void 0 ? {} : _a, _e = _d.positionIndex, positionIndex = _e === void 0 ? 0 : _e, _f = _d.parentRect, parentRect = _f === void 0 ? parentElement.getBoundingClientRect() : _f, _g = _d.childRect, childRect = _g === void 0 ? (_b = childRef === null || childRef === void 0 ? void 0 : childRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect() : _g, _h = _d.scoutRect, scoutRect = _h === void 0 ? (_c = scoutRef === null || scoutRef === void 0 ? void 0 : scoutRef.current) === null || _c === void 0 ? void 0 : _c.getBoundingClientRect() : _h, _j = _d.popoverRect, popoverRect = _j === void 0 ? popoverRef.current.getBoundingClientRect() : _j, _k = _d.boundaryRect, boundaryRect = _k === void 0 ? boundaryElement === parentElement\n ? parentRect\n : boundaryElement.getBoundingClientRect() : _k;\n if (!childRect || !parentRect || !isOpen) {\n return;\n }\n if (contentLocation) {\n var _l = typeof contentLocation === 'function'\n ? contentLocation({\n childRect: childRect,\n popoverRect: popoverRect,\n parentRect: parentRect,\n boundaryRect: boundaryRect,\n padding: padding,\n nudgedTop: 0,\n nudgedLeft: 0,\n boundaryInset: boundaryInset,\n violations: util_1.EMPTY_CLIENT_RECT,\n hasViolations: false,\n })\n : contentLocation, inputTop = _l.top, inputLeft = _l.left;\n var left_1 = Math.round(parentRect.left + inputLeft - scoutRect.left);\n var top_1 = Math.round(parentRect.top + inputTop - scoutRect.top);\n popoverRef.current.style.transform = \"translate(\" + left_1 + \"px, \" + top_1 + \"px)\";\n onPositionPopover({\n childRect: childRect,\n popoverRect: popoverRect,\n parentRect: parentRect,\n boundaryRect: boundaryRect,\n padding: padding,\n nudgedTop: 0,\n nudgedLeft: 0,\n boundaryInset: boundaryInset,\n violations: util_1.EMPTY_CLIENT_RECT,\n hasViolations: false,\n });\n return;\n }\n var isExhausted = positionIndex === positions.length;\n var position = isExhausted ? positions[0] : positions[positionIndex];\n var _m = util_1.getNewPopoverRect({\n childRect: childRect,\n popoverRect: popoverRect,\n boundaryRect: boundaryRect,\n position: position,\n align: align,\n padding: padding,\n reposition: reposition,\n }, boundaryInset), rect = _m.rect, boundaryViolation = _m.boundaryViolation;\n if (boundaryViolation && reposition && !isExhausted) {\n positionPopover({\n positionIndex: positionIndex + 1,\n childRect: childRect,\n popoverRect: popoverRect,\n parentRect: parentRect,\n boundaryRect: boundaryRect,\n });\n return;\n }\n var top = rect.top, left = rect.left, width = rect.width, height = rect.height;\n var shouldNudge = reposition && !isExhausted;\n var _o = util_1.getNudgedPopoverRect(rect, boundaryRect, boundaryInset), nudgedLeft = _o.left, nudgedTop = _o.top;\n var finalTop = top;\n var finalLeft = left;\n if (shouldNudge) {\n finalTop = nudgedTop;\n finalLeft = nudgedLeft;\n }\n finalTop = Math.round(finalTop - scoutRect.top);\n finalLeft = Math.round(finalLeft - scoutRect.left);\n popoverRef.current.style.transform = \"translate(\" + finalLeft + \"px, \" + finalTop + \"px)\";\n var potentialViolations = {\n top: boundaryRect.top + boundaryInset - finalTop,\n left: boundaryRect.left + boundaryInset - finalLeft,\n right: finalLeft + width - boundaryRect.right + boundaryInset,\n bottom: finalTop + height - boundaryRect.bottom + boundaryInset,\n };\n onPositionPopover({\n childRect: childRect,\n popoverRect: {\n top: finalTop,\n left: finalLeft,\n width: width,\n height: height,\n right: finalLeft + width,\n bottom: finalTop + height,\n },\n parentRect: parentRect,\n boundaryRect: boundaryRect,\n position: position,\n align: align,\n padding: padding,\n nudgedTop: nudgedTop - top,\n nudgedLeft: nudgedLeft - left,\n boundaryInset: boundaryInset,\n violations: {\n top: potentialViolations.top <= 0 ? 0 : potentialViolations.top,\n left: potentialViolations.left <= 0 ? 0 : potentialViolations.left,\n right: potentialViolations.right <= 0 ? 0 : potentialViolations.right,\n bottom: potentialViolations.bottom <= 0 ? 0 : potentialViolations.bottom,\n },\n hasViolations: potentialViolations.top > 0 ||\n potentialViolations.left > 0 ||\n potentialViolations.right > 0 ||\n potentialViolations.bottom > 0,\n });\n }, [\n parentElement,\n childRef,\n scoutRef,\n popoverRef,\n boundaryElement,\n isOpen,\n contentLocation,\n positions,\n align,\n padding,\n reposition,\n boundaryInset,\n onPositionPopover,\n ]);\n return {\n positionPopover: positionPopover,\n popoverRef: popoverRef,\n scoutRef: scoutRef,\n };\n};\nexports.usePopover = usePopover;\n//# sourceMappingURL=usePopover.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useMemoizedArray = void 0;\nvar react_1 = require(\"react\");\nvar useMemoizedArray = function (externalArray) {\n var prevArrayRef = react_1.useRef(externalArray);\n var array = react_1.useMemo(function () {\n if (prevArrayRef.current === externalArray)\n return prevArrayRef.current;\n if (prevArrayRef.current.length !== externalArray.length) {\n prevArrayRef.current = externalArray;\n return externalArray;\n }\n for (var i = 0; i < externalArray.length; i += 1) {\n if (externalArray[i] !== prevArrayRef.current[i]) {\n prevArrayRef.current = externalArray;\n return externalArray;\n }\n }\n return prevArrayRef.current;\n }, [externalArray]);\n return array;\n};\nexports.useMemoizedArray = useMemoizedArray;\n//# sourceMappingURL=useMemoizedArray.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useArrowContainer = void 0;\nvar react_1 = require(\"react\");\nvar useArrowContainer = function (_a) {\n var childRect = _a.childRect, popoverRect = _a.popoverRect, position = _a.position, arrowSize = _a.arrowSize, arrowColor = _a.arrowColor;\n var arrowContainerStyle = react_1.useMemo(function () {\n return ({\n padding: arrowSize,\n });\n }, [arrowSize]);\n var arrowStyle = react_1.useMemo(function () {\n return (__assign({ position: 'absolute' }, (function () {\n var arrowWidth = arrowSize * 2;\n var top = childRect.top - popoverRect.top + childRect.height / 2 - arrowWidth / 2;\n var left = childRect.left - popoverRect.left + childRect.width / 2 - arrowWidth / 2;\n var lowerBound = arrowSize;\n var leftUpperBound = popoverRect.width - arrowSize;\n var topUpperBound = popoverRect.height - arrowSize;\n left = left < lowerBound ? lowerBound : left;\n left = left + arrowWidth > leftUpperBound ? leftUpperBound - arrowWidth : left;\n top = top < lowerBound ? lowerBound : top;\n top = top + arrowWidth > topUpperBound ? topUpperBound - arrowWidth : top;\n top = Number.isNaN(top) ? 0 : top;\n left = Number.isNaN(left) ? 0 : left;\n switch (position) {\n case 'right':\n return {\n borderTop: arrowSize + \"px solid transparent\",\n borderBottom: arrowSize + \"px solid transparent\",\n borderRight: arrowSize + \"px solid \" + arrowColor,\n left: 0,\n top: top,\n };\n case 'left':\n return {\n borderTop: arrowSize + \"px solid transparent\",\n borderBottom: arrowSize + \"px solid transparent\",\n borderLeft: arrowSize + \"px solid \" + arrowColor,\n right: 0,\n top: top,\n };\n case 'bottom':\n return {\n borderLeft: arrowSize + \"px solid transparent\",\n borderRight: arrowSize + \"px solid transparent\",\n borderBottom: arrowSize + \"px solid \" + arrowColor,\n top: 0,\n left: left,\n };\n case 'top':\n return {\n borderLeft: arrowSize + \"px solid transparent\",\n borderRight: arrowSize + \"px solid transparent\",\n borderTop: arrowSize + \"px solid \" + arrowColor,\n bottom: 0,\n left: left,\n };\n default:\n return {\n display: 'hidden',\n };\n }\n })()));\n }, [\n arrowColor,\n arrowSize,\n childRect.height,\n childRect.left,\n childRect.top,\n childRect.width,\n popoverRect.height,\n popoverRect.left,\n popoverRect.top,\n popoverRect.width,\n position,\n ]);\n return {\n arrowContainerStyle: arrowContainerStyle,\n arrowStyle: arrowStyle,\n };\n};\nexports.useArrowContainer = useArrowContainer;\n//# sourceMappingURL=useArrowContainer.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrowContainer = void 0;\nvar jsx_runtime_1 = require(\"react/jsx-runtime\");\nvar react_1 = require(\"react\");\nvar useArrowContainer_1 = require(\"./useArrowContainer\");\nvar ArrowContainer = function (_a) {\n var childRect = _a.childRect, popoverRect = _a.popoverRect, position = _a.position, arrowColor = _a.arrowColor, arrowSize = _a.arrowSize, arrowClassName = _a.arrowClassName, externalArrowStyle = _a.arrowStyle, className = _a.className, children = _a.children, externalArrowContainerStyle = _a.style;\n var _b = useArrowContainer_1.useArrowContainer({\n childRect: childRect,\n popoverRect: popoverRect,\n position: position,\n arrowColor: arrowColor,\n arrowSize: arrowSize,\n }), arrowContainerStyle = _b.arrowContainerStyle, arrowStyle = _b.arrowStyle;\n var mergedContainerStyle = react_1.useMemo(function () { return (__assign(__assign({}, arrowContainerStyle), externalArrowContainerStyle)); }, [arrowContainerStyle, externalArrowContainerStyle]);\n var mergedArrowStyle = react_1.useMemo(function () { return (__assign(__assign({}, arrowStyle), externalArrowStyle)); }, [arrowStyle, externalArrowStyle]);\n return (jsx_runtime_1.jsxs(\"div\", __assign({ className: className, style: mergedContainerStyle }, { children: [jsx_runtime_1.jsx(\"div\", { style: mergedArrowStyle, className: arrowClassName }, void 0), children] }), void 0));\n};\nexports.ArrowContainer = ArrowContainer;\n//# sourceMappingURL=ArrowContainer.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Popover = exports.usePopover = exports.ArrowContainer = exports.useArrowContainer = void 0;\nvar jsx_runtime_1 = require(\"react/jsx-runtime\");\nvar react_1 = require(\"react\");\nvar PopoverPortal_1 = require(\"./PopoverPortal\");\nvar util_1 = require(\"./util\");\nvar usePopover_1 = require(\"./usePopover\");\nObject.defineProperty(exports, \"usePopover\", { enumerable: true, get: function () { return usePopover_1.usePopover; } });\nvar useMemoizedArray_1 = require(\"./useMemoizedArray\");\nvar useArrowContainer_1 = require(\"./useArrowContainer\");\nObject.defineProperty(exports, \"useArrowContainer\", { enumerable: true, get: function () { return useArrowContainer_1.useArrowContainer; } });\nvar ArrowContainer_1 = require(\"./ArrowContainer\");\nObject.defineProperty(exports, \"ArrowContainer\", { enumerable: true, get: function () { return ArrowContainer_1.ArrowContainer; } });\nvar DEFAULT_POSITIONS = ['top', 'left', 'right', 'bottom'];\nvar PopoverInternal = react_1.forwardRef(function (_a, externalRef) {\n var isOpen = _a.isOpen, children = _a.children, content = _a.content, _b = _a.positions, externalPositions = _b === void 0 ? DEFAULT_POSITIONS : _b, _c = _a.align, align = _c === void 0 ? 'center' : _c, _d = _a.padding, padding = _d === void 0 ? 0 : _d, _e = _a.reposition, reposition = _e === void 0 ? true : _e, _f = _a.parentElement, parentElement = _f === void 0 ? window.document.body : _f, _g = _a.boundaryElement, boundaryElement = _g === void 0 ? parentElement : _g, _h = _a.containerClassName, containerClassName = _h === void 0 ? 'react-tiny-popover-container' : _h, containerStyle = _a.containerStyle, contentLocation = _a.contentLocation, _j = _a.boundaryInset, boundaryInset = _j === void 0 ? 0 : _j, onClickOutside = _a.onClickOutside, _k = _a.clickOutsideCapture, clickOutsideCapture = _k === void 0 ? false : _k;\n var positions = useMemoizedArray_1.useMemoizedArray(externalPositions);\n // TODO: factor prevs out into a custom prevs hook\n var prevIsOpen = react_1.useRef(false);\n var prevPositions = react_1.useRef();\n var prevContentLocation = react_1.useRef();\n var prevReposition = react_1.useRef(reposition);\n var childRef = react_1.useRef();\n var _l = react_1.useState({\n align: align,\n nudgedLeft: 0,\n nudgedTop: 0,\n position: positions[0],\n padding: padding,\n childRect: util_1.EMPTY_CLIENT_RECT,\n popoverRect: util_1.EMPTY_CLIENT_RECT,\n parentRect: util_1.EMPTY_CLIENT_RECT,\n boundaryRect: util_1.EMPTY_CLIENT_RECT,\n boundaryInset: boundaryInset,\n violations: util_1.EMPTY_CLIENT_RECT,\n hasViolations: false,\n }), popoverState = _l[0], setPopoverState = _l[1];\n var onPositionPopover = react_1.useCallback(function (popoverState) { return setPopoverState(popoverState); }, []);\n var _m = usePopover_1.usePopover({\n isOpen: isOpen,\n childRef: childRef,\n containerClassName: containerClassName,\n parentElement: parentElement,\n boundaryElement: boundaryElement,\n contentLocation: contentLocation,\n positions: positions,\n align: align,\n padding: padding,\n boundaryInset: boundaryInset,\n reposition: reposition,\n onPositionPopover: onPositionPopover,\n }), positionPopover = _m.positionPopover, popoverRef = _m.popoverRef, scoutRef = _m.scoutRef;\n react_1.useLayoutEffect(function () {\n var shouldUpdate = true;\n var updatePopover = function () {\n var _a, _b;\n if (isOpen && shouldUpdate) {\n var childRect = (_a = childRef === null || childRef === void 0 ? void 0 : childRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n var popoverRect = (_b = popoverRef === null || popoverRef === void 0 ? void 0 : popoverRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();\n if (childRect != null &&\n popoverRect != null &&\n (!util_1.rectsAreEqual(childRect, {\n top: popoverState.childRect.top,\n left: popoverState.childRect.left,\n width: popoverState.childRect.width,\n height: popoverState.childRect.height,\n bottom: popoverState.childRect.top + popoverState.childRect.height,\n right: popoverState.childRect.left + popoverState.childRect.width,\n }) ||\n popoverRect.width !== popoverState.popoverRect.width ||\n popoverRect.height !== popoverState.popoverRect.height ||\n popoverState.padding !== padding ||\n popoverState.align !== align ||\n positions !== prevPositions.current ||\n contentLocation !== prevContentLocation.current ||\n reposition !== prevReposition.current)) {\n positionPopover();\n }\n // TODO: factor prev checks out into the custom prevs hook\n if (positions !== prevPositions.current) {\n prevPositions.current = positions;\n }\n if (contentLocation !== prevContentLocation.current) {\n prevContentLocation.current = contentLocation;\n }\n if (reposition !== prevReposition.current) {\n prevReposition.current = reposition;\n }\n if (shouldUpdate) {\n window.requestAnimationFrame(updatePopover);\n }\n }\n prevIsOpen.current = isOpen;\n };\n window.requestAnimationFrame(updatePopover);\n return function () {\n shouldUpdate = false;\n };\n }, [\n align,\n contentLocation,\n isOpen,\n padding,\n popoverRef,\n popoverState.align,\n popoverState.childRect.height,\n popoverState.childRect.left,\n popoverState.childRect.top,\n popoverState.childRect.width,\n popoverState.padding,\n popoverState.popoverRect.height,\n popoverState.popoverRect.width,\n positionPopover,\n positions,\n reposition,\n ]);\n react_1.useEffect(function () {\n var popoverElement = popoverRef.current;\n Object.assign(popoverElement.style, containerStyle);\n return function () {\n Object.keys(containerStyle !== null && containerStyle !== void 0 ? containerStyle : {}).forEach(function (key) {\n return delete popoverElement.style[key];\n });\n };\n }, [containerStyle, isOpen, popoverRef]);\n var handleOnClickOutside = react_1.useCallback(function (e) {\n var _a, _b;\n if (isOpen &&\n !((_a = popoverRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) &&\n !((_b = childRef.current) === null || _b === void 0 ? void 0 : _b.contains(e.target))) {\n onClickOutside === null || onClickOutside === void 0 ? void 0 : onClickOutside(e);\n }\n }, [isOpen, onClickOutside, popoverRef]);\n var handleWindowResize = react_1.useCallback(function () {\n if (childRef.current) {\n window.requestAnimationFrame(function () { return positionPopover(); });\n }\n }, [positionPopover]);\n react_1.useEffect(function () {\n var body = parentElement.ownerDocument.body;\n body.addEventListener('click', handleOnClickOutside, clickOutsideCapture);\n body.addEventListener('contextmenu', handleOnClickOutside, clickOutsideCapture);\n body.addEventListener('resize', handleWindowResize);\n return function () {\n body.removeEventListener('click', handleOnClickOutside, clickOutsideCapture);\n body.removeEventListener('contextmenu', handleOnClickOutside, clickOutsideCapture);\n body.removeEventListener('resize', handleWindowResize);\n };\n }, [clickOutsideCapture, handleOnClickOutside, handleWindowResize, parentElement]);\n var handleRef = react_1.useCallback(function (node) {\n childRef.current = node;\n if (externalRef != null) {\n if (typeof externalRef === 'object') {\n externalRef.current = node;\n }\n else if (typeof externalRef === 'function') {\n externalRef(node);\n }\n }\n }, [externalRef]);\n var renderChild = function () {\n return react_1.cloneElement(children, {\n ref: handleRef,\n });\n };\n var renderPopover = function () {\n if (!isOpen)\n return null;\n return (jsx_runtime_1.jsx(PopoverPortal_1.PopoverPortal, __assign({ element: popoverRef.current, scoutElement: scoutRef.current, container: parentElement }, { children: typeof content === 'function' ? content(popoverState) : content }), void 0));\n };\n return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [renderChild(), renderPopover()] }, void 0));\n});\nexports.Popover = react_1.forwardRef(function (props, ref) {\n if (typeof window === 'undefined')\n return props.children;\n return jsx_runtime_1.jsx(PopoverInternal, __assign({}, props, { ref: ref }), void 0);\n});\n//# sourceMappingURL=Popover.js.map","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {};\n\nfunction addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n}\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {};\n\nfunction addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n}\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n}\n\nfunction set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// ALIASES\n\naddUnitAlias('month', 'M');\n\n// PRIORITY\n\naddUnitPriority('month', 8);\n\n// PARSING\n\naddRegexToken('M', match1to2);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// ALIASES\n\naddUnitAlias('year', 'y');\n\n// PRIORITIES\n\naddUnitPriority('year', 1);\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// ALIASES\n\naddUnitAlias('week', 'w');\naddUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\naddUnitPriority('week', 5);\naddUnitPriority('isoWeek', 5);\n\n// PARSING\n\naddRegexToken('w', match1to2);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// ALIASES\n\naddUnitAlias('day', 'd');\naddUnitAlias('weekday', 'e');\naddUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\naddUnitPriority('day', 11);\naddUnitPriority('weekday', 11);\naddUnitPriority('isoWeekday', 11);\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// ALIASES\n\naddUnitAlias('hour', 'h');\n\n// PRIORITY\naddUnitPriority('hour', 13);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2);\naddRegexToken('h', match1to2);\naddRegexToken('k', match1to2);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\naddUnitAlias('weekYear', 'gg');\naddUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\naddUnitPriority('weekYear', 1);\naddUnitPriority('isoWeekYear', 1);\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// ALIASES\n\naddUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\naddUnitPriority('quarter', 7);\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// ALIASES\n\naddUnitAlias('date', 'D');\n\n// PRIORITY\naddUnitPriority('date', 9);\n\n// PARSING\n\naddRegexToken('D', match1to2);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// ALIASES\n\naddUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\naddUnitPriority('dayOfYear', 4);\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// ALIASES\n\naddUnitAlias('minute', 'm');\n\n// PRIORITY\n\naddUnitPriority('minute', 14);\n\n// PARSING\n\naddRegexToken('m', match1to2);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// ALIASES\n\naddUnitAlias('second', 's');\n\n// PRIORITY\n\naddUnitPriority('second', 15);\n\n// PARSING\n\naddRegexToken('s', match1to2);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// ALIASES\n\naddUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\naddUnitPriority('millisecond', 16);\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\n// TODO: Use this.as('ms')?\nfunction valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.29.4';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n};\n\nexport default hooks;\n","import React from 'react'\nimport moment from \"moment\";\n\nconst momentDate = (date) => moment(date).format('ddd, D MMM YYYY');\n\nexport default ({ timePeriod, togglePopover }) => {\n if (!timePeriod) return null;\n\n const { startDate, endDate, title } = timePeriod;\n\n let context = `${momentDate(startDate)} - ${momentDate(endDate)}`;\n if ((moment(startDate).isSame(endDate))) context = `${momentDate(startDate)}`;\n\n return (\n <button type='button' className='btn btn-default btn-block time-periods-button' onClick={togglePopover}>\n {context}\n </button>\n )\n};","/**\n * The UI elements composing DayPicker. These elements are mapped to\n * {@link CustomComponents}, the {@link ClassNames} and the {@link Styles} used by\n * DayPicker.\n *\n * Some of these elements are extended by flags and modifiers.\n */\nexport var UI;\n(function (UI) {\n /** The previous button in the navigation. */\n UI[\"ButtonPrevious\"] = \"button_previous\";\n /** The next button the navigation. */\n UI[\"ButtonNext\"] = \"button_next\";\n /** The root component displaying the months and the navigation bar. */\n UI[\"Root\"] = \"root\";\n /** The Chevron SVG element used by navigation buttons and dropdowns. */\n UI[\"Chevron\"] = \"chevron\";\n /**\n * The grid cell with the day's date. Extended by {@link DayFlag} and\n * {@link SelectionFlag}.\n */\n UI[\"Day\"] = \"day\";\n /** The button containing the formatted day's date, inside the grid cell. */\n UI[\"DayButton\"] = \"day_button\";\n /** The caption label of the month (when not showing the dropdown navigation). */\n UI[\"CaptionLabel\"] = \"caption_label\";\n /** The container of the dropdown navigation (when enabled). */\n UI[\"Dropdowns\"] = \"dropdowns\";\n /** The dropdown element to select for years and months. */\n UI[\"Dropdown\"] = \"dropdown\";\n /** The container element of the dropdown. */\n UI[\"DropdownRoot\"] = \"dropdown_root\";\n /** The root element of the footer. */\n UI[\"Footer\"] = \"footer\";\n /** The month grid. */\n UI[\"MonthGrid\"] = \"month_grid\";\n /** Contains the dropdown navigation or the caption label. */\n UI[\"MonthCaption\"] = \"month_caption\";\n /** The dropdown with the months. */\n UI[\"MonthsDropdown\"] = \"months_dropdown\";\n /** Wrapper of the month grid. */\n UI[\"Month\"] = \"month\";\n /** The container of the displayed months. */\n UI[\"Months\"] = \"months\";\n /** The navigation bar with the previous and next buttons. */\n UI[\"Nav\"] = \"nav\";\n /** The row containing the week. */\n UI[\"Week\"] = \"week\";\n /** The group of row weeks in a month (`tbody`). */\n UI[\"Weeks\"] = \"weeks\";\n /** The column header with the weekday. */\n UI[\"Weekday\"] = \"weekday\";\n /** The row grouping the weekdays in the column headers. */\n UI[\"Weekdays\"] = \"weekdays\";\n /** The cell containing the week number. */\n UI[\"WeekNumber\"] = \"week_number\";\n /** The cell header of the week numbers column. */\n UI[\"WeekNumberHeader\"] = \"week_number_header\";\n /** The dropdown with the years. */\n UI[\"YearsDropdown\"] = \"years_dropdown\";\n})(UI || (UI = {}));\n/** The flags for the {@link UI.Day}. */\nexport var DayFlag;\n(function (DayFlag) {\n /** The day is disabled. */\n DayFlag[\"disabled\"] = \"disabled\";\n /** The day is hidden. */\n DayFlag[\"hidden\"] = \"hidden\";\n /** The day is outside the current month. */\n DayFlag[\"outside\"] = \"outside\";\n /** The day is focused. */\n DayFlag[\"focused\"] = \"focused\";\n /** The day is today. */\n DayFlag[\"today\"] = \"today\";\n})(DayFlag || (DayFlag = {}));\n/**\n * The state that can be applied to the {@link UI.Day} element when in selection\n * mode.\n */\nexport var SelectionState;\n(function (SelectionState) {\n /** The day is at the end of a selected range. */\n SelectionState[\"range_end\"] = \"range_end\";\n /** The day is at the middle of a selected range. */\n SelectionState[\"range_middle\"] = \"range_middle\";\n /** The day is at the start of a selected range. */\n SelectionState[\"range_start\"] = \"range_start\";\n /** The day is selected. */\n SelectionState[\"selected\"] = \"selected\";\n})(SelectionState || (SelectionState = {}));\n//# sourceMappingURL=UI.js.map","import { DayFlag, SelectionState, UI } from \"../UI.js\";\nexport function getClassNamesForModifiers(modifiers, classNames, modifiersClassNames = {}) {\n const modifierClassNames = Object.entries(modifiers)\n .filter(([, active]) => active === true)\n .reduce((previousValue, [key]) => {\n if (modifiersClassNames[key]) {\n previousValue.push(modifiersClassNames[key]);\n }\n else if (classNames[DayFlag[key]]) {\n previousValue.push(classNames[DayFlag[key]]);\n }\n else if (classNames[SelectionState[key]]) {\n previousValue.push(classNames[SelectionState[key]]);\n }\n return previousValue;\n }, [classNames[UI.Day]]);\n return modifierClassNames;\n}\n//# sourceMappingURL=getClassNamesForModifiers.js.map","import React from \"react\";\n/**\n * Render the button elements in the calendar.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Button(props) {\n return React.createElement(\"button\", { ...props });\n}\n//# sourceMappingURL=Button.js.map","import React from \"react\";\n/**\n * Render the chevron icon used in the navigation buttons and dropdowns.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Chevron(props) {\n const { size = 24, orientation = \"left\", className } = props;\n return (React.createElement(\"svg\", { className: className, width: size, height: size, viewBox: \"0 0 24 24\" },\n orientation === \"up\" && (React.createElement(\"polygon\", { points: \"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28\" })),\n orientation === \"down\" && (React.createElement(\"polygon\", { points: \"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72\" })),\n orientation === \"left\" && (React.createElement(\"polygon\", { points: \"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20\" })),\n orientation === \"right\" && (React.createElement(\"polygon\", { points: \"8 18.612 14.1888889 12.5 8 6.37733333 9.91111111 4.5 18 12.5 9.91111111 20.5\" }))));\n}\n//# sourceMappingURL=Chevron.js.map","import React from \"react\";\n/**\n * Render the label in the month caption.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function CaptionLabel(props) {\n return React.createElement(\"span\", { ...props });\n}\n//# sourceMappingURL=CaptionLabel.js.map","import React from \"react\";\n/**\n * Render the gridcell of a day in the calendar and handle the interaction and\n * the focus with they day.\n *\n * If you need to just change the content of the day cell, consider swapping the\n * `DayDate` component instead.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Day(props) {\n const { day, modifiers, ...tdProps } = props;\n return React.createElement(\"td\", { ...tdProps });\n}\n//# sourceMappingURL=Day.js.map","import React from \"react\";\n/**\n * Render the button for a day in the calendar.\n *\n * When not interactive, DayPicker will render a `DayContent` component instead\n * of a `DayButton` component.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function DayButton(props) {\n const { day, modifiers, ...buttonProps } = props;\n const ref = React.useRef(null);\n React.useEffect(() => {\n if (modifiers.focused)\n ref.current?.focus();\n }, [modifiers.focused]);\n return React.createElement(\"button\", { ref: ref, ...buttonProps });\n}\n//# sourceMappingURL=DayButton.js.map","import React from \"react\";\nimport { UI } from \"../UI.js\";\n/**\n * Render a dropdown component to use in the navigation bar.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Dropdown(props) {\n const { options, className, components, classNames, ...selectProps } = props;\n const cssClassSelect = [classNames[UI.Dropdown], className].join(\" \");\n const selectedOption = options?.find(({ value }) => value === selectProps.value);\n return (React.createElement(\"span\", { \"data-disabled\": selectProps.disabled, className: classNames[UI.DropdownRoot] },\n React.createElement(components.Select, { className: cssClassSelect, ...selectProps }, options?.map(({ value, label, disabled }) => (React.createElement(components.Option, { key: value, value: value, disabled: disabled }, label)))),\n React.createElement(\"span\", { className: classNames[UI.CaptionLabel], \"aria-hidden\": true },\n selectedOption?.label,\n React.createElement(components.Chevron, { orientation: \"down\", size: 18, className: classNames[UI.Chevron] }))));\n}\n//# sourceMappingURL=Dropdown.js.map","import React from \"react\";\n/**\n * Render the the navigation dropdowns.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function DropdownNav(props) {\n return React.createElement(\"div\", { ...props });\n}\n//# sourceMappingURL=DropdownNav.js.map","import React from \"react\";\n/**\n * Component wrapping the footer.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Footer(props) {\n return React.createElement(\"div\", { ...props });\n}\n//# sourceMappingURL=Footer.js.map","import React from \"react\";\n/**\n * Render the grid with the weekday header row and the weeks for the given\n * month.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Month(props) {\n const { calendarMonth, displayIndex, ...divProps } = props;\n return React.createElement(\"div\", { ...divProps }, props.children);\n}\n//# sourceMappingURL=Month.js.map","import React from \"react\";\n/**\n * Render the caption of a month in the calendar.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function MonthCaption(props) {\n const { calendarMonth, displayIndex, ...divProps } = props;\n return React.createElement(\"div\", { ...divProps });\n}\n//# sourceMappingURL=MonthCaption.js.map","import React from \"react\";\n/**\n * Render the grid of days in a month.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function MonthGrid(props) {\n return React.createElement(\"table\", { ...props });\n}\n//# sourceMappingURL=MonthGrid.js.map","import React from \"react\";\n/**\n * Component wrapping the month grids.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Months(props) {\n return React.createElement(\"div\", { ...props });\n}\n//# sourceMappingURL=Months.js.map","import React from \"react\";\n/**\n * Render the toolbar with the navigation button.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Nav(props) {\n return React.createElement(\"nav\", { ...props });\n}\n//# sourceMappingURL=Nav.js.map","import React from \"react\";\n/**\n * Render the `option` element.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Option(props) {\n return React.createElement(\"option\", { ...props });\n}\n//# sourceMappingURL=Option.js.map","import React from \"react\";\n/**\n * Render the root element.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Root(props) {\n return React.createElement(\"div\", { ...props });\n}\n//# sourceMappingURL=Root.js.map","import React from \"react\";\n/**\n * Render the `select` element.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Select(props) {\n return React.createElement(\"select\", { ...props });\n}\n//# sourceMappingURL=Select.js.map","import React from \"react\";\n/**\n * Render the weeks in the month grid.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Weeks(props) {\n return React.createElement(\"tbody\", { ...props });\n}\n//# sourceMappingURL=Weeks.js.map","import React from \"react\";\n/**\n * Render a row in the calendar, with the days and the week number.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Week(props) {\n const { week, ...trProps } = props;\n return React.createElement(\"tr\", { ...trProps });\n}\n//# sourceMappingURL=Week.js.map","import React from \"react\";\n/**\n * Render the column header with the weekday name (e.g. \"Mo\", \"Tu\", etc.).\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Weekday(props) {\n return React.createElement(\"th\", { ...props });\n}\n//# sourceMappingURL=Weekday.js.map","import React from \"react\";\n/**\n * Render the row with the weekday names.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function Weekdays(props) {\n return (React.createElement(\"thead\", null,\n React.createElement(\"tr\", { ...props })));\n}\n//# sourceMappingURL=Weekdays.js.map","import React from \"react\";\n/**\n * Render the cell with the number of the week.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function WeekNumber(props) {\n const { week, ...tdProps } = props;\n return React.createElement(\"td\", { ...tdProps });\n}\n//# sourceMappingURL=WeekNumber.js.map","import React from \"react\";\n/**\n * Render the column header for the week numbers.\n *\n * @group Components\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function WeekNumberHeader(props) {\n return React.createElement(\"th\", { ...props });\n}\n//# sourceMappingURL=WeekNumberHeader.js.map","import * as components from \"../components/custom-components.js\";\nexport function getComponents(customComponents) {\n return {\n ...components,\n ...customComponents\n };\n}\n//# sourceMappingURL=getComponents.js.map","/** Return the `data-` attributes from the props. */\nexport function getDataAttributes(props) {\n const dataAttributes = {\n \"data-mode\": props.mode ?? undefined,\n \"data-required\": \"required\" in props ? props.required : undefined,\n \"data-multiple-months\": (props.numberOfMonths && props.numberOfMonths > 1) || undefined,\n \"data-week-numbers\": props.showWeekNumber || undefined\n };\n Object.entries(props).forEach(([key, val]) => {\n if (key.startsWith(\"data-\")) {\n dataAttributes[key] = val;\n }\n });\n return dataAttributes;\n}\n//# sourceMappingURL=getDataAttributes.js.map","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date(date: DateType): DateType {\n * return constructFrom(\n * date, // Use contrustor from the given date\n * date.getTime() // Use the date value to create a new date\n * )\n * }\n */\nexport function constructFrom(date, value) {\n if (date instanceof Date) {\n return new date.constructor(value);\n } else {\n return new Date(value);\n }\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.mjs\";\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport function addWeeks(date, amount) {\n const days = amount * 7;\n return addDays(date, days);\n}\n\n// Fallback for modularized imports:\nexport default addWeeks;\n","import { addMonths } from \"./addMonths.mjs\";\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount) {\n return addMonths(date, amount * 12);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport function differenceInCalendarMonths(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth();\n\n return yearDiff * 12 + monthDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarMonths;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { endOfWeek } from \"./endOfWeek.mjs\";\n\n/**\n * @name endOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * const result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfISOWeek(date) {\n return endOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default endOfISOWeek;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nexport function endOfYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfYear;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { startOfDay } from \"./startOfDay.mjs\";\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(dateLeft, dateRight) {\n const dateLeftStartOfDay = startOfDay(dateLeft);\n const dateRightStartOfDay = startOfDay(dateRight);\n\n return +dateLeftStartOfDay === +dateRightStartOfDay;\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n return (\n _dateLeft.getFullYear() === _dateRight.getFullYear() &&\n _dateLeft.getMonth() === _dateRight.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport function isSameYear(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n return _dateLeft.getFullYear() === _dateRight.getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default isSameYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dates - The dates to compare\n *\n * @returns The latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport function max(dates) {\n let result;\n dates.forEach(function (dirtyDate) {\n const currentDate = toDate(dirtyDate);\n\n if (\n result === undefined ||\n result < currentDate ||\n isNaN(Number(currentDate))\n ) {\n result = currentDate;\n }\n });\n\n return result || new Date(NaN);\n}\n\n// Fallback for modularized imports:\nexport default max;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dates - The dates to compare\n *\n * @returns The earliest of the dates\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nexport function min(dates) {\n let result;\n\n dates.forEach((dirtyDate) => {\n const date = toDate(dirtyDate);\n if (!result || result > date || isNaN(+date)) {\n result = date;\n }\n });\n\n return result || new Date(NaN);\n}\n\n// Fallback for modularized imports:\nexport default min;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDaysInMonth } from \"./getDaysInMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const dateWithDesiredMonth = constructFrom(date, 0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year) {\n const _date = toDate(date);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) {\n return constructFrom(date, NaN);\n }\n\n _date.setFullYear(year);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date) {\n const _date = toDate(date);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { addDays } from \"date-fns/addDays\";\nimport { addMonths } from \"date-fns/addMonths\";\nimport { addWeeks } from \"date-fns/addWeeks\";\nimport { addYears } from \"date-fns/addYears\";\nimport { differenceInCalendarDays } from \"date-fns/differenceInCalendarDays\";\nimport { differenceInCalendarMonths } from \"date-fns/differenceInCalendarMonths\";\nimport { endOfISOWeek } from \"date-fns/endOfISOWeek\";\nimport { endOfMonth } from \"date-fns/endOfMonth\";\nimport { endOfWeek } from \"date-fns/endOfWeek\";\nimport { endOfYear } from \"date-fns/endOfYear\";\nimport { format } from \"date-fns/format\";\nimport { getISOWeek } from \"date-fns/getISOWeek\";\nimport { getWeek } from \"date-fns/getWeek\";\nimport { isAfter } from \"date-fns/isAfter\";\nimport { isBefore } from \"date-fns/isBefore\";\nimport { isDate } from \"date-fns/isDate\";\nimport { isSameDay } from \"date-fns/isSameDay\";\nimport { isSameMonth } from \"date-fns/isSameMonth\";\nimport { isSameYear } from \"date-fns/isSameYear\";\nimport { max } from \"date-fns/max\";\nimport { min } from \"date-fns/min\";\nimport { setMonth } from \"date-fns/setMonth\";\nimport { setYear } from \"date-fns/setYear\";\nimport { startOfDay } from \"date-fns/startOfDay\";\nimport { startOfISOWeek } from \"date-fns/startOfISOWeek\";\nimport { startOfMonth } from \"date-fns/startOfMonth\";\nimport { startOfWeek } from \"date-fns/startOfWeek\";\nimport { startOfYear } from \"date-fns/startOfYear\";\n/**\n * The default date library to use with the date picker.\n *\n * @private\n * @internal\n */\nexport const dateLib = {\n /** The constructor of the date object. */\n Date: Date,\n addDays,\n addMonths,\n addWeeks,\n addYears,\n differenceInCalendarDays,\n differenceInCalendarMonths,\n endOfISOWeek,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n getISOWeek,\n getWeek,\n isAfter,\n isBefore,\n isDate,\n isSameDay,\n isSameMonth,\n isSameYear,\n max,\n min,\n setMonth,\n setYear,\n startOfDay,\n startOfISOWeek,\n startOfMonth,\n startOfWeek,\n startOfYear\n};\n//# sourceMappingURL=dateLib.js.map","import { dateLib } from \"../lib/dateLib.js\";\nexport function getDateLib(customLib) {\n return {\n ...dateLib,\n ...customLib\n };\n}\n//# sourceMappingURL=getDateLib.js.map","import { UI, DayFlag, SelectionState } from \"../UI.js\";\n/**\n * Get the default class names for the UI elements.\n *\n * @group Utilities\n */\nexport function getDefaultClassNames() {\n const classNames = {};\n for (const key in UI) {\n classNames[UI[key]] =\n `rdp-${UI[key]}`;\n }\n for (const key in DayFlag) {\n classNames[DayFlag[key]] =\n `rdp-${DayFlag[key]}`;\n }\n for (const key in SelectionState) {\n classNames[SelectionState[key]] =\n `rdp-${SelectionState[key]}`;\n }\n return classNames;\n}\n//# sourceMappingURL=getDefaultClassNames.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Format the caption of the month.\n *\n * @defaultValue `LLLL y` (e.g. \"November 2022\")\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatCaption(month, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n return dateLib.format(month, \"LLLL y\", options);\n}\n/**\n * @private\n * @deprecated Use {@link formatCaption} instead.\n * @group Formatters\n */\nexport const formatMonthCaption = formatCaption;\n//# sourceMappingURL=formatCaption.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Format the day date shown in the day cell.\n *\n * @defaultValue `d` (e.g. \"1\")\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatDay(date, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n return dateLib.format(date, \"d\", options);\n}\n//# sourceMappingURL=formatDay.js.map","import { enUS } from \"../lib/locales.js\";\n/**\n * Format the month number for the dropdown option label.\n *\n * @defaultValue The localized month name\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatMonthDropdown(\n/** The month number to format. */\nmonthNumber, \n/** The locale to use for formatting. */\nlocale = enUS) {\n return locale.localize?.month(monthNumber);\n}\n//# sourceMappingURL=formatMonthDropdown.js.map","/**\n * Format the week number.\n *\n * @defaultValue `weekNumber.toLocaleString()` with a leading zero for single-digit numbers\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekNumber(weekNumber) {\n if (weekNumber < 10) {\n return `0${weekNumber.toLocaleString()}`;\n }\n return `${weekNumber.toLocaleString()}`;\n}\n//# sourceMappingURL=formatWeekNumber.js.map","/**\n * Format the week number header.\n *\n * @defaultValue `\"\"`\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekNumberHeader() {\n return ``;\n}\n//# sourceMappingURL=formatWeekNumberHeader.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Format the weekday name to be displayed in the weekdays header.\n *\n * @defaultValue `cccccc` (e.g. \"Mo\" for Monday)\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatWeekdayName(weekday, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n return dateLib.format(weekday, \"cccccc\", options);\n}\n//# sourceMappingURL=formatWeekdayName.js.map","/**\n * Format the years for the dropdown option label.\n *\n * @defaultValue `year.toString()`\n * @group Formatters\n * @see https://daypicker.dev/docs/translation#custom-formatters\n */\nexport function formatYearDropdown(year) {\n return year.toString();\n}\n/**\n * @private\n * @deprecated Use `formatYearDropdown` instead.\n * @group Formatters\n */\nexport const formatYearCaption = formatYearDropdown;\n//# sourceMappingURL=formatYearDropdown.js.map","import * as defaultFormatters from \"../formatters/index.js\";\n/** Return the formatters from the props merged with the default formatters. */\nexport function getFormatters(customFormatters) {\n if (customFormatters?.formatMonthCaption && !customFormatters.formatCaption) {\n customFormatters.formatCaption = customFormatters.formatMonthCaption;\n }\n if (customFormatters?.formatYearCaption &&\n !customFormatters.formatYearDropdown) {\n customFormatters.formatYearDropdown = customFormatters.formatYearCaption;\n }\n return {\n ...defaultFormatters,\n ...customFormatters\n };\n}\n//# sourceMappingURL=getFormatters.js.map","/** Return the months to show in the dropdown. */\nexport function getMonthOptions(displayMonth, navStart, navEnd, formatters, locale, dateLib) {\n if (!navStart)\n return undefined;\n if (!navEnd)\n return undefined;\n const { addMonths, startOfMonth, isBefore, Date } = dateLib;\n const year = displayMonth.getFullYear();\n const months = [];\n let month = navStart;\n while (months.length < 12 && isBefore(month, addMonths(navEnd, 1))) {\n months.push(month.getMonth());\n month = addMonths(month, 1);\n }\n const sortedMonths = months.sort((a, b) => {\n return a - b;\n });\n const options = sortedMonths.map((value) => {\n const label = formatters.formatMonthDropdown(value, locale);\n const disabled = (navStart && new Date(year, value) < startOfMonth(navStart)) ||\n (navEnd && new Date(year, value) > startOfMonth(navEnd)) ||\n false;\n return { value, label, disabled };\n });\n return options;\n}\n//# sourceMappingURL=getMonthOptions.js.map","import { UI } from \"../UI.js\";\nexport function getStyleForModifiers(dayModifiers, styles = {}, modifiersStyles = {}) {\n let style = { ...styles?.[UI.Day] };\n Object.entries(dayModifiers)\n .filter(([, active]) => active === true)\n .forEach(([modifier]) => {\n style = {\n ...style,\n ...modifiersStyles?.[modifier]\n };\n });\n return style;\n}\n//# sourceMappingURL=getStyleForModifiers.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Generate a series of 7 days, starting from the week, to use for formatting\n * the weekday names (Monday, Tuesday, etc.).\n */\nexport function getWeekdays(locale, \n/** The index of the first day of the week (0 - Sunday). */\nweekStartsOn, \n/** Use ISOWeek instead of locale/ */\nISOWeek, \n/** @ignore */\ndateLib = defaultDateLib) {\n const start = ISOWeek\n ? dateLib.startOfISOWeek(new dateLib.Date())\n : dateLib.startOfWeek(new dateLib.Date(), { locale, weekStartsOn });\n const days = [];\n for (let i = 0; i < 7; i++) {\n const day = dateLib.addDays(start, i);\n days.push(day);\n }\n return days;\n}\n//# sourceMappingURL=getWeekdays.js.map","/** Return the years to show in the dropdown. */\nexport function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, dateLib) {\n if (!calendarStart)\n return undefined;\n if (!calendarEnd)\n return undefined;\n const { startOfMonth, startOfYear, endOfYear, addYears, isBefore, isSameYear, Date } = dateLib;\n const month = displayMonth.getMonth();\n const firstNavYear = startOfYear(calendarStart);\n const lastNavYear = endOfYear(calendarEnd);\n const years = [];\n let year = firstNavYear;\n while (isBefore(year, lastNavYear) || isSameYear(year, lastNavYear)) {\n years.push(year.getFullYear());\n year = addYears(year, 1);\n }\n return years.map((value) => {\n const disabled = (calendarStart && new Date(value, month) < startOfMonth(calendarStart)) ||\n (month &&\n calendarEnd &&\n new Date(value, month) > startOfMonth(calendarEnd)) ||\n false;\n const label = formatters.formatYearDropdown(value);\n return {\n value,\n label,\n disabled\n };\n });\n}\n//# sourceMappingURL=getYearOptions.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Return an ARIA label for the month grid, that will be announced when entering\n * the grid.\n *\n * @defaultValue `LLLL y` (e.g. \"November 2022\")\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelGrid(date, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n return dateLib.format(date, \"LLLL y\", options);\n}\n/**\n * @deprecated Use {@link labelGrid} instead.\n * @protected\n */\nexport const labelCaption = labelGrid;\n//# sourceMappingURL=labelGrid.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * The label for the day gridcell when the calendar is not interactive.\n *\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelGridcell(date, \n/** The modifiers for the day. */\nmodifiers, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n let label = dateLib.format(date, \"PPPP\", options);\n if (modifiers?.today) {\n label = `Today, ${label}`;\n }\n return label;\n}\n//# sourceMappingURL=labelGridcell.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * The ARIA label for the day button.\n *\n * Use the `modifiers` argument to add additional context to the label, e.g.\n * when a day is selected or is today.\n *\n * @defaultValue The formatted date.\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelDayButton(date, \n/** The modifiers for the day. */\nmodifiers, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n let label = dateLib.format(date, \"PPPP\", options);\n if (modifiers.today)\n label = `Today, ${label}`;\n if (modifiers.selected)\n label = `${label}, selected`;\n return label;\n}\n/** @deprecated Use `labelDayButton` instead. */\nexport const labelDay = labelDayButton;\n//# sourceMappingURL=labelDayButton.js.map","/**\n * The ARIA label for the navigation toolbar.\n *\n * @defaultValue `\"\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNav() {\n return \"\";\n}\n//# sourceMappingURL=labelNav.js.map","/**\n * The ARIA label for the months dropdown.\n *\n * @defaultValue `\"Choose the Month\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelMonthDropdown(options) {\n return \"Choose the Month\";\n}\n//# sourceMappingURL=labelMonthDropdown.js.map","/**\n * The ARIA label for next month button.\n *\n * @defaultValue `\"Go to the Next Month\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelNext(\n/** Undefined where there's no next month no navigate to. */\nmonth, options) {\n return \"Go to the Next Month\";\n}\n//# sourceMappingURL=labelNext.js.map","/**\n * The ARIA label for previous month button.\n *\n * @defaultValue `\"Go to the Previous Month\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelPrevious(\n/** Undefined where there's no previous month no navigate to. */\nmonth, options) {\n return \"Go to the Previous Month\";\n}\n//# sourceMappingURL=labelPrevious.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * The ARIA label for the Weekday column header.\n *\n * @defaultValue `\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekday(date, options, \n/** @ignore */\ndateLib = defaultDateLib) {\n return dateLib.format(date, \"cccc\", options);\n}\n//# sourceMappingURL=labelWeekday.js.map","/**\n * The ARIA label for the week number cell (the first cell in the row).\n *\n * @defaultValue `Week ${weekNumber}`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumber(weekNumber, options) {\n return `Week ${weekNumber}`;\n}\n//# sourceMappingURL=labelWeekNumber.js.map","/**\n * The ARIA label for the week number header element.\n *\n * @defaultValue `\"Week Number\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelWeekNumberHeader(options) {\n return \"Week Number\";\n}\n//# sourceMappingURL=labelWeekNumberHeader.js.map","/**\n * The ARIA label for the years dropdown.\n *\n * @defaultValue `\"Choose the Year\"`\n * @group Labels\n * @see https://daypicker.dev/docs/translation#aria-labels\n */\nexport function labelYearDropdown(options) {\n return \"Choose the Year\";\n}\n//# sourceMappingURL=labelYearDropdown.js.map","/** The number of days in a month when having 6 weeks. */\nconst NrOfDaysWithFixedWeeks = 42;\n/** Return all the dates to display in the calendar. */\nexport function getDates(displayMonths, maxDate, props, dateLib) {\n const firstMonth = displayMonths[0];\n const lastMonth = displayMonths[displayMonths.length - 1];\n const { ISOWeek, fixedWeeks, locale, weekStartsOn } = props ?? {};\n const { startOfWeek, endOfWeek, startOfISOWeek, endOfISOWeek, addDays, differenceInCalendarDays, differenceInCalendarMonths, isAfter, endOfMonth, Date } = dateLib;\n const startWeekFirstDate = ISOWeek\n ? startOfISOWeek(firstMonth)\n : startOfWeek(firstMonth, {\n weekStartsOn,\n locale\n });\n const endWeekLastDate = ISOWeek\n ? endOfISOWeek(endOfMonth(lastMonth))\n : endOfWeek(endOfMonth(lastMonth), {\n weekStartsOn,\n locale\n });\n const nOfDays = differenceInCalendarDays(endWeekLastDate, startWeekFirstDate);\n const nOfMonths = differenceInCalendarMonths(lastMonth, firstMonth) + 1;\n const dates = [];\n for (let i = 0; i <= nOfDays; i++) {\n const date = addDays(startWeekFirstDate, i);\n if (maxDate && isAfter(date, maxDate)) {\n break;\n }\n dates.push(new Date(date));\n }\n // If fixed weeks is enabled, add the extra dates to the array\n const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;\n if (fixedWeeks && dates.length < extraDates) {\n for (let i = 0; i < 7; i++) {\n const date = addDays(dates[dates.length - 1], 1);\n dates.push(new Date(date));\n }\n }\n return dates;\n}\n//# sourceMappingURL=getDates.js.map","/**\n * Returns all the days belonging to the calendar by merging the days in the\n * weeks for each month.\n */\nexport function getDays(calendarMonths) {\n const initialDays = [];\n return calendarMonths.reduce((days, month) => {\n const initialDays = [];\n const weekDays = month.weeks.reduce((weekDays, week) => {\n return [...weekDays, ...week.days];\n }, initialDays);\n return [...days, ...weekDays];\n }, initialDays);\n}\n//# sourceMappingURL=getDays.js.map","export function getDisplayMonths(firstDisplayedMonth, calendarEndMonth, props, dateLib) {\n const { numberOfMonths = 1 } = props;\n const months = [];\n for (let i = 0; i < numberOfMonths; i++) {\n const month = dateLib.addMonths(firstDisplayedMonth, i);\n if (calendarEndMonth && month > calendarEndMonth) {\n break;\n }\n months.push(month);\n }\n return months;\n}\n//# sourceMappingURL=getDisplayMonths.js.map","/** Return the start month based on the props passed to DayPicker. */\nexport function getInitialMonth(props, dateLib) {\n const { month, defaultMonth, today = new dateLib.Date(), numberOfMonths = 1, endMonth, startMonth } = props;\n let initialMonth = month || defaultMonth || today;\n const { differenceInCalendarMonths, addMonths, startOfMonth } = dateLib;\n // Fix the initialMonth if is after the to-date\n if (endMonth && differenceInCalendarMonths(endMonth, initialMonth) < 0) {\n const offset = -1 * (numberOfMonths - 1);\n initialMonth = addMonths(endMonth, offset);\n }\n // Fix the initialMonth if is before the from-date\n if (startMonth && differenceInCalendarMonths(initialMonth, startMonth) < 0) {\n initialMonth = startMonth;\n }\n return startOfMonth(initialMonth);\n}\n//# sourceMappingURL=getInitialMonth.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Represent the day displayed in the calendar.\n *\n * In DayPicker, a `Day` is a `Date` that can be displayed in the calendar. It\n * is used as extension of the native `Date` object to provide additional\n * information about the day.\n */\nexport class CalendarDay {\n constructor(date, displayMonth, \n /** @ignore */\n dateLib = defaultDateLib) {\n this.date = date;\n this.displayMonth = displayMonth;\n this.outside = Boolean(displayMonth && !dateLib.isSameMonth(date, displayMonth));\n this.dateLib = dateLib;\n }\n /**\n * Check if the day is the same as the given day: considering if it is in the\n * same display month.\n */\n isEqualTo(day) {\n return (this.dateLib.isSameDay(day.date, this.date) &&\n this.dateLib.isSameMonth(day.displayMonth, this.displayMonth));\n }\n}\n//# sourceMappingURL=CalendarDay.js.map","/** Represent a month in a calendar year. Contains the weeks within the month. */\nexport class CalendarMonth {\n constructor(month, weeks) {\n this.date = month;\n this.weeks = weeks;\n }\n}\n//# sourceMappingURL=CalendarMonth.js.map","/** Represent a week in a calendar month. */\nexport class CalendarWeek {\n constructor(weekNumber, days) {\n this.days = days;\n this.weekNumber = weekNumber;\n }\n}\n//# sourceMappingURL=CalendarWeek.js.map","import { CalendarWeek, CalendarDay, CalendarMonth } from \"../classes/index.js\";\n/** Return the months to display in the calendar. */\nexport function getMonths(\n/** The months (as dates) to display in the calendar. */\ndisplayMonths, \n/** The dates to display in the calendar. */\ndates, \n/** Options from the props context. */\nprops, dateLib) {\n const { startOfWeek, endOfWeek, startOfISOWeek, endOfISOWeek, endOfMonth, addDays, getWeek, getISOWeek } = dateLib;\n const dayPickerMonths = displayMonths.reduce((months, month) => {\n const firstDateOfFirstWeek = props.ISOWeek\n ? startOfISOWeek(month)\n : startOfWeek(month, {\n locale: props.locale,\n weekStartsOn: props.weekStartsOn\n });\n const lastDateOfLastWeek = props.ISOWeek\n ? endOfISOWeek(endOfMonth(month))\n : endOfWeek(endOfMonth(month), {\n locale: props.locale,\n weekStartsOn: props.weekStartsOn\n });\n /** The dates to display in the month. */\n const monthDates = dates.filter((date) => {\n return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;\n });\n if (props.fixedWeeks && monthDates.length < 42) {\n const extraDates = dates.filter((date) => {\n return (date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7));\n });\n monthDates.push(...extraDates);\n }\n const weeks = monthDates.reduce((weeks, date) => {\n const weekNumber = props.ISOWeek\n ? getISOWeek(date)\n : getWeek(date, {\n locale: props.locale,\n weekStartsOn: props.weekStartsOn,\n firstWeekContainsDate: props.firstWeekContainsDate\n });\n const week = weeks.find((week) => week.weekNumber === weekNumber);\n const day = new CalendarDay(date, month, dateLib);\n if (!week) {\n weeks.push(new CalendarWeek(weekNumber, [day]));\n }\n else {\n week.days.push(day);\n }\n return weeks;\n }, []);\n const dayPickerMonth = new CalendarMonth(month, weeks);\n months.push(dayPickerMonth);\n return months;\n }, []);\n if (!props.reverseMonths) {\n return dayPickerMonths;\n }\n else {\n return dayPickerMonths.reverse();\n }\n}\n//# sourceMappingURL=getMonths.js.map","/** Return the start and end months for the calendar navigation. */\nexport function getNavMonths(props, dateLib) {\n let { startMonth, endMonth } = props;\n const { startOfYear, startOfDay, startOfMonth, endOfMonth, addYears, endOfYear, Date } = dateLib;\n // Handle deprecated code\n const { fromYear, toYear, fromMonth, toMonth } = props;\n if (!startMonth && fromMonth) {\n startMonth = fromMonth;\n }\n if (!startMonth && fromYear) {\n startMonth = new Date(fromYear, 0, 1);\n }\n if (!endMonth && toMonth) {\n endMonth = toMonth;\n }\n if (!endMonth && toYear) {\n endMonth = new Date(toYear, 11, 31);\n }\n const hasDropdowns = props.captionLayout?.startsWith(\"dropdown\");\n if (startMonth) {\n startMonth = startOfMonth(startMonth);\n }\n else if (fromYear) {\n startMonth = new Date(fromYear, 0, 1);\n }\n else if (!startMonth && hasDropdowns) {\n startMonth = startOfYear(addYears(props.today ?? new Date(), -100));\n }\n if (endMonth) {\n endMonth = endOfMonth(endMonth);\n }\n else if (toYear) {\n endMonth = new Date(toYear, 11, 31);\n }\n else if (!endMonth && hasDropdowns) {\n endMonth = endOfYear(props.today ?? new Date());\n }\n return [\n startMonth ? startOfDay(startMonth) : startMonth,\n endMonth ? startOfDay(endMonth) : endMonth\n ];\n}\n//# sourceMappingURL=getNavMonth.js.map","/**\n * Return the next month the user can navigate to according to the given\n * options.\n *\n * Please note that the next month is not always the next calendar month:\n *\n * - If after the `calendarEndMonth` range, is `undefined`;\n * - If the navigation is paged , is the number of months displayed ahead.\n */\nexport function getNextMonth(firstDisplayedMonth, calendarEndMonth, options, dateLib) {\n if (options.disableNavigation) {\n return undefined;\n }\n const { pagedNavigation, numberOfMonths = 1 } = options;\n const { startOfMonth, addMonths, differenceInCalendarMonths } = dateLib;\n const offset = pagedNavigation ? numberOfMonths : 1;\n const month = startOfMonth(firstDisplayedMonth);\n if (!calendarEndMonth) {\n return addMonths(month, offset);\n }\n const monthsDiff = differenceInCalendarMonths(calendarEndMonth, firstDisplayedMonth);\n if (monthsDiff < numberOfMonths) {\n return undefined;\n }\n // Jump forward as the number of months when paged navigation\n return addMonths(month, offset);\n}\n//# sourceMappingURL=getNextMonth.js.map","/**\n * Return the next previous the user can navigate to, according to the given\n * options.\n *\n * Please note that the previous month is not always the previous calendar\n * month:\n *\n * - If before the `calendarStartMonth` date, is `undefined`;\n * - If the navigation is paged, is the number of months displayed before.\n */\nexport function getPreviousMonth(firstDisplayedMonth, calendarStartMonth, options, dateLib) {\n if (options.disableNavigation) {\n return undefined;\n }\n const { pagedNavigation, numberOfMonths } = options;\n const { startOfMonth, addMonths, differenceInCalendarMonths } = dateLib;\n const offset = pagedNavigation ? (numberOfMonths ?? 1) : 1;\n const month = startOfMonth(firstDisplayedMonth);\n if (!calendarStartMonth) {\n return addMonths(month, -offset);\n }\n const monthsDiff = differenceInCalendarMonths(month, calendarStartMonth);\n if (monthsDiff <= 0) {\n return undefined;\n }\n return addMonths(month, -offset);\n}\n//# sourceMappingURL=getPreviousMonth.js.map","/** Returns an array of calendar weeks from an array of calendar months. */\nexport function getWeeks(months) {\n const initialWeeks = [];\n return months.reduce((weeks, month) => {\n return [...weeks, ...month.weeks];\n }, initialWeeks);\n}\n//# sourceMappingURL=getWeeks.js.map","import { useState } from \"react\";\n/**\n * A helper hook for handling controlled and uncontrolled values in a\n * component's props.\n *\n * If the value is uncontrolled, pass `undefined` as `controlledValue` and use\n * the returned setter to update it.\n *\n * If the value is controlled, pass the controlled value as the second argument,\n * which will always be returned as `value`.\n *\n * @template T - The type of the value.\n */\nexport function useControlledValue(defaultValue, controlledValue) {\n const [uncontrolledValue, setValue] = useState(defaultValue);\n const value = controlledValue === undefined ? uncontrolledValue : controlledValue;\n return [value, setValue];\n}\n//# sourceMappingURL=useControlledValue.js.map","import { getDates } from \"./helpers/getDates.js\";\nimport { getDays } from \"./helpers/getDays.js\";\nimport { getDisplayMonths } from \"./helpers/getDisplayMonths.js\";\nimport { getInitialMonth } from \"./helpers/getInitialMonth.js\";\nimport { getMonths } from \"./helpers/getMonths.js\";\nimport { getNavMonths } from \"./helpers/getNavMonth.js\";\nimport { getNextMonth } from \"./helpers/getNextMonth.js\";\nimport { getPreviousMonth } from \"./helpers/getPreviousMonth.js\";\nimport { getWeeks } from \"./helpers/getWeeks.js\";\nimport { useControlledValue } from \"./helpers/useControlledValue.js\";\n/** @private */\nexport function useCalendar(props, dateLib) {\n const [navStart, navEnd] = getNavMonths(props, dateLib);\n const { startOfMonth, endOfMonth } = dateLib;\n const initialMonth = getInitialMonth(props, dateLib);\n const [firstMonth, setFirstMonth] = useControlledValue(initialMonth, props.month ? startOfMonth(props.month) : undefined);\n /** The months displayed in the calendar. */\n const displayMonths = getDisplayMonths(firstMonth, navEnd, props, dateLib);\n /** The dates displayed in the calendar. */\n const dates = getDates(displayMonths, props.endMonth ? endOfMonth(props.endMonth) : undefined, props, dateLib);\n /** The Months displayed in the calendar. */\n const months = getMonths(displayMonths, dates, props, dateLib);\n /** The Weeks displayed in the calendar. */\n const weeks = getWeeks(months);\n /** The Days displayed in the calendar. */\n const days = getDays(months);\n const previousMonth = getPreviousMonth(firstMonth, navStart, props, dateLib);\n const nextMonth = getNextMonth(firstMonth, navEnd, props, dateLib);\n const { disableNavigation, onMonthChange } = props;\n const isDayInCalendar = (day) => weeks.some((week) => week.days.some((d) => d.isEqualTo(day)));\n const goToMonth = (date) => {\n if (disableNavigation) {\n return;\n }\n let newMonth = startOfMonth(date);\n // if month is before start, use the first month instead\n if (navStart && newMonth < startOfMonth(navStart)) {\n newMonth = startOfMonth(navStart);\n }\n // if month is after endMonth, use the last month instead\n if (navEnd && newMonth > startOfMonth(navEnd)) {\n newMonth = startOfMonth(navEnd);\n }\n setFirstMonth(newMonth);\n onMonthChange?.(newMonth);\n };\n const goToDay = (day) => {\n // is this check necessary?\n if (isDayInCalendar(day)) {\n return;\n }\n goToMonth(day.date);\n };\n const calendar = {\n months,\n weeks,\n days,\n navStart,\n navEnd,\n previousMonth,\n nextMonth,\n goToMonth,\n goToDay\n };\n return calendar;\n}\n//# sourceMappingURL=useCalendar.js.map","import { createContext, useContext } from \"react\";\n/** @private */\nexport const dayPickerContext = createContext(undefined);\n/**\n * Return the context to work with `<DayPicker />` inside custom components.\n *\n * @group Hooks\n * @see https://daypicker.dev/guides/custom-components\n */\nexport function useDayPicker(props) {\n const context = useContext(dayPickerContext);\n if (context === undefined) {\n throw new Error(\"useDayPicker() must be used within a custom component.\");\n }\n return context;\n}\n//# sourceMappingURL=useDayPicker.js.map","import { DayFlag } from \"../UI.js\";\nexport function calculateFocusTarget(days, getModifiers, isSelected, lastFocused) {\n let focusTarget;\n let index = 0;\n let found = false;\n while (index < days.length && !found) {\n const day = days[index];\n const modifiers = getModifiers(day);\n if (!modifiers[DayFlag.disabled] &&\n !modifiers[DayFlag.hidden] &&\n !modifiers[DayFlag.outside]) {\n if (modifiers[DayFlag.focused]) {\n focusTarget = day;\n found = true;\n }\n else if (lastFocused?.isEqualTo(day)) {\n focusTarget = day;\n found = true;\n }\n else if (isSelected(day.date)) {\n focusTarget = day;\n found = true;\n }\n else if (modifiers[DayFlag.today]) {\n focusTarget = day;\n found = true;\n }\n }\n index++;\n }\n if (!focusTarget) {\n // return the first day that is focusable\n focusTarget = days.find((day) => {\n const m = getModifiers(day);\n return !m[DayFlag.disabled] && !m[DayFlag.hidden] && !m[DayFlag.outside];\n });\n }\n return focusTarget;\n}\n//# sourceMappingURL=calculateFocusTarget.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Determines whether a given date is inside a specified date range.\n *\n * @since 9.0.0\n * @group Utilities\n */\nexport function rangeIncludesDate(range, date, \n/** If `true`, the ends of the range are excluded. */\nexcludeEnds = false, \n/** @ignore */\ndateLib = defaultDateLib) {\n let { from, to } = range;\n const { differenceInCalendarDays, isSameDay } = dateLib;\n if (from && to) {\n const isRangeInverted = differenceInCalendarDays(to, from) < 0;\n if (isRangeInverted) {\n [from, to] = [to, from];\n }\n const isInRange = differenceInCalendarDays(date, from) >= (excludeEnds ? 1 : 0) &&\n differenceInCalendarDays(to, date) >= (excludeEnds ? 1 : 0);\n return isInRange;\n }\n if (!excludeEnds && to) {\n return isSameDay(to, date);\n }\n if (!excludeEnds && from) {\n return isSameDay(from, date);\n }\n return false;\n}\n/**\n * @private\n * @deprecated Use {@link rangeIncludesDate} instead.\n */\nexport const isDateInRange = (range, date) => rangeIncludesDate(range, date, false, defaultDateLib);\n//# sourceMappingURL=rangeIncludesDate.js.map","/**\n * Returns true if `matcher` is of type {@link DateInterval}.\n *\n * @group Utilities\n */\nexport function isDateInterval(matcher) {\n return Boolean(matcher &&\n typeof matcher === \"object\" &&\n \"before\" in matcher &&\n \"after\" in matcher);\n}\n/**\n * Returns true if `value` is a {@link DateRange} type.\n *\n * @group Utilities\n */\nexport function isDateRange(value) {\n return Boolean(value && typeof value === \"object\" && \"from\" in value);\n}\n/**\n * Returns true if `value` is of type {@link DateAfter}.\n *\n * @group Utilities\n */\nexport function isDateAfterType(value) {\n return Boolean(value && typeof value === \"object\" && \"after\" in value);\n}\n/**\n * Returns true if `value` is of type {@link DateBefore}.\n *\n * @group Utilities\n */\nexport function isDateBeforeType(value) {\n return Boolean(value && typeof value === \"object\" && \"before\" in value);\n}\n/**\n * Returns true if `value` is a {@link DayOfWeek} type.\n *\n * @group Utilities\n */\nexport function isDayOfWeekType(value) {\n return Boolean(value && typeof value === \"object\" && \"dayOfWeek\" in value);\n}\n/**\n * Returns true if `value` is an array of valid dates.\n *\n * @private\n */\nexport function isDatesArray(value, dateLib) {\n return Array.isArray(value) && value.every(dateLib.isDate);\n}\n//# sourceMappingURL=typeguards.js.map","import { dateLib as defaultDateLib } from \"../lib/dateLib.js\";\nimport { rangeIncludesDate } from \"./rangeIncludesDate.js\";\nimport { isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDatesArray, isDayOfWeekType } from \"./typeguards.js\";\n/**\n * Returns whether a day matches against at least one of the given\n * {@link Matcher}.\n *\n * ```tsx\n * const date = new Date(2022, 5, 19);\n * const matcher1: DateRange = {\n * from: new Date(2021, 12, 21),\n * to: new Date(2021, 12, 30)\n * }\n * const matcher2: DateRange = {\n * from: new Date(2022, 5, 1),\n * to: new Date(2022, 5, 23)\n * }\n * const dateMatchModifiers(date, [matcher1, matcher2]); // true, since day is in the matcher1 range.\n * ```\n *\n * @group Utilities\n */\nexport function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {\n const matchersArr = !Array.isArray(matchers) ? [matchers] : matchers;\n const { isSameDay, differenceInCalendarDays, isAfter } = dateLib;\n return matchersArr.some((matcher) => {\n if (typeof matcher === \"boolean\") {\n return matcher;\n }\n if (dateLib.isDate(matcher)) {\n return isSameDay(date, matcher);\n }\n if (isDatesArray(matcher, dateLib)) {\n return matcher.includes(date);\n }\n if (isDateRange(matcher)) {\n return rangeIncludesDate(matcher, date, false, dateLib);\n }\n if (isDayOfWeekType(matcher)) {\n if (!Array.isArray(matcher.dayOfWeek)) {\n return matcher.dayOfWeek === date.getDay();\n }\n return matcher.dayOfWeek.includes(date.getDay());\n }\n if (isDateInterval(matcher)) {\n const diffBefore = differenceInCalendarDays(matcher.before, date);\n const diffAfter = differenceInCalendarDays(matcher.after, date);\n const isDayBefore = diffBefore > 0;\n const isDayAfter = diffAfter < 0;\n const isClosedInterval = isAfter(matcher.before, matcher.after);\n if (isClosedInterval) {\n return isDayAfter && isDayBefore;\n }\n else {\n return isDayBefore || isDayAfter;\n }\n }\n if (isDateAfterType(matcher)) {\n return differenceInCalendarDays(date, matcher.after) > 0;\n }\n if (isDateBeforeType(matcher)) {\n return differenceInCalendarDays(matcher.before, date) > 0;\n }\n if (typeof matcher === \"function\") {\n return matcher(date);\n }\n return false;\n });\n}\n/**\n * @private\n * @deprecated Use {@link dateMatchModifiers} instead.\n */\nexport const isMatch = dateMatchModifiers;\n//# sourceMappingURL=dateMatchModifiers.js.map","/** Return the next date that should be focused. */\nexport function getFocusableDate(moveBy, moveDir, refDate, navStart, navEnd, props, dateLib) {\n const { weekStartsOn, locale, ISOWeek } = props;\n const { addDays, addMonths, addYears, addWeeks, startOfISOWeek, endOfISOWeek, startOfWeek, endOfWeek, max, min } = dateLib;\n const moveFns = {\n day: addDays,\n week: addWeeks,\n month: addMonths,\n year: addYears,\n startOfWeek: (date) => ISOWeek\n ? startOfISOWeek(date)\n : startOfWeek(date, { locale, weekStartsOn }),\n endOfWeek: (date) => ISOWeek ? endOfISOWeek(date) : endOfWeek(date, { locale, weekStartsOn })\n };\n let focusableDate = moveFns[moveBy](refDate, moveDir === \"after\" ? 1 : -1);\n if (moveDir === \"before\" && navStart) {\n focusableDate = max([navStart, focusableDate]);\n }\n else if (moveDir === \"after\" && navEnd) {\n focusableDate = min([navEnd, focusableDate]);\n }\n return focusableDate;\n}\n//# sourceMappingURL=getFocusableDate.js.map","import { CalendarDay } from \"../classes/index.js\";\nimport { dateMatchModifiers } from \"../utils/dateMatchModifiers.js\";\nimport { getFocusableDate } from \"./getFocusableDate.js\";\nexport function getNextFocus(moveBy, moveDir, \n/** The date that is currently focused. */\nrefDay, calendarStartMonth, calendarEndMonth, props, dateLib, attempt = 0) {\n if (attempt > 365) {\n // Limit the recursion to 365 attempts\n return undefined;\n }\n const focusableDate = getFocusableDate(moveBy, moveDir, refDay.date, // should be refDay? or refDay.date?\n calendarStartMonth, calendarEndMonth, props, dateLib);\n const isDisabled = Boolean(props.disabled && dateMatchModifiers(focusableDate, props.disabled, dateLib));\n const isHidden = Boolean(props.hidden && dateMatchModifiers(focusableDate, props.hidden, dateLib));\n const targetMonth = focusableDate;\n const focusDay = new CalendarDay(focusableDate, targetMonth, dateLib);\n if (!isDisabled && !isHidden) {\n return focusDay;\n }\n // Recursively attempt to find the next focusable date\n return getNextFocus(moveBy, moveDir, focusDay, calendarStartMonth, calendarEndMonth, props, dateLib, attempt + 1);\n}\n//# sourceMappingURL=getNextFocus.js.map","import { useState } from \"react\";\nimport { calculateFocusTarget } from \"./helpers/calculateFocusTarget.js\";\nimport { getNextFocus } from \"./helpers/getNextFocus.js\";\n/** @private */\nexport function useFocus(props, calendar, getModifiers, isSelected, dateLib) {\n const { autoFocus } = props;\n const [lastFocused, setLastFocused] = useState();\n const focusTarget = calculateFocusTarget(calendar.days, getModifiers, isSelected || (() => false), lastFocused);\n const [focusedDay, setFocused] = useState(autoFocus ? focusTarget : undefined);\n const blur = () => {\n setLastFocused(focusedDay);\n setFocused(undefined);\n };\n const moveFocus = (moveBy, moveDir) => {\n if (!focusedDay)\n return;\n const nextFocus = getNextFocus(moveBy, moveDir, focusedDay, calendar.navStart, calendar.navEnd, props, dateLib);\n if (!nextFocus)\n return;\n calendar.goToDay(nextFocus);\n setFocused(nextFocus);\n };\n const isFocusTarget = (day) => {\n return Boolean(focusTarget?.isEqualTo(day));\n };\n const useFocus = {\n isFocusTarget,\n setFocused,\n focused: focusedDay,\n blur,\n moveFocus\n };\n return useFocus;\n}\n//# sourceMappingURL=useFocus.js.map","import { DayFlag, SelectionState } from \"./UI.js\";\nimport { dateMatchModifiers } from \"./utils/dateMatchModifiers.js\";\n/**\n * Return a function to get the modifiers for a given day.\n *\n * @private\n */\nexport function useGetModifiers(days, props, dateLib) {\n const { disabled, hidden, modifiers, showOutsideDays, today } = props;\n const { isSameDay, isSameMonth, Date } = dateLib;\n const internalModifiersMap = {\n [DayFlag.focused]: [],\n [DayFlag.outside]: [],\n [DayFlag.disabled]: [],\n [DayFlag.hidden]: [],\n [DayFlag.today]: []\n };\n const customModifiersMap = {};\n const selectionModifiersMap = {\n [SelectionState.range_end]: [],\n [SelectionState.range_middle]: [],\n [SelectionState.range_start]: [],\n [SelectionState.selected]: []\n };\n for (const day of days) {\n const { date, displayMonth } = day;\n const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));\n const isDisabled = Boolean(disabled && dateMatchModifiers(date, disabled, dateLib));\n const isHidden = Boolean(hidden && dateMatchModifiers(date, hidden, dateLib)) ||\n (!showOutsideDays && isOutside);\n const isToday = isSameDay(date, today ?? new Date());\n if (isOutside)\n internalModifiersMap.outside.push(day);\n if (isDisabled)\n internalModifiersMap.disabled.push(day);\n if (isHidden)\n internalModifiersMap.hidden.push(day);\n if (isToday)\n internalModifiersMap.today.push(day);\n // Add custom modifiers\n if (modifiers) {\n Object.keys(modifiers).forEach((name) => {\n const modifierValue = modifiers?.[name];\n const isMatch = modifierValue\n ? dateMatchModifiers(date, modifierValue, dateLib)\n : false;\n if (!isMatch)\n return;\n if (customModifiersMap[name]) {\n customModifiersMap[name].push(day);\n }\n else {\n customModifiersMap[name] = [day];\n }\n });\n }\n }\n return (day) => {\n // Initialize all the modifiers to false\n const dayFlags = {\n [DayFlag.focused]: false,\n [DayFlag.disabled]: false,\n [DayFlag.hidden]: false,\n [DayFlag.outside]: false,\n [DayFlag.today]: false\n };\n const selectionStates = {\n [SelectionState.range_end]: false,\n [SelectionState.range_middle]: false,\n [SelectionState.range_start]: false,\n [SelectionState.selected]: false\n };\n const customModifiers = {};\n // Find the modifiers for the given day\n for (const name in internalModifiersMap) {\n const days = internalModifiersMap[name];\n dayFlags[name] = days.some((d) => d === day);\n }\n for (const name in selectionModifiersMap) {\n const days = selectionModifiersMap[name];\n selectionStates[name] = days.some((d) => d === day);\n }\n for (const name in customModifiersMap) {\n customModifiers[name] = customModifiersMap[name].some((d) => d === day);\n }\n return {\n ...selectionStates,\n ...dayFlags,\n // custom modifiers should override all the previous ones\n ...customModifiers\n };\n };\n}\n//# sourceMappingURL=useGetModifiers.js.map","import React from \"react\";\nexport function useMulti(props, dateLib) {\n const { selected: initiallySelected, required, onSelect, mode } = props;\n const [selected, setSelected] = React.useState(initiallySelected);\n const { isSameDay } = dateLib;\n // Update the selected date if the selected value from props changes.\n React.useEffect(() => {\n setSelected(initiallySelected);\n }, [mode, initiallySelected]);\n const isSelected = (date) => {\n return selected?.some((d) => isSameDay(d, date)) ?? false;\n };\n const { min, max } = props;\n const select = (triggerDate, modifiers, e) => {\n let newDates = [...(selected ?? [])];\n if (isSelected(triggerDate)) {\n if (selected?.length === min) {\n // Min value reached, do nothing\n return;\n }\n if (required && selected?.length === 1) {\n // Required value already selected do nothing\n return;\n }\n newDates = selected?.filter((d) => !isSameDay(d, triggerDate));\n }\n else {\n if (selected?.length === max) {\n // Max value reached, reset the selection to date\n newDates = [triggerDate];\n }\n else {\n // Add the date to the selection\n newDates = [...newDates, triggerDate];\n }\n }\n onSelect?.(newDates, triggerDate, modifiers, e);\n setSelected(newDates);\n return newDates;\n };\n return {\n selected,\n select,\n isSelected\n };\n}\n//# sourceMappingURL=useMulti.js.map","import { dateLib as defaultDateLib } from \"../lib/index.js\";\n/**\n * Add a day to an existing range.\n *\n * The returned range takes in account the `undefined` values and if the added\n * day is already present in the range.\n *\n * @group Utilities\n */\nexport function addToRange(\n/** The date to add to the range. */\ndate, \n/** The range where to add `date`. */\ninitialRange, min = 0, max = 0, required = false, \n/** @ignore */\ndateLib = defaultDateLib) {\n const { from, to } = initialRange || {};\n const { isSameDay, isAfter, isBefore } = dateLib;\n let range;\n if (!from && !to) {\n // the range is empty, add the date\n range = { from: date, to: min > 0 ? undefined : date };\n }\n else if (from && !to) {\n // adding date to an incomplete range\n if (isSameDay(from, date)) {\n // adding a date equal to the start of the range\n if (required) {\n range = { from, to: undefined };\n }\n else {\n range = undefined;\n }\n }\n else if (isBefore(date, from)) {\n // adding a date before the start of the range\n range = { from: date, to: from };\n }\n else {\n // adding a date after the start of the range\n range = { from, to: date };\n }\n }\n else if (from && to) {\n // adding date to a complete range\n if (isSameDay(from, date) && isSameDay(to, date)) {\n // adding a date that is equal to both start and end of the range\n if (required) {\n range = { from, to };\n }\n else {\n range = undefined;\n }\n }\n else if (isSameDay(from, date)) {\n // adding a date equal to the the start of the range\n range = { from, to: min > 0 ? undefined : date };\n }\n else if (isSameDay(to, date)) {\n // adding a dare equal to the end of the range\n range = { from: date, to: min > 0 ? undefined : date };\n }\n else if (isBefore(date, from)) {\n // adding a date before the start of the range\n range = { from: date, to: to };\n }\n else if (isAfter(date, from)) {\n // adding a date after the start of the range\n range = { from, to: date };\n }\n else if (isAfter(date, to)) {\n // adding a date after the end of the range\n range = { from, to: date };\n }\n else {\n throw new Error(\"Invalid range\");\n }\n }\n // check for min / max\n if (range?.from && range?.to) {\n const diff = dateLib.differenceInCalendarDays(range.to, range.from);\n if (max > 0 && diff > max) {\n range = { from: date, to: undefined };\n }\n else if (min > 1 && diff < min) {\n range = { from: date, to: undefined };\n }\n }\n return range;\n}\n//# sourceMappingURL=addToRange.js.map","import React from \"react\";\nimport { addToRange, dateMatchModifiers } from \"../utils/index.js\";\nimport { rangeIncludesDate } from \"../utils/rangeIncludesDate.js\";\nexport function useRange(props, dateLib) {\n const { disabled, excludeDisabled, selected: initiallySelected, required, onSelect } = props;\n const [selected, setSelected] = React.useState(initiallySelected);\n // Update the selected date if the `selected` prop changes.\n React.useEffect(() => {\n setSelected(initiallySelected);\n }, [initiallySelected]);\n const isSelected = (date) => selected && rangeIncludesDate(selected, date, false, dateLib);\n const select = (triggerDate, modifiers, e) => {\n const { min, max } = props;\n const newRange = triggerDate\n ? addToRange(triggerDate, selected, min, max, required, dateLib)\n : undefined;\n if (newRange?.from && newRange.to) {\n let newDate = newRange.from;\n while (dateLib.differenceInCalendarDays(newRange.to, newDate) > 0) {\n newDate = dateLib.addDays(newDate, 1);\n if (excludeDisabled &&\n disabled &&\n dateMatchModifiers(newDate, disabled, dateLib)) {\n // if a disabled days is found, the range is reset\n newRange.from = triggerDate;\n newRange.to = undefined;\n break;\n }\n }\n }\n setSelected(newRange);\n onSelect?.(newRange, triggerDate, modifiers, e);\n return newRange;\n };\n return {\n selected,\n select,\n isSelected\n };\n}\n//# sourceMappingURL=useRange.js.map","import React from \"react\";\nexport function useSingle(props, dateLib) {\n const { selected: initiallySelected, required, onSelect } = props;\n const [selected, setSelected] = React.useState(initiallySelected);\n const { isSameDay } = dateLib;\n // Update the selected date if the `selected` value changes.\n React.useEffect(() => {\n setSelected(initiallySelected);\n }, [initiallySelected]);\n const isSelected = (compareDate) => {\n return selected ? isSameDay(selected, compareDate) : false;\n };\n const select = (triggerDate, modifiers, e) => {\n let newDate = triggerDate;\n if (!required && selected && selected && isSameDay(triggerDate, selected)) {\n // If the date is the same, clear the selection.\n newDate = undefined;\n }\n setSelected(newDate);\n if (required) {\n onSelect?.(newDate, triggerDate, modifiers, e);\n }\n else {\n onSelect?.(newDate, triggerDate, modifiers, e);\n }\n return newDate;\n };\n return {\n selected,\n select,\n isSelected\n };\n}\n//# sourceMappingURL=useSingle.js.map","import { useMulti } from \"./selection/useMulti.js\";\nimport { useRange } from \"./selection/useRange.js\";\nimport { useSingle } from \"./selection/useSingle.js\";\nexport function useSelection(props, dateLib) {\n const single = useSingle(props, dateLib);\n const multi = useMulti(props, dateLib);\n const range = useRange(props, dateLib);\n switch (props.mode) {\n case \"single\":\n return single;\n case \"multiple\":\n return multi;\n case \"range\":\n return range;\n default:\n return undefined;\n }\n}\n//# sourceMappingURL=useSelection.js.map","import React, { useCallback, useMemo } from \"react\";\nimport { UI, DayFlag, SelectionState } from \"./UI.js\";\nimport { getClassNamesForModifiers } from \"./helpers/getClassNamesForModifiers.js\";\nimport { getComponents } from \"./helpers/getComponents.js\";\nimport { getDataAttributes } from \"./helpers/getDataAttributes.js\";\nimport { getDateLib } from \"./helpers/getDateLib.js\";\nimport { getDefaultClassNames } from \"./helpers/getDefaultClassNames.js\";\nimport { getFormatters } from \"./helpers/getFormatters.js\";\nimport { getMonthOptions } from \"./helpers/getMonthOptions.js\";\nimport { getStyleForModifiers } from \"./helpers/getStyleForModifiers.js\";\nimport { getWeekdays } from \"./helpers/getWeekdays.js\";\nimport { getYearOptions } from \"./helpers/getYearOptions.js\";\nimport * as defaultLabels from \"./labels/index.js\";\nimport { enUS } from \"./lib/locales.js\";\nimport { useCalendar } from \"./useCalendar.js\";\nimport { dayPickerContext } from \"./useDayPicker.js\";\nimport { useFocus } from \"./useFocus.js\";\nimport { useGetModifiers } from \"./useGetModifiers.js\";\nimport { useSelection } from \"./useSelection.js\";\nimport { rangeIncludesDate } from \"./utils/rangeIncludesDate.js\";\nimport { isDateRange } from \"./utils/typeguards.js\";\n/**\n * Render the date picker calendar.\n *\n * @group DayPicker\n * @see https://daypicker.dev\n */\nexport function DayPicker(props) {\n const { components, formatters, labels, dateLib, locale, classNames } = useMemo(() => ({\n dateLib: getDateLib(props.dateLib),\n components: getComponents(props.components),\n formatters: getFormatters(props.formatters),\n labels: { ...defaultLabels, ...props.labels },\n locale: { ...enUS, ...props.locale },\n classNames: { ...getDefaultClassNames(), ...props.classNames }\n }), [\n props.classNames,\n props.components,\n props.dateLib,\n props.formatters,\n props.labels,\n props.locale\n ]);\n const { captionLayout, firstWeekContainsDate, mode, onDayBlur, onDayClick, onDayFocus, onDayKeyDown, onDayMouseEnter, onDayMouseLeave, onNextClick, onPrevClick, showWeekNumber, styles, useAdditionalDayOfYearTokens, useAdditionalWeekYearTokens, weekStartsOn } = props;\n const formatOptions = {\n locale,\n weekStartsOn,\n firstWeekContainsDate,\n useAdditionalWeekYearTokens,\n useAdditionalDayOfYearTokens\n };\n const labelOptions = formatOptions;\n const { formatCaption, formatDay, formatMonthDropdown, formatWeekNumber, formatWeekNumberHeader, formatWeekdayName, formatYearDropdown } = formatters;\n const calendar = useCalendar(props, dateLib);\n const { days, months, navStart, navEnd, previousMonth, nextMonth, goToMonth } = calendar;\n const getModifiers = useGetModifiers(days, props, dateLib);\n const { isSelected, select, selected: selectedValue } = useSelection(props, dateLib) ?? {};\n const { blur, focused, isFocusTarget, moveFocus, setFocused } = useFocus(props, calendar, getModifiers, isSelected ?? (() => false), dateLib);\n const { labelDayButton, labelGridcell, labelGrid, labelMonthDropdown, labelNav, labelNext, labelPrevious, labelWeekday, labelWeekNumber, labelWeekNumberHeader, labelYearDropdown } = labels;\n const weekdays = useMemo(() => getWeekdays(locale, props.weekStartsOn, props.ISOWeek, dateLib), [dateLib, locale, props.ISOWeek, props.weekStartsOn]);\n const isInteractive = mode !== undefined || onDayClick !== undefined;\n const handlePreviousClick = useCallback(() => {\n if (!previousMonth)\n return;\n goToMonth(previousMonth);\n onPrevClick?.(previousMonth);\n }, [previousMonth, goToMonth, onPrevClick]);\n const handleNextClick = useCallback(() => {\n if (!nextMonth)\n return;\n goToMonth(nextMonth);\n onNextClick?.(nextMonth);\n }, [goToMonth, nextMonth, onNextClick]);\n const handleDayClick = useCallback((day, m) => (e) => {\n e.preventDefault();\n e.stopPropagation();\n setFocused(day);\n select?.(day.date, m, e);\n onDayClick?.(day.date, m, e);\n }, [select, onDayClick, setFocused]);\n const handleDayFocus = useCallback((day, m) => (e) => {\n setFocused(day);\n onDayFocus?.(day.date, m, e);\n }, [onDayFocus, setFocused]);\n const handleDayBlur = useCallback((day, m) => (e) => {\n blur();\n onDayBlur?.(day.date, m, e);\n }, [blur, onDayBlur]);\n const handleDayKeyDown = useCallback((day, modifiers) => (e) => {\n const keyMap = {\n ArrowLeft: [\"day\", props.dir === \"rtl\" ? \"after\" : \"before\"],\n ArrowRight: [\"day\", props.dir === \"rtl\" ? \"before\" : \"after\"],\n ArrowDown: [\"week\", \"after\"],\n ArrowUp: [\"week\", \"before\"],\n PageUp: [e.shiftKey ? \"year\" : \"month\", \"before\"],\n PageDown: [e.shiftKey ? \"year\" : \"month\", \"after\"],\n Home: [\"startOfWeek\", \"before\"],\n End: [\"endOfWeek\", \"after\"]\n };\n if (keyMap[e.key]) {\n e.preventDefault();\n e.stopPropagation();\n const [moveBy, moveDir] = keyMap[e.key];\n moveFocus(moveBy, moveDir);\n }\n onDayKeyDown?.(day.date, modifiers, e);\n }, [moveFocus, onDayKeyDown, props.dir]);\n const handleDayMouseEnter = useCallback((day, modifiers) => (e) => {\n onDayMouseEnter?.(day.date, modifiers, e);\n }, [onDayMouseEnter]);\n const handleDayMouseLeave = useCallback((day, modifiers) => (e) => {\n onDayMouseLeave?.(day.date, modifiers, e);\n }, [onDayMouseLeave]);\n const { className, style } = useMemo(() => ({\n className: [classNames[UI.Root], props.className]\n .filter(Boolean)\n .join(\" \"),\n style: { ...styles?.[UI.Root], ...props.style }\n }), [classNames, props.className, props.style, styles]);\n const dataAttributes = getDataAttributes(props);\n const contextValue = {\n selected: selectedValue,\n select: select,\n isSelected,\n months,\n nextMonth,\n previousMonth,\n goToMonth,\n getModifiers,\n components,\n classNames,\n styles,\n labels,\n formatters\n };\n return (React.createElement(dayPickerContext.Provider, { value: contextValue },\n React.createElement(components.Root, { className: className, style: style, dir: props.dir, id: props.id, lang: props.lang, nonce: props.nonce, title: props.title, ...dataAttributes },\n React.createElement(components.Months, { className: classNames[UI.Months], style: styles?.[UI.Months] },\n !props.hideNavigation && (React.createElement(components.Nav, { role: \"navigation\", className: classNames[UI.Nav], style: styles?.[UI.Nav], \"aria-label\": labelNav() },\n React.createElement(components.Button, { type: \"button\", className: classNames[UI.ButtonPrevious], tabIndex: previousMonth ? undefined : -1, disabled: previousMonth ? undefined : true, \"aria-label\": labelPrevious(previousMonth, labelOptions), onClick: handlePreviousClick },\n React.createElement(components.Chevron, { disabled: previousMonth ? undefined : true, className: classNames[UI.Chevron], orientation: \"left\" })),\n React.createElement(components.Button, { type: \"button\", className: classNames[UI.ButtonNext], tabIndex: nextMonth ? undefined : -1, disabled: nextMonth ? undefined : true, \"aria-label\": labelNext(nextMonth, labelOptions), onClick: handleNextClick },\n React.createElement(components.Chevron, { disabled: previousMonth ? undefined : true, orientation: \"right\", className: classNames[UI.Chevron] })))),\n months.map((calendarMonth, displayIndex) => {\n const handleMonthChange = (e) => {\n const selectedMonth = Number(e.target.value);\n const month = dateLib.setMonth(dateLib.startOfMonth(calendarMonth.date), selectedMonth);\n goToMonth(month);\n };\n const handleYearChange = (e) => {\n const month = dateLib.setYear(dateLib.startOfMonth(calendarMonth.date), Number(e.target.value));\n goToMonth(month);\n };\n const dropdownMonths = getMonthOptions(calendarMonth.date, navStart, navEnd, formatters, locale, dateLib);\n const dropdownYears = getYearOptions(months[0].date, navStart, navEnd, formatters, dateLib);\n return (React.createElement(components.Month, { className: classNames[UI.Month], style: styles?.[UI.Month], key: displayIndex, displayIndex: displayIndex, calendarMonth: calendarMonth },\n React.createElement(components.MonthCaption, { className: classNames[UI.MonthCaption], style: styles?.[UI.MonthCaption], calendarMonth: calendarMonth, displayIndex: displayIndex }, captionLayout?.startsWith(\"dropdown\") ? (React.createElement(components.DropdownNav, { className: classNames[UI.Dropdowns], style: styles?.[UI.Dropdowns] },\n captionLayout === \"dropdown\" ||\n captionLayout === \"dropdown-months\" ? (React.createElement(components.Dropdown, { className: classNames[UI.MonthsDropdown], \"aria-label\": labelMonthDropdown(), classNames: classNames, components: components, disabled: Boolean(props.disableNavigation), onChange: handleMonthChange, options: dropdownMonths, style: styles?.[UI.Dropdown], value: calendarMonth.date.getMonth() })) : (React.createElement(\"span\", { role: \"status\", \"aria-live\": \"polite\" }, formatMonthDropdown(calendarMonth.date.getMonth()))),\n captionLayout === \"dropdown\" ||\n captionLayout === \"dropdown-years\" ? (React.createElement(components.Dropdown, { className: classNames[UI.YearsDropdown], \"aria-label\": labelYearDropdown(labelOptions), classNames: classNames, components: components, disabled: Boolean(props.disableNavigation), onChange: handleYearChange, options: dropdownYears, style: styles?.[UI.Dropdown], value: calendarMonth.date.getFullYear() })) : (React.createElement(\"span\", { role: \"status\", \"aria-live\": \"polite\" }, formatYearDropdown(calendarMonth.date.getFullYear()))))) : (React.createElement(components.CaptionLabel, { className: classNames[UI.CaptionLabel], role: \"status\", \"aria-live\": \"polite\" }, formatCaption(calendarMonth.date, formatOptions, dateLib)))),\n React.createElement(components.MonthGrid, { role: \"grid\", \"aria-multiselectable\": mode === \"multiple\" || mode === \"range\", \"aria-label\": labelGrid(calendarMonth.date, labelOptions, dateLib) ||\n undefined, className: classNames[UI.MonthGrid], style: styles?.[UI.MonthGrid] },\n !props.hideWeekdays && (React.createElement(components.Weekdays, { className: classNames[UI.Weekdays], role: \"row\", style: styles?.[UI.Weekdays] },\n showWeekNumber && (React.createElement(components.WeekNumberHeader, { \"aria-label\": labelWeekNumberHeader(labelOptions), className: classNames[UI.WeekNumberHeader], role: \"columnheader\", style: styles?.[UI.WeekNumberHeader] }, formatWeekNumberHeader())),\n weekdays.map((weekday, i) => (React.createElement(components.Weekday, { \"aria-label\": labelWeekday(weekday, labelOptions, dateLib), className: classNames[UI.Weekday], key: i, role: \"columnheader\", style: styles?.[UI.Weekday] }, formatWeekdayName(weekday, formatOptions, dateLib)))))),\n React.createElement(components.Weeks, { className: classNames[UI.Weeks], role: \"rowgroup\", style: styles?.[UI.Weeks] }, calendarMonth.weeks.map((week, weekIndex) => {\n return (React.createElement(components.Week, { className: classNames[UI.Week], key: week.weekNumber, role: \"row\", style: styles?.[UI.Week], week: week },\n showWeekNumber && (React.createElement(components.WeekNumber, { week: week, role: \"rowheader\", style: styles?.[UI.WeekNumber], \"aria-label\": labelWeekNumber(week.weekNumber, {\n locale\n }), className: classNames[UI.WeekNumber] }, formatWeekNumber(week.weekNumber))),\n week.days.map((day) => {\n const { date } = day;\n const modifiers = getModifiers(day);\n modifiers[DayFlag.focused] =\n !modifiers.hidden &&\n Boolean(focused?.isEqualTo(day));\n modifiers[SelectionState.selected] =\n !modifiers.disabled &&\n (isSelected?.(date) || modifiers.selected);\n if (isDateRange(selectedValue)) {\n // add range modifiers\n const { from, to } = selectedValue;\n modifiers[SelectionState.range_start] = Boolean(from && to && dateLib.isSameDay(date, from));\n modifiers[SelectionState.range_end] = Boolean(from && to && dateLib.isSameDay(date, to));\n modifiers[SelectionState.range_middle] =\n rangeIncludesDate(selectedValue, date, true, dateLib);\n }\n const style = getStyleForModifiers(modifiers, styles, props.modifiersStyles);\n const className = getClassNamesForModifiers(modifiers, classNames, props.modifiersClassNames);\n const ariaLabel = !isInteractive\n ? labelGridcell(date, modifiers, labelOptions, dateLib)\n : undefined;\n return (React.createElement(components.Day, { key: `${dateLib.format(date, \"yyyy-MM-dd\")}_${dateLib.format(day.displayMonth, \"yyyy-MM\")}`, day: day, modifiers: modifiers, role: \"gridcell\", className: className.join(\" \"), style: style, \"aria-hidden\": modifiers.hidden || undefined, \"aria-selected\": modifiers.selected || undefined, \"aria-label\": ariaLabel, \"data-day\": dateLib.format(date, \"yyyy-MM-dd\"), \"data-month\": day.outside\n ? dateLib.format(date, \"yyyy-MM\")\n : undefined, \"data-selected\": modifiers.selected || undefined, \"data-disabled\": modifiers.disabled || undefined, \"data-hidden\": modifiers.hidden || undefined, \"data-outside\": day.outside || undefined, \"data-focused\": modifiers.focused || undefined, \"data-today\": modifiers.today || undefined }, isInteractive ? (React.createElement(components.DayButton, { className: classNames[UI.DayButton], style: styles?.[UI.DayButton], day: day, modifiers: modifiers, disabled: modifiers.disabled || undefined, tabIndex: isFocusTarget(day) ? 0 : -1, \"aria-label\": labelDayButton(date, modifiers, labelOptions, dateLib), onClick: handleDayClick(day, modifiers), onBlur: handleDayBlur(day, modifiers), onFocus: handleDayFocus(day, modifiers), onKeyDown: handleDayKeyDown(day, modifiers), onMouseEnter: handleDayMouseEnter(day, modifiers), onMouseLeave: handleDayMouseLeave(day, modifiers) }, formatDay(date, formatOptions, dateLib))) : (formatDay(day.date, formatOptions, dateLib))));\n })));\n })))));\n })),\n props.footer && (React.createElement(components.Footer, { className: classNames[UI.Footer], style: styles?.[UI.Footer], role: \"status\", \"aria-live\": \"polite\" }, props.footer)))));\n}\n//# sourceMappingURL=DayPicker.js.map","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","export const chunkArray = (array, chunkSize) => {\n const chunks = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n chunks.push(array.slice(i, i + chunkSize));\n }\n return chunks;\n};\n","import moment from \"moment/moment\";\nimport React from \"react\";\nimport classNames from \"classnames\";\nimport { chunkArray } from \"./utils\";\n\nexport default ({ dateMonth, startDate, endDate, onMonthChange }) => {\n const months = moment.months();\n\n const chunkedMonths = chunkArray(months, 3);\n\n return (\n <table className=\"rdp-year_grid\">\n <tbody className=\"rdp-quarters\" role=\"rowgroup\">\n\n {chunkedMonths.map((chunk, quarterIndex) => (\n <tr className=\"rdp-quarter\" role=\"row\" key={quarterIndex}>\n {chunk.map((month, monthIndex) => {\n const index = (3 * quarterIndex) + monthIndex;\n\n const formattedYear = moment(dateMonth).format('YYYY');\n const x = moment(dateMonth).month(index);\n\n const startMonth = startDate.startOf('month');\n const endMonth = endDate.endOf('month');\n const startOfMonth = moment(x).clone().startOf('month');\n const endOfMonth = moment(x).clone().endOf('month');\n const disabled = startOfMonth < startMonth || endOfMonth > endMonth ;\n\n return (\n <td key={monthIndex} role=\"gridcell\"\n className={classNames('rdp-month', { 'rdp-disabled': disabled })}\n data-index={index}>\n <button className=\"rdp-month_button\"\n tabIndex=\"-1\"\n disabled={disabled}\n aria-label={`${month} ${formattedYear}`}\n onClick={() => onMonthChange(index)}>\n {month}\n </button>\n </td>\n )})}\n </tr>\n ))}\n\n </tbody>\n </table>\n )\n}\n","import React from \"react\";\nimport { chunkArray } from \"./utils\";\n\nexport default ({ startDate, endDate, onYearChange }) => {\n let currentYear = startDate.year();\n let years = [];\n\n while (currentYear <= endDate.year()) {\n years.push(currentYear);\n currentYear++;\n }\n\n const chunkedYears = chunkArray(years, 3);\n\n return (\n <table className=\"rdp-year_grid\">\n <tbody className=\"rdp-quarters\" role=\"rowgroup\">\n\n {chunkedYears.map((chunk, index) => (\n <tr className=\"rdp-quarter\" role=\"row\" key={index}>\n {chunk.map((year, yearIndex) => (\n <td key={yearIndex} role=\"gridcell\" className=\"rdp-month\" data-year={year}>\n <button className=\"rdp-month_button\"\n tabIndex=\"-1\"\n aria-label={year}\n onClick={() => onYearChange(year)}>\n {year}\n </button>\n </td>\n ))}\n </tr>\n ))}\n\n </tbody>\n </table>\n )\n}\n","import React, { useState, useMemo } from 'react';\nimport { DayPicker } from 'react-day-picker';\nimport \"react-day-picker/style.css\";\nimport moment from \"moment/moment\";\nimport CustomYearGrid from \"src/components/MegaFilter/TimePeriods/CustomYearGrid\";\nimport CustomCenturyGrid from \"src/components/MegaFilter/TimePeriods/CustomCenturyGrid\";\n\nexport default ({ selectedRange, onDayClick, dateMonth, setDateMonth, minDate, maxDate }) => {\n const [calendarMode, setCalendarMode] = useState(null);\n\n const fromDate = minDate;\n const toDate = maxDate;\n\n const startMonth = useMemo(() => {\n return fromDate.clone().startOf('month')\n }, [fromDate]);\n\n const endMonth = useMemo(() => {\n return toDate.clone().endOf('month')\n }, [toDate]);\n\n const handleChangeMonth = (x) => {\n const currentMonth = moment(dateMonth);\n const newDateMonth = currentMonth.set('month', x);\n\n setCalendarMode(null);\n setDateMonth(newDateMonth.toDate());\n }\n\n const handlePrevMonth = () => {\n const newDateMonth = moment(dateMonth).subtract(1, 'month');\n setDateMonth(newDateMonth.toDate());\n }\n\n const handleNextMonth = () => {\n const newDateMonth = moment(dateMonth).add( 1, 'month');\n setDateMonth(newDateMonth.toDate());\n }\n\n const handleChangeYear = (x) => {\n const currentMonth = moment(dateMonth);\n const newDateMonth = currentMonth.set('year', x);\n\n setCalendarMode('months');\n setDateMonth(newDateMonth.toDate());\n }\n\n const components = useMemo(() => {\n const settings = { Nav: () => null };\n const m = moment(dateMonth);\n\n switch (calendarMode) {\n case 'years': {\n settings.MonthGrid = () => (\n <CustomCenturyGrid\n startDate={fromDate.clone()}\n endDate={toDate.clone()}\n onYearChange={handleChangeYear}\n />\n )\n settings.CaptionLabel = () => (<><div className='title'/></>)\n break;\n }\n case 'months': {\n const formattedDate = m.format('YYYY');\n\n settings.MonthGrid = () => (\n <CustomYearGrid\n startDate={fromDate.clone()}\n endDate={toDate.clone()}\n dateMonth={dateMonth}\n onMonthChange={handleChangeMonth}\n />\n )\n settings.CaptionLabel = () => (\n <>\n <div className='title'>\n <button onClick={() => setCalendarMode('years')} className='year-button'>\n {formattedDate}\n </button>\n </div>\n </>\n )\n break;\n }\n default: {\n const formattedDate = m.format('MMMM YYYY');\n const startOfMonth = moment(dateMonth).clone().startOf('month');\n const endOfMonth = moment(dateMonth).clone().endOf('month');\n const disabledPrev = startOfMonth <= startMonth;\n const disabledNext = endOfMonth >= endMonth;\n\n settings.CaptionLabel = () => (\n <>\n <div className='arrow-left'>\n {!disabledPrev && <button onClick={handlePrevMonth} className='month-button'>‹</button>}\n </div>\n <div className='title'>\n <button onClick={() => setCalendarMode('months')} className='month-button'>\n {formattedDate}\n </button>\n </div>\n <div className='arrow-right'>\n {!disabledNext && <button onClick={handleNextMonth} className='month-button'>›</button>}\n </div>\n </>\n )\n }\n }\n\n return settings;\n }, [calendarMode, dateMonth]);\n\n return (\n <DayPicker\n weekStartsOn={1}\n modifiers={{ booked: [selectedRange] }}\n modifiersClassNames={{ booked: \"my-booked-class\" }}\n month={dateMonth}\n disabled={{ before: fromDate.toDate(), after: toDate.toDate() }}\n onDayClick={onDayClick}\n components={components}\n />\n );\n}","import React, { useState, useMemo } from 'react';\nimport moment from 'moment';\nimport Calendar from './Calendar';\nimport classNames from 'classnames';\n\nconst momentDate = (date) => moment(date).local().format('ddd, D MMM YYYY');\n\nexport default ({ rangeLimit, timePeriod, onDateChange }) => {\n const [selectedRange, setSelectedRange] = useState({\n from: timePeriod.startDate,\n to: timePeriod.endDate\n });\n\n const [startDateMonth, setStartDateMonth] = useState(new Date());\n const [endDateMonth, setEndDateMonth] = useState(new Date());\n\n const setStartDate = (startDate) => {\n const range = { ...selectedRange, from: startDate };\n if (range.to < range.from) range.to = null;\n\n if (range.from && range.to) {\n const momentFrom = moment(range.from);\n const momentTo = moment(range.to);\n\n if (momentTo.diff(momentFrom, 'days') > rangeLimit) {\n range.to = momentFrom.add(rangeLimit, 'day').toDate();\n }\n }\n\n if (range.to === null) {\n const isAfterMonth = moment(startDateMonth).isAfter(moment(endDateMonth), 'month');\n if (isAfterMonth) setEndDateMonth(range.from)\n } else {\n const isSameMonth = moment(range.to).isSame(moment(endDateMonth), 'month');\n if (!isSameMonth) setEndDateMonth(range.to);\n }\n\n setSelectedRange(range);\n };\n\n const setEndDate = (endDate) => {\n const range = {...selectedRange, to: endDate}\n if (range.to < range.from) range.from = null;\n\n if (range.from && range.to) {\n let momentFrom = moment(range.from);\n let momentTo = moment(range.to);\n\n if (momentTo.diff(momentFrom, 'days') > rangeLimit) {\n range.from = momentTo.subtract(rangeLimit, 'day').toDate();\n }\n }\n\n if (range.from === null) {\n const isBeforeMonth = moment(endDateMonth).isBefore(moment(startDateMonth), 'month');\n if (isBeforeMonth) setStartDateMonth(range.to);\n } else {\n const isSameMonth = moment(range.from).isSame(moment(startDateMonth), 'month');\n if (!isSameMonth) setStartDateMonth(range.from);\n }\n\n setSelectedRange(range);\n };\n\n const selectedDates = useMemo(() => {\n const { from, to } = selectedRange;\n const values = [from, to];\n const nonNullValues = values.filter(value => value !== null);\n\n if (nonNullValues.length === 0) {\n return null;\n } else if (nonNullValues.length === 1 || moment(from).isSame(moment(to), 'day')) {\n return { from: nonNullValues[0], to: nonNullValues[0] };\n } else {\n return selectedRange;\n }\n }, [selectedRange.from, selectedRange.to]);\n\n const dateStr = useMemo(() => {\n if (selectedDates === null) {\n return null;\n } else if (selectedDates.from === selectedDates.to) {\n return `${momentDate(selectedDates.from)}`\n } else {\n return `${momentDate(selectedDates.from)} - ${momentDate(selectedDates.to)}`\n }\n }, [selectedDates]);\n\n const enabledButton = useMemo(() => dateStr !== null, [dateStr]);\n\n const currentDate = moment();\n const fromDate = useMemo(() => currentDate.clone().subtract(2, 'years'), [currentDate]);\n const toDate = useMemo(() => currentDate.clone().add(6, 'years'), [currentDate]);\n\n return (\n <>\n <div className='calendar-wrapper'>\n <div className='calendar-left-part'>\n <Calendar\n dateMonth={startDateMonth}\n setDateMonth={setStartDateMonth}\n onDayClick={(d) => setStartDate(d)}\n selectedRange={selectedRange}\n minDate={fromDate}\n maxDate={toDate}\n />\n </div>\n\n <div className='calendar-center-part'>TO</div>\n\n <div className='calendar-right-part'>\n <Calendar\n dateMonth={endDateMonth}\n setDateMonth={setEndDateMonth}\n onDayClick={(d) => setEndDate(d)}\n selectedRange={selectedRange}\n minDate={fromDate}\n maxDate={toDate}\n />\n </div>\n </div>\n\n <div className='text-center text-sm-center p-2'>\n {dateStr}\n </div>\n\n <div style={{margin: '0px 10px 10px 10px'}}>\n <button className={classNames(['btn btn-primary btn-block', {'btn-grey': !enabledButton}])}\n disabled={!enabledButton}\n onClick={() => { console.log(selectedDates); onDateChange(selectedDates)} }>\n Apply\n </button>\n </div>\n </>\n )\n};","import moment from \"moment\";\n\nconst options = {\n 'academic': {\n months: ['Sep', 'Aug'],\n cutoffMonth: 8\n },\n 'financial': {\n months: ['Apr', 'Mar'],\n cutoffMonth: 3\n }\n};\n\n// Constants for date formatting\nconst DATE_FORMAT = 'YYYY MMM D';\n\nexport function generateYearsList(listType) {\n // Validate the listType\n if (!options[listType]) {\n throw new Error(`Invalid listType: ${listType}`);\n }\n \n const currentDate = moment();\n const twoYearsAgo = currentDate.clone().subtract(1, 'years');\n const months = options[listType].months;\n const cutoffMonth = options[listType].cutoffMonth;\n\n const startYear = currentDate.month() > cutoffMonth ? currentDate.year() : currentDate.year() - 1;\n\n const yearsList = [];\n\n // Generate year ranges\n for (let year = startYear; year >= 2017; year--) {\n const previousYear = year - 1;\n const [startMonth, endMonth] = months;\n\n const from = moment(`${previousYear} ${startMonth} 1`, DATE_FORMAT);\n const to = moment(`${year} ${endMonth} 1`, DATE_FORMAT).endOf('month');\n\n if (to.isBefore(twoYearsAgo)) {\n yearsList.push({\n key: `listType${year}`,\n title: `${startMonth} ${previousYear} to ${endMonth} ${year}`,\n from: from.toDate(),\n to: to.toDate()\n });\n }\n }\n\n return yearsList;\n}\n","import React from 'react';\nimport { generateYearsList } from './yearLists';\n\nconst List = ({ items, onClick }) => {\n const handleClick = (e, item) => {\n e.preventDefault();\n onClick(item);\n }\n\n return (\n <div className='items'>\n {items.map((item) => (\n <div key={item.key} className={'item text-center'}>\n <a href='#' onClick={(e) => handleClick(e, item)}>\n {item.title}\n </a>\n </div>\n ))}\n </div>\n )\n}\n\nexport default ({ onDateChange }) => {\n const setStartAndEndDate = (item) => {\n const { from, to } = item;\n onDateChange({ from, to });\n };\n\n return (\n <div className='historical-wrapper'>\n <div className='pull-left historical-left-part'>\n <div className='text-center'><h4>Academic Year</h4></div>\n <List items={generateYearsList('academic') } onClick={setStartAndEndDate}/>\n </div>\n\n <div className='pull-left historical-right-part'>\n <div className='text-center'><h4>Financial Year</h4></div>\n <List items={generateYearsList('financial')} onClick={setStartAndEndDate}/>\n </div>\n\n <div className='clearfix'/>\n </div>\n )\n};","import React, { useState, useRef } from 'react'\nimport { Popover } from 'react-tiny-popover'\nimport DateRangeButton from './Button';\nimport DoubleCalendar from \"./DoubleCalendar\";\nimport Historical from \"./Historical\";\nimport classNames from 'classnames';\nimport moment from \"moment\";\n\nconst PeriodButton = ({ children, onClick }) => (\n <button className='btn btn-link btn-block' onClick={onClick}>\n {children}\n </button>\n);\n\nexport default ({ rangeLimit, timePeriods, timePeriod, setTimePeriod }) => {\n const [showCalendar, setShowCalendar] = useState(false);\n const [showHistorical, setShowHistorical] = useState(false);\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n const [calendarTimePeriod, setCalendarTimePeriod] = useState({});\n const [historicalTimePeriod, setHistoricalTimePeriod] = useState({});\n\n const togglePopover = () => setIsPopoverOpen(!isPopoverOpen);\n const ref = useRef();\n\n const onPeriodClick = (item) => {\n if (item.key === 'custom') {\n setShowCalendar(true);\n setShowHistorical(false);\n setCalendarTimePeriod({startDate: null, endDate: null});\n $(ref.current.popoverDiv).css({left: 0});\n } else if (item.key === 'historical') {\n setShowCalendar(false);\n setShowHistorical(true);\n setHistoricalTimePeriod({ startDate: null, endDate: null });\n $(ref.current.popoverDiv).css({ left: 0 });\n } else {\n setTimePeriod({...item, startDate: moment(item.startDate).format('YYYY-MM-DD'), endDate: moment(item.endDate).format('YYYY-MM-DD') });\n setIsPopoverOpen(false);\n setShowCalendar(false);\n setShowHistorical(false);\n }\n };\n\n const onDateChange = (selectedRange) => {\n console.log(selectedRange);\n\n setTimePeriod({\n ...selectedRange,\n startDate: moment(selectedRange.from),\n endDate: moment(selectedRange.to)\n });\n\n setIsPopoverOpen(false);\n };\n\n if (!timePeriods) return null;\n\n return (\n <Popover\n isOpen={isPopoverOpen}\n positions={['bottom']}\n align={'center'}\n disableReposition={true}\n onClickOutside={() => setIsPopoverOpen(!isPopoverOpen)}\n ref={ref}\n padding={6}\n content={(\n <div className={classNames(['time-periods-box', { 'custom-time-periods-box': showCalendar}])}>\n <div className='list'>\n <ul className='ranges'>\n {timePeriods.map(item =>\n <li key={item.key}>\n <PeriodButton onClick={() => onPeriodClick(item)}>{item.title}</PeriodButton>\n </li>\n )}\n </ul>\n </div>\n {showCalendar &&\n <div className='calendar'>\n <DoubleCalendar\n rangeLimit={rangeLimit}\n timePeriod={calendarTimePeriod}\n onDateChange={onDateChange}\n />\n </div>\n }\n {showHistorical &&\n <div className='historical'>\n <Historical\n rangeLimit={rangeLimit}\n timePeriod={historicalTimePeriod}\n onDateChange={onDateChange}\n />\n </div>\n }\n <div className='clearfix'/>\n </div>\n )}\n >\n <div style={{ position: 'relative' }}>\n <DateRangeButton\n timePeriods={timePeriods}\n timePeriod={timePeriod}\n togglePopover={togglePopover}\n />\n </div>\n </Popover>\n )\n}","import React, { useEffect, useMemo, useState } from 'react';\nimport Popover from './TimePeriods/DropDown';\nimport classNames from 'classnames';\nimport { useFetch } from \"../Api/UseFetch\";\nimport moment from \"moment\";\n\nexport default ({ item, options, onChanged }) => {\n const { rangeLimit, timePeriods, timePeriod, setTimePeriod, pending } = useTimePeriods(item, options);\n\n useEffect(() => {\n const params = timePeriod ? {\n startDate: moment(timePeriod.startDate).format('YYYY-MM-DD'),\n endDate: moment(timePeriod.endDate).format('YYYY-MM-DD')\n } : null;\n\n onChanged({ value: timePeriod, pending, params })\n }, [timePeriod, pending])\n\n return (\n <div className={classNames(['filter-block filter-time-periods'])}>\n <label htmlFor=\"filter-time-periods\">Period:</label>\n <div className='input-box'>\n {!pending &&\n <Popover\n rangeLimit={rangeLimit}\n onChange={setTimePeriod}\n timePeriod={timePeriod}\n setTimePeriod={setTimePeriod}\n timePeriods={timePeriods}\n />\n }\n </div>\n </div>\n )\n};\n\nexport const useTimePeriods = (item, options) => {\n const [processedItem, setProcessedItem] = useState({});\n const [timePeriod, setTimePeriod] = useState(null);\n const { pending, result, error } = useFetch(`/admin/reports/time_periods.json`);\n\n // Status\n const processed = useMemo(() => (item || {}).key === processedItem.key, [item, processedItem]);\n\n // Filter options result\n const timePeriods = useMemo(() => {\n if (pending || error) return [];\n\n const { availableTimePeriods } = item;\n\n return result.timePeriods.filter(timePeriod => availableTimePeriods.includes(timePeriod.id));\n }, [pending, item, processed]);\n\n // Select option\n useEffect(() => {\n if (!pending && !error && !processed) {\n\n const urlParams = new URLSearchParams(window.location.search);\n const { availableTimePeriods, defaultTimePeriod } = item;\n const startDateQueryParam = urlParams.get('start_date');\n const endDateQueryParam = urlParams.get('end_date');\n\n let defaultPeriod = timePeriods.filter(timePeriod => timePeriod.id === defaultTimePeriod)[0];\n let newTimePeriod = timePeriod;\n\n if (!timePeriod) {\n if (startDateQueryParam && endDateQueryParam) {\n newTimePeriod = { startDate: moment(startDateQueryParam), endDate: moment(endDateQueryParam) };\n } else if (defaultPeriod) {\n newTimePeriod = defaultPeriod;\n } else if (options.startDate && options.endDate) {\n newTimePeriod = { startDate: moment(options.startDate), endDate: moment(options.endDate) };\n } else {\n newTimePeriod = timePeriods[1];\n }\n }\n\n if (moment(newTimePeriod.endDate).diff(moment(newTimePeriod.startDate), 'days') > item.rangeLimit) {\n newTimePeriod = timePeriods[1];\n }\n\n setTimePeriod(newTimePeriod);\n setProcessedItem(item)\n }\n }, [pending, processed]);\n\n const rangeLimit = useMemo(() => processedItem.rangeLimit, [processedItem]);\n\n return {\n timePeriods,\n timePeriod,\n setTimePeriod,\n error,\n rangeLimit,\n pending: !processed\n }\n};\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useFetch } from '../Api/UseFetch';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nexport default ({ item, options, selectedOptions, onChanged}) => {\n const { invoiceCategories, invoiceCategory, setInvoiceCategory, pending } = useInvoiceCategories(item, options, selectedOptions);\n\n useEffect(() => {\n const params = invoiceCategory ? { invoiceCategoryId: invoiceCategory.id } : null;\n onChanged({ value: invoiceCategory, pending, params });\n }, [invoiceCategory, pending]);\n\n const hidden = invoiceCategories && invoiceCategories.length < 3;\n\n return (\n <div className={classNames(['filter-block filter-invoice-categories', { 'hidden': hidden }])}>\n <label htmlFor=\"filter-invoice-categories\"><span>Invoice</span> Category:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={invoiceCategory}\n options={invoiceCategories}\n onChange={setInvoiceCategory}\n isLoading={pending}\n isDisabled={pending}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.id}\n />\n </div>\n </div>\n )\n};\n\nconst emptyOption = { id: null, title: 'General' };\n\nexport const useInvoiceCategories = (item, options, selectedOptions) => {\n const venueId = (selectedOptions || {}).venueId;\n const url = venueId ? `/admin/reports/venues/${venueId}/invoice_categories.json` : null;\n const [processedVenueId, setProcessedVenueId] = useState(null);\n const [invoiceCategory, setInvoiceCategory] = useState(url);\n const { pending, result, error } = useFetch(url);\n\n // Status\n const processed = useMemo(() => venueId=== processedVenueId, [venueId, processedVenueId]);\n\n // Filter options\n const invoiceCategories = useMemo(() => {\n if (pending || error) return [];\n return [emptyOption, ...result.invoiceCategories];\n }, [pending, item, processed]);\n\n // Select option\n useEffect(() => {\n if (!pending && !error && !processed) {\n const selectedInvoiceCategories = invoiceCategories.find(invoiceCategory => {\n return invoiceCategory.id === options.invoiceCategoryId\n });\n\n setInvoiceCategory(selectedInvoiceCategories || invoiceCategories[0]);\n setProcessedVenueId(venueId)\n }\n }, [pending, processed]);\n\n return {\n invoiceCategories,\n invoiceCategory,\n setInvoiceCategory,\n error,\n pending: !processed\n }\n};\n","const token = '%[a-f0-9]{2}';\nconst singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nconst multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tconst left = components.slice(0, split);\n\tconst right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch {\n\t\tlet tokens = input.match(singleMatcher) || [];\n\n\t\tfor (let i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tconst replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD',\n\t};\n\n\tlet match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch {\n\t\t\tconst result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tconst entries = Object.keys(replaceMap);\n\n\tfor (const key of entries) {\n\t\t// Replace all decoded components\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nexport default function decodeUriComponent(encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n}\n","export default function splitOnFirst(string, separator) {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (string === '' || separator === '') {\n\t\treturn [];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n}\n","export function includeKeys(object, predicate) {\n\tconst result = {};\n\n\tif (Array.isArray(predicate)) {\n\t\tfor (const key of predicate) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor?.enumerable) {\n\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// `Reflect.ownKeys()` is required to retrieve symbol properties\n\t\tfor (const key of Reflect.ownKeys(object)) {\n\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(object, key);\n\t\t\tif (descriptor.enumerable) {\n\t\t\t\tconst value = object[key];\n\t\t\t\tif (predicate(key, value, object)) {\n\t\t\t\t\tObject.defineProperty(result, key, descriptor);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport function excludeKeys(object, predicate) {\n\tif (Array.isArray(predicate)) {\n\t\tconst set = new Set(predicate);\n\t\treturn includeKeys(object, key => !set.has(key));\n\t}\n\n\treturn includeKeys(object, (key, value, object) => !predicate(key, value, object));\n}\n","import decodeComponent from 'decode-uri-component';\nimport splitOnFirst from 'split-on-first';\nimport {includeKeys} from 'filter-obj';\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\n// eslint-disable-next-line unicorn/prefer-code-point\nconst strictUriEncode = string => encodeURIComponent(string).replaceAll(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result, [encode(key, options), '[', index, ']'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), '[]'].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[]=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\t[encode(key, options), ':list='].join(''),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), ':list=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSeparator = options.arrayFormat === 'bracket-separator'\n\t\t\t\t? '[]='\n\t\t\t\t: '=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSeparator, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined\n\t\t\t\t\t|| (options.skipNull && value === null)\n\t\t\t\t\t|| (options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\t...result,\n\t\t\t\t\t\tencode(key, options),\n\t\t\t\t\t];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '=', encode(value, options)].join(''),\n\t\t\t\t];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'colon-list-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], value];\n\t\t\t};\n\t\t}\n\n\t\tcase 'comma':\n\t\tcase 'separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : (value === null ? value : decode(value, options));\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\t\t}\n\n\t\tcase 'bracket-separator': {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null\n\t\t\t\t\t? []\n\t\t\t\t\t: value.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...accumulator[key], ...arrayValue];\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [...[accumulator[key]].flat(), value];\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nexport function extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nexport function parse(query, options) {\n\toptions = {\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false,\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst returnValue = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn returnValue;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn returnValue;\n\t}\n\n\tfor (const parameter of query.split('&')) {\n\t\tif (parameter === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst parameter_ = options.decode ? parameter.replaceAll('+', ' ') : parameter;\n\n\t\tlet [key, value] = splitOnFirst(parameter_, '=');\n\n\t\tif (key === undefined) {\n\t\t\tkey = parameter_;\n\t\t}\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : (['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options));\n\t\tformatter(decode(key, options), value, returnValue);\n\t}\n\n\tfor (const [key, value] of Object.entries(returnValue)) {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const [key2, value2] of Object.entries(value)) {\n\t\t\t\tvalue[key2] = parseValue(value2, options);\n\t\t\t}\n\t\t} else {\n\t\t\treturnValue[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn returnValue;\n\t}\n\n\t// TODO: Remove the use of `reduce`.\n\t// eslint-disable-next-line unicorn/no-array-reduce\n\treturn (options.sort === true ? Object.keys(returnValue).sort() : Object.keys(returnValue).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = returnValue[key];\n\t\tresult[key] = Boolean(value) && typeof value === 'object' && !Array.isArray(value) ? keysSorter(value) : value;\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexport function stringify(object, options) {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\t...options,\n\t};\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key]))\n\t\t|| (options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = value;\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n}\n\nexport function parseUrl(url, options) {\n\toptions = {\n\t\tdecode: true,\n\t\t...options,\n\t};\n\n\tlet [url_, hash] = splitOnFirst(url, '#');\n\n\tif (url_ === undefined) {\n\t\turl_ = url;\n\t}\n\n\treturn {\n\t\turl: url_?.split('?')?.[0] ?? '',\n\t\tquery: parse(extract(url), options),\n\t\t...(options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}),\n\t};\n}\n\nexport function stringifyUrl(object, options) {\n\toptions = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true,\n\t\t...options,\n\t};\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = extract(object.url);\n\n\tconst query = {\n\t\t...parse(queryFromUrl, {sort: false}),\n\t\t...object.query,\n\t};\n\n\tlet queryString = stringify(query, options);\n\tqueryString &&= `?${queryString}`;\n\n\tlet hash = getHash(object.url);\n\tif (typeof object.fragmentIdentifier === 'string') {\n\t\tconst urlObjectForFragmentEncode = new URL(url);\n\t\turlObjectForFragmentEncode.hash = object.fragmentIdentifier;\n\t\thash = options[encodeFragmentIdentifier] ? urlObjectForFragmentEncode.hash : `#${object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n}\n\nexport function pick(input, filter, options) {\n\toptions = {\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false,\n\t\t...options,\n\t};\n\n\tconst {url, query, fragmentIdentifier} = parseUrl(input, options);\n\n\treturn stringifyUrl({\n\t\turl,\n\t\tquery: includeKeys(query, filter),\n\t\tfragmentIdentifier,\n\t}, options);\n}\n\nexport function exclude(input, filter, options) {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn pick(input, exclusionFilter, options);\n}\n","import { useFetch } from \"../../Api/UseFetch\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport queryString from 'query-string';\nimport {FILTERS} from \"../filters\";\n\nconst defaultOptions = [\n { title: 'Current prices', value: false },\n { title: 'Future prices', value: true }\n];\n\nfunction prepareUrl(item, selectedOptions, filtersData) {\n if (filtersData.venue?.pending || filtersData.multi_facilities?.pending) return null;\n \n const path = '/admin/reports/future_prices.json';\n const itemKey = item.key;\n const venueId = (selectedOptions || {}).venueId;\n const multiFacilityIds = (selectedOptions || {}).multiFacilityIds;\n\n const queryParams = {}\n if (itemKey) queryParams['item_key'] = item.key;\n if (venueId) queryParams['venue_id'] = venueId;\n if (multiFacilityIds) queryParams['multi_facility_ids[]'] = multiFacilityIds;\n\n return `${path}?${queryString.stringify(queryParams)}`;\n}\n\nexport const useFuturePrices = (item, options, selectedOptions, filtersData) => {\n const url = prepareUrl(item, selectedOptions, filtersData);\n const { pending, result, error } = useFetch(url);\n const [futurePricesOptionInitialized, setFuturePricesOptionInitialized] = useState(false);\n const useFuturePricesParam = JSON.parse(new URLSearchParams(location.search).get('future_price'));\n const optionIndex = (useFuturePricesParam && !futurePricesOptionInitialized) ? 1 :0;\n const [option, setOption] = useState(defaultOptions[optionIndex]);\n\n // Filter options\n const priceOptions = useMemo(() => {\n if (pending) return [];\n if (error) return [];\n if (!result.futurePricesExist) return [];\n\n return defaultOptions;\n }, [pending]);\n\n useEffect(() => {\n if (!pending && !error) {\n if (futurePricesOptionInitialized) {\n setOption(defaultOptions[0]);\n } else {\n setFuturePricesOptionInitialized(true);\n }\n }\n }, [pending]);\n\n return {\n priceOptions: priceOptions,\n priceOption: option,\n setPriceOption: setOption,\n pending: pending,\n }\n};","import React, { useEffect } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"../DropDown\";\nimport { useFuturePrices } from \"./useFuturePrices\";\n\nconst optionName = 'futurePrice';\n\nexport default ({ item, options, selectedOptions, onChanged, filtersData }) => {\n const {\n priceOptions,\n priceOption,\n setPriceOption,\n pending\n } = useFuturePrices(item, options, selectedOptions, filtersData);\n\n useEffect(() => {\n const params = priceOption ? { [optionName]: priceOption.value } : null;\n onChanged({ value: priceOption, pending, params })\n }, [pending, priceOption]);\n\n const hidden = priceOptions && priceOptions.length < 1;\n\n return (\n <div className={classNames(['filter-block filter-future-prices', { 'hidden': hidden }])}>\n <label htmlFor=\"filter-invoice-categories\">Current or future:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={priceOption}\n options={priceOptions}\n onChange={setPriceOption}\n isLoading={pending}\n isDisabled={pending}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst documentTypes = [\n { title: 'All documents', value: 'all' },\n { title: 'Documents with expiry date', value: 'expired' }\n];\n\nexport default ({ onChanged, options }) => {\n const documentTypeIndex = options.documentType === 'expired' ? 1 : 0\n const [documentType, setDocumentType] = useState(documentTypes[documentTypeIndex]);\n\n const pending = false;\n\n useEffect(() => {\n const params = documentType ? { documentType: documentType.value } : null;\n onChanged({ value: documentType, pending, params })\n }, [documentType]);\n\n return (\n <div className={classNames(['filter-block filter-document-types'])}>\n <label htmlFor=\"filter-document-types\">Documents:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={documentType}\n options={documentTypes}\n onChange={setDocumentType}\n isLoading={pending}\n isDisabled={pending}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst reportTypes = [\n { title: 'Sessions', value: 'sessions' },\n { title: 'Bookings', value: 'bookings' },\n { title: 'Summary', value: 'summary' }\n];\n\nexport default ({ onChanged }) => {\n const [reportType, setReportType] = useState(reportTypes[0]);\n\n useEffect(() => {\n const params = reportType ? { reportType: reportType.value } : null;\n onChanged({ value: reportType, pending: false, params });\n }, [reportType]);\n\n return (\n <div className={classNames(['filter-block filter-report-types'])}>\n <label htmlFor=\"filter-report-types\">Type:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={reportType}\n options={reportTypes}\n onChange={setReportType}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\nimport moment from \"moment\";\n\nconst offlineStatuses = [\n { title: 'All', value: 'all' },\n { title: 'No due date', value: 'no_due_date' },\n { title: 'Not yet due', value: 'not_yet_due' },\n { title: 'Overdue', value: 'overdue' },\n { title: 'Overpaid', value: 'overpaid' },\n { title: 'Paid', value: 'paid' }\n];\n\nexport default ({ onChanged }) => {\n const [offlineStatus, setOfflineStatus] = useState(offlineStatuses[0]);\n\n useEffect(() => {\n const params = offlineStatus ? { offlineStatus: offlineStatus.value } : null;\n\n onChanged({ value: offlineStatus, pending: false, params })\n }, [offlineStatus])\n\n return (\n <div className={classNames(['filter-block filter-report-types'])}>\n <label htmlFor=\"filter-report-types\">Status:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={offlineStatus}\n options={offlineStatuses}\n onChange={setOfflineStatus}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst partnerMarkers = [\n { title: 'All', value: 'all' },\n { title: 'All exc WL', value: 'all_not_wl' },\n];\n\nexport default ({ onChanged }) => {\n const [partnerMarker, setPartnerMarker] = useState(partnerMarkers[0]);\n\n useEffect(() => {\n const params = partnerMarker ? { partnerMarker: partnerMarker.value } : null;\n onChanged({ value: partnerMarker, pending: false, params });\n }, [partnerMarker]);\n\n return (\n <div className={classNames(['filter-block filter-report-types'])}>\n <label htmlFor=\"filter-report-types\">Partner:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={partnerMarker}\n options={partnerMarkers}\n onChange={setPartnerMarker}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst filterOptions = [\n { title: 'Excluding Pending User', value: 0 },\n { title: 'Including Pending User', value: 1 },\n { title: 'Only Pending User', value: 2 }\n];\n\nexport default ({ onChanged, options }) => {\n const selectedOption = parseInt(options.bookingsStatus) || 0;\n const [bookingsStatus, setBookingsStatus] = useState(filterOptions[selectedOption]);\n\n useEffect(() => {\n const params = bookingsStatus ? { bookingsStatus: bookingsStatus.value } : null;\n onChanged({ value: bookingsStatus, pending: false, params });\n }, [bookingsStatus]);\n\n return (\n <div className={classNames(['filter-block filter-pending-users'])}>\n <label htmlFor=\"filter-pending-users\">Bookings:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={bookingsStatus}\n options={filterOptions}\n onChange={setBookingsStatus}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst documentTypes = [\n { title: 'All documents', value: 'all' },\n { title: 'Documents with expiry date', value: 'expired' }\n];\n\nexport default ({ onChanged }) => {\n const [documentType, setDocumentType] = useState(documentTypes[0]);\n\n const pending = false;\n\n useEffect(() => {\n const params = documentType ? { documentType: documentType.value } : null;\n onChanged({ value: documentType, pending, params })\n }, [documentType]);\n\n return (\n <div className={classNames(['filter-block filter-document-types'])}>\n <label htmlFor=\"filter-document-types\">Date:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={documentType}\n options={documentTypes}\n onChange={setDocumentType}\n isLoading={pending}\n isDisabled={pending}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst documentTypes = [\n { title: 'All documents', value: 'all' },\n { title: 'Documents with expiry date', value: 'expired' }\n];\n\nexport default ({ onChanged }) => {\n const [documentType, setDocumentType] = useState(documentTypes[0]);\n\n const pending = false;\n\n useEffect(() => {\n const params = documentType ? { documentType: documentType.value } : null;\n onChanged({ value: documentType, pending, params })\n }, [documentType]);\n\n return (\n <div className={classNames(['filter-block filter-document-types'])}>\n <label htmlFor=\"filter-document-types\">Customers:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={documentType}\n options={documentTypes}\n onChange={setDocumentType}\n isLoading={pending}\n isDisabled={pending}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import React, { Component, useState, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport { default as Select } from 'react-select';\nimport { components } from 'react-select';\n\nconst Option = (props) => {\n return (\n <components.Option {...props}>\n <input\n type='checkbox'\n checked={props.isSelected}\n onChange={() => null}\n />{\" \"}\n {props.label}\n </components.Option>\n );\n};\n\nconst ValueContainer = ({ children, ...props }) => {\n let [values, input] = children;\n\n if (Array.isArray(values)) {\n if (values.length > 1) {\n values = `${values.length} selected`;\n } else {\n values = values[0].props.children\n if (values.length >= 12) values = values.substring(0, 12) + '...'\n }\n }\n\n return (\n <components.ValueContainer {...props}>\n {values}\n {input}\n </components.ValueContainer>\n );\n};\n\nexport default (props) => {\n const ref = useRef(null);\n\n return (\n <Select\n {...props}\n isMulti\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n components={{ Option, ValueContainer }}\n allowSelectAll={true}\n ref={ref}\n placeholder='All'\n />\n )\n}\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport MultiSelectDropdown from \"./MultiSelectDropdown\";\n\nexport default ({ item, options, onChanged }) => {\n const { days, selectedDays, setDays } = useDays(item, options);\n\n useEffect(() => {\n const params = selectedDays ? { days: selectedDays.map(day => day.id) } : [];\n onChanged({ value: selectedDays, params })\n }, [selectedDays]);\n\n return (\n <div className={classNames(['filter-block filter-days'])}>\n <label htmlFor=\"filter-days\">Days:</label>\n <div className='input-box input-box-react-select'>\n <MultiSelectDropdown\n value={selectedDays}\n isLoading={false}\n isDisabled={false}\n options={days}\n onChange={setDays}\n getOptionLabel={opt => opt.internalReference}\n getOptionValue={opt => opt.id}\n />\n </div>\n </div>\n )\n};\n\nexport const useDays = (item, options) => {\n const dayNames = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\n const days = dayNames.map((day, index) => {\n return { id: (index+1)%7, internalReference: day };\n });\n const [selectedDays, setDays] = useState([]);\n\n return {\n days,\n selectedDays,\n setDays\n }\n};\n","import React, { useState, useEffect, useMemo } from 'react';\nimport { useFetch } from '../Api/UseFetch';\nimport classNames from 'classnames';\nimport MultiSelectDropdown from \"./MultiSelectDropdown\";\n\nexport default ({ item, options, onChanged, selectedOptions }) => {\n const { facilities, selectedFacilities, setFacilities, disabled, pending } = useFacilities(item, options, selectedOptions);\n\n useEffect(() => {\n const params = selectedFacilities ? { multiFacilityIds: selectedFacilities.map(facility => facility.id) } : [];\n onChanged({ value: selectedFacilities, pending, params })\n }, [selectedFacilities, pending]);\n\n return (\n <div className={classNames(['filter-block filter-facilities'])}>\n <label htmlFor=\"filter-facilities\">Facility:</label>\n <div className='input-box input-box-react-select'>\n <MultiSelectDropdown\n value={selectedFacilities}\n isLoading={pending}\n isDisabled={pending || disabled}\n options={facilities}\n onChange={setFacilities}\n getOptionLabel={opt => `${opt.internalReference}${opt.softDeleted ? ' (deleted)' : ''}`}\n getOptionValue={opt => opt.id}\n />\n </div>\n </div>\n )\n};\n\nexport const useFacilities = (item, options, selectedOptions) => {\n const venueId = selectedOptions.venueId;\n const urlParams = `disabled_facility_publishing=${item.disabledFacilityPublishing}`;\n const url = venueId ? `/admin/api/venues/${venueId}/facilities.json?${urlParams}` : null;\n const [processedVenueId, setProcessedVenueId] = useState(null);\n const [selectedFacilities, setFacilities] = useState([]);\n const { pending, result, error } = useFetch(url);\n\n const disabled = item.key === 'activities' && ((venueId || '').toString()).startsWith('venue-group');\n\n // Status\n const processed = useMemo(() => venueId === processedVenueId, [venueId, processedVenueId]);\n\n // Filter options\n const facilities = useMemo(() => {\n if (pending || error) return [];\n return result.facilities;\n }, [pending, item, processed]);\n\n // Select checkboxes\n useEffect(() => {\n if (!pending && !error && !processed) {\n if(options.multiFacilityIds) {\n setFacilities(facilities.filter(facility => options.multiFacilityIds.includes(facility.id)))\n } else {\n setFacilities([])\n }\n setProcessedVenueId(venueId)\n }\n }, [pending, processed]);\n\n return {\n facilities,\n selectedFacilities,\n setFacilities,\n error,\n disabled,\n pending: !processed\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport DropDown from \"./DropDown\";\n\nconst incomeTypes = [\n { title: 'Projected %', value: 'projected' },\n { title: 'Total value', value: 'total_value' }\n];\n\nexport default ({ onChanged }) => {\n const [incomeType, setincomeType] = useState(incomeTypes[0]);\n\n useEffect(() => {\n const params = incomeType ? { incomeType: incomeType.value } : null;\n onChanged({ value: incomeType, pending: false, params });\n }, [incomeType]);\n\n return (\n <div className={classNames(['filter-block filter-report-types'])}>\n <label htmlFor=\"filter-income-types\">Type:</label>\n <div className='input-box input-box-react-select'>\n <DropDown\n value={incomeType}\n options={incomeTypes}\n onChange={setincomeType}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.value}\n />\n </div>\n </div>\n )\n};\n","import Venues from \"./Venues\";\nimport Facilities from \"./Facilities\";\nimport TimePeriods from \"./TimePeriods\";\nimport InvoiceCategories from \"./InvoiceCategories\";\nimport FuturePrices from \"./FuturePrices\";\nimport DocumentTypes from \"./DocumentTypes\";\nimport ReportTypes from \"./ReportTypes\";\nimport OfflineStatuses from \"./OfflineStatuses\";\nimport PartnerMarker from \"./PartnerMarker\";\nimport BookingsStatuses from \"./BookingsStatuses\";\nimport Date from \"./Date\";\nimport Customer from \"./Customers\";\nimport Days from \"./Days\";\nimport MultiFacilities from \"./MultiFacilities\";\nimport IncomeTypes from \"./IncomeTypes\";\n\nexport const FILTERS = [\n { key: 'venues', Component: Venues },\n { key: 'facilities', Component: Facilities },\n { key: 'multi_facilities', Component: MultiFacilities },\n { key: 'time_periods', Component: TimePeriods },\n { key: 'invoice_categories', Component: InvoiceCategories },\n { key: 'days', Component: Days },\n { key: 'bookings_statuses', Component: BookingsStatuses },\n { key: 'future_price', Component: FuturePrices },\n { key: 'document_types', Component: DocumentTypes },\n { key: 'report_types', Component: ReportTypes },\n { key: 'offline_statuses', Component: OfflineStatuses },\n { key: 'partner_marker', Component: PartnerMarker },\n { key: 'date', Component: Date },\n { key: 'customer', Component: Customer },\n { key: 'income_types', Component: IncomeTypes }\n];\n","import { useMemo, useState } from \"react\";\nimport { FILTERS } from \"./filters\";\n\nfunction initParams(item, activeFilters) {\n let baseParams = {};\n\n for (let filter of activeFilters) {\n baseParams[filter.key] = { value: null, pending: true, params: null };\n }\n\n return baseParams;\n}\n\nexport const useSelectedOptions = (item) => {\n const filters = (item || {}).filters || [];\n const activeFilters = useMemo(() => FILTERS.filter(filter => filters.includes(filter.key)), [item]);\n const [selectedOptions, setSelectedOptions] = useState(initParams(item, activeFilters));\n\n function assignOption(name, value) {\n setSelectedOptions(selectedOptions => ({ ...selectedOptions, [name]: value }));\n }\n\n const arr = selectedOptions ? Object.values(selectedOptions) : [];\n const pending = selectedOptions ? arr.some(x => x.pending) : true;\n\n let mergedParams = {};\n\n if (selectedOptions) {\n for (let v of Object.values(selectedOptions)) {\n mergedParams = Object.assign({}, mergedParams, v.params)\n }\n }\n\n return [assignOption, activeFilters, pending, mergedParams, selectedOptions];\n};","'use strict';\n\nconst isObject = value => typeof value === 'object' && value !== null;\nconst mapObjectSkip = Symbol('skip');\n\n// Customized for this use-case\nconst isObjectCustom = value =>\n\tisObject(value) &&\n\t!(value instanceof RegExp) &&\n\t!(value instanceof Error) &&\n\t!(value instanceof Date);\n\nconst mapObject = (object, mapper, options, isSeen = new WeakMap()) => {\n\toptions = {\n\t\tdeep: false,\n\t\ttarget: {},\n\t\t...options\n\t};\n\n\tif (isSeen.has(object)) {\n\t\treturn isSeen.get(object);\n\t}\n\n\tisSeen.set(object, options.target);\n\n\tconst {target} = options;\n\tdelete options.target;\n\n\tconst mapArray = array => array.map(element => isObjectCustom(element) ? mapObject(element, mapper, options, isSeen) : element);\n\tif (Array.isArray(object)) {\n\t\treturn mapArray(object);\n\t}\n\n\tfor (const [key, value] of Object.entries(object)) {\n\t\tconst mapResult = mapper(key, value, object);\n\n\t\tif (mapResult === mapObjectSkip) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [newKey, newValue, {shouldRecurse = true} = {}] = mapResult;\n\n\t\t// Drop `__proto__` keys.\n\t\tif (newKey === '__proto__') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (options.deep && shouldRecurse && isObjectCustom(newValue)) {\n\t\t\tnewValue = Array.isArray(newValue) ?\n\t\t\t\tmapArray(newValue) :\n\t\t\t\tmapObject(newValue, mapper, options, isSeen);\n\t\t}\n\n\t\ttarget[newKey] = newValue;\n\t}\n\n\treturn target;\n};\n\nmodule.exports = (object, mapper, options) => {\n\tif (!isObject(object)) {\n\t\tthrow new TypeError(`Expected an object, got \\`${object}\\` (${typeof object})`);\n\t}\n\n\treturn mapObject(object, mapper, options);\n};\n\nmodule.exports.mapObjectSkip = mapObjectSkip;\n","\n/**\n * Export.\n */\n\nmodule.exports = toNoCase\n\n/**\n * Test whether a string is camel-case.\n */\n\nvar hasSpace = /\\s/\nvar hasSeparator = /(_|-|\\.|:)/\nvar hasCamel = /([a-z][A-Z]|[A-Z][a-z])/\n\n/**\n * Remove any starting case from a `string`, like camel or snake, but keep\n * spaces and punctuation that may be important otherwise.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toNoCase(string) {\n if (hasSpace.test(string)) return string.toLowerCase()\n if (hasSeparator.test(string)) return (unseparate(string) || string).toLowerCase()\n if (hasCamel.test(string)) return uncamelize(string).toLowerCase()\n return string.toLowerCase()\n}\n\n/**\n * Separator splitter.\n */\n\nvar separatorSplitter = /[\\W_]+(.|$)/g\n\n/**\n * Un-separate a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction unseparate(string) {\n return string.replace(separatorSplitter, function (m, next) {\n return next ? ' ' + next : ''\n })\n}\n\n/**\n * Camelcase splitter.\n */\n\nvar camelSplitter = /(.)([A-Z]+)/g\n\n/**\n * Un-camelcase a `string`.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction uncamelize(string) {\n return string.replace(camelSplitter, function (m, previous, uppers) {\n return previous + ' ' + uppers.toLowerCase().split('').join(' ')\n })\n}\n","\nvar clean = require('to-no-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toSpaceCase\n\n/**\n * Convert a `string` to space case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toSpaceCase(string) {\n return clean(string).replace(/[\\W_]+(.|$)/g, function (matches, match) {\n return match ? ' ' + match : ''\n }).trim()\n}\n","\nvar toSpace = require('to-space-case')\n\n/**\n * Export.\n */\n\nmodule.exports = toSnakeCase\n\n/**\n * Convert a `string` to snake case.\n *\n * @param {String} string\n * @return {String}\n */\n\nfunction toSnakeCase(string) {\n return toSpace(string).replace(/\\s/g, '_')\n}\n","'use strict'\n\nconst map = require('map-obj')\nconst snakeCase = require('to-snake-case')\n\nmodule.exports = function (obj, options) {\n options = Object.assign({ deep: true, exclude: [] }, options)\n\n return map(obj, function (key, val) {\n return [\n matches(options.exclude, key) ? key : snakeCase(key),\n val\n ]\n }, options)\n}\n\nfunction matches (patterns, value) {\n return patterns.some(function (pattern) {\n return typeof pattern === 'string'\n ? pattern === value\n : pattern.test(value)\n })\n}\n","import snakeCaseKeys from 'snakecase-keys';\n\nexport const getQueryString = (filter) => {\n return Object\n .entries(snakeCaseKeys(filter))\n .filter(([_key, val]) => (val !== undefined && val !== null))\n .map(([key, val]) => {\n if (Array.isArray(val)) {\n return val.map((val) => `${key}[]=${val}`).join('&')\n } else {\n return `${key}=${val}`\n }\n }).join('&');\n};\n\nexport const getReportUrl = (item, filter, page) => {\n const queryString = getQueryString(filter);\n\n return `/admin/reports/${item.key}.json?${queryString}&page=${page}`;\n};\n\nexport const loadData = (url) => {\n return fetch(url).then(res => res.json())\n};\n\nexport const browseFacilityRequest = (url, data) => {\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Cache-Control': 'no-store, no-cache, must-revalidate, private'\n }\n if (data) {\n data = encodeURI(getQueryString(data))\n url = url + \"?\" + data\n }\n return fetch(url, { headers: headers }).then(res => res.json() )\n}\n","import React, { useEffect } from 'react';\n\nimport { useSelectedOptions } from \"./useSelectedOptions\";\n\nimport './styles.scss';\nimport { getQueryString } from \"../Reports/Api\";\n\nexport default ({ item, options, target, onUpdated }) => {\n const [\n assignOption,\n activeFilters,\n pending,\n mergedParams,\n filtersData\n ] = useSelectedOptions(item);\n const queryString = getQueryString(mergedParams);\n\n useEffect(() => { if (!pending) onUpdated(mergedParams) }, [pending, queryString]);\n\n return (\n <div className={`mega-filter mega-filter-${item.key}`}>\n {activeFilters.map(({ key, name, Component }) =>\n <Component\n key={key}\n item={item}\n options={options}\n target={target}\n selectedOptions={mergedParams}\n filtersData={filtersData}\n onChanged={(value) => assignOption(key, value)}\n />\n )}\n <div className='clearfix'/>\n </div>\n );\n}\n","export default function mergeClassNames() {\n return Array.prototype.slice.call(arguments).reduce(function (classList, arg) {\n return classList.concat(arg);\n }, []).filter(function (arg) {\n return typeof arg === 'string';\n }).join(' ');\n}","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = memoize;\n","import memoize from 'lodash.memoize';\n\nfunction resolver(options) {\n return JSON.stringify(options);\n}\n\nfunction uniqDefined(arr) {\n return arr.filter(function (el, index) {\n return el && arr.indexOf(el) === index;\n });\n}\n\nfunction normalizeLocales(arr) {\n return arr.map(function (el) {\n if (!el || el.indexOf('-') === -1 || el.toLowerCase() !== el) {\n return el;\n }\n\n var splitEl = el.split('-');\n return splitEl[0] + \"-\" + splitEl[1].toUpperCase();\n });\n}\n\nfunction getUserLocalesInternal(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$useFallbackLocal = _ref.useFallbackLocale,\n useFallbackLocale = _ref$useFallbackLocal === void 0 ? true : _ref$useFallbackLocal,\n _ref$fallbackLocale = _ref.fallbackLocale,\n fallbackLocale = _ref$fallbackLocale === void 0 ? 'en-US' : _ref$fallbackLocale;\n\n var languageList = [];\n\n if (typeof window !== 'undefined') {\n var _window = window,\n navigator = _window.navigator;\n languageList = languageList.concat(navigator.languages, navigator.language, navigator.userLanguage, navigator.browserLanguage, navigator.systemLanguage);\n }\n\n if (useFallbackLocale) {\n languageList.push(fallbackLocale);\n }\n\n return normalizeLocales(uniqDefined(languageList));\n}\n\nexport var getUserLocales = memoize(getUserLocalesInternal, resolver);\n\nfunction getUserLocaleInternal(options) {\n return getUserLocales(options)[0] || null;\n}\n\nexport var getUserLocale = memoize(getUserLocaleInternal, resolver);\nexport default getUserLocale;","/**\n * Utils\n */\nfunction makeGetEdgeOfNeighbor(getPeriod, getEdgeOfPeriod, defaultOffset) {\n return function makeGetEdgeOfNeighborInternal(date) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOffset;\n var previousPeriod = getPeriod(date) + offset;\n return getEdgeOfPeriod(previousPeriod);\n };\n}\n\nfunction makeGetEnd(getBeginOfNextPeriod) {\n return function makeGetEndInternal(date) {\n return new Date(getBeginOfNextPeriod(date).getTime() - 1);\n };\n}\n\nfunction makeGetRange(functions) {\n return function makeGetRangeInternal(date) {\n return functions.map(function (fn) {\n return fn(date);\n });\n };\n}\n/**\n * Simple getters - getting a property of a given point in time\n */\n\n/**\n * Gets year from date.\n *\n * @param {Date|number|string} date Date to get year from.\n */\n\n\nexport function getYear(date) {\n if (date instanceof Date) {\n return date.getFullYear();\n }\n\n if (typeof date === 'number') {\n return date;\n }\n\n var year = parseInt(date, 10);\n\n if (typeof date === 'string' && !isNaN(year)) {\n return year;\n }\n\n throw new Error(\"Failed to get year from date: \".concat(date, \".\"));\n}\n/**\n * Gets month from date.\n *\n * @param {Date} date Date to get month from.\n */\n\nexport function getMonth(date) {\n if (date instanceof Date) {\n return date.getMonth();\n }\n\n throw new Error(\"Failed to get month from date: \".concat(date, \".\"));\n}\n/**\n * Gets human-readable month from date.\n *\n * @param {Date} date Date to get human-readable month from.\n */\n\nexport function getMonthHuman(date) {\n if (date instanceof Date) {\n return date.getMonth() + 1;\n }\n\n throw new Error(\"Failed to get human-readable month from date: \".concat(date, \".\"));\n}\n/**\n * Gets human-readable day of the month from date.\n *\n * @param {Date} date Date to get day of the month from.\n */\n\nexport function getDate(date) {\n if (date instanceof Date) {\n return date.getDate();\n }\n\n throw new Error(\"Failed to get year from date: \".concat(date, \".\"));\n}\n/**\n * Gets hours from date.\n *\n * @param {Date|string} date Date to get hours from.\n */\n\nexport function getHours(date) {\n if (date instanceof Date) {\n return date.getHours();\n }\n\n if (typeof date === 'string') {\n var datePieces = date.split(':');\n\n if (datePieces.length >= 2) {\n var hoursString = datePieces[0];\n var hours = parseInt(hoursString, 10);\n\n if (!isNaN(hours)) {\n return hours;\n }\n }\n }\n\n throw new Error(\"Failed to get hours from date: \".concat(date, \".\"));\n}\n/**\n * Gets minutes from date.\n *\n * @param {Date|string} date Date to get minutes from.\n */\n\nexport function getMinutes(date) {\n if (date instanceof Date) {\n return date.getMinutes();\n }\n\n if (typeof date === 'string') {\n var datePieces = date.split(':');\n\n if (datePieces.length >= 2) {\n var minutesString = datePieces[1] || 0;\n var minutes = parseInt(minutesString, 10);\n\n if (!isNaN(minutes)) {\n return minutes;\n }\n }\n }\n\n throw new Error(\"Failed to get minutes from date: \".concat(date, \".\"));\n}\n/**\n * Gets seconds from date.\n *\n * @param {Date|string} date Date to get seconds from.\n */\n\nexport function getSeconds(date) {\n if (date instanceof Date) {\n return date.getSeconds();\n }\n\n if (typeof date === 'string') {\n var datePieces = date.split(':');\n\n if (datePieces.length >= 2) {\n var secondsString = datePieces[2] || 0;\n var seconds = parseInt(secondsString, 10);\n\n if (!isNaN(seconds)) {\n return seconds;\n }\n }\n }\n\n throw new Error(\"Failed to get seconds from date: \".concat(date, \".\"));\n}\n/**\n * Century\n */\n\nexport function getCenturyStart(date) {\n var year = getYear(date);\n var centuryStartYear = year + (-year + 1) % 100;\n var centuryStartDate = new Date();\n centuryStartDate.setFullYear(centuryStartYear, 0, 1);\n centuryStartDate.setHours(0, 0, 0, 0);\n return centuryStartDate;\n}\nexport var getPreviousCenturyStart = makeGetEdgeOfNeighbor(getYear, getCenturyStart, -100);\nexport var getNextCenturyStart = makeGetEdgeOfNeighbor(getYear, getCenturyStart, 100);\nexport var getCenturyEnd = makeGetEnd(getNextCenturyStart);\nexport var getPreviousCenturyEnd = makeGetEdgeOfNeighbor(getYear, getCenturyEnd, -100);\nexport var getNextCenturyEnd = makeGetEdgeOfNeighbor(getYear, getCenturyEnd, 100);\nexport var getCenturyRange = makeGetRange([getCenturyStart, getCenturyEnd]);\n/**\n * Decade\n */\n\nexport function getDecadeStart(date) {\n var year = getYear(date);\n var decadeStartYear = year + (-year + 1) % 10;\n var decadeStartDate = new Date();\n decadeStartDate.setFullYear(decadeStartYear, 0, 1);\n decadeStartDate.setHours(0, 0, 0, 0);\n return decadeStartDate;\n}\nexport var getPreviousDecadeStart = makeGetEdgeOfNeighbor(getYear, getDecadeStart, -10);\nexport var getNextDecadeStart = makeGetEdgeOfNeighbor(getYear, getDecadeStart, 10);\nexport var getDecadeEnd = makeGetEnd(getNextDecadeStart);\nexport var getPreviousDecadeEnd = makeGetEdgeOfNeighbor(getYear, getDecadeEnd, -10);\nexport var getNextDecadeEnd = makeGetEdgeOfNeighbor(getYear, getDecadeEnd, 10);\nexport var getDecadeRange = makeGetRange([getDecadeStart, getDecadeEnd]);\n/**\n * Year\n */\n\nexport function getYearStart(date) {\n var year = getYear(date);\n var yearStartDate = new Date();\n yearStartDate.setFullYear(year, 0, 1);\n yearStartDate.setHours(0, 0, 0, 0);\n return yearStartDate;\n}\nexport var getPreviousYearStart = makeGetEdgeOfNeighbor(getYear, getYearStart, -1);\nexport var getNextYearStart = makeGetEdgeOfNeighbor(getYear, getYearStart, 1);\nexport var getYearEnd = makeGetEnd(getNextYearStart);\nexport var getPreviousYearEnd = makeGetEdgeOfNeighbor(getYear, getYearEnd, -1);\nexport var getNextYearEnd = makeGetEdgeOfNeighbor(getYear, getYearEnd, 1);\nexport var getYearRange = makeGetRange([getYearStart, getYearEnd]);\n/**\n * Month\n */\n\nfunction makeGetEdgeOfNeighborMonth(getEdgeOfPeriod, defaultOffset) {\n return function makeGetEdgeOfNeighborMonthInternal(date) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOffset;\n var year = getYear(date);\n var month = getMonth(date) + offset;\n var previousPeriod = new Date();\n previousPeriod.setFullYear(year, month, 1);\n previousPeriod.setHours(0, 0, 0, 0);\n return getEdgeOfPeriod(previousPeriod);\n };\n}\n\nexport function getMonthStart(date) {\n var year = getYear(date);\n var month = getMonth(date);\n var monthStartDate = new Date();\n monthStartDate.setFullYear(year, month, 1);\n monthStartDate.setHours(0, 0, 0, 0);\n return monthStartDate;\n}\nexport var getPreviousMonthStart = makeGetEdgeOfNeighborMonth(getMonthStart, -1);\nexport var getNextMonthStart = makeGetEdgeOfNeighborMonth(getMonthStart, 1);\nexport var getMonthEnd = makeGetEnd(getNextMonthStart);\nexport var getPreviousMonthEnd = makeGetEdgeOfNeighborMonth(getMonthEnd, -1);\nexport var getNextMonthEnd = makeGetEdgeOfNeighborMonth(getMonthEnd, 1);\nexport var getMonthRange = makeGetRange([getMonthStart, getMonthEnd]);\n/**\n * Day\n */\n\nfunction makeGetEdgeOfNeighborDay(getEdgeOfPeriod, defaultOffset) {\n return function makeGetEdgeOfNeighborDayInternal(date) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOffset;\n var year = getYear(date);\n var month = getMonth(date);\n var day = getDate(date) + offset;\n var previousPeriod = new Date();\n previousPeriod.setFullYear(year, month, day);\n previousPeriod.setHours(0, 0, 0, 0);\n return getEdgeOfPeriod(previousPeriod);\n };\n}\n\nexport function getDayStart(date) {\n var year = getYear(date);\n var month = getMonth(date);\n var day = getDate(date);\n var dayStartDate = new Date();\n dayStartDate.setFullYear(year, month, day);\n dayStartDate.setHours(0, 0, 0, 0);\n return dayStartDate;\n}\nexport var getPreviousDayStart = makeGetEdgeOfNeighborDay(getDayStart, -1);\nexport var getNextDayStart = makeGetEdgeOfNeighborDay(getDayStart, 1);\nexport var getDayEnd = makeGetEnd(getNextDayStart);\nexport var getPreviousDayEnd = makeGetEdgeOfNeighborDay(getDayEnd, -1);\nexport var getNextDayEnd = makeGetEdgeOfNeighborDay(getDayEnd, 1);\nexport var getDayRange = makeGetRange([getDayStart, getDayEnd]);\n/**\n * Other\n */\n\n/**\n * Returns a number of days in a month of a given date.\n *\n * @param {Date} date Date.\n */\n\nexport function getDaysInMonth(date) {\n return getDate(getMonthEnd(date));\n}\n\nfunction padStart(num) {\n var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n var numStr = \"\".concat(num);\n\n if (numStr.length >= val) {\n return num;\n }\n\n return \"0000\".concat(numStr).slice(-val);\n}\n/**\n * Returns local hours and minutes (hh:mm).\n */\n\n\nexport function getHoursMinutes(date) {\n var hours = padStart(getHours(date));\n var minutes = padStart(getMinutes(date));\n return \"\".concat(hours, \":\").concat(minutes);\n}\n/**\n * Returns local hours, minutes and seconds (hh:mm:ss).\n */\n\nexport function getHoursMinutesSeconds(date) {\n var hours = padStart(getHours(date));\n var minutes = padStart(getMinutes(date));\n var seconds = padStart(getSeconds(date));\n return \"\".concat(hours, \":\").concat(minutes, \":\").concat(seconds);\n}\n/**\n * Returns local month in ISO-like format (YYYY-MM).\n */\n\nexport function getISOLocalMonth(date) {\n var year = padStart(getYear(date), 4);\n var month = padStart(getMonthHuman(date));\n return \"\".concat(year, \"-\").concat(month);\n}\n/**\n * Returns local date in ISO-like format (YYYY-MM-DD).\n */\n\nexport function getISOLocalDate(date) {\n var year = padStart(getYear(date), 4);\n var month = padStart(getMonthHuman(date));\n var day = padStart(getDate(date));\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day);\n}\n/**\n * Returns local date & time in ISO-like format (YYYY-MM-DDThh:mm:ss).\n */\n\nexport function getISOLocalDateTime(date) {\n return \"\".concat(getISOLocalDate(date), \"T\").concat(getHoursMinutesSeconds(date));\n}","var _CALENDAR_TYPE_LOCALE;\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nexport var CALENDAR_TYPES = {\n ARABIC: 'Arabic',\n HEBREW: 'Hebrew',\n ISO_8601: 'ISO 8601',\n US: 'US'\n};\nexport var CALENDAR_TYPE_LOCALES = (_CALENDAR_TYPE_LOCALE = {}, _defineProperty(_CALENDAR_TYPE_LOCALE, CALENDAR_TYPES.US, ['en-CA', 'en-US', 'es-AR', 'es-BO', 'es-CL', 'es-CO', 'es-CR', 'es-DO', 'es-EC', 'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA', 'es-PE', 'es-PR', 'es-SV', 'es-VE', 'pt-BR']), _defineProperty(_CALENDAR_TYPE_LOCALE, CALENDAR_TYPES.ARABIC, [// ar-LB, ar-MA intentionally missing\n'ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LY', 'ar-OM', 'ar-QA', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-YE', 'dv', 'dv-MV', 'ps', 'ps-AR']), _defineProperty(_CALENDAR_TYPE_LOCALE, CALENDAR_TYPES.HEBREW, ['he', 'he-IL']), _CALENDAR_TYPE_LOCALE);\nexport var WEEKDAYS = _toConsumableArray(Array(7)).map(function (el, index) {\n return index;\n});","import getUserLocale from 'get-user-locale';\nvar formatterCache = new Map();\n\nfunction getFormatter(options) {\n return function (locale, date) {\n var localeWithDefault = locale || getUserLocale();\n\n if (!formatterCache.has(localeWithDefault)) {\n formatterCache.set(localeWithDefault, new Map());\n }\n\n var formatterCacheLocale = formatterCache.get(localeWithDefault);\n\n if (!formatterCacheLocale.has(options)) {\n formatterCacheLocale.set(options, new Intl.DateTimeFormat(localeWithDefault, options).format);\n }\n\n return formatterCacheLocale.get(options)(date);\n };\n}\n/**\n * Changes the hour in a Date to ensure right date formatting even if DST is messed up.\n * Workaround for bug in WebKit and Firefox with historical dates.\n * For more details, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=750465\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1385643\n *\n * @param {Date} date Date.\n */\n\n\nfunction toSafeHour(date) {\n var safeDate = new Date(date);\n return new Date(safeDate.setHours(12));\n}\n\nfunction getSafeFormatter(options) {\n return function (locale, date) {\n return getFormatter(options)(locale, toSafeHour(date));\n };\n}\n\nvar formatDateOptions = {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric'\n};\nvar formatDayOptions = {\n day: 'numeric'\n};\nvar formatLongDateOptions = {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n};\nvar formatMonthOptions = {\n month: 'long'\n};\nvar formatMonthYearOptions = {\n month: 'long',\n year: 'numeric'\n};\nvar formatShortWeekdayOptions = {\n weekday: 'short'\n};\nvar formatWeekdayOptions = {\n weekday: 'long'\n};\nvar formatYearOptions = {\n year: 'numeric'\n};\nexport var formatDate = getSafeFormatter(formatDateOptions);\nexport var formatDay = getSafeFormatter(formatDayOptions);\nexport var formatLongDate = getSafeFormatter(formatLongDateOptions);\nexport var formatMonth = getSafeFormatter(formatMonthOptions);\nexport var formatMonthYear = getSafeFormatter(formatMonthYearOptions);\nexport var formatShortWeekday = getSafeFormatter(formatShortWeekdayOptions);\nexport var formatWeekday = getSafeFormatter(formatWeekdayOptions);\nexport var formatYear = getSafeFormatter(formatYearOptions);","import { getYear, getMonth as getMonthIndex, getCenturyStart, getPreviousCenturyStart, getNextCenturyStart, getCenturyEnd, getPreviousCenturyEnd, getCenturyRange, getDecadeStart, getPreviousDecadeStart, getNextDecadeStart, getDecadeEnd, getPreviousDecadeEnd, getDecadeRange, getYearStart, getPreviousYearStart, getNextYearStart, getYearEnd, getPreviousYearEnd, getYearRange, getMonthStart, getPreviousMonthStart, getNextMonthStart, getMonthEnd, getPreviousMonthEnd, getMonthRange, getDayStart, getDayEnd, getDayRange } from '@wojtekmaj/date-utils';\nimport { CALENDAR_TYPES, WEEKDAYS } from './const';\nimport { formatYear as defaultFormatYear } from './dateFormatter';\nvar SUNDAY = WEEKDAYS[0];\nvar FRIDAY = WEEKDAYS[5];\nvar SATURDAY = WEEKDAYS[6];\n/* Simple getters - getting a property of a given point in time */\n\nexport function getDayOfWeek(date) {\n var calendarType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_TYPES.ISO_8601;\n var weekday = date.getDay();\n\n switch (calendarType) {\n case CALENDAR_TYPES.ISO_8601:\n // Shifts days of the week so that Monday is 0, Sunday is 6\n return (weekday + 6) % 7;\n\n case CALENDAR_TYPES.ARABIC:\n return (weekday + 1) % 7;\n\n case CALENDAR_TYPES.HEBREW:\n case CALENDAR_TYPES.US:\n return weekday;\n\n default:\n throw new Error('Unsupported calendar type.');\n }\n}\n/**\n * Century\n */\n\nexport function getBeginOfCenturyYear(date) {\n var beginOfCentury = getCenturyStart(date);\n return getYear(beginOfCentury);\n}\n/**\n * Decade\n */\n\nexport function getBeginOfDecadeYear(date) {\n var beginOfDecade = getDecadeStart(date);\n return getYear(beginOfDecade);\n}\n/**\n * Week\n */\n\n/**\n * Returns the beginning of a given week.\n *\n * @param {Date} date Date.\n * @param {string} calendarType Calendar type. Can be ISO 8601 or US.\n */\n\nexport function getBeginOfWeek(date) {\n var calendarType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_TYPES.ISO_8601;\n var year = getYear(date);\n var monthIndex = getMonthIndex(date);\n var day = date.getDate() - getDayOfWeek(date, calendarType);\n return new Date(year, monthIndex, day);\n}\n/**\n * Gets week number according to ISO 8601 or US standard.\n * In ISO 8601, Arabic and Hebrew week 1 is the one with January 4.\n * In US calendar week 1 is the one with January 1.\n *\n * @param {Date} date Date.\n * @param {string} calendarType Calendar type. Can be ISO 8601 or US.\n */\n\nexport function getWeekNumber(date) {\n var calendarType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_TYPES.ISO_8601;\n var calendarTypeForWeekNumber = calendarType === CALENDAR_TYPES.US ? CALENDAR_TYPES.US : CALENDAR_TYPES.ISO_8601;\n var beginOfWeek = getBeginOfWeek(date, calendarType);\n var year = getYear(date) + 1;\n var dayInWeekOne;\n var beginOfFirstWeek; // Look for the first week one that does not come after a given date\n\n do {\n dayInWeekOne = new Date(year, 0, calendarTypeForWeekNumber === CALENDAR_TYPES.ISO_8601 ? 4 : 1);\n beginOfFirstWeek = getBeginOfWeek(dayInWeekOne, calendarType);\n year -= 1;\n } while (date < beginOfFirstWeek);\n\n return Math.round((beginOfWeek - beginOfFirstWeek) / (8.64e7 * 7)) + 1;\n}\n/**\n * Others\n */\n\n/**\n * Returns the beginning of a given range.\n *\n * @param {string} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n */\n\nexport function getBegin(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getCenturyStart(date);\n\n case 'decade':\n return getDecadeStart(date);\n\n case 'year':\n return getYearStart(date);\n\n case 'month':\n return getMonthStart(date);\n\n case 'day':\n return getDayStart(date);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport function getBeginPrevious(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getPreviousCenturyStart(date);\n\n case 'decade':\n return getPreviousDecadeStart(date);\n\n case 'year':\n return getPreviousYearStart(date);\n\n case 'month':\n return getPreviousMonthStart(date);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport function getBeginNext(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getNextCenturyStart(date);\n\n case 'decade':\n return getNextDecadeStart(date);\n\n case 'year':\n return getNextYearStart(date);\n\n case 'month':\n return getNextMonthStart(date);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport var getBeginPrevious2 = function getBeginPrevious2(rangeType, date) {\n switch (rangeType) {\n case 'decade':\n return getPreviousDecadeStart(date, -100);\n\n case 'year':\n return getPreviousYearStart(date, -10);\n\n case 'month':\n return getPreviousMonthStart(date, -12);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n};\nexport var getBeginNext2 = function getBeginNext2(rangeType, date) {\n switch (rangeType) {\n case 'decade':\n return getNextDecadeStart(date, 100);\n\n case 'year':\n return getNextYearStart(date, 10);\n\n case 'month':\n return getNextMonthStart(date, 12);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n};\n/**\n * Returns the end of a given range.\n *\n * @param {string} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n */\n\nexport function getEnd(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getCenturyEnd(date);\n\n case 'decade':\n return getDecadeEnd(date);\n\n case 'year':\n return getYearEnd(date);\n\n case 'month':\n return getMonthEnd(date);\n\n case 'day':\n return getDayEnd(date);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport function getEndPrevious(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getPreviousCenturyEnd(date);\n\n case 'decade':\n return getPreviousDecadeEnd(date);\n\n case 'year':\n return getPreviousYearEnd(date);\n\n case 'month':\n return getPreviousMonthEnd(date);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\nexport var getEndPrevious2 = function getEndPrevious2(rangeType, date) {\n switch (rangeType) {\n case 'decade':\n return getPreviousDecadeEnd(date, -100);\n\n case 'year':\n return getPreviousYearEnd(date, -10);\n\n case 'month':\n return getPreviousMonthEnd(date, -12);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n};\n/**\n * Returns an array with the beginning and the end of a given range.\n *\n * @param {string} rangeType Range type (e.g. 'day')\n * @param {Date} date Date.\n */\n\nexport function getRange(rangeType, date) {\n switch (rangeType) {\n case 'century':\n return getCenturyRange(date);\n\n case 'decade':\n return getDecadeRange(date);\n\n case 'year':\n return getYearRange(date);\n\n case 'month':\n return getMonthRange(date);\n\n case 'day':\n return getDayRange(date);\n\n default:\n throw new Error(\"Invalid rangeType: \".concat(rangeType));\n }\n}\n/**\n * Creates a range out of two values, ensuring they are in order and covering entire period ranges.\n *\n * @param {string} rangeType Range type (e.g. 'day')\n * @param {Date} date1 First date.\n * @param {Date} date2 Second date.\n */\n\nexport function getValueRange(rangeType, date1, date2) {\n var rawNextValue = [date1, date2].sort(function (a, b) {\n return a - b;\n });\n return [getBegin(rangeType, rawNextValue[0]), getEnd(rangeType, rawNextValue[1])];\n}\n\nfunction toYearLabel(locale) {\n var formatYear = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultFormatYear;\n var dates = arguments.length > 2 ? arguments[2] : undefined;\n return dates.map(function (date) {\n return formatYear(locale, date);\n }).join(' – ');\n}\n/**\n * Returns a string labelling a century of a given date.\n * For example, for 2017 it will return 2001-2100.\n *\n * @param {Date|String|Number} date Date or a year as a string or as a number.\n */\n\n\nexport function getCenturyLabel(locale, formatYear, date) {\n return toYearLabel(locale, formatYear, getCenturyRange(date));\n}\n/**\n * Returns a string labelling a century of a given date.\n * For example, for 2017 it will return 2011-2020.\n *\n * @param {Date|String|Number} date Date or a year as a string or as a number.\n */\n\nexport function getDecadeLabel(locale, formatYear, date) {\n return toYearLabel(locale, formatYear, getDecadeRange(date));\n}\n/**\n * Returns a boolean determining whether a given date is on Saturday or Sunday.\n *\n * @param {Date} date Date.\n */\n\nexport function isWeekend(date) {\n var calendarType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CALENDAR_TYPES.ISO_8601;\n var weekday = date.getDay();\n\n switch (calendarType) {\n case CALENDAR_TYPES.ARABIC:\n case CALENDAR_TYPES.HEBREW:\n return weekday === FRIDAY || weekday === SATURDAY;\n\n case CALENDAR_TYPES.ISO_8601:\n case CALENDAR_TYPES.US:\n return weekday === SATURDAY || weekday === SUNDAY;\n\n default:\n throw new Error('Unsupported calendar type.');\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport PropTypes from 'prop-types';\nimport { CALENDAR_TYPES } from './const';\nvar calendarTypes = Object.values(CALENDAR_TYPES);\nvar allViews = ['century', 'decade', 'year', 'month'];\nexport var isCalendarType = PropTypes.oneOf(calendarTypes);\nexport var isClassName = PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]);\nexport var isMinDate = function isMinDate(props, propName, componentName) {\n var minDate = props[propName];\n\n if (!minDate) {\n return null;\n }\n\n if (!(minDate instanceof Date)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(_typeof(minDate), \"` supplied to `\").concat(componentName, \"`, expected instance of `Date`.\"));\n }\n\n var maxDate = props.maxDate;\n\n if (maxDate && minDate > maxDate) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(_typeof(minDate), \"` supplied to `\").concat(componentName, \"`, minDate cannot be larger than maxDate.\"));\n }\n\n return null;\n};\nexport var isMaxDate = function isMaxDate(props, propName, componentName) {\n var maxDate = props[propName];\n\n if (!maxDate) {\n return null;\n }\n\n if (!(maxDate instanceof Date)) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(_typeof(maxDate), \"` supplied to `\").concat(componentName, \"`, expected instance of `Date`.\"));\n }\n\n var minDate = props.minDate;\n\n if (minDate && maxDate < minDate) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of type `\").concat(_typeof(maxDate), \"` supplied to `\").concat(componentName, \"`, maxDate cannot be smaller than minDate.\"));\n }\n\n return null;\n};\nexport var isRef = PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var isValue = PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.arrayOf(PropTypes.instanceOf(Date))]);\nexport var isViews = PropTypes.arrayOf(PropTypes.oneOf(allViews));\nexport var isView = function isView(props, propName, componentName) {\n var view = props[propName];\n var views = props.views;\n var allowedViews = views || allViews;\n\n if (view !== undefined && allowedViews.indexOf(view) === -1) {\n return new Error(\"Invalid prop `\".concat(propName, \"` of value `\").concat(view, \"` supplied to `\").concat(componentName, \"`, expected one of [\").concat(allowedViews.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n }).join(', '), \"].\"));\n } // Everything is fine\n\n\n return null;\n};\n\nisView.isRequired = function (props, propName, componentName) {\n var view = props[propName];\n\n if (!view) {\n return new Error(\"The prop `\".concat(propName, \"` is marked as required in `\").concat(componentName, \"`, but its value is `\").concat(view, \"`.\"));\n }\n\n return isView(props, propName, componentName);\n};\n\nexport var tileGroupProps = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n hover: PropTypes.instanceOf(Date),\n locale: PropTypes.string,\n maxDate: isMaxDate,\n minDate: isMinDate,\n onClick: PropTypes.func,\n onMouseOver: PropTypes.func,\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n value: isValue,\n valueType: PropTypes.string\n};\nexport var tileProps = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n classes: PropTypes.arrayOf(PropTypes.string).isRequired,\n date: PropTypes.instanceOf(Date).isRequired,\n locale: PropTypes.string,\n maxDate: isMaxDate,\n minDate: isMinDate,\n onClick: PropTypes.func,\n onMouseOver: PropTypes.func,\n style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n tileDisabled: PropTypes.func\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getUserLocale } from 'get-user-locale';\nimport { getCenturyLabel, getDecadeLabel, getBeginNext, getBeginNext2, getBeginPrevious, getBeginPrevious2, getEndPrevious, getEndPrevious2 } from '../shared/dates';\nimport { formatMonthYear as defaultFormatMonthYear, formatYear as defaultFormatYear } from '../shared/dateFormatter';\nimport { isView, isViews } from '../shared/propTypes';\nvar className = 'react-calendar__navigation';\nexport default function Navigation(_ref) {\n var activeStartDate = _ref.activeStartDate,\n drillUp = _ref.drillUp,\n _ref$formatMonthYear = _ref.formatMonthYear,\n formatMonthYear = _ref$formatMonthYear === void 0 ? defaultFormatMonthYear : _ref$formatMonthYear,\n _ref$formatYear = _ref.formatYear,\n formatYear = _ref$formatYear === void 0 ? defaultFormatYear : _ref$formatYear,\n locale = _ref.locale,\n maxDate = _ref.maxDate,\n minDate = _ref.minDate,\n _ref$navigationAriaLa = _ref.navigationAriaLabel,\n navigationAriaLabel = _ref$navigationAriaLa === void 0 ? '' : _ref$navigationAriaLa,\n navigationAriaLive = _ref.navigationAriaLive,\n navigationLabel = _ref.navigationLabel,\n _ref$next2AriaLabel = _ref.next2AriaLabel,\n next2AriaLabel = _ref$next2AriaLabel === void 0 ? '' : _ref$next2AriaLabel,\n _ref$next2Label = _ref.next2Label,\n next2Label = _ref$next2Label === void 0 ? '»' : _ref$next2Label,\n _ref$nextAriaLabel = _ref.nextAriaLabel,\n nextAriaLabel = _ref$nextAriaLabel === void 0 ? '' : _ref$nextAriaLabel,\n _ref$nextLabel = _ref.nextLabel,\n nextLabel = _ref$nextLabel === void 0 ? '›' : _ref$nextLabel,\n _ref$prev2AriaLabel = _ref.prev2AriaLabel,\n prev2AriaLabel = _ref$prev2AriaLabel === void 0 ? '' : _ref$prev2AriaLabel,\n _ref$prev2Label = _ref.prev2Label,\n prev2Label = _ref$prev2Label === void 0 ? '«' : _ref$prev2Label,\n _ref$prevAriaLabel = _ref.prevAriaLabel,\n prevAriaLabel = _ref$prevAriaLabel === void 0 ? '' : _ref$prevAriaLabel,\n _ref$prevLabel = _ref.prevLabel,\n prevLabel = _ref$prevLabel === void 0 ? '‹' : _ref$prevLabel,\n setActiveStartDate = _ref.setActiveStartDate,\n showDoubleView = _ref.showDoubleView,\n view = _ref.view,\n views = _ref.views;\n var drillUpAvailable = views.indexOf(view) > 0;\n var shouldShowPrevNext2Buttons = view !== 'century';\n var previousActiveStartDate = getBeginPrevious(view, activeStartDate);\n var previousActiveStartDate2 = shouldShowPrevNext2Buttons && getBeginPrevious2(view, activeStartDate);\n var nextActiveStartDate = getBeginNext(view, activeStartDate);\n var nextActiveStartDate2 = shouldShowPrevNext2Buttons && getBeginNext2(view, activeStartDate);\n\n var prevButtonDisabled = function () {\n if (previousActiveStartDate.getFullYear() < 0) {\n return true;\n }\n\n var previousActiveEndDate = getEndPrevious(view, activeStartDate);\n return minDate && minDate >= previousActiveEndDate;\n }();\n\n var prev2ButtonDisabled = shouldShowPrevNext2Buttons && function () {\n if (previousActiveStartDate2.getFullYear() < 0) {\n return true;\n }\n\n var previousActiveEndDate = getEndPrevious2(view, activeStartDate);\n return minDate && minDate >= previousActiveEndDate;\n }();\n\n var nextButtonDisabled = maxDate && maxDate < nextActiveStartDate;\n var next2ButtonDisabled = shouldShowPrevNext2Buttons && maxDate && maxDate < nextActiveStartDate2;\n\n function onClickPrevious() {\n setActiveStartDate(previousActiveStartDate, 'prev');\n }\n\n function onClickPrevious2() {\n setActiveStartDate(previousActiveStartDate2, 'prev2');\n }\n\n function onClickNext() {\n setActiveStartDate(nextActiveStartDate, 'next');\n }\n\n function onClickNext2() {\n setActiveStartDate(nextActiveStartDate2, 'next2');\n }\n\n function renderLabel(date) {\n var label = function () {\n switch (view) {\n case 'century':\n return getCenturyLabel(locale, formatYear, date);\n\n case 'decade':\n return getDecadeLabel(locale, formatYear, date);\n\n case 'year':\n return formatYear(locale, date);\n\n case 'month':\n return formatMonthYear(locale, date);\n\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n }();\n\n return navigationLabel ? navigationLabel({\n date: date,\n label: label,\n locale: locale || getUserLocale(),\n view: view\n }) : label;\n }\n\n function renderButton() {\n var labelClassName = \"\".concat(className, \"__label\");\n return /*#__PURE__*/React.createElement(\"button\", {\n \"aria-label\": navigationAriaLabel,\n \"aria-live\": navigationAriaLive,\n className: labelClassName,\n disabled: !drillUpAvailable,\n onClick: drillUp,\n style: {\n flexGrow: 1\n },\n type: \"button\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(labelClassName, \"__labelText \").concat(labelClassName, \"__labelText--from\")\n }, renderLabel(activeStartDate)), showDoubleView && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(labelClassName, \"__divider\")\n }, \" \\u2013 \"), /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(labelClassName, \"__labelText \").concat(labelClassName, \"__labelText--to\")\n }, renderLabel(nextActiveStartDate))));\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, prev2Label !== null && shouldShowPrevNext2Buttons && /*#__PURE__*/React.createElement(\"button\", {\n \"aria-label\": prev2AriaLabel,\n className: \"\".concat(className, \"__arrow \").concat(className, \"__prev2-button\"),\n disabled: prev2ButtonDisabled,\n onClick: onClickPrevious2,\n type: \"button\"\n }, prev2Label), prevLabel !== null && /*#__PURE__*/React.createElement(\"button\", {\n \"aria-label\": prevAriaLabel,\n className: \"\".concat(className, \"__arrow \").concat(className, \"__prev-button\"),\n disabled: prevButtonDisabled,\n onClick: onClickPrevious,\n type: \"button\"\n }, prevLabel), renderButton(), nextLabel !== null && /*#__PURE__*/React.createElement(\"button\", {\n \"aria-label\": nextAriaLabel,\n className: \"\".concat(className, \"__arrow \").concat(className, \"__next-button\"),\n disabled: nextButtonDisabled,\n onClick: onClickNext,\n type: \"button\"\n }, nextLabel), next2Label !== null && shouldShowPrevNext2Buttons && /*#__PURE__*/React.createElement(\"button\", {\n \"aria-label\": next2AriaLabel,\n className: \"\".concat(className, \"__arrow \").concat(className, \"__next2-button\"),\n disabled: next2ButtonDisabled,\n onClick: onClickNext2,\n type: \"button\"\n }, next2Label));\n}\nNavigation.propTypes = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n drillUp: PropTypes.func.isRequired,\n formatMonthYear: PropTypes.func,\n formatYear: PropTypes.func,\n locale: PropTypes.string,\n maxDate: PropTypes.instanceOf(Date),\n minDate: PropTypes.instanceOf(Date),\n navigationAriaLabel: PropTypes.string,\n navigationAriaLive: PropTypes.string,\n navigationLabel: PropTypes.func,\n next2AriaLabel: PropTypes.string,\n next2Label: PropTypes.node,\n nextAriaLabel: PropTypes.string,\n nextLabel: PropTypes.node,\n prev2AriaLabel: PropTypes.string,\n prev2Label: PropTypes.node,\n prevAriaLabel: PropTypes.string,\n prevLabel: PropTypes.node,\n setActiveStartDate: PropTypes.func.isRequired,\n showDoubleView: PropTypes.bool,\n view: isView.isRequired,\n views: isViews.isRequired\n};","var _excluded = [\"children\", \"className\", \"direction\", \"count\", \"offset\", \"style\", \"wrap\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction toPercent(num) {\n return \"\".concat(num, \"%\");\n}\n\nexport default function Flex(_ref) {\n var children = _ref.children,\n className = _ref.className,\n direction = _ref.direction,\n count = _ref.count,\n offset = _ref.offset,\n style = _ref.style,\n wrap = _ref.wrap,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: className,\n style: _objectSpread({\n display: 'flex',\n flexDirection: direction,\n flexWrap: wrap ? 'wrap' : 'no-wrap'\n }, style)\n }, otherProps), React.Children.map(children, function (child, index) {\n return /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {\n style: {\n flexBasis: toPercent(100 / count),\n flexShrink: 0,\n flexGrow: 0,\n overflow: 'hidden',\n marginLeft: offset && index === 0 ? toPercent(100 * offset / count) : null\n }\n }));\n }));\n}\nFlex.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n count: PropTypes.number.isRequired,\n direction: PropTypes.string,\n offset: PropTypes.number,\n style: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n wrap: PropTypes.bool\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { getRange } from './dates';\n/**\n * Returns a value no smaller than min and no larger than max.\n *\n * @param {*} value Value to return.\n * @param {*} min Minimum return value.\n * @param {*} max Maximum return value.\n */\n\nexport function between(value, min, max) {\n if (min && min > value) {\n return min;\n }\n\n if (max && max < value) {\n return max;\n }\n\n return value;\n}\nexport function isValueWithinRange(value, range) {\n return range[0] <= value && range[1] >= value;\n}\nexport function isRangeWithinRange(greaterRange, smallerRange) {\n return greaterRange[0] <= smallerRange[0] && greaterRange[1] >= smallerRange[1];\n}\nexport function doRangesOverlap(range1, range2) {\n return isValueWithinRange(range1[0], range2) || isValueWithinRange(range1[1], range2);\n}\n\nfunction getRangeClassNames(valueRange, dateRange, baseClassName) {\n var isRange = doRangesOverlap(dateRange, valueRange);\n var classes = [];\n\n if (isRange) {\n classes.push(baseClassName);\n var isRangeStart = isValueWithinRange(valueRange[0], dateRange);\n var isRangeEnd = isValueWithinRange(valueRange[1], dateRange);\n\n if (isRangeStart) {\n classes.push(\"\".concat(baseClassName, \"Start\"));\n }\n\n if (isRangeEnd) {\n classes.push(\"\".concat(baseClassName, \"End\"));\n }\n\n if (isRangeStart && isRangeEnd) {\n classes.push(\"\".concat(baseClassName, \"BothEnds\"));\n }\n }\n\n return classes;\n}\n\nexport function getTileClasses() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n value = _ref.value,\n valueType = _ref.valueType,\n date = _ref.date,\n dateType = _ref.dateType,\n hover = _ref.hover;\n\n var className = 'react-calendar__tile';\n var classes = [className];\n\n if (!date) {\n return classes;\n }\n\n if (!Array.isArray(date) && !dateType) {\n throw new Error('getTileClasses(): Unable to get tile activity classes because one or more required arguments were not passed.');\n }\n\n var now = new Date();\n var dateRange = Array.isArray(date) ? date : getRange(dateType, date);\n\n if (isValueWithinRange(now, dateRange)) {\n classes.push(\"\".concat(className, \"--now\"));\n }\n\n if (!value) {\n return classes;\n }\n\n if (!Array.isArray(value) && !valueType) {\n throw new Error('getTileClasses(): Unable to get tile activity classes because one or more required arguments were not passed.');\n }\n\n var valueRange = Array.isArray(value) ? value : getRange(valueType, value);\n\n if (isRangeWithinRange(valueRange, dateRange)) {\n classes.push(\"\".concat(className, \"--active\"));\n } else if (doRangesOverlap(valueRange, dateRange)) {\n classes.push(\"\".concat(className, \"--hasActive\"));\n }\n\n var valueRangeClassNames = getRangeClassNames(valueRange, dateRange, \"\".concat(className, \"--range\"));\n classes.push.apply(classes, _toConsumableArray(valueRangeClassNames));\n var valueArray = [].concat(value);\n\n if (hover && valueArray.length === 1) {\n var hoverRange = hover > valueRange[0] ? [valueRange[0], hover] : [hover, valueRange[0]];\n var hoverRangeClassNames = getRangeClassNames(hoverRange, dateRange, \"\".concat(className, \"--hover\"));\n classes.push.apply(classes, _toConsumableArray(hoverRangeClassNames));\n }\n\n return classes;\n}","var _excluded = [\"className\", \"count\", \"dateTransform\", \"dateType\", \"end\", \"hover\", \"offset\", \"start\", \"step\", \"tile\", \"value\", \"valueType\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Flex from './Flex';\nimport { getTileClasses } from './shared/utils';\nimport { tileGroupProps } from './shared/propTypes';\nexport default function TileGroup(_ref) {\n var className = _ref.className,\n _ref$count = _ref.count,\n count = _ref$count === void 0 ? 3 : _ref$count,\n dateTransform = _ref.dateTransform,\n dateType = _ref.dateType,\n end = _ref.end,\n hover = _ref.hover,\n offset = _ref.offset,\n start = _ref.start,\n _ref$step = _ref.step,\n step = _ref$step === void 0 ? 1 : _ref$step,\n Tile = _ref.tile,\n value = _ref.value,\n valueType = _ref.valueType,\n tileProps = _objectWithoutProperties(_ref, _excluded);\n\n var tiles = [];\n\n for (var point = start; point <= end; point += step) {\n var date = dateTransform(point);\n tiles.push( /*#__PURE__*/React.createElement(Tile, _extends({\n key: date.getTime(),\n classes: getTileClasses({\n value: value,\n valueType: valueType,\n date: date,\n dateType: dateType,\n hover: hover\n }),\n date: date,\n point: point\n }, tileProps)));\n }\n\n return /*#__PURE__*/React.createElement(Flex, {\n className: className,\n count: count,\n offset: offset,\n wrap: true\n }, tiles);\n}\nTileGroup.propTypes = _objectSpread(_objectSpread({}, tileGroupProps), {}, {\n activeStartDate: PropTypes.instanceOf(Date),\n count: PropTypes.number,\n dateTransform: PropTypes.func.isRequired,\n dateType: PropTypes.string,\n offset: PropTypes.number,\n step: PropTypes.number,\n tile: PropTypes.func.isRequired\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport mergeClassNames from 'merge-class-names';\nimport { tileProps } from './shared/propTypes';\n\nfunction datesAreDifferent(date1, date2) {\n return date1 && !date2 || !date1 && date2 || date1 && date2 && date1.getTime() !== date2.getTime();\n}\n\nfunction getValue(nextProps, prop) {\n var activeStartDate = nextProps.activeStartDate,\n date = nextProps.date,\n view = nextProps.view;\n return typeof prop === 'function' ? prop({\n activeStartDate: activeStartDate,\n date: date,\n view: view\n }) : prop;\n}\n\nvar Tile = /*#__PURE__*/function (_Component) {\n _inherits(Tile, _Component);\n\n var _super = _createSuper(Tile);\n\n function Tile() {\n var _this;\n\n _classCallCheck(this, Tile);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {});\n\n return _this;\n }\n\n _createClass(Tile, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n activeStartDate = _this$props.activeStartDate,\n children = _this$props.children,\n classes = _this$props.classes,\n date = _this$props.date,\n formatAbbr = _this$props.formatAbbr,\n locale = _this$props.locale,\n maxDate = _this$props.maxDate,\n maxDateTransform = _this$props.maxDateTransform,\n minDate = _this$props.minDate,\n minDateTransform = _this$props.minDateTransform,\n onClick = _this$props.onClick,\n onMouseOver = _this$props.onMouseOver,\n style = _this$props.style,\n tileDisabled = _this$props.tileDisabled,\n view = _this$props.view;\n var _this$state = this.state,\n tileClassName = _this$state.tileClassName,\n tileContent = _this$state.tileContent;\n return /*#__PURE__*/React.createElement(\"button\", {\n className: mergeClassNames(classes, tileClassName),\n disabled: minDate && minDateTransform(minDate) > date || maxDate && maxDateTransform(maxDate) < date || tileDisabled && tileDisabled({\n activeStartDate: activeStartDate,\n date: date,\n view: view\n }),\n onClick: onClick && function (event) {\n return onClick(date, event);\n },\n onFocus: onMouseOver && function () {\n return onMouseOver(date);\n },\n onMouseOver: onMouseOver && function () {\n return onMouseOver(date);\n },\n style: style,\n type: \"button\"\n }, formatAbbr ? /*#__PURE__*/React.createElement(\"abbr\", {\n \"aria-label\": formatAbbr(locale, date)\n }, children) : children, tileContent);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var activeStartDate = nextProps.activeStartDate,\n tileClassName = nextProps.tileClassName,\n tileContent = nextProps.tileContent;\n var nextState = {};\n\n if (tileClassName !== prevState.tileClassNameProps || datesAreDifferent(activeStartDate, prevState.activeStartDateProps)) {\n nextState.tileClassName = getValue(nextProps, tileClassName);\n nextState.tileClassNameProps = tileClassName;\n }\n\n if (tileContent !== prevState.tileContentProps || datesAreDifferent(activeStartDate, prevState.activeStartDateProps)) {\n nextState.tileContent = getValue(nextProps, tileContent);\n nextState.tileContentProps = tileContent;\n }\n\n nextState.activeStartDateProps = activeStartDate;\n return nextState;\n }\n }]);\n\n return Tile;\n}(Component);\n\nexport { Tile as default };\nTile.propTypes = _objectSpread(_objectSpread({}, tileProps), {}, {\n children: PropTypes.node.isRequired,\n formatAbbr: PropTypes.func,\n maxDateTransform: PropTypes.func.isRequired,\n minDateTransform: PropTypes.func.isRequired\n});","var _excluded = [\"classes\", \"formatYear\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getDecadeStart, getDecadeEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { getDecadeLabel } from '../shared/dates';\nimport { formatYear as defaultFormatYear } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__century-view__decades__decade';\nexport default function Decade(_ref) {\n var classes = _ref.classes,\n _ref$formatYear = _ref.formatYear,\n formatYear = _ref$formatYear === void 0 ? defaultFormatYear : _ref$formatYear,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var date = otherProps.date,\n locale = otherProps.locale;\n return /*#__PURE__*/React.createElement(Tile, _extends({}, otherProps, {\n classes: [].concat(classes, className),\n maxDateTransform: getDecadeEnd,\n minDateTransform: getDecadeStart,\n view: \"century\"\n }), getDecadeLabel(locale, formatYear, date));\n}\nDecade.propTypes = _objectSpread(_objectSpread({}, tileProps), {}, {\n formatYear: PropTypes.func\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport { getDecadeStart } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup';\nimport Decade from './Decade';\nimport { getBeginOfCenturyYear } from '../shared/dates';\nimport { tileGroupProps } from '../shared/propTypes';\nexport default function Decades(props) {\n var activeStartDate = props.activeStartDate;\n var start = getBeginOfCenturyYear(activeStartDate);\n var end = start + 99;\n return /*#__PURE__*/React.createElement(TileGroup, _extends({}, props, {\n className: \"react-calendar__century-view__decades\",\n dateTransform: getDecadeStart,\n dateType: \"decade\",\n end: end,\n start: start,\n step: 10,\n tile: Decade\n }));\n}\nDecades.propTypes = _objectSpread({}, tileGroupProps);","import React from 'react';\nimport Decades from './CenturyView/Decades';\nexport default function CenturyView(props) {\n function renderDecades() {\n return /*#__PURE__*/React.createElement(Decades, props);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-calendar__century-view\"\n }, renderDecades());\n}","var _excluded = [\"classes\", \"formatYear\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYearStart, getYearEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { formatYear as defaultFormatYear } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__decade-view__years__year';\nexport default function Year(_ref) {\n var classes = _ref.classes,\n _ref$formatYear = _ref.formatYear,\n formatYear = _ref$formatYear === void 0 ? defaultFormatYear : _ref$formatYear,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var date = otherProps.date,\n locale = otherProps.locale;\n return /*#__PURE__*/React.createElement(Tile, _extends({}, otherProps, {\n classes: [].concat(classes, className),\n maxDateTransform: getYearEnd,\n minDateTransform: getYearStart,\n view: \"decade\"\n }), formatYear(locale, date));\n}\nYear.propTypes = _objectSpread(_objectSpread({}, tileProps), {}, {\n formatYear: PropTypes.func\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport TileGroup from '../TileGroup';\nimport Year from './Year';\nimport { getBeginOfDecadeYear } from '../shared/dates';\nimport { tileGroupProps } from '../shared/propTypes';\nexport default function Years(props) {\n var activeStartDate = props.activeStartDate;\n var start = getBeginOfDecadeYear(activeStartDate);\n var end = start + 9;\n return /*#__PURE__*/React.createElement(TileGroup, _extends({}, props, {\n className: \"react-calendar__decade-view__years\",\n dateTransform: function dateTransform(year) {\n var date = new Date();\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n },\n dateType: \"year\",\n end: end,\n start: start,\n tile: Year\n }));\n}\nYears.propTypes = _objectSpread({}, tileGroupProps);","import React from 'react';\nimport Years from './DecadeView/Years';\nexport default function DecadeView(props) {\n function renderYears() {\n return /*#__PURE__*/React.createElement(Years, props);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-calendar__decade-view\"\n }, renderYears());\n}","var _excluded = [\"classes\", \"formatMonth\", \"formatMonthYear\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getMonthStart, getMonthEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { formatMonth as defaultFormatMonth, formatMonthYear as defaultFormatMonthYear } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__year-view__months__month';\nexport default function Month(_ref) {\n var classes = _ref.classes,\n _ref$formatMonth = _ref.formatMonth,\n formatMonth = _ref$formatMonth === void 0 ? defaultFormatMonth : _ref$formatMonth,\n _ref$formatMonthYear = _ref.formatMonthYear,\n formatMonthYear = _ref$formatMonthYear === void 0 ? defaultFormatMonthYear : _ref$formatMonthYear,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var date = otherProps.date,\n locale = otherProps.locale;\n return /*#__PURE__*/React.createElement(Tile, _extends({}, otherProps, {\n classes: [].concat(classes, className),\n formatAbbr: formatMonthYear,\n maxDateTransform: getMonthEnd,\n minDateTransform: getMonthStart,\n view: \"year\"\n }), formatMonth(locale, date));\n}\nMonth.propTypes = _objectSpread(_objectSpread({}, tileProps), {}, {\n formatMonth: PropTypes.func,\n formatMonthYear: PropTypes.func\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYear } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup';\nimport Month from './Month';\nimport { tileGroupProps } from '../shared/propTypes';\nexport default function Months(props) {\n var activeStartDate = props.activeStartDate;\n var start = 0;\n var end = 11;\n var year = getYear(activeStartDate);\n return /*#__PURE__*/React.createElement(TileGroup, _extends({}, props, {\n className: \"react-calendar__year-view__months\",\n dateTransform: function dateTransform(monthIndex) {\n var date = new Date();\n date.setFullYear(year, monthIndex, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n },\n dateType: \"month\",\n end: end,\n start: start,\n tile: Month\n }));\n}\nMonths.propTypes = _objectSpread(_objectSpread({}, tileGroupProps), {}, {\n locale: PropTypes.string\n});","import React from 'react';\nimport Months from './YearView/Months';\nexport default function YearView(props) {\n function renderMonths() {\n return /*#__PURE__*/React.createElement(Months, props);\n }\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"react-calendar__year-view\"\n }, renderMonths());\n}","var _excluded = [\"formatDay\", \"formatLongDate\", \"calendarType\", \"classes\", \"currentMonthIndex\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getDayStart, getDayEnd } from '@wojtekmaj/date-utils';\nimport Tile from '../Tile';\nimport { isWeekend } from '../shared/dates';\nimport { formatDay as defaultFormatDay, formatLongDate as defaultFormatLongDate } from '../shared/dateFormatter';\nimport { tileProps } from '../shared/propTypes';\nvar className = 'react-calendar__month-view__days__day';\nexport default function Day(_ref) {\n var _ref$formatDay = _ref.formatDay,\n formatDay = _ref$formatDay === void 0 ? defaultFormatDay : _ref$formatDay,\n _ref$formatLongDate = _ref.formatLongDate,\n formatLongDate = _ref$formatLongDate === void 0 ? defaultFormatLongDate : _ref$formatLongDate,\n calendarType = _ref.calendarType,\n classes = _ref.classes,\n currentMonthIndex = _ref.currentMonthIndex,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var date = otherProps.date,\n locale = otherProps.locale;\n return /*#__PURE__*/React.createElement(Tile, _extends({}, otherProps, {\n classes: [].concat(classes, className, isWeekend(date, calendarType) ? \"\".concat(className, \"--weekend\") : null, date.getMonth() !== currentMonthIndex ? \"\".concat(className, \"--neighboringMonth\") : null),\n formatAbbr: formatLongDate,\n maxDateTransform: getDayEnd,\n minDateTransform: getDayStart,\n view: \"month\"\n }), formatDay(locale, date));\n}\nDay.propTypes = _objectSpread(_objectSpread({}, tileProps), {}, {\n currentMonthIndex: PropTypes.number.isRequired,\n formatDay: PropTypes.func,\n formatLongDate: PropTypes.func\n});","var _excluded = [\"showFixedNumberOfWeeks\", \"showNeighboringMonth\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYear, getMonth, getDaysInMonth } from '@wojtekmaj/date-utils';\nimport TileGroup from '../TileGroup';\nimport Day from './Day';\nimport { getDayOfWeek } from '../shared/dates';\nimport { isCalendarType, tileGroupProps } from '../shared/propTypes';\nexport default function Days(props) {\n var activeStartDate = props.activeStartDate,\n calendarType = props.calendarType;\n\n var showFixedNumberOfWeeks = props.showFixedNumberOfWeeks,\n showNeighboringMonth = props.showNeighboringMonth,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var year = getYear(activeStartDate);\n var monthIndex = getMonth(activeStartDate);\n var hasFixedNumberOfWeeks = showFixedNumberOfWeeks || showNeighboringMonth;\n var dayOfWeek = getDayOfWeek(activeStartDate, calendarType);\n var offset = hasFixedNumberOfWeeks ? 0 : dayOfWeek;\n /**\n * Defines on which day of the month the grid shall start. If we simply show current\n * month, we obviously start on day one, but if showNeighboringMonth is set to\n * true, we need to find the beginning of the week the first day of the month is in.\n */\n\n var start = (hasFixedNumberOfWeeks ? -dayOfWeek : 0) + 1;\n /**\n * Defines on which day of the month the grid shall end. If we simply show current\n * month, we need to stop on the last day of the month, but if showNeighboringMonth\n * is set to true, we need to find the end of the week the last day of the month is in.\n */\n\n var end = function () {\n if (showFixedNumberOfWeeks) {\n // Always show 6 weeks\n return start + 6 * 7 - 1;\n }\n\n var daysInMonth = getDaysInMonth(activeStartDate);\n\n if (showNeighboringMonth) {\n var activeEndDate = new Date();\n activeEndDate.setFullYear(year, monthIndex, daysInMonth);\n activeEndDate.setHours(0, 0, 0, 0);\n var daysUntilEndOfTheWeek = 7 - getDayOfWeek(activeEndDate, calendarType) - 1;\n return daysInMonth + daysUntilEndOfTheWeek;\n }\n\n return daysInMonth;\n }();\n\n return /*#__PURE__*/React.createElement(TileGroup, _extends({}, otherProps, {\n className: \"react-calendar__month-view__days\",\n count: 7,\n currentMonthIndex: monthIndex,\n dateTransform: function dateTransform(day) {\n var date = new Date();\n date.setFullYear(year, monthIndex, day);\n date.setHours(0, 0, 0, 0);\n return date;\n },\n dateType: \"day\",\n end: end,\n offset: offset,\n start: start,\n tile: Day\n }));\n}\nDays.propTypes = _objectSpread({\n calendarType: isCalendarType.isRequired,\n showFixedNumberOfWeeks: PropTypes.bool,\n showNeighboringMonth: PropTypes.bool\n}, tileGroupProps);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport mergeClassNames from 'merge-class-names';\nimport { getYear, getMonth, getMonthStart } from '@wojtekmaj/date-utils';\nimport Flex from '../Flex';\nimport { getDayOfWeek, isWeekend } from '../shared/dates';\nimport { formatShortWeekday as defaultFormatShortWeekday, formatWeekday as defaultFormatWeekday } from '../shared/dateFormatter';\nimport { isCalendarType } from '../shared/propTypes';\nvar className = 'react-calendar__month-view__weekdays';\nvar weekdayClassName = \"\".concat(className, \"__weekday\");\nexport default function Weekdays(props) {\n var calendarType = props.calendarType,\n _props$formatShortWee = props.formatShortWeekday,\n formatShortWeekday = _props$formatShortWee === void 0 ? defaultFormatShortWeekday : _props$formatShortWee,\n _props$formatWeekday = props.formatWeekday,\n formatWeekday = _props$formatWeekday === void 0 ? defaultFormatWeekday : _props$formatWeekday,\n locale = props.locale,\n onMouseLeave = props.onMouseLeave;\n var anyDate = new Date();\n var beginOfMonth = getMonthStart(anyDate);\n var year = getYear(beginOfMonth);\n var monthIndex = getMonth(beginOfMonth);\n var weekdays = [];\n\n for (var weekday = 1; weekday <= 7; weekday += 1) {\n var weekdayDate = new Date(year, monthIndex, weekday - getDayOfWeek(beginOfMonth, calendarType));\n var abbr = formatWeekday(locale, weekdayDate);\n weekdays.push( /*#__PURE__*/React.createElement(\"div\", {\n key: weekday,\n className: mergeClassNames(weekdayClassName, isWeekend(weekdayDate, calendarType) && \"\".concat(weekdayClassName, \"--weekend\"))\n }, /*#__PURE__*/React.createElement(\"abbr\", {\n \"aria-label\": abbr,\n title: abbr\n }, formatShortWeekday(locale, weekdayDate).replace('.', ''))));\n }\n\n return /*#__PURE__*/React.createElement(Flex, {\n className: className,\n count: 7,\n onFocus: onMouseLeave,\n onMouseOver: onMouseLeave\n }, weekdays);\n}\nWeekdays.propTypes = {\n calendarType: isCalendarType.isRequired,\n formatShortWeekday: PropTypes.func,\n formatWeekday: PropTypes.func,\n locale: PropTypes.string,\n onMouseLeave: PropTypes.func\n};","var _excluded = [\"date\", \"onClickWeekNumber\", \"weekNumber\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nvar className = 'react-calendar__tile';\nexport default function WeekNumber(_ref) {\n var date = _ref.date,\n onClickWeekNumber = _ref.onClickWeekNumber,\n weekNumber = _ref.weekNumber,\n otherProps = _objectWithoutProperties(_ref, _excluded);\n\n var props = _objectSpread({\n className: className\n }, otherProps);\n\n var children = /*#__PURE__*/React.createElement(\"span\", null, weekNumber);\n return onClickWeekNumber ? /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n onClick: function onClick(event) {\n return onClickWeekNumber(weekNumber, date, event);\n },\n type: \"button\"\n }), children) : /*#__PURE__*/React.createElement(\"div\", props, children);\n}\nWeekNumber.propTypes = {\n date: PropTypes.instanceOf(Date).isRequired,\n onClickWeekNumber: PropTypes.func,\n weekNumber: PropTypes.node.isRequired\n};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { getYear, getMonth, getDate, getDaysInMonth } from '@wojtekmaj/date-utils';\nimport WeekNumber from './WeekNumber';\nimport Flex from '../Flex';\nimport { getBeginOfWeek, getDayOfWeek, getWeekNumber } from '../shared/dates';\nimport { isCalendarType } from '../shared/propTypes';\nexport default function WeekNumbers(props) {\n var activeStartDate = props.activeStartDate,\n calendarType = props.calendarType,\n onClickWeekNumber = props.onClickWeekNumber,\n onMouseLeave = props.onMouseLeave,\n showFixedNumberOfWeeks = props.showFixedNumberOfWeeks;\n\n var numberOfWeeks = function () {\n if (showFixedNumberOfWeeks) {\n return 6;\n }\n\n var numberOfDays = getDaysInMonth(activeStartDate);\n var startWeekday = getDayOfWeek(activeStartDate, calendarType);\n var days = numberOfDays - (7 - startWeekday);\n return 1 + Math.ceil(days / 7);\n }();\n\n var dates = function () {\n var year = getYear(activeStartDate);\n var monthIndex = getMonth(activeStartDate);\n var day = getDate(activeStartDate);\n var result = [];\n\n for (var index = 0; index < numberOfWeeks; index += 1) {\n result.push(getBeginOfWeek(new Date(year, monthIndex, day + index * 7), calendarType));\n }\n\n return result;\n }();\n\n var weekNumbers = dates.map(function (date) {\n return getWeekNumber(date, calendarType);\n });\n return /*#__PURE__*/React.createElement(Flex, {\n className: \"react-calendar__month-view__weekNumbers\",\n count: numberOfWeeks,\n direction: \"column\",\n onFocus: onMouseLeave,\n onMouseOver: onMouseLeave,\n style: {\n flexBasis: 'calc(100% * (1 / 8)',\n flexShrink: 0\n }\n }, weekNumbers.map(function (weekNumber, weekIndex) {\n return /*#__PURE__*/React.createElement(WeekNumber, {\n key: weekNumber,\n date: dates[weekIndex],\n onClickWeekNumber: onClickWeekNumber,\n weekNumber: weekNumber\n });\n }));\n}\nWeekNumbers.propTypes = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n calendarType: isCalendarType.isRequired,\n onClickWeekNumber: PropTypes.func,\n onMouseLeave: PropTypes.func,\n showFixedNumberOfWeeks: PropTypes.bool\n};","var _excluded = [\"calendarType\", \"formatShortWeekday\", \"formatWeekday\", \"onClickWeekNumber\", \"showWeekNumbers\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport mergeClassNames from 'merge-class-names';\nimport Days from './MonthView/Days';\nimport Weekdays from './MonthView/Weekdays';\nimport WeekNumbers from './MonthView/WeekNumbers';\nimport { CALENDAR_TYPES, CALENDAR_TYPE_LOCALES } from './shared/const';\nimport { isCalendarType } from './shared/propTypes';\n\nfunction getCalendarTypeFromLocale(locale) {\n return Object.keys(CALENDAR_TYPE_LOCALES).find(function (calendarType) {\n return CALENDAR_TYPE_LOCALES[calendarType].includes(locale);\n }) || CALENDAR_TYPES.ISO_8601;\n}\n\nexport default function MonthView(props) {\n var activeStartDate = props.activeStartDate,\n locale = props.locale,\n onMouseLeave = props.onMouseLeave,\n showFixedNumberOfWeeks = props.showFixedNumberOfWeeks;\n\n var _props$calendarType = props.calendarType,\n calendarType = _props$calendarType === void 0 ? getCalendarTypeFromLocale(locale) : _props$calendarType,\n formatShortWeekday = props.formatShortWeekday,\n formatWeekday = props.formatWeekday,\n onClickWeekNumber = props.onClickWeekNumber,\n showWeekNumbers = props.showWeekNumbers,\n childProps = _objectWithoutProperties(props, _excluded);\n\n function renderWeekdays() {\n return /*#__PURE__*/React.createElement(Weekdays, {\n calendarType: calendarType,\n formatShortWeekday: formatShortWeekday,\n formatWeekday: formatWeekday,\n locale: locale,\n onMouseLeave: onMouseLeave\n });\n }\n\n function renderWeekNumbers() {\n if (!showWeekNumbers) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(WeekNumbers, {\n activeStartDate: activeStartDate,\n calendarType: calendarType,\n onClickWeekNumber: onClickWeekNumber,\n onMouseLeave: onMouseLeave,\n showFixedNumberOfWeeks: showFixedNumberOfWeeks\n });\n }\n\n function renderDays() {\n return /*#__PURE__*/React.createElement(Days, _extends({\n calendarType: calendarType\n }, childProps));\n }\n\n var className = 'react-calendar__month-view';\n return /*#__PURE__*/React.createElement(\"div\", {\n className: mergeClassNames(className, showWeekNumbers ? \"\".concat(className, \"--weekNumbers\") : '')\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n display: 'flex',\n alignItems: 'flex-end'\n }\n }, renderWeekNumbers(), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n flexGrow: 1,\n width: '100%'\n }\n }, renderWeekdays(), renderDays())));\n}\nMonthView.propTypes = {\n activeStartDate: PropTypes.instanceOf(Date).isRequired,\n calendarType: isCalendarType,\n formatShortWeekday: PropTypes.func,\n formatWeekday: PropTypes.func,\n locale: PropTypes.string,\n onClickWeekNumber: PropTypes.func,\n onMouseLeave: PropTypes.func,\n showFixedNumberOfWeeks: PropTypes.bool,\n showWeekNumbers: PropTypes.bool\n};","var _excluded = [\"activeStartDate\", \"defaultActiveStartDate\", \"defaultValue\", \"defaultView\", \"maxDetail\", \"minDetail\", \"value\", \"view\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport mergeClassNames from 'merge-class-names';\nimport Navigation from './Calendar/Navigation';\nimport CenturyView from './CenturyView';\nimport DecadeView from './DecadeView';\nimport YearView from './YearView';\nimport MonthView from './MonthView';\nimport { getBegin, getBeginNext, getEnd, getValueRange } from './shared/dates';\nimport { isCalendarType, isClassName, isMaxDate, isMinDate, isRef, isValue, isView } from './shared/propTypes';\nimport { between } from './shared/utils';\nvar defaultMinDate = new Date();\ndefaultMinDate.setFullYear(1, 0, 1);\ndefaultMinDate.setHours(0, 0, 0, 0);\nvar defaultMaxDate = new Date(8.64e15);\nvar baseClassName = 'react-calendar';\nvar allViews = ['century', 'decade', 'year', 'month'];\nvar allValueTypes = [].concat(_toConsumableArray(allViews.slice(1)), ['day']);\n\nfunction toDate(value) {\n if (value instanceof Date) {\n return value;\n }\n\n return new Date(value);\n}\n/**\n * Returns views array with disallowed values cut off.\n */\n\n\nfunction getLimitedViews(minDetail, maxDetail) {\n return allViews.slice(allViews.indexOf(minDetail), allViews.indexOf(maxDetail) + 1);\n}\n/**\n * Determines whether a given view is allowed with currently applied settings.\n */\n\n\nfunction isViewAllowed(view, minDetail, maxDetail) {\n var views = getLimitedViews(minDetail, maxDetail);\n return views.indexOf(view) !== -1;\n}\n/**\n * Gets either provided view if allowed by minDetail and maxDetail, or gets\n * the default view if not allowed.\n */\n\n\nfunction getView(view, minDetail, maxDetail) {\n if (isViewAllowed(view, minDetail, maxDetail)) {\n return view;\n }\n\n return maxDetail;\n}\n/**\n * Returns value type that can be returned with currently applied settings.\n */\n\n\nfunction getValueType(maxDetail) {\n return allValueTypes[allViews.indexOf(maxDetail)];\n}\n\nfunction getValue(value, index) {\n if (!value) {\n return null;\n }\n\n var rawValue = Array.isArray(value) && value.length === 2 ? value[index] : value;\n\n if (!rawValue) {\n return null;\n }\n\n var valueDate = toDate(rawValue);\n\n if (isNaN(valueDate.getTime())) {\n throw new Error(\"Invalid date: \".concat(value));\n }\n\n return valueDate;\n}\n\nfunction getDetailValue(_ref, index) {\n var value = _ref.value,\n minDate = _ref.minDate,\n maxDate = _ref.maxDate,\n maxDetail = _ref.maxDetail;\n var valuePiece = getValue(value, index);\n\n if (!valuePiece) {\n return null;\n }\n\n var valueType = getValueType(maxDetail);\n var detailValueFrom = [getBegin, getEnd][index](valueType, valuePiece);\n return between(detailValueFrom, minDate, maxDate);\n}\n\nvar getDetailValueFrom = function getDetailValueFrom(args) {\n return getDetailValue(args, 0);\n};\n\nvar getDetailValueTo = function getDetailValueTo(args) {\n return getDetailValue(args, 1);\n};\n\nvar getDetailValueArray = function getDetailValueArray(args) {\n var value = args.value;\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return [getDetailValueFrom, getDetailValueTo].map(function (fn) {\n return fn(args);\n });\n};\n\nfunction getActiveStartDate(props) {\n var maxDate = props.maxDate,\n maxDetail = props.maxDetail,\n minDate = props.minDate,\n minDetail = props.minDetail,\n value = props.value,\n view = props.view;\n var rangeType = getView(view, minDetail, maxDetail);\n var valueFrom = getDetailValueFrom({\n value: value,\n minDate: minDate,\n maxDate: maxDate,\n maxDetail: maxDetail\n }) || new Date();\n return getBegin(rangeType, valueFrom);\n}\n\nfunction getInitialActiveStartDate(props) {\n var activeStartDate = props.activeStartDate,\n defaultActiveStartDate = props.defaultActiveStartDate,\n defaultValue = props.defaultValue,\n defaultView = props.defaultView,\n maxDetail = props.maxDetail,\n minDetail = props.minDetail,\n value = props.value,\n view = props.view,\n otherProps = _objectWithoutProperties(props, _excluded);\n\n var rangeType = getView(view, minDetail, maxDetail);\n var valueFrom = activeStartDate || defaultActiveStartDate;\n\n if (valueFrom) {\n return getBegin(rangeType, valueFrom);\n }\n\n return getActiveStartDate(_objectSpread({\n maxDetail: maxDetail,\n minDetail: minDetail,\n value: value || defaultValue,\n view: view || defaultView\n }, otherProps));\n}\n\nvar getIsSingleValue = function getIsSingleValue(value) {\n return value && [].concat(value).length === 1;\n};\n\nvar Calendar = /*#__PURE__*/function (_Component) {\n _inherits(Calendar, _Component);\n\n var _super = _createSuper(Calendar);\n\n function Calendar() {\n var _this;\n\n _classCallCheck(this, Calendar);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n activeStartDate: _this.props.defaultActiveStartDate,\n value: _this.props.defaultValue,\n view: _this.props.defaultView\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setStateAndCallCallbacks\", function (nextState, event, callback) {\n var _assertThisInitialize = _assertThisInitialized(_this),\n previousActiveStartDate = _assertThisInitialize.activeStartDate,\n previousView = _assertThisInitialize.view;\n\n var _this$props = _this.props,\n allowPartialRange = _this$props.allowPartialRange,\n onActiveStartDateChange = _this$props.onActiveStartDateChange,\n onChange = _this$props.onChange,\n onViewChange = _this$props.onViewChange,\n selectRange = _this$props.selectRange;\n var prevArgs = {\n activeStartDate: previousActiveStartDate,\n view: previousView\n };\n\n _this.setState(nextState, function () {\n var args = {\n action: nextState.action,\n activeStartDate: nextState.activeStartDate || _this.activeStartDate,\n value: nextState.value || _this.value,\n view: nextState.view || _this.view\n };\n\n function shouldUpdate(key) {\n return (// Key must exist, and…\n key in nextState && ( // …key changed from undefined to defined or the other way around, or…\n _typeof(nextState[key]) !== _typeof(prevArgs[key]) || ( // …value changed.\n nextState[key] instanceof Date ? nextState[key].getTime() !== prevArgs[key].getTime() : nextState[key] !== prevArgs[key]))\n );\n }\n\n if (shouldUpdate('activeStartDate')) {\n if (onActiveStartDateChange) onActiveStartDateChange(args);\n }\n\n if (shouldUpdate('view')) {\n if (onViewChange) onViewChange(args);\n }\n\n if (shouldUpdate('value')) {\n if (onChange) {\n if (selectRange) {\n var isSingleValue = getIsSingleValue(nextState.value);\n\n if (!isSingleValue) {\n onChange(nextState.value, event);\n } else if (allowPartialRange) {\n onChange([nextState.value], event);\n }\n } else {\n onChange(nextState.value, event);\n }\n }\n }\n\n if (callback) callback(args);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"setActiveStartDate\", function (nextActiveStartDate, action) {\n _this.setStateAndCallCallbacks({\n action: action,\n activeStartDate: nextActiveStartDate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drillDown\", function (nextActiveStartDate, event) {\n if (!_this.drillDownAvailable) {\n return;\n }\n\n _this.onClickTile(nextActiveStartDate, event);\n\n var _assertThisInitialize2 = _assertThisInitialized(_this),\n view = _assertThisInitialize2.view,\n views = _assertThisInitialize2.views;\n\n var onDrillDown = _this.props.onDrillDown;\n var nextView = views[views.indexOf(view) + 1];\n\n _this.setStateAndCallCallbacks({\n action: 'drillDown',\n activeStartDate: nextActiveStartDate,\n view: nextView\n }, undefined, onDrillDown);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"drillUp\", function () {\n if (!_this.drillUpAvailable) {\n return;\n }\n\n var _assertThisInitialize3 = _assertThisInitialized(_this),\n activeStartDate = _assertThisInitialize3.activeStartDate,\n view = _assertThisInitialize3.view,\n views = _assertThisInitialize3.views;\n\n var onDrillUp = _this.props.onDrillUp;\n var nextView = views[views.indexOf(view) - 1];\n var nextActiveStartDate = getBegin(nextView, activeStartDate);\n\n _this.setStateAndCallCallbacks({\n action: 'drillUp',\n activeStartDate: nextActiveStartDate,\n view: nextView\n }, undefined, onDrillUp);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (value, event) {\n var _assertThisInitialize4 = _assertThisInitialized(_this),\n previousValue = _assertThisInitialize4.value;\n\n var _this$props2 = _this.props,\n goToRangeStartOnSelect = _this$props2.goToRangeStartOnSelect,\n selectRange = _this$props2.selectRange;\n\n _this.onClickTile(value, event);\n\n var isFirstValueInRange = selectRange && !getIsSingleValue(previousValue);\n var nextValue;\n\n if (selectRange) {\n // Range selection turned on\n var _assertThisInitialize5 = _assertThisInitialized(_this),\n valueType = _assertThisInitialize5.valueType;\n\n if (isFirstValueInRange) {\n // Value has 0 or 2 elements - either way we're starting a new array\n // First value\n nextValue = getBegin(valueType, value);\n } else {\n // Second value\n nextValue = getValueRange(valueType, previousValue, value);\n }\n } else {\n // Range selection turned off\n nextValue = _this.getProcessedValue(value);\n }\n\n var nextActiveStartDate = // Range selection turned off\n !selectRange || // Range selection turned on, first value\n isFirstValueInRange || // Range selection turned on, second value, goToRangeStartOnSelect toggled on\n goToRangeStartOnSelect ? getActiveStartDate(_objectSpread(_objectSpread({}, _this.props), {}, {\n value: nextValue\n })) : null;\n event.persist();\n\n _this.setStateAndCallCallbacks({\n action: 'onChange',\n activeStartDate: nextActiveStartDate,\n value: nextValue\n }, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClickTile\", function (value, event) {\n var _assertThisInitialize6 = _assertThisInitialized(_this),\n view = _assertThisInitialize6.view;\n\n var _this$props3 = _this.props,\n onClickDay = _this$props3.onClickDay,\n onClickDecade = _this$props3.onClickDecade,\n onClickMonth = _this$props3.onClickMonth,\n onClickYear = _this$props3.onClickYear;\n\n var callback = function () {\n switch (view) {\n case 'century':\n return onClickDecade;\n\n case 'decade':\n return onClickYear;\n\n case 'year':\n return onClickMonth;\n\n case 'month':\n return onClickDay;\n\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n }();\n\n if (callback) callback(value, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseOver\", function (value) {\n _this.setState(function (prevState) {\n if (prevState.hover && prevState.hover.getTime() === value.getTime()) {\n return null;\n }\n\n return {\n hover: value\n };\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function () {\n _this.setState({\n hover: null\n });\n });\n\n return _this;\n }\n\n _createClass(Calendar, [{\n key: \"activeStartDate\",\n get: function get() {\n var activeStartDateProps = this.props.activeStartDate;\n var activeStartDateState = this.state.activeStartDate;\n return activeStartDateProps || activeStartDateState || getInitialActiveStartDate(this.props);\n }\n }, {\n key: \"value\",\n get: function get() {\n var _this$props4 = this.props,\n selectRange = _this$props4.selectRange,\n valueProps = _this$props4.value;\n var valueState = this.state.value; // In the middle of range selection, use value from state\n\n if (selectRange && getIsSingleValue(valueState)) {\n return valueState;\n }\n\n return valueProps !== undefined ? valueProps : valueState;\n }\n }, {\n key: \"valueType\",\n get: function get() {\n var maxDetail = this.props.maxDetail;\n return getValueType(maxDetail);\n }\n }, {\n key: \"view\",\n get: function get() {\n var _this$props5 = this.props,\n minDetail = _this$props5.minDetail,\n maxDetail = _this$props5.maxDetail,\n viewProps = _this$props5.view;\n var viewState = this.state.view;\n return getView(viewProps || viewState, minDetail, maxDetail);\n }\n }, {\n key: \"views\",\n get: function get() {\n var _this$props6 = this.props,\n minDetail = _this$props6.minDetail,\n maxDetail = _this$props6.maxDetail;\n return getLimitedViews(minDetail, maxDetail);\n }\n }, {\n key: \"hover\",\n get: function get() {\n var selectRange = this.props.selectRange;\n var hover = this.state.hover;\n return selectRange ? hover : null;\n }\n }, {\n key: \"drillDownAvailable\",\n get: function get() {\n var view = this.view,\n views = this.views;\n return views.indexOf(view) < views.length - 1;\n }\n }, {\n key: \"drillUpAvailable\",\n get: function get() {\n var view = this.view,\n views = this.views;\n return views.indexOf(view) > 0;\n }\n /**\n * Gets current value in a desired format.\n */\n\n }, {\n key: \"getProcessedValue\",\n value: function getProcessedValue(value) {\n var _this$props7 = this.props,\n minDate = _this$props7.minDate,\n maxDate = _this$props7.maxDate,\n maxDetail = _this$props7.maxDetail,\n returnValue = _this$props7.returnValue;\n\n var processFunction = function () {\n switch (returnValue) {\n case 'start':\n return getDetailValueFrom;\n\n case 'end':\n return getDetailValueTo;\n\n case 'range':\n return getDetailValueArray;\n\n default:\n throw new Error('Invalid returnValue.');\n }\n }();\n\n return processFunction({\n value: value,\n minDate: minDate,\n maxDate: maxDate,\n maxDetail: maxDetail\n });\n }\n }, {\n key: \"renderContent\",\n value: function renderContent(next) {\n var currentActiveStartDate = this.activeStartDate,\n onMouseOver = this.onMouseOver,\n valueType = this.valueType,\n value = this.value,\n view = this.view;\n var _this$props8 = this.props,\n calendarType = _this$props8.calendarType,\n locale = _this$props8.locale,\n maxDate = _this$props8.maxDate,\n minDate = _this$props8.minDate,\n selectRange = _this$props8.selectRange,\n tileClassName = _this$props8.tileClassName,\n tileContent = _this$props8.tileContent,\n tileDisabled = _this$props8.tileDisabled;\n var hover = this.hover;\n var activeStartDate = next ? getBeginNext(view, currentActiveStartDate) : getBegin(view, currentActiveStartDate);\n var onClick = this.drillDownAvailable ? this.drillDown : this.onChange;\n var commonProps = {\n activeStartDate: activeStartDate,\n hover: hover,\n locale: locale,\n maxDate: maxDate,\n minDate: minDate,\n onClick: onClick,\n onMouseOver: selectRange ? onMouseOver : null,\n tileClassName: tileClassName,\n tileContent: tileContent,\n tileDisabled: tileDisabled,\n value: value,\n valueType: valueType\n };\n\n switch (view) {\n case 'century':\n {\n var formatYear = this.props.formatYear;\n return /*#__PURE__*/React.createElement(CenturyView, _extends({\n formatYear: formatYear\n }, commonProps));\n }\n\n case 'decade':\n {\n var _formatYear = this.props.formatYear;\n return /*#__PURE__*/React.createElement(DecadeView, _extends({\n formatYear: _formatYear\n }, commonProps));\n }\n\n case 'year':\n {\n var _this$props9 = this.props,\n formatMonth = _this$props9.formatMonth,\n formatMonthYear = _this$props9.formatMonthYear;\n return /*#__PURE__*/React.createElement(YearView, _extends({\n formatMonth: formatMonth,\n formatMonthYear: formatMonthYear\n }, commonProps));\n }\n\n case 'month':\n {\n var _this$props10 = this.props,\n formatDay = _this$props10.formatDay,\n formatLongDate = _this$props10.formatLongDate,\n formatShortWeekday = _this$props10.formatShortWeekday,\n formatWeekday = _this$props10.formatWeekday,\n onClickWeekNumber = _this$props10.onClickWeekNumber,\n showDoubleView = _this$props10.showDoubleView,\n showFixedNumberOfWeeks = _this$props10.showFixedNumberOfWeeks,\n showNeighboringMonth = _this$props10.showNeighboringMonth,\n showWeekNumbers = _this$props10.showWeekNumbers;\n var onMouseLeave = this.onMouseLeave;\n return /*#__PURE__*/React.createElement(MonthView, _extends({\n calendarType: calendarType,\n formatDay: formatDay,\n formatLongDate: formatLongDate,\n formatShortWeekday: formatShortWeekday,\n formatWeekday: formatWeekday,\n onClickWeekNumber: onClickWeekNumber,\n onMouseLeave: selectRange ? onMouseLeave : null,\n showFixedNumberOfWeeks: typeof showFixedNumberOfWeeks !== 'undefined' ? showFixedNumberOfWeeks : showDoubleView,\n showNeighboringMonth: showNeighboringMonth,\n showWeekNumbers: showWeekNumbers\n }, commonProps));\n }\n\n default:\n throw new Error(\"Invalid view: \".concat(view, \".\"));\n }\n }\n }, {\n key: \"renderNavigation\",\n value: function renderNavigation() {\n var showNavigation = this.props.showNavigation;\n\n if (!showNavigation) {\n return null;\n }\n\n var activeStartDate = this.activeStartDate,\n view = this.view,\n views = this.views;\n var _this$props11 = this.props,\n formatMonthYear = _this$props11.formatMonthYear,\n formatYear = _this$props11.formatYear,\n locale = _this$props11.locale,\n maxDate = _this$props11.maxDate,\n minDate = _this$props11.minDate,\n navigationAriaLabel = _this$props11.navigationAriaLabel,\n navigationAriaLive = _this$props11.navigationAriaLive,\n navigationLabel = _this$props11.navigationLabel,\n next2AriaLabel = _this$props11.next2AriaLabel,\n next2Label = _this$props11.next2Label,\n nextAriaLabel = _this$props11.nextAriaLabel,\n nextLabel = _this$props11.nextLabel,\n prev2AriaLabel = _this$props11.prev2AriaLabel,\n prev2Label = _this$props11.prev2Label,\n prevAriaLabel = _this$props11.prevAriaLabel,\n prevLabel = _this$props11.prevLabel,\n showDoubleView = _this$props11.showDoubleView;\n return /*#__PURE__*/React.createElement(Navigation, {\n activeStartDate: activeStartDate,\n drillUp: this.drillUp,\n formatMonthYear: formatMonthYear,\n formatYear: formatYear,\n locale: locale,\n maxDate: maxDate,\n minDate: minDate,\n navigationAriaLabel: navigationAriaLabel,\n navigationAriaLive: navigationAriaLive,\n navigationLabel: navigationLabel,\n next2AriaLabel: next2AriaLabel,\n next2Label: next2Label,\n nextAriaLabel: nextAriaLabel,\n nextLabel: nextLabel,\n prev2AriaLabel: prev2AriaLabel,\n prev2Label: prev2Label,\n prevAriaLabel: prevAriaLabel,\n prevLabel: prevLabel,\n setActiveStartDate: this.setActiveStartDate,\n showDoubleView: showDoubleView,\n view: view,\n views: views\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props12 = this.props,\n className = _this$props12.className,\n inputRef = _this$props12.inputRef,\n selectRange = _this$props12.selectRange,\n showDoubleView = _this$props12.showDoubleView;\n var onMouseLeave = this.onMouseLeave,\n value = this.value;\n var valueArray = [].concat(value);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: mergeClassNames(baseClassName, selectRange && valueArray.length === 1 && \"\".concat(baseClassName, \"--selectRange\"), showDoubleView && \"\".concat(baseClassName, \"--doubleView\"), className),\n ref: inputRef\n }, this.renderNavigation(), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(baseClassName, \"__viewContainer\"),\n onBlur: selectRange ? onMouseLeave : null,\n onMouseLeave: selectRange ? onMouseLeave : null\n }, this.renderContent(), showDoubleView && this.renderContent(true)));\n }\n }]);\n\n return Calendar;\n}(Component);\n\nexport { Calendar as default };\nCalendar.defaultProps = {\n goToRangeStartOnSelect: true,\n maxDate: defaultMaxDate,\n maxDetail: 'month',\n minDate: defaultMinDate,\n minDetail: 'century',\n returnValue: 'start',\n showNavigation: true,\n showNeighboringMonth: true\n};\nvar isActiveStartDate = PropTypes.instanceOf(Date);\nvar isLooseValue = PropTypes.oneOfType([PropTypes.string, isValue]);\nCalendar.propTypes = {\n activeStartDate: isActiveStartDate,\n allowPartialRange: PropTypes.bool,\n calendarType: isCalendarType,\n className: isClassName,\n defaultActiveStartDate: isActiveStartDate,\n defaultValue: isLooseValue,\n defaultView: isView,\n formatDay: PropTypes.func,\n formatLongDate: PropTypes.func,\n formatMonth: PropTypes.func,\n formatMonthYear: PropTypes.func,\n formatShortWeekday: PropTypes.func,\n formatWeekday: PropTypes.func,\n formatYear: PropTypes.func,\n goToRangeStartOnSelect: PropTypes.bool,\n inputRef: isRef,\n locale: PropTypes.string,\n maxDate: isMaxDate,\n maxDetail: PropTypes.oneOf(allViews),\n minDate: isMinDate,\n minDetail: PropTypes.oneOf(allViews),\n navigationAriaLabel: PropTypes.string,\n navigationAriaLive: PropTypes.oneOf(['off', 'polite', 'assertive']),\n navigationLabel: PropTypes.func,\n next2AriaLabel: PropTypes.string,\n next2Label: PropTypes.node,\n nextAriaLabel: PropTypes.string,\n nextLabel: PropTypes.node,\n onActiveStartDateChange: PropTypes.func,\n onChange: PropTypes.func,\n onClickDay: PropTypes.func,\n onClickDecade: PropTypes.func,\n onClickMonth: PropTypes.func,\n onClickWeekNumber: PropTypes.func,\n onClickYear: PropTypes.func,\n onDrillDown: PropTypes.func,\n onDrillUp: PropTypes.func,\n onViewChange: PropTypes.func,\n prev2AriaLabel: PropTypes.string,\n prev2Label: PropTypes.node,\n prevAriaLabel: PropTypes.string,\n prevLabel: PropTypes.node,\n returnValue: PropTypes.oneOf(['start', 'end', 'range']),\n selectRange: PropTypes.bool,\n showDoubleView: PropTypes.bool,\n showFixedNumberOfWeeks: PropTypes.bool,\n showNavigation: PropTypes.bool,\n showNeighboringMonth: PropTypes.bool,\n showWeekNumbers: PropTypes.bool,\n tileClassName: PropTypes.oneOfType([PropTypes.func, isClassName]),\n tileContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n tileDisabled: PropTypes.func,\n value: isLooseValue,\n view: isView\n};","import React, { useState, useRef, useMemo } from \"react\";\nimport moment from 'moment';\nimport { Popover } from \"react-tiny-popover\";\nimport Calendar from \"react-calendar\";\n\nimport './styles.scss'\n\nconst DEFAULT_FORMAT = 'ddd, D MMM yyyy'\n\nexport default ({ value, onChange, format, maxDate, minDate, positions, ...props }) => {\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const ref = useRef();\n const togglePopover = () => setIsPopoverOpen(!isPopoverOpen);\n const dateText = useMemo(() => value && moment(value).format(format || DEFAULT_FORMAT), [value])\n\n const handleChange = (value) => {\n setIsPopoverOpen(false);\n onChange(value);\n }\n\n return (\n <Popover\n isOpen={isPopoverOpen}\n positions={positions ? positions : ['bottom']}\n align='center'\n disableReposition={true}\n onClickOutside={() => setIsPopoverOpen(!isPopoverOpen)}\n ref={ref}\n content={(\n <div className='calendar'>\n <Calendar onChange={handleChange} value={value} maxDate={maxDate} minDate={minDate} />\n </div>\n )}\n >\n <input\n className='form-control text-center date-input'\n value={dateText}\n onChange={e => e.preventDefault()}\n onClick={togglePopover}\n {...props}\n />\n </Popover>\n )\n}\n","import React from \"react\";\n\nconst Error = ({ errors, name }) => {\n if (errors === undefined) return null;\n if (!errors.hasOwnProperty(name)) return null;\n\n const message = errors[name].join(', ');\n\n return (\n <div className='has-error'>\n <span className=\"help-block\">\n {message}\n </span>\n </div>\n )\n}\n\nexport default Error;","import React from 'react';\nimport error from \"src/components/Form/Error\";\n\nexport default ({ errors, name }) => {\n if (!Object.keys(errors).includes(name)) return null;\n if (!Array.isArray(errors[name])) return null;\n if (errors[name].length < 1) return null;\n\n return (\n <div className='has-error'>\n <div className='help-block'>\n {errors[name].join(', ')}\n </div>\n </div>\n )\n}\n\n","import React from \"react\";\n\nexport default ({ reportTypes, reportTypeKey, onSelectReportType }) => (\n <select name=\"report\"\n className=\"form-control select required\"\n value={reportTypeKey || ''}\n onChange={(e) => onSelectReportType(e.target.value)}>\n {reportTypes.map(item =>\n <option key={item.key} value={item.key}>{item.title}</option>\n )}\n </select>\n)","export function capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function snakeToTitle(string) {\n return string.replace(/^(.)/, (_, char) => char.toUpperCase())\n .replace(/[-_]+(.)/g, (_, char) => ` ${char.toUpperCase()}`)\n}\n\nexport function singularize(string) {\n const endings = {ies: 'y',ves: 'fe',i: 'us',zes: 'ze',ses: 's',es: 'e',s: ''}\n const regexp = new RegExp(`(${Object.keys(endings).join('|')})$`)\n\n return string.replace(regexp, toReplace => endings[toReplace])\n}\n","import { snakeToTitle } from '@/helpers/strings'\n\nconst timePeriodTitles = { today: 'Daily', this_week: 'Weekly', this_month: 'Monthly' }\n\nexport default function(scheduleInterval) {\n return timePeriodTitles[scheduleInterval] || snakeToTitle(scheduleInterval)\n}\n","import React from \"react\";\nimport IntervalTitleDecorator from \"src/components/ReportSchedules/helpers/interval_title_decorator\";\n\nexport default ({ availableReportIntervals, reportInterval, setReportInterval }) => (\n <select className=\"form-control select required\"\n value={reportInterval || ''}\n onChange={e => setReportInterval(e.target.value)}>\n {availableReportIntervals.map(item =>\n <option key={item} value={item}>{IntervalTitleDecorator(item)}</option>)\n }\n </select>\n);\n","import React from \"react\";\n\nexport default ({ availableExportOptions, exportType, setExportType }) => {\n return (\n <select name=\"reportExportType\"\n className=\"form-control select required\"\n value={exportType || ''}\n onChange={e => setExportType(e.target.value)}>\n {availableExportOptions.map(exportOption => <option key={exportOption} value={exportOption}>{exportOption}</option>)}\n </select>\n )\n};\n","import React, { useRef } from 'react';\nimport { default as Select } from 'react-select';\nimport { components } from 'react-select';\n\nconst Option = (props) => {\n return (\n <components.Option {...props}>\n <input\n type='checkbox'\n checked={props.isSelected}\n onChange={() => null}\n />{\" \"}\n {props.label}\n </components.Option>\n );\n};\n\nconst ValueContainer = ({ children, ...props }) => {\n let [values, input] = children;\n\n if (Array.isArray(values)) {\n let selectedDays = values.map(value => value.props.data.value)\n let weekDaysOnlySelected = [0,1,2,3,4].every(day => selectedDays.includes(day))\n let weekendOnlySelected = [5,6].every(day => selectedDays.includes(day))\n\n if (values.length === 7) {\n values = 'Full week'\n } else if(weekDaysOnlySelected && values.length === 5) {\n values = 'Weekdays'\n } else if(weekendOnlySelected && values.length === 2) {\n values = 'Weekends'\n } else if(values.length) {\n values = `${values.length} selected`;\n } else {\n values = values[0].props.children\n }\n }\n\n return (\n <components.ValueContainer {...props}>\n {values}\n {input}\n </components.ValueContainer>\n );\n};\n\nexport default (props) => {\n const ref = useRef(null);\n\n return (\n <Select\n {...props}\n isMulti\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n components={{ Option, ValueContainer }}\n allowSelectAll={true}\n ref={ref}\n placeholder='Full week'\n />\n )\n}\n","import React from \"react\";\nimport DaysSelector from \"src/components/ReportSchedules/Components/days_selector\";\n\nconst dayNames = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'].map((day, index) => {\n return { label: day, value: index }\n})\n\nexport default ({ weekDays, setWeekDays }) => {\n return (\n <DaysSelector\n className='weekdays-selector'\n value={weekDays}\n isLoading={false}\n isDisabled={false}\n options={dayNames}\n onChange={setWeekDays}\n />\n )\n}","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","module.exports = true;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","module.exports = require('./_hide');\n","module.exports = {};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","exports.f = require('./_wks');\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","export default function contains(root, n) {\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","/**\n * @ignore\n * base event object for custom and dom event.\n * @author yiminghe@gmail.com\n */\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction returnFalse() {\n return false;\n}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction EventBaseObject() {\n this.timeStamp = Date.now();\n this.target = undefined;\n this.currentTarget = undefined;\n}\n\nEventBaseObject.prototype = {\n isEventObject: 1,\n\n constructor: EventBaseObject,\n\n isDefaultPrevented: returnFalse,\n\n isPropagationStopped: returnFalse,\n\n isImmediatePropagationStopped: returnFalse,\n\n preventDefault: function preventDefault() {\n this.isDefaultPrevented = returnTrue;\n },\n\n stopPropagation: function stopPropagation() {\n this.isPropagationStopped = returnTrue;\n },\n\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.isImmediatePropagationStopped = returnTrue;\n // fixed 1.2\n // call stopPropagation implicitly\n this.stopPropagation();\n },\n\n halt: function halt(immediate) {\n if (immediate) {\n this.stopImmediatePropagation();\n } else {\n this.stopPropagation();\n }\n this.preventDefault();\n }\n};\n\nexports[\"default\"] = EventBaseObject;\nmodule.exports = exports[\"default\"];","/**\n * @ignore\n * event object for dom\n * @author yiminghe@gmail.com\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventBaseObject = require('./EventBaseObject');\n\nvar _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar TRUE = true;\nvar FALSE = false;\nvar commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];\n\nfunction isNullOrUndefined(w) {\n return w === null || w === undefined;\n}\n\nvar eventNormalizers = [{\n reg: /^key/,\n props: ['char', 'charCode', 'key', 'keyCode', 'which'],\n fix: function fix(event, nativeEvent) {\n if (isNullOrUndefined(event.which)) {\n event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;\n }\n\n // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)\n if (event.metaKey === undefined) {\n event.metaKey = event.ctrlKey;\n }\n }\n}, {\n reg: /^touch/,\n props: ['touches', 'changedTouches', 'targetTouches']\n}, {\n reg: /^hashchange$/,\n props: ['newURL', 'oldURL']\n}, {\n reg: /^gesturechange$/i,\n props: ['rotation', 'scale']\n}, {\n reg: /^(mousewheel|DOMMouseScroll)$/,\n props: [],\n fix: function fix(event, nativeEvent) {\n var deltaX = undefined;\n var deltaY = undefined;\n var delta = undefined;\n var wheelDelta = nativeEvent.wheelDelta;\n var axis = nativeEvent.axis;\n var wheelDeltaY = nativeEvent.wheelDeltaY;\n var wheelDeltaX = nativeEvent.wheelDeltaX;\n var detail = nativeEvent.detail;\n\n // ie/webkit\n if (wheelDelta) {\n delta = wheelDelta / 120;\n }\n\n // gecko\n if (detail) {\n // press control e.detail == 1 else e.detail == 3\n delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);\n }\n\n // Gecko\n if (axis !== undefined) {\n if (axis === event.HORIZONTAL_AXIS) {\n deltaY = 0;\n deltaX = 0 - delta;\n } else if (axis === event.VERTICAL_AXIS) {\n deltaX = 0;\n deltaY = delta;\n }\n }\n\n // Webkit\n if (wheelDeltaY !== undefined) {\n deltaY = wheelDeltaY / 120;\n }\n if (wheelDeltaX !== undefined) {\n deltaX = -1 * wheelDeltaX / 120;\n }\n\n // 默认 deltaY (ie)\n if (!deltaX && !deltaY) {\n deltaY = delta;\n }\n\n if (deltaX !== undefined) {\n /**\n * deltaX of mousewheel event\n * @property deltaX\n * @member Event.DomEvent.Object\n */\n event.deltaX = deltaX;\n }\n\n if (deltaY !== undefined) {\n /**\n * deltaY of mousewheel event\n * @property deltaY\n * @member Event.DomEvent.Object\n */\n event.deltaY = deltaY;\n }\n\n if (delta !== undefined) {\n /**\n * delta of mousewheel event\n * @property delta\n * @member Event.DomEvent.Object\n */\n event.delta = delta;\n }\n }\n}, {\n reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,\n props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],\n fix: function fix(event, nativeEvent) {\n var eventDoc = undefined;\n var doc = undefined;\n var body = undefined;\n var target = event.target;\n var button = nativeEvent.button;\n\n // Calculate pageX/Y if missing and clientX/Y available\n if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {\n eventDoc = target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // which for click: 1 === left; 2 === middle; 3 === right\n // do not use button\n if (!event.which && button !== undefined) {\n if (button & 1) {\n event.which = 1;\n } else if (button & 2) {\n event.which = 3;\n } else if (button & 4) {\n event.which = 2;\n } else {\n event.which = 0;\n }\n }\n\n // add relatedTarget, if necessary\n if (!event.relatedTarget && event.fromElement) {\n event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;\n }\n\n return event;\n }\n}];\n\nfunction retTrue() {\n return TRUE;\n}\n\nfunction retFalse() {\n return FALSE;\n}\n\nfunction DomEventObject(nativeEvent) {\n var type = nativeEvent.type;\n\n var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';\n\n _EventBaseObject2['default'].call(this);\n\n this.nativeEvent = nativeEvent;\n\n // in case dom event has been mark as default prevented by lower dom node\n var isDefaultPrevented = retFalse;\n if ('defaultPrevented' in nativeEvent) {\n isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;\n } else if ('getPreventDefault' in nativeEvent) {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=691151\n isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;\n } else if ('returnValue' in nativeEvent) {\n isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;\n }\n\n this.isDefaultPrevented = isDefaultPrevented;\n\n var fixFns = [];\n var fixFn = undefined;\n var l = undefined;\n var prop = undefined;\n var props = commonProps.concat();\n\n eventNormalizers.forEach(function (normalizer) {\n if (type.match(normalizer.reg)) {\n props = props.concat(normalizer.props);\n if (normalizer.fix) {\n fixFns.push(normalizer.fix);\n }\n }\n });\n\n l = props.length;\n\n // clone properties of the original event object\n while (l) {\n prop = props[--l];\n this[prop] = nativeEvent[prop];\n }\n\n // fix target property, if necessary\n if (!this.target && isNative) {\n this.target = nativeEvent.srcElement || document; // srcElement might not be defined either\n }\n\n // check if target is a text node (safari)\n if (this.target && this.target.nodeType === 3) {\n this.target = this.target.parentNode;\n }\n\n l = fixFns.length;\n\n while (l) {\n fixFn = fixFns[--l];\n fixFn(this, nativeEvent);\n }\n\n this.timeStamp = nativeEvent.timeStamp || Date.now();\n}\n\nvar EventBaseObjectProto = _EventBaseObject2['default'].prototype;\n\n(0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {\n constructor: DomEventObject,\n\n preventDefault: function preventDefault() {\n var e = this.nativeEvent;\n\n // if preventDefault exists run it on the original event\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n // otherwise set the returnValue property of the original event to FALSE (IE)\n e.returnValue = FALSE;\n }\n\n EventBaseObjectProto.preventDefault.call(this);\n },\n\n stopPropagation: function stopPropagation() {\n var e = this.nativeEvent;\n\n // if stopPropagation exists run it on the original event\n if (e.stopPropagation) {\n e.stopPropagation();\n } else {\n // otherwise set the cancelBubble property of the original event to TRUE (IE)\n e.cancelBubble = TRUE;\n }\n\n EventBaseObjectProto.stopPropagation.call(this);\n }\n});\n\nexports['default'] = DomEventObject;\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nexports['default'] = addEventListener;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _EventObject = require('./EventObject');\n\nvar _EventObject2 = _interopRequireDefault(_EventObject);\n\nfunction addEventListener(target, eventType, callback, option) {\n function wrapCallback(e) {\n var ne = new _EventObject2['default'](e);\n callback.call(target, ne);\n }\n\n if (target.addEventListener) {\n var _ret = (function () {\n var useCapture = false;\n if (typeof option === 'object') {\n useCapture = option.capture || false;\n } else if (typeof option === 'boolean') {\n useCapture = option;\n }\n\n target.addEventListener(eventType, wrapCallback, option || false);\n\n return {\n v: {\n remove: function remove() {\n target.removeEventListener(eventType, wrapCallback, useCapture);\n }\n }\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, wrapCallback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, wrapCallback);\n }\n };\n }\n}\n\nmodule.exports = exports['default'];","import addDOMEventListener from 'add-dom-event-listener';\nimport ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n return addDOMEventListener(target, eventType, callback, option);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar ContainerRender = /*#__PURE__*/function (_React$Component) {\n _inherits(ContainerRender, _React$Component);\n\n var _super = _createSuper(ContainerRender);\n\n function ContainerRender() {\n var _this;\n\n _classCallCheck(this, ContainerRender);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _this.removeContainer = function () {\n if (_this.container) {\n ReactDOM.unmountComponentAtNode(_this.container);\n\n _this.container.parentNode.removeChild(_this.container);\n\n _this.container = null;\n }\n };\n\n _this.renderComponent = function (props, ready) {\n var _this$props = _this.props,\n visible = _this$props.visible,\n getComponent = _this$props.getComponent,\n forceRender = _this$props.forceRender,\n getContainer = _this$props.getContainer,\n parent = _this$props.parent;\n\n if (visible || parent._component || forceRender) {\n if (!_this.container) {\n _this.container = getContainer();\n }\n\n ReactDOM.unstable_renderSubtreeIntoContainer(parent, getComponent(props), _this.container, function callback() {\n if (ready) {\n ready.call(this);\n }\n });\n }\n };\n\n return _this;\n }\n\n _createClass(ContainerRender, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (this.props.autoMount) {\n this.renderComponent();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.props.autoDestroy) {\n this.removeContainer();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children({\n renderComponent: this.renderComponent,\n removeContainer: this.removeContainer\n });\n }\n }]);\n\n return ContainerRender;\n}(React.Component);\n\nContainerRender.propTypes = {\n autoMount: PropTypes.bool,\n autoDestroy: PropTypes.bool,\n visible: PropTypes.bool,\n forceRender: PropTypes.bool,\n parent: PropTypes.any,\n getComponent: PropTypes.func.isRequired,\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.func.isRequired\n};\nContainerRender.defaultProps = {\n autoMount: true,\n autoDestroy: true,\n forceRender: false\n};\nexport { ContainerRender as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nvar Portal = /*#__PURE__*/function (_React$Component) {\n _inherits(Portal, _React$Component);\n\n var _super = _createSuper(Portal);\n\n function Portal() {\n _classCallCheck(this, Portal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Portal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.createContainer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var didUpdate = this.props.didUpdate;\n\n if (didUpdate) {\n didUpdate(prevProps);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeContainer();\n }\n }, {\n key: \"createContainer\",\n value: function createContainer() {\n this._container = this.props.getContainer();\n this.forceUpdate();\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n if (this._container) {\n this._container.parentNode.removeChild(this._container);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this._container) {\n return ReactDOM.createPortal(this.props.children, this._container);\n }\n\n return null;\n }\n }]);\n\n return Portal;\n}(React.Component);\n\nPortal.propTypes = {\n getContainer: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n didUpdate: PropTypes.func\n};\nexport { Portal as default };","import _extends from 'babel-runtime/helpers/extends';\nfunction isPointsEq(a1, a2, isAlignPoint) {\n if (isAlignPoint) {\n return a1[0] === a2[0];\n }\n return a1[0] === a2[0] && a1[1] === a2[1];\n}\n\nexport function getAlignFromPlacement(builtinPlacements, placementStr, align) {\n var baseAlign = builtinPlacements[placementStr] || {};\n return _extends({}, baseAlign, align);\n}\n\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n var points = align.points;\n for (var placement in builtinPlacements) {\n if (builtinPlacements.hasOwnProperty(placement)) {\n if (isPointsEq(builtinPlacements[placement].points, points, isAlignPoint)) {\n return prefixCls + '-placement-' + placement;\n }\n }\n }\n return '';\n}\n\nexport function saveRef(name, component) {\n this[name] = component;\n}","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nvar vendorPrefix;\nvar jsCssMap = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n // IE did it wrong again ...\n ms: '-ms-',\n O: '-o-'\n};\n\nfunction getVendorPrefix() {\n if (vendorPrefix !== undefined) {\n return vendorPrefix;\n }\n\n vendorPrefix = '';\n var style = document.createElement('p').style;\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n vendorPrefix = key;\n }\n }\n\n return vendorPrefix;\n}\n\nfunction getTransitionName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nfunction getTransformName() {\n return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nfunction setTransitionProperty(node, value) {\n var name = getTransitionName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transitionProperty') {\n node.style.transitionProperty = value;\n }\n }\n}\n\nfunction setTransform(node, value) {\n var name = getTransformName();\n\n if (name) {\n node.style[name] = value;\n\n if (name !== 'transform') {\n node.style.transform = value;\n }\n }\n}\n\nfunction getTransitionProperty(node) {\n return node.style.transitionProperty || node.style[getTransitionName()];\n}\nfunction getTransformXY(node) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n return {\n x: parseFloat(matrix[12] || matrix[4], 0),\n y: parseFloat(matrix[13] || matrix[5], 0)\n };\n }\n\n return {\n x: 0,\n y: 0\n };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nfunction setTransformXY(node, xy) {\n var style = window.getComputedStyle(node, null);\n var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n if (transform && transform !== 'none') {\n var arr;\n var match2d = transform.match(matrix2d);\n\n if (match2d) {\n match2d = match2d[1];\n arr = match2d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[4] = xy.x;\n arr[5] = xy.y;\n setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n } else {\n var match3d = transform.match(matrix3d)[1];\n arr = match3d.split(',').map(function (item) {\n return parseFloat(item, 10);\n });\n arr[12] = xy.x;\n arr[13] = xy.y;\n setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n }\n } else {\n setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n }\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n var originalStyle = elem.style.display;\n elem.style.display = 'none';\n elem.offsetHeight; // eslint-disable-line\n\n elem.style.display = originalStyle;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value = \"\".concat(value, \"px\");\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // æ ¹æ® GBS 最新数æ®ï¼ŒA-Grade Browsers éƒ½å·²æ”¯æŒ getBoundingClientRect 方法,ä¸ç”¨å†è€ƒè™‘ä¼ ç»Ÿçš„å®žçŽ°æ–¹å¼\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑å‡åŽ» docElem.clientLeft/clientTop\n // 但测试å‘çŽ°ï¼Œè¿™æ ·å而会导致当 html å’Œ body 有边è·/è¾¹æ¡†æ ·å¼æ—¶ï¼ŒèŽ·å–的值ä¸æ£ç¡®\n // æ¤å¤–,ie6 会忽略 html çš„ margin 值,幸è¿åœ°æ˜¯æ²¡æœ‰è°ä¼šåŽ»è®¾ç½® html çš„ margin\n\n x = Math.floor(box.left);\n y = Math.floor(box.top); // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该å‡åŽ»çª—å£çš„边框å§ï¼Œæ¯•ç«Ÿé»˜è®¤ absolute 都是相对窗å£å®šä½çš„\n // 窗å£è¾¹æ¡†æ ‡å‡†æ˜¯è®¾ documentElement ,quirks 时设置 body\n // 最好ç¦æ¢åœ¨ body å’Œ html 上边框 ,但 ie < 9 html 默认有 2px ,å‡åŽ»\n // ä½†æ˜¯éž ie ä¸å¯èƒ½è®¾ç½®çª—å£è¾¹æ¡†ï¼Œbody html 也ä¸æ˜¯çª—å£ ,ie å¯ä»¥é€šè¿‡ html,body 设置\n // æ ‡å‡† ie 下 docElem.clientTop 就是 border-top\n // ie7 html å³çª—å£è¾¹æ¡†æ”¹å˜ä¸äº†ã€‚永远为 2\n // ä½†æ ‡å‡† firefox/chrome/ie9 下 docElem.clientTop 是窗å£è¾¹æ¡†ï¼Œå³ä½¿è®¾äº† border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj !== null && obj !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n if (isWindow(node)) {\n return node.document;\n }\n\n if (node.nodeType === 9) {\n return node;\n }\n\n return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n var computedStyle = cs;\n var val = '';\n var d = getDocument(elem);\n computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft æ–¹å¼è½¬æ¢çš„ width/height 值\n // 一开始就处ç†äº†! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下ä¸å¯¹ï¼Œéœ€è¦ç›´æŽ¥ç”¨ offset æ–¹å¼\n // borderWidth ç‰å€¼ä¹Ÿæœ‰é—®é¢˜ï¼Œä½†è€ƒè™‘到 borderWidth 设为百分比的概率很å°ï¼Œè¿™é‡Œå°±ä¸è€ƒè™‘了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n if (dir === 'left') {\n return option.useCssRight ? 'right' : dir;\n }\n\n return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n if (dir === 'left') {\n return 'right';\n } else if (dir === 'right') {\n return 'left';\n } else if (dir === 'top') {\n return 'bottom';\n } else if (dir === 'bottom') {\n return 'top';\n }\n} // 设置 elem 相对 elem.ownerDocument çš„åæ ‡\n\n\nfunction setLeftTop(elem, offset, option) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var presetH = -999;\n var presetV = -999;\n var horizontalProperty = getOffsetDirection('left', option);\n var verticalProperty = getOffsetDirection('top', option);\n var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n if (horizontalProperty !== 'left') {\n presetH = 999;\n }\n\n if (verticalProperty !== 'top') {\n presetV = 999;\n }\n\n var originalTransition = '';\n var originalOffset = getOffset(elem);\n\n if ('left' in offset || 'top' in offset) {\n originalTransition = getTransitionProperty(elem) || '';\n setTransitionProperty(elem, 'none');\n }\n\n if ('left' in offset) {\n elem.style[oppositeHorizontalProperty] = '';\n elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n }\n\n if ('top' in offset) {\n elem.style[oppositeVerticalProperty] = '';\n elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n } // force relayout\n\n\n forceRelayout(elem);\n var old = getOffset(elem);\n var originalStyle = {};\n\n for (var key in offset) {\n if (offset.hasOwnProperty(key)) {\n var dir = getOffsetDirection(key, option);\n var preset = key === 'left' ? presetH : presetV;\n var off = originalOffset[key] - old[key];\n\n if (dir === key) {\n originalStyle[dir] = preset + off;\n } else {\n originalStyle[dir] = preset - off;\n }\n }\n }\n\n css(elem, originalStyle); // force relayout\n\n forceRelayout(elem);\n\n if ('left' in offset || 'top' in offset) {\n setTransitionProperty(elem, originalTransition);\n }\n\n var ret = {};\n\n for (var _key in offset) {\n if (offset.hasOwnProperty(_key)) {\n var _dir = getOffsetDirection(_key, option);\n\n var _off = offset[_key] - originalOffset[_key];\n\n if (_key === _dir) {\n ret[_dir] = originalStyle[_dir] + _off;\n } else {\n ret[_dir] = originalStyle[_dir] - _off;\n }\n }\n }\n\n css(elem, ret);\n}\n\nfunction setTransform$1(elem, offset) {\n var originalOffset = getOffset(elem);\n var originalXY = getTransformXY(elem);\n var resultXY = {\n x: originalXY.x,\n y: originalXY.y\n };\n\n if ('left' in offset) {\n resultXY.x = originalXY.x + offset.left - originalOffset.left;\n }\n\n if ('top' in offset) {\n resultXY.y = originalXY.y + offset.top - originalOffset.top;\n }\n\n setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n if (option.ignoreShake) {\n var oriOffset = getOffset(elem);\n var oLeft = oriOffset.left.toFixed(0);\n var oTop = oriOffset.top.toFixed(0);\n var tLeft = offset.left.toFixed(0);\n var tTop = offset.top.toFixed(0);\n\n if (oLeft === tLeft && oTop === tTop) {\n return;\n }\n }\n\n if (option.useCssRight || option.useCssBottom) {\n setLeftTop(elem, offset, option);\n } else if (option.useCssTransform && getTransformName() in document.body.style) {\n setTransform$1(elem, offset);\n } else {\n setLeftTop(elem, offset, option);\n }\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop).concat(which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n\nvar domUtils = {\n getParent: function getParent(element) {\n var parent = element;\n\n do {\n if (parent.nodeType === 11 && parent.host) {\n parent = parent.host;\n } else {\n parent = parent.parentNode;\n }\n } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n return parent;\n }\n};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大ç‰äºŽå¯è§†çª—å£å¤šä¸€ç‚¹ï¼Ÿ\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // æ ‡å‡†æ¨¡å¼å– documentElement\n // backcompat å– body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n å¾—åˆ°å…ƒç´ çš„å¤§å°ä¿¡æ¯\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, ex) {\n var extra = ex;\n\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? Math.floor(elem.getBoundingClientRect().width) : Math.floor(elem.getBoundingClientRect().height);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n } else if (borderBoxValueOrIsBorderBox) {\n if (extra === BORDER_INDEX) {\n return val;\n }\n\n return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which));\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay() {\n for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var val;\n var elem = args[0]; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, v) {\n var val = v;\n\n if (val !== undefined) {\n if (elem) {\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n});\n\nfunction mix(to, from) {\n for (var i in from) {\n if (from.hasOwnProperty(i)) {\n to[i] = from[i];\n }\n }\n\n return to;\n}\n\nvar utils = {\n getWindow: function getWindow(node) {\n if (node && node.document && node.setTimeout) {\n return node;\n }\n\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n getDocument: getDocument,\n offset: function offset(el, value, option) {\n if (typeof value !== 'undefined') {\n setOffset(el, value, option || {});\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var i;\n var ret = {};\n\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret.overflow[i] = obj.overflow[i];\n }\n }\n }\n\n return ret;\n },\n mix: mix,\n getWindowScrollLeft: function getWindowScrollLeft(w) {\n return getScrollLeft(w);\n },\n getWindowScrollTop: function getWindowScrollTop(w) {\n return getScrollTop(w);\n },\n merge: function merge() {\n var ret = {};\n\n for (var i = 0; i < arguments.length; i++) {\n utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n }\n\n return ret;\n },\n viewportWidth: 0,\n viewportHeight: 0\n};\nmix(utils, domUtils);\n\n/**\n * å¾—åˆ°ä¼šå¯¼è‡´å…ƒç´ æ˜¾ç¤ºä¸å…¨çš„ç¥–å…ˆå…ƒç´ \n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return null;\n } // ie 这个也ä¸æ˜¯å®Œå…¨å¯è¡Œ\n\n /*\n <div style=\"width: 50px;height: 100px;overflow: hidden\">\n <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n å…ƒç´ 6 高 100px 宽 50px<br/>\n </div>\n </div>\n */\n // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n // In other browsers it only includes elements with position absolute, relative or\n // fixed, not elements with overflow set to auto or scroll.\n // if (UA.ie && ieMode < 8) {\n // return element.offsetParent;\n // }\n // 统一的 offsetParent 方法\n\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent;\n var positionStyle = utils.css(element, 'position');\n var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n if (!skipStatic) {\n return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n }\n\n for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n positionStyle = utils.css(parent, 'position');\n\n if (positionStyle !== 'static') {\n return parent;\n }\n }\n\n return null;\n}\n\nvar getParent$1 = utils.getParent;\nfunction isAncestorFixed(element) {\n if (utils.isWindow(element) || element.nodeType === 9) {\n return false;\n }\n\n var doc = utils.getDocument(element);\n var body = doc.body;\n var parent = null;\n\n for (parent = getParent$1(element); // ä¿®å¤å…ƒç´ ä½äºŽ document.documentElement 下导致崩溃问题\n parent && parent !== body && parent !== doc; parent = getParent$1(parent)) {\n var positionStyle = utils.css(parent, 'position');\n\n if (positionStyle === 'fixed') {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * èŽ·å¾—å…ƒç´ çš„æ˜¾ç¤ºéƒ¨åˆ†çš„åŒºåŸŸ\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n var visibleRect = {\n left: 0,\n right: Infinity,\n top: 0,\n bottom: Infinity\n };\n var el = getOffsetParent(element);\n var doc = utils.getDocument(element);\n var win = doc.defaultView || doc.parentWindow;\n var body = doc.body;\n var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n // all scrollable containers.\n\n while (el) {\n // clientWidth is zero for inline block elements in ie.\n if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n // viewport. In some browsers, el.offsetParent may be\n // document.documentElement, so check for that too.\n el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n var pos = utils.offset(el); // add border\n\n pos.left += el.clientLeft;\n pos.top += el.clientTop;\n visibleRect.top = Math.max(visibleRect.top, pos.top);\n visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n pos.left + el.clientWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n visibleRect.left = Math.max(visibleRect.left, pos.left);\n } else if (el === body || el === documentElement) {\n break;\n }\n\n el = getOffsetParent(el);\n } // Set element position to fixed\n // make sure absolute element itself don't affect it's visible area\n // https://github.com/ant-design/ant-design/issues/7601\n\n\n var originalPosition = null;\n\n if (!utils.isWindow(element) && element.nodeType !== 9) {\n originalPosition = element.style.position;\n var position = utils.css(element, 'position');\n\n if (position === 'absolute') {\n element.style.position = 'fixed';\n }\n }\n\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n var documentWidth = documentElement.scrollWidth;\n var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n // We should cut this ourself.\n\n var bodyStyle = window.getComputedStyle(body);\n\n if (bodyStyle.overflowX === 'hidden') {\n documentWidth = win.innerWidth;\n }\n\n if (bodyStyle.overflowY === 'hidden') {\n documentHeight = win.innerHeight;\n } // Reset element position after calculate the visible area\n\n\n if (element.style) {\n element.style.position = originalPosition;\n }\n\n if (alwaysByViewport || isAncestorFixed(element)) {\n // Clip by viewport's size.\n visibleRect.left = Math.max(visibleRect.left, scrollX);\n visibleRect.top = Math.max(visibleRect.top, scrollY);\n visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n } else {\n // Clip by document's size.\n var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n }\n\n return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n var pos = utils.clone(elFuturePos);\n var size = {\n width: elRegion.width,\n height: elRegion.height\n };\n\n if (overflow.adjustX && pos.left < visibleRect.left) {\n pos.left = visibleRect.left;\n } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n size.width -= pos.left + size.width - visibleRect.right;\n } // Right edge outside viewport, try to move it.\n\n\n if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n // ä¿è¯å·¦è¾¹ç•Œå’Œå¯è§†åŒºåŸŸå·¦è¾¹ç•Œå¯¹é½\n pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n } // Top edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top < visibleRect.top) {\n pos.top = visibleRect.top;\n } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n size.height -= pos.top + size.height - visibleRect.bottom;\n } // Bottom edge outside viewport, try to move it.\n\n\n if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n // ä¿è¯ä¸Šè¾¹ç•Œå’Œå¯è§†åŒºåŸŸä¸Šè¾¹ç•Œå¯¹é½\n pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n }\n\n return utils.mix(pos, size);\n}\n\nfunction getRegion(node) {\n var offset;\n var w;\n var h;\n\n if (!utils.isWindow(node) && node.nodeType !== 9) {\n offset = utils.offset(node);\n w = utils.outerWidth(node);\n h = utils.outerHeight(node);\n } else {\n var win = utils.getWindow(node);\n offset = {\n left: utils.getWindowScrollLeft(win),\n top: utils.getWindowScrollTop(win)\n };\n w = utils.viewportWidth(win);\n h = utils.viewportHeight(win);\n }\n\n offset.width = w;\n offset.height = h;\n return offset;\n}\n\n/**\n * èŽ·å– node 上的 align 对é½ç‚¹ 相对于页é¢çš„åæ ‡\n */\nfunction getAlignOffset(region, align) {\n var V = align.charAt(0);\n var H = align.charAt(1);\n var w = region.width;\n var h = region.height;\n var x = region.left;\n var y = region.top;\n\n if (V === 'c') {\n y += h / 2;\n } else if (V === 'b') {\n y += h;\n }\n\n if (H === 'c') {\n x += w / 2;\n } else if (H === 'r') {\n x += w;\n }\n\n return {\n left: x,\n top: y\n };\n}\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n var p1 = getAlignOffset(refNodeRegion, points[1]);\n var p2 = getAlignOffset(elRegion, points[0]);\n var diff = [p2.left - p1.left, p2.top - p1.top];\n return {\n left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n };\n}\n\n/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n var ret = [];\n utils.each(points, function (p) {\n ret.push(p.replace(reg, function (m) {\n return map[m];\n }));\n });\n return ret;\n}\n\nfunction flipOffset(offset, index) {\n offset[index] = -offset[index];\n return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n var n;\n\n if (/%$/.test(str)) {\n n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n } else {\n n = parseInt(str, 10);\n }\n\n return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n offset[0] = convertOffset(offset[0], el.width);\n offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion å‚照节点所å 的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n var points = align.points;\n var offset = align.offset || [0, 0];\n var targetOffset = align.targetOffset || [0, 0];\n var overflow = align.overflow;\n var source = align.source || el;\n offset = [].concat(offset);\n targetOffset = [].concat(targetOffset);\n overflow = overflow || {};\n var newOverflowCfg = {};\n var fail = 0;\n var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当å‰èŠ‚点å¯ä»¥è¢«æ”¾ç½®çš„显示区域\n\n var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当å‰èŠ‚点所å 的区域, left/top/width/height\n\n var elRegion = getRegion(source); // å°† offset 转æ¢æˆæ•°å€¼ï¼Œæ”¯æŒç™¾åˆ†æ¯”\n\n normalizeOffset(offset, elRegion);\n normalizeOffset(targetOffset, tgtRegion); // 当å‰èŠ‚点将è¦è¢«æ”¾ç½®çš„ä½ç½®\n\n var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当å‰èŠ‚点将è¦æ‰€å¤„的区域\n\n var newElRegion = utils.merge(elRegion, elFuturePos); // 如果å¯è§†åŒºåŸŸä¸èƒ½å®Œå…¨æ”¾ç½®å½“å‰èŠ‚点时å…许调整\n\n if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n if (overflow.adjustX) {\n // 如果横å‘ä¸èƒ½æ”¾ä¸‹\n if (isFailX(elFuturePos, elRegion, visibleRect)) {\n // 对é½ä½ç½®å下\n var newPoints = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n }); // å移é‡ä¹Ÿå下\n\n var newOffset = flipOffset(offset, 0);\n var newTargetOffset = flipOffset(targetOffset, 0);\n var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = newPoints;\n offset = newOffset;\n targetOffset = newTargetOffset;\n }\n }\n }\n\n if (overflow.adjustY) {\n // 如果纵å‘ä¸èƒ½æ”¾ä¸‹\n if (isFailY(elFuturePos, elRegion, visibleRect)) {\n // 对é½ä½ç½®å下\n var _newPoints = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n }); // å移é‡ä¹Ÿå下\n\n\n var _newOffset = flipOffset(offset, 1);\n\n var _newTargetOffset = flipOffset(targetOffset, 1);\n\n var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n fail = 1;\n points = _newPoints;\n offset = _newOffset;\n targetOffset = _newTargetOffset;\n }\n }\n } // 如果失败,é‡æ–°è®¡ç®—当å‰èŠ‚点将è¦è¢«æ”¾ç½®çš„ä½ç½®\n\n\n if (fail) {\n elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n utils.mix(newElRegion, elFuturePos);\n }\n\n var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查å下åŽçš„ä½ç½®æ˜¯å¦å¯ä»¥æ”¾ä¸‹äº†ï¼Œå¦‚æžœä»ç„¶æ”¾ä¸ä¸‹ï¼š\n // 1. å¤åŽŸä¿®æ”¹è¿‡çš„定ä½å‚æ•°\n\n if (isStillFailX || isStillFailY) {\n var _newPoints2 = points; // é‡ç½®å¯¹åº”部分的翻转逻辑\n\n if (isStillFailX) {\n _newPoints2 = flip(points, /[lr]/gi, {\n l: 'r',\n r: 'l'\n });\n }\n\n if (isStillFailY) {\n _newPoints2 = flip(points, /[tb]/gi, {\n t: 'b',\n b: 't'\n });\n }\n\n points = _newPoints2;\n offset = align.offset || [0, 0];\n targetOffset = align.targetOffset || [0, 0];\n } // 2. åªæœ‰æŒ‡å®šäº†å¯ä»¥è°ƒæ•´å½“å‰æ–¹å‘æ‰è°ƒæ•´\n\n\n newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实è¦è°ƒæ•´ï¼Œç”šè‡³å¯èƒ½ä¼šè°ƒæ•´é«˜åº¦å®½åº¦\n\n if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n }\n } // need judge to in case set fixed with in css on height auto element\n\n\n if (newElRegion.width !== elRegion.width) {\n utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n }\n\n if (newElRegion.height !== elRegion.height) {\n utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n } // https://github.com/kissyteam/kissy/issues/190\n // 相对于å±å¹•ä½ç½®æ²¡å˜ï¼Œè€Œ left/top å˜äº†\n // 例如 <div 'relative'><el absolute></div>\n\n\n utils.offset(source, {\n left: newElRegion.left,\n top: newElRegion.top\n }, {\n useCssRight: align.useCssRight,\n useCssBottom: align.useCssBottom,\n useCssTransform: align.useCssTransform,\n ignoreShake: align.ignoreShake\n });\n return {\n points: points,\n offset: offset,\n targetOffset: targetOffset,\n overflow: newOverflowCfg\n };\n}\n/**\n * 2012-04-26 yiminghe@gmail.com\n * - 优化智能对é½ç®—法\n * - 慎用 resizeXX\n *\n * 2011-07-13 yiminghe@gmail.com note:\n * - å¢žåŠ æ™ºèƒ½å¯¹é½ï¼Œä»¥åŠå¤§å°è°ƒæ•´é€‰é¡¹\n **/\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n var targetRegion = getRegion(target);\n return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n var target = align.target || refNode;\n var refNodeRegion = getRegion(target);\n var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\n\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n var pageX;\n var pageY;\n var doc = utils.getDocument(el);\n var win = doc.defaultView || doc.parentWindow;\n var scrollX = utils.getWindowScrollLeft(win);\n var scrollY = utils.getWindowScrollTop(win);\n var viewportWidth = utils.viewportWidth(win);\n var viewportHeight = utils.viewportHeight(win);\n\n if ('pageX' in tgtPoint) {\n pageX = tgtPoint.pageX;\n } else {\n pageX = scrollX + tgtPoint.clientX;\n }\n\n if ('pageY' in tgtPoint) {\n pageY = tgtPoint.pageY;\n } else {\n pageY = scrollY + tgtPoint.clientY;\n }\n\n var tgtRegion = {\n left: pageX,\n top: pageY,\n width: 0,\n height: 0\n };\n var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n var points = [align.points[0], 'cc'];\n return doAlign(el, tgtRegion, _objectSpread2(_objectSpread2({}, align), {}, {\n points: points\n }), pointInView);\n}\n\nexport default alignElement;\nexport { alignElement, alignPoint };\n//# sourceMappingURL=index.js.map\n","import contains from 'rc-util/es/Dom/contains';\n\nexport function buffer(fn, ms) {\n var timer = void 0;\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n\n function bufferFn() {\n clear();\n timer = setTimeout(fn, ms);\n }\n\n bufferFn.clear = clear;\n\n return bufferFn;\n}\n\nexport function isSamePoint(prev, next) {\n if (prev === next) return true;\n if (!prev || !next) return false;\n\n if ('pageX' in next && 'pageY' in next) {\n return prev.pageX === next.pageX && prev.pageY === next.pageY;\n }\n\n if ('clientX' in next && 'clientY' in next) {\n return prev.clientX === next.clientX && prev.clientY === next.clientY;\n }\n\n return false;\n}\n\nexport function isWindow(obj) {\n return obj && typeof obj === 'object' && obj.window === obj;\n}\n\nexport function isSimilarValue(val1, val2) {\n var int1 = Math.floor(val1);\n var int2 = Math.floor(val2);\n return Math.abs(int1 - int2) <= 1;\n}\n\nexport function restoreFocus(activeElement, container) {\n // Focus back if is in the container\n if (activeElement !== document.activeElement && contains(container, activeElement)) {\n activeElement.focus();\n }\n}","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport { alignElement, alignPoint } from 'dom-align';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\n\nimport { isWindow, buffer, isSamePoint, isSimilarValue, restoreFocus } from './util';\n\nfunction getElement(func) {\n if (typeof func !== 'function' || !func) return null;\n return func();\n}\n\nfunction getPoint(point) {\n if (typeof point !== 'object' || !point) return null;\n return point;\n}\n\nvar Align = function (_Component) {\n _inherits(Align, _Component);\n\n function Align() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Align);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Align.__proto__ || Object.getPrototypeOf(Align)).call.apply(_ref, [this].concat(args))), _this), _this.forceAlign = function () {\n var _this$props = _this.props,\n disabled = _this$props.disabled,\n target = _this$props.target,\n align = _this$props.align,\n onAlign = _this$props.onAlign;\n\n if (!disabled && target) {\n var source = ReactDOM.findDOMNode(_this);\n\n var result = void 0;\n var element = getElement(target);\n var point = getPoint(target);\n\n // IE lose focus after element realign\n // We should record activeElement and restore later\n var activeElement = document.activeElement;\n\n if (element) {\n result = alignElement(source, element, align);\n } else if (point) {\n result = alignPoint(source, point, align);\n }\n\n restoreFocus(activeElement, source);\n\n if (onAlign) {\n onAlign(source, result);\n }\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Align, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var props = this.props;\n // if parent ref not attached .... use document.getElementById\n this.forceAlign();\n if (!props.disabled && props.monitorWindowResize) {\n this.startMonitorWindowResize();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var reAlign = false;\n var props = this.props;\n\n if (!props.disabled) {\n var source = ReactDOM.findDOMNode(this);\n var sourceRect = source ? source.getBoundingClientRect() : null;\n\n if (prevProps.disabled) {\n reAlign = true;\n } else {\n var lastElement = getElement(prevProps.target);\n var currentElement = getElement(props.target);\n var lastPoint = getPoint(prevProps.target);\n var currentPoint = getPoint(props.target);\n\n if (isWindow(lastElement) && isWindow(currentElement)) {\n // Skip if is window\n reAlign = false;\n } else if (lastElement !== currentElement || // Element change\n lastElement && !currentElement && currentPoint || // Change from element to point\n lastPoint && currentPoint && currentElement || // Change from point to element\n currentPoint && !isSamePoint(lastPoint, currentPoint)) {\n reAlign = true;\n }\n\n // If source element size changed\n var preRect = this.sourceRect || {};\n if (!reAlign && source && (!isSimilarValue(preRect.width, sourceRect.width) || !isSimilarValue(preRect.height, sourceRect.height))) {\n reAlign = true;\n }\n }\n\n this.sourceRect = sourceRect;\n }\n\n if (reAlign) {\n this.forceAlign();\n }\n\n if (props.monitorWindowResize && !props.disabled) {\n this.startMonitorWindowResize();\n } else {\n this.stopMonitorWindowResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopMonitorWindowResize();\n }\n }, {\n key: 'startMonitorWindowResize',\n value: function startMonitorWindowResize() {\n if (!this.resizeHandler) {\n this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);\n this.resizeHandler = addEventListener(window, 'resize', this.bufferMonitor);\n }\n }\n }, {\n key: 'stopMonitorWindowResize',\n value: function stopMonitorWindowResize() {\n if (this.resizeHandler) {\n this.bufferMonitor.clear();\n this.resizeHandler.remove();\n this.resizeHandler = null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n childrenProps = _props.childrenProps,\n children = _props.children;\n\n var child = React.Children.only(children);\n if (childrenProps) {\n var newProps = {};\n var propList = Object.keys(childrenProps);\n propList.forEach(function (prop) {\n newProps[prop] = _this2.props[childrenProps[prop]];\n });\n\n return React.cloneElement(child, newProps);\n }\n return child;\n }\n }]);\n\n return Align;\n}(Component);\n\nAlign.propTypes = {\n childrenProps: PropTypes.object,\n align: PropTypes.object.isRequired,\n target: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n clientX: PropTypes.number,\n clientY: PropTypes.number,\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })]),\n onAlign: PropTypes.func,\n monitorBufferTime: PropTypes.number,\n monitorWindowResize: PropTypes.bool,\n disabled: PropTypes.bool,\n children: PropTypes.any\n};\nAlign.defaultProps = {\n target: function target() {\n return window;\n },\n monitorBufferTime: 50,\n monitorWindowResize: false,\n disabled: false\n};\n\n\nexport default Align;","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n if (key in obj) {\n (0, _defineProperty2.default)(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};","import React from 'react';\n\nvar unsafeLifecyclesPolyfill = function unsafeLifecyclesPolyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n } // only handle componentWillReceiveProps\n\n\n if (typeof prototype.componentWillReceiveProps !== 'function') {\n return Component;\n } // In React 16.9, React.Profiler was introduced together with UNSAFE_componentWillReceiveProps\n // https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#performance-measurements-with-reactprofiler\n\n\n if (!React.Profiler) {\n return Component;\n } // Here polyfill get started\n\n\n prototype.UNSAFE_componentWillReceiveProps = prototype.componentWillReceiveProps;\n delete prototype.componentWillReceiveProps;\n return Component;\n};\n\nexport default unsafeLifecyclesPolyfill;","import React from 'react';\n\nexport function toArrayChildren(children) {\n var ret = [];\n React.Children.forEach(children, function (child) {\n ret.push(child);\n });\n return ret;\n}\n\nexport function findChildInChildrenByKey(children, key) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (ret) {\n return;\n }\n if (child && child.key === key) {\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findShownChildInChildrenByKey(children, key, showProp) {\n var ret = null;\n if (children) {\n children.forEach(function (child) {\n if (child && child.key === key && child.props[showProp]) {\n if (ret) {\n throw new Error('two child with same key for <rc-animate> children');\n }\n ret = child;\n }\n });\n }\n return ret;\n}\n\nexport function findHiddenChildInChildrenByKey(children, key, showProp) {\n var found = 0;\n if (children) {\n children.forEach(function (child) {\n if (found) {\n return;\n }\n found = child && child.key === key && !child.props[showProp];\n });\n }\n return found;\n}\n\nexport function isSameChildren(c1, c2, showProp) {\n var same = c1.length === c2.length;\n if (same) {\n c1.forEach(function (child, index) {\n var child2 = c2[index];\n if (child && child2) {\n if (child && !child2 || !child && child2) {\n same = false;\n } else if (child.key !== child2.key) {\n same = false;\n } else if (showProp && child.props[showProp] !== child2.props[showProp]) {\n same = false;\n }\n }\n });\n }\n return same;\n}\n\nexport function mergeChildren(prev, next) {\n var ret = [];\n\n // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n var nextChildrenPending = {};\n var pendingChildren = [];\n prev.forEach(function (child) {\n if (child && findChildInChildrenByKey(next, child.key)) {\n if (pendingChildren.length) {\n nextChildrenPending[child.key] = pendingChildren;\n pendingChildren = [];\n }\n } else {\n pendingChildren.push(child);\n }\n });\n\n next.forEach(function (child) {\n if (child && Object.prototype.hasOwnProperty.call(nextChildrenPending, child.key)) {\n ret = ret.concat(nextChildrenPending[child.key]);\n }\n ret.push(child);\n });\n\n ret = ret.concat(pendingChildren);\n\n return ret;\n}","var START_EVENT_NAME_MAP = {\n transitionstart: {\n transition: 'transitionstart',\n WebkitTransition: 'webkitTransitionStart',\n MozTransition: 'mozTransitionStart',\n OTransition: 'oTransitionStart',\n msTransition: 'MSTransitionStart'\n },\n\n animationstart: {\n animation: 'animationstart',\n WebkitAnimation: 'webkitAnimationStart',\n MozAnimation: 'mozAnimationStart',\n OAnimation: 'oAnimationStart',\n msAnimation: 'MSAnimationStart'\n }\n};\n\nvar END_EVENT_NAME_MAP = {\n transitionend: {\n transition: 'transitionend',\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'mozTransitionEnd',\n OTransition: 'oTransitionEnd',\n msTransition: 'MSTransitionEnd'\n },\n\n animationend: {\n animation: 'animationend',\n WebkitAnimation: 'webkitAnimationEnd',\n MozAnimation: 'mozAnimationEnd',\n OAnimation: 'oAnimationEnd',\n msAnimation: 'MSAnimationEnd'\n }\n};\n\nvar startEvents = [];\nvar endEvents = [];\n\nfunction detectEvents() {\n var testEl = document.createElement('div');\n var style = testEl.style;\n\n if (!('AnimationEvent' in window)) {\n delete START_EVENT_NAME_MAP.animationstart.animation;\n delete END_EVENT_NAME_MAP.animationend.animation;\n }\n\n if (!('TransitionEvent' in window)) {\n delete START_EVENT_NAME_MAP.transitionstart.transition;\n delete END_EVENT_NAME_MAP.transitionend.transition;\n }\n\n function process(EVENT_NAME_MAP, events) {\n for (var baseEventName in EVENT_NAME_MAP) {\n if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {\n var baseEvents = EVENT_NAME_MAP[baseEventName];\n for (var styleName in baseEvents) {\n if (styleName in style) {\n events.push(baseEvents[styleName]);\n break;\n }\n }\n }\n }\n }\n\n process(START_EVENT_NAME_MAP, startEvents);\n process(END_EVENT_NAME_MAP, endEvents);\n}\n\nif (typeof window !== 'undefined' && typeof document !== 'undefined') {\n detectEvents();\n}\n\nfunction addEventListener(node, eventName, eventListener) {\n node.addEventListener(eventName, eventListener, false);\n}\n\nfunction removeEventListener(node, eventName, eventListener) {\n node.removeEventListener(eventName, eventListener, false);\n}\n\nvar TransitionEvents = {\n // Start events\n startEvents: startEvents,\n\n addStartEventListener: function addStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n startEvents.forEach(function (startEvent) {\n addEventListener(node, startEvent, eventListener);\n });\n },\n removeStartEventListener: function removeStartEventListener(node, eventListener) {\n if (startEvents.length === 0) {\n return;\n }\n startEvents.forEach(function (startEvent) {\n removeEventListener(node, startEvent, eventListener);\n });\n },\n\n\n // End events\n endEvents: endEvents,\n\n addEndEventListener: function addEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n window.setTimeout(eventListener, 0);\n return;\n }\n endEvents.forEach(function (endEvent) {\n addEventListener(node, endEvent, eventListener);\n });\n },\n removeEndEventListener: function removeEndEventListener(node, eventListener) {\n if (endEvents.length === 0) {\n return;\n }\n endEvents.forEach(function (endEvent) {\n removeEventListener(node, endEvent, eventListener);\n });\n }\n};\n\nexport default TransitionEvents;","module.exports = function(arr, obj){\n if (arr.indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","/**\n * Module dependencies.\n */\n\ntry {\n var index = require('indexof');\n} catch (err) {\n var index = require('component-indexof');\n}\n\n/**\n * Whitespace regexp.\n */\n\nvar re = /\\s+/;\n\n/**\n * toString reference.\n */\n\nvar toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nmodule.exports = function(el){\n return new ClassList(el);\n};\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name){\n // classList\n if (this.list) {\n this.list.add(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (!~i) arr.push(name);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name){\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n // classList\n if (this.list) {\n this.list.remove(name);\n return this;\n }\n\n // fallback\n var arr = this.array();\n var i = index(arr, name);\n if (~i) arr.splice(i, 1);\n this.el.className = arr.join(' ');\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re){\n var arr = this.array();\n for (var i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force){\n // classList\n if (this.list) {\n if (\"undefined\" !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n }\n\n // fallback\n if (\"undefined\" !== typeof force) {\n if (!force) {\n this.remove(name);\n } else {\n this.add(name);\n }\n } else {\n if (this.has(name)) {\n this.remove(name);\n } else {\n this.add(name);\n }\n }\n\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function(){\n var className = this.el.getAttribute('class') || '';\n var str = className.replace(/^\\s+|\\s+$/g, '');\n var arr = str.split(re);\n if ('' === arr[0]) arr.shift();\n return arr;\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name){\n return this.list\n ? this.list.contains(name)\n : !! ~index(this.array(), name);\n};\n","import _typeof from 'babel-runtime/helpers/typeof';\nimport Event from './Event';\nimport classes from 'component-classes';\n\nvar isCssAnimationSupported = Event.endEvents.length !== 0;\nvar capitalPrefixes = ['Webkit', 'Moz', 'O',\n// ms is special .... !\n'ms'];\nvar prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];\n\nfunction getStyleProperty(node, name) {\n // old ff need null, https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle\n var style = window.getComputedStyle(node, null);\n var ret = '';\n for (var i = 0; i < prefixes.length; i++) {\n ret = style.getPropertyValue(prefixes[i] + name);\n if (ret) {\n break;\n }\n }\n return ret;\n}\n\nfunction fixBrowserByTimeout(node) {\n if (isCssAnimationSupported) {\n var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;\n var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;\n var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;\n var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;\n var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);\n // sometimes, browser bug\n node.rcEndAnimTimeout = setTimeout(function () {\n node.rcEndAnimTimeout = null;\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }, time * 1000 + 200);\n }\n}\n\nfunction clearBrowserBugTimeout(node) {\n if (node.rcEndAnimTimeout) {\n clearTimeout(node.rcEndAnimTimeout);\n node.rcEndAnimTimeout = null;\n }\n}\n\nvar cssAnimation = function cssAnimation(node, transitionName, endCallback) {\n var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';\n var className = nameIsObj ? transitionName.name : transitionName;\n var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';\n var end = endCallback;\n var start = void 0;\n var active = void 0;\n var nodeClasses = classes(node);\n\n if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {\n end = endCallback.end;\n start = endCallback.start;\n active = endCallback.active;\n }\n\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n nodeClasses.remove(className);\n nodeClasses.remove(activeClassName);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional end is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (end) {\n end();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n if (start) {\n start();\n }\n nodeClasses.add(className);\n\n node.rcAnimTimeout = setTimeout(function () {\n node.rcAnimTimeout = null;\n nodeClasses.add(activeClassName);\n if (active) {\n setTimeout(active, 0);\n }\n fixBrowserByTimeout(node);\n // 30ms for firefox\n }, 30);\n\n return {\n stop: function stop() {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n }\n };\n};\n\ncssAnimation.style = function (node, style, callback) {\n if (node.rcEndListener) {\n node.rcEndListener();\n }\n\n node.rcEndListener = function (e) {\n if (e && e.target !== node) {\n return;\n }\n\n if (node.rcAnimTimeout) {\n clearTimeout(node.rcAnimTimeout);\n node.rcAnimTimeout = null;\n }\n\n clearBrowserBugTimeout(node);\n\n Event.removeEndEventListener(node, node.rcEndListener);\n node.rcEndListener = null;\n\n // Usually this optional callback is used for informing an owner of\n // a leave animation and telling it to remove the child.\n if (callback) {\n callback();\n }\n };\n\n Event.addEndEventListener(node, node.rcEndListener);\n\n node.rcAnimTimeout = setTimeout(function () {\n for (var s in style) {\n if (style.hasOwnProperty(s)) {\n node.style[s] = style[s];\n }\n }\n node.rcAnimTimeout = null;\n fixBrowserByTimeout(node);\n }, 0);\n};\n\ncssAnimation.setTransition = function (node, p, value) {\n var property = p;\n var v = value;\n if (value === undefined) {\n v = property;\n property = '';\n }\n property = property || '';\n capitalPrefixes.forEach(function (prefix) {\n node.style[prefix + 'Transition' + property] = v;\n });\n};\n\ncssAnimation.isCssAnimationSupported = isCssAnimationSupported;\n\nexport { isCssAnimationSupported };\n\nexport default cssAnimation;","var util = {\n isAppearSupported: function isAppearSupported(props) {\n return props.transitionName && props.transitionAppear || props.animation.appear;\n },\n isEnterSupported: function isEnterSupported(props) {\n return props.transitionName && props.transitionEnter || props.animation.enter;\n },\n isLeaveSupported: function isLeaveSupported(props) {\n return props.transitionName && props.transitionLeave || props.animation.leave;\n },\n allowAppearCallback: function allowAppearCallback(props) {\n return props.transitionAppear || props.animation.appear;\n },\n allowEnterCallback: function allowEnterCallback(props) {\n return props.transitionEnter || props.animation.enter;\n },\n allowLeaveCallback: function allowLeaveCallback(props) {\n return props.transitionLeave || props.animation.leave;\n }\n};\nexport default util;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport cssAnimate, { isCssAnimationSupported } from 'css-animation';\nimport animUtil from './util/animate';\n\nvar transitionMap = {\n enter: 'transitionEnter',\n appear: 'transitionAppear',\n leave: 'transitionLeave'\n};\n\nvar AnimateChild = function (_React$Component) {\n _inherits(AnimateChild, _React$Component);\n\n function AnimateChild() {\n _classCallCheck(this, AnimateChild);\n\n return _possibleConstructorReturn(this, (AnimateChild.__proto__ || Object.getPrototypeOf(AnimateChild)).apply(this, arguments));\n }\n\n _createClass(AnimateChild, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stop();\n }\n }, {\n key: 'componentWillEnter',\n value: function componentWillEnter(done) {\n if (animUtil.isEnterSupported(this.props)) {\n this.transition('enter', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillAppear',\n value: function componentWillAppear(done) {\n if (animUtil.isAppearSupported(this.props)) {\n this.transition('appear', done);\n } else {\n done();\n }\n }\n }, {\n key: 'componentWillLeave',\n value: function componentWillLeave(done) {\n if (animUtil.isLeaveSupported(this.props)) {\n this.transition('leave', done);\n } else {\n // always sync, do not interupt with react component life cycle\n // update hidden -> animate hidden ->\n // didUpdate -> animate leave -> unmount (if animate is none)\n done();\n }\n }\n }, {\n key: 'transition',\n value: function transition(animationType, finishCallback) {\n var _this2 = this;\n\n var node = ReactDOM.findDOMNode(this);\n var props = this.props;\n var transitionName = props.transitionName;\n var nameIsObj = typeof transitionName === 'object';\n this.stop();\n var end = function end() {\n _this2.stopper = null;\n finishCallback();\n };\n if ((isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {\n var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;\n var activeName = name + '-active';\n if (nameIsObj && transitionName[animationType + 'Active']) {\n activeName = transitionName[animationType + 'Active'];\n }\n this.stopper = cssAnimate(node, {\n name: name,\n active: activeName\n }, end);\n } else {\n this.stopper = props.animation[animationType](node, end);\n }\n }\n }, {\n key: 'stop',\n value: function stop() {\n var stopper = this.stopper;\n if (stopper) {\n this.stopper = null;\n stopper.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return AnimateChild;\n}(React.Component);\n\nAnimateChild.propTypes = {\n children: PropTypes.any,\n animation: PropTypes.any,\n transitionName: PropTypes.any\n};\nexport default AnimateChild;","import _extends from 'babel-runtime/helpers/extends';\nimport _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport unsafeLifecyclesPolyfill from 'rc-util/es/unsafeLifecyclesPolyfill';\nimport { toArrayChildren, mergeChildren, findShownChildInChildrenByKey, findChildInChildrenByKey, isSameChildren } from './ChildrenUtils';\nimport AnimateChild from './AnimateChild';\nimport animUtil from './util/animate';\n\nvar defaultKey = 'rc_animate_' + Date.now();\n\nfunction getChildrenFromProps(props) {\n var children = props.children;\n if (React.isValidElement(children)) {\n if (!children.key) {\n return React.cloneElement(children, {\n key: defaultKey\n });\n }\n }\n return children;\n}\n\nfunction noop() {}\n\nvar Animate = function (_React$Component) {\n _inherits(Animate, _React$Component);\n\n // eslint-disable-line\n\n function Animate(props) {\n _classCallCheck(this, Animate);\n\n var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.currentlyAnimatingKeys = {};\n _this.keysToEnter = [];\n _this.keysToLeave = [];\n\n _this.state = {\n children: toArrayChildren(getChildrenFromProps(props))\n };\n\n _this.childrenRefs = {};\n return _this;\n }\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var showProp = this.props.showProp;\n var children = this.state.children;\n if (showProp) {\n children = children.filter(function (child) {\n return !!child.props[showProp];\n });\n }\n children.forEach(function (child) {\n if (child) {\n _this2.performAppear(child.key);\n }\n });\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _this3 = this;\n\n this.nextProps = nextProps;\n var nextChildren = toArrayChildren(getChildrenFromProps(nextProps));\n var props = this.props;\n // exclusive needs immediate response\n if (props.exclusive) {\n Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {\n _this3.stop(key);\n });\n }\n var showProp = props.showProp;\n var currentlyAnimatingKeys = this.currentlyAnimatingKeys;\n // last props children if exclusive\n var currentChildren = props.exclusive ? toArrayChildren(getChildrenFromProps(props)) : this.state.children;\n // in case destroy in showProp mode\n var newChildren = [];\n if (showProp) {\n currentChildren.forEach(function (currentChild) {\n var nextChild = currentChild && findChildInChildrenByKey(nextChildren, currentChild.key);\n var newChild = void 0;\n if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {\n newChild = React.cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));\n } else {\n newChild = nextChild;\n }\n if (newChild) {\n newChildren.push(newChild);\n }\n });\n nextChildren.forEach(function (nextChild) {\n if (!nextChild || !findChildInChildrenByKey(currentChildren, nextChild.key)) {\n newChildren.push(nextChild);\n }\n });\n } else {\n newChildren = mergeChildren(currentChildren, nextChildren);\n }\n\n // need render to avoid update\n this.setState({\n children: newChildren\n });\n\n nextChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasPrev = child && findChildInChildrenByKey(currentChildren, key);\n if (showProp) {\n var showInNext = child.props[showProp];\n if (hasPrev) {\n var showInNow = findShownChildInChildrenByKey(currentChildren, key, showProp);\n if (!showInNow && showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (showInNext) {\n _this3.keysToEnter.push(key);\n }\n } else if (!hasPrev) {\n _this3.keysToEnter.push(key);\n }\n });\n\n currentChildren.forEach(function (child) {\n var key = child && child.key;\n if (child && currentlyAnimatingKeys[key]) {\n return;\n }\n var hasNext = child && findChildInChildrenByKey(nextChildren, key);\n if (showProp) {\n var showInNow = child.props[showProp];\n if (hasNext) {\n var showInNext = findShownChildInChildrenByKey(nextChildren, key, showProp);\n if (!showInNext && showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (showInNow) {\n _this3.keysToLeave.push(key);\n }\n } else if (!hasNext) {\n _this3.keysToLeave.push(key);\n }\n });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var keysToEnter = this.keysToEnter;\n this.keysToEnter = [];\n keysToEnter.forEach(this.performEnter);\n var keysToLeave = this.keysToLeave;\n this.keysToLeave = [];\n keysToLeave.forEach(this.performLeave);\n }\n }, {\n key: 'isValidChildByKey',\n value: function isValidChildByKey(currentChildren, key) {\n var showProp = this.props.showProp;\n if (showProp) {\n return findShownChildInChildrenByKey(currentChildren, key, showProp);\n }\n return findChildInChildrenByKey(currentChildren, key);\n }\n }, {\n key: 'stop',\n value: function stop(key) {\n delete this.currentlyAnimatingKeys[key];\n var component = this.childrenRefs[key];\n if (component) {\n component.stop();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var props = this.props;\n this.nextProps = props;\n var stateChildren = this.state.children;\n var children = null;\n if (stateChildren) {\n children = stateChildren.map(function (child) {\n if (child === null || child === undefined) {\n return child;\n }\n if (!child.key) {\n throw new Error('must set key for <rc-animate> children');\n }\n return React.createElement(\n AnimateChild,\n {\n key: child.key,\n ref: function ref(node) {\n _this4.childrenRefs[child.key] = node;\n },\n animation: props.animation,\n transitionName: props.transitionName,\n transitionEnter: props.transitionEnter,\n transitionAppear: props.transitionAppear,\n transitionLeave: props.transitionLeave\n },\n child\n );\n });\n }\n var Component = props.component;\n if (Component) {\n var passedProps = props;\n if (typeof Component === 'string') {\n passedProps = _extends({\n className: props.className,\n style: props.style\n }, props.componentProps);\n }\n return React.createElement(\n Component,\n passedProps,\n children\n );\n }\n return children[0] || null;\n }\n }]);\n\n return Animate;\n}(React.Component);\n\nAnimate.isAnimate = true;\nAnimate.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n component: PropTypes.any,\n componentProps: PropTypes.object,\n animation: PropTypes.object,\n transitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n transitionEnter: PropTypes.bool,\n transitionAppear: PropTypes.bool,\n exclusive: PropTypes.bool,\n transitionLeave: PropTypes.bool,\n onEnd: PropTypes.func,\n onEnter: PropTypes.func,\n onLeave: PropTypes.func,\n onAppear: PropTypes.func,\n showProp: PropTypes.string,\n children: PropTypes.node\n};\nAnimate.defaultProps = {\n animation: {},\n component: 'span',\n componentProps: {},\n transitionEnter: true,\n transitionLeave: true,\n transitionAppear: false,\n onEnd: noop,\n onEnter: noop,\n onLeave: noop,\n onAppear: noop\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.performEnter = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillEnter(_this5.handleDoneAdding.bind(_this5, key, 'enter'));\n }\n };\n\n this.performAppear = function (key) {\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillAppear(_this5.handleDoneAdding.bind(_this5, key, 'appear'));\n }\n };\n\n this.handleDoneAdding = function (key, type) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n if (!_this5.isValidChildByKey(currentChildren, key)) {\n // exclusive will not need this\n _this5.performLeave(key);\n } else if (type === 'appear') {\n if (animUtil.allowAppearCallback(props)) {\n props.onAppear(key);\n props.onEnd(key, true);\n }\n } else if (animUtil.allowEnterCallback(props)) {\n props.onEnter(key);\n props.onEnd(key, true);\n }\n };\n\n this.performLeave = function (key) {\n // may already remove by exclusive\n if (_this5.childrenRefs[key]) {\n _this5.currentlyAnimatingKeys[key] = true;\n _this5.childrenRefs[key].componentWillLeave(_this5.handleDoneLeaving.bind(_this5, key));\n }\n };\n\n this.handleDoneLeaving = function (key) {\n var props = _this5.props;\n delete _this5.currentlyAnimatingKeys[key];\n // if update on exclusive mode, skip check\n if (props.exclusive && props !== _this5.nextProps) {\n return;\n }\n var currentChildren = toArrayChildren(getChildrenFromProps(props));\n // in case state change is too fast\n if (_this5.isValidChildByKey(currentChildren, key)) {\n _this5.performEnter(key);\n } else {\n var end = function end() {\n if (animUtil.allowLeaveCallback(props)) {\n props.onLeave(key);\n props.onEnd(key, false);\n }\n };\n if (!isSameChildren(_this5.state.children, currentChildren, props.showProp)) {\n _this5.setState({\n children: currentChildren\n }, end);\n } else {\n end();\n }\n }\n };\n};\n\nexport default unsafeLifecyclesPolyfill(Animate);","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};","import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nvar LazyRenderBox = function (_Component) {\n _inherits(LazyRenderBox, _Component);\n\n function LazyRenderBox() {\n _classCallCheck(this, LazyRenderBox);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n LazyRenderBox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return nextProps.hiddenClassName || nextProps.visible;\n };\n\n LazyRenderBox.prototype.render = function render() {\n var _props = this.props,\n hiddenClassName = _props.hiddenClassName,\n visible = _props.visible,\n props = _objectWithoutProperties(_props, ['hiddenClassName', 'visible']);\n\n if (hiddenClassName || React.Children.count(props.children) > 1) {\n if (!visible && hiddenClassName) {\n props.className += ' ' + hiddenClassName;\n }\n return React.createElement('div', props);\n }\n\n return React.Children.only(props.children);\n };\n\n return LazyRenderBox;\n}(Component);\n\nLazyRenderBox.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n visible: PropTypes.bool,\n hiddenClassName: PropTypes.string\n};\n\n\nexport default LazyRenderBox;","import _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport LazyRenderBox from './LazyRenderBox';\n\nvar PopupInner = function (_Component) {\n _inherits(PopupInner, _Component);\n\n function PopupInner() {\n _classCallCheck(this, PopupInner);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n PopupInner.prototype.render = function render() {\n var props = this.props;\n var className = props.className;\n if (!props.visible) {\n className += ' ' + props.hiddenClassName;\n }\n return React.createElement(\n 'div',\n {\n className: className,\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.onTouchStart,\n style: props.style\n },\n React.createElement(\n LazyRenderBox,\n { className: props.prefixCls + '-content', visible: props.visible },\n props.children\n )\n );\n };\n\n return PopupInner;\n}(Component);\n\nPopupInner.propTypes = {\n hiddenClassName: PropTypes.string,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchStart: PropTypes.func,\n children: PropTypes.any\n};\n\n\nexport default PopupInner;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport Align from 'rc-align';\nimport Animate from 'rc-animate';\nimport PopupInner from './PopupInner';\nimport LazyRenderBox from './LazyRenderBox';\nimport { saveRef } from './utils';\n\nvar Popup = function (_Component) {\n _inherits(Popup, _Component);\n\n function Popup(props) {\n _classCallCheck(this, Popup);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n _this.state = {\n // Used for stretch\n stretchChecked: false,\n targetWidth: undefined,\n targetHeight: undefined\n };\n\n _this.savePopupRef = saveRef.bind(_this, 'popupInstance');\n _this.saveAlignRef = saveRef.bind(_this, 'alignInstance');\n return _this;\n }\n\n Popup.prototype.componentDidMount = function componentDidMount() {\n this.rootNode = this.getPopupDomNode();\n this.setStretchSize();\n };\n\n Popup.prototype.componentDidUpdate = function componentDidUpdate() {\n this.setStretchSize();\n };\n\n // Record size if stretch needed\n\n\n Popup.prototype.getPopupDomNode = function getPopupDomNode() {\n return ReactDOM.findDOMNode(this.popupInstance);\n };\n\n // `target` on `rc-align` can accept as a function to get the bind element or a point.\n // ref: https://www.npmjs.com/package/rc-align\n\n\n Popup.prototype.getMaskTransitionName = function getMaskTransitionName() {\n var props = this.props;\n var transitionName = props.maskTransitionName;\n var animation = props.maskAnimation;\n if (!transitionName && animation) {\n transitionName = props.prefixCls + '-' + animation;\n }\n return transitionName;\n };\n\n Popup.prototype.getTransitionName = function getTransitionName() {\n var props = this.props;\n var transitionName = props.transitionName;\n if (!transitionName && props.animation) {\n transitionName = props.prefixCls + '-' + props.animation;\n }\n return transitionName;\n };\n\n Popup.prototype.getClassName = function getClassName(currentAlignClassName) {\n return this.props.prefixCls + ' ' + this.props.className + ' ' + currentAlignClassName;\n };\n\n Popup.prototype.getPopupElement = function getPopupElement() {\n var _this2 = this;\n\n var savePopupRef = this.savePopupRef;\n var _state = this.state,\n stretchChecked = _state.stretchChecked,\n targetHeight = _state.targetHeight,\n targetWidth = _state.targetWidth;\n var _props = this.props,\n align = _props.align,\n visible = _props.visible,\n prefixCls = _props.prefixCls,\n style = _props.style,\n getClassNameFromAlign = _props.getClassNameFromAlign,\n destroyPopupOnHide = _props.destroyPopupOnHide,\n stretch = _props.stretch,\n children = _props.children,\n onMouseEnter = _props.onMouseEnter,\n onMouseLeave = _props.onMouseLeave,\n onMouseDown = _props.onMouseDown,\n onTouchStart = _props.onTouchStart;\n\n var className = this.getClassName(this.currentAlignClassName || getClassNameFromAlign(align));\n var hiddenClassName = prefixCls + '-hidden';\n\n if (!visible) {\n this.currentAlignClassName = null;\n }\n\n var sizeStyle = {};\n if (stretch) {\n // Stretch with target\n if (stretch.indexOf('height') !== -1) {\n sizeStyle.height = targetHeight;\n } else if (stretch.indexOf('minHeight') !== -1) {\n sizeStyle.minHeight = targetHeight;\n }\n if (stretch.indexOf('width') !== -1) {\n sizeStyle.width = targetWidth;\n } else if (stretch.indexOf('minWidth') !== -1) {\n sizeStyle.minWidth = targetWidth;\n }\n\n // Delay force align to makes ui smooth\n if (!stretchChecked) {\n sizeStyle.visibility = 'hidden';\n setTimeout(function () {\n if (_this2.alignInstance) {\n _this2.alignInstance.forceAlign();\n }\n }, 0);\n }\n }\n\n var newStyle = _extends({}, sizeStyle, style, this.getZIndexStyle());\n\n var popupInnerProps = {\n className: className,\n prefixCls: prefixCls,\n ref: savePopupRef,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseDown: onMouseDown,\n onTouchStart: onTouchStart,\n style: newStyle\n };\n if (destroyPopupOnHide) {\n return React.createElement(\n Animate,\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName()\n },\n visible ? React.createElement(\n Align,\n {\n target: this.getAlignTarget(),\n key: 'popup',\n ref: this.saveAlignRef,\n monitorWindowResize: true,\n align: align,\n onAlign: this.onAlign\n },\n React.createElement(\n PopupInner,\n _extends({\n visible: true\n }, popupInnerProps),\n children\n )\n ) : null\n );\n }\n\n return React.createElement(\n Animate,\n {\n component: '',\n exclusive: true,\n transitionAppear: true,\n transitionName: this.getTransitionName(),\n showProp: 'xVisible'\n },\n React.createElement(\n Align,\n {\n target: this.getAlignTarget(),\n key: 'popup',\n ref: this.saveAlignRef,\n monitorWindowResize: true,\n xVisible: visible,\n childrenProps: { visible: 'xVisible' },\n disabled: !visible,\n align: align,\n onAlign: this.onAlign\n },\n React.createElement(\n PopupInner,\n _extends({\n hiddenClassName: hiddenClassName\n }, popupInnerProps),\n children\n )\n )\n );\n };\n\n Popup.prototype.getZIndexStyle = function getZIndexStyle() {\n var style = {};\n var props = this.props;\n if (props.zIndex !== undefined) {\n style.zIndex = props.zIndex;\n }\n return style;\n };\n\n Popup.prototype.getMaskElement = function getMaskElement() {\n var props = this.props;\n var maskElement = void 0;\n if (props.mask) {\n var maskTransition = this.getMaskTransitionName();\n maskElement = React.createElement(LazyRenderBox, {\n style: this.getZIndexStyle(),\n key: 'mask',\n className: props.prefixCls + '-mask',\n hiddenClassName: props.prefixCls + '-mask-hidden',\n visible: props.visible\n });\n if (maskTransition) {\n maskElement = React.createElement(\n Animate,\n {\n key: 'mask',\n showProp: 'visible',\n transitionAppear: true,\n component: '',\n transitionName: maskTransition\n },\n maskElement\n );\n }\n }\n return maskElement;\n };\n\n Popup.prototype.render = function render() {\n return React.createElement(\n 'div',\n null,\n this.getMaskElement(),\n this.getPopupElement()\n );\n };\n\n return Popup;\n}(Component);\n\nPopup.propTypes = {\n visible: PropTypes.bool,\n style: PropTypes.object,\n getClassNameFromAlign: PropTypes.func,\n onAlign: PropTypes.func,\n getRootDomNode: PropTypes.func,\n align: PropTypes.any,\n destroyPopupOnHide: PropTypes.bool,\n className: PropTypes.string,\n prefixCls: PropTypes.string,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onTouchStart: PropTypes.func,\n stretch: PropTypes.string,\n children: PropTypes.node,\n point: PropTypes.shape({\n pageX: PropTypes.number,\n pageY: PropTypes.number\n })\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this3 = this;\n\n this.onAlign = function (popupDomNode, align) {\n var props = _this3.props;\n var currentAlignClassName = props.getClassNameFromAlign(align);\n // FIX: https://github.com/react-component/trigger/issues/56\n // FIX: https://github.com/react-component/tooltip/issues/79\n if (_this3.currentAlignClassName !== currentAlignClassName) {\n _this3.currentAlignClassName = currentAlignClassName;\n popupDomNode.className = _this3.getClassName(currentAlignClassName);\n }\n props.onAlign(popupDomNode, align);\n };\n\n this.setStretchSize = function () {\n var _props2 = _this3.props,\n stretch = _props2.stretch,\n getRootDomNode = _props2.getRootDomNode,\n visible = _props2.visible;\n var _state2 = _this3.state,\n stretchChecked = _state2.stretchChecked,\n targetHeight = _state2.targetHeight,\n targetWidth = _state2.targetWidth;\n\n\n if (!stretch || !visible) {\n if (stretchChecked) {\n _this3.setState({ stretchChecked: false });\n }\n return;\n }\n\n var $ele = getRootDomNode();\n if (!$ele) return;\n\n var height = $ele.offsetHeight;\n var width = $ele.offsetWidth;\n\n if (targetHeight !== height || targetWidth !== width || !stretchChecked) {\n _this3.setState({\n stretchChecked: true,\n targetHeight: height,\n targetWidth: width\n });\n }\n };\n\n this.getTargetElement = function () {\n return _this3.props.getRootDomNode();\n };\n\n this.getAlignTarget = function () {\n var point = _this3.props.point;\n\n if (point) {\n return point;\n }\n return _this3.getTargetElement;\n };\n};\n\nexport default Popup;","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode, createPortal } from 'react-dom';\nimport { polyfill } from 'react-lifecycles-compat';\nimport contains from 'rc-util/es/Dom/contains';\nimport addEventListener from 'rc-util/es/Dom/addEventListener';\nimport ContainerRender from 'rc-util/es/ContainerRender';\nimport Portal from 'rc-util/es/Portal';\nimport classNames from 'classnames';\n\nimport { getAlignFromPlacement, getAlignPopupClassName } from './utils';\nimport Popup from './Popup';\n\nfunction noop() {}\n\nfunction returnEmptyString() {\n return '';\n}\n\nfunction returnDocument() {\n return window.document;\n}\n\nvar ALL_HANDLERS = ['onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur', 'onContextMenu'];\n\nvar IS_REACT_16 = !!createPortal;\n\nvar contextTypes = {\n rcTrigger: PropTypes.shape({\n onPopupMouseDown: PropTypes.func\n })\n};\n\nvar Trigger = function (_React$Component) {\n _inherits(Trigger, _React$Component);\n\n function Trigger(props) {\n _classCallCheck(this, Trigger);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _initialiseProps.call(_this);\n\n var popupVisible = void 0;\n if ('popupVisible' in props) {\n popupVisible = !!props.popupVisible;\n } else {\n popupVisible = !!props.defaultPopupVisible;\n }\n\n _this.state = {\n prevPopupVisible: popupVisible,\n popupVisible: popupVisible\n };\n\n ALL_HANDLERS.forEach(function (h) {\n _this['fire' + h] = function (e) {\n _this.fireEvents(h, e);\n };\n });\n return _this;\n }\n\n Trigger.prototype.getChildContext = function getChildContext() {\n return {\n rcTrigger: {\n onPopupMouseDown: this.onPopupMouseDown\n }\n };\n };\n\n Trigger.prototype.componentDidMount = function componentDidMount() {\n this.componentDidUpdate({}, {\n popupVisible: this.state.popupVisible\n });\n };\n\n Trigger.prototype.componentDidUpdate = function componentDidUpdate(_, prevState) {\n var props = this.props;\n var state = this.state;\n var triggerAfterPopupVisibleChange = function triggerAfterPopupVisibleChange() {\n if (prevState.popupVisible !== state.popupVisible) {\n props.afterPopupVisibleChange(state.popupVisible);\n }\n };\n if (!IS_REACT_16) {\n this.renderComponent(null, triggerAfterPopupVisibleChange);\n }\n\n // We must listen to `mousedown` or `touchstart`, edge case:\n // https://github.com/ant-design/ant-design/issues/5804\n // https://github.com/react-component/calendar/issues/250\n // https://github.com/react-component/trigger/issues/50\n if (state.popupVisible) {\n var currentDocument = void 0;\n if (!this.clickOutsideHandler && (this.isClickToHide() || this.isContextMenuToShow())) {\n currentDocument = props.getDocument();\n this.clickOutsideHandler = addEventListener(currentDocument, 'mousedown', this.onDocumentClick);\n }\n // always hide on mobile\n if (!this.touchOutsideHandler) {\n currentDocument = currentDocument || props.getDocument();\n this.touchOutsideHandler = addEventListener(currentDocument, 'touchstart', this.onDocumentClick);\n }\n // close popup when trigger type contains 'onContextMenu' and document is scrolling.\n if (!this.contextMenuOutsideHandler1 && this.isContextMenuToShow()) {\n currentDocument = currentDocument || props.getDocument();\n this.contextMenuOutsideHandler1 = addEventListener(currentDocument, 'scroll', this.onContextMenuClose);\n }\n // close popup when trigger type contains 'onContextMenu' and window is blur.\n if (!this.contextMenuOutsideHandler2 && this.isContextMenuToShow()) {\n this.contextMenuOutsideHandler2 = addEventListener(window, 'blur', this.onContextMenuClose);\n }\n return;\n }\n\n this.clearOutsideHandler();\n };\n\n Trigger.prototype.componentWillUnmount = function componentWillUnmount() {\n this.clearDelayTimer();\n this.clearOutsideHandler();\n clearTimeout(this.mouseDownTimeout);\n };\n\n Trigger.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var popupVisible = _ref.popupVisible;\n\n var newState = {};\n\n if (popupVisible !== undefined && prevState.popupVisible !== popupVisible) {\n newState.popupVisible = popupVisible;\n newState.prevPopupVisible = prevState.popupVisible;\n }\n\n return newState;\n };\n\n Trigger.prototype.getPopupDomNode = function getPopupDomNode() {\n // for test\n if (this._component && this._component.getPopupDomNode) {\n return this._component.getPopupDomNode();\n }\n return null;\n };\n\n Trigger.prototype.getPopupAlign = function getPopupAlign() {\n var props = this.props;\n var popupPlacement = props.popupPlacement,\n popupAlign = props.popupAlign,\n builtinPlacements = props.builtinPlacements;\n\n if (popupPlacement && builtinPlacements) {\n return getAlignFromPlacement(builtinPlacements, popupPlacement, popupAlign);\n }\n return popupAlign;\n };\n\n /**\n * @param popupVisible Show or not the popup element\n * @param event SyntheticEvent, used for `pointAlign`\n */\n Trigger.prototype.setPopupVisible = function setPopupVisible(popupVisible, event) {\n var alignPoint = this.props.alignPoint;\n var prevPopupVisible = this.state.popupVisible;\n\n\n this.clearDelayTimer();\n\n if (prevPopupVisible !== popupVisible) {\n if (!('popupVisible' in this.props)) {\n this.setState({ popupVisible: popupVisible, prevPopupVisible: prevPopupVisible });\n }\n this.props.onPopupVisibleChange(popupVisible);\n }\n\n // Always record the point position since mouseEnterDelay will delay the show\n if (alignPoint && event) {\n this.setPoint(event);\n }\n };\n\n Trigger.prototype.delaySetPopupVisible = function delaySetPopupVisible(visible, delayS, event) {\n var _this2 = this;\n\n var delay = delayS * 1000;\n this.clearDelayTimer();\n if (delay) {\n var point = event ? { pageX: event.pageX, pageY: event.pageY } : null;\n this.delayTimer = setTimeout(function () {\n _this2.setPopupVisible(visible, point);\n _this2.clearDelayTimer();\n }, delay);\n } else {\n this.setPopupVisible(visible, event);\n }\n };\n\n Trigger.prototype.clearDelayTimer = function clearDelayTimer() {\n if (this.delayTimer) {\n clearTimeout(this.delayTimer);\n this.delayTimer = null;\n }\n };\n\n Trigger.prototype.clearOutsideHandler = function clearOutsideHandler() {\n if (this.clickOutsideHandler) {\n this.clickOutsideHandler.remove();\n this.clickOutsideHandler = null;\n }\n\n if (this.contextMenuOutsideHandler1) {\n this.contextMenuOutsideHandler1.remove();\n this.contextMenuOutsideHandler1 = null;\n }\n\n if (this.contextMenuOutsideHandler2) {\n this.contextMenuOutsideHandler2.remove();\n this.contextMenuOutsideHandler2 = null;\n }\n\n if (this.touchOutsideHandler) {\n this.touchOutsideHandler.remove();\n this.touchOutsideHandler = null;\n }\n };\n\n Trigger.prototype.createTwoChains = function createTwoChains(event) {\n var childPros = this.props.children.props;\n var props = this.props;\n if (childPros[event] && props[event]) {\n return this['fire' + event];\n }\n return childPros[event] || props[event];\n };\n\n Trigger.prototype.isClickToShow = function isClickToShow() {\n var _props = this.props,\n action = _props.action,\n showAction = _props.showAction;\n\n return action.indexOf('click') !== -1 || showAction.indexOf('click') !== -1;\n };\n\n Trigger.prototype.isContextMenuToShow = function isContextMenuToShow() {\n var _props2 = this.props,\n action = _props2.action,\n showAction = _props2.showAction;\n\n return action.indexOf('contextMenu') !== -1 || showAction.indexOf('contextMenu') !== -1;\n };\n\n Trigger.prototype.isClickToHide = function isClickToHide() {\n var _props3 = this.props,\n action = _props3.action,\n hideAction = _props3.hideAction;\n\n return action.indexOf('click') !== -1 || hideAction.indexOf('click') !== -1;\n };\n\n Trigger.prototype.isMouseEnterToShow = function isMouseEnterToShow() {\n var _props4 = this.props,\n action = _props4.action,\n showAction = _props4.showAction;\n\n return action.indexOf('hover') !== -1 || showAction.indexOf('mouseEnter') !== -1;\n };\n\n Trigger.prototype.isMouseLeaveToHide = function isMouseLeaveToHide() {\n var _props5 = this.props,\n action = _props5.action,\n hideAction = _props5.hideAction;\n\n return action.indexOf('hover') !== -1 || hideAction.indexOf('mouseLeave') !== -1;\n };\n\n Trigger.prototype.isFocusToShow = function isFocusToShow() {\n var _props6 = this.props,\n action = _props6.action,\n showAction = _props6.showAction;\n\n return action.indexOf('focus') !== -1 || showAction.indexOf('focus') !== -1;\n };\n\n Trigger.prototype.isBlurToHide = function isBlurToHide() {\n var _props7 = this.props,\n action = _props7.action,\n hideAction = _props7.hideAction;\n\n return action.indexOf('focus') !== -1 || hideAction.indexOf('blur') !== -1;\n };\n\n Trigger.prototype.forcePopupAlign = function forcePopupAlign() {\n if (this.state.popupVisible && this._component && this._component.alignInstance) {\n this._component.alignInstance.forceAlign();\n }\n };\n\n Trigger.prototype.fireEvents = function fireEvents(type, e) {\n var childCallback = this.props.children.props[type];\n if (childCallback) {\n childCallback(e);\n }\n var callback = this.props[type];\n if (callback) {\n callback(e);\n }\n };\n\n Trigger.prototype.close = function close() {\n this.setPopupVisible(false);\n };\n\n Trigger.prototype.render = function render() {\n var _this3 = this;\n\n var popupVisible = this.state.popupVisible;\n var _props8 = this.props,\n children = _props8.children,\n forceRender = _props8.forceRender,\n alignPoint = _props8.alignPoint,\n className = _props8.className;\n\n var child = React.Children.only(children);\n var newChildProps = { key: 'trigger' };\n\n if (this.isContextMenuToShow()) {\n newChildProps.onContextMenu = this.onContextMenu;\n } else {\n newChildProps.onContextMenu = this.createTwoChains('onContextMenu');\n }\n\n if (this.isClickToHide() || this.isClickToShow()) {\n newChildProps.onClick = this.onClick;\n newChildProps.onMouseDown = this.onMouseDown;\n newChildProps.onTouchStart = this.onTouchStart;\n } else {\n newChildProps.onClick = this.createTwoChains('onClick');\n newChildProps.onMouseDown = this.createTwoChains('onMouseDown');\n newChildProps.onTouchStart = this.createTwoChains('onTouchStart');\n }\n if (this.isMouseEnterToShow()) {\n newChildProps.onMouseEnter = this.onMouseEnter;\n if (alignPoint) {\n newChildProps.onMouseMove = this.onMouseMove;\n }\n } else {\n newChildProps.onMouseEnter = this.createTwoChains('onMouseEnter');\n }\n if (this.isMouseLeaveToHide()) {\n newChildProps.onMouseLeave = this.onMouseLeave;\n } else {\n newChildProps.onMouseLeave = this.createTwoChains('onMouseLeave');\n }\n if (this.isFocusToShow() || this.isBlurToHide()) {\n newChildProps.onFocus = this.onFocus;\n newChildProps.onBlur = this.onBlur;\n } else {\n newChildProps.onFocus = this.createTwoChains('onFocus');\n newChildProps.onBlur = this.createTwoChains('onBlur');\n }\n\n var childrenClassName = classNames(child && child.props && child.props.className, className);\n if (childrenClassName) {\n newChildProps.className = childrenClassName;\n }\n var trigger = React.cloneElement(child, newChildProps);\n\n if (!IS_REACT_16) {\n return React.createElement(\n ContainerRender,\n {\n parent: this,\n visible: popupVisible,\n autoMount: false,\n forceRender: forceRender,\n getComponent: this.getComponent,\n getContainer: this.getContainer\n },\n function (_ref2) {\n var renderComponent = _ref2.renderComponent;\n\n _this3.renderComponent = renderComponent;\n return trigger;\n }\n );\n }\n\n var portal = void 0;\n // prevent unmounting after it's rendered\n if (popupVisible || this._component || forceRender) {\n portal = React.createElement(\n Portal,\n { key: 'portal', getContainer: this.getContainer, didUpdate: this.handlePortalUpdate },\n this.getComponent()\n );\n }\n\n return [trigger, portal];\n };\n\n return Trigger;\n}(React.Component);\n\nTrigger.propTypes = {\n children: PropTypes.any,\n action: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n showAction: PropTypes.any,\n hideAction: PropTypes.any,\n getPopupClassNameFromAlign: PropTypes.any,\n onPopupVisibleChange: PropTypes.func,\n afterPopupVisibleChange: PropTypes.func,\n popup: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n popupStyle: PropTypes.object,\n prefixCls: PropTypes.string,\n popupClassName: PropTypes.string,\n className: PropTypes.string,\n popupPlacement: PropTypes.string,\n builtinPlacements: PropTypes.object,\n popupTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n popupAnimation: PropTypes.any,\n mouseEnterDelay: PropTypes.number,\n mouseLeaveDelay: PropTypes.number,\n zIndex: PropTypes.number,\n focusDelay: PropTypes.number,\n blurDelay: PropTypes.number,\n getPopupContainer: PropTypes.func,\n getDocument: PropTypes.func,\n forceRender: PropTypes.bool,\n destroyPopupOnHide: PropTypes.bool,\n mask: PropTypes.bool,\n maskClosable: PropTypes.bool,\n onPopupAlign: PropTypes.func,\n popupAlign: PropTypes.object,\n popupVisible: PropTypes.bool,\n defaultPopupVisible: PropTypes.bool,\n maskTransitionName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n maskAnimation: PropTypes.string,\n stretch: PropTypes.string,\n alignPoint: PropTypes.bool // Maybe we can support user pass position in the future\n};\nTrigger.contextTypes = contextTypes;\nTrigger.childContextTypes = contextTypes;\nTrigger.defaultProps = {\n prefixCls: 'rc-trigger-popup',\n getPopupClassNameFromAlign: returnEmptyString,\n getDocument: returnDocument,\n onPopupVisibleChange: noop,\n afterPopupVisibleChange: noop,\n onPopupAlign: noop,\n popupClassName: '',\n mouseEnterDelay: 0,\n mouseLeaveDelay: 0.1,\n focusDelay: 0,\n blurDelay: 0.15,\n popupStyle: {},\n destroyPopupOnHide: false,\n popupAlign: {},\n defaultPopupVisible: false,\n mask: false,\n maskClosable: true,\n action: [],\n showAction: [],\n hideAction: []\n};\n\nvar _initialiseProps = function _initialiseProps() {\n var _this4 = this;\n\n this.onMouseEnter = function (e) {\n var mouseEnterDelay = _this4.props.mouseEnterDelay;\n\n _this4.fireEvents('onMouseEnter', e);\n _this4.delaySetPopupVisible(true, mouseEnterDelay, mouseEnterDelay ? null : e);\n };\n\n this.onMouseMove = function (e) {\n _this4.fireEvents('onMouseMove', e);\n _this4.setPoint(e);\n };\n\n this.onMouseLeave = function (e) {\n _this4.fireEvents('onMouseLeave', e);\n _this4.delaySetPopupVisible(false, _this4.props.mouseLeaveDelay);\n };\n\n this.onPopupMouseEnter = function () {\n _this4.clearDelayTimer();\n };\n\n this.onPopupMouseLeave = function (e) {\n // https://github.com/react-component/trigger/pull/13\n // react bug?\n if (e.relatedTarget && !e.relatedTarget.setTimeout && _this4._component && _this4._component.getPopupDomNode && contains(_this4._component.getPopupDomNode(), e.relatedTarget)) {\n return;\n }\n _this4.delaySetPopupVisible(false, _this4.props.mouseLeaveDelay);\n };\n\n this.onFocus = function (e) {\n _this4.fireEvents('onFocus', e);\n // incase focusin and focusout\n _this4.clearDelayTimer();\n if (_this4.isFocusToShow()) {\n _this4.focusTime = Date.now();\n _this4.delaySetPopupVisible(true, _this4.props.focusDelay);\n }\n };\n\n this.onMouseDown = function (e) {\n _this4.fireEvents('onMouseDown', e);\n _this4.preClickTime = Date.now();\n };\n\n this.onTouchStart = function (e) {\n _this4.fireEvents('onTouchStart', e);\n _this4.preTouchTime = Date.now();\n };\n\n this.onBlur = function (e) {\n _this4.fireEvents('onBlur', e);\n _this4.clearDelayTimer();\n if (_this4.isBlurToHide()) {\n _this4.delaySetPopupVisible(false, _this4.props.blurDelay);\n }\n };\n\n this.onContextMenu = function (e) {\n e.preventDefault();\n _this4.fireEvents('onContextMenu', e);\n _this4.setPopupVisible(true, e);\n };\n\n this.onContextMenuClose = function () {\n if (_this4.isContextMenuToShow()) {\n _this4.close();\n }\n };\n\n this.onClick = function (event) {\n _this4.fireEvents('onClick', event);\n // focus will trigger click\n if (_this4.focusTime) {\n var preTime = void 0;\n if (_this4.preClickTime && _this4.preTouchTime) {\n preTime = Math.min(_this4.preClickTime, _this4.preTouchTime);\n } else if (_this4.preClickTime) {\n preTime = _this4.preClickTime;\n } else if (_this4.preTouchTime) {\n preTime = _this4.preTouchTime;\n }\n if (Math.abs(preTime - _this4.focusTime) < 20) {\n return;\n }\n _this4.focusTime = 0;\n }\n _this4.preClickTime = 0;\n _this4.preTouchTime = 0;\n\n // Only prevent default when all the action is click.\n // https://github.com/ant-design/ant-design/issues/17043\n // https://github.com/ant-design/ant-design/issues/17291\n if (_this4.isClickToShow() && (_this4.isClickToHide() || _this4.isBlurToHide()) && event && event.preventDefault) {\n event.preventDefault();\n }\n var nextVisible = !_this4.state.popupVisible;\n if (_this4.isClickToHide() && !nextVisible || nextVisible && _this4.isClickToShow()) {\n _this4.setPopupVisible(!_this4.state.popupVisible, event);\n }\n };\n\n this.onPopupMouseDown = function () {\n var _context$rcTrigger = _this4.context.rcTrigger,\n rcTrigger = _context$rcTrigger === undefined ? {} : _context$rcTrigger;\n\n _this4.hasPopupMouseDown = true;\n\n clearTimeout(_this4.mouseDownTimeout);\n _this4.mouseDownTimeout = setTimeout(function () {\n _this4.hasPopupMouseDown = false;\n }, 0);\n\n if (rcTrigger.onPopupMouseDown) {\n rcTrigger.onPopupMouseDown.apply(rcTrigger, arguments);\n }\n };\n\n this.onDocumentClick = function (event) {\n if (_this4.props.mask && !_this4.props.maskClosable) {\n return;\n }\n\n var target = event.target;\n var root = findDOMNode(_this4);\n if (!contains(root, target) && !_this4.hasPopupMouseDown) {\n _this4.close();\n }\n };\n\n this.getRootDomNode = function () {\n return findDOMNode(_this4);\n };\n\n this.getPopupClassNameFromAlign = function (align) {\n var className = [];\n var _props9 = _this4.props,\n popupPlacement = _props9.popupPlacement,\n builtinPlacements = _props9.builtinPlacements,\n prefixCls = _props9.prefixCls,\n alignPoint = _props9.alignPoint,\n getPopupClassNameFromAlign = _props9.getPopupClassNameFromAlign;\n\n if (popupPlacement && builtinPlacements) {\n className.push(getAlignPopupClassName(builtinPlacements, prefixCls, align, alignPoint));\n }\n if (getPopupClassNameFromAlign) {\n className.push(getPopupClassNameFromAlign(align));\n }\n return className.join(' ');\n };\n\n this.getComponent = function () {\n var _props10 = _this4.props,\n prefixCls = _props10.prefixCls,\n destroyPopupOnHide = _props10.destroyPopupOnHide,\n popupClassName = _props10.popupClassName,\n action = _props10.action,\n onPopupAlign = _props10.onPopupAlign,\n popupAnimation = _props10.popupAnimation,\n popupTransitionName = _props10.popupTransitionName,\n popupStyle = _props10.popupStyle,\n mask = _props10.mask,\n maskAnimation = _props10.maskAnimation,\n maskTransitionName = _props10.maskTransitionName,\n zIndex = _props10.zIndex,\n popup = _props10.popup,\n stretch = _props10.stretch,\n alignPoint = _props10.alignPoint;\n var _state = _this4.state,\n popupVisible = _state.popupVisible,\n point = _state.point;\n\n\n var align = _this4.getPopupAlign();\n\n var mouseProps = {};\n if (_this4.isMouseEnterToShow()) {\n mouseProps.onMouseEnter = _this4.onPopupMouseEnter;\n }\n if (_this4.isMouseLeaveToHide()) {\n mouseProps.onMouseLeave = _this4.onPopupMouseLeave;\n }\n\n mouseProps.onMouseDown = _this4.onPopupMouseDown;\n mouseProps.onTouchStart = _this4.onPopupMouseDown;\n\n return React.createElement(\n Popup,\n _extends({\n prefixCls: prefixCls,\n destroyPopupOnHide: destroyPopupOnHide,\n visible: popupVisible,\n point: alignPoint && point,\n className: popupClassName,\n action: action,\n align: align,\n onAlign: onPopupAlign,\n animation: popupAnimation,\n getClassNameFromAlign: _this4.getPopupClassNameFromAlign\n }, mouseProps, {\n stretch: stretch,\n getRootDomNode: _this4.getRootDomNode,\n style: popupStyle,\n mask: mask,\n zIndex: zIndex,\n transitionName: popupTransitionName,\n maskAnimation: maskAnimation,\n maskTransitionName: maskTransitionName,\n ref: _this4.savePopup\n }),\n typeof popup === 'function' ? popup() : popup\n );\n };\n\n this.getContainer = function () {\n var props = _this4.props;\n\n var popupContainer = document.createElement('div');\n // Make sure default popup container will never cause scrollbar appearing\n // https://github.com/react-component/trigger/issues/41\n popupContainer.style.position = 'absolute';\n popupContainer.style.top = '0';\n popupContainer.style.left = '0';\n popupContainer.style.width = '100%';\n var mountNode = props.getPopupContainer ? props.getPopupContainer(findDOMNode(_this4)) : props.getDocument().body;\n mountNode.appendChild(popupContainer);\n return popupContainer;\n };\n\n this.setPoint = function (point) {\n var alignPoint = _this4.props.alignPoint;\n\n if (!alignPoint || !point) return;\n\n _this4.setState({\n point: {\n pageX: point.pageX,\n pageY: point.pageY\n }\n });\n };\n\n this.handlePortalUpdate = function () {\n if (_this4.state.prevPopupVisible !== _this4.state.popupVisible) {\n _this4.props.afterPopupVisibleChange(_this4.state.popupVisible);\n }\n };\n\n this.savePopup = function (node) {\n _this4._component = node;\n };\n};\n\npolyfill(Trigger);\n\nexport default Trigger;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\n\nvar Header =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Header, _Component);\n\n function Header(props) {\n var _this;\n\n _classCallCheck(this, Header);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Header).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"onInputChange\", function (event) {\n var str = event.target.value;\n\n _this.setState({\n str: str\n });\n\n var _this$props = _this.props,\n format = _this$props.format,\n hourOptions = _this$props.hourOptions,\n minuteOptions = _this$props.minuteOptions,\n secondOptions = _this$props.secondOptions,\n disabledHours = _this$props.disabledHours,\n disabledMinutes = _this$props.disabledMinutes,\n disabledSeconds = _this$props.disabledSeconds,\n onChange = _this$props.onChange;\n\n if (str) {\n var originalValue = _this.props.value;\n\n var value = _this.getProtoValue().clone();\n\n var parsed = moment(str, format, true);\n\n if (!parsed.isValid()) {\n _this.setState({\n invalid: true\n });\n\n return;\n }\n\n value.hour(parsed.hour()).minute(parsed.minute()).second(parsed.second()); // if time value not allowed, response warning.\n\n if (hourOptions.indexOf(value.hour()) < 0 || minuteOptions.indexOf(value.minute()) < 0 || secondOptions.indexOf(value.second()) < 0) {\n _this.setState({\n invalid: true\n });\n\n return;\n } // if time value is disabled, response warning.\n\n\n var disabledHourOptions = disabledHours();\n var disabledMinuteOptions = disabledMinutes(value.hour());\n var disabledSecondOptions = disabledSeconds(value.hour(), value.minute());\n\n if (disabledHourOptions && disabledHourOptions.indexOf(value.hour()) >= 0 || disabledMinuteOptions && disabledMinuteOptions.indexOf(value.minute()) >= 0 || disabledSecondOptions && disabledSecondOptions.indexOf(value.second()) >= 0) {\n _this.setState({\n invalid: true\n });\n\n return;\n }\n\n if (originalValue) {\n if (originalValue.hour() !== value.hour() || originalValue.minute() !== value.minute() || originalValue.second() !== value.second()) {\n // keep other fields for rc-calendar\n var changedValue = originalValue.clone();\n changedValue.hour(value.hour());\n changedValue.minute(value.minute());\n changedValue.second(value.second());\n onChange(changedValue);\n }\n } else if (originalValue !== value) {\n onChange(value);\n }\n } else {\n onChange(null);\n }\n\n _this.setState({\n invalid: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (e) {\n var _this$props2 = _this.props,\n onEsc = _this$props2.onEsc,\n onKeyDown = _this$props2.onKeyDown;\n\n if (e.keyCode === 27) {\n onEsc();\n }\n\n onKeyDown(e);\n });\n\n var _value = props.value,\n _format = props.format;\n _this.state = {\n str: _value && _value.format(_format) || '',\n invalid: false\n };\n return _this;\n }\n\n _createClass(Header, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var focusOnOpen = this.props.focusOnOpen;\n\n if (focusOnOpen) {\n // Wait one frame for the panel to be positioned before focusing\n var requestAnimationFrame = window.requestAnimationFrame || window.setTimeout;\n requestAnimationFrame(function () {\n _this2.refInput.focus();\n\n _this2.refInput.select();\n });\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n value = _this$props3.value,\n format = _this$props3.format;\n\n if (value !== prevProps.value) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n str: value && value.format(format) || '',\n invalid: false\n });\n }\n }\n }, {\n key: \"getProtoValue\",\n value: function getProtoValue() {\n var _this$props4 = this.props,\n value = _this$props4.value,\n defaultOpenValue = _this$props4.defaultOpenValue;\n return value || defaultOpenValue;\n }\n }, {\n key: \"getInput\",\n value: function getInput() {\n var _this3 = this;\n\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n placeholder = _this$props5.placeholder,\n inputReadOnly = _this$props5.inputReadOnly;\n var _this$state = this.state,\n invalid = _this$state.invalid,\n str = _this$state.str;\n var invalidClass = invalid ? \"\".concat(prefixCls, \"-input-invalid\") : '';\n return React.createElement(\"input\", {\n className: classNames(\"\".concat(prefixCls, \"-input\"), invalidClass),\n ref: function ref(_ref) {\n _this3.refInput = _ref;\n },\n onKeyDown: this.onKeyDown,\n value: str,\n placeholder: placeholder,\n onChange: this.onInputChange,\n readOnly: !!inputReadOnly\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var prefixCls = this.props.prefixCls;\n return React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-input-wrap\")\n }, this.getInput());\n }\n }]);\n\n return Header;\n}(Component);\n\n_defineProperty(Header, \"propTypes\", {\n format: PropTypes.string,\n prefixCls: PropTypes.string,\n disabledDate: PropTypes.func,\n placeholder: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n inputReadOnly: PropTypes.bool,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n onChange: PropTypes.func,\n onEsc: PropTypes.func,\n defaultOpenValue: PropTypes.object,\n currentSelectPanel: PropTypes.string,\n focusOnOpen: PropTypes.bool,\n onKeyDown: PropTypes.func,\n clearIcon: PropTypes.node\n});\n\n_defineProperty(Header, \"defaultProps\", {\n inputReadOnly: false\n});\n\nexport default Header;","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint jsx-a11y/no-noninteractive-element-to-interactive-role: 0 */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDom from 'react-dom';\nimport classNames from 'classnames';\nimport raf from 'raf';\n\nvar scrollTo = function scrollTo(element, to, duration) {\n // jump to target if duration zero\n if (duration <= 0) {\n raf(function () {\n element.scrollTop = to;\n });\n return;\n }\n\n var difference = to - element.scrollTop;\n var perTick = difference / duration * 10;\n raf(function () {\n element.scrollTop += perTick;\n if (element.scrollTop === to) return;\n scrollTo(element, to, duration - 10);\n });\n};\n\nvar Select =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Select, _Component);\n\n function Select() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Select);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Select)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n active: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSelect\", function (value) {\n var _this$props = _this.props,\n onSelect = _this$props.onSelect,\n type = _this$props.type;\n onSelect(type, value);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n _this.setState({\n active: true\n });\n\n onMouseEnter(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function () {\n _this.setState({\n active: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"saveList\", function (node) {\n _this.list = node;\n });\n\n return _this;\n }\n\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // jump to selected option\n this.scrollToSelected(0);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var selectedIndex = this.props.selectedIndex; // smooth scroll to selected option\n\n if (prevProps.selectedIndex !== selectedIndex) {\n this.scrollToSelected(120);\n }\n }\n }, {\n key: \"getOptions\",\n value: function getOptions() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n options = _this$props2.options,\n selectedIndex = _this$props2.selectedIndex,\n prefixCls = _this$props2.prefixCls,\n onEsc = _this$props2.onEsc;\n return options.map(function (item, index) {\n var _classNames;\n\n var cls = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-select-option-selected\"), selectedIndex === index), _defineProperty(_classNames, \"\".concat(prefixCls, \"-select-option-disabled\"), item.disabled), _classNames));\n var onClick = item.disabled ? undefined : function () {\n _this2.onSelect(item.value);\n };\n\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === 13) onClick();else if (e.keyCode === 27) onEsc();\n };\n\n return React.createElement(\"li\", {\n role: \"button\",\n onClick: onClick,\n className: cls,\n key: index,\n disabled: item.disabled,\n tabIndex: \"0\",\n onKeyDown: onKeyDown\n }, item.value);\n });\n }\n }, {\n key: \"scrollToSelected\",\n value: function scrollToSelected(duration) {\n // move to selected item\n var selectedIndex = this.props.selectedIndex;\n var select = ReactDom.findDOMNode(this);\n var list = ReactDom.findDOMNode(this.list);\n\n if (!list) {\n return;\n }\n\n var index = selectedIndex;\n\n if (index < 0) {\n index = 0;\n }\n\n var topOption = list.children[index];\n var to = topOption.offsetTop;\n scrollTo(select, to, duration);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n options = _this$props3.options;\n var active = this.state.active;\n\n if (options.length === 0) {\n return null;\n }\n\n var cls = classNames(\"\".concat(prefixCls, \"-select\"), _defineProperty({}, \"\".concat(prefixCls, \"-select-active\"), active));\n return React.createElement(\"div\", {\n className: cls,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave\n }, React.createElement(\"ul\", {\n ref: this.saveList\n }, this.getOptions()));\n }\n }]);\n\n return Select;\n}(Component);\n\n_defineProperty(Select, \"propTypes\", {\n prefixCls: PropTypes.string,\n options: PropTypes.array,\n selectedIndex: PropTypes.number,\n type: PropTypes.string,\n onSelect: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onEsc: PropTypes.func\n});\n\nexport default Select;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Select from './Select';\n\nvar formatOption = function formatOption(option, disabledOptions) {\n var value = \"\".concat(option);\n\n if (option < 10) {\n value = \"0\".concat(option);\n }\n\n var disabled = false;\n\n if (disabledOptions && disabledOptions.indexOf(option) >= 0) {\n disabled = true;\n }\n\n return {\n value: value,\n disabled: disabled\n };\n};\n\nvar Combobox =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Combobox, _Component);\n\n function Combobox() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Combobox);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Combobox)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"onItemChange\", function (type, itemValue) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n defaultOpenValue = _this$props.defaultOpenValue,\n use12Hours = _this$props.use12Hours,\n propValue = _this$props.value,\n isAM = _this$props.isAM,\n onAmPmChange = _this$props.onAmPmChange;\n var value = (propValue || defaultOpenValue).clone();\n\n if (type === 'hour') {\n if (use12Hours) {\n if (isAM) {\n value.hour(+itemValue % 12);\n } else {\n value.hour(+itemValue % 12 + 12);\n }\n } else {\n value.hour(+itemValue);\n }\n } else if (type === 'minute') {\n value.minute(+itemValue);\n } else if (type === 'ampm') {\n var ampm = itemValue.toUpperCase();\n\n if (use12Hours) {\n if (ampm === 'PM' && value.hour() < 12) {\n value.hour(value.hour() % 12 + 12);\n }\n\n if (ampm === 'AM') {\n if (value.hour() >= 12) {\n value.hour(value.hour() - 12);\n }\n }\n }\n\n onAmPmChange(ampm);\n } else {\n value.second(+itemValue);\n }\n\n onChange(value);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEnterSelectPanel\", function (range) {\n var onCurrentSelectPanelChange = _this.props.onCurrentSelectPanelChange;\n onCurrentSelectPanelChange(range);\n });\n\n return _this;\n }\n\n _createClass(Combobox, [{\n key: \"getHourSelect\",\n value: function getHourSelect(hour) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n hourOptions = _this$props2.hourOptions,\n disabledHours = _this$props2.disabledHours,\n showHour = _this$props2.showHour,\n use12Hours = _this$props2.use12Hours,\n onEsc = _this$props2.onEsc;\n\n if (!showHour) {\n return null;\n }\n\n var disabledOptions = disabledHours();\n var hourOptionsAdj;\n var hourAdj;\n\n if (use12Hours) {\n hourOptionsAdj = [12].concat(hourOptions.filter(function (h) {\n return h < 12 && h > 0;\n }));\n hourAdj = hour % 12 || 12;\n } else {\n hourOptionsAdj = hourOptions;\n hourAdj = hour;\n }\n\n return React.createElement(Select, {\n prefixCls: prefixCls,\n options: hourOptionsAdj.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: hourOptionsAdj.indexOf(hourAdj),\n type: \"hour\",\n onSelect: this.onItemChange,\n onMouseEnter: function onMouseEnter() {\n return _this2.onEnterSelectPanel('hour');\n },\n onEsc: onEsc\n });\n }\n }, {\n key: \"getMinuteSelect\",\n value: function getMinuteSelect(minute) {\n var _this3 = this;\n\n var _this$props3 = this.props,\n prefixCls = _this$props3.prefixCls,\n minuteOptions = _this$props3.minuteOptions,\n disabledMinutes = _this$props3.disabledMinutes,\n defaultOpenValue = _this$props3.defaultOpenValue,\n showMinute = _this$props3.showMinute,\n propValue = _this$props3.value,\n onEsc = _this$props3.onEsc;\n\n if (!showMinute) {\n return null;\n }\n\n var value = propValue || defaultOpenValue;\n var disabledOptions = disabledMinutes(value.hour());\n return React.createElement(Select, {\n prefixCls: prefixCls,\n options: minuteOptions.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: minuteOptions.indexOf(minute),\n type: \"minute\",\n onSelect: this.onItemChange,\n onMouseEnter: function onMouseEnter() {\n return _this3.onEnterSelectPanel('minute');\n },\n onEsc: onEsc\n });\n }\n }, {\n key: \"getSecondSelect\",\n value: function getSecondSelect(second) {\n var _this4 = this;\n\n var _this$props4 = this.props,\n prefixCls = _this$props4.prefixCls,\n secondOptions = _this$props4.secondOptions,\n disabledSeconds = _this$props4.disabledSeconds,\n showSecond = _this$props4.showSecond,\n defaultOpenValue = _this$props4.defaultOpenValue,\n propValue = _this$props4.value,\n onEsc = _this$props4.onEsc;\n\n if (!showSecond) {\n return null;\n }\n\n var value = propValue || defaultOpenValue;\n var disabledOptions = disabledSeconds(value.hour(), value.minute());\n return React.createElement(Select, {\n prefixCls: prefixCls,\n options: secondOptions.map(function (option) {\n return formatOption(option, disabledOptions);\n }),\n selectedIndex: secondOptions.indexOf(second),\n type: \"second\",\n onSelect: this.onItemChange,\n onMouseEnter: function onMouseEnter() {\n return _this4.onEnterSelectPanel('second');\n },\n onEsc: onEsc\n });\n }\n }, {\n key: \"getAMPMSelect\",\n value: function getAMPMSelect() {\n var _this5 = this;\n\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n use12Hours = _this$props5.use12Hours,\n format = _this$props5.format,\n isAM = _this$props5.isAM,\n onEsc = _this$props5.onEsc;\n\n if (!use12Hours) {\n return null;\n }\n\n var AMPMOptions = ['am', 'pm'] // If format has A char, then we should uppercase AM/PM\n .map(function (c) {\n return format.match(/\\sA/) ? c.toUpperCase() : c;\n }).map(function (c) {\n return {\n value: c\n };\n });\n var selected = isAM ? 0 : 1;\n return React.createElement(Select, {\n prefixCls: prefixCls,\n options: AMPMOptions,\n selectedIndex: selected,\n type: \"ampm\",\n onSelect: this.onItemChange,\n onMouseEnter: function onMouseEnter() {\n return _this5.onEnterSelectPanel('ampm');\n },\n onEsc: onEsc\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n prefixCls = _this$props6.prefixCls,\n defaultOpenValue = _this$props6.defaultOpenValue,\n propValue = _this$props6.value;\n var value = propValue || defaultOpenValue;\n return React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-combobox\")\n }, this.getHourSelect(value.hour()), this.getMinuteSelect(value.minute()), this.getSecondSelect(value.second()), this.getAMPMSelect(value.hour()));\n }\n }]);\n\n return Combobox;\n}(Component);\n\n_defineProperty(Combobox, \"propTypes\", {\n format: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n prefixCls: PropTypes.string,\n value: PropTypes.object,\n onChange: PropTypes.func,\n onAmPmChange: PropTypes.func,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n hourOptions: PropTypes.array,\n minuteOptions: PropTypes.array,\n secondOptions: PropTypes.array,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n onCurrentSelectPanelChange: PropTypes.func,\n use12Hours: PropTypes.bool,\n onEsc: PropTypes.func,\n isAM: PropTypes.bool\n});\n\nexport default Combobox;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { polyfill } from 'react-lifecycles-compat';\nimport Header from './Header';\nimport Combobox from './Combobox';\n\nfunction noop() {}\n\nfunction generateOptions(length, disabledOptions, hideDisabledOptions) {\n var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var arr = [];\n\n for (var value = 0; value < length; value += step) {\n if (!disabledOptions || disabledOptions.indexOf(value) < 0 || !hideDisabledOptions) {\n arr.push(value);\n }\n }\n\n return arr;\n}\n\nfunction toNearestValidTime(time, hourOptions, minuteOptions, secondOptions) {\n var hour = hourOptions.slice().sort(function (a, b) {\n return Math.abs(time.hour() - a) - Math.abs(time.hour() - b);\n })[0];\n var minute = minuteOptions.slice().sort(function (a, b) {\n return Math.abs(time.minute() - a) - Math.abs(time.minute() - b);\n })[0];\n var second = secondOptions.slice().sort(function (a, b) {\n return Math.abs(time.second() - a) - Math.abs(time.second() - b);\n })[0];\n return moment(\"\".concat(hour, \":\").concat(minute, \":\").concat(second), 'HH:mm:ss');\n}\n\nvar Panel =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Panel, _Component);\n\n function Panel() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Panel);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Panel)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (newValue) {\n var onChange = _this.props.onChange;\n\n _this.setState({\n value: newValue\n });\n\n onChange(newValue);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAmPmChange\", function (ampm) {\n var onAmPmChange = _this.props.onAmPmChange;\n onAmPmChange(ampm);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onCurrentSelectPanelChange\", function (currentSelectPanel) {\n _this.setState({\n currentSelectPanel: currentSelectPanel\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disabledHours\", function () {\n var _this$props = _this.props,\n use12Hours = _this$props.use12Hours,\n disabledHours = _this$props.disabledHours;\n var disabledOptions = disabledHours();\n\n if (use12Hours && Array.isArray(disabledOptions)) {\n if (_this.isAM()) {\n disabledOptions = disabledOptions.filter(function (h) {\n return h < 12;\n }).map(function (h) {\n return h === 0 ? 12 : h;\n });\n } else {\n disabledOptions = disabledOptions.map(function (h) {\n return h === 12 ? 12 : h - 12;\n });\n }\n }\n\n return disabledOptions;\n });\n\n return _this;\n }\n\n _createClass(Panel, [{\n key: \"close\",\n // https://github.com/ant-design/ant-design/issues/5829\n value: function close() {\n var onEsc = this.props.onEsc;\n onEsc();\n }\n }, {\n key: \"isAM\",\n value: function isAM() {\n var defaultOpenValue = this.props.defaultOpenValue;\n var value = this.state.value;\n var realValue = value || defaultOpenValue;\n return realValue.hour() >= 0 && realValue.hour() < 12;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n placeholder = _this$props2.placeholder,\n disabledMinutes = _this$props2.disabledMinutes,\n disabledSeconds = _this$props2.disabledSeconds,\n hideDisabledOptions = _this$props2.hideDisabledOptions,\n showHour = _this$props2.showHour,\n showMinute = _this$props2.showMinute,\n showSecond = _this$props2.showSecond,\n format = _this$props2.format,\n defaultOpenValue = _this$props2.defaultOpenValue,\n clearText = _this$props2.clearText,\n onEsc = _this$props2.onEsc,\n addon = _this$props2.addon,\n use12Hours = _this$props2.use12Hours,\n focusOnOpen = _this$props2.focusOnOpen,\n onKeyDown = _this$props2.onKeyDown,\n hourStep = _this$props2.hourStep,\n minuteStep = _this$props2.minuteStep,\n secondStep = _this$props2.secondStep,\n inputReadOnly = _this$props2.inputReadOnly,\n clearIcon = _this$props2.clearIcon;\n var _this$state = this.state,\n value = _this$state.value,\n currentSelectPanel = _this$state.currentSelectPanel;\n var disabledHourOptions = this.disabledHours();\n var disabledMinuteOptions = disabledMinutes(value ? value.hour() : null);\n var disabledSecondOptions = disabledSeconds(value ? value.hour() : null, value ? value.minute() : null);\n var hourOptions = generateOptions(24, disabledHourOptions, hideDisabledOptions, hourStep);\n var minuteOptions = generateOptions(60, disabledMinuteOptions, hideDisabledOptions, minuteStep);\n var secondOptions = generateOptions(60, disabledSecondOptions, hideDisabledOptions, secondStep);\n var validDefaultOpenValue = toNearestValidTime(defaultOpenValue, hourOptions, minuteOptions, secondOptions);\n return React.createElement(\"div\", {\n className: classNames(className, \"\".concat(prefixCls, \"-inner\"))\n }, React.createElement(Header, {\n clearText: clearText,\n prefixCls: prefixCls,\n defaultOpenValue: validDefaultOpenValue,\n value: value,\n currentSelectPanel: currentSelectPanel,\n onEsc: onEsc,\n format: format,\n placeholder: placeholder,\n hourOptions: hourOptions,\n minuteOptions: minuteOptions,\n secondOptions: secondOptions,\n disabledHours: this.disabledHours,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n onChange: this.onChange,\n focusOnOpen: focusOnOpen,\n onKeyDown: onKeyDown,\n inputReadOnly: inputReadOnly,\n clearIcon: clearIcon\n }), React.createElement(Combobox, {\n prefixCls: prefixCls,\n value: value,\n defaultOpenValue: validDefaultOpenValue,\n format: format,\n onChange: this.onChange,\n onAmPmChange: this.onAmPmChange,\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n hourOptions: hourOptions,\n minuteOptions: minuteOptions,\n secondOptions: secondOptions,\n disabledHours: this.disabledHours,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n onCurrentSelectPanelChange: this.onCurrentSelectPanelChange,\n use12Hours: use12Hours,\n onEsc: onEsc,\n isAM: this.isAM()\n }), addon(this));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n if ('value' in props) {\n return _objectSpread({}, state, {\n value: props.value\n });\n }\n\n return null;\n }\n }]);\n\n return Panel;\n}(Component);\n\n_defineProperty(Panel, \"propTypes\", {\n clearText: PropTypes.string,\n prefixCls: PropTypes.string,\n className: PropTypes.string,\n defaultOpenValue: PropTypes.object,\n value: PropTypes.object,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n inputReadOnly: PropTypes.bool,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n onChange: PropTypes.func,\n onAmPmChange: PropTypes.func,\n onEsc: PropTypes.func,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n use12Hours: PropTypes.bool,\n hourStep: PropTypes.number,\n minuteStep: PropTypes.number,\n secondStep: PropTypes.number,\n addon: PropTypes.func,\n focusOnOpen: PropTypes.bool,\n onKeyDown: PropTypes.func,\n clearIcon: PropTypes.node\n});\n\n_defineProperty(Panel, \"defaultProps\", {\n prefixCls: 'rc-time-picker-panel',\n onChange: noop,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n defaultOpenValue: moment(),\n use12Hours: false,\n addon: noop,\n onKeyDown: noop,\n onAmPmChange: noop,\n inputReadOnly: false\n});\n\npolyfill(Panel);\nexport default Panel;","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n bottomLeft: {\n points: ['tl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -3],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n },\n topLeft: {\n points: ['bl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 3],\n targetOffset: targetOffset\n }\n};\nexport default placements;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint jsx-a11y/no-autofocus: 0 */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Trigger from 'rc-trigger';\nimport moment from 'moment';\nimport { polyfill } from 'react-lifecycles-compat';\nimport classNames from 'classnames';\nimport Panel from './Panel';\nimport placements from './placements';\n\nfunction noop() {}\n\nfunction refFn(field, component) {\n this[field] = component;\n}\n\nvar Picker =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Picker, _Component);\n\n function Picker(props) {\n var _this;\n\n _classCallCheck(this, Picker);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Picker).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"onPanelChange\", function (value) {\n _this.setValue(value);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onAmPmChange\", function (ampm) {\n var onAmPmChange = _this.props.onAmPmChange;\n onAmPmChange(ampm);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClear\", function (event) {\n event.stopPropagation();\n\n _this.setValue(null);\n\n _this.setOpen(false);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onVisibleChange\", function (open) {\n _this.setOpen(open);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onEsc\", function () {\n _this.setOpen(false);\n\n _this.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (e) {\n if (e.keyCode === 40) {\n _this.setOpen(true);\n }\n });\n\n _this.saveInputRef = refFn.bind(_assertThisInitialized(_this), 'picker');\n _this.savePanelRef = refFn.bind(_assertThisInitialized(_this), 'panelInstance');\n\n var defaultOpen = props.defaultOpen,\n defaultValue = props.defaultValue,\n _props$open = props.open,\n _open = _props$open === void 0 ? defaultOpen : _props$open,\n _props$value = props.value,\n _value = _props$value === void 0 ? defaultValue : _props$value;\n\n _this.state = {\n open: _open,\n value: _value\n };\n return _this;\n }\n\n _createClass(Picker, [{\n key: \"setValue\",\n value: function setValue(value) {\n var onChange = this.props.onChange;\n\n if (!('value' in this.props)) {\n this.setState({\n value: value\n });\n }\n\n onChange(value);\n }\n }, {\n key: \"getFormat\",\n value: function getFormat() {\n var _this$props = this.props,\n format = _this$props.format,\n showHour = _this$props.showHour,\n showMinute = _this$props.showMinute,\n showSecond = _this$props.showSecond,\n use12Hours = _this$props.use12Hours;\n\n if (format) {\n return format;\n }\n\n if (use12Hours) {\n var fmtString = [showHour ? 'h' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {\n return !!item;\n }).join(':');\n return fmtString.concat(' a');\n }\n\n return [showHour ? 'HH' : '', showMinute ? 'mm' : '', showSecond ? 'ss' : ''].filter(function (item) {\n return !!item;\n }).join(':');\n }\n }, {\n key: \"getPanelElement\",\n value: function getPanelElement() {\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n placeholder = _this$props2.placeholder,\n disabledHours = _this$props2.disabledHours,\n disabledMinutes = _this$props2.disabledMinutes,\n disabledSeconds = _this$props2.disabledSeconds,\n hideDisabledOptions = _this$props2.hideDisabledOptions,\n inputReadOnly = _this$props2.inputReadOnly,\n showHour = _this$props2.showHour,\n showMinute = _this$props2.showMinute,\n showSecond = _this$props2.showSecond,\n defaultOpenValue = _this$props2.defaultOpenValue,\n clearText = _this$props2.clearText,\n addon = _this$props2.addon,\n use12Hours = _this$props2.use12Hours,\n focusOnOpen = _this$props2.focusOnOpen,\n onKeyDown = _this$props2.onKeyDown,\n hourStep = _this$props2.hourStep,\n minuteStep = _this$props2.minuteStep,\n secondStep = _this$props2.secondStep,\n clearIcon = _this$props2.clearIcon;\n var value = this.state.value;\n return React.createElement(Panel, {\n clearText: clearText,\n prefixCls: \"\".concat(prefixCls, \"-panel\"),\n ref: this.savePanelRef,\n value: value,\n inputReadOnly: inputReadOnly,\n onChange: this.onPanelChange,\n onAmPmChange: this.onAmPmChange,\n defaultOpenValue: defaultOpenValue,\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n onEsc: this.onEsc,\n format: this.getFormat(),\n placeholder: placeholder,\n disabledHours: disabledHours,\n disabledMinutes: disabledMinutes,\n disabledSeconds: disabledSeconds,\n hideDisabledOptions: hideDisabledOptions,\n use12Hours: use12Hours,\n hourStep: hourStep,\n minuteStep: minuteStep,\n secondStep: secondStep,\n addon: addon,\n focusOnOpen: focusOnOpen,\n onKeyDown: onKeyDown,\n clearIcon: clearIcon\n });\n }\n }, {\n key: \"getPopupClassName\",\n value: function getPopupClassName() {\n var _this$props3 = this.props,\n showHour = _this$props3.showHour,\n showMinute = _this$props3.showMinute,\n showSecond = _this$props3.showSecond,\n use12Hours = _this$props3.use12Hours,\n prefixCls = _this$props3.prefixCls,\n popupClassName = _this$props3.popupClassName;\n var selectColumnCount = 0;\n\n if (showHour) {\n selectColumnCount += 1;\n }\n\n if (showMinute) {\n selectColumnCount += 1;\n }\n\n if (showSecond) {\n selectColumnCount += 1;\n }\n\n if (use12Hours) {\n selectColumnCount += 1;\n } // Keep it for old compatibility\n\n\n return classNames(popupClassName, _defineProperty({}, \"\".concat(prefixCls, \"-panel-narrow\"), (!showHour || !showMinute || !showSecond) && !use12Hours), \"\".concat(prefixCls, \"-panel-column-\").concat(selectColumnCount));\n }\n }, {\n key: \"setOpen\",\n value: function setOpen(open) {\n var _this$props4 = this.props,\n onOpen = _this$props4.onOpen,\n onClose = _this$props4.onClose;\n var currentOpen = this.state.open;\n\n if (currentOpen !== open) {\n if (!('open' in this.props)) {\n this.setState({\n open: open\n });\n }\n\n if (open) {\n onOpen({\n open: open\n });\n } else {\n onClose({\n open: open\n });\n }\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.picker.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this.picker.blur();\n }\n }, {\n key: \"renderClearButton\",\n value: function renderClearButton() {\n var _this2 = this;\n\n var value = this.state.value;\n var _this$props5 = this.props,\n prefixCls = _this$props5.prefixCls,\n allowEmpty = _this$props5.allowEmpty,\n clearIcon = _this$props5.clearIcon,\n clearText = _this$props5.clearText,\n disabled = _this$props5.disabled;\n\n if (!allowEmpty || !value || disabled) {\n return null;\n }\n\n if (React.isValidElement(clearIcon)) {\n var _ref = clearIcon.props || {},\n _onClick = _ref.onClick;\n\n return React.cloneElement(clearIcon, {\n onClick: function onClick() {\n if (_onClick) _onClick.apply(void 0, arguments);\n\n _this2.onClear.apply(_this2, arguments);\n }\n });\n }\n\n return React.createElement(\"a\", {\n role: \"button\",\n className: \"\".concat(prefixCls, \"-clear\"),\n title: clearText,\n onClick: this.onClear,\n tabIndex: 0\n }, clearIcon || React.createElement(\"i\", {\n className: \"\".concat(prefixCls, \"-clear-icon\")\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n prefixCls = _this$props6.prefixCls,\n placeholder = _this$props6.placeholder,\n placement = _this$props6.placement,\n align = _this$props6.align,\n id = _this$props6.id,\n disabled = _this$props6.disabled,\n transitionName = _this$props6.transitionName,\n style = _this$props6.style,\n className = _this$props6.className,\n getPopupContainer = _this$props6.getPopupContainer,\n name = _this$props6.name,\n autoComplete = _this$props6.autoComplete,\n onFocus = _this$props6.onFocus,\n onBlur = _this$props6.onBlur,\n autoFocus = _this$props6.autoFocus,\n inputReadOnly = _this$props6.inputReadOnly,\n inputIcon = _this$props6.inputIcon,\n popupStyle = _this$props6.popupStyle;\n var _this$state = this.state,\n open = _this$state.open,\n value = _this$state.value;\n var popupClassName = this.getPopupClassName();\n return React.createElement(Trigger, {\n prefixCls: \"\".concat(prefixCls, \"-panel\"),\n popupClassName: popupClassName,\n popupStyle: popupStyle,\n popup: this.getPanelElement(),\n popupAlign: align,\n builtinPlacements: placements,\n popupPlacement: placement,\n action: disabled ? [] : ['click'],\n destroyPopupOnHide: true,\n getPopupContainer: getPopupContainer,\n popupTransitionName: transitionName,\n popupVisible: open,\n onPopupVisibleChange: this.onVisibleChange\n }, React.createElement(\"span\", {\n className: classNames(prefixCls, className),\n style: style\n }, React.createElement(\"input\", {\n className: \"\".concat(prefixCls, \"-input\"),\n ref: this.saveInputRef,\n type: \"text\",\n placeholder: placeholder,\n name: name,\n onKeyDown: this.onKeyDown,\n disabled: disabled,\n value: value && value.format(this.getFormat()) || '',\n autoComplete: autoComplete,\n onFocus: onFocus,\n onBlur: onBlur,\n autoFocus: autoFocus,\n onChange: noop,\n readOnly: !!inputReadOnly,\n id: id\n }), inputIcon || React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }), this.renderClearButton()));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var newState = {};\n\n if ('value' in props) {\n newState.value = props.value;\n }\n\n if (props.open !== undefined) {\n newState.open = props.open;\n }\n\n return Object.keys(newState).length > 0 ? _objectSpread({}, state, {}, newState) : null;\n }\n }]);\n\n return Picker;\n}(Component);\n\n_defineProperty(Picker, \"propTypes\", {\n prefixCls: PropTypes.string,\n clearText: PropTypes.string,\n value: PropTypes.object,\n defaultOpenValue: PropTypes.object,\n inputReadOnly: PropTypes.bool,\n disabled: PropTypes.bool,\n allowEmpty: PropTypes.bool,\n defaultValue: PropTypes.object,\n open: PropTypes.bool,\n defaultOpen: PropTypes.bool,\n align: PropTypes.object,\n placement: PropTypes.any,\n transitionName: PropTypes.string,\n getPopupContainer: PropTypes.func,\n placeholder: PropTypes.string,\n format: PropTypes.string,\n showHour: PropTypes.bool,\n showMinute: PropTypes.bool,\n showSecond: PropTypes.bool,\n style: PropTypes.object,\n className: PropTypes.string,\n popupClassName: PropTypes.string,\n popupStyle: PropTypes.object,\n disabledHours: PropTypes.func,\n disabledMinutes: PropTypes.func,\n disabledSeconds: PropTypes.func,\n hideDisabledOptions: PropTypes.bool,\n onChange: PropTypes.func,\n onAmPmChange: PropTypes.func,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n addon: PropTypes.func,\n name: PropTypes.string,\n autoComplete: PropTypes.string,\n use12Hours: PropTypes.bool,\n hourStep: PropTypes.number,\n minuteStep: PropTypes.number,\n secondStep: PropTypes.number,\n focusOnOpen: PropTypes.bool,\n onKeyDown: PropTypes.func,\n autoFocus: PropTypes.bool,\n id: PropTypes.string,\n inputIcon: PropTypes.node,\n clearIcon: PropTypes.node\n});\n\n_defineProperty(Picker, \"defaultProps\", {\n clearText: 'clear',\n prefixCls: 'rc-time-picker',\n defaultOpen: false,\n inputReadOnly: false,\n style: {},\n className: '',\n popupClassName: '',\n popupStyle: {},\n align: {},\n defaultOpenValue: moment(),\n allowEmpty: true,\n showHour: true,\n showMinute: true,\n showSecond: true,\n disabledHours: noop,\n disabledMinutes: noop,\n disabledSeconds: noop,\n hideDisabledOptions: false,\n placement: 'bottomLeft',\n onChange: noop,\n onAmPmChange: noop,\n onOpen: noop,\n onClose: noop,\n onFocus: noop,\n onBlur: noop,\n addon: noop,\n use12Hours: false,\n focusOnOpen: false,\n onKeyDown: noop\n});\n\npolyfill(Picker);\nexport default Picker;","import React from \"react\";\nimport TimePicker from \"rc-time-picker\";\n\nexport default ({ reportTime, setReportTime }) => {\n return (\n <TimePicker\n value={reportTime}\n onChange={setReportTime}\n minuteStep={15}\n allowEmpty={false}\n showSecond={false}\n />\n )\n}","import React from \"react\";\nimport Select from \"react-select\";\n\nexport default ({ availableCcUsers, ccUsers, setCcUsers }) => (\n <Select isMulti='true'\n getOptionLabel={opt => opt.name}\n getOptionValue={opt => opt.id}\n options={availableCcUsers}\n value={ccUsers}\n onChange={setCcUsers}\n />\n);\n","import React, { useEffect } from 'react';\nimport axios from \"axios\";\nimport api from './api';\nimport MegaFilter from '../../MegaFilter/Index'\nimport DateInput from 'src/components/DateInput'\nimport FormError from '../Components/FormError'\n\nimport ReportTypes from '../Components/ReportTypes';\nimport ReportIntervals from '../Components/ReportIntervals';\nimport ReportExportType from '../Components/ReportExportType';\nimport ReportDays from \"../Components/ReportDays\";\nimport ReportTime from \"../Components/ReportTime\";\nimport ReportUsers from \"../Components/ReportUsers\";\n\nexport default ({ id, state, dispatch }) => {\n const { reportTypes, reportType, reportTypeKey, searchFilters, startDate, weekDays, availableExportOptions,\n exportType, reportTime, reportInterval, errors, availableReportIntervals,\n showCcUsersSelector, ccUsers, availableCcUsers} = state;\n\n const setReportTypes = (reportTypes) => { dispatch({ type: 'setReportTypes', payload: reportTypes }) };\n const setReportType = (value) => { dispatch({ type: 'setReportType', value: value }) };\n const handleFiltersChange = (value) => { dispatch({ type: 'setSearchFilters', value: value }) };\n const setStartDate = (value) => { dispatch({ type: 'setStartDate', value: value }) };\n const setWeekDays = (value) => { dispatch({ type: 'setWeekDays', value: value }) };\n const setExportType = (value) => { dispatch({ type: 'setExportType', value: value }) };\n const setReportTime = (value) => { dispatch({ type: 'setReportTime', value: value }) };\n const setReportInterval = (value) => { dispatch({ type: 'setReportInterval', value: value }) };\n const setCcUsers= (value) => dispatch({ type: 'setCcUsers', value: value });\n\n\n useEffect(() => {\n if (state.status === 'pending') {\n axios\n .get('/admin/reports/schedules/reports.json')\n .then((response) => setReportTypes(response.data.reportTypes));\n } else if (state.status === 'report_types_present') {\n axios\n .get(`/admin/reports/schedules/${id || 'new'}.json`)\n .then((response) => {\n dispatch({ type: 'assignSchedule', options: { reportTypes: reportTypes }, payload: response.data });\n });\n }\n }, [state.status]);\n\n useEffect(() => {\n if (state.venueId !== null) {\n api.fetchUsers(state.venueId, state.reportTypeKey).then((response) => {\n dispatch({ type: 'setVenueUsers', payload: response.data });\n })\n }\n }, [state.venueId, state.reportTypeKey])\n \n if (reportTypes.length === 0) return null;\n\n return (\n <form className=\"simple_form report-schedules-form\" action=\"#\" id='report-schedules-form'>\n <div className=\"row vert-offset-bottom-15\">\n <div className='col-md-4 form-item'>\n <label>Type</label>\n <ReportTypes reportTypes={reportTypes}\n reportTypeKey={reportTypeKey}\n onSelectReportType={setReportType}/>\n </div>\n\n <div className='col-md-4 form-item'>\n <label>Interval</label>\n <ReportIntervals availableReportIntervals={availableReportIntervals}\n reportInterval={reportInterval}\n setReportInterval={setReportInterval}\n />\n </div>\n <div className='col-md-4 form-item'>\n <label>Export</label>\n <ReportExportType availableExportOptions={availableExportOptions}\n exportType={exportType}\n setExportType={setExportType}\n />\n </div>\n <div className='col-md-4' />\n <div className='col-md-8'>\n <FormError errors={errors} name='export_type'/>\n </div>\n </div>\n <div className=\"row vert-offset-bottom-15\">\n <div className='col-md-4 start-date-input form-item'>\n <label>Start date to receive emails</label>\n {startDate && <DateInput onChange={setStartDate} value={startDate}/>}\n </div>\n <div className='col-md-4 form-item'>\n <label>Time to receive emails</label>\n <ReportTime reportTime={reportTime} setReportTime={setReportTime}/>\n </div>\n <div className='col-md-4 form-item'>\n <label>Days to receive emails</label>\n <ReportDays weekDays={weekDays} setWeekDays={setWeekDays}/>\n </div>\n </div>\n <div className=\"row vert-offset-bottom-15\">\n <div className='col-md-12 reports-section form-item'>\n { reportType && <MegaFilter onUpdated={handleFiltersChange} item={reportType} options={searchFilters}/>}\n </div>\n {showCcUsersSelector && (availableCcUsers.length > 1 || ccUsers.length > 1) &&\n <div className='col-md-12 form-item'>\n <label>Users to receive emails</label>\n <ReportUsers availableCcUsers={availableCcUsers}\n ccUsers={ccUsers}\n setCcUsers={setCcUsers}/>\n <FormError errors={errors} name='cc_users'/>\n </div>\n }\n </div>\n\n <FormError errors={errors} name='base'/>\n </form>\n );\n};\n","import React from 'react';\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n console.log(error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <div className=\"alert alert-danger fade in alert-dismissible text-center\">\n Something went wrong.\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n","import moment from 'moment';\n\nconst dayNames = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n\nexport const initialState = {\n status: 'pending',\n id: null,\n reportType: null,\n reportTypeKey: null,\n searchFilters: {},\n startDate: null,\n weekDays: [],\n exportType: null,\n reportTime: moment('20:00', 'HH:mm'),\n ccUsers: [],\n reportInterval: null,\n errors: {},\n reportTypes: [],\n availableCcUsers: [],\n availableReportIntervals: [],\n availableExportOptions: [],\n venueId: null,\n showCcUsersSelector: false\n}\n\nfunction findReportType(reportTypes, reportTypeKey) {\n return reportTypes.find(item => item.key === reportTypeKey)\n}\n\nfunction filterReportIntervals(reportType, venueId) {\n if (!reportType) return [];\n\n const reportTypeKey = reportType.key;\n const list = reportType.availableTimePeriods;\n const singleVenue = (typeof venueId === 'number');\n\n if (reportTypeKey === 'activities' && !singleVenue) {\n return list.filter(item => item !== 'this_month');\n } else {\n return list\n }\n}\n\nexport function reducer(state, action) {\n switch (action.type) {\n case 'setReportTypes': {\n return {\n ...state,\n status: 'report_types_present',\n reportTypes: action.payload\n };\n }\n case 'assignSchedule': {\n const { payload } = action;\n\n const obj = {};\n obj.reportTypeKey = payload.report;\n obj.reportType = findReportType(state.reportTypes, payload.report);\n\n if (action.payload.filters !== null) obj.searchFilters = action.payload.filters;\n\n obj.startDate = moment(payload.startDate).toDate();\n obj.weekDays = (payload.weekDays || []).map(dayNumber => ({ label: dayNames[dayNumber], value: dayNumber}));\n obj.exportType = payload.exportType;\n obj.reportTime = moment(payload.reportTime);\n obj.ccUsers = payload.ccUsers;\n obj.availableReportIntervals = filterReportIntervals(obj.reportType, obj.venueId);\n obj.reportInterval = payload.reportInterval || obj.availableReportIntervals[0];\n obj.availableExportOptions = obj.reportType ? obj.reportType.availableExportOptions : [];\n \n obj.status = 'ok';\n\n return {\n ...state,\n ...obj\n };\n }\n case 'setReportType': {\n const obj = {};\n obj.reportTypeKey = action.value;\n obj.reportType = findReportType(state.reportTypes, obj.reportTypeKey);\n obj.availableExportOptions = obj.reportType.availableExportOptions;\n obj.availableReportIntervals = filterReportIntervals(obj.reportType, state.venueId);\n\n if (!obj.availableReportIntervals.includes(state.reportInterval)) {\n obj.reportInterval = obj.availableReportIntervals[0];\n }\n\n if (!obj.availableExportOptions.includes(state.exportType)) obj.exportType = obj.availableExportOptions[0];\n\n return {\n ...state,\n ...obj\n }\n }\n case 'setStartDate': {\n return { ...state, startDate: action.value }\n }\n case 'setWeekDays': {\n return { ...state, weekDays: action.value }\n }\n case 'setExportType': {\n return { ...state, exportType: action.value }\n }\n case 'setReportTime': {\n return { ...state, reportTime: action.value }\n }\n case 'setReportInterval': {\n return { ...state, reportInterval: action.value }\n }\n case 'setSearchFilters': {\n const { value } = action;\n const venueId = value['venueId']\n const showCcUsersSelector = (typeof venueId === 'number')\n\n const obj = {\n searchFilters: value,\n venueId: venueId,\n showCcUsersSelector: showCcUsersSelector\n }\n\n obj.availableReportIntervals = filterReportIntervals(state.reportType, obj.venueId);\n\n if (!showCcUsersSelector) {\n obj.ccUsers = [];\n obj.availableUsers = [];\n }\n\n return {\n ...state,\n ...obj\n }\n }\n case 'setVenueUsers': {\n const { venueUsers, currentUser } = action.payload;\n const availableUsers = currentUser['schoolFinance?'] ? [] : venueUsers;\n const roUsersAllowed = state.reportType.roUsersAllowed;\n const availableCcUsers = roUsersAllowed ? availableUsers : availableUsers.filter(user => !user['readOnly?']);\n const obj = { availableCcUsers: availableCcUsers }\n\n if (!state.currentUser && currentUser) obj.currentUser = currentUser;\n if (state.ccUsers.length === 0) obj.ccUsers = [currentUser];\n\n return {\n ...state,\n ...obj\n }\n }\n case 'setCcUsers': {\n return { ...state, ccUsers: action.value }\n }\n case 'setErrors': {\n return { ...state, errors: action.value }\n }\n case 'resetSchedule': {\n return initialState\n }\n }\n \n throw Error('Unknown action: ' + action.type);\n}\n","import React, { useEffect, useState, useReducer } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport Form from \"./Form\";\nimport ErrorBoundary from \"../ErrorBoundary\";\n\nimport { initialState, reducer } from './reducer';\nimport api from \"src/components/ReportSchedules/Modal/api\";\n\nexport default ({ id, show, setShow, onCompleted }) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n\n const [disabledConfirm, setDisabledConfirm] = useState(false);\n\n useEffect(() => {\n if (show !== true) {\n dispatch({ type: 'resetSchedule' });\n }\n }, [show])\n\n const handleCreate = () => {\n // dispatch start processing\n setDisabledConfirm(true);\n\n api\n .saveReportSchedule(id, state)\n .then(() => {\n setShow(false);\n onCompleted();\n setDisabledConfirm(false)\n })\n .catch((error) => {\n if (error?.response?.data?.errors) {\n dispatch({ type: 'setErrors', value: error.response.data.errors })\n }\n setDisabledConfirm(false)\n });\n }\n\n return (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>{id === null || id === undefined ? 'New' : 'Edit'} Report Schedule</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <ErrorBoundary>\n {show && <Form id={id} state={state} dispatch={dispatch}/>}\n </ErrorBoundary>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Cancel</Button>\n <Button className='btn-primary'\n disabled={disabledConfirm}\n onClick={handleCreate}>\n Confirm\n </Button>\n </Modal.Footer>\n </Modal>\n )\n};\n","import React, { useState } from \"react\";\n\nexport function useModal(Component, onCompleted) {\n const [show, setShow] = useState(false);\n const [options, setOptions] = useState({});\n\n const modal = <Component id={options.id}\n show={show}\n setShow={setShow}\n onCompleted={onCompleted}\n options={options}/>;\n\n const showModal = (options) => {\n console.log('options', options);\n setOptions(options)\n setShow(true)\n }\n\n const hideModal = () => {\n setShow(false)\n setOptions({})\n }\n\n return [modal, showModal, hideModal];\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(React.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change <Router history>\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<MemoryRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Prompt> outside a <Router>\") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Redirect> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\"<Route\" + (path ? \" path=\\\"\" + path + \"\\\"\" : \"\") + \">, but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Route> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with <StaticRouter>\", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<StaticRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Switch> outside a <Router>\") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a <Router>\") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<BrowserRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \"<HashRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware <a>.\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <Link> outside a <Router>\") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <NavLink> outside a <Router>\") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import toastr from 'toastr';\nimport 'toastr/build/toastr.min.css';\n\nexport const FlashMessage = (message) => {\n toastr.options = {\n positionClass : 'toast-top-center',\n hideDuration: 500,\n showDuration: 300,\n timeOut: 4000\n }\n toastr.clear()\n return toastr.error(message)\n}\n","import { useState, useEffect } from 'react';\n\nexport function useWindowPosition() {\n const [position, setPosition] = useState(window.innerWidth > 640 ? 'right' : 'left');\n\n useEffect(() => {\n const handleResize = () => {\n const newPosition = window.innerWidth > 640 ? 'right' : 'left';\n\n if (newPosition !== position) {\n setPosition(newPosition);\n }\n };\n\n window.addEventListener('resize', handleResize);\n\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [position]);\n\n\n return position;\n}\n","var adapters = {\n logger: self.console,\n WebSocket: self.WebSocket\n};\n\nvar logger = {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now());\n adapters.logger.log(\"[ActionCable]\", ...messages);\n }\n }\n};\n\nconst now = () => (new Date).getTime();\n\nconst secondsSince = time => (now() - time) / 1e3;\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this);\n this.connection = connection;\n this.reconnectAttempts = 0;\n }\n start() {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n addEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`);\n }\n }\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n logger.log(\"ConnectionMonitor stopped\");\n }\n }\n isRunning() {\n return this.startedAt && !this.stoppedAt;\n }\n recordPing() {\n this.pingedAt = now();\n }\n recordConnect() {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n logger.log(\"ConnectionMonitor recorded connect\");\n }\n recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n }\n startPolling() {\n this.stopPolling();\n this.poll();\n }\n stopPolling() {\n clearTimeout(this.pollTimeout);\n }\n poll() {\n this.pollTimeout = setTimeout((() => {\n this.reconnectIfStale();\n this.poll();\n }), this.getPollInterval());\n }\n getPollInterval() {\n const {staleThreshold: staleThreshold, reconnectionBackoffRate: reconnectionBackoffRate} = this.constructor;\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10));\n const jitterMax = this.reconnectAttempts === 0 ? 1 : reconnectionBackoffRate;\n const jitter = jitterMax * Math.random();\n return staleThreshold * 1e3 * backoff * (1 + jitter);\n }\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`);\n this.reconnectAttempts++;\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`);\n } else {\n logger.log(\"ConnectionMonitor reopening\");\n this.connection.reopen();\n }\n }\n }\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt;\n }\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold;\n }\n disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n }\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout((() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`);\n this.connection.reopen();\n }\n }), 200);\n }\n }\n}\n\nConnectionMonitor.staleThreshold = 6;\n\nConnectionMonitor.reconnectionBackoffRate = .15;\n\nvar INTERNAL = {\n message_types: {\n welcome: \"welcome\",\n disconnect: \"disconnect\",\n ping: \"ping\",\n confirmation: \"confirm_subscription\",\n rejection: \"reject_subscription\"\n },\n disconnect_reasons: {\n unauthorized: \"unauthorized\",\n invalid_request: \"invalid_request\",\n server_restart: \"server_restart\"\n },\n default_mount_path: \"/cable\",\n protocols: [ \"actioncable-v1-json\", \"actioncable-unsupported\" ]\n};\n\nconst {message_types: message_types, protocols: protocols} = INTERNAL;\n\nconst supportedProtocols = protocols.slice(0, protocols.length - 1);\n\nconst indexOf = [].indexOf;\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this);\n this.consumer = consumer;\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ConnectionMonitor(this);\n this.disconnected = true;\n }\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n }\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`);\n return false;\n } else {\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${protocols}`);\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n }\n close({allowReconnect: allowReconnect} = {\n allowReconnect: true\n }) {\n if (!allowReconnect) {\n this.monitor.stop();\n }\n if (this.isOpen()) {\n return this.webSocket.close();\n }\n }\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`);\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error);\n } finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`);\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n }\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n }\n isOpen() {\n return this.isState(\"open\");\n }\n isActive() {\n return this.isState(\"open\", \"connecting\");\n }\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n }\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0;\n }\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase();\n }\n }\n }\n return null;\n }\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this);\n this.webSocket[`on${eventName}`] = handler;\n }\n }\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {};\n }\n }\n}\n\nConnection.reopenDelay = 500;\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n const {identifier: identifier, message: message, reason: reason, reconnect: reconnect, type: type} = JSON.parse(event.data);\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`);\n return this.close({\n allowReconnect: reconnect\n });\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier);\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`);\n this.disconnected = false;\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close(event) {\n logger.log(\"WebSocket onclose event\");\n if (this.disconnected) {\n return;\n }\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error() {\n logger.log(\"WebSocket onerror event\");\n }\n};\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key];\n object[key] = value;\n }\n }\n return object;\n};\n\nclass Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer;\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n perform(action, data = {}) {\n data.action = action;\n return this.send(data);\n }\n send(data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n }\n unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n }\n}\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions;\n this.pendingSubscriptions = [];\n }\n guarantee(subscription) {\n if (this.pendingSubscriptions.indexOf(subscription) == -1) {\n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`);\n this.pendingSubscriptions.push(subscription);\n } else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`);\n }\n this.startGuaranteeing();\n }\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`);\n this.pendingSubscriptions = this.pendingSubscriptions.filter((s => s !== subscription));\n }\n startGuaranteeing() {\n this.stopGuaranteeing();\n this.retrySubscribing();\n }\n stopGuaranteeing() {\n clearTimeout(this.retryTimeout);\n }\n retrySubscribing() {\n this.retryTimeout = setTimeout((() => {\n if (this.subscriptions && typeof this.subscriptions.subscribe === \"function\") {\n this.pendingSubscriptions.map((subscription => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`);\n this.subscriptions.subscribe(subscription);\n }));\n }\n }), 500);\n }\n}\n\nclass Subscriptions {\n constructor(consumer) {\n this.consumer = consumer;\n this.guarantor = new SubscriptionGuarantor(this);\n this.subscriptions = [];\n }\n create(channelName, mixin) {\n const channel = channelName;\n const params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n const subscription = new Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n }\n add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.subscribe(subscription);\n return subscription;\n }\n remove(subscription) {\n this.forget(subscription);\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n return subscription;\n }\n reject(identifier) {\n return this.findAll(identifier).map((subscription => {\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n return subscription;\n }));\n }\n forget(subscription) {\n this.guarantor.forget(subscription);\n this.subscriptions = this.subscriptions.filter((s => s !== subscription));\n return subscription;\n }\n findAll(identifier) {\n return this.subscriptions.filter((s => s.identifier === identifier));\n }\n reload() {\n return this.subscriptions.map((subscription => this.subscribe(subscription)));\n }\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription => this.notify(subscription, callbackName, ...args)));\n }\n notify(subscription, callbackName, ...args) {\n let subscriptions;\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [ subscription ];\n }\n return subscriptions.map((subscription => typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined));\n }\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription);\n }\n }\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`);\n this.findAll(identifier).map((subscription => this.guarantor.forget(subscription)));\n }\n sendCommand(subscription, command) {\n const {identifier: identifier} = subscription;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n }\n}\n\nclass Consumer {\n constructor(url) {\n this._url = url;\n this.subscriptions = new Subscriptions(this);\n this.connection = new Connection(this);\n }\n get url() {\n return createWebSocketURL(this._url);\n }\n send(data) {\n return this.connection.send(data);\n }\n connect() {\n return this.connection.open();\n }\n disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n }\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n }\n}\n\nfunction createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n}\n\nfunction createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url);\n}\n\nfunction getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`);\n if (element) {\n return element.getAttribute(\"content\");\n }\n}\n\nexport { Connection, ConnectionMonitor, Consumer, INTERNAL, Subscription, SubscriptionGuarantor, Subscriptions, adapters, createConsumer, createWebSocketURL, getConfig, logger };\n","export const handleReceived = (message, onSuccess, onFailed) => {\n switch (message.status) {\n case 'succeeded':\n onSuccess(message.id);\n break;\n case 'failed':\n onFailed();\n break;\n case 'pending':\n console.log('The task added to queue. [status: pending]');\n break;\n case 'in_progress':\n console.log('The task added to queue. [status: in_progress]');\n break;\n default:\n console.log(`Unknown status: ${message.status}`);\n break;\n }\n};","import React, { useState, useEffect, useMemo, useRef } from 'react';\nimport classNames from \"classnames\";\nimport { getQueryString } from \"../Api\";\nimport axios from \"axios\";\nimport { createConsumer } from \"@rails/actioncable\";\nimport { handleReceived } from './cable';\n\nconst REPORTS_PATH = '/admin/reports/';\n\nexport default ({ title, item, filter, format, customPath = null }) => {\n const [disabled, setDisabled] = useState(false);\n const [reportFileGeneratorId, setReportFileGeneratorId] = useState(null);\n\n const consumer = useMemo(() => createConsumer(), []);\n const subscription = useRef();\n\n const isDisabled = !!(reportFileGeneratorId) || disabled;\n const classes = classNames(['btn btn-primary export-btn', { 'generation': isDisabled }]);\n\n const handleExport = () => {\n setDisabled(true);\n const defaultReportPath = `${REPORTS_PATH}/${item.key}`;\n const urlWithParams = `${customPath || defaultReportPath}/${format}.json?${getQueryString(filter)}`;\n axios.post(urlWithParams).then(response => setReportFileGeneratorId(response.data.id));\n };\n\n const disconnect = () => {\n if (subscription.current) subscription.current.unsubscribe();\n consumer.disconnect();\n }\n\n useEffect(() => {\n if (reportFileGeneratorId) {\n const params = { channel: 'ReportFileGeneratorChannel', id: reportFileGeneratorId };\n\n subscription.current = consumer.subscriptions.create(params, {\n connected: () => {\n consumer.send({\n identifier: JSON.stringify(params),\n command: 'message',\n data: JSON.stringify({ test: '' })\n });\n },\n disconnected: () => console.log('disconnected'),\n received: (message) => handleReceived(message, (id) => {\n setDisabled(false);\n setReportFileGeneratorId(null);\n window.location.href = `${REPORTS_PATH}/downloads/${id}`;\n }, () => {\n setDisabled(false);\n setReportFileGeneratorId(null);\n Helper.flash_message('error', \"Something went wrong!\");\n }),\n })\n } else {\n disconnect();\n }\n\n return disconnect;\n }, [reportFileGeneratorId]);\n\n\n return (\n <button className={classes} disabled={!!(isDisabled)} onClick={handleExport}>\n {title}\n </button>\n )\n};","import React from 'react';\nimport ExportButton from './Button';\n\nconst buttonTitles = {\n 'pdf': 'Export to PDF',\n 'csv': 'Export to Excel'\n};\n\nconst defaultClasses = 'btn-group pull-right'\n\nexport default ({ exportFormats, item, filter, classes, customPath = null }) => (\n <div className={classes || defaultClasses}>\n {exportFormats.map((format) =>\n <ExportButton\n key={format}\n item={item}\n filter={filter}\n format={format}\n title={buttonTitles[format]}\n customPath={customPath}\n />\n )}\n </div>\n);\n","import {OverlayTrigger, Popover} from \"react-bootstrap\";\nimport React, {useMemo} from \"react\";\nimport classnames from \"classnames\";\nimport {FlashMessage} from \"src/components/MainSearch/FlashMessage\";\nimport { useWindowPosition } from \"../hooks/useWindowPosition\";\nimport ExportButtons from '../../Reports/Export/Buttons';\n\nconst AddButton = ({ disabled, onClick }) => {\n const buttonClassNames = useMemo(() =>\n classnames(\n 'btn add-schedule-button',\n { 'btn-primary': !disabled },\n { 'disabled': disabled }\n ), [disabled])\n\n return (\n <button className={buttonClassNames} onClick={onClick}>\n Add report schedule\n </button>\n )\n}\n\nconst ExportButton = ({ showButton, onClick }) => {\n return (\n <button className='btn btn-primary mr-2' onClick={onClick}>\n Export to Excel\n </button>\n )\n}\n\nconst showNotice = () => {\n FlashMessage(\n \"You have the reached the maximum number of scheduled reports. \" +\n \"You will need to remove an existing one before being able to \" +\n \"create a new one.\"\n )\n}\n\nexport default ({ currentUserIsRo, reportsLoaded, reportSchedulesCount, showModalCreate, item }) => {\n const disabled = !reportsLoaded || reportSchedulesCount >= 10;\n\n const position = useWindowPosition();\n\n const reportScheduleInfoPopover = (\n <Popover id=\"popover-positioned-scrolling-left\" title=\"\">\n <p>\n Any reports scheduled will be sent via email based on the filters you have\n selected.\n </p>\n <p>\n As an example, you can select for the Activity Report to be\n emailed to you weekly on a Sunday for the upcoming week\n {currentUserIsRo && <span>.</span>}\n {!currentUserIsRo &&\n <span>\n , or the Income per Facility Report to be sent to you monthly for the Current Academic Year.\n </span>\n }\n </p>\n </Popover>\n )\n\n return (\n <div className=''>\n <h1>\n Scheduled Reports\n <OverlayTrigger container={this} placement={position} overlay={reportScheduleInfoPopover}>\n <div className=\"info-icon\" data-original-title=\"\" title=\"\"/>\n </OverlayTrigger>\n\n <div className=\"btn-group pull-right\">\n <AddButton disabled={disabled} onClick={(e) => disabled ? showNotice(e) : showModalCreate({})}/>\n </div>\n\n {item && item.showExportButton &&\n <div className=\"btn-group pull-right mr-2\">\n <ExportButtons filter={{}} item={item} exportFormats={item.exportFormats}/>\n </div>\n }\n </h1>\n </div>\n )\n}","import React from \"react\";\nimport moment from \"moment\";\n\nexport const dateFormatter = (date) => {\n if (!moment(date).isValid()) return null;\n return moment(date).format(\"DD/MM/YYYY\");\n};\n\nexport const dayDateFormatter = (date) => {\n if (!moment(date).isValid()) return null;\n return moment(date).format(\"ddd, D MMM YYYY\");\n};\n\nexport const timeFormatter = (date) => {\n if (!moment(date).isValid()) return null;\n return moment(date).format(\"HH:mm\");\n};\n\nconst Text = ({ align = 'left', style, children }) => (\n <td className={`text-${align}`} style={style}>\n {children}\n </td>\n);\n\nconst Date = ({ children }) => {\n if (!moment(children).isValid()) return <td/>;\n return <td className='text-left'>{dateFormatter(children)}</td>;\n};\n\nconst periodGenerator = (startKey, endKey, children, formatter, splitter) => {\n const validDates = [moment(children[startKey]), moment(children[endKey])].filter(date => date.isValid());\n const uniqDates = validDates.filter((v, i) => validDates.findIndex(m => v.isSame(moment(m))) === i);\n return uniqDates.map(date => formatter(date).toString()).join(splitter)\n};\n\nconst DatePeriod = ({ startKey, endKey, children }) => (\n <td className='text-left'>{periodGenerator(startKey, endKey, children, dateFormatter, ' to ')}</td>\n);\n\nconst TimeSlot = ({ startKey, endKey, style, children }) => (\n <td className='text-left' style={style}>{periodGenerator(startKey, endKey, children, timeFormatter, ' - ')}</td>\n);\n\nconst currencyFormatter = (value) => {\n const settings = { minimumFractionDigits: 2, maximumFractionDigits: 2 };\n return new Intl.NumberFormat('en-UK', settings).format(value);\n};\n\nexport const toCurrency = (children, negativeBraces = false) => {\n if (isNaN(children)) return '';\n\n if (negativeBraces && children < 0) {\n return `(${currencyFormatter(Math.abs(children))})`;\n } else {\n return currencyFormatter(children);\n }\n};\n\nexport const toPercent = (children, hideSign = false) => {\n if (isNaN(children)) return '';\n\n const settings = { minimumFractionDigits: 0, maximumFractionDigits: 2 };\n const value = new Intl.NumberFormat('en-UK', settings).format(children);\n const sign = hideSign ? '' : '%'\n\n return`${value}${sign}`\n}\n\nexport const toCurrencyOrBlank = (amount, negativeBraces = false) => {\n return amount === null ? '' : toCurrency(amount, negativeBraces);\n}\n\nconst CurrencyOrBlank = ({ children, negativeBraces}) => (\n <td className='text-left'>\n {children === null ? '' : toCurrency(children, negativeBraces)}\n </td>\n);\n\nconst Currency = ({ children, negativeBraces}) => <Cell>{toCurrency(children, negativeBraces)}</Cell>;\nconst Percent = ({ children, hideSign, style }) => <Cell style={style}>{toPercent(children, hideSign)}</Cell>;\n\nexport const linkFormatter = ({ link = null, target = null, children }) => {\n if (link) {\n return <a href={link} target={target}>{children}</a>\n } else {\n return children\n }\n}\n\nconst Link = ({ align = 'left', link = null, target = null, style, children }) => (\n <td className={`text-${align}`} style={style}>\n {linkFormatter({ link, target, children })}\n </td>\n);\n\nconst Column = {\n Text: Text,\n Link: Link,\n Date: Date,\n Currency: Currency,\n CurrencyOrBlank: CurrencyOrBlank,\n Percent: Percent,\n DatePeriod: DatePeriod,\n TimeSlot: TimeSlot\n};\n\nexport default Column;\n\nconst LOCALE = 'en-UK';\nconst HOUR_SETTINGS = { minimumFractionDigits: 2, maximumFractionDigits: 2 }\nconst PERCENT_SETTINGS = { minimumFractionDigits: 2, maximumFractionDigits: 2 }\n\nconst getNumberFormat = (settings) => new Intl.NumberFormat(LOCALE, settings)\n\nexport const HourValue = ({ value }) => getNumberFormat(HOUR_SETTINGS).format(value);\nexport const PercentValue = ({ value }) => getNumberFormat(PERCENT_SETTINGS).format(value);\n\nexport const Cell = ({ align = 'left', style, children }) => (\n <td className={`text-${align}`} style={style}>\n {children}\n </td>\n);","import React from \"react\";\nimport Column from \"src/components/Reports/Columns\";\nimport IntervalTitleDecorator from \"src/components/ReportSchedules/helpers/interval_title_decorator\";\nimport {Button} from \"react-bootstrap\";\nimport { snakeToTitle, singularize } from '@/helpers/strings'\n\nexport default ({ reportSchedules, showModalEdit, handleDelete }) => (\n <div className='report-schedules-body'>\n <table className='table table-bordered'>\n <thead className='scheduled-reports-table-header'>\n <tr>\n <th>Type</th>\n <th>Interval</th>\n <th>Export</th>\n <th>Start date</th>\n <th>Time</th>\n <th>Days</th>\n <th>Venue</th>\n <th>Users</th>\n <th>Date created</th>\n <th>Created by</th>\n <th className='actions'>Actions</th>\n </tr>\n </thead>\n <tbody>\n {reportSchedules.map(item =>\n <tr key={item.id}>\n <Column.Text>{snakeToTitle(singularize(item.key))}</Column.Text>\n <Column.Text>{IntervalTitleDecorator(item.reportInterval)}</Column.Text>\n <Column.Text>{item.exportType}</Column.Text>\n <Column.Date>{item.startDate}</Column.Date>\n <Column.Text>{moment(item.reportTime).format('HH:mm')}</Column.Text>\n <Column.Text>{item.weekDaysString}</Column.Text>\n <Column.Text>{item.venueTitle}</Column.Text>\n <Column.Text>{item.userNamesString}</Column.Text>\n <Column.Date>{item.createdAt}</Column.Date>\n <Column.Text>{item.createdBy}</Column.Text>\n <Column.Text>\n <div className='btn-group'>\n <Button className={!item.allowedToEdit && 'hidden'}\n onClick={() => showModalEdit({id: item.id})}>\n Edit\n </Button>\n <Button className={!item.allowedToEdit && 'hidden'}\n onClick={() => handleDelete(item.id)}>\n Delete\n </Button>\n </div>\n </Column.Text>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n)","\"use strict\";\nfunction createRange(start, end) {\n var range = [];\n for (var i = start; i <= end; i++) {\n range.push(i);\n }\n return range;\n}\nexports.createRange = createRange;\n//# sourceMappingURL=ultimate-pagination-utils.js.map","\"use strict\";\nexports.ITEM_TYPES = {\n PAGE: 'PAGE',\n ELLIPSIS: 'ELLIPSIS',\n FIRST_PAGE_LINK: 'FIRST_PAGE_LINK',\n PREVIOUS_PAGE_LINK: 'PREVIOUS_PAGE_LINK',\n NEXT_PAGE_LINK: 'NEXT_PAGE_LINK',\n LAST_PAGE_LINK: 'LAST_PAGE_LINK'\n};\nexports.ITEM_KEYS = {\n FIRST_ELLIPSIS: -1,\n SECOND_ELLIPSIS: -2,\n FIRST_PAGE_LINK: -3,\n PREVIOUS_PAGE_LINK: -4,\n NEXT_PAGE_LINK: -5,\n LAST_PAGE_LINK: -6\n};\n//# sourceMappingURL=ultimate-pagination-constants.js.map","\"use strict\";\nvar ultimate_pagination_constants_1 = require(\"./ultimate-pagination-constants\");\nexports.createFirstEllipsis = function (pageNumber) {\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.ELLIPSIS,\n key: ultimate_pagination_constants_1.ITEM_KEYS.FIRST_ELLIPSIS,\n value: pageNumber,\n isActive: false\n };\n};\nexports.createSecondEllipsis = function (pageNumber) {\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.ELLIPSIS,\n key: ultimate_pagination_constants_1.ITEM_KEYS.SECOND_ELLIPSIS,\n value: pageNumber,\n isActive: false\n };\n};\nexports.createFirstPageLink = function (options) {\n var currentPage = options.currentPage;\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.FIRST_PAGE_LINK,\n key: ultimate_pagination_constants_1.ITEM_KEYS.FIRST_PAGE_LINK,\n value: 1,\n isActive: currentPage === 1\n };\n};\nexports.createPreviousPageLink = function (options) {\n var currentPage = options.currentPage;\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.PREVIOUS_PAGE_LINK,\n key: ultimate_pagination_constants_1.ITEM_KEYS.PREVIOUS_PAGE_LINK,\n value: Math.max(1, currentPage - 1),\n isActive: currentPage === 1\n };\n};\nexports.createNextPageLink = function (options) {\n var currentPage = options.currentPage, totalPages = options.totalPages;\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.NEXT_PAGE_LINK,\n key: ultimate_pagination_constants_1.ITEM_KEYS.NEXT_PAGE_LINK,\n value: Math.min(totalPages, currentPage + 1),\n isActive: currentPage === totalPages\n };\n};\nexports.createLastPageLink = function (options) {\n var currentPage = options.currentPage, totalPages = options.totalPages;\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.LAST_PAGE_LINK,\n key: ultimate_pagination_constants_1.ITEM_KEYS.LAST_PAGE_LINK,\n value: totalPages,\n isActive: currentPage === totalPages\n };\n};\nexports.createPageFunctionFactory = function (options) {\n var currentPage = options.currentPage;\n return function (pageNumber) {\n return {\n type: ultimate_pagination_constants_1.ITEM_TYPES.PAGE,\n key: pageNumber,\n value: pageNumber,\n isActive: pageNumber === currentPage\n };\n };\n};\n//# sourceMappingURL=ultimate-pagination-item-factories.js.map","\"use strict\";\nvar ultimate_pagination_utils_1 = require(\"./ultimate-pagination-utils\");\nvar ultimate_pagination_item_factories_1 = require(\"./ultimate-pagination-item-factories\");\nfunction getPaginationModel(options) {\n if (options == null) {\n throw new Error('getPaginationModel(): options object should be a passed');\n }\n var totalPages = Number(options.totalPages);\n if (isNaN(totalPages)) {\n throw new Error('getPaginationModel(): totalPages should be a number');\n }\n if (totalPages < 0) {\n throw new Error('getPaginationModel(): totalPages shouldn\\'t be a negative number');\n }\n var currentPage = Number(options.currentPage);\n if (isNaN(currentPage)) {\n throw new Error('getPaginationModel(): currentPage should be a number');\n }\n if (currentPage < 0) {\n throw new Error('getPaginationModel(): currentPage shouldn\\'t be a negative number');\n }\n if (currentPage > totalPages) {\n throw new Error('getPaginationModel(): currentPage shouldn\\'t be greater than totalPages');\n }\n var boundaryPagesRange = (options.boundaryPagesRange == null ? 1 : Number(options.boundaryPagesRange));\n if (isNaN(boundaryPagesRange)) {\n throw new Error('getPaginationModel(): boundaryPagesRange should be a number');\n }\n if (boundaryPagesRange < 0) {\n throw new Error('getPaginationModel(): boundaryPagesRange shouldn\\'t be a negative number');\n }\n var siblingPagesRange = (options.siblingPagesRange == null ? 1 : Number(options.siblingPagesRange));\n if (isNaN(siblingPagesRange)) {\n throw new Error('getPaginationModel(): siblingPagesRange should be a number');\n }\n if (siblingPagesRange < 0) {\n throw new Error('getPaginationModel(): siblingPagesRange shouldn\\'t be a negative number');\n }\n var hidePreviousAndNextPageLinks = Boolean(options.hidePreviousAndNextPageLinks);\n var hideFirstAndLastPageLinks = Boolean(options.hideFirstAndLastPageLinks);\n var hideEllipsis = Boolean(options.hideEllipsis);\n var ellipsisSize = (hideEllipsis ? 0 : 1);\n var paginationModel = [];\n var createPage = ultimate_pagination_item_factories_1.createPageFunctionFactory(options);\n if (!hideFirstAndLastPageLinks) {\n paginationModel.push(ultimate_pagination_item_factories_1.createFirstPageLink(options));\n }\n if (!hidePreviousAndNextPageLinks) {\n paginationModel.push(ultimate_pagination_item_factories_1.createPreviousPageLink(options));\n }\n // Simplify generation of pages if number of available items is equal or greater than total pages to show\n if (1 + 2 * ellipsisSize + 2 * siblingPagesRange + 2 * boundaryPagesRange >= totalPages) {\n var allPages = ultimate_pagination_utils_1.createRange(1, totalPages).map(createPage);\n paginationModel.push.apply(paginationModel, allPages);\n }\n else {\n // Calculate group of first pages\n var firstPagesStart = 1;\n var firstPagesEnd = boundaryPagesRange;\n var firstPages = ultimate_pagination_utils_1.createRange(firstPagesStart, firstPagesEnd).map(createPage);\n // Calculate group of last pages\n var lastPagesStart = totalPages + 1 - boundaryPagesRange;\n var lastPagesEnd = totalPages;\n var lastPages = ultimate_pagination_utils_1.createRange(lastPagesStart, lastPagesEnd).map(createPage);\n // Calculate group of main pages\n var mainPagesStart = Math.min(Math.max(currentPage - siblingPagesRange, firstPagesEnd + ellipsisSize + 1), lastPagesStart - ellipsisSize - 2 * siblingPagesRange - 1);\n var mainPagesEnd = mainPagesStart + 2 * siblingPagesRange;\n var mainPages = ultimate_pagination_utils_1.createRange(mainPagesStart, mainPagesEnd).map(createPage);\n // Add group of first pages\n paginationModel.push.apply(paginationModel, firstPages);\n if (!hideEllipsis) {\n // Calculate and add ellipsis before group of main pages\n var firstEllipsisPageNumber = mainPagesStart - 1;\n var showPageInsteadOfFirstEllipsis = (firstEllipsisPageNumber === firstPagesEnd + 1);\n var createFirstEllipsisOrPage = showPageInsteadOfFirstEllipsis ? createPage : ultimate_pagination_item_factories_1.createFirstEllipsis;\n var firstEllipsis = createFirstEllipsisOrPage(firstEllipsisPageNumber);\n paginationModel.push(firstEllipsis);\n }\n // Add group of main pages\n paginationModel.push.apply(paginationModel, mainPages);\n if (!hideEllipsis) {\n // Calculate and add ellipsis after group of main pages\n var secondEllipsisPageNumber = mainPagesEnd + 1;\n var showPageInsteadOfSecondEllipsis = (secondEllipsisPageNumber === lastPagesStart - 1);\n var createSecondEllipsisOrPage = showPageInsteadOfSecondEllipsis ? createPage : ultimate_pagination_item_factories_1.createSecondEllipsis;\n var secondEllipsis = createSecondEllipsisOrPage(secondEllipsisPageNumber);\n paginationModel.push(secondEllipsis);\n }\n // Add group of last pages\n paginationModel.push.apply(paginationModel, lastPages);\n }\n if (!hidePreviousAndNextPageLinks) {\n paginationModel.push(ultimate_pagination_item_factories_1.createNextPageLink(options));\n }\n if (!hideFirstAndLastPageLinks) {\n paginationModel.push(ultimate_pagination_item_factories_1.createLastPageLink(options));\n }\n return paginationModel;\n}\nexports.getPaginationModel = getPaginationModel;\nvar ultimate_pagination_constants_1 = require(\"./ultimate-pagination-constants\");\nexports.ITEM_TYPES = ultimate_pagination_constants_1.ITEM_TYPES;\nexports.ITEM_KEYS = ultimate_pagination_constants_1.ITEM_KEYS;\n//# sourceMappingURL=ultimate-pagination.js.map","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ITEM_TYPES = exports.createUltimatePagination = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ultimatePagination = require('ultimate-pagination');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar renderItemComponentFunctionFactory = function renderItemComponentFunctionFactory(itemTypeToComponent, currentPage, onChange) {\n var onItemClickFunctionFactory = function onItemClickFunctionFactory(_ref) {\n var value = _ref.value,\n isDisabled = _ref.isDisabled;\n\n return function () {\n if (!isDisabled && onChange && currentPage !== value) {\n onChange(value);\n }\n };\n };\n\n return function (props) {\n var ItemComponent = itemTypeToComponent[props.type];\n var onItemClick = onItemClickFunctionFactory(props);\n return _react2.default.createElement(ItemComponent, _extends({ onClick: onItemClick }, props));\n };\n};\n\nvar createUltimatePagination = function createUltimatePagination(_ref2) {\n var itemTypeToComponent = _ref2.itemTypeToComponent,\n _ref2$WrapperComponen = _ref2.WrapperComponent,\n WrapperComponent = _ref2$WrapperComponen === undefined ? 'div' : _ref2$WrapperComponen;\n\n var UltimatePaginationComponent = function UltimatePaginationComponent(props) {\n var currentPage = props.currentPage,\n totalPages = props.totalPages,\n boundaryPagesRange = props.boundaryPagesRange,\n siblingPagesRange = props.siblingPagesRange,\n hideEllipsis = props.hideEllipsis,\n hidePreviousAndNextPageLinks = props.hidePreviousAndNextPageLinks,\n hideFirstAndLastPageLinks = props.hideFirstAndLastPageLinks,\n onChange = props.onChange,\n disabled = props.disabled,\n restProps = _objectWithoutProperties(props, ['currentPage', 'totalPages', 'boundaryPagesRange', 'siblingPagesRange', 'hideEllipsis', 'hidePreviousAndNextPageLinks', 'hideFirstAndLastPageLinks', 'onChange', 'disabled']);\n\n var paginationModel = (0, _ultimatePagination.getPaginationModel)({\n currentPage: currentPage,\n totalPages: totalPages,\n boundaryPagesRange: boundaryPagesRange,\n siblingPagesRange: siblingPagesRange,\n hideEllipsis: hideEllipsis,\n hidePreviousAndNextPageLinks: hidePreviousAndNextPageLinks,\n hideFirstAndLastPageLinks: hideFirstAndLastPageLinks\n });\n var renderItemComponent = renderItemComponentFunctionFactory(itemTypeToComponent, currentPage, onChange);\n return _react2.default.createElement(\n WrapperComponent,\n restProps,\n paginationModel.map(function (itemModel) {\n return renderItemComponent(_extends({}, itemModel, {\n isDisabled: !!disabled\n }));\n })\n );\n };\n\n UltimatePaginationComponent.propTypes = {\n currentPage: _propTypes2.default.number.isRequired,\n totalPages: _propTypes2.default.number.isRequired,\n boundaryPagesRange: _propTypes2.default.number,\n siblingPagesRange: _propTypes2.default.number,\n hideEllipsis: _propTypes2.default.bool,\n hidePreviousAndNextPageLinks: _propTypes2.default.bool,\n hideFirstAndLastPageLinks: _propTypes2.default.bool,\n onChange: _propTypes2.default.func,\n disabled: _propTypes2.default.bool\n };\n\n return UltimatePaginationComponent;\n};\n\nexports.createUltimatePagination = createUltimatePagination;\nexports.ITEM_TYPES = _ultimatePagination.ITEM_TYPES;","import React from 'react';\n\nimport {\n createUltimatePagination,\n ITEM_TYPES\n} from 'react-ultimate-pagination';\n\nconst withPreventDefault = fn => event => {\n event.preventDefault();\n fn();\n};\n\nconst WrapperComponent = ({ children }) => (\n <div style={{ width: '100%', textAlign: 'center' }}>\n <ul className=\"pagination\">{children}</ul>\n </div>\n);\n\nconst Page = ({ value, isActive, isDisabled, onClick }) => (\n <li className={isActive ? 'active' : isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n {value}\n </a>\n </li>\n);\n\nconst Ellipsis = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n ...\n </a>\n </li>\n);\n\nconst FirstPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n «\n </a>\n </li>\n);\n\nconst PreviousPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n ‹\n </a>\n </li>\n);\n\nconst NextPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n ›\n </a>\n </li>\n);\n\nconst LastPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n »\n </a>\n </li>\n);\n\nconst itemTypeToComponent = {\n [ITEM_TYPES.PAGE]: Page,\n [ITEM_TYPES.ELLIPSIS]: Ellipsis,\n [ITEM_TYPES.FIRST_PAGE_LINK]: FirstPageLink,\n [ITEM_TYPES.PREVIOUS_PAGE_LINK]: PreviousPageLink,\n [ITEM_TYPES.NEXT_PAGE_LINK]: NextPageLink,\n [ITEM_TYPES.LAST_PAGE_LINK]: LastPageLink\n};\n\nconst Pagination = createUltimatePagination({\n itemTypeToComponent,\n WrapperComponent\n});\n\nexport default Pagination;","import React, { useCallback, useEffect, useState } from 'react';\nimport Modal from \"../Modal/Index\";\nimport { useModal } from '../useModal';\nimport axios from \"axios\";\nimport { withRouter } from 'react-router-dom';\nimport Header from './Header';\nimport Table from './Table';\nimport Pagination from \"../../Reports/Pagination\";\n\nfunction Index({ location, history }) {\n const [reportsLoaded, setReportsLoaded] = useState(false);\n const [reportSchedules, setReportSchedules] = useState([]);\n const [currentUserIsRo, setCurrentUserIsRo] = useState([]);\n const [reportSchedulesCount, setReportSchedulesCount] = useState(0);\n const [pagination, setPagination] = useState(null);\n const [page, setPage] = useState(1);\n const [item, setItem] = useState(null);\n\n const updateReportSchedules = useCallback((page)=> {\n const params = { page: page }\n\n axios\n .get('/admin/reports/schedules.json', { params: params })\n .then((response) => {\n const { reportSchedules, reportSchedulesCount, pagination, item } = response.data;\n\n setReportSchedules(reportSchedules);\n setPagination(pagination);\n setItem(item);\n setReportsLoaded(true);\n });\n }, []);\n\n const [modal, showModal] = useModal(Modal, updateReportSchedules);\n\n const handleChangePage = (page) => { setPage(page) };\n const handleDelete = (scheduleId) => {\n if (confirm('Are you sure?')) {\n axios\n .delete(`/admin/reports/schedules/${scheduleId}.json`)\n .then((response) => updateReportSchedules());\n }\n };\n\n useEffect(() => {\n axios\n .get('/admin/reports/schedules.json')\n .then((response) => {\n const { currentUserIsRo } = response.data;\n setCurrentUserIsRo(currentUserIsRo);\n });\n\n updateReportSchedules();\n }, [])\n\n useEffect(() => {\n updateReportSchedules(page);\n }, [page]);\n\n\n return (\n <>\n {modal}\n\n <Header reportsLoaded={reportsLoaded}\n reportSchedulesCount={reportSchedulesCount}\n currentUserIsRo={currentUserIsRo}\n showModalCreate={showModal}\n item={item}/>\n\n <Table reportSchedules={reportSchedules}\n showModalEdit={showModal}\n handleDelete={handleDelete}/>\n\n {pagination && pagination.pages > 1 &&\n <Pagination\n totalPages={pagination.pages}\n currentPage={pagination.page}\n onChange={handleChangePage}\n />\n }\n </>\n )\n}\n\nexport default withRouter(Index);\n","import { createBrowserHistory } from 'history';\nexport default createBrowserHistory();","import React from 'react';\nimport IndexPage from './Index/Index';\nimport { Router, Switch, Route } from \"react-router-dom\";\nimport history from \"./utils/history\";\n\nimport './styles.scss';\n\nexport default () => {\n return (\n <div className=\"report-schedules-main-container\">\n <Router history={history}>\n <Switch>\n <Route path='/admin/reports/schedules' component={IndexPage}/>\n </Switch>\n </Router>\n </div>\n )\n}\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DebounceInput = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _excluded = [\"element\", \"onChange\", \"value\", \"minLength\", \"debounceTimeout\", \"forceNotifyByEnter\", \"forceNotifyOnBlur\", \"onKeyDown\", \"onBlur\", \"inputRef\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DebounceInput = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(DebounceInput, _React$PureComponent);\n\n var _super = _createSuper(DebounceInput);\n\n function DebounceInput(props) {\n var _this;\n\n _classCallCheck(this, DebounceInput);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (event) {\n event.persist();\n var oldValue = _this.state.value;\n var minLength = _this.props.minLength;\n\n _this.setState({\n value: event.target.value\n }, function () {\n var value = _this.state.value;\n\n if (value.length >= minLength) {\n _this.notify(event);\n\n return;\n } // If user hits backspace and goes below minLength consider it cleaning the value\n\n\n if (oldValue.length > value.length) {\n _this.notify(_objectSpread(_objectSpread({}, event), {}, {\n target: _objectSpread(_objectSpread({}, event.target), {}, {\n value: ''\n })\n }));\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n if (event.key === 'Enter') {\n _this.forceNotify(event);\n } // Invoke original onKeyDown if present\n\n\n var onKeyDown = _this.props.onKeyDown;\n\n if (onKeyDown) {\n event.persist();\n onKeyDown(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (event) {\n _this.forceNotify(event); // Invoke original onBlur if present\n\n\n var onBlur = _this.props.onBlur;\n\n if (onBlur) {\n event.persist();\n onBlur(event);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"createNotifier\", function (debounceTimeout) {\n if (debounceTimeout < 0) {\n _this.notify = function () {\n return null;\n };\n } else if (debounceTimeout === 0) {\n _this.notify = _this.doNotify;\n } else {\n var debouncedChangeFunc = (0, _lodash[\"default\"])(function (event) {\n _this.isDebouncing = false;\n\n _this.doNotify(event);\n }, debounceTimeout);\n\n _this.notify = function (event) {\n _this.isDebouncing = true;\n debouncedChangeFunc(event);\n };\n\n _this.flush = function () {\n return debouncedChangeFunc.flush();\n };\n\n _this.cancel = function () {\n _this.isDebouncing = false;\n debouncedChangeFunc.cancel();\n };\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"doNotify\", function () {\n var onChange = _this.props.onChange;\n onChange.apply(void 0, arguments);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"forceNotify\", function (event) {\n var debounceTimeout = _this.props.debounceTimeout;\n\n if (!_this.isDebouncing && debounceTimeout > 0) {\n return;\n }\n\n if (_this.cancel) {\n _this.cancel();\n }\n\n var value = _this.state.value;\n var minLength = _this.props.minLength;\n\n if (value.length >= minLength) {\n _this.doNotify(event);\n } else {\n _this.doNotify(_objectSpread(_objectSpread({}, event), {}, {\n target: _objectSpread(_objectSpread({}, event.target), {}, {\n value: value\n })\n }));\n }\n });\n\n _this.isDebouncing = false;\n _this.state = {\n value: typeof props.value === 'undefined' || props.value === null ? '' : props.value\n };\n var _debounceTimeout2 = _this.props.debounceTimeout;\n\n _this.createNotifier(_debounceTimeout2);\n\n return _this;\n }\n\n _createClass(DebounceInput, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.isDebouncing) {\n return;\n }\n\n var _this$props = this.props,\n value = _this$props.value,\n debounceTimeout = _this$props.debounceTimeout;\n var oldTimeout = prevProps.debounceTimeout,\n oldValue = prevProps.value;\n var stateValue = this.state.value;\n\n if (typeof value !== 'undefined' && oldValue !== value && stateValue !== value) {\n // Update state.value if new value passed via props, yep re-render should happen\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n value: value\n });\n }\n\n if (debounceTimeout !== oldTimeout) {\n this.createNotifier(debounceTimeout);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.flush) {\n this.flush();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n element = _this$props2.element,\n _onChange = _this$props2.onChange,\n _value = _this$props2.value,\n _minLength = _this$props2.minLength,\n _debounceTimeout = _this$props2.debounceTimeout,\n forceNotifyByEnter = _this$props2.forceNotifyByEnter,\n forceNotifyOnBlur = _this$props2.forceNotifyOnBlur,\n onKeyDown = _this$props2.onKeyDown,\n onBlur = _this$props2.onBlur,\n inputRef = _this$props2.inputRef,\n props = _objectWithoutProperties(_this$props2, _excluded);\n\n var value = this.state.value;\n var maybeOnKeyDown;\n\n if (forceNotifyByEnter) {\n maybeOnKeyDown = {\n onKeyDown: this.onKeyDown\n };\n } else if (onKeyDown) {\n maybeOnKeyDown = {\n onKeyDown: onKeyDown\n };\n } else {\n maybeOnKeyDown = {};\n }\n\n var maybeOnBlur;\n\n if (forceNotifyOnBlur) {\n maybeOnBlur = {\n onBlur: this.onBlur\n };\n } else if (onBlur) {\n maybeOnBlur = {\n onBlur: onBlur\n };\n } else {\n maybeOnBlur = {};\n }\n\n var maybeRef = inputRef ? {\n ref: inputRef\n } : {};\n return /*#__PURE__*/_react[\"default\"].createElement(element, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), {}, {\n onChange: this.onChange,\n value: value\n }, maybeOnKeyDown), maybeOnBlur), maybeRef));\n }\n }]);\n\n return DebounceInput;\n}(_react[\"default\"].PureComponent);\n\nexports.DebounceInput = DebounceInput;\n\n_defineProperty(DebounceInput, \"defaultProps\", {\n element: 'input',\n type: 'text',\n onKeyDown: undefined,\n onBlur: undefined,\n value: undefined,\n minLength: 0,\n debounceTimeout: 100,\n forceNotifyByEnter: true,\n forceNotifyOnBlur: true,\n inputRef: undefined\n});","\"use strict\";\n\nvar _require = require('./Component'),\n DebounceInput = _require.DebounceInput;\n\nDebounceInput.DebounceInput = DebounceInput;\nmodule.exports = DebounceInput;","import * as React from 'react';\n\nexport const AccessContext = React.createContext({});\nexport const ViewModeContext = React.createContext({});\nexport const StaffRotaContext = React.createContext({});","import React, { useContext } from \"react\";\nimport { DebounceInput } from \"react-debounce-input\";\nimport { AccessContext } from \"../../utils/context\";\n\nexport default ({ term, setTerm}) => {\n const allowManage = useContext(AccessContext);\n\n if (!allowManage) return null;\n\n return (\n <div className=\"form-search\">\n <div className=\"form-group string optional filter_terms\">\n <label className=\"control-label string optional\">Search:</label>\n <DebounceInput\n className=\"form-control string optional\"\n name=\"filter[terms]\"\n minLength={2}\n debounceTimeout={300}\n value={term}\n onChange={e => setTerm(e.target.value)}\n />\n </div>\n </div>\n )\n}","import React, { useContext, useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { ViewModeContext } from \"../../utils/context\";\n\nexport default ({ venueId, setVenueId, setReady, location }) => {\n const params = new URLSearchParams(location.search)\n const { fullAccess } = useContext(ViewModeContext);\n const [venues, setVenues] = useState([]);\n\n useEffect(() => {\n setReady(false);\n\n axios\n .get('/admin/staff_rota/venues.json')\n .then((response) => {\n const venues = prepareVenues(response.data);\n\n setVenues(venues);\n\n if (fullAccess || venues.length === 1) {\n let paramVenueId = parseInt(params.get('venue_id'));\n let selectedVenueId = venues.map(x => x.id).includes(paramVenueId) ? paramVenueId : venues[0].id;\n setVenueId(selectedVenueId)\n }\n\n if (!fullAccess) {\n let selectedVenueId = venues[0].id;\n setVenueId(selectedVenueId)\n }\n\n setReady(true);\n });\n }, [fullAccess]);\n\n const prepareVenues = (venues) => {\n if (!fullAccess && venues.length > 1) venues.unshift({ id: \"\" , title: 'All Venues' })\n return venues;\n }\n\n return (\n <div className=\"form-group select optional filter_venue_id\">\n <label className=\"control-label select optional\">Venue:</label>\n <select className=\"form-control select optional\"\n name=\"filter[venue_id]\"\n value={venueId}\n onChange={(e) => setVenueId(e.target.value)}>\n {venues.map(venue => (\n <option key={venue.id} value={venue.id}>{venue.title}</option>\n ))}\n </select>\n </div>\n )\n}\n","import React from \"react\";\nimport DateInput from \"src/components/DateInput\";\n\nconst TimePeriods = [\n { id: 'present_and_upcoming', title: 'Present and Upcoming' },\n { id: 'all_times', title: 'All Times' },\n { id: 'today', title: 'Today' },\n { id: 'this_week', title: 'This Week' },\n { id: 'last_week', title: 'Last Week' },\n { id: 'this_month', title: 'This Month' },\n { id: 'last_month', title: 'Last Month' },\n { id: 'custom', title: 'Custom' }\n];\n\nexport default ({ timePeriod, setTimePeriod, startDate, setStartDate, endDate, setEndDate }) => (\n <>\n <div className=\"form-group radio_buttons optional\">\n <label className=\"control-label radio_buttons optional\">Time period:</label>\n {TimePeriods.map(item => (\n <span className=\"radio\" key={item.id}>\n <label>\n <input className=\"radio_buttons optional\"\n type=\"radio\"\n value={item.id}\n checked={timePeriod === item.id}\n onChange={() => setTimePeriod(item.id)}\n name=\"filter[time_period]\"/>\n {item.title}\n </label>\n </span>\n ))}\n </div>\n {timePeriod === 'custom' &&\n <div className=\"custom_dates\">\n <div className=\"form-group string optional\">\n <label className=\"control-label string optional\">\n Start date\n </label>\n <DateInput\n onChange={setStartDate}\n value={startDate}\n name={`filter[start_date]`}\n positions={['top']}\n />\n </div>\n <div className=\"form-group string optional\">\n <label className=\"control-label string optional\">\n End date\n </label>\n <DateInput\n onChange={setEndDate}\n value={endDate}\n name={`filter[end_date]`}\n positions={['top']}\n />\n </div>\n </div>\n }\n </>\n)","import React, { useContext } from \"react\";\nimport { AccessContext, ViewModeContext } from \"../../utils/context\";\n\nconst ViewModes = [\n { id: 'all', title: 'Show all shifts' },\n { id: 'my', title: 'Show my shifts only' },\n];\n\nexport default () => {\n const allowManage = useContext(AccessContext);\n const { viewMode, setViewMode } = useContext(ViewModeContext);\n\n if (!allowManage) return <input type='hidden' name=\"filter[view_mode]\" value='my'/>;\n\n return (\n <div className=\"form-group radio_buttons optional\">\n <label className=\"control-label radio_buttons optional\">Staff rota:</label>\n {ViewModes.map(item => (\n <span className=\"radio\" key={item.id}>\n <label>\n <input className=\"radio_buttons optional\"\n type=\"radio\"\n value={item.id}\n checked={viewMode === item.id}\n onChange={() => setViewMode(item.id)}\n name=\"filter[view_mode]\"/>\n {item.title}\n </label>\n </span>\n ))}\n </div>\n )\n}\n","import React, { useEffect, useState } from 'react';\nimport Search from \"./Filter/Search\";\nimport Venue from \"./Filter/Venue\";\nimport TimePeriod from \"./Filter/TimePeriod\";\nimport ViewMode from \"./Filter/ViewMode\";\n\nexport default ({ ready, setReady,\n term, setTerm,\n venueId, setVenueId,\n viewMode, setViewMode,\n timePeriod, setTimePeriod,\n startDate, setStartDate,\n endDate, setEndDate,\n location }) => {\n\n const [venueFilterReady, setVenueFilterReady] = useState(false);\n\n useEffect(()=> { setReady(venueFilterReady) }, [venueFilterReady])\n\n return (\n <>\n <div className='filter-input-group'>\n <Search\n term={term}\n setTerm={setTerm}\n />\n\n <Venue\n venueId={venueId}\n setVenueId={setVenueId}\n ready={venueFilterReady}\n setReady={setVenueFilterReady}\n location={location}\n />\n </div>\n\n <ViewMode\n viewMode={viewMode}\n setViewMode={setViewMode}\n />\n\n <TimePeriod\n timePeriod={timePeriod}\n setTimePeriod={setTimePeriod}\n startDate={startDate}\n setStartDate={setStartDate}\n endDate={endDate}\n setEndDate={setEndDate}\n />\n </>\n )\n};","import React, { useContext } from \"react\";\nimport { ViewModeContext } from \"../../utils/context\";\n\nexport default ({ showFirstColumn, multiple, clearHighlight, toggleSelectAll }) => {\n const { fullAccess } = useContext(ViewModeContext)\n\n return (\n <thead>\n <tr>\n {showFirstColumn && <th className='tl'>{fullAccess ? 'Name' : 'Venue'}</th>}\n <th className='date-column'>Date</th>\n <th>Start time</th>\n <th>End time</th>\n <th className='type-column'>Type</th>\n <th>Total</th>\n {fullAccess &&\n <th className='actions-column'>\n {(!multiple && !clearHighlight) && 'Actions'}\n {multiple &&\n <div className='text-center'>\n <input\n style={{ margin: '3px 0 0' }}\n type='checkbox'\n onClick={(e) => toggleSelectAll(e)}\n />\n </div>\n }\n {clearHighlight &&\n <div className='text-center'>\n <input\n style={{ margin: '3px 0 0' }}\n type='checkbox'\n onClick={(e) => toggleSelectAll(e)}\n />\n </div>\n }\n </th>\n }\n </tr>\n </thead>\n )\n};","import React, { useState } from \"react\";\n\nconst SHIFTS = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60];\nconst DIRECTIONS = ['before', 'after'];\nconst SESSIONS_OPTIONS = ['first', 'last']\nconst SESSIONS = {\n 'start': { 'before': SESSIONS_OPTIONS, 'after': SESSIONS_OPTIONS.slice(0, 1) },\n 'end': { 'before': SESSIONS_OPTIONS, 'after': SESSIONS_OPTIONS }\n};\n\nexport default (props) => {\n const { defaultMinutes, defaultDirection, defaultSession, defaultIncludeInternal } = props;\n const { disabled, name, index } = props;\n const [internalEnabled, setInternalEnabled] = useState(defaultIncludeInternal || false);\n const { handleMinutesChange } = props;\n const [direction, setDirection] = useState(defaultDirection);\n\n return (\n <>\n <div className='form-inline' style={{ width: 300, display: 'inline-block' }}>\n <select defaultValue={defaultMinutes}\n className=\"form-control select optional\"\n name={`staff_item[${index}][${name}_minutes]`}\n disabled={disabled}\n onChange={(event)=>{ handleMinutesChange(name, event.target.value) }}>\n {SHIFTS.map(shift => <option key={shift} value={shift}>{shift}</option>)}\n </select>\n\n minutes\n\n <select defaultValue={defaultDirection}\n className=\"form-control select optional\"\n name={`staff_item[${index}][${name}_direction]`}\n disabled={disabled}\n onChange={(e)=> setDirection(e.target.value)}>\n {DIRECTIONS.map(dir => <option key={dir} value={dir}>{dir}</option>)}\n </select>\n\n <select defaultValue={defaultSession}\n className=\"form-control select optional\"\n name={`staff_item[${index}][${name}_session]`}\n disabled={disabled}>\n {(SESSIONS[name][direction] || []).map(session => <option key={session} value={session}>{session}</option>)}\n </select>\n \n session\n </div>\n\n <div className=\"form-group check_boxes optional\" style={{ margin: '10px 0 10px 23px' }}>\n <span className=\"checkbox\">\n <input type='hidden' name={`staff_item[${index}][${name}_include_internal]`} value=\"0\"/>\n <input\n className=\"check_boxes optional\"\n type=\"checkbox\"\n name={`staff_item[${index}][${name}_include_internal]`}\n value=\"1\"\n onChange={() => setInternalEnabled(!internalEnabled)}\n disabled={disabled}\n checked={internalEnabled}\n />\n <span style={{ marginLeft: 5 }}>\n include any internal bookings\n </span>\n </span>\n </div>\n </>\n );\n}","import React, { useState } from \"react\";\nimport TimePicker from \"rc-time-picker\";\nimport SmartTime from \"./SmartTime\";\n\n\nexport default (props) => {\n const [timeOption, setTimeOption] = useState(props.defaultTimeOption || 'flexible');\n const { name, index, defaultValue } = props;\n const { defaultMinutes, defaultDirection, defaultSession, defaultIncludeInternal, saveShiftOptions } = props;\n const { handleMinutesChange } = props;\n\n return (\n <>\n <div className='form-inline vert-offset-bottom-10'>\n <div className=\"radio occurrences\">\n <label>\n <input type=\"radio\"\n value=\"fixed\"\n checked={timeOption === 'fixed'}\n name={`staff_item[${index}][${name}_time_option]`}\n onChange={()=>setTimeOption('fixed')}\n style={{ marginRight: 10 }}/>\n\n <TimePicker\n className='staff-item-time-picker'\n name={`staff_item[${index}][${name}_time]`}\n defaultValue={defaultValue}\n showSecond={false}\n inputReadOnly\n disabled={timeOption !== 'fixed'}\n minuteStep={5}\n allowEmpty={false}\n />\n </label>\n </div>\n </div>\n\n <div className='form-inline vert-offset-bottom-10'>\n <div className=\"radio\">\n <label>\n <input\n type=\"radio\"\n value=\"flexible\"\n checked={timeOption === 'flexible'}\n onChange={()=>setTimeOption('flexible')}\n name={`staff_item[${index}][${name}_time_option]`}\n style={{ marginRight: 10 }}\n />\n <SmartTime\n index={index}\n name={name}\n defaultMinutes={defaultMinutes}\n defaultDirection={defaultDirection}\n defaultSession={defaultSession}\n defaultIncludeInternal={defaultIncludeInternal}\n disabled={timeOption !== 'flexible'}\n handleMinutesChange={handleMinutesChange}\n />\n </label>\n </div>\n </div>\n </>\n )\n}","//! moment-timezone.js\n//! version : 0.5.38\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.38\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (å°åŒ—標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","import React from \"react\";\n\nexport default ({ errors, name }) => {\n if (!errors[name]) return null;\n\n return (\n <div className=\"form-group has-error\">\n <div className='help-block'>\n {errors[name].map(error => `${error}`).join(', ')}\n </div>\n </div>\n )\n}","import React, { useState, useEffect } from \"react\";\nimport Calendar from 'react-calendar';\nimport DateInput from 'src/components/DateInput';\nimport TimeSelector from \"../../Form/TimeSelector\";\nimport axios from 'axios';\nimport moment from 'moment-timezone'\n\nmoment.tz.setDefault('Europe/London');\n\nimport 'rc-time-picker/assets/index.css';\nimport 'react-calendar/dist/Calendar.css';\nimport Error from \"../../Form/Error\";\n\nexport default (props) => {\n const { staffItem, errors } = props;\n const [valueB, onChangeValueB] = useState(moment(staffItem.eventDate).toDate());\n const [users, setUsers] = useState([]);\n\n useEffect(() => {\n if (staffItem.venueId) {\n axios\n .get('/admin/staff_rota/users.json', { params: { venue_id: staffItem.venueId } })\n .then((response) => setUsers(response.data))\n }\n\n return () => {\n setUsers([])\n }\n }, [staffItem]);\n\n if (users.length === 0) return null;\n\n const index = 0;\n\n return (\n <form id={`edit-staff-item-${staffItem.id}`} className='staff-rota-form'>\n <div className=\"shift-item bookings-time-list\">\n <div className='calendar-box'>\n <Calendar\n onChange={onChangeValueB}\n value={valueB}\n />\n </div>\n <div className='calendar-outside'>\n <div className='row'>\n <div className=\"col-md-3 col-sm-12\">\n <div className=\"form-group select optional\">\n <label className=\"control-label select optional\">\n Name\n </label>\n <select className=\"form-control select optional\"\n name={`staff_item[0][user_id]`}\n defaultValue={staffItem.userId}>\n {users.map(user => <option key={user.id} value={user.id}>{user.name}</option>)}\n </select>\n </div>\n </div>\n\n <div className='col-md-3 col-sm-12'>\n <div className=\"form-group optional\">\n <label className=\"optional control-label\">Date</label>\n <DateInput\n onChange={onChangeValueB}\n value={valueB}\n name={`staff_item[${index}][event_date]`}\n className='form-control date-input text-left'\n />\n </div>\n </div>\n </div>\n\n <div className='row'>\n <div className=\"col-md-6\">\n <label className=\"control-label select optional\">Start</label>\n <TimeSelector\n name='start'\n index={0}\n defaultTimeOption={staffItem.start.timeOption}\n defaultValue={staffItem.start.time ? moment(staffItem.start.time) : moment(\"17:00\", 'H:m')}\n defaultMinutes={staffItem.start.minutes != null ? staffItem.start.minutes : 30 }\n defaultDirection={staffItem.start.direction ? staffItem.start.direction : 'before'}\n defaultSession={staffItem.start.session ? staffItem.start.session : 'first'}\n defaultIncludeInternal={staffItem.start.includeInternal !== null ? staffItem.start.includeInternal : false}\n />\n </div>\n\n <div className=\"col-md-6\">\n <label className=\"control-label select optional\">End</label>\n <TimeSelector\n name='end'\n index={0}\n defaultTimeOption={staffItem.end.timeOption}\n defaultValue={staffItem.end.time ? moment(staffItem.end.time) : moment(\"22:00\", 'H:m')}\n defaultMinutes={staffItem.end.minutes != null ? staffItem.end.minutes : 15}\n defaultDirection={staffItem.end.direction ? staffItem.end.direction : 'after'}\n defaultSession={staffItem.end.session ? staffItem.end.session : 'last'}\n defaultIncludeInternal={staffItem.end.includeInternal !== null ? staffItem.end.includeInternal : false}\n />\n </div>\n </div>\n\n <Error errors={errors} name='time_period'/>\n <Error errors={errors} name='intersection'/>\n </div>\n\n <div className=\"clearfix\"/>\n </div>\n </form>\n )\n}","export default function Rescue(error, fn) {\n const { response } = error;\n\n if (response) {\n const { status, data } = response;\n\n if (status === 422) {\n if (fn) fn(data.errors);\n } else {\n console.warn(error);\n }\n } else {\n console.warn(error)\n }\n}","import React, { useEffect, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport Form from \"./Form\";\nimport axios from \"axios\";\nimport rescue from \"../../../rescue\";\n\nexport default ({ show, setShow, onUpdated, itemId, setAfterEditMessageType}) => {\n const [staffItem, setStaffItem] = useState(null);\n const [errors, setErrors] = useState({});\n const [updatingInProgress, setUpdatingInProgress] = useState(false);\n\n useEffect(() => {\n if (show) {\n axios\n .get(`/admin/staff_items/${itemId}/edit.json`)\n .then((response) => {\n setStaffItem(response.data.staffItem);\n });\n } else {\n setStaffItem(null);\n setErrors({});\n }\n }, [show])\n\n const confirmChanges = () => {\n if (updatingInProgress) return true;\n\n setUpdatingInProgress(true)\n\n const formData = new FormData(document.getElementById(`edit-staff-item-${itemId}`));\n\n axios\n .put(`/admin/staff_items/${itemId}.json`, formData)\n .then((response) => {\n setShow(false)\n onUpdated();\n setAfterEditMessageType(response.data.message)\n setTimeout(() => setUpdatingInProgress(false), 150)\n })\n .catch(error => {\n setUpdatingInProgress(false)\n rescue(error, setErrors)\n });\n }\n\n return (\n <Modal show={show} onHide={() => setShow(false)} dialogClassName=\"modal-slarge\">\n <Modal.Header closeButton>\n <Modal.Title>Edit shift</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {staffItem && <Form errors={errors} staffItem={staffItem}/>}\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Close</Button>\n <Button bsStyle={'primary'} disabled={updatingInProgress} onClick={confirmChanges}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n );\n}","import axios from \"axios\";\n\nclass Api {\n getStaffRota = () => {\n return axios.get('/admin/staff_rota.json')\n }\n\n removeRow = (staffItemId) => {\n return axios.delete(`/admin/staff_items/${staffItemId}.json`)\n }\n\n removeRows = (staffItemIds) => {\n return axios.delete(`/admin/staff_items/multidestroy`, { data: { id: staffItemIds } })\n }\n}\n\nconst api = new Api();\nexport default api;","import React, { useContext, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport api from '../../../api';\nimport { ViewModeContext } from \"../../../utils/context\";\n\nconst MESSAGE = `\n Are you sure you want to proceed? Cancelled shifts are highlighted\n in red until the relevant staff member signs in to SchoolHire and\n acknowledges that they are aware of this change. Once acknowledged,\n the shift(s) will be removed.\n`\n\nconst MESSAGE2 = `\n Are you sure you want to proceed? Once confirmed, the shift(s) will be removed.\n`\n\nexport default ({ itemId, show, setShow, onUpdated, data }) => {\n let message = MESSAGE;\n const { currentUserId } = useContext(ViewModeContext);\n const [removalInProgress, setRemovalInProgress] = useState(false);\n\n const handleRemove = () => {\n if (removalInProgress) return true;\n\n setRemovalInProgress(true)\n\n api\n .removeRow(itemId)\n .then(() => {\n setShow(false)\n onUpdated();\n setTimeout(() => setRemovalInProgress(false), 150)\n })\n .catch(() => {\n setRemovalInProgress(false)\n })\n }\n \n const item = data.find((staffItem => staffItem.id === itemId));\n if (item && item.userId === currentUserId) message = MESSAGE2;\n\n return (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>Shift(s) Cancelled</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {message}\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={handleRemove} disabled={removalInProgress}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n );\n}","import React, { useState, useEffect, useMemo } from \"react\";\nimport TimeSelector from \"../../Form/TimeSelector\";\nimport axios from 'axios';\nimport moment from \"moment-timezone\";\n\nexport default ({ staffItem, selectedItemIds, errors }) => {\n const [users, setUsers] = useState([]);\n\n useEffect(() => {\n if (staffItem) {\n axios\n .get('/admin/staff_rota/users.json', { params: { venue_id: staffItem.venueId } })\n .then((response) => setUsers(response.data))\n }\n\n return () => console.log('unmount')\n }, [staffItem]);\n\n const staffItemsErrors = useMemo(() => {\n let e = {};\n Object.keys(errors).map((key, index) => {\n let a = key.match(/staff_item\\[(\\d+)\\]\\.(.+)/)\n if (a) {\n let id = parseInt(a[1]), name = a[2];\n if (e[id] === undefined) e[id] = {};\n if (e[id][name] === undefined) e[id][name] = [];\n\n e[id][name].push(errors[key]);\n }\n });\n\n return e;\n }, [errors]);\n\n if (users.length === 0) return null;\n\n const index = 0;\n\n return (\n <form id={`edit-multi-staff-items`} className='staff-rota-form'>\n <div className='bookings-time-list'>\n <div className='row'>\n <input type='hidden' name='staff_item_id' value={selectedItemIds[0]}/>\n {selectedItemIds && selectedItemIds.map(id => <input key={id} type='hidden' name='id[]' value={id}/>)}\n <div className=\"col-md-12 col-sm-12\">\n <div className=\"form-group select optional\">\n <label className=\"control-label select optional\">\n Name\n </label>\n <select className=\"form-control select optional\"\n name={`staff_item[${index}][user_id]`}\n defaultValue={staffItem.userId}>\n {users.map(user => <option key={user.id} value={user.id}>{user.name}</option>)}\n </select>\n </div>\n </div>\n </div>\n\n <div className='row'>\n <div className=\"col-md-12\">\n <label className=\"control-label select optional\">Start</label>\n <TimeSelector\n name='start'\n index={0}\n defaultTimeOption={staffItem.start.timeOption}\n defaultValue={staffItem.start.time ? moment(staffItem.start.time) : moment(\"17:00\", 'H:m')}\n defaultMinutes={staffItem.start.minutes ? staffItem.start.minutes : 30 }\n defaultDirection={staffItem.start.direction ? staffItem.start.direction : 'before'}\n defaultSession={staffItem.start.session ? staffItem.start.session : 'first'}\n defaultIncludeInternal={staffItem.start.includeInternal !== null ? staffItem.start.includeInternal : false}\n />\n </div>\n </div>\n\n <div className='row'>\n <div className=\"col-md-12\">\n <label className=\"control-label select optional\">End</label>\n <TimeSelector\n name='end'\n index={0}\n defaultTimeOption={staffItem.end.timeOption}\n defaultValue={staffItem.end.time ? moment(staffItem.end.time) : moment(\"22:00\", 'H:m')}\n defaultMinutes={staffItem.end.minutes ? staffItem.end.minutes : 15}\n defaultDirection={staffItem.end.direction ? staffItem.end.direction : 'after'}\n defaultSession={staffItem.end.session ? staffItem.end.session : 'last'}\n defaultIncludeInternal={staffItem.end.includeInternal !== null ? staffItem.end.includeInternal : false}\n />\n </div>\n </div>\n </div>\n\n {Object.keys(staffItemsErrors).length > 0 &&\n <div key={index} className=\"form-group has-error\">\n {Object.keys(staffItemsErrors).map((key, index) => {\n let m = staffItemsErrors[key];\n\n return (\n <div key={key}>\n <strong>Shift ID: {key}</strong>\n {Object.keys(m).map((k, index) =>\n <div key={index} className='help-block'>\n {m[k].join(', ')}\n </div>\n )}\n </div>\n )\n })}\n </div>\n }\n </form>\n )\n}","import React from 'react';\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n console.log(error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <div className=\"alert alert-danger fade in alert-dismissible text-center\">\n Something went wrong.\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport MultipleForm from \"./MultipleForm\";\nimport axios from \"axios\";\nimport rescue from \"../../../rescue\";\nimport ErrorBoundary from \"../../../ErrorBoundary\";\n\nexport default ({ show, setShow, selectedItemIds, selectedNonCancelledItemIds, onUpdated, setAfterEditMessageType }) => {\n const [staffItem, setStaffItem] = useState(null);\n const [errors, setErrors] = useState({});\n const [staffItems, setStaffItems] = useState([]);\n const [updatingInProgress, setUpdatingInProgress] = useState(false);\n\n useEffect(() => {\n if (show) {\n axios\n .get(`/admin/staff_items/${selectedNonCancelledItemIds[0]}/edit.json`)\n .then((response) => {\n setStaffItem(response.data.staffItem);\n setStaffItems(response.data.staffItems);\n });\n } else {\n setStaffItem(null);\n setErrors({});\n setStaffItems([]);\n }\n }, [show])\n\n const confirmChanges = () => {\n if (updatingInProgress) return true;\n setUpdatingInProgress(true);\n\n const formData = new FormData(document.getElementById('edit-multi-staff-items'));\n\n axios\n .put(`/admin/staff_items/multiupdate.json`, formData)\n .then((response) => {\n setShow(false);\n onUpdated();\n setAfterEditMessageType(response.data.message);\n setTimeout(() => setUpdatingInProgress(false), 150)\n })\n .catch((error) => {\n setUpdatingInProgress(false);\n rescue(error, setErrors)\n });\n }\n\n return (\n <ErrorBoundary>\n <Modal show={show} onHide={() => setShow(false)} dialogClassName=\"modal-xm\">\n <Modal.Header closeButton>\n <Modal.Title>Edit multiple shifts</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {staffItem &&\n <MultipleForm\n staffItem={staffItem}\n errors={errors}\n selectedItemIds={selectedNonCancelledItemIds}\n />\n }\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Close</Button>\n <Button bsStyle=\"primary\" disabled={updatingInProgress} onClick={confirmChanges}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n </ErrorBoundary>\n );\n}","import React, { useEffect, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport MultipleForm from \"./MultipleForm\";\nimport axios from \"axios\";\nimport rescue from \"../../../rescue\";\nimport ErrorBoundary from \"../../../ErrorBoundary\";\n\nexport default ({ show, setShow, selectedItemIds, onUpdated, clearHighlight, setClearHighlight}) => {\n const [errors, setErrors] = useState({});\n const [updatingInProgress, setUpdatingInProgress] = useState(false);\n\n\n const confirmChanges = () => {\n if (updatingInProgress) return true;\n setUpdatingInProgress(true);\n\n const formData = {ids: selectedItemIds}\n\n axios\n .put(`/admin/staff_items/clear_highlight.json`, formData)\n .then((response) => {\n setShow(false);\n setClearHighlight(false);\n onUpdated();\n setTimeout(() => setUpdatingInProgress(false), 150)\n })\n .catch((error) => {\n setUpdatingInProgress(false);\n rescue(error, setErrors)\n });\n }\n\n return (\n <ErrorBoundary>\n <Modal show={show} onHide={() => setShow(false)} dialogClassName=\"modal-xm\">\n <Modal.Header closeButton>\n <Modal.Title>Clear Highlighting</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n Are you sure?\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Close</Button>\n <Button bsStyle=\"primary\" disabled={updatingInProgress} onClick={confirmChanges}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n </ErrorBoundary>\n );\n}","import React, { useContext, useMemo, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport api from \"../../../api\";\nimport { ViewModeContext } from \"../../../utils/context\";\n\nconst MESSAGE = `\n Are you sure you want to proceed? Cancelled shifts are highlighted\n in red until the relevant staff member signs in to SchoolHire and\n acknowledges that they are aware of this change. Once acknowledged,\n the shift(s) will be removed.\n`\n\nconst MESSAGE2 = `\n Are you sure you want to proceed? Once confirmed, the shift(s) will be removed.\n`\n\nexport default ({ show, setShow, selectedItemIds, onUpdated, data }) => {\n let message = MESSAGE;\n const { currentUserId } = useContext(ViewModeContext);\n const [removalInProgress, setRemovalInProgress] = useState(false);\n\n const handleRemove = () => {\n if (removalInProgress) return true;\n\n setRemovalInProgress(true)\n\n api\n .removeRows(selectedItemIds)\n .then(() => {\n setShow(false)\n onUpdated();\n setTimeout(() => setRemovalInProgress(false), 150)\n })\n .then(() => {\n setRemovalInProgress(false);\n })\n }\n\n const userIds = useMemo(() => {\n return data\n .filter((staffItem => selectedItemIds.includes(staffItem.id)))\n .map(x => x.userId)\n .filter((v, i, a) => a.indexOf(v) === i);\n }, [data, selectedItemIds]);\n\n if (userIds.length === 1 && userIds[0] === currentUserId) {\n message = MESSAGE2;\n }\n\n return (\n <Modal show={show} onHide={() => setShow(false)} >\n <Modal.Header closeButton>\n <Modal.Title>Shift(s) Cancelled</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <p>\n {message}\n </p>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={handleRemove} disabled={removalInProgress}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n );\n}","import React from 'react';\nimport { Button, Modal } from 'react-bootstrap';\n\nexport default ({ show, setShow, messageType }) => (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>Shift(s) Amended</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {messageType}\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Close</Button>\n </Modal.Footer>\n </Modal>\n)","import React from \"react\";\nimport ModalEdit from \"./Modals/Edit\";\nimport ModalDelete from \"./Modals/Delete\";\nimport MultipleEdit from \"./Modals/MultipleEdit\";\nimport MultipleClearHighlight from \"./Modals/MultipleClearHighlight\";\nimport MultipleDelete from \"./Modals/MultipleDelete\";\nimport AfterEdit from \"./Modals/AfterEdit\";\n\nexport default ({ itemId, onUpdated, data,\n onRemoved, onEdited,\n selectedItemIds,\n selectedNonCancelledItemIds,\n showEdit, setShowEdit,\n showDelete, setShowDelete,\n showMultiEdit, setShowMultiEdit,\n showClearHighlightEdit, setShowClearHighlightEdit,\n clearHighlight, setClearHighlight,\n showMultiDelete, setShowMultiDelete,\n showAfterEdit, setShowAfterEdit,\n afterEditMessageType, setAfterEditMessageType\n}) => {\n const handleOnEdited = () => {\n if (typeof onEdited === 'function') onEdited() ;\n if (typeof onUpdated === 'function') onUpdated();\n }\n\n const handleOnRemoved= () => {\n if (typeof onRemoved === 'function') onRemoved() ;\n if (typeof onUpdated === 'function') onUpdated();\n }\n\n return (\n <>\n <AfterEdit\n show={showAfterEdit}\n setShow={setShowAfterEdit}\n messageType={afterEditMessageType}\n setAfterEditMessageType={setAfterEditMessageType}\n />\n\n <ModalEdit\n itemId={itemId}\n show={showEdit}\n setShow={setShowEdit}\n setAfterEditMessageType={setAfterEditMessageType}\n onUpdated={handleOnEdited}\n />\n\n <MultipleClearHighlight\n selectedItemIds={selectedItemIds}\n show={showClearHighlightEdit}\n setShow={setShowClearHighlightEdit}\n clearHighlight={clearHighlight}\n setClearHighlight={setClearHighlight}\n onUpdated={onUpdated}\n />\n\n <MultipleEdit\n selectedItemIds={selectedItemIds}\n selectedNonCancelledItemIds={selectedNonCancelledItemIds}\n show={showMultiEdit}\n setShow={setShowMultiEdit}\n setAfterEditMessageType={setAfterEditMessageType}\n onUpdated={handleOnEdited}\n />\n\n <ModalDelete\n itemId={itemId}\n show={showDelete}\n setShow={setShowDelete}\n onUpdated={handleOnRemoved}\n data={data}\n />\n\n <MultipleDelete\n selectedItemIds={selectedItemIds}\n show={showMultiDelete}\n setShow={setShowMultiDelete}\n onUpdated={handleOnRemoved}\n data={data}\n />\n </>\n )\n}","/* UAParser.js v1.0.35\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.35\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",VIERA=\"Viera\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i<arr.length;i++){enums[arr[i].toUpperCase()]=arr[i]}return enums},has=function(str1,str2){return typeof str1===STR_TYPE?lowerize(str2).indexOf(lowerize(str1))!==-1:false},lowerize=function(str){return str.toLowerCase()},majorize=function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,EMPTY).split(\".\")[0]:undefined},trim=function(str,len){if(typeof str===STR_TYPE){str=str.replace(/^\\s\\s*/,EMPTY);return typeof len===UNDEF_TYPE?str:str.substring(0,UA_MAX_LENGTH)}};var rgxMapper=function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i<arrays.length&&!matches){var regex=arrays[i],props=arrays[i+1];j=k=0;while(j<regex.length&&!matches){if(!regex[j]){break}matches=regex[j++].exec(ua);if(!!matches){for(p=0;p<props.length;p++){match=matches[++k];q=props[p];if(typeof q===OBJ_TYPE&&q.length>0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j<map[i].length;j++){if(has(map[i][j],str)){return i===UNKNOWN?undefined:i}}}else if(has(map[i],str)){return i===UNKNOWN?undefined:i}}return str};var oldSafariMap={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},windowsVersionMap={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var regexes={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[NAME,VERSION],[/opios[\\/ ]+([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[NAME,VERSION],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[VERSION,[NAME,\"UC\"+BROWSER]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[VERSION,[NAME,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[VERSION,[NAME,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[VERSION,[NAME,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 Secure \"+BROWSER],VERSION],[/\\bfocus\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[VERSION,[NAME,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[VERSION,[NAME,OPERA+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[VERSION,[NAME,\"MIUI \"+BROWSER]],[/fxios\\/([-\\w\\.]+)/i],[VERSION,[NAME,FIREFOX]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[NAME,\"360 \"+BROWSER]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[NAME,/(.+)/,\"$1 \"+BROWSER],VERSION],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[NAME,/_/g,\" \"],VERSION],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[NAME,VERSION],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[NAME],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[NAME,FACEBOOK],VERSION],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[NAME,VERSION],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[VERSION,[NAME,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[VERSION,[NAME,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[VERSION,[NAME,CHROME+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[NAME,CHROME+\" WebView\"],VERSION],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[VERSION,[NAME,\"Android \"+BROWSER]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[NAME,VERSION],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[VERSION,[NAME,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[VERSION,NAME],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[NAME,[VERSION,strMapper,oldSafariMap]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[NAME,VERSION],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[NAME,\"Netscape\"],VERSION],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[VERSION,[NAME,FIREFOX+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[NAME,VERSION],[/(cobalt)\\/([\\w\\.]+)/i],[NAME,[VERSION,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[ARCHITECTURE,\"amd64\"]],[/(ia32(?=;))/i],[[ARCHITECTURE,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[ARCHITECTURE,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[ARCHITECTURE,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[ARCHITECTURE,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[ARCHITECTURE,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[ARCHITECTURE,/ower/,EMPTY,lowerize]],[/(sun4\\w)[;\\)]/i],[[ARCHITECTURE,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[ARCHITECTURE,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,TABLET]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[MODEL,[VENDOR,SAMSUNG],[TYPE,MOBILE]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[MODEL,[VENDOR,APPLE],[TYPE,MOBILE]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[MODEL,[VENDOR,APPLE],[TYPE,TABLET]],[/(macintosh);/i],[MODEL,[VENDOR,APPLE]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[MODEL,[VENDOR,SHARP],[TYPE,MOBILE]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,TABLET]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[MODEL,[VENDOR,HUAWEI],[TYPE,MOBILE]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,MOBILE]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[MODEL,/_/g,\" \"],[VENDOR,XIAOMI],[TYPE,TABLET]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[MODEL,[VENDOR,\"OPPO\"],[TYPE,MOBILE]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[MODEL,[VENDOR,\"Vivo\"],[TYPE,MOBILE]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[MODEL,[VENDOR,\"Realme\"],[TYPE,MOBILE]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[MODEL,[VENDOR,MOTOROLA],[TYPE,MOBILE]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[MODEL,[VENDOR,MOTOROLA],[TYPE,TABLET]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[MODEL,[VENDOR,LG],[TYPE,TABLET]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[MODEL,[VENDOR,LG],[TYPE,MOBILE]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[MODEL,[VENDOR,\"Lenovo\"],[TYPE,TABLET]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[MODEL,/_/g,\" \"],[VENDOR,\"Nokia\"],[TYPE,MOBILE]],[/(pixel c)\\b/i],[MODEL,[VENDOR,GOOGLE],[TYPE,TABLET]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[MODEL,[VENDOR,GOOGLE],[TYPE,MOBILE]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[MODEL,[VENDOR,SONY],[TYPE,MOBILE]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[MODEL,\"Xperia Tablet\"],[VENDOR,SONY],[TYPE,TABLET]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[MODEL,[VENDOR,\"OnePlus\"],[TYPE,MOBILE]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[MODEL,[VENDOR,AMAZON],[TYPE,TABLET]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[MODEL,/(.+)/g,\"Fire Phone $1\"],[VENDOR,AMAZON],[TYPE,MOBILE]],[/(playbook);[-\\w\\),; ]+(rim)/i],[MODEL,VENDOR,[TYPE,TABLET]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[MODEL,[VENDOR,BLACKBERRY],[TYPE,MOBILE]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[MODEL,[VENDOR,ASUS],[TYPE,TABLET]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[MODEL,[VENDOR,ASUS],[TYPE,MOBILE]],[/(nexus 9)/i],[MODEL,[VENDOR,\"HTC\"],[TYPE,TABLET]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[VENDOR,[MODEL,/_/g,\" \"],[TYPE,MOBILE]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[MODEL,[VENDOR,\"Acer\"],[TYPE,TABLET]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[MODEL,[VENDOR,\"Meizu\"],[TYPE,MOBILE]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[VENDOR,MODEL,[TYPE,TABLET]],[/(surface duo)/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,TABLET]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[MODEL,[VENDOR,\"Fairphone\"],[TYPE,MOBILE]],[/(u304aa)/i],[MODEL,[VENDOR,\"AT&T\"],[TYPE,MOBILE]],[/\\bsie-(\\w*)/i],[MODEL,[VENDOR,\"Siemens\"],[TYPE,MOBILE]],[/\\b(rct\\w+) b/i],[MODEL,[VENDOR,\"RCA\"],[TYPE,TABLET]],[/\\b(venue[\\d ]{2,7}) b/i],[MODEL,[VENDOR,\"Dell\"],[TYPE,TABLET]],[/\\b(q(?:mv|ta)\\w+) b/i],[MODEL,[VENDOR,\"Verizon\"],[TYPE,TABLET]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[MODEL,[VENDOR,\"Barnes & Noble\"],[TYPE,TABLET]],[/\\b(tm\\d{3}\\w+) b/i],[MODEL,[VENDOR,\"NuVision\"],[TYPE,TABLET]],[/\\b(k88) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,TABLET]],[/\\b(nx\\d{3}j) b/i],[MODEL,[VENDOR,\"ZTE\"],[TYPE,MOBILE]],[/\\b(gen\\d{3}) b.+49h/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,MOBILE]],[/\\b(zur\\d{3}) b/i],[MODEL,[VENDOR,\"Swiss\"],[TYPE,TABLET]],[/\\b((zeki)?tb.*\\b) b/i],[MODEL,[VENDOR,\"Zeki\"],[TYPE,TABLET]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[VENDOR,\"Dragon Touch\"],MODEL,[TYPE,TABLET]],[/\\b(ns-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"Insignia\"],[TYPE,TABLET]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[MODEL,[VENDOR,\"NextBook\"],[TYPE,TABLET]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[VENDOR,\"Voice\"],MODEL,[TYPE,MOBILE]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[VENDOR,\"LvTel\"],MODEL,[TYPE,MOBILE]],[/\\b(ph-1) /i],[MODEL,[VENDOR,\"Essential\"],[TYPE,MOBILE]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[MODEL,[VENDOR,\"Envizen\"],[TYPE,TABLET]],[/\\b(trio[-\\w\\. ]+) b/i],[MODEL,[VENDOR,\"MachSpeed\"],[TYPE,TABLET]],[/\\btu_(1491) b/i],[MODEL,[VENDOR,\"Rotor\"],[TYPE,TABLET]],[/(shield[\\w ]+) b/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,TABLET]],[/(sprint) (\\w+)/i],[VENDOR,MODEL,[TYPE,MOBILE]],[/(kin\\.[onetw]{3})/i],[[MODEL,/\\./g,\" \"],[VENDOR,MICROSOFT],[TYPE,MOBILE]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,TABLET]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,MOBILE]],[/smart-tv.+(samsung)/i],[VENDOR,[TYPE,SMARTTV]],[/hbbtv.+maple;(\\d+)/i],[[MODEL,/^/,\"SmartTV\"],[VENDOR,SAMSUNG],[TYPE,SMARTTV]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[VENDOR,LG],[TYPE,SMARTTV]],[/(apple) ?tv/i],[VENDOR,[MODEL,APPLE+\" TV\"],[TYPE,SMARTTV]],[/crkey/i],[[MODEL,CHROME+\"cast\"],[VENDOR,GOOGLE],[TYPE,SMARTTV]],[/droid.+aft(\\w)( bui|\\))/i],[MODEL,[VENDOR,AMAZON],[TYPE,SMARTTV]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[MODEL,[VENDOR,SHARP],[TYPE,SMARTTV]],[/(bravia[\\w ]+)( bui|\\))/i],[MODEL,[VENDOR,SONY],[TYPE,SMARTTV]],[/(mitv-\\w{5}) bui/i],[MODEL,[VENDOR,XIAOMI],[TYPE,SMARTTV]],[/Hbbtv.*(technisat) (.*);/i],[VENDOR,MODEL,[TYPE,SMARTTV]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[VENDOR,trim],[MODEL,trim],[TYPE,SMARTTV]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[TYPE,SMARTTV]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[VENDOR,MODEL,[TYPE,CONSOLE]],[/droid.+; (shield) bui/i],[MODEL,[VENDOR,\"Nvidia\"],[TYPE,CONSOLE]],[/(playstation [345portablevi]+)/i],[MODEL,[VENDOR,SONY],[TYPE,CONSOLE]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[MODEL,[VENDOR,MICROSOFT],[TYPE,CONSOLE]],[/((pebble))app/i],[VENDOR,MODEL,[TYPE,WEARABLE]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[MODEL,[VENDOR,APPLE],[TYPE,WEARABLE]],[/droid.+; (glass) \\d/i],[MODEL,[VENDOR,GOOGLE],[TYPE,WEARABLE]],[/droid.+; (wt63?0{2,3})\\)/i],[MODEL,[VENDOR,ZEBRA],[TYPE,WEARABLE]],[/(quest( 2| pro)?)/i],[MODEL,[VENDOR,FACEBOOK],[TYPE,WEARABLE]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[VENDOR,[TYPE,EMBEDDED]],[/(aeobc)\\b/i],[MODEL,[VENDOR,AMAZON],[TYPE,EMBEDDED]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[MODEL,[TYPE,MOBILE]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[MODEL,[TYPE,TABLET]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[TYPE,TABLET]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[TYPE,MOBILE]],[/(android[-\\w\\. ]{0,9});.+buil/i],[MODEL,[VENDOR,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[VERSION,[NAME,EDGE+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[VERSION,[NAME,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[NAME,VERSION],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[VERSION,NAME]],os:[[/microsoft (windows) (vista|xp)/i],[NAME,VERSION],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[NAME,[VERSION,strMapper,windowsVersionMap]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[NAME,\"Windows\"],[VERSION,strMapper,windowsVersionMap]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[VERSION,/_/g,\".\"],[NAME,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[NAME,MAC_OS],[VERSION,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[VERSION,NAME],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[NAME,VERSION],[/\\(bb(10);/i],[VERSION,[NAME,BLACKBERRY]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[VERSION,[NAME,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[VERSION,[NAME,FIREFOX+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[VERSION,[NAME,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[VERSION,[NAME,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[VERSION,[NAME,CHROME+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[NAME,CHROMIUM_OS],VERSION],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[NAME,VERSION],[/(sunos) ?([\\w\\.\\d]*)/i],[[NAME,\"Solaris\"],VERSION],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[NAME,VERSION]]};var UAParser=function(ua,extensions){if(typeof ua===OBJ_TYPE){extensions=ua;ua=undefined}if(!(this instanceof UAParser)){return new UAParser(ua,extensions).getResult()}var _navigator=typeof window!==UNDEF_TYPE&&window.navigator?window.navigator:undefined;var _ua=ua||(_navigator&&_navigator.userAgent?_navigator.userAgent:EMPTY);var _uach=_navigator&&_navigator.userAgentData?_navigator.userAgentData:undefined;var _rgxmap=extensions?extend(regexes,extensions):regexes;var _isSelfNav=_navigator&&_navigator.userAgent==_ua;this.getBrowser=function(){var _browser={};_browser[NAME]=undefined;_browser[VERSION]=undefined;rgxMapper.call(_browser,_ua,_rgxmap.browser);_browser[MAJOR]=majorize(_browser[VERSION]);if(_isSelfNav&&_navigator&&_navigator.brave&&typeof _navigator.brave.isBrave==FUNC_TYPE){_browser[NAME]=\"Brave\"}return _browser};this.getCPU=function(){var _cpu={};_cpu[ARCHITECTURE]=undefined;rgxMapper.call(_cpu,_ua,_rgxmap.cpu);return _cpu};this.getDevice=function(){var _device={};_device[VENDOR]=undefined;_device[MODEL]=undefined;_device[TYPE]=undefined;rgxMapper.call(_device,_ua,_rgxmap.device);if(_isSelfNav&&!_device[TYPE]&&_uach&&_uach.mobile){_device[TYPE]=MOBILE}if(_isSelfNav&&_device[MODEL]==\"Macintosh\"&&_navigator&&typeof _navigator.standalone!==UNDEF_TYPE&&_navigator.maxTouchPoints&&_navigator.maxTouchPoints>2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","import moment from \"moment-timezone\";\nimport { isMobile } from \"react-device-detect\";\n\nmoment.tz.setDefault('Europe/London');\n\nexport function dateFormat(date) {\n const dateFormat = isMobile ? 'ddd, DD MMM' : 'ddd, DD MMM Y'\n const momentDate = moment(date);\n return momentDate.isValid() ? momentDate.format(dateFormat) : '';\n}\n\nexport function timeFormat(time) {\n const momentTime = moment(time);\n return momentTime.isValid() ? momentTime.format('HH:mm') : '';\n}\n","import React, {useContext, useState} from \"react\";\nimport { dateFormat, timeFormat } from \"../../Formats\";\nimport { Button } from \"react-bootstrap\";\nimport classnames from 'classnames'\nimport { ViewModeContext } from \"../../utils/context\";\n\nconst timePresenter = ({ timeOption, time, minutes, direction, session }) => {\n if (timeOption === 'fixed' || time) {\n return timeFormat(time);\n } else {\n return \"TBC\";\n }\n}\n\nexport default ({ multiple, clearHighlight, item, selectedItems, toggleSelectedItem,\n handleEdit, handleDelete, showFirstColumn }) => {\n const { fullAccess } = useContext(ViewModeContext);\n const { start, end } = item;\n\n const [hightlightClass, setHighlightClass] = useState(item.hightlight);\n const rowClass = classnames(\n [\n item.valid ? 'time_slot_available' : 'time_slot_closed',\n `staff-item-${item.hightlight}`\n ]\n );\n\n return (\n <tr data-id={item.id} className={rowClass}>\n {showFirstColumn &&\n <td className=\"tl\" data-title={fullAccess ? 'Staff' : 'Venue'}>\n {fullAccess ? item.userName : item.venueTitle}\n </td>\n }\n <td data-title=\"Date\" className='date-column'>\n {dateFormat(item.eventDate)}\n </td>\n <td data-title=\"Start time\">\n {timePresenter(start)}\n </td>\n <td data-title=\"End time\">\n {timePresenter(end)}\n </td>\n <td className='type-column'>\n {item.linkType === 'linked_to_bookings' ? 'Linked to bookings' : 'Fixed'}\n </td>\n <td data-title=\"Total\">\n {item.deletedAt === null ? item.minutes : 'Cancelled'}\n </td>\n {fullAccess &&\n <td data-title=\"\" className='actions-column'>\n <>\n {(item.deletedAt === null && multiple) &&\n <div className='text-center' style={{ padding: '3px 0 3px 0'}}>\n <input\n type='checkbox'\n checked={selectedItems.includes(item.id)}\n onChange={() => toggleSelectedItem(item.id)}\n />\n </div>\n }\n {(clearHighlight && item.hightlight != \"none\") &&\n <div className='text-center' style={{ padding: '3px 0 3px 0'}}>\n <input\n type='checkbox'\n checked={selectedItems.includes(item.id)}\n onChange={() => {\n toggleSelectedItem(item.id)\n }}\n />\n </div>\n }\n {(item.deletedAt === null && !multiple && !clearHighlight) &&\n <div className='btn-group btn-group-xs sh-btn-group'>\n <Button onClick={() => handleEdit(item.id)}>Edit</Button>\n <Button onClick={() => handleDelete(item.id)}>Delete</Button>\n </div>\n }\n </>\n </td>\n }\n </tr>\n )\n}","import React, { useState, useEffect } from \"react\";\nimport axios from \"axios\";\n\nexport default ({ nonViewed, nonViewedNames, setNonViewed, venueId }) => {\n const [checked, setChecked] = useState(false);\n useEffect(() => setChecked(false), [nonViewed])\n\n const handleChange = () => {\n setChecked(true);\n\n axios\n .post(`/admin/staff_items/mark_viewed.json`, { venue_id: venueId })\n .then(() => { setNonViewed(false) });\n }\n\n if (nonViewed !== true) return null;\n\n return (\n <div className='mark-viewed'>\n <div className='col-checkbox'>\n <input type='checkbox' checked={checked} onChange={handleChange}/>\n </div>\n <div className='col-description'>\n Please tick this box to confirm that you have reviewed your shift(s). New shifts created\n are shown in green, shifts amended are shown in yellow, and shifts cancelled are shown in red.\n If you have any questions, please contact {nonViewedNames} directly.\n </div>\n </div>\n )\n}","import React from 'react';\nimport { Button, Modal } from 'react-bootstrap';;\n\nexport default ({ show, setShow }) => (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header>\n\n </Modal.Header>\n <Modal.Body>\n <div className='row'>\n <h3 className='text-center'>\n Please select the lines you wish to edit/delete\n </h3>\n </div>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Cancel</Button>\n </Modal.Footer>\n </Modal>\n);","import React, { useState } from \"react\";\nimport { Button, ButtonGroup } from 'react-bootstrap'\nimport EmptyListModal from \"./EmptyListModal\";\n\nexport default ({ multiple, setMultiple, setShowMultiEdit, setShowMultiDelete, selectedItems }) => {\n const [showModal, setShowModal] = useState(false)\n\n const handleEdit = () => { selectedItems.length > 1 ? setShowMultiEdit(true) : setShowModal(true) };\n const handleDelete = () => { selectedItems.length > 1 ? setShowMultiDelete(true) : setShowModal(true) };\n\n return (\n <>\n {!multiple && <Button style={{ marginLeft: 10 }} onClick={() => setMultiple(true)}>Edit/Remove Multiple</Button>}\n {\n multiple &&\n <>\n <EmptyListModal show={showModal} setShow={setShowModal}/>\n <ButtonGroup style={{ marginLeft: 10 }} className='multiple-modification'>\n <Button bsStyle='primary' onClick={handleEdit}>Edit Multiple</Button>\n <Button bsStyle='danger' onClick={handleDelete}>Delete Multiple</Button>\n <Button onClick={() => setMultiple(false)}>Cancel</Button>\n </ButtonGroup>\n </>\n }\n </>\n )\n}","import React, { useState } from \"react\";\nimport { Button, ButtonGroup } from 'react-bootstrap'\nimport EmptyListModal from \"./EmptyListModal\";\n\nexport default ({ multiple, setMultiple, clearHighlight, setClearHighlight, setShowMultiEdit, selectedItems,\n setSelectedItems, setShowClearHighlightEdit }) => {\n const [showModal, setShowModal] = useState(false)\n\n const handleEdit = () => { setShowClearHighlightEdit(true) };\n\n return (\n <>\n {!clearHighlight && <Button style={{ marginLeft: 10 }} onClick={() => setClearHighlight(true)}>Clear Highlighting</Button>}\n {\n clearHighlight &&\n <>\n <EmptyListModal show={showModal} setShow={setShowModal}/>\n <ButtonGroup style={{ marginLeft: 10 }} className='multiple-modification'>\n <Button bsStyle='primary' onClick={handleEdit}>Clear Highlighting</Button>\n <Button onClick={() => {\n setClearHighlight(false)\n setSelectedItems([])\n }}>Cancel</Button>\n </ButtonGroup>\n </>\n }\n </>\n )\n}","import React from \"react\";\nimport classNames from \"classnames\";\nimport { Link } from \"react-router-dom\";\nimport Multiple from \"./Multiple\";\nimport ClearHighlight from \"./ClearHighlight\";\nimport ExportButtons from '../../../../components/Reports/Export/Buttons';\n\nexport default ({ showCreate, venueId, multiple, setMultiple, clearHighlight, setClearHighlight,\n selectedItems, setSelectedItems, handleMultiEdit, handleClearHighlightEdit,\n handleMultiDelete, showMultiple, showClearHighlight, filter, showExportButton }) => (\n <div className={classNames('vert-offset-bottom-10 table-actions', { 'pull-right': !showExportButton })}>\n {showExportButton &&\n <ExportButtons\n filter={filter}\n item={{ key: 'staff_rotas' }}\n exportFormats={['csv']}\n classes=\"btn-group\"\n customPath='/admin/staff_rota'\n />\n }\n\n <div>\n {showCreate &&\n <Link className='btn btn-green' to={`/admin/staff_rota/new?venue_id=${venueId}`}>\n Create Shift\n </Link>\n }\n {(showMultiple && !clearHighlight) &&\n <Multiple\n multiple={multiple}\n setMultiple={setMultiple}\n selectedItems={selectedItems}\n setShowMultiEdit={handleMultiEdit}\n setShowMultiDelete={handleMultiDelete}\n />\n }\n {(showClearHighlight && !multiple) &&\n <ClearHighlight\n multiple={multiple}\n setMultiple={setMultiple}\n clearHighlight={clearHighlight}\n setClearHighlight={setClearHighlight}\n setShowClearHighlightEdit={handleClearHighlightEdit}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n setShowMultiEdit={handleMultiEdit}\n setShowMultiDelete={handleMultiDelete}\n />}\n </div>\n </div>\n)\n","import React, { useContext, useEffect, useState } from 'react';\nimport { ViewModeContext } from \"../../utils/context\";\nimport Header from \"./Header\";\nimport Modals from \"./Modals\";\nimport Row from './Row';\nimport MarkViewed from \"./MarkViewed\";\nimport Actions from './Actions';\nimport './Modals/styles.scss';\nimport api from '../../api';\nimport axios from \"axios\";\n\nexport default ({ data, total, onUpdated, venueId, showCreateButton,\n nonViewed, nonViewedNames, setNonViewed,\n creationProcess, filter, showExportButton }) => {\n const { fullAccess } = useContext(ViewModeContext);\n\n const [itemId, setItemId] = useState(null);\n const [multiple, setMultiple] = useState(false);\n const [clearHighlight, setClearHighlight] = useState(false);\n const [showEdit, setShowEdit] = useState(false);\n const [showDelete, setShowDelete] = useState(false);\n const [showMultiEdit, setShowMultiEdit] = useState(false);\n const [showClearHighlightEdit, setShowClearHighlightEdit] = useState(false);\n const [showMultiDelete, setShowMultiDelete] = useState(false);\n const [showAfterEdit, setShowAfterEdit] = useState(false);\n const [afterEditMessageType, setAfterEditMessageType] = useState(null);\n const [showAfterConfirmed, setShowAfterConfirmed] = useState(false);\n const [selectedItems, setSelectedItems] = useState([]);\n const [selectedNonCancelledItems, setSelectedNonCancelledItems] = useState([]);\n\n let showCreate = showCreateButton || false;\n let showFirstColumn = !(!([\"\", \"0\", 0].includes(venueId)) && !fullAccess);\n\n const handleEdit = (itemId) => {\n if ((multiple || clearHighlight) && selectedItems.length > 1) {\n setShowMultiEdit(true)\n } else {\n preloadItem(itemId, () => {\n // render children twice - investigate\n setItemId(itemId);\n setShowEdit(true);\n });\n }\n }\n\n const handleClearHighlightEdit = (itemId) => {\n setShowClearHighlightEdit(true)\n }\n\n const handleDelete = (itemId) => {\n if ((multiple || clearHighlight) && selectedItems.length > 1) {\n if (creationProcess) {\n api.removeRows(selectedItems).then(onUpdated)\n } else {\n setShowMultiDelete(true)\n }\n } else {\n preloadItem(itemId, () => {\n // render children twice - investigate\n if (creationProcess) {\n api.removeRow(itemId).then(onUpdated)\n } else {\n setItemId(itemId);\n setShowDelete(true)\n }\n })\n }\n }\n\n const preloadItem = (itemId, callback) => {\n axios.get(`/admin/staff_items/${itemId}.json`).then(() => {\n callback();\n }).catch(() => onUpdated());\n }\n\n const handleMultiEdit = () => handleEdit(null);\n const handleMultiDelete = () => handleDelete(null);\n\n const toggleSelectedItem = (itemId) => {\n if (selectedItems.includes(itemId)) {\n setSelectedItems(selectedItems.filter(x => x !== itemId));\n setSelectedNonCancelledItems(selectedNonCancelledItems.filter(x => x !== itemId))\n } else {\n setSelectedItems(selectedItems.concat([itemId]))\n setSelectedNonCancelledItems(selectedNonCancelledItems.concat([itemId]))\n }\n }\n\n const toggleSelectAll = (e) => {\n let newSelectedItems = (e.target.checked) ? data.map(item => item.id) : []\n setSelectedItems(newSelectedItems);\n let newSelectedNonCancelledItems = (e.target.checked) ? data.filter(item => item.deletedAt === null).map(item => item.id) : []\n setSelectedNonCancelledItems(newSelectedNonCancelledItems);\n }\n\n useEffect(() => {\n setSelectedItems([]);\n setSelectedNonCancelledItems([]);\n setMultiple(false);\n }, [data]);\n\n const showMultiple = (data || []).filter(x => x.deletedAt === null).length > 1;\n const showClearHighlight = (data || []).filter(x => x.hightlight !== \"none\").length > 0;\n\n return (\n <>\n <Modals\n itemId={itemId}\n selectedItemIds={selectedItems}\n selectedNonCancelledItemIds={selectedNonCancelledItems}\n onUpdated={onUpdated}\n onEdited={() => { if (!creationProcess) setShowAfterEdit(true) }}\n showEdit={showEdit}\n setShowEdit={setShowEdit}\n showClearHighlightEdit={showClearHighlightEdit}\n setShowClearHighlightEdit={setShowClearHighlightEdit}\n showDelete={showDelete}\n setShowDelete={setShowDelete}\n showMultiEdit={showMultiEdit}\n setShowMultiEdit={setShowMultiEdit}\n showMultiDelete={showMultiDelete}\n setShowMultiDelete={setShowMultiDelete}\n showAfterEdit={showAfterEdit}\n afterEditMessageType={afterEditMessageType}\n setAfterEditMessageType={setAfterEditMessageType}\n setShowAfterEdit={setShowAfterEdit}\n showAfterConfirmed={showAfterConfirmed}\n setShowAfterConfirmed={setShowAfterConfirmed}\n data={data || []}\n clearHighlight={clearHighlight}\n setClearHighlight={setClearHighlight}\n />\n\n <div className='row table-actions-box'>\n <div className='col-lg-12'>\n {fullAccess &&\n <Actions\n showExportButton={showExportButton}\n showCreate={showCreate}\n venueId={venueId}\n multiple={multiple}\n setMultiple={setMultiple}\n clearHighlight={clearHighlight}\n setClearHighlight={setClearHighlight}\n selectedItems={selectedItems}\n setSelectedItems={setSelectedItems}\n handleMultiEdit={handleMultiEdit}\n handleMultiDelete={handleMultiDelete}\n showMultiple={showMultiple}\n showClearHighlight={showClearHighlight}\n handleClearHighlightEdit={handleClearHighlightEdit}\n filter={filter}\n />\n }\n <MarkViewed\n venueId={venueId}\n nonViewed={nonViewed}\n nonViewedNames={nonViewedNames}\n setNonViewed={setNonViewed}\n />\n </div>\n </div>\n\n <table className=\"table-bookings table-shifts\" id=\"bookings\">\n <Header\n showFirstColumn={showFirstColumn}\n multiple={multiple}\n clearHighlight={clearHighlight}\n toggleSelectAll={toggleSelectAll}\n />\n\n <tbody>\n {(data || []).map(row => (\n <Row\n showFirstColumn={showFirstColumn}\n key={row.id}\n multiple={multiple}\n clearHighlight={clearHighlight}\n item={row}\n selectedItems={selectedItems}\n toggleSelectedItem={toggleSelectedItem}\n handleEdit={handleEdit}\n handleDelete={handleDelete}\n />\n ))}\n </tbody>\n {(total || {}).minutes &&\n <tfoot>\n <tr>\n <td className='tl' data-title=\"\" colSpan={showFirstColumn ? 2 : 1}>\n <strong>Total</strong>\n </td>\n <td/>\n <td/>\n <td className='type-column'/>\n <td data-title=\"Total\">\n <strong>{total.minutes}</strong>\n </td>\n {fullAccess && <td className='actions-column'/>}\n </tr>\n </tfoot>\n }\n </table>\n </>\n )\n}\n","import React from 'react';\nimport {\n createUltimatePagination,\n ITEM_TYPES\n} from 'react-ultimate-pagination';\n\nconst withPreventDefault = fn => event => {\n event.preventDefault();\n fn();\n};\n\nconst WrapperComponent = ({ children }) => (\n <div style={{ width: '100%', textAlign: 'center' }}>\n <ul className=\"pagination\">{children}</ul>\n </div>\n);\n\nconst Page = ({ value, isActive, isDisabled, onClick }) => (\n <li className={isActive ? 'active' : isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n {value}\n </a>\n </li>\n);\n\nconst Ellipsis = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n ...\n </a>\n </li>\n);\n\nconst FirstPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n «\n </a>\n </li>\n);\n\nconst PreviousPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n ‹\n </a>\n </li>\n);\n\nconst NextPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n ›\n </a>\n </li>\n);\n\nconst LastPageLink = ({ isDisabled, onClick }) => (\n <li className={isDisabled ? 'disabled' : null}>\n <a href=\"#\" onClick={withPreventDefault(onClick)}>\n »\n </a>\n </li>\n);\n\nconst itemTypeToComponent = {\n [ITEM_TYPES.PAGE]: Page,\n [ITEM_TYPES.ELLIPSIS]: Ellipsis,\n [ITEM_TYPES.FIRST_PAGE_LINK]: FirstPageLink,\n [ITEM_TYPES.PREVIOUS_PAGE_LINK]: PreviousPageLink,\n [ITEM_TYPES.NEXT_PAGE_LINK]: NextPageLink,\n [ITEM_TYPES.LAST_PAGE_LINK]: LastPageLink\n};\n\nconst Pagination = createUltimatePagination({\n itemTypeToComponent,\n WrapperComponent\n});\n\nexport default Pagination;","import React, { useContext, useEffect, useState } from 'react';\nimport Filter from './Filter';\nimport Table from \"../components/Table/Table\";\nimport axios from \"axios\";\nimport Pagination from \"../components/Table/Pagination\";\nimport { ViewModeContext } from \"../utils/context\";\nimport { withRouter } from 'react-router-dom';\n\nfunction Index({ location, history }) {\n const [multiple, setMultiple] = useState(false);\n const [clearHighlight, setClearHighlight] = useState(false);\n const [staffItems, setStaffItems] = useState(false);\n const [total, setTotal] = useState({});\n const [nonViewed, setNonViewed] = useState(false);\n const [nonViewedNames, setNonViewedNames] = useState([]);\n const [pagination, setPagination] = useState(null);\n const [term, setTerm] = useState('');\n const [venueId, setVenueId] = useState(\"\");\n const [timePeriod, setTimePeriod] = useState('present_and_upcoming');\n const [qid, setQid] = useState(0);\n const [page, setPage] = useState(1);\n const [startDate, setStartDate] = useState(new Date());\n const [endDate, setEndDate] = useState(new Date());\n const [filterReady, setFilterReady] = useState(false);\n const { viewMode, fullAccess } = useContext(ViewModeContext);\n\n const filter = {\n venueId: venueId,\n timePeriod: timePeriod,\n startDate: startDate,\n endDate: endDate,\n page: page,\n viewMode: viewMode,\n term: term\n };\n\n useEffect(() => {\n setQid(Math.random())\n setPage(1)\n }, [term, venueId, timePeriod, startDate, endDate, nonViewed])\n\n useEffect(() => {\n if (filterReady) {\n const params = {\n term: term,\n venue_id: venueId,\n time_period: timePeriod,\n start_date: moment(startDate).format('ll'),\n end_date: moment(endDate).format('ll'),\n page: page,\n view_mode: fullAccess ? viewMode : 'my'\n }\n\n axios\n .get('/admin/staff_items.json', { params: params })\n .then(response => {\n const { data } = response;\n\n setStaffItems(data.staffItems);\n setTotal(data.total);\n setPagination(data.pagination);\n setNonViewed(data.nonViewed);\n setNonViewedNames(data.nonViewedNames);\n });\n }\n }, [qid, page, filterReady])\n\n const fetchData = () => { setQid(Math.random()) };\n const handleChangePage = (page) => { setPage(page) };\n const handleChangeVenueId = (venueId) => {\n history.replace(`/admin/staff_rota?venue_id=${venueId}`);\n setVenueId(venueId);\n }\n\n return (\n <div className='row'>\n <div className='col-lg-3'>\n <h2 style={{ marginTop: 0, marginLeft: 0 }}>Staff Rota</h2>\n <div className='filter-wrapper'>\n <Filter\n term={term}\n setTerm={setTerm}\n venueId={venueId}\n setVenueId={handleChangeVenueId}\n timePeriod={timePeriod}\n setTimePeriod={setTimePeriod}\n startDate={startDate}\n setStartDate={setStartDate}\n endDate={endDate}\n setEndDate={setEndDate}\n ready={filterReady}\n setReady={setFilterReady}\n location={location}\n />\n </div>\n </div>\n\n <div className='col-lg-9'>\n {filterReady &&\n <>\n <Table\n data={staffItems}\n total={total}\n nonViewed={nonViewed}\n nonViewedNames={nonViewedNames}\n setNonViewed={setNonViewed}\n onUpdated={fetchData}\n showCreateButton={true}\n venueId={venueId}\n multiple={multiple}\n setMultiple={setMultiple}\n clearHighlight={clearHighlight}\n setClearHighlight={setClearHighlight}\n filter={filter}\n showExportButton={true}\n />\n\n {pagination && pagination.pages > 1 &&\n <Pagination\n totalPages={pagination.pages}\n currentPage={pagination.page}\n onChange={handleChangePage}\n />\n }\n </>\n }\n </div>\n </div>\n )\n}\n\nexport default withRouter(Index);\n","import React, { useEffect, useState } from \"react\";\nimport DateInput from \"src/components/DateInput\";\n\nconst DAYS = [\n { name: 'Mon', id: 1 },\n { name: 'Tue', id: 2 },\n { name: 'Wed', id: 3 },\n { name: 'Thu', id: 4 },\n { name: 'Fri', id: 5 },\n { name: 'Sat', id: 6 },\n { name: 'Sun', id: 7 }\n]\n\nexport default (props) => {\n const { index, eventDate, setEventDate } = props;\n const [value, onChange] = useState(new Date());\n const [endCondition, setEndCondition] = useState('occurrences');\n const [selectedDays, setSelectedDays] = useState([moment().day()]);\n const maxEndConditionDate = new Date(moment().add(2, 'years'));\n\n useEffect(() => {\n const weekDay = moment(eventDate).day() === 0 ? 7 : moment(eventDate).day();\n setSelectedDays([weekDay]);\n },\n [eventDate]\n )\n\n const toggleSelectedDay = (dayId) => {\n let newSelectedDays;\n\n if (selectedDays.includes(dayId)) {\n newSelectedDays = selectedDays.filter(x => x !== dayId);\n } else {\n newSelectedDays = selectedDays.concat([dayId]);\n }\n\n setSelectedDays(newSelectedDays);\n }\n\n return (\n <div>\n <div className=\"form-inline vert-offset-bottom-10\">\n <span className=\"color-booking-title\">Repeat shift every</span>\n <div className=\"form-group select optional\">\n <select defaultValue={'1'}\n name={`staff_item[${index}][repeat_every]`}\n className=\"form-control select optional\">\n <option value=\"1\">1</option>\n <option value=\"2\">2</option>\n <option value=\"3\">3</option>\n <option value=\"4\">4</option>\n </select>\n </div>\n <span className=\"color-booking-title\">week(s)</span>\n </div>\n\n <div className='row'>\n <div className=\"col-md-3\">\n <div className=\"booking-drop-calendar\">\n <div className=\"form-group select optional\">\n <label>\n <b>Start Date</b>\n </label>\n\n <DateInput\n onChange={setEventDate}\n value={eventDate}\n className='form-control date-input text-left'\n />\n </div>\n </div>\n </div>\n\n <div className=\"col-md-9\">\n <div className='form-inline vert-offset-bottom-10'>\n <div className=\"radio occurrences\">\n <label>\n <input\n type=\"radio\"\n value=\"occurrences\"\n checked={endCondition === 'occurrences'}\n name={`staff_item[${index}][end_condition]`}\n onChange={() => setEndCondition('occurrences')}\n />\n\n <span className=\"end-title\">End after:</span>\n\n <div className=\"form-group string optional\">\n <input className=\"form-control string optional\"\n style={{ width: 60 }}\n type=\"text\"\n disabled={endCondition !== 'occurrences'}\n defaultValue=\"10\"\n name={`staff_item[${index}][occurrences]`}/>\n </div>\n <span className=\"end-title-occur\">occurrences</span>\n </label>\n </div>\n </div>\n\n <div className='form-inline vert-offset-bottom-10'>\n <div className=\"radio\">\n <label>\n <input\n type=\"radio\"\n value=\"date\"\n checked={endCondition === 'end_date'}\n name={`staff_item[${index}][end_condition]`}\n onChange={() => setEndCondition('end_date')}\n />\n\n <span className=\"end-title\">End by:</span>\n\n <div className=\"form-group string optional\">\n <DateInput\n onChange={onChange}\n value={value}\n disabled={endCondition !== 'end_date'}\n name={`staff_item[${index}][end_date]`}\n maxDate={maxEndConditionDate}\n className='form-control date-input text-left'\n />\n </div>\n </label>\n </div>\n </div>\n </div>\n <div className=\"clearfix\"/>\n </div>\n\n <div className=\"form-inline vert-offset-bottom-10\">\n <div className=\"form-group check_boxes optional\">on</div>\n <div className=\"form-group check_boxes optional week_days\">\n {DAYS.map(day =>\n <span key={day.id} className=\"checkbox\">\n <input className=\"check_boxes optional\"\n type=\"checkbox\"\n value={day.id}\n checked={selectedDays.includes(day.id)}\n onChange={() => toggleSelectedDay(day.id)}\n name={`staff_item[${index}][week_days][]`}/>\n <span className='day-name'>{day.name}</span>\n </span>\n )}\n </div>\n </div>\n </div>\n )\n}","import React, { useState, useEffect } from \"react\";\nimport Calendar from 'react-calendar';\nimport Block from \"./Block\";\nimport TimeSelector from \"../components/Form/TimeSelector\";\nimport axios from 'axios';\n\nimport 'rc-time-picker/assets/index.css';\nimport 'react-calendar/dist/Calendar.css';\nimport Error from \"../components/Form/Error\";\nimport DateInput from \"src/components/DateInput\";\n\nexport default (props) => {\n const { size, removeItem, repeatShiftEnabled, index, venueId, errors } = props;\n const [block, setBlock] = useState(false)\n const [valueB, onChangeValueB] = useState(new Date());\n const [users, setUsers] = useState([]);\n const [shiftOptions, setShiftOptions] = useState(JSON.parse(localStorage.getItem('shiftOptions')) || { start: 30, end: 15 });\n\n const handleMinutesChange = (name, value) => {\n shiftOptions[name] = value;\n localStorage.setItem('shiftOptions', JSON.stringify(shiftOptions));\n setShiftOptions(JSON.parse(localStorage.getItem('shiftOptions')));\n };\n\n useEffect(() => {\n axios\n .get('/admin/staff_rota/users.json', { params: { venue_id: venueId } })\n .then((response) => setUsers(response.data))\n\n return function() {\n console.log('unmount')\n };\n }, []);\n\n return (\n <div className=\"shift-item bookings-time-list\">\n <input type='hidden' name={`staff_item[${index}][venue_id]`} value={venueId}/>\n <div className='calendar-box'>\n <Calendar\n onChange={onChangeValueB}\n value={valueB}\n />\n </div>\n <div className='calendar-outside'>\n <div className='row'>\n <div className=\"col-md-3 col-sm-12\">\n <div className=\"form-group select optional\">\n <label className=\"control-label select optional\">\n Name\n </label>\n <select className=\"form-control select optional\"\n name={`staff_item[${index}][user_id]`}>\n {users.map(user => <option key={user.id} value={user.id}>{user.name}</option>)}\n </select>\n\n <Error errors={errors} name={`staff_item[${index}][user_id]`} prefix={'User'}/>\n </div>\n </div>\n\n <div className='col-md-3 col-sm-12'>\n <div className=\"form-group optional\">\n <label className=\"optional control-label\">Date</label>\n <DateInput\n onChange={onChangeValueB}\n value={valueB}\n name={`staff_item[${index}][event_date]`}\n className='form-control date-input text-left'\n //format=\"dd/MM/y\"\n />\n </div>\n </div>\n </div>\n\n <div className='row'>\n <div className=\"col-md-6\">\n <label className=\"control-label select optional\">\n Start\n </label>\n <TimeSelector\n name='start'\n index={index}\n defaultValue={moment(\"17:00\", 'H:m')}\n defaultMinutes={shiftOptions['start']}\n defaultDirection={'before'}\n defaultSession={'first'}\n handleMinutesChange={handleMinutesChange}\n />\n </div>\n\n <div className=\"col-md-6\">\n <label className=\"control-label select optional\">End</label>\n <TimeSelector\n name='end'\n index={index}\n defaultValue={moment(\"22:00\", 'H:m')}\n defaultMinutes={shiftOptions['end']}\n defaultDirection={'after'}\n defaultSession={'last'}\n saveShiftOptions={true}\n handleMinutesChange={handleMinutesChange}\n />\n </div>\n </div>\n\n {(repeatShiftEnabled || repeatShiftEnabled === undefined) &&\n <>\n <div className=\"vert-offset-bottom-10\">\n <div className='row'>\n <div className='col-md-6'>\n <a className=\"btn btn-primary btn-one-more btn-no-radius message\" onClick={() => setBlock(!block)}>\n {block ? 'Delete Repeat Shift' : 'Repeat Shift'}\n </a>\n </div>\n <div className='col-md-6 text-right'>\n {size > 1 &&\n <a className=\"btn btn-danger btn-one-more btn-no-radius message\" onClick={() => removeItem()}>\n Delete shift\n </a>\n }\n </div>\n </div>\n </div>\n\n {block && <Block eventDate={valueB} setEventDate={onChangeValueB} index={index}/>}\n </>\n }\n\n <Error errors={errors} name={`staff_item[${index}][end_time]`} prefix={'End time'}/>\n </div>\n\n <div className=\"clearfix\"/>\n </div>\n )\n}","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\n\nexport default ({ venueId }) => (\n <Link className=\"btn btn-lg btn-primary btn-no-radius\"\n style={{ width: 250 }}\n type='button'\n to={`/admin/staff_rota?venue_id=${venueId}`}>\n Back\n </Link>\n)","import React from 'react';\nimport { Button, Modal } from 'react-bootstrap';\n\nexport default ({ errors, show, setShow, title }) => (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header>\n <Modal.Title>{title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {Object.keys(errors).map((key, index) => (\n <p className='text-center'>\n {errors[key].join(', ')}\n </p>\n ))}\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Ok</Button>\n </Modal.Footer>\n </Modal>\n);","import React, { useState } from \"react\";\nimport axios from \"axios\";\nimport rescue from '../rescue';\nimport ConfirmationErrorModal from \"./ConfirmationErrorModal\";\n\nexport default ({ onCreated, onError, creationInProgress, setCreationInProgress }) => {\n const [showErrorModal, setShowErrorModal] = useState(false);\n const [errors, setErrors] = useState(false);\n\n const performSubmit = () => {\n if (creationInProgress) return true;\n setCreationInProgress(true);\n\n const formData = new FormData(document.getElementById('staff-form'));\n\n axios\n .post('/admin/staff_rota.json', formData)\n .then((response) => {\n onCreated(response.data.staffRotaId);\n })\n .catch((error) => {\n setErrors(error.response.data.errors);\n setShowErrorModal(true);\n rescue(error, onError);\n setCreationInProgress(false);\n });\n }\n\n return (\n <>\n <ConfirmationErrorModal\n errors={errors}\n show={showErrorModal}\n setShow={setShowErrorModal}\n />\n\n <button className=\"btn btn-lg btn-primary btn-no-radius\"\n style={{ width: 250 }}\n type='button'\n disabled={creationInProgress}\n onClick={performSubmit}>\n Create\n </button>\n </>\n )\n}","import React from \"react\";\n\nexport default ({ handleAdd }) => (\n <button className=\"btn btn-primary btn-one-more btn-no-radius\" type='button' onClick={handleAdd}>\n Add Another Shift\n </button>\n)","import React, { useState } from 'react';\nimport Shift from './Shift';\nimport BackButton from \"./BackButton\";\nimport CreateButton from \"./CreateButton\";\nimport AddShiftButton from \"./AddShiftButton\";\n\nconst initItems = [{}];\n\nexport default ({ onCreated, venueId, creationInProgress, setCreationInProgress }) => {\n const [items, setItems] = useState(initItems);\n const [staffRotaId, setStaffRotaId] = useState(0);\n const [errors, setErrors] = useState({});\n\n const handleAdd = () => {\n const newItems = items.concat({});\n setItems(newItems);\n }\n\n const removeItem = (index) => {\n const newItems = items.filter((_el, i) => i !== index);\n setItems(newItems);\n }\n\n const handleCreate = (staffRotaId) => {\n setStaffRotaId(staffRotaId)\n onCreated(staffRotaId)\n }\n\n return (\n <form className=\"simple_form staff-rota-form\" action=\"#\" method=\"post\" id='staff-form'>\n {items.map((x, index) =>\n <Shift\n key={index}\n index={index}\n venueId={venueId}\n removeItem={() => removeItem(index)}\n size={items.length}\n errors={errors}\n />\n )}\n <input type=\"hidden\" name='venue_id' value={venueId}/>\n <input type=\"hidden\" name='staff_rota_id' value={staffRotaId}/>\n <div className=\"vert-offset-bottom-15 shift-item\">\n <div className=\"form-inline vert-offset-bottom-10\"/>\n <AddShiftButton handleAdd={handleAdd}/>\n </div>\n <div className=\"row vert-offset-bottom-15\">\n <div className='col-md-6'>\n <BackButton venueId={venueId}/>\n </div>\n <div className='col-md-6 text-right' >\n <CreateButton\n onCreated={handleCreate}\n onError={setErrors}\n setCreationInProgress={setCreationInProgress}\n creationInProgress={creationInProgress}\n />\n </div>\n </div>\n </form>\n );\n};","import { createBrowserHistory } from 'history';\nexport default createBrowserHistory();","/*!\n* sweetalert2 v11.10.6\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _construct(t, e, r) {\n if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && _setPrototypeOf(p, r.prototype), p;\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function () {\n return !!t;\n })();\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : String(i);\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self);\n }\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n }\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return _classApplyDescriptorGet(receiver, descriptor);\n }\n function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\");\n _classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n }\n function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n }\n function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n }\n function _classPrivateFieldInitSpec(obj, privateMap, value) {\n _checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n }\n\n var RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n var globalState = {};\n var focusPreviousActiveElement = function focusPreviousActiveElement() {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise<void>}\n */\n var restoreActiveElement = function restoreActiveElement(returnFocus) {\n return new Promise(function (resolve) {\n if (!returnFocus) {\n return resolve();\n }\n var x = window.scrollX;\n var y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(function () {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n var swalPrefix = 'swal2-';\n\n /**\n * @typedef\n * { | 'container'\n * | 'shown'\n * | 'height-auto'\n * | 'iosfix'\n * | 'popup'\n * | 'modal'\n * | 'no-backdrop'\n * | 'no-transition'\n * | 'toast'\n * | 'toast-shown'\n * | 'show'\n * | 'hide'\n * | 'close'\n * | 'title'\n * | 'html-container'\n * | 'actions'\n * | 'confirm'\n * | 'deny'\n * | 'cancel'\n * | 'default-outline'\n * | 'footer'\n * | 'icon'\n * | 'icon-content'\n * | 'image'\n * | 'input'\n * | 'file'\n * | 'range'\n * | 'select'\n * | 'radio'\n * | 'checkbox'\n * | 'label'\n * | 'textarea'\n * | 'inputerror'\n * | 'input-label'\n * | 'validation-message'\n * | 'progress-steps'\n * | 'active-progress-step'\n * | 'progress-step'\n * | 'progress-step-line'\n * | 'loader'\n * | 'loading'\n * | 'styled'\n * | 'top'\n * | 'top-start'\n * | 'top-end'\n * | 'top-left'\n * | 'top-right'\n * | 'center'\n * | 'center-start'\n * | 'center-end'\n * | 'center-left'\n * | 'center-right'\n * | 'bottom'\n * | 'bottom-start'\n * | 'bottom-end'\n * | 'bottom-left'\n * | 'bottom-right'\n * | 'grow-row'\n * | 'grow-column'\n * | 'grow-fullscreen'\n * | 'rtl'\n * | 'timer-progress-bar'\n * | 'timer-progress-bar-container'\n * | 'scrollbar-measure'\n * | 'icon-success'\n * | 'icon-warning'\n * | 'icon-info'\n * | 'icon-question'\n * | 'icon-error'\n * } SwalClass\n * @typedef {Record<SwalClass, string>} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record<SwalIcon, string>} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n var classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n var swalClasses = classNames.reduce(function (acc, className) {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n var icons = ['success', 'warning', 'info', 'question', 'error'];\n var iconTypes = icons.reduce(function (acc, icon) {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n var consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n var capitalizeFirstLetter = function capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n var warn = function warn(message) {\n console.warn(\"\".concat(consolePrefix, \" \").concat(_typeof(message) === 'object' ? message.join(' ') : message));\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n var error = function error(message) {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n var previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n var warnOnce = function warnOnce(message) {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string} useInstead\n */\n var warnAboutDeprecation = function warnAboutDeprecation(deprecatedParam, useInstead) {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n var callIfFunction = function callIfFunction(arg) {\n return typeof arg === 'function' ? arg() : arg;\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var hasToPromiseFn = function hasToPromiseFn(arg) {\n return arg && typeof arg.toPromise === 'function';\n };\n\n /**\n * @param {any} arg\n * @returns {Promise<any>}\n */\n var asPromise = function asPromise(arg) {\n return hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n };\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n var isPromise = function isPromise(arg) {\n return arg && Promise.resolve(arg) === arg;\n };\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n var getContainer = function getContainer() {\n return document.body.querySelector(\".\".concat(swalClasses.container));\n };\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n var elementBySelector = function elementBySelector(selectorString) {\n var container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n var elementByClass = function elementByClass(className) {\n return elementBySelector(\".\".concat(className));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getPopup = function getPopup() {\n return elementByClass(swalClasses.popup);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIcon = function getIcon() {\n return elementByClass(swalClasses.icon);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getIconContent = function getIconContent() {\n return elementByClass(swalClasses['icon-content']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTitle = function getTitle() {\n return elementByClass(swalClasses.title);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getHtmlContainer = function getHtmlContainer() {\n return elementByClass(swalClasses['html-container']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getImage = function getImage() {\n return elementByClass(swalClasses.image);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getProgressSteps = function getProgressSteps() {\n return elementByClass(swalClasses['progress-steps']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getValidationMessage = function getValidationMessage() {\n return elementByClass(swalClasses['validation-message']);\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getConfirmButton = function getConfirmButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getCancelButton = function getCancelButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n };\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n var getDenyButton = function getDenyButton() {\n return /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getInputLabel = function getInputLabel() {\n return elementByClass(swalClasses['input-label']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getLoader = function getLoader() {\n return elementBySelector(\".\".concat(swalClasses.loader));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getActions = function getActions() {\n return elementByClass(swalClasses.actions);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getFooter = function getFooter() {\n return elementByClass(swalClasses.footer);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getTimerProgressBar = function getTimerProgressBar() {\n return elementByClass(swalClasses['timer-progress-bar']);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n var getCloseButton = function getCloseButton() {\n return elementByClass(swalClasses.close);\n };\n\n // https://github.com/jkup/focusable/blob/master/index.js\n var focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n var getFocusableElements = function getFocusableElements() {\n var popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf<HTMLElement>} */\n var focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n var focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort(function (a, b) {\n var tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n var tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf<HTMLElement>} */\n var otherFocusableElements = popup.querySelectorAll(focusable);\n var otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(function (el) {\n return el.getAttribute('tabindex') !== '-1';\n });\n return _toConsumableArray(new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))).filter(function (el) {\n return isVisible$1(el);\n });\n };\n\n /**\n * @returns {boolean}\n */\n var isModal = function isModal() {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n var isToast = function isToast() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n var isLoading = function isLoading() {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n var setInnerHtml = function setInnerHtml(elem, html) {\n elem.textContent = '';\n if (html) {\n var parser = new DOMParser();\n var parsed = parser.parseFromString(html, \"text/html\");\n var head = parsed.querySelector('head');\n head && Array.from(head.childNodes).forEach(function (child) {\n elem.appendChild(child);\n });\n var body = parsed.querySelector('body');\n body && Array.from(body.childNodes).forEach(function (child) {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n var hasClass = function hasClass(elem, className) {\n if (!className) {\n return false;\n }\n var classList = className.split(/\\s+/);\n for (var i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n var removeCustomClasses = function removeCustomClasses(elem, params) {\n Array.from(elem.classList).forEach(function (className) {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n var applyCustomClass = function applyCustomClass(elem, params, className) {\n removeCustomClasses(elem, params);\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(_typeof(params.customClass[className]), \"\\\"\"));\n return;\n }\n addClass(elem, params.customClass[className]);\n }\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n var getInput$1 = function getInput(popup, inputClass) {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n var focusInput = function focusInput(input) {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n var val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n var toggleClass = function toggleClass(target, classList, condition) {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(function (className) {\n if (Array.isArray(target)) {\n target.forEach(function (elem) {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var addClass = function addClass(target, classList) {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n var removeClass = function removeClass(target, classList) {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n var getDirectChildByClass = function getDirectChildByClass(elem, className) {\n var children = Array.from(elem.children);\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n var applyNumericalStyle = function applyNumericalStyle(elem, property, value) {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? \"\".concat(value, \"px\") : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var show = function show(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem && (elem.style.display = display);\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n var hide = function hide(elem) {\n elem && (elem.style.display = 'none');\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n var showWhenInnerHtmlPresent = function showWhenInnerHtmlPresent(elem) {\n var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(function () {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n var setStyle = function setStyle(parent, selector, property, value) {\n /** @type {HTMLElement | null} */\n var el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n var toggle = function toggle(elem, condition) {\n var display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n var isVisible$1 = function isVisible(elem) {\n return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n };\n\n /**\n * @returns {boolean}\n */\n var allButtonsAreHidden = function allButtonsAreHidden() {\n return !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n };\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var isScrollable = function isScrollable(elem) {\n return !!(elem.scrollHeight > elem.clientHeight);\n };\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n var hasCssAnimation = function hasCssAnimation(elem) {\n var style = window.getComputedStyle(elem);\n var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n var animateTimerProgressBar = function animateTimerProgressBar(timer) {\n var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(function () {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n var stopTimerProgressBar = function stopTimerProgressBar() {\n var timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n var timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n var isNodeEnv = function isNodeEnv() {\n return typeof window === 'undefined' || typeof document === 'undefined';\n };\n\n var sweetHTML = \"\\n <div aria-labelledby=\\\"\".concat(swalClasses.title, \"\\\" aria-describedby=\\\"\").concat(swalClasses['html-container'], \"\\\" class=\\\"\").concat(swalClasses.popup, \"\\\" tabindex=\\\"-1\\\">\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.close, \"\\\"></button>\\n <ul class=\\\"\").concat(swalClasses['progress-steps'], \"\\\"></ul>\\n <div class=\\\"\").concat(swalClasses.icon, \"\\\"></div>\\n <img class=\\\"\").concat(swalClasses.image, \"\\\" />\\n <h2 class=\\\"\").concat(swalClasses.title, \"\\\" id=\\\"\").concat(swalClasses.title, \"\\\"></h2>\\n <div class=\\\"\").concat(swalClasses['html-container'], \"\\\" id=\\\"\").concat(swalClasses['html-container'], \"\\\"></div>\\n <input class=\\\"\").concat(swalClasses.input, \"\\\" id=\\\"\").concat(swalClasses.input, \"\\\" />\\n <input type=\\\"file\\\" class=\\\"\").concat(swalClasses.file, \"\\\" />\\n <div class=\\\"\").concat(swalClasses.range, \"\\\">\\n <input type=\\\"range\\\" />\\n <output></output>\\n </div>\\n <select class=\\\"\").concat(swalClasses.select, \"\\\" id=\\\"\").concat(swalClasses.select, \"\\\"></select>\\n <div class=\\\"\").concat(swalClasses.radio, \"\\\"></div>\\n <label class=\\\"\").concat(swalClasses.checkbox, \"\\\">\\n <input type=\\\"checkbox\\\" id=\\\"\").concat(swalClasses.checkbox, \"\\\" />\\n <span class=\\\"\").concat(swalClasses.label, \"\\\"></span>\\n </label>\\n <textarea class=\\\"\").concat(swalClasses.textarea, \"\\\" id=\\\"\").concat(swalClasses.textarea, \"\\\"></textarea>\\n <div class=\\\"\").concat(swalClasses['validation-message'], \"\\\" id=\\\"\").concat(swalClasses['validation-message'], \"\\\"></div>\\n <div class=\\\"\").concat(swalClasses.actions, \"\\\">\\n <div class=\\\"\").concat(swalClasses.loader, \"\\\"></div>\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.confirm, \"\\\"></button>\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.deny, \"\\\"></button>\\n <button type=\\\"button\\\" class=\\\"\").concat(swalClasses.cancel, \"\\\"></button>\\n </div>\\n <div class=\\\"\").concat(swalClasses.footer, \"\\\"></div>\\n <div class=\\\"\").concat(swalClasses['timer-progress-bar-container'], \"\\\">\\n <div class=\\\"\").concat(swalClasses['timer-progress-bar'], \"\\\"></div>\\n </div>\\n </div>\\n\").replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n var resetOldContainer = function resetOldContainer() {\n var oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n var resetValidationMessage$1 = function resetValidationMessage() {\n globalState.currentInstance.resetValidationMessage();\n };\n var addInputChangeListeners = function addInputChangeListeners() {\n var popup = getPopup();\n var input = getDirectChildByClass(popup, swalClasses.input);\n var file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n var range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n var rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n var select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n var checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n var textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = function () {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n var getTarget = function getTarget(target) {\n return typeof target === 'string' ? document.querySelector(target) : target;\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setupAccessibility = function setupAccessibility(params) {\n var popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n var setupRTL = function setupRTL(targetElement) {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n var init = function init(params) {\n // Clean up the old popup container if it exists\n var oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n var container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n var targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n var parseHtmlToContainer = function parseHtmlToContainer(param, target) {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (_typeof(param) === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n var handleObject = function handleObject(param, target) {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n var handleJqueryElem = function handleJqueryElem(target, elem) {\n target.textContent = '';\n if (0 in elem) {\n for (var i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n var animationEndEvent = function () {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n var testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderActions = function renderActions(instance, params) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n var buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[\"show\".concat(buttonName, \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")] || ''); // Set caption text\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderCloseButton = function renderCloseButton(instance, params) {\n var closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContainer = function renderContainer(instance, params) {\n var container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[\"grow-\".concat(grow)]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /** @type {InputClass[]} */\n var inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderInput = function renderInput(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var innerParams = privateProps.innerParams.get(instance);\n var rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(function (inputClass) {\n var inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var showInput = function showInput(params) {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(\"Unexpected type of input! Expected \".concat(Object.keys(renderInputType).join(' | '), \", got \\\"\").concat(params.input, \"\\\"\"));\n return;\n }\n var inputContainer = getInputContainer(params.input);\n var input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(function () {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n var removeAttributes = function removeAttributes(input) {\n for (var i = 0; i < input.attributes.length; i++) {\n var attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n var setAttributes = function setAttributes(inputClass, inputAttributes) {\n var input = getInput$1(getPopup(), inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (var attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n var setCustomClass = function setCustomClass(params) {\n var inputContainer = getInputContainer(params.input);\n if (_typeof(params.customClass) === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n var setInputPlaceholder = function setInputPlaceholder(input, params) {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n var setInputLabel = function setInputLabel(input, prependTo, params) {\n if (params.inputLabel) {\n var label = document.createElement('label');\n var labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (_typeof(params.customClass) === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n var getInputContainer = function getInputContainer(inputType) {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n var checkAndSetInputValue = function checkAndSetInputValue(input, inputValue) {\n if (['string', 'number'].includes(_typeof(inputValue))) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(_typeof(inputValue), \"\\\"\"));\n }\n };\n\n /** @type {Record<SweetAlertInput, (input: Input | HTMLElement, params: SweetAlertOptions) => Input>} */\n var renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = function (input, params) {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = function (input, params) {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = function (range, params) {\n var rangeInput = range.querySelector('input');\n var rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = function (select, params) {\n select.textContent = '';\n if (params.inputPlaceholder) {\n var placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = function (radio) {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = function (checkboxContainer, params) {\n var checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n var label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = function (textarea, params) {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n var getMargin = function getMargin(el) {\n return parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n };\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(function () {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n var textareaResizeHandler = function textareaResizeHandler() {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n var textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderContent = function renderContent(instance, params) {\n var htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderFooter = function renderFooter(instance, params) {\n var footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderIcon = function renderIcon(instance, params) {\n var innerParams = privateProps.innerParams.get(instance);\n var icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var applyStyles = function applyStyles(icon, params) {\n for (var _i = 0, _Object$entries = Object.entries(iconTypes); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n iconType = _Object$entries$_i[0],\n iconClassName = _Object$entries$_i[1];\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n var adjustSuccessIconBackgroundColor = function adjustSuccessIconBackgroundColor() {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf<HTMLElement>} */\n var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (var i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n var successIconHtml = \"\\n <div class=\\\"swal2-success-circular-line-left\\\"></div>\\n <span class=\\\"swal2-success-line-tip\\\"></span> <span class=\\\"swal2-success-line-long\\\"></span>\\n <div class=\\\"swal2-success-ring\\\"></div> <div class=\\\"swal2-success-fix\\\"></div>\\n <div class=\\\"swal2-success-circular-line-right\\\"></div>\\n\";\n var errorIconHtml = \"\\n <span class=\\\"swal2-x-mark\\\">\\n <span class=\\\"swal2-x-mark-line-left\\\"></span>\\n <span class=\\\"swal2-x-mark-line-right\\\"></span>\\n </span>\\n\";\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setContent = function setContent(icon, params) {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n var oldContent = icon.innerHTML;\n var newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n var defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n var setColor = function setColor(icon, params) {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (var _i2 = 0, _arr = ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']; _i2 < _arr.length; _i2++) {\n var sel = _arr[_i2];\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n var iconContent = function iconContent(content) {\n return \"<div class=\\\"\".concat(swalClasses['icon-content'], \"\\\">\").concat(content, \"</div>\");\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderImage = function renderImage(instance, params) {\n var image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderPopup = function renderPopup(instance, params) {\n var container = getContainer();\n var popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n var loader = getLoader();\n loader && popup.insertBefore(loader, getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses$1 = function addClasses(popup, params) {\n var showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible$1(popup) ? showClass.popup : '');\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderProgressSteps = function renderProgressSteps(instance, params) {\n var progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n var progressSteps = params.progressSteps,\n currentProgressStep = params.currentProgressStep;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach(function (step, index) {\n var stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n var lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n var createStepElement = function createStepElement(step) {\n var stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n var createLineElement = function createLineElement(params) {\n var lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var renderTitle = function renderTitle(instance, params) {\n var title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var render = function render(instance, params) {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n var popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n var isVisible = function isVisible() {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n var clickConfirm = function clickConfirm() {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n var clickDeny = function clickDeny() {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n var clickCancel = function clickCancel() {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record<DismissReason, DismissReason>} */\n var DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n var removeKeydownHandler = function removeKeydownHandler(globalState) {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n var addKeydownHandler = function addKeydownHandler(globalState, innerParams, dismissWith) {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = function (e) {\n return keydownHandler(innerParams, e, dismissWith);\n };\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n var setFocus = function setFocus(index, increment) {\n var _dom$getPopup;\n var focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n var arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n var arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n var keydownHandler = function keydownHandler(innerParams, event, dismissWith) {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([].concat(arrowKeysNextButton, arrowKeysPreviousButton).includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n var handleEnter = function handleEnter(event, innerParams) {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n var input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n var handleTab = function handleTab(event) {\n var targetElement = event.target;\n var focusableElements = getFocusableElements();\n var btnIndex = -1;\n for (var i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n var handleArrows = function handleArrows(key) {\n var actions = getActions();\n var confirmButton = getConfirmButton();\n var denyButton = getDenyButton();\n var cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n var buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n var sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n var buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (var i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var handleEsc = function handleEsc(event, innerParams, dismissWith) {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n var setAriaHidden = function setAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n var unsetAriaHidden = function unsetAriaHidden() {\n var bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(function (el) {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n var isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n var iOSfix = function iOSfix() {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n var offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n var lockBodyScroll = function lockBodyScroll() {\n var container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n var preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = function (event) {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = function (event) {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var shouldPreventTouchMove = function shouldPreventTouchMove(event) {\n var target = event.target;\n var container = getContainer();\n var htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n var isStylus = function isStylus(event) {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n var isZoom = function isZoom(event) {\n return event.touches && event.touches.length > 1;\n };\n var undoIOSfix = function undoIOSfix() {\n if (hasClass(document.body, swalClasses.iosfix)) {\n var offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n var measureScrollbar = function measureScrollbar() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n var previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n var replaceScrollbarWithPadding = function replaceScrollbarWithPadding(initialBodyOverflow) {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n var undoReplaceScrollbarWithPadding = function undoReplaceScrollbarWithPadding() {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(previousBodyPadding, \"px\");\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(function () {\n return triggerDidCloseAndDispose(instance, didClose);\n });\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n var didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n var triggerClosePopup = function triggerClosePopup(instance) {\n var popup = getPopup();\n if (!popup) {\n return false;\n }\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n var backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n var rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var handleAwaitingPromise = function handleAwaitingPromise(instance) {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n var prepareResolveValue = function prepareResolveValue(resolveValue) {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) {\n var container = getContainer();\n // If animation is supported, animate\n var animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n var animatePopup = function animatePopup(instance, popup, container, returnFocus, didClose) {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n var triggerDidCloseAndDispose = function triggerDidCloseAndDispose(instance, didClose) {\n setTimeout(function () {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var showLoading = function showLoading(buttonToReplace) {\n var popup = getPopup();\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n var loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n var replaceButton = function replaceButton(popup, buttonToReplace) {\n var actions = getActions();\n var loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(function (i) {\n return i === params.input;\n }) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n var getInputValue = function getInputValue(instance, innerParams) {\n var input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n var getCheckboxValue = function getCheckboxValue(input) {\n return input.checked ? 1 : 0;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n var getRadioValue = function getRadioValue(input) {\n return input.checked ? input.value : null;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n var getFileValue = function getFileValue(input) {\n return input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputOptions = function handleInputOptions(instance, params) {\n var popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record<string, any>} inputOptions\n */\n var processInputOptions = function processInputOptions(inputOptions) {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(function (inputOptions) {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (_typeof(params.inputOptions) === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(_typeof(params.inputOptions)));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n var handleInputValue = function handleInputValue(instance, params) {\n var input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(function (inputValue) {\n input.value = params.input === 'number' ? \"\".concat(parseFloat(inputValue) || 0) : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n })[\"catch\"](function (err) {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n var select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n var renderOption = function renderOption(parent, optionLabel, optionValue) {\n var option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(function (inputOption) {\n var optionValue = inputOption[0];\n var optionLabel = inputOption[1];\n // <optgroup> spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a <optgroup>\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an <optgroup>\n var optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(function (o) {\n return renderOption(optgroup, o[1], o[0]);\n });\n } else {\n // case of <option>\n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n }\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateRadioOptions(popup, inputOptions, params) {\n var radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(function (inputOption) {\n var radioValue = inputOption[0];\n var radioLabel = inputOption[1];\n var radioInput = document.createElement('input');\n var radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n var label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n var radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n }\n\n /**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {Record<string, any>} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\n var formatInputOptions = function formatInputOptions(inputOptions) {\n /** @type {InputOptionFlattened[]} */\n var result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach(function (value, key) {\n var valueFormatted = value;\n if (_typeof(valueFormatted) === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(function (key) {\n var valueFormatted = inputOptions[key];\n if (_typeof(valueFormatted) === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n };\n\n /**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\n var isSelected = function isSelected(optionValue, inputValue) {\n return !!inputValue && inputValue.toString() === optionValue.toString();\n };\n\n var _this = undefined;\n\n /**\n * @param {SweetAlert} instance\n */\n var handleConfirmButtonClick = function handleConfirmButtonClick(instance) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n */\n var handleDenyButtonClick = function handleDenyButtonClick(instance) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} dismissWith\n */\n var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\n var handleConfirmOrDenyWithInput = function handleConfirmOrDenyWithInput(instance, type) {\n var innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n return;\n }\n var input = instance.getInput();\n var inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\n var handleInputValidator = function handleInputValidator(instance, inputValue, type) {\n var innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n var validationPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage));\n });\n validationPromise.then(function (validationMessage) {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var deny = function deny(instance, value) {\n var innerParams = privateProps.innerParams.get(instance || _this);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n var preDenyPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preDeny(value, innerParams.validationMessage));\n });\n preDenyPromise.then(function (preDenyValue) {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n })[\"catch\"](function (error) {\n return rejectWith(instance || _this, error);\n });\n } else {\n instance.close({\n isDenied: true,\n value: value\n });\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var succeedWith = function succeedWith(instance, value) {\n instance.close({\n isConfirmed: true,\n value: value\n });\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\n var rejectWith = function rejectWith(instance, error) {\n instance.rejectPromise(error);\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {any} value\n */\n var confirm = function confirm(instance, value) {\n var innerParams = privateProps.innerParams.get(instance || _this);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n var preConfirmPromise = Promise.resolve().then(function () {\n return asPromise(innerParams.preConfirm(value, innerParams.validationMessage));\n });\n preConfirmPromise.then(function (preConfirmValue) {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n })[\"catch\"](function (error) {\n return rejectWith(instance || _this, error);\n });\n } else {\n succeedWith(instance, value);\n }\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n function hideLoading() {\n // do nothing if popup is closed\n var innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n var domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n var showRelatedButton = function showRelatedButton(domCache) {\n var buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n */\n function getInput() {\n var innerParams = privateProps.innerParams.get(this);\n var domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\n */\n function setButtonsDisabled(instance, buttons, disabled) {\n var domCache = privateProps.domCache.get(instance);\n buttons.forEach(function (button) {\n domCache[button].disabled = disabled;\n });\n }\n\n /**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\n function setInputDisabled(input, disabled) {\n var popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf<HTMLInputElement>} */\n var radios = popup.querySelectorAll(\"[name=\\\"\".concat(swalClasses.radio, \"\\\"]\"));\n for (var i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n /**\n * Enable all the buttons\n * @this {SweetAlert}\n */\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n\n /**\n * Disable all the buttons\n * @this {SweetAlert}\n */\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n\n /**\n * Enable the input field\n * @this {SweetAlert}\n */\n function enableInput() {\n setInputDisabled(this.getInput(), false);\n }\n\n /**\n * Disable the input field\n * @this {SweetAlert}\n */\n function disableInput() {\n setInputDisabled(this.getInput(), true);\n }\n\n /**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\n */\n function showValidationMessage(error) {\n var domCache = privateProps.domCache.get(this);\n var params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n var input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n }\n\n /**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\n function resetValidationMessage() {\n var domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n var input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n var defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n animation: true,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n var updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n\n /** @type {Record<string, string>} */\n var deprecatedParams = {};\n var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n /**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n var isValidParameter = function isValidParameter(paramName) {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n\n /**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n var isUpdatableParameter = function isUpdatableParameter(paramName) {\n return updatableParams.indexOf(paramName) !== -1;\n };\n\n /**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\n var isDeprecatedParameter = function isDeprecatedParameter(paramName) {\n return deprecatedParams[paramName];\n };\n\n /**\n * @param {string} param\n */\n var checkIfParamIsValid = function checkIfParamIsValid(param) {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n /**\n * @param {string} param\n */\n var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n /**\n * @param {string} param\n */\n var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) {\n var isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n };\n\n /**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\n var showWarningsForParams = function showWarningsForParams(params) {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n for (var param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n };\n\n /**\n * Updates popup parameters.\n *\n * @param {SweetAlertOptions} params\n */\n function update(params) {\n var popup = getPopup();\n var innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n return;\n }\n var validUpdatableParams = filterValidParams(params);\n var updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n var filterValidParams = function filterValidParams(params) {\n var validUpdatableParams = {};\n Object.keys(params).forEach(function (param) {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n /**\n * Dispose the current SweetAlert2 instance\n */\n function _destroy() {\n var domCache = privateProps.domCache.get(this);\n var innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n disposeSwal(this);\n }\n\n /**\n * @param {SweetAlert} instance\n */\n var disposeSwal = function disposeSwal(instance) {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n };\n\n /**\n * @param {SweetAlert} instance\n */\n var disposeWeakMaps = function disposeWeakMaps(instance) {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n delete instance.isAwaitingPromise;\n // Unset instance methods\n delete instance.disableButtons;\n delete instance.enableButtons;\n delete instance.getInput;\n delete instance.disableInput;\n delete instance.enableInput;\n delete instance.hideLoading;\n delete instance.disableLoading;\n delete instance.showValidationMessage;\n delete instance.resetValidationMessage;\n delete instance.close;\n delete instance.closePopup;\n delete instance.closeModal;\n delete instance.closeToast;\n delete instance.rejectPromise;\n delete instance.update;\n delete instance._destroy;\n }\n };\n\n /**\n * @param {object} obj\n * @param {SweetAlert} instance\n */\n var unsetWeakMaps = function unsetWeakMaps(obj, instance) {\n for (var i in obj) {\n obj[i][\"delete\"](instance);\n }\n };\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n });\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handlePopupClick = function handlePopupClick(innerParams, domCache, dismissWith) {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handleToastClick = function handleToastClick(innerParams, domCache, dismissWith) {\n // Closing toast by internal click\n domCache.popup.onclick = function () {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n var isAnyButtonShown = function isAnyButtonShown(innerParams) {\n return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n };\n var ignoreOutsideClick = false;\n\n /**\n * @param {DomCache} domCache\n */\n var handleModalMousedown = function handleModalMousedown(domCache) {\n domCache.popup.onmousedown = function () {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = function () {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {DomCache} domCache\n */\n var handleContainerMousedown = function handleContainerMousedown(domCache) {\n domCache.container.onmousedown = function () {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = function () {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n var handleModalClick = function handleModalClick(innerParams, domCache, dismissWith) {\n domCache.container.onclick = function (e) {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n var isJqueryElement = function isJqueryElement(elem) {\n return _typeof(elem) === 'object' && elem.jquery;\n };\n var isElement = function isElement(elem) {\n return elem instanceof Element || isJqueryElement(elem);\n };\n var argsToParams = function argsToParams(args) {\n var params = {};\n if (_typeof(args[0]) === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach(function (name, index) {\n var arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(_typeof(arg)));\n }\n });\n }\n return params;\n };\n\n /**\n * Main method to create a new SweetAlert2 popup\n *\n * @param {...SweetAlertOptions} args\n * @returns {Promise<SweetAlertResult>}\n */\n function fire() {\n var Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return _construct(Swal, args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\n */\n function mixin(mixinParams) {\n var MixinSwal = /*#__PURE__*/function (_this) {\n _inherits(MixinSwal, _this);\n function MixinSwal() {\n _classCallCheck(this, MixinSwal);\n return _callSuper(this, MixinSwal, arguments);\n }\n _createClass(MixinSwal, [{\n key: \"_main\",\n value: function _main(params, priorityMixinParams) {\n return _get(_getPrototypeOf(MixinSwal.prototype), \"_main\", this).call(this, params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n }]);\n return MixinSwal;\n }(this); // @ts-ignore\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\n var getTimerLeft = function getTimerLeft() {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var stopTimer = function stopTimer() {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var resumeTimer = function resumeTimer() {\n if (globalState.timeout) {\n var remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n var toggleTimer = function toggleTimer() {\n var timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\n var increaseTimer = function increaseTimer(ms) {\n if (globalState.timeout) {\n var remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\n var isTimerRunning = function isTimerRunning() {\n return !!(globalState.timeout && globalState.timeout.isRunning());\n };\n\n var bodyClickListenerAdded = false;\n var clickHandlers = {};\n\n /**\n * @param {string} attr\n */\n function bindClickHandler() {\n var attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n var bodyClickListener = function bodyClickListener(event) {\n for (var el = event.target; el && el !== document; el = el.parentNode) {\n for (var attr in clickHandlers) {\n var template = el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template: template\n });\n return;\n }\n }\n }\n };\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n });\n\n var Timer = /*#__PURE__*/function () {\n /**\n * @param {Function} callback\n * @param {number} delay\n */\n function Timer(callback, delay) {\n _classCallCheck(this, Timer);\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n _createClass(Timer, [{\n key: \"start\",\n value: function start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n }, {\n key: \"increase\",\n value: function increase(n) {\n var running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n }, {\n key: \"getTimerLeft\",\n value: function getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n }, {\n key: \"isRunning\",\n value: function isRunning() {\n return this.running;\n }\n }]);\n return Timer;\n }();\n\n var swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n var getTemplateParams = function getTemplateParams(params) {\n /** @type {HTMLTemplateElement} */\n var template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n var templateContent = template.content;\n showWarningsForElements(templateContent);\n var result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n var getSwalParams = function getSwalParams(templateContent) {\n var result = {};\n /** @type {HTMLElement[]} */\n var swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(function (param) {\n showWarningsForAttributes(param, ['name', 'value']);\n var paramName = param.getAttribute('name');\n var value = param.getAttribute('value');\n if (typeof defaultParams[paramName] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (_typeof(defaultParams[paramName]) === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n var getSwalFunctionParams = function getSwalFunctionParams(templateContent) {\n var result = {};\n /** @type {HTMLElement[]} */\n var swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(function (param) {\n var paramName = param.getAttribute('name');\n var value = param.getAttribute('value');\n result[paramName] = new Function(\"return \".concat(value))();\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n var getSwalButtons = function getSwalButtons(templateContent) {\n var result = {};\n /** @type {HTMLElement[]} */\n var swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(function (button) {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n var type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n var getSwalImage = function getSwalImage(templateContent) {\n var result = {};\n /** @type {HTMLElement} */\n var image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n var getSwalIcon = function getSwalIcon(templateContent) {\n var result = {};\n /** @type {HTMLElement} */\n var icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n /** @type {SweetAlertIcon} */\n // @ts-ignore\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n var getSwalInput = function getSwalInput(templateContent) {\n var result = {};\n /** @type {HTMLElement} */\n var input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n /** @type {SweetAlertInput} */\n // @ts-ignore\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n var inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(function (option) {\n showWarningsForAttributes(option, ['value']);\n var optionValue = option.getAttribute('value');\n var optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {SweetAlertOptions}\n */\n var getSwalStringParams = function getSwalStringParams(templateContent, paramNames) {\n var result = {};\n for (var i in paramNames) {\n var paramName = paramNames[i];\n /** @type {HTMLElement} */\n var tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n */\n var showWarningsForElements = function showWarningsForElements(templateContent) {\n var allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(function (el) {\n var tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n var showWarningsForAttributes = function showWarningsForAttributes(el, allowedAttributes) {\n Array.from(el.attributes).forEach(function (attribute) {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var SHOW_CLASS_TIMEOUT = 10;\n\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\n var openPopup = function openPopup(params) {\n var container = getContainer();\n var popup = getPopup();\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n var bodyStyles = window.getComputedStyle(document.body);\n var initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(function () {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n setTimeout(function () {\n return params.didOpen(popup);\n });\n }\n removeClass(container, swalClasses['no-transition']);\n };\n\n /**\n * @param {AnimationEvent} event\n */\n var swalOpenAnimationFinished = function swalOpenAnimationFinished(event) {\n var popup = getPopup();\n if (event.target !== popup || !animationEndEvent) {\n return;\n }\n var container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\n var setScrollingVisibility = function setScrollingVisibility(container, popup) {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n /**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\n var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding, initialBodyOverflow) {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(function () {\n container.scrollTop = 0;\n });\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n var addClasses = function addClasses(container, popup, params) {\n addClass(container, params.showClass.backdrop);\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(function () {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup);\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n email: function email(string, validationMessage) {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n url: function url(string, validationMessage) {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n }\n\n /**\n * @param {SweetAlertOptions} params\n */\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n function setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with <br> in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('<br />');\n }\n init(params);\n }\n\n /** @type {SweetAlert} */\n var currentInstance;\n var _promise = /*#__PURE__*/new WeakMap();\n var SweetAlert = /*#__PURE__*/function () {\n /**\n * @param {...any} args\n * @this {SweetAlert}\n */\n function SweetAlert() {\n _classCallCheck(this, SweetAlert);\n /**\n * @type {Promise<SweetAlertResult>}\n */\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly<SweetAlertOptions>} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet(this, _promise, this._main(currentInstance.params));\n }\n _createClass(SweetAlert, [{\n key: \"_main\",\n value: function _main(userParams) {\n var mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n var swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n var isAwaitingPromise = globalState.currentInstance.isAwaitingPromise;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n var innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n var domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n }, {\n key: \"then\",\n value: function then(onFulfilled) {\n return _classPrivateFieldGet(this, _promise).then(onFulfilled);\n }\n }, {\n key: \"finally\",\n value: function _finally(onFinally) {\n return _classPrivateFieldGet(this, _promise)[\"finally\"](onFinally);\n }\n }]);\n return SweetAlert;\n }();\n\n /**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise}\n */\n var swalPromise = function swalPromise(instance, domCache, innerParams) {\n return new Promise(function (resolve, reject) {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n var dismissWith = function dismissWith(dismiss) {\n instance.close({\n isDismissed: true,\n dismiss: dismiss\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = function () {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = function () {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = function () {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = function () {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(function () {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n /**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\n var prepareParams = function prepareParams(userParams, mixinParams) {\n var templateParams = getTemplateParams(userParams);\n var params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n };\n\n /**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\n var populateDomCache = function populateDomCache(instance) {\n var domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n var setupTimer = function setupTimer(globalState, innerParams, dismissWith) {\n var timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(function () {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(function () {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n var initFocus = function initFocus(domCache, innerParams) {\n if (innerParams.toast) {\n return;\n }\n if (!callIfFunction(innerParams.allowEnterKey)) {\n blurActiveElement();\n return;\n }\n if (!focusButton(domCache, innerParams)) {\n setFocus(-1, 1);\n }\n };\n\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n var focusButton = function focusButton(domCache, innerParams) {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n };\n var blurActiveElement = function blurActiveElement() {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n };\n\n // Dear russian users visiting russian sites. Let's have fun.\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|by|xn--p1ai)$/)) {\n var now = new Date();\n var initiationDate = localStorage.getItem('swal-initiation');\n if (!initiationDate) {\n localStorage.setItem('swal-initiation', \"\".concat(now));\n } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {\n setTimeout(function () {\n document.body.style.pointerEvents = 'none';\n var ukrainianAnthem = document.createElement('audio');\n ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';\n ukrainianAnthem.loop = true;\n document.body.appendChild(ukrainianAnthem);\n setTimeout(function () {\n ukrainianAnthem.play()[\"catch\"](function () {\n // ignore\n });\n }, 2500);\n }, 500);\n }\n }\n\n // Assign instance methods from src/instanceMethods/*.js to prototype\n SweetAlert.prototype.disableButtons = disableButtons;\n SweetAlert.prototype.enableButtons = enableButtons;\n SweetAlert.prototype.getInput = getInput;\n SweetAlert.prototype.disableInput = disableInput;\n SweetAlert.prototype.enableInput = enableInput;\n SweetAlert.prototype.hideLoading = hideLoading;\n SweetAlert.prototype.disableLoading = hideLoading;\n SweetAlert.prototype.showValidationMessage = showValidationMessage;\n SweetAlert.prototype.resetValidationMessage = resetValidationMessage;\n SweetAlert.prototype.close = close;\n SweetAlert.prototype.closePopup = close;\n SweetAlert.prototype.closeModal = close;\n SweetAlert.prototype.closeToast = close;\n SweetAlert.prototype.rejectPromise = rejectPromise;\n SweetAlert.prototype.update = update;\n SweetAlert.prototype._destroy = _destroy;\n\n // Assign static methods from src/staticMethods/*.js to constructor\n Object.assign(SweetAlert, staticMethods);\n\n // Proxy to instance methods to constructor, for now, for backwards compatibility\n Object.keys(instanceMethods).forEach(function (key) {\n /**\n * @param {...any} args\n * @returns {any | undefined}\n */\n SweetAlert[key] = function () {\n if (currentInstance && currentInstance[key]) {\n var _currentInstance;\n return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments);\n }\n return null;\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.10.6';\n\n var Swal = SweetAlert;\n // @ts-ignore\n Swal[\"default\"] = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled).swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}\");","import Swal from \"sweetalert2\";\n\nexport default class NeoDialog {\n static confirm(title, yesText, noText = 'No', showDenyButton = true, options = {}) {\n const { /* add params here */ } = options;\n\n return Swal.fire({\n title: title,\n showDenyButton: showDenyButton,\n showCancelButton: false,\n confirmButtonText: yesText,\n denyButtonText: noText,\n buttonsStyling: false,\n reverseButtons: true,\n backdrop: true,\n allowOutsideClick: false,\n position: 'center',\n customClass: {\n popup: 'neo-dialog-popup',\n title: 'neo-dialog-title',\n confirmButton: 'btn btn-primary neo-dialog-confirm-button',\n denyButton: 'btn btn-default',\n actions: 'neo-dialog-actions'\n },\n })\n }\n}\n","import React, { useState, useContext } from \"react\";\nimport axios from \"axios\";\nimport history from \"../utils/history\";\nimport ConfirmationErrorModal from \"./ConfirmationErrorModal\";\nimport { StaffRotaContext } from \"../utils/context\";\nimport NeoDialog from \"../../../NeoDialog\";\n\nexport default ({ venueId, serviceMessage }) => {\n const { staffRotaCreated } = useContext(StaffRotaContext);\n const [showErrorModal, setShowErrorModal] = useState(false);\n const [errors, setErrors] = useState(false);\n const [confirmationInProgress, setConfirmationInProgress] = useState(false);\n\n const confirmStaffItem = (staffRotaId) => {\n axios\n .post('/admin/staff_rota/confirm.json', { staff_rota_id: staffRotaId })\n .then((response) => {\n history.push(`/admin/staff_rota?venue_id=${venueId}`);\n staffRotaCreated(response.data);\n setTimeout(() => setConfirmationInProgress(false), 150);\n })\n .catch(error => {\n setErrors(error.response.data.errors);\n setShowErrorModal(true);\n setConfirmationInProgress(false);\n });\n };\n\n const performSubmit = () => {\n if (confirmationInProgress) return true;\n setConfirmationInProgress(true);\n\n const formData = new FormData(document.getElementById('staff-form'));\n const staffRotaId = formData.get('staff_rota_id');\n \n if (serviceMessage) {\n NeoDialog\n .confirm(serviceMessage, 'Confirm', 'Cancel')\n .then((result) => {\n if (result.isConfirmed) {\n confirmStaffItem(staffRotaId);\n } else {\n setConfirmationInProgress(false);\n }\n })\n } else {\n confirmStaffItem(staffRotaId);\n }\n }\n\n return (\n <>\n <ConfirmationErrorModal\n errors={errors}\n show={showErrorModal}\n setShow={setShowErrorModal}\n />\n\n <button\n className=\"btn btn-lg btn-primary btn-no-radius\"\n style={{ width: 250 }}\n type='button'\n disabled={confirmationInProgress}\n onClick={performSubmit}\n >\n Confirm\n </button>\n </>\n )\n}","import React, { useState, useRef } from 'react';\nimport Form from \"./Form\";\nimport Table from \"../components/Table/Table\";\nimport axios from \"axios\";\nimport ConfirmButton from \"./ConfirmButton\";\n\nexport default ({ location }) => {\n const params = new URLSearchParams(location.search)\n const [data, setData] = useState([]);\n const [total, setTotal] = useState({});\n const [venueId, setVenueId] = useState(params.get('venue_id'));\n const [creationInProgress, setCreationInProgress] = useState(false);\n const [serviceMessage, setServiceMessage] = useState(null);\n\n const myRef = useRef(null)\n\n const executeScroll = () => myRef.current.scrollIntoView({ behavior: 'smooth' })\n\n const fetchData = (staffRotaId) => {\n axios\n .get('/admin/staff_items.json', { params: { staff_rota_id: staffRotaId } })\n .then((response) => {\n setData(response.data.staffItems)\n setTotal(response.data.total)\n setServiceMessage(response.data.message)\n executeScroll();\n setTimeout(() => setCreationInProgress(false), 100);\n })\n .catch((error) => {\n console.log(error);\n setCreationInProgress(false);\n });\n }\n\n const handleUpdateTable = () => {\n fetchData($('input[name=staff_rota_id]').val());\n }\n\n return (\n <>\n <div className='row'>\n <div className='col-lg-12'>\n <h2 style={{ marginTop: 0, marginLeft: 0 }}>Create Staff Rota</h2>\n </div>\n </div>\n\n <Form\n onCreated={fetchData}\n venueId={venueId}\n creationInProgress={creationInProgress}\n setCreationInProgress={setCreationInProgress}\n />\n\n {(data || []).length > 0 &&\n <div ref={myRef}>\n <Table data={data} total={total} onUpdated={handleUpdateTable} creationProcess={true}/>\n {!creationInProgress && <div className='text-right'><ConfirmButton venueId={venueId} serviceMessage={serviceMessage}/></div>}\n </div>\n }\n </>\n )\n};","import React from 'react';\nimport { Button, Modal } from 'react-bootstrap';\n\nexport default ({ show, setShow, message }) => (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>Shift(s) Created</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {message}\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Close</Button>\n </Modal.Footer>\n </Modal>\n)\n","import React, { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nfunction ScrollToTop({ history, children }) {\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n }\n }, []);\n\n return children;\n}\n\nexport default withRouter(ScrollToTop);","import React, { useEffect, useState } from 'react';\nimport IndexPage from './Index/Index';\nimport NewPage from \"./New/Index\";\nimport { Router, Switch, Route } from \"react-router-dom\";\nimport history from \"./utils/history\";\nimport { AccessContext, ViewModeContext, StaffRotaContext } from \"./utils/context\";\nimport api from './api';\nimport AfterConfirmedModal from \"./components/Modals/AfterConfirmed\";\nimport ScrollToTop from \"./ScrollToTop\";\n\nimport './styles.scss';\n\nexport default () => {\n const [allowManage, setAllowManage] = useState(null);\n const [viewMode, setViewMode] = useState('all');\n const fullAccess = (viewMode === 'all' && allowManage);\n const [showAfterConfirmedModal, setShowAfterConfirmedModal] = useState(false);\n const [afterConfirmedMessage, setAfterConfirmMessage] = useState([]);\n const [currentUserId, setCurrentUserId] = useState(null);\n\n useEffect(()=> {\n api.getStaffRota().then(response => {\n setAllowManage(response.data.user.allowManage);\n setCurrentUserId(response.data.user.id);\n });\n }, [])\n\n const handleStaffRotaCreated = (data) => {\n setShowAfterConfirmedModal(true)\n setAfterConfirmMessage(data.message)\n }\n\n if (allowManage === null) return null;\n\n const viewModeSettings = {\n currentUserId: currentUserId,\n viewMode: viewMode,\n fullAccess: fullAccess,\n setViewMode: setViewMode\n }\n\n const newStaffRotaSettings = {\n staffRotaCreated: handleStaffRotaCreated\n }\n\n return (\n <AccessContext.Provider value={allowManage}>\n <ViewModeContext.Provider value={viewModeSettings}>\n <StaffRotaContext.Provider value={newStaffRotaSettings}>\n\n <AfterConfirmedModal\n show={showAfterConfirmedModal}\n setShow={setShowAfterConfirmedModal}\n message={afterConfirmedMessage}\n />\n\n <Router history={history}>\n <ScrollToTop>\n <Switch>\n <Route path='/admin/staff_rota/new' component={NewPage}/>\n <Route path='/admin/staff_rota' component={IndexPage}/>\n </Switch>\n </ScrollToTop>\n </Router>\n </StaffRotaContext.Provider>\n </ViewModeContext.Provider>\n </AccessContext.Provider>\n )\n}\n","import React, { lazy, Suspense } from 'react'\nimport ReactDOM from 'react-dom'\n\nconst LAZY_COMPONENTS = [\n { id: 'dashboard_component', load: () => import('../components/Dashboard/index') },\n { id: 'report_component', load: () => import('../components/Reports/Index') },\n { id: 'admin_venue_schedule_items_component', load: () => import('../components/VenueScheduleItems/Index') },\n { id: 'booking_form_component', load: () => import(\"src/components/BookingForm\") },\n { id: 'report_schedules_component', load: () => import(\"src/components/ReportSchedules/Index\") },\n]\n\nimport ReportSchedules from '../components/ReportSchedules/Index';\nimport StaffRota from '../components/StaffRota/Index';\n\nconst COMPONENTS = [\n { id: 'report_schedules_component', Component: ReportSchedules },\n { id: 'staff_rota_component', Component: StaffRota }\n]\n\ndocument.addEventListener('DOMContentLoaded', () => {\n LAZY_COMPONENTS.forEach(({ id, load }) => {\n const container = document.getElementById(id);\n if (container) {\n const Component = lazy(load);\n ReactDOM.render(\n <Suspense fallback={<div/>}>\n <Component/>\n </Suspense>, container\n );\n }\n });\n\n COMPONENTS.forEach(({ id, Component }) => {\n const container = document.getElementById(id);\n if (container) {\n ReactDOM.render(<Component/>, container);\n }\n })\n})\n","/*\nStimulus 3.2.1\nCopyright © 2022 Basecamp, LLC\n */\nclass EventListener {\n constructor(eventTarget, eventName, eventOptions) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n handleEvent(event) {\n const extendedEvent = extendEvent(event);\n for (const binding of this.bindings) {\n if (extendedEvent.immediatePropagationStopped) {\n break;\n }\n else {\n binding.handleEvent(extendedEvent);\n }\n }\n }\n hasBindings() {\n return this.unorderedBindings.size > 0;\n }\n get bindings() {\n return Array.from(this.unorderedBindings).sort((left, right) => {\n const leftIndex = left.index, rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n}\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n }\n else {\n const { stopImmediatePropagation } = event;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation.call(this);\n },\n });\n }\n}\n\nclass Dispatcher {\n constructor(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach((eventListener) => eventListener.connect());\n }\n }\n stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach((eventListener) => eventListener.disconnect());\n }\n }\n get eventListeners() {\n return Array.from(this.eventListenerMaps.values()).reduce((listeners, map) => listeners.concat(Array.from(map.values())), []);\n }\n bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n bindingDisconnected(binding, clearEventListeners = false) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n if (clearEventListeners)\n this.clearEventListenersForBinding(binding);\n }\n handleError(error, message, detail = {}) {\n this.application.handleError(error, `Error ${message}`, detail);\n }\n clearEventListenersForBinding(binding) {\n const eventListener = this.fetchEventListenerForBinding(binding);\n if (!eventListener.hasBindings()) {\n eventListener.disconnect();\n this.removeMappedEventListenerFor(binding);\n }\n }\n removeMappedEventListenerFor(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n eventListenerMap.delete(cacheKey);\n if (eventListenerMap.size == 0)\n this.eventListenerMaps.delete(eventTarget);\n }\n fetchEventListenerForBinding(binding) {\n const { eventTarget, eventName, eventOptions } = binding;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n fetchEventListener(eventTarget, eventName, eventOptions) {\n const eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n const cacheKey = this.cacheKey(eventName, eventOptions);\n let eventListener = eventListenerMap.get(cacheKey);\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n return eventListener;\n }\n createEventListener(eventTarget, eventName, eventOptions) {\n const eventListener = new EventListener(eventTarget, eventName, eventOptions);\n if (this.started) {\n eventListener.connect();\n }\n return eventListener;\n }\n fetchEventListenerMapForEventTarget(eventTarget) {\n let eventListenerMap = this.eventListenerMaps.get(eventTarget);\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n return eventListenerMap;\n }\n cacheKey(eventName, eventOptions) {\n const parts = [eventName];\n Object.keys(eventOptions)\n .sort()\n .forEach((key) => {\n parts.push(`${eventOptions[key] ? \"\" : \"!\"}${key}`);\n });\n return parts.join(\":\");\n }\n}\n\nconst defaultActionDescriptorFilters = {\n stop({ event, value }) {\n if (value)\n event.stopPropagation();\n return true;\n },\n prevent({ event, value }) {\n if (value)\n event.preventDefault();\n return true;\n },\n self({ event, value, element }) {\n if (value) {\n return element === event.target;\n }\n else {\n return true;\n }\n },\n};\nconst descriptorPattern = /^(?:(.+?)(?:\\.(.+?))?(?:@(window|document))?->)?(.+?)(?:#([^:]+?))(?::(.+))?$/;\nfunction parseActionDescriptorString(descriptorString) {\n const source = descriptorString.trim();\n const matches = source.match(descriptorPattern) || [];\n let eventName = matches[1];\n let keyFilter = matches[2];\n if (keyFilter && ![\"keydown\", \"keyup\", \"keypress\"].includes(eventName)) {\n eventName += `.${keyFilter}`;\n keyFilter = \"\";\n }\n return {\n eventTarget: parseEventTarget(matches[3]),\n eventName,\n eventOptions: matches[6] ? parseEventOptions(matches[6]) : {},\n identifier: matches[4],\n methodName: matches[5],\n keyFilter,\n };\n}\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n }\n else if (eventTargetName == \"document\") {\n return document;\n }\n}\nfunction parseEventOptions(eventOptions) {\n return eventOptions\n .split(\":\")\n .reduce((options, token) => Object.assign(options, { [token.replace(/^!/, \"\")]: !/^!/.test(token) }), {});\n}\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n }\n else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, (_, char) => char.toUpperCase());\n}\nfunction namespaceCamelize(value) {\n return camelize(value.replace(/--/g, \"-\").replace(/__/g, \"_\"));\n}\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, (_, char) => `-${char.toLowerCase()}`);\n}\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nclass Action {\n constructor(element, index, descriptor, schema) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n this.keyFilter = descriptor.keyFilter || \"\";\n this.schema = schema;\n }\n static forToken(token, schema) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content), schema);\n }\n toString() {\n const eventFilter = this.keyFilter ? `.${this.keyFilter}` : \"\";\n const eventTarget = this.eventTargetName ? `@${this.eventTargetName}` : \"\";\n return `${this.eventName}${eventFilter}${eventTarget}->${this.identifier}#${this.methodName}`;\n }\n isFilterTarget(event) {\n if (!this.keyFilter) {\n return false;\n }\n const filteres = this.keyFilter.split(\"+\");\n const modifiers = [\"meta\", \"ctrl\", \"alt\", \"shift\"];\n const [meta, ctrl, alt, shift] = modifiers.map((modifier) => filteres.includes(modifier));\n if (event.metaKey !== meta || event.ctrlKey !== ctrl || event.altKey !== alt || event.shiftKey !== shift) {\n return true;\n }\n const standardFilter = filteres.filter((key) => !modifiers.includes(key))[0];\n if (!standardFilter) {\n return false;\n }\n if (!Object.prototype.hasOwnProperty.call(this.keyMappings, standardFilter)) {\n error(`contains unknown key filter: ${this.keyFilter}`);\n }\n return this.keyMappings[standardFilter].toLowerCase() !== event.key.toLowerCase();\n }\n get params() {\n const params = {};\n const pattern = new RegExp(`^data-${this.identifier}-(.+)-param$`, \"i\");\n for (const { name, value } of Array.from(this.element.attributes)) {\n const match = name.match(pattern);\n const key = match && match[1];\n if (key) {\n params[camelize(key)] = typecast(value);\n }\n }\n return params;\n }\n get eventTargetName() {\n return stringifyEventTarget(this.eventTarget);\n }\n get keyMappings() {\n return this.schema.keyMappings;\n }\n}\nconst defaultEventNames = {\n a: () => \"click\",\n button: () => \"click\",\n form: () => \"submit\",\n details: () => \"toggle\",\n input: (e) => (e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\"),\n select: () => \"change\",\n textarea: () => \"input\",\n};\nfunction getDefaultEventNameForElement(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\nfunction error(message) {\n throw new Error(message);\n}\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n }\n catch (o_O) {\n return value;\n }\n}\n\nclass Binding {\n constructor(context, action) {\n this.context = context;\n this.action = action;\n }\n get index() {\n return this.action.index;\n }\n get eventTarget() {\n return this.action.eventTarget;\n }\n get eventOptions() {\n return this.action.eventOptions;\n }\n get identifier() {\n return this.context.identifier;\n }\n handleEvent(event) {\n if (this.willBeInvokedByEvent(event) && this.applyEventModifiers(event)) {\n this.invokeWithEvent(event);\n }\n }\n get eventName() {\n return this.action.eventName;\n }\n get method() {\n const method = this.controller[this.methodName];\n if (typeof method == \"function\") {\n return method;\n }\n throw new Error(`Action \"${this.action}\" references undefined method \"${this.methodName}\"`);\n }\n applyEventModifiers(event) {\n const { element } = this.action;\n const { actionDescriptorFilters } = this.context.application;\n let passes = true;\n for (const [name, value] of Object.entries(this.eventOptions)) {\n if (name in actionDescriptorFilters) {\n const filter = actionDescriptorFilters[name];\n passes = passes && filter({ name, value, event, element });\n }\n else {\n continue;\n }\n }\n return passes;\n }\n invokeWithEvent(event) {\n const { target, currentTarget } = event;\n try {\n const { params } = this.action;\n const actionEvent = Object.assign(event, { params });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, { event, target, currentTarget, action: this.methodName });\n }\n catch (error) {\n const { identifier, controller, element, index } = this;\n const detail = { identifier, controller, element, index, event };\n this.context.handleError(error, `invoking action \"${this.action}\"`, detail);\n }\n }\n willBeInvokedByEvent(event) {\n const eventTarget = event.target;\n if (event instanceof KeyboardEvent && this.action.isFilterTarget(event)) {\n return false;\n }\n if (this.element === eventTarget) {\n return true;\n }\n else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n }\n else {\n return this.scope.containsElement(this.action.element);\n }\n }\n get controller() {\n return this.context.controller;\n }\n get methodName() {\n return this.action.methodName;\n }\n get element() {\n return this.scope.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nclass ElementObserver {\n constructor(element, delegate) {\n this.mutationObserverInit = { attributes: true, childList: true, subtree: true };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n callback();\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n const matches = new Set(this.matchElementsInTree());\n for (const element of Array.from(this.elements)) {\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n for (const element of Array.from(matches)) {\n this.addElement(element);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n }\n else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n processAttributeChange(node, attributeName) {\n const element = node;\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n }\n else {\n this.removeElement(element);\n }\n }\n else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n processRemovedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n processAddedNodes(nodes) {\n for (const node of Array.from(nodes)) {\n const element = this.elementFromNode(node);\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n matchElement(element) {\n return this.delegate.matchElement(element);\n }\n matchElementsInTree(tree = this.element) {\n return this.delegate.matchElementsInTree(tree);\n }\n processTree(tree, processor) {\n for (const element of this.matchElementsInTree(tree)) {\n processor.call(this, element);\n }\n }\n elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n }\n else {\n return this.element.contains(element);\n }\n }\n addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n}\n\nclass AttributeObserver {\n constructor(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n get element() {\n return this.elementObserver.element;\n }\n get selector() {\n return `[${this.attributeName}]`;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get started() {\n return this.elementObserver.started;\n }\n matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n}\n\nfunction add(map, key, value) {\n fetch(map, key).add(value);\n}\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nfunction fetch(map, key) {\n let values = map.get(key);\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n return values;\n}\nfunction prune(map, key) {\n const values = map.get(key);\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nclass Multimap {\n constructor() {\n this.valuesByKey = new Map();\n }\n get keys() {\n return Array.from(this.valuesByKey.keys());\n }\n get values() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((values, set) => values.concat(Array.from(set)), []);\n }\n get size() {\n const sets = Array.from(this.valuesByKey.values());\n return sets.reduce((size, set) => size + set.size, 0);\n }\n add(key, value) {\n add(this.valuesByKey, key, value);\n }\n delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n has(key, value) {\n const values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n hasKey(key) {\n return this.valuesByKey.has(key);\n }\n hasValue(value) {\n const sets = Array.from(this.valuesByKey.values());\n return sets.some((set) => set.has(value));\n }\n getValuesForKey(key) {\n const values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n getKeysForValue(value) {\n return Array.from(this.valuesByKey)\n .filter(([_key, values]) => values.has(value))\n .map(([key, _values]) => key);\n }\n}\n\nclass IndexedMultimap extends Multimap {\n constructor() {\n super();\n this.keysByValue = new Map();\n }\n get values() {\n return Array.from(this.keysByValue.keys());\n }\n add(key, value) {\n super.add(key, value);\n add(this.keysByValue, value, key);\n }\n delete(key, value) {\n super.delete(key, value);\n del(this.keysByValue, value, key);\n }\n hasValue(value) {\n return this.keysByValue.has(value);\n }\n getKeysForValue(value) {\n const set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n}\n\nclass SelectorObserver {\n constructor(element, selector, delegate, details = {}) {\n this.selector = selector;\n this.details = details;\n this.elementObserver = new ElementObserver(element, this);\n this.delegate = delegate;\n this.matchesByElement = new Multimap();\n }\n get started() {\n return this.elementObserver.started;\n }\n start() {\n this.elementObserver.start();\n }\n pause(callback) {\n this.elementObserver.pause(callback);\n }\n stop() {\n this.elementObserver.stop();\n }\n refresh() {\n this.elementObserver.refresh();\n }\n get element() {\n return this.elementObserver.element;\n }\n matchElement(element) {\n const matches = element.matches(this.selector);\n if (this.delegate.selectorMatchElement) {\n return matches && this.delegate.selectorMatchElement(element, this.details);\n }\n return matches;\n }\n matchElementsInTree(tree) {\n const match = this.matchElement(tree) ? [tree] : [];\n const matches = Array.from(tree.querySelectorAll(this.selector)).filter((match) => this.matchElement(match));\n return match.concat(matches);\n }\n elementMatched(element) {\n this.selectorMatched(element);\n }\n elementUnmatched(element) {\n this.selectorUnmatched(element);\n }\n elementAttributeChanged(element, _attributeName) {\n const matches = this.matchElement(element);\n const matchedBefore = this.matchesByElement.has(this.selector, element);\n if (!matches && matchedBefore) {\n this.selectorUnmatched(element);\n }\n }\n selectorMatched(element) {\n if (this.delegate.selectorMatched) {\n this.delegate.selectorMatched(element, this.selector, this.details);\n this.matchesByElement.add(this.selector, element);\n }\n }\n selectorUnmatched(element) {\n this.delegate.selectorUnmatched(element, this.selector, this.details);\n this.matchesByElement.delete(this.selector, element);\n }\n}\n\nclass StringMapObserver {\n constructor(element, delegate) {\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver((mutations) => this.processMutations(mutations));\n }\n start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, { attributes: true, attributeOldValue: true });\n this.refresh();\n }\n }\n stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n refresh() {\n if (this.started) {\n for (const attributeName of this.knownAttributeNames) {\n this.refreshAttribute(attributeName, null);\n }\n }\n }\n processMutations(mutations) {\n if (this.started) {\n for (const mutation of mutations) {\n this.processMutation(mutation);\n }\n }\n }\n processMutation(mutation) {\n const attributeName = mutation.attributeName;\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n refreshAttribute(attributeName, oldValue) {\n const key = this.delegate.getStringMapKeyForAttribute(attributeName);\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n const value = this.element.getAttribute(attributeName);\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n if (value == null) {\n const oldValue = this.stringMap.get(attributeName);\n this.stringMap.delete(attributeName);\n if (oldValue)\n this.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n get knownAttributeNames() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n get currentAttributeNames() {\n return Array.from(this.element.attributes).map((attribute) => attribute.name);\n }\n get recordedAttributeNames() {\n return Array.from(this.stringMap.keys());\n }\n}\n\nclass TokenListObserver {\n constructor(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n get started() {\n return this.attributeObserver.started;\n }\n start() {\n this.attributeObserver.start();\n }\n pause(callback) {\n this.attributeObserver.pause(callback);\n }\n stop() {\n this.attributeObserver.stop();\n }\n refresh() {\n this.attributeObserver.refresh();\n }\n get element() {\n return this.attributeObserver.element;\n }\n get attributeName() {\n return this.attributeObserver.attributeName;\n }\n elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n elementAttributeValueChanged(element) {\n const [unmatchedTokens, matchedTokens] = this.refreshTokensForElement(element);\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n tokensMatched(tokens) {\n tokens.forEach((token) => this.tokenMatched(token));\n }\n tokensUnmatched(tokens) {\n tokens.forEach((token) => this.tokenUnmatched(token));\n }\n tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n refreshTokensForElement(element) {\n const previousTokens = this.tokensByElement.getValuesForKey(element);\n const currentTokens = this.readTokensForElement(element);\n const firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(([previousToken, currentToken]) => !tokensAreEqual(previousToken, currentToken));\n if (firstDifferingIndex == -1) {\n return [[], []];\n }\n else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n readTokensForElement(element) {\n const attributeName = this.attributeName;\n const tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n}\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString\n .trim()\n .split(/\\s+/)\n .filter((content) => content.length)\n .map((content, index) => ({ element, attributeName, content, index }));\n}\nfunction zip(left, right) {\n const length = Math.max(left.length, right.length);\n return Array.from({ length }, (_, index) => [left[index], right[index]]);\n}\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nclass ValueListObserver {\n constructor(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n get started() {\n return this.tokenListObserver.started;\n }\n start() {\n this.tokenListObserver.start();\n }\n stop() {\n this.tokenListObserver.stop();\n }\n refresh() {\n this.tokenListObserver.refresh();\n }\n get element() {\n return this.tokenListObserver.element;\n }\n get attributeName() {\n return this.tokenListObserver.attributeName;\n }\n tokenMatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n tokenUnmatched(token) {\n const { element } = token;\n const { value } = this.fetchParseResultForToken(token);\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n fetchParseResultForToken(token) {\n let parseResult = this.parseResultsByToken.get(token);\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n return parseResult;\n }\n fetchValuesByTokenForElement(element) {\n let valuesByToken = this.valuesByTokenByElement.get(element);\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n return valuesByToken;\n }\n parseToken(token) {\n try {\n const value = this.delegate.parseValueForToken(token);\n return { value };\n }\n catch (error) {\n return { error };\n }\n }\n}\n\nclass BindingObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n get element() {\n return this.context.element;\n }\n get identifier() {\n return this.context.identifier;\n }\n get actionAttribute() {\n return this.schema.actionAttribute;\n }\n get schema() {\n return this.context.schema;\n }\n get bindings() {\n return Array.from(this.bindingsByAction.values());\n }\n connectAction(action) {\n const binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n disconnectAction(action) {\n const binding = this.bindingsByAction.get(action);\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n disconnectAllActions() {\n this.bindings.forEach((binding) => this.delegate.bindingDisconnected(binding, true));\n this.bindingsByAction.clear();\n }\n parseValueForToken(token) {\n const action = Action.forToken(token, this.schema);\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n}\n\nclass ValueObserver {\n constructor(context, receiver) {\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n }\n start() {\n this.stringMapObserver.start();\n this.invokeChangedCallbacksForDefaultValues();\n }\n stop() {\n this.stringMapObserver.stop();\n }\n get element() {\n return this.context.element;\n }\n get controller() {\n return this.context.controller;\n }\n getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n stringMapKeyAdded(key, attributeName) {\n const descriptor = this.valueDescriptorMap[attributeName];\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n stringMapValueChanged(value, name, oldValue) {\n const descriptor = this.valueDescriptorNameMap[name];\n if (value === null)\n return;\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n this.invokeChangedCallback(name, value, oldValue);\n }\n stringMapKeyRemoved(key, attributeName, oldValue) {\n const descriptor = this.valueDescriptorNameMap[key];\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n }\n else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n invokeChangedCallbacksForDefaultValues() {\n for (const { key, name, defaultValue, writer } of this.valueDescriptors) {\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n }\n invokeChangedCallback(name, rawValue, rawOldValue) {\n const changedMethodName = `${name}Changed`;\n const changedMethod = this.receiver[changedMethodName];\n if (typeof changedMethod == \"function\") {\n const descriptor = this.valueDescriptorNameMap[name];\n try {\n const value = descriptor.reader(rawValue);\n let oldValue = rawOldValue;\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n changedMethod.call(this.receiver, value, oldValue);\n }\n catch (error) {\n if (error instanceof TypeError) {\n error.message = `Stimulus Value \"${this.context.identifier}.${descriptor.name}\" - ${error.message}`;\n }\n throw error;\n }\n }\n }\n get valueDescriptors() {\n const { valueDescriptorMap } = this;\n return Object.keys(valueDescriptorMap).map((key) => valueDescriptorMap[key]);\n }\n get valueDescriptorNameMap() {\n const descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach((key) => {\n const descriptor = this.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n hasValue(attributeName) {\n const descriptor = this.valueDescriptorNameMap[attributeName];\n const hasMethodName = `has${capitalize(descriptor.name)}`;\n return this.receiver[hasMethodName];\n }\n}\n\nclass TargetObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n tokenMatched({ element, content: name }) {\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n tokenUnmatched({ element, content: name }) {\n this.disconnectTarget(element, name);\n }\n connectTarget(element, name) {\n var _a;\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetConnected(element, name));\n }\n }\n disconnectTarget(element, name) {\n var _a;\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.targetDisconnected(element, name));\n }\n }\n disconnectAllTargets() {\n for (const name of this.targetsByName.keys) {\n for (const element of this.targetsByName.getValuesForKey(name)) {\n this.disconnectTarget(element, name);\n }\n }\n }\n get attributeName() {\n return `data-${this.context.identifier}-target`;\n }\n get element() {\n return this.context.element;\n }\n get scope() {\n return this.context.scope;\n }\n}\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce((values, constructor) => {\n getOwnStaticArrayValues(constructor, propertyName).forEach((name) => values.add(name));\n return values;\n }, new Set()));\n}\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n const ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce((pairs, constructor) => {\n pairs.push(...getOwnStaticObjectPairs(constructor, propertyName));\n return pairs;\n }, []);\n}\nfunction getAncestorsForConstructor(constructor) {\n const ancestors = [];\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n return ancestors.reverse();\n}\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n const definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n const definition = constructor[propertyName];\n return definition ? Object.keys(definition).map((key) => [key, definition[key]]) : [];\n}\n\nclass OutletObserver {\n constructor(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.outletsByName = new Multimap();\n this.outletElementsByName = new Multimap();\n this.selectorObserverMap = new Map();\n }\n start() {\n if (this.selectorObserverMap.size === 0) {\n this.outletDefinitions.forEach((outletName) => {\n const selector = this.selector(outletName);\n const details = { outletName };\n if (selector) {\n this.selectorObserverMap.set(outletName, new SelectorObserver(document.body, selector, this, details));\n }\n });\n this.selectorObserverMap.forEach((observer) => observer.start());\n }\n this.dependentContexts.forEach((context) => context.refresh());\n }\n stop() {\n if (this.selectorObserverMap.size > 0) {\n this.disconnectAllOutlets();\n this.selectorObserverMap.forEach((observer) => observer.stop());\n this.selectorObserverMap.clear();\n }\n }\n refresh() {\n this.selectorObserverMap.forEach((observer) => observer.refresh());\n }\n selectorMatched(element, _selector, { outletName }) {\n const outlet = this.getOutlet(element, outletName);\n if (outlet) {\n this.connectOutlet(outlet, element, outletName);\n }\n }\n selectorUnmatched(element, _selector, { outletName }) {\n const outlet = this.getOutletFromMap(element, outletName);\n if (outlet) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n selectorMatchElement(element, { outletName }) {\n return (this.hasOutlet(element, outletName) &&\n element.matches(`[${this.context.application.schema.controllerAttribute}~=${outletName}]`));\n }\n connectOutlet(outlet, element, outletName) {\n var _a;\n if (!this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.add(outletName, outlet);\n this.outletElementsByName.add(outletName, element);\n (_a = this.selectorObserverMap.get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletConnected(outlet, element, outletName));\n }\n }\n disconnectOutlet(outlet, element, outletName) {\n var _a;\n if (this.outletElementsByName.has(outletName, element)) {\n this.outletsByName.delete(outletName, outlet);\n this.outletElementsByName.delete(outletName, element);\n (_a = this.selectorObserverMap\n .get(outletName)) === null || _a === void 0 ? void 0 : _a.pause(() => this.delegate.outletDisconnected(outlet, element, outletName));\n }\n }\n disconnectAllOutlets() {\n for (const outletName of this.outletElementsByName.keys) {\n for (const element of this.outletElementsByName.getValuesForKey(outletName)) {\n for (const outlet of this.outletsByName.getValuesForKey(outletName)) {\n this.disconnectOutlet(outlet, element, outletName);\n }\n }\n }\n }\n selector(outletName) {\n return this.scope.outlets.getSelectorForOutletName(outletName);\n }\n get outletDependencies() {\n const dependencies = new Multimap();\n this.router.modules.forEach((module) => {\n const constructor = module.definition.controllerConstructor;\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n outlets.forEach((outlet) => dependencies.add(outlet, module.identifier));\n });\n return dependencies;\n }\n get outletDefinitions() {\n return this.outletDependencies.getKeysForValue(this.identifier);\n }\n get dependentControllerIdentifiers() {\n return this.outletDependencies.getValuesForKey(this.identifier);\n }\n get dependentContexts() {\n const identifiers = this.dependentControllerIdentifiers;\n return this.router.contexts.filter((context) => identifiers.includes(context.identifier));\n }\n hasOutlet(element, outletName) {\n return !!this.getOutlet(element, outletName) || !!this.getOutletFromMap(element, outletName);\n }\n getOutlet(element, outletName) {\n return this.application.getControllerForElementAndIdentifier(element, outletName);\n }\n getOutletFromMap(element, outletName) {\n return this.outletsByName.getValuesForKey(outletName).find((outlet) => outlet.element === element);\n }\n get scope() {\n return this.context.scope;\n }\n get identifier() {\n return this.context.identifier;\n }\n get application() {\n return this.context.application;\n }\n get router() {\n return this.application.router;\n }\n}\n\nclass Context {\n constructor(module, scope) {\n this.logDebugActivity = (functionName, detail = {}) => {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.logDebugActivity(this.identifier, functionName, detail);\n };\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n this.outletObserver = new OutletObserver(this, this);\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n }\n catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n this.outletObserver.start();\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n }\n catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n refresh() {\n this.outletObserver.refresh();\n }\n disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n }\n catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n this.outletObserver.stop();\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n get application() {\n return this.module.application;\n }\n get identifier() {\n return this.module.identifier;\n }\n get schema() {\n return this.application.schema;\n }\n get dispatcher() {\n return this.application.dispatcher;\n }\n get element() {\n return this.scope.element;\n }\n get parentElement() {\n return this.element.parentElement;\n }\n handleError(error, message, detail = {}) {\n const { identifier, controller, element } = this;\n detail = Object.assign({ identifier, controller, element }, detail);\n this.application.handleError(error, `Error ${message}`, detail);\n }\n targetConnected(element, name) {\n this.invokeControllerMethod(`${name}TargetConnected`, element);\n }\n targetDisconnected(element, name) {\n this.invokeControllerMethod(`${name}TargetDisconnected`, element);\n }\n outletConnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletConnected`, outlet, element);\n }\n outletDisconnected(outlet, element, name) {\n this.invokeControllerMethod(`${namespaceCamelize(name)}OutletDisconnected`, outlet, element);\n }\n invokeControllerMethod(methodName, ...args) {\n const controller = this.controller;\n if (typeof controller[methodName] == \"function\") {\n controller[methodName](...args);\n }\n }\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\nfunction shadow(constructor, properties) {\n const shadowConstructor = extend(constructor);\n const shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\nfunction getBlessedProperties(constructor) {\n const blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce((blessedProperties, blessing) => {\n const properties = blessing(constructor);\n for (const key in properties) {\n const descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n return blessedProperties;\n }, {});\n}\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce((shadowProperties, key) => {\n const descriptor = getShadowedDescriptor(prototype, properties, key);\n if (descriptor) {\n Object.assign(shadowProperties, { [key]: descriptor });\n }\n return shadowProperties;\n }, {});\n}\nfunction getShadowedDescriptor(prototype, properties, key) {\n const shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n const shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n if (!shadowedByValue) {\n const descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n return descriptor;\n }\n}\nconst getOwnKeys = (() => {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return (object) => [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\n }\n else {\n return Object.getOwnPropertyNames;\n }\n})();\nconst extend = (() => {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, new.target);\n }\n extended.prototype = Object.create(constructor.prototype, {\n constructor: { value: extended },\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n function testReflectExtension() {\n const a = function () {\n this.a.call(this);\n };\n const b = extendWithReflect(a);\n b.prototype.a = function () { };\n return new b();\n }\n try {\n testReflectExtension();\n return extendWithReflect;\n }\n catch (error) {\n return (constructor) => class extended extends constructor {\n };\n }\n})();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor),\n };\n}\n\nclass Module {\n constructor(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n get identifier() {\n return this.definition.identifier;\n }\n get controllerConstructor() {\n return this.definition.controllerConstructor;\n }\n get contexts() {\n return Array.from(this.connectedContexts);\n }\n connectContextForScope(scope) {\n const context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n disconnectContextForScope(scope) {\n const context = this.contextsByScope.get(scope);\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n fetchContextForScope(scope) {\n let context = this.contextsByScope.get(scope);\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n return context;\n }\n}\n\nclass ClassMap {\n constructor(scope) {\n this.scope = scope;\n }\n has(name) {\n return this.data.has(this.getDataKey(name));\n }\n get(name) {\n return this.getAll(name)[0];\n }\n getAll(name) {\n const tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n getDataKey(name) {\n return `${name}-class`;\n }\n get data() {\n return this.scope.data;\n }\n}\n\nclass DataMap {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n set(key, value) {\n const name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n has(key) {\n const name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n delete(key) {\n if (this.has(key)) {\n const name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n }\n else {\n return false;\n }\n }\n getAttributeNameForKey(key) {\n return `data-${this.identifier}-${dasherize(key)}`;\n }\n}\n\nclass Guide {\n constructor(logger) {\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n warn(object, key, message) {\n let warnedKeys = this.warnedKeysByObject.get(object);\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n}\n\nfunction attributeValueContainsToken(attributeName, token) {\n return `[${attributeName}~=\"${token}\"]`;\n}\n\nclass TargetSet {\n constructor(scope) {\n this.scope = scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(targetName) {\n return this.find(targetName) != null;\n }\n find(...targetNames) {\n return targetNames.reduce((target, targetName) => target || this.findTarget(targetName) || this.findLegacyTarget(targetName), undefined);\n }\n findAll(...targetNames) {\n return targetNames.reduce((targets, targetName) => [\n ...targets,\n ...this.findAllTargets(targetName),\n ...this.findAllLegacyTargets(targetName),\n ], []);\n }\n findTarget(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n findAllTargets(targetName) {\n const selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n getSelectorForTargetName(targetName) {\n const attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n findLegacyTarget(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n findAllLegacyTargets(targetName) {\n const selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map((element) => this.deprecate(element, targetName));\n }\n getLegacySelectorForTargetName(targetName) {\n const targetDescriptor = `${this.identifier}.${targetName}`;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n deprecate(element, targetName) {\n if (element) {\n const { identifier } = this;\n const attributeName = this.schema.targetAttribute;\n const revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, `target:${targetName}`, `Please replace ${attributeName}=\"${identifier}.${targetName}\" with ${revisedAttributeName}=\"${targetName}\". ` +\n `The ${attributeName} attribute is deprecated and will be removed in a future version of Stimulus.`);\n }\n return element;\n }\n get guide() {\n return this.scope.guide;\n }\n}\n\nclass OutletSet {\n constructor(scope, controllerElement) {\n this.scope = scope;\n this.controllerElement = controllerElement;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get schema() {\n return this.scope.schema;\n }\n has(outletName) {\n return this.find(outletName) != null;\n }\n find(...outletNames) {\n return outletNames.reduce((outlet, outletName) => outlet || this.findOutlet(outletName), undefined);\n }\n findAll(...outletNames) {\n return outletNames.reduce((outlets, outletName) => [...outlets, ...this.findAllOutlets(outletName)], []);\n }\n getSelectorForOutletName(outletName) {\n const attributeName = this.schema.outletAttributeForScope(this.identifier, outletName);\n return this.controllerElement.getAttribute(attributeName);\n }\n findOutlet(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n if (selector)\n return this.findElement(selector, outletName);\n }\n findAllOutlets(outletName) {\n const selector = this.getSelectorForOutletName(outletName);\n return selector ? this.findAllElements(selector, outletName) : [];\n }\n findElement(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName))[0];\n }\n findAllElements(selector, outletName) {\n const elements = this.scope.queryElements(selector);\n return elements.filter((element) => this.matchesElement(element, selector, outletName));\n }\n matchesElement(element, selector, outletName) {\n const controllerAttribute = element.getAttribute(this.scope.schema.controllerAttribute) || \"\";\n return element.matches(selector) && controllerAttribute.split(\" \").includes(outletName);\n }\n}\n\nclass Scope {\n constructor(schema, element, identifier, logger) {\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n this.containsElement = (element) => {\n return element.closest(this.controllerSelector) === this.element;\n };\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n this.outlets = new OutletSet(this.documentScope, element);\n }\n findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n findAllElements(selector) {\n return [\n ...(this.element.matches(selector) ? [this.element] : []),\n ...this.queryElements(selector).filter(this.containsElement),\n ];\n }\n queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n get controllerSelector() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n get isDocumentScope() {\n return this.element === document.documentElement;\n }\n get documentScope() {\n return this.isDocumentScope\n ? this\n : new Scope(this.schema, document.documentElement, this.identifier, this.guide.logger);\n }\n}\n\nclass ScopeObserver {\n constructor(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n start() {\n this.valueListObserver.start();\n }\n stop() {\n this.valueListObserver.stop();\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n parseValueForToken(token) {\n const { element, content: identifier } = token;\n const scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n let scope = scopesByIdentifier.get(identifier);\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n return scope;\n }\n elementMatchedValue(element, value) {\n const referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n elementUnmatchedValue(element, value) {\n const referenceCount = this.scopeReferenceCounts.get(value);\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n fetchScopesByIdentifierForElement(element) {\n let scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n return scopesByIdentifier;\n }\n}\n\nclass Router {\n constructor(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n get element() {\n return this.application.element;\n }\n get schema() {\n return this.application.schema;\n }\n get logger() {\n return this.application.logger;\n }\n get controllerAttribute() {\n return this.schema.controllerAttribute;\n }\n get modules() {\n return Array.from(this.modulesByIdentifier.values());\n }\n get contexts() {\n return this.modules.reduce((contexts, module) => contexts.concat(module.contexts), []);\n }\n start() {\n this.scopeObserver.start();\n }\n stop() {\n this.scopeObserver.stop();\n }\n loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n const module = new Module(this.application, definition);\n this.connectModule(module);\n const afterLoad = definition.controllerConstructor.afterLoad;\n if (afterLoad) {\n afterLoad(definition.identifier, this.application);\n }\n }\n unloadIdentifier(identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n this.disconnectModule(module);\n }\n }\n getContextForElementAndIdentifier(element, identifier) {\n const module = this.modulesByIdentifier.get(identifier);\n if (module) {\n return module.contexts.find((context) => context.element == element);\n }\n }\n handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n const module = this.modulesByIdentifier.get(scope.identifier);\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.connectContextForScope(scope));\n }\n disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n const scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach((scope) => module.disconnectContextForScope(scope));\n }\n}\n\nconst defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: (identifier) => `data-${identifier}-target`,\n outletAttributeForScope: (identifier, outlet) => `data-${identifier}-${outlet}-outlet`,\n keyMappings: Object.assign(Object.assign({ enter: \"Enter\", tab: \"Tab\", esc: \"Escape\", space: \" \", up: \"ArrowUp\", down: \"ArrowDown\", left: \"ArrowLeft\", right: \"ArrowRight\", home: \"Home\", end: \"End\" }, objectFromEntries(\"abcdefghijklmnopqrstuvwxyz\".split(\"\").map((c) => [c, c]))), objectFromEntries(\"0123456789\".split(\"\").map((n) => [n, n]))),\n};\nfunction objectFromEntries(array) {\n return array.reduce((memo, [k, v]) => (Object.assign(Object.assign({}, memo), { [k]: v })), {});\n}\n\nclass Application {\n constructor(element = document.documentElement, schema = defaultSchema) {\n this.logger = console;\n this.debug = false;\n this.logDebugActivity = (identifier, functionName, detail = {}) => {\n if (this.debug) {\n this.logFormattedMessage(identifier, functionName, detail);\n }\n };\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n this.actionDescriptorFilters = Object.assign({}, defaultActionDescriptorFilters);\n }\n static start(element, schema) {\n const application = new this(element, schema);\n application.start();\n return application;\n }\n async start() {\n await domReady();\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n }\n stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n register(identifier, controllerConstructor) {\n this.load({ identifier, controllerConstructor });\n }\n registerActionOption(name, filter) {\n this.actionDescriptorFilters[name] = filter;\n }\n load(head, ...rest) {\n const definitions = Array.isArray(head) ? head : [head, ...rest];\n definitions.forEach((definition) => {\n if (definition.controllerConstructor.shouldLoad) {\n this.router.loadDefinition(definition);\n }\n });\n }\n unload(head, ...rest) {\n const identifiers = Array.isArray(head) ? head : [head, ...rest];\n identifiers.forEach((identifier) => this.router.unloadIdentifier(identifier));\n }\n get controllers() {\n return this.router.contexts.map((context) => context.controller);\n }\n getControllerForElementAndIdentifier(element, identifier) {\n const context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n handleError(error, message, detail) {\n var _a;\n this.logger.error(`%s\\n\\n%o\\n\\n%o`, message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n logFormattedMessage(identifier, functionName, detail = {}) {\n detail = Object.assign({ application: this }, detail);\n this.logger.groupCollapsed(`${identifier} #${functionName}`);\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n}\nfunction domReady() {\n return new Promise((resolve) => {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => resolve());\n }\n else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n const classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce((properties, classDefinition) => {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\nfunction propertiesForClassDefinition(key) {\n return {\n [`${key}Class`]: {\n get() {\n const { classes } = this;\n if (classes.has(key)) {\n return classes.get(key);\n }\n else {\n const attribute = classes.getAttributeName(key);\n throw new Error(`Missing attribute \"${attribute}\"`);\n }\n },\n },\n [`${key}Classes`]: {\n get() {\n return this.classes.getAll(key);\n },\n },\n [`has${capitalize(key)}Class`]: {\n get() {\n return this.classes.has(key);\n },\n },\n };\n}\n\nfunction OutletPropertiesBlessing(constructor) {\n const outlets = readInheritableStaticArrayValues(constructor, \"outlets\");\n return outlets.reduce((properties, outletDefinition) => {\n return Object.assign(properties, propertiesForOutletDefinition(outletDefinition));\n }, {});\n}\nfunction propertiesForOutletDefinition(name) {\n const camelizedName = namespaceCamelize(name);\n return {\n [`${camelizedName}Outlet`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n const outletController = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (outletController) {\n return outletController;\n }\n else {\n throw new Error(`Missing \"data-controller=${name}\" attribute on outlet element for \"${this.identifier}\" controller`);\n }\n }\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n },\n },\n [`${camelizedName}Outlets`]: {\n get() {\n const outlets = this.outlets.findAll(name);\n if (outlets.length > 0) {\n return outlets\n .map((outlet) => {\n const controller = this.application.getControllerForElementAndIdentifier(outlet, name);\n if (controller) {\n return controller;\n }\n else {\n console.warn(`The provided outlet element is missing the outlet controller \"${name}\" for \"${this.identifier}\"`, outlet);\n }\n })\n .filter((controller) => controller);\n }\n return [];\n },\n },\n [`${camelizedName}OutletElement`]: {\n get() {\n const outlet = this.outlets.find(name);\n if (outlet) {\n return outlet;\n }\n else {\n throw new Error(`Missing outlet element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${camelizedName}OutletElements`]: {\n get() {\n return this.outlets.findAll(name);\n },\n },\n [`has${capitalize(camelizedName)}Outlet`]: {\n get() {\n return this.outlets.has(name);\n },\n },\n };\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n const targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce((properties, targetDefinition) => {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\nfunction propertiesForTargetDefinition(name) {\n return {\n [`${name}Target`]: {\n get() {\n const target = this.targets.find(name);\n if (target) {\n return target;\n }\n else {\n throw new Error(`Missing target element \"${name}\" for \"${this.identifier}\" controller`);\n }\n },\n },\n [`${name}Targets`]: {\n get() {\n return this.targets.findAll(name);\n },\n },\n [`has${capitalize(name)}Target`]: {\n get() {\n return this.targets.has(name);\n },\n },\n };\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n const valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n const propertyDescriptorMap = {\n valueDescriptorMap: {\n get() {\n return valueDefinitionPairs.reduce((result, valueDefinitionPair) => {\n const valueDescriptor = parseValueDefinitionPair(valueDefinitionPair, this.identifier);\n const attributeName = this.data.getAttributeNameForKey(valueDescriptor.key);\n return Object.assign(result, { [attributeName]: valueDescriptor });\n }, {});\n },\n },\n };\n return valueDefinitionPairs.reduce((properties, valueDefinitionPair) => {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\nfunction propertiesForValueDefinitionPair(valueDefinitionPair, controller) {\n const definition = parseValueDefinitionPair(valueDefinitionPair, controller);\n const { key, name, reader: read, writer: write } = definition;\n return {\n [name]: {\n get() {\n const value = this.data.get(key);\n if (value !== null) {\n return read(value);\n }\n else {\n return definition.defaultValue;\n }\n },\n set(value) {\n if (value === undefined) {\n this.data.delete(key);\n }\n else {\n this.data.set(key, write(value));\n }\n },\n },\n [`has${capitalize(name)}`]: {\n get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n },\n },\n };\n}\nfunction parseValueDefinitionPair([token, typeDefinition], controller) {\n return valueDescriptorForTokenAndTypeDefinition({\n controller,\n token,\n typeDefinition,\n });\n}\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n case Boolean:\n return \"boolean\";\n case Number:\n return \"number\";\n case Object:\n return \"object\";\n case String:\n return \"string\";\n }\n}\nfunction parseValueTypeDefault(defaultValue) {\n switch (typeof defaultValue) {\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n return \"string\";\n }\n if (Array.isArray(defaultValue))\n return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\")\n return \"object\";\n}\nfunction parseValueTypeObject(payload) {\n const typeFromObject = parseValueTypeConstant(payload.typeObject.type);\n if (!typeFromObject)\n return;\n const defaultValueType = parseValueTypeDefault(payload.typeObject.default);\n if (typeFromObject !== defaultValueType) {\n const propertyPath = payload.controller ? `${payload.controller}.${payload.token}` : payload.token;\n throw new Error(`The specified default value for the Stimulus Value \"${propertyPath}\" must match the defined type \"${typeFromObject}\". The provided default value of \"${payload.typeObject.default}\" is of type \"${defaultValueType}\".`);\n }\n return typeFromObject;\n}\nfunction parseValueTypeDefinition(payload) {\n const typeFromObject = parseValueTypeObject({\n controller: payload.controller,\n token: payload.token,\n typeObject: payload.typeDefinition,\n });\n const typeFromDefaultValue = parseValueTypeDefault(payload.typeDefinition);\n const typeFromConstant = parseValueTypeConstant(payload.typeDefinition);\n const type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type)\n return type;\n const propertyPath = payload.controller ? `${payload.controller}.${payload.typeDefinition}` : payload.token;\n throw new Error(`Unknown value type \"${propertyPath}\" for \"${payload.token}\" value`);\n}\nfunction defaultValueForDefinition(typeDefinition) {\n const constant = parseValueTypeConstant(typeDefinition);\n if (constant)\n return defaultValuesByType[constant];\n const defaultValue = typeDefinition.default;\n if (defaultValue !== undefined)\n return defaultValue;\n return typeDefinition;\n}\nfunction valueDescriptorForTokenAndTypeDefinition(payload) {\n const key = `${dasherize(payload.token)}-value`;\n const type = parseValueTypeDefinition(payload);\n return {\n type,\n key,\n name: camelize(key),\n get defaultValue() {\n return defaultValueForDefinition(payload.typeDefinition);\n },\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(payload.typeDefinition) !== undefined;\n },\n reader: readers[type],\n writer: writers[type] || writers.default,\n };\n}\nconst defaultValuesByType = {\n get array() {\n return [];\n },\n boolean: false,\n number: 0,\n get object() {\n return {};\n },\n string: \"\",\n};\nconst readers = {\n array(value) {\n const array = JSON.parse(value);\n if (!Array.isArray(array)) {\n throw new TypeError(`expected value of type \"array\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(array)}\"`);\n }\n return array;\n },\n boolean(value) {\n return !(value == \"0\" || String(value).toLowerCase() == \"false\");\n },\n number(value) {\n return Number(value);\n },\n object(value) {\n const object = JSON.parse(value);\n if (object === null || typeof object != \"object\" || Array.isArray(object)) {\n throw new TypeError(`expected value of type \"object\" but instead got value \"${value}\" of type \"${parseValueTypeDefault(object)}\"`);\n }\n return object;\n },\n string(value) {\n return value;\n },\n};\nconst writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON,\n};\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\nfunction writeString(value) {\n return `${value}`;\n}\n\nclass Controller {\n constructor(context) {\n this.context = context;\n }\n static get shouldLoad() {\n return true;\n }\n static afterLoad(_identifier, _application) {\n return;\n }\n get application() {\n return this.context.application;\n }\n get scope() {\n return this.context.scope;\n }\n get element() {\n return this.scope.element;\n }\n get identifier() {\n return this.scope.identifier;\n }\n get targets() {\n return this.scope.targets;\n }\n get outlets() {\n return this.scope.outlets;\n }\n get classes() {\n return this.scope.classes;\n }\n get data() {\n return this.scope.data;\n }\n initialize() {\n }\n connect() {\n }\n disconnect() {\n }\n dispatch(eventName, { target = this.element, detail = {}, prefix = this.identifier, bubbles = true, cancelable = true } = {}) {\n const type = prefix ? `${prefix}:${eventName}` : eventName;\n const event = new CustomEvent(type, { detail, bubbles, cancelable });\n target.dispatchEvent(event);\n return event;\n }\n}\nController.blessings = [\n ClassPropertiesBlessing,\n TargetPropertiesBlessing,\n ValuePropertiesBlessing,\n OutletPropertiesBlessing,\n];\nController.targets = [];\nController.outlets = [];\nController.values = {};\n\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, SelectorObserver, StringMapObserver, TokenListObserver, ValueListObserver, add, defaultSchema, del, fetch, prune };\n","import { Application } from \"@hotwired/stimulus\"\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.debug = false\nwindow.Stimulus = application\n\nexport { application }\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass ApiTokensController extends Controller {\n static targets = ['apiAccessSection']\n static classes = ['loading']\n\n generate(event) {\n event.target.classList.add(this.loadingClass);\n\n axios.post(event.target.dataset.url).then((response) => {\n this.apiAccessSectionTarget.innerHTML = response.data;\n })\n };\n\n regenerate(event) {\n let answer = confirm('Anything using the existing token will no longer be able to access the API. Are you sure?');\n\n if (answer === true) {\n event.target.classList.add(this.loadingClass);\n\n axios.put(event.target.dataset.url).then((response) => {\n this.apiAccessSectionTarget.innerHTML = response.data;\n })\n }\n };\n\n delete(event) {\n let answer = confirm('Anything using the token will no longer be able to access the API. Are you sure?');\n\n if (answer == true) {\n event.target.classList.add(this.loadingClass);\n\n axios.delete(event.target.dataset.url).then((response) => {\n this.apiAccessSectionTarget.innerHTML = response.data;\n })\n }\n };\n}\n\nexport default ApiTokensController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = ['pointer', 'description', 'child'];\n\n static values = {\n expandedClass: 'fa-angle-up',\n collapsedClass: 'fa-angle-down',\n hiddenBlockClass: 'hidden-block'\n }\n\n expanded = false;\n\n toggle_expand_all() {\n if (this.expanded) {\n this.setCollapsed();\n } else {\n this.setExpanded();\n }\n\n this.childTargets.forEach(child => {\n this.dispatch(this.expanded ? \"expanded_all\" : \"collapsed_all\", { target: child })\n })\n }\n\n pointerTargetConnected(element) {\n element.classList.add(this.expanded ? this.expandedClassValue : this.collapsedClassValue);\n }\n\n expandedRow() {\n let expandedDescriptionsCount = 0;\n\n this.descriptionTargets.forEach(function(target) {\n if (!target.classList.contains('hidden-block')) expandedDescriptionsCount++;\n })\n\n if (expandedDescriptionsCount > 0) {\n this.setExpanded();\n } else {\n this.setCollapsed();\n }\n }\n\n setExpanded() {\n this.pointerTarget.classList.replace(this.collapsedClassValue, this.expandedClassValue);\n this.expanded = true;\n }\n\n setCollapsed() {\n this.pointerTarget.classList.replace(this.expandedClassValue, this.collapsedClassValue);\n this.expanded = false;\n }\n}\n","export default \"data:image/png;base64,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\"","import React, {useState, useRef, useEffect} from \"react\";\nimport moment from \"moment/moment\";\nimport Calendar from \"src/components/MegaFilter/TimePeriods/Calendar\";\nimport {Popover} from \"react-tiny-popover\";\n\nfunction isDateInMonth(dateValue, dateMonth) {\n // Ensure the inputs are Date objects\n const givenDate = new Date(dateValue);\n const monthToCheck = new Date(dateMonth);\n\n // Calculate the start and end of the month\n const startOfMonth = new Date(monthToCheck.getFullYear(), monthToCheck.getMonth(), 1);\n const endOfMonth = new Date(monthToCheck.getFullYear(), monthToCheck.getMonth() + 1, 0);\n\n // Check if the given date is within the start and end of the month\n return givenDate >= startOfMonth && givenDate <= endOfMonth;\n}\n\nexport default ({ value, view, minDate, maxDate, onChange, disabled, className }) => {\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n const [dateMonth, setDateMonth] = useState(moment(value).toDate());\n\n const ref = useRef();\n\n useEffect(() => {\n if (!isDateInMonth(value, dateMonth)) setDateMonth(value);\n }, [value])\n\n const handleChangeValue = (value) => {\n onChange(moment(value).toDate());\n }\n\n if (view === 'block') {\n return <Calendar\n className={className}\n dateMonth={dateMonth}\n minDate={moment(minDate)}\n maxDate={moment(maxDate)}\n setDateMonth={setDateMonth}\n onDayClick={(d) => handleChangeValue(d)}\n selectedRange={value}\n />\n }\n\n return (\n <Popover\n isOpen={isPopoverOpen}\n positions={['bottom']}\n align={'center'}\n disableReposition={true}\n onClickOutside={() => setIsPopoverOpen(!isPopoverOpen)}\n ref={ref}\n padding={6}\n content={(\n <div className=\"calendar-block\" style={{ background: '#fff', border: '1px solid #dbdbdb' }}>\n <Calendar\n className={className}\n dateMonth={dateMonth}\n minDate={moment(minDate)}\n maxDate={moment(maxDate)}\n setDateMonth={setDateMonth}\n onDayClick={(d) => { handleChangeValue(d); setIsPopoverOpen(false) }}\n selectedRange={value}\n />\n </div>\n )}\n >\n <div style={{position: 'relative'}}>\n <input type='text'\n ref={ref}\n readOnly={true}\n onClick={() => setIsPopoverOpen(true)}\n disabled={disabled}\n value={moment(value).format('ddd, DD MMM YYYY')}\n className='string optional form-control'/>\n </div>\n </Popover>\n );\n}","import React from \"react\";\nimport calendarIco from './calend-icon.png';\nimport InlineDatepicker from \"src/components/LegacyDatepicker/InlineDatepicker\";\n\nexport default ({ eventDate, minEventDate, maxEventDate, onChange }) => (\n <div className='calendar-block'>\n <h3>\n <img src={calendarIco}/>\n Calendar\n </h3>\n\n <InlineDatepicker\n value={eventDate}\n minDate={minEventDate}\n maxDate={maxEventDate}\n onChange={onChange}\n view='block'\n />\n </div>\n);","import React, { useMemo } from \"react\";\n\nexport default ({ day, onChangeDay }) => {\n const dayNames = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\n const days = dayNames.map((day, index) => {\n return { id: (index+1)%7, name: day };\n });\n\n return (\n <div className=\"form-time-wrapper\">\n <div className=\"form-group select optional booking_day\">\n <label className=\"control-label select optional\">Day</label>\n <select className=\"form-control select optional day\"\n name=\"booking[day]\"\n value={day}\n onChange={(e) => onChangeDay(e.target.value)}\n style={{ width: 70 }}>\n {days.map((entry, i) => <option key={entry.id} value={entry.id}>{entry.name}</option>)}\n </select>\n </div>\n </div>\n )\n}\n","import React from \"react\";\n\nexport default ({ facilities, value, onChange }) => (\n <div className=\"form-group select optional booking_facility_id \">\n <label className=\"control-label select optional\">Facility</label>\n <select className='form-control select optional facility_id'\n value={value || ''}\n name=\"booking[facility_id]\"\n onChange={onChange}>\n {facilities.map((item, i) => (\n <option key={i} value={item.id}>\n {item.title}{item.soft_deleted ? ' (deleted)' : ''}\n </option>\n ))}\n </select>\n </div>\n)\n","import React from \"react\";\nimport InlineDatepicker from \"src/components/LegacyDatepicker/InlineDatepicker\";\n\nexport default ({ eventDate, minEventDate, maxEventDate, onChange }) => (\n <div className=\"form-group string optional event_date vert-offset-bottom-10\">\n <label className=\"string optional control-label\">Date</label>\n\n <InlineDatepicker\n value={eventDate}\n minDate={minEventDate}\n maxDate={maxEventDate}\n onChange={onChange}\n />\n </div>\n);\n","import React from 'react';\n\nexport default ({ periods, startTime, endTime, onChangeStartTime, onChangeEndTime }) => {\n let startPeriods = [];\n let endPeriods = [];\n\n if (Array.isArray(periods.list) && periods.list.length > 0) {\n startPeriods = periods.list;\n endPeriods = periods.list;\n }\n\n const dropdownsDisabled =\n periods?.booking_day_rate_enabled ||\n startPeriods.length === 0 ||\n endPeriods.length === 0;\n\n return (\n <div className='periods'>\n <div className=\"form-group select optional order_booking_start_time\">\n <label className=\"control-label select optional\">Start</label>\n <select className=\"form-control select optional start_time\"\n disabled={dropdownsDisabled}\n value={startTime || ''}\n onChange={(e) => onChangeStartTime(e.target.value)}>\n {startPeriods.map((item, i) => <option key={i} value={item.start_time}>{item.start_time}</option>)}\n </select>\n </div>\n <div className=\"hyphen\">—</div>\n <div className=\"form-group select optional order_booking_end_time\">\n <label className=\"control-label select optional\">End</label>\n <select className=\"form-control select optional end_time\"\n value={endTime || ''}\n disabled={dropdownsDisabled}\n onChange={(e) => onChangeEndTime(e.target.value)}>\n {endPeriods.map((item, i) => <option key={i} value={item.end_time}>{item.end_time}</option>)}\n </select>\n </div>\n </div>\n )\n}","import React from \"react\";\n\nexport default ({ bookingOptions, value, onChange }) => (\n <div className=\"form-group select optional booking_booking_option_id\">\n <label className=\"control-label select optional\">Booking option</label>\n <select className=\"form-control select optional booking_options\"\n value={value || ''}\n name=\"booking[booking_option_id]\"\n onChange={onChange}>\n {bookingOptions.map((item, i) => <option key={i} value={item.id}>{item.title}{item.deleted ? ' (deleted)' : ''}</option>)}\n </select>\n </div>\n)","import React from \"react\";\n\nexport default ({ checked, onChange }) => (\n <div className=\"form-group multiple-vat-field\">\n <label className=\"control-label\">VAT</label>\n <div className=\"multi-vat-checkbox\">\n <input type=\"checkbox\" checked={checked} onChange={onChange}/>\n </div>\n </div>\n);","import React from \"react\";\nimport { OverlayTrigger, Popover } from 'react-bootstrap';\n\nexport default ({ title,\n description,\n pricing_calculation_type,\n checked,\n mandatory,\n persons,\n price_adjustment,\n price_adjustment_reason,\n showPriceAdjustment,\n onChangeChecked,\n onPriceAdjustmentChange,\n onPriceAdjustmentReasonChange,\n onChangePersons }) => {\n\n const handleChangeChecked = (e) => {\n const checked = e.target.checked;\n onChangeChecked(checked);\n }\n\n const handleChangePersons = (e) => {\n const value = e.target.value;\n onChangePersons(value);\n }\n\n return (\n <div className='item item-extra'>\n <div className='extra-info'>\n <label className='checkbox'>\n <input type='checkbox'\n checked={checked}\n disabled={mandatory}\n onChange={handleChangeChecked}/>\n\n <span className='title'>{title}</span>\n\n {pricing_calculation_type === 'person' &&\n <input className='persons-input'\n size={5}\n type='text'\n disabled={!checked}\n value={persons}\n onChange={handleChangePersons}/>\n }\n </label>\n {description !== null &&\n <OverlayTrigger\n trigger={['hover', 'focus']}\n placement=\"right\"\n overlay={<Popover id={`extra_#{id}`}>{description}</Popover>}>\n <div className='info-icon list-extra-description-icon'/>\n </OverlayTrigger>\n }\n </div>\n {showPriceAdjustment &&\n <div className='form-inline extra-adjusment'>\n <div className='form-group extra-price-adjustment-input'>\n <label className='control-label extra-pa-label-item'>Price adjustment (£)</label>\n <input\n className='form-control numeric decimal optional'\n value={price_adjustment || ''}\n onChange={e => onPriceAdjustmentChange(e.target.value)}\n type='number'\n disabled={!checked}\n />\n </div>\n <div className='form-group'>\n <label className='string optional control-label extra-pa-label-item'>Reason</label>\n <input\n className='form-control extra-pa-reason-input'\n value={price_adjustment_reason || ''}\n onChange={e => onPriceAdjustmentReasonChange(e.target.value)}\n disabled={!checked}\n />\n </div>\n </div>\n }\n </div>\n )\n};\n","import React from \"react\";\nimport Extra from \"./Extra\";\n\nexport default ({ extras, handleChangeChecked, handleChangePersons, handlePriceAdjustmentChange, handlePriceAdjustmentReasonChange, showPriceAdjustment }) => {\n return <>\n {extras.map((extra) =>\n <Extra\n key={extra.id}\n {...extra}\n onChangeChecked={(checked) => handleChangeChecked(extra.id, checked)}\n onChangePersons={(value) => handleChangePersons(extra.id, value)}\n onPriceAdjustmentChange={(value) => handlePriceAdjustmentChange(extra.id, value)}\n onPriceAdjustmentReasonChange={(value) => handlePriceAdjustmentReasonChange(extra.id, value)}\n showPriceAdjustment={showPriceAdjustment}\n />\n )}\n </>\n}\n","import React, { useState, useEffect } from \"react\";\nimport List from './List';\nimport './styles.scss';\n\nfunction prepareExtras(extras, bookingsExtras) {\n return extras.map(extra => {\n let dbe = bookingsExtras.find(be => be.extra_id === extra.id);\n\n extra.checked = dbe ? (dbe.hasOwnProperty('checked') ? dbe.checked : true) : false ;\n extra.booking_extra_id = dbe?.id;\n extra.persons = dbe?.persons || '';\n extra.price_adjustment = dbe?.price_adjustment\n extra.price_adjustment_reason = dbe?.price_adjustment_reason\n\n return extra\n });\n}\n\nfunction getLastIndexChecked(memoExtras) {\n let lastIndexChecked = -1;\n\n for (let i = 0; i < memoExtras.length; i++) {\n if (memoExtras[i].checked) {\n lastIndexChecked = i;\n }\n }\n\n return lastIndexChecked;\n}\n\nfunction getDefaultShowAll(extras, bookingsExtras) {\n return getLastIndexChecked(prepareExtras(extras, bookingsExtras)) > 2\n}\n\nexport default ({ extras, bookingsExtras, setBookingsExtras, showPriceAdjustment }) => {\n const [showAllExtras, setShowAllExtras] = useState(getDefaultShowAll(extras, bookingsExtras));\n\n useEffect(() => {\n setShowAllExtras(getDefaultShowAll(extras, bookingsExtras))\n }, [extras]);\n\n const handleChangeChecked = (extraId, checked) => {\n const newBookingsExtras = [...bookingsExtras];\n const index = newBookingsExtras.findIndex(el => el.extra_id === extraId);\n\n if (checked) {\n if (index > -1) {\n newBookingsExtras[index].checked = true;\n } else {\n newBookingsExtras.push({ id: '', extra_id: extraId, persons: '', checked: true })\n }\n } else {\n if (index > -1) newBookingsExtras[index].checked = false;\n }\n\n setBookingsExtras(newBookingsExtras);\n }\n\n const handleChangePersons = (extraId, value) => {\n const newBookingsExtras = [...bookingsExtras];\n const index = newBookingsExtras.findIndex(el => el.extra_id === extraId);\n if (index > -1) newBookingsExtras[index].persons = value;\n setBookingsExtras(newBookingsExtras);\n }\n\n const handlePriceAdjustmentChange = (extraId, value) => {\n const newBookingsExtras = [...bookingsExtras];\n let extra = newBookingsExtras.find(el => el.extra_id === extraId)\n extra['price_adjustment'] = value\n setBookingsExtras(newBookingsExtras);\n }\n\n const handlePriceAdjustmentReasonChange = (extraId, value) => {\n const newBookingsExtras = [...bookingsExtras];\n let extra = newBookingsExtras.find(el => el.extra_id === extraId)\n extra['price_adjustment_reason'] = value\n setBookingsExtras(newBookingsExtras)\n }\n\n const memoExtras = prepareExtras(extras, bookingsExtras);\n const visibleExtras = showAllExtras ? memoExtras : memoExtras.slice(0, 3);\n const lastIndexChecked = getLastIndexChecked(memoExtras);\n\n if (memoExtras !== undefined && memoExtras.length === 0) return null;\n\n return (\n <div className='form-group select optional bookings_extras'>\n <div className='extras-section-labels'>\n <div className=\"extra-label\">\n <label className='string optional control-label'>Extras</label>\n </div>\n {showPriceAdjustment &&\n <div className=\"extras-adjustments-labels\">\n <label className='control-label extra-adjustment-price-label'>Price adjustment (£)</label>\n <label className='string optional control-label'>Reason</label>\n </div>\n }\n </div>\n\n <div className='react-extras-dropdown'>\n <List\n extras={visibleExtras}\n handleChangeChecked={handleChangeChecked}\n handleChangePersons={handleChangePersons}\n handlePriceAdjustmentChange={handlePriceAdjustmentChange}\n handlePriceAdjustmentReasonChange={handlePriceAdjustmentReasonChange}\n showPriceAdjustment={showPriceAdjustment}\n />\n\n {memoExtras && memoExtras.length > 3 ?\n <button type=\"button\"\n disabled={lastIndexChecked > 2}\n className='btn btn-default button-extras-show-more'\n onClick={() => setShowAllExtras(!showAllExtras)}>\n {showAllExtras ? 'Show less' : 'Show more'}\n </button>\n : null}\n </div>\n </div>\n )\n}\n","import React from \"react\";\n\nexport default ({ value, onChange}) => (\n <div className=\"form-group string optional booking_price_adjustment_reason\">\n <label className=\"control-label string optional\">Reason</label>\n <input className=\"form-control string optional facility_id\"\n name=\"booking[price_adjustment_reason]\"\n style={{ width: '213' }}\n type=\"text\"\n value={value}\n onChange={onChange}\n />\n </div>\n)","import React from \"react\";\n\nexport default ({ value, onChange }) => (\n <div className=\"form-group decimal optional booking_price_adjustment\">\n <label className=\"control-label decimal optional\">\n Price adjustment (£)\n {/*= \" \".html_safe*/}\n {/*= multiple ? render('orders/multiple_line_adjustment_info') : render('orders/line_adjustment_info')*/}\n </label>\n <input className=\"form-control numeric decimal optional facility_id\"\n name=\"booking[price_adjustment]\"\n step=\"any\"\n style={{ width: 80 }}\n type=\"number\"\n value={value}\n onChange={onChange}/>\n </div>\n)","import React from \"react\";\n\nexport default ({ errors }) => {\n return (\n <div>\n {errors.map((error, index) =>\n <div key={index} className='has-error'>\n <span className='help-block'>\n {error}\n </span>\n </div>\n )}\n </div>\n )\n};","import axios from \"axios\";\nimport moment from \"moment/moment\";\n\nclass Api {\n bookingPromise(url) {\n return axios({ method: 'GET', url: url });\n }\n\n venuePromise(venueId, id, userId) {\n const url = `venues/${venueId}/facilities?booking_id=${id}&customer_id=${userId}`;\n const httpParams = { method: 'GET', url: url };\n return axios(httpParams)\n }\n\n fetchPeriods(bookingOptionKey, eventDate, bookingId, facilityKey, internalOrderUuid) {\n const url = `/booking_options/${bookingOptionKey}'/list`;\n\n const params = {\n event_date: moment(eventDate).format('D.M.YYYY'),\n except_booking_id: bookingId,\n facility_key: facilityKey,\n internal_order_uuid: internalOrderUuid,\n notice_page: 'edit_booking'\n }\n\n return axios({ method: 'GET', url: url, params: params });\n }\n\n fetchFacility(facilityKey, userId, bookingId) {\n const url = `facilities/${facilityKey}/dropdowns`;\n const params = { user_id: userId, booking_id: bookingId };\n\n return axios({ method: 'GET', url: url, params: params });\n }\n}\n\nexport default new Api;","import React, { useEffect, useRef } from \"react\";\nimport classNames from 'classnames';\n\nconst statusOrPrice = function(item) {\n if (!item.available_period) return \"UNAVAILABLE\";\n if (item.closed) return \"CLOSED\";\n if (!item.time_available) return \"BUSY\";\n\n const settings = {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n style: 'decimal',\n currency: 'GBP'\n };\n\n return `£ ${new Intl.NumberFormat('en-UK', settings).format(item.price)}`;\n}\n\nconst Notice = ({ notice }) => (\n <div className='time-block'>\n <div className='closed'>\n <span className='periods_notice_text'>\n {notice.text}\n </span>\n <br/>\n <br/>\n <span className='periods_notice_subtext'>\n {notice.subtext}\n </span>\n </div>\n </div>\n);\n\nexport default ({ periods, startTime, endTime, onChangeStartTime, onChangeEndTime }) => {\n const startTimeIndex = (periods.list || []).findIndex(element => element.start_time === startTime);\n const endTimeIndex = (periods.list || []).findIndex(element => element.end_time === endTime);\n\n const clickItem = function(period, index) {\n if (periods.booking_day_rate_enabled) return false;\n\n const arr = [startTimeIndex, endTimeIndex, index]\n\n if (arr.every( (val, i, arr) => val === arr[0])) return false;\n\n if (index === -1) {\n return true;\n } else if (index === startTimeIndex) {\n const n = periods.list[index + 1]\n if (n) onChangeStartTime(n.start_time);\n } else if (index === endTimeIndex) {\n const p = periods.list[index - 1];\n if (p) onChangeEndTime(p.end_time);\n } else if (index === startTimeIndex - 1) {\n onChangeStartTime(period.start_time);\n } else if (index === endTimeIndex + 1) {\n onChangeEndTime(period.end_time);\n } else {\n if (startTimeIndex + 1 <= index && endTimeIndex - 1 >= index) {\n return false;\n } else {\n onChangeStartTime(period.start_time);\n onChangeEndTime(period.end_time);\n }\n }\n }\n\n if (periods.type === 'notice') return <Notice notice={periods.notice}/>;\n\n return (\n <div className='time-block'>\n {periods.list && periods.list.map((period, index) => {\n const isSelected = index >= startTimeIndex && index <= endTimeIndex;\n const isDisabled = !period.time_available || period.closed;\n\n return (\n <label key={period.period}\n onClick={() => clickItem(period, index)}\n className={classNames(['item', { 'disabled': isDisabled, 'green': isSelected }])}>\n {period.start_time} - {period.end_time}\n <span>{statusOrPrice(period)}</span>\n </label>\n )\n })}\n </div>\n )\n}","import React from 'react';\n\nexport default React.forwardRef(({ forwardedRef, title, loading, onSendForm, children, continueButtonDisabled }, ref) => (\n <div id='editBookingModal' className=\"modal fade\" aria-labelledby='modalLabel' role='dialog' tabIndex='-1' ref={ref}>\n <div className='modal-dialog' role='document'>\n <form className=\"new_booking\">\n <div className='modal-content'>\n <div className='modal-header'>\n <button className='close' aria-label='Close' data-dismiss='modal' type='button'>\n <span aria-hidden='true'> × </span>\n </button>\n <h4 className='modal-title'>{title}</h4>\n </div>\n <div className='modal-body'>\n {loading === 'pending' && <div className='text-center' style={{ lineHeight: 10 }}>Loading...</div>}\n {loading === 'succeeded' && children}\n </div>\n {loading === 'succeeded' &&\n <div className='modal-footer'>\n <div className='pull-right btn-group-wrapper'>\n <a className='btn btn-default' data-dismiss='modal'>\n Cancel\n </a>\n\n <button type='button'\n disabled={continueButtonDisabled}\n className='btn btn-primary submit-btn'\n onClick={onSendForm}>\n Continue\n </button>\n </div>\n </div>\n }\n </div>\n </form>\n </div>\n </div>\n));\n","import moment from \"moment/moment\";\n\nexport function reassignStartAndEndTime(periods, prev, init = false) {\n if (periods.type !== 'list') return { startTime: null, endTime: null };\n if (periods.booking_day_rate_enabled) return bookingDayRateAvailablePeriods(periods);\n\n const list = periods.list;\n const startTimes = list.map(period => period.start_time);\n const endTimes = list.map(period => period.end_time);\n if (startTimes.includes(prev.startTime) && endTimes.includes(prev.endTime)) return prev;\n\n const converter = { 60: 1, 30: 2, 15: 4 }\n const selectPeriods = converter[periods.period_minutes];\n\n if (init) { // do we really want to use init?\n const endTime = endTimes[selectPeriods - 1] || endTimes[0];\n return { startTime: startTimes[0], endTime: endTime }\n } else {\n if (prev.startTime === null && prev.endTime === null) {\n // From notice to list\n const endTime = endTimes[selectPeriods - 1] || endTimes[0];\n return { startTime: startTimes[0], endTime: endTime }\n } else {\n const momentPrevStartTime = moment(prev.startTime, 'HH:mm');\n const momentPrevEndTime = moment(prev.endTime, 'HH:mm');\n\n const diff = momentPrevEndTime.diff(momentPrevStartTime, 'minutes');\n const selectedItems = Math.ceil(diff / periods.period_minutes);\n\n const startList = startTimes.map((time, index) => prepareItem(index, time, momentPrevStartTime)).sort(sortItems)\n\n const startItem = startList[0];\n const maxEndIndex = endTimes.length - 1;\n\n let startTimeIndex = startItem.index;\n let endTimeIndex = startItem.index + selectedItems - 1;\n\n if (endTimeIndex > maxEndIndex) endTimeIndex = maxEndIndex;\n\n return { startTime: startTimes[startTimeIndex], endTime: endTimes[endTimeIndex] }\n }\n }\n}\n\nfunction bookingDayRateAvailablePeriods(periods) {\n const availablePeriods = periods.list.filter(period => !period.closed);\n const startTimes = availablePeriods.map(period => period.start_time);\n const endTimes = availablePeriods.map(period => period.end_time);\n\n return { startTime: startTimes[0], endTime: endTimes[endTimes.length - 1] }\n}\n\nfunction prepareItem(index, time, momentStartTime) {\n const momentTime = moment(time, 'HH:mm');\n const diff = momentTime.diff(momentStartTime, 'minutes');\n return {\n index: index,\n time: time,\n priority: diff < 0 ? 1 : 0,\n momentTime: momentTime,\n diff: Math.abs(diff)\n }\n}\n\nfunction sortItems(a, b) {\n return a.diff - b.diff || a.priority - b.priority;\n}","class ProcessingModal {\n static DEFAULT_DELAY = 2000;\n\n constructor() {\n this.timeout = null;\n }\n\n show(delay = null) {\n if (delay === 0) {\n $(this.modal).modal('show');\n } else {\n this.timeout = setTimeout(() => {\n $(this.modal).modal('show');\n }, delay || this.constructor.DEFAULT_DELAY);\n }\n }\n\n hide() {\n clearTimeout(this.timeout);\n $(this.modal).modal('hide');\n }\n\n toggle(showProcessing) {\n if (showProcessing) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n get modal() {\n return document.getElementById('processing_modal')\n }\n}\n\nexport default ProcessingModal;\n\nexport const processingModal = new ProcessingModal();\n","// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n","import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The IANA name of this zone.\n * Defaults to `name` if not overwritten by a subclass.\n * @abstract\n * @type {string}\n */\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new SystemZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /**\n * The type of zone. `iana` for all instances of `IANAZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"iana\";\n }\n\n /**\n * The name of this zone (i.e. the IANA zone name).\n * @override\n * @type {string}\n */\n get name() {\n return this.zoneName;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns false for all IANA zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return false;\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @override\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /**\n * Return whether this Zone is valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return this.valid;\n }\n}\n","import { hasLocaleWeekInfo, hasRelative, padStart, roundTo, validateWeekSettings } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache[locString];\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n weekInfoCache[locString] = data;\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human-readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n\n toString() {\n return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /**\n * The type of zone. `fixed` for all instances of `FixedOffsetZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"fixed\";\n }\n\n /**\n * The name of this zone.\n * All fixed zones' names always start with \"UTC\" (plus optional offset)\n * @override\n * @type {string}\n */\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /**\n * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn`\n *\n * @override\n * @type {string}\n */\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /**\n * Returns the offset's common name at the specified timestamp.\n *\n * For fixed offset zones this equals to the zone name.\n * @override\n */\n offsetName() {\n return this.name;\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns true for all fixed offset zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return true;\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n *\n * For fixed offset zones, this is constant and does not depend on a timestamp.\n * @override\n * @return {number}\n */\n offset() {\n return this.fixed;\n }\n\n /**\n * Return whether this Zone is equal to another zone (i.e. also fixed and same offset)\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /**\n * Return whether this Zone is valid:\n * All fixed offset zones are valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\nimport SystemZone from \"../zones/systemZone.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|å››|五|å…|七|å…«|ä¹]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\n// cache of {numberingSystem: {append: regex}}\nlet digitRegexCache = {};\nexport function resetDigitRegexCache() {\n digitRegexCache = {};\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n const ns = numberingSystem || \"latn\";\n\n if (!digitRegexCache[ns]) {\n digitRegexCache[ns] = {};\n }\n if (!digitRegexCache[ns][append]) {\n digitRegexCache[ns][append] = new RegExp(`${numberingSystems[ns]}${append}`);\n }\n\n return digitRegexCache[ns][append];\n}\n","import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport DateTime from \"./datetime.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport { validateWeekSettings } from \"./impl/util.js\";\nimport { resetDigitRegexCache } from \"./impl/digits.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century\n * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n DateTime.resetCache();\n resetDigitRegexCache();\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger,\n isUndefined,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nexport function dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nexport function isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nexport function usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nexport function hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\nimport Settings from \"../settings.js\";\nimport { dayOfWeek, isoWeekdayToLocal } from \"./conversions.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nexport function weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\n/**\n * Returns the offset's value as a string\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hourCycle\",\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = (lildur) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n isUndefined,\n parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\nimport DateTime from \"./datetime.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID;\n\n const l = orderedUnits\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport * as Formats from \"./impl/formats.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `<start>/<end>`, `<start>/<duration>`, and `<duration>/<end>` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasLocaleWeekInfo, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> 'Ù¡'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'RabiÊ» I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nexport function expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport class TokenParser {\n constructor(locale, format) {\n this.locale = locale;\n this.format = format;\n this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale);\n this.units = this.tokens.map((t) => unitForToken(t, locale));\n this.disqualifyingUnit = this.units.find((t) => t.invalidReason);\n\n if (!this.disqualifyingUnit) {\n const [regexString, handlers] = buildRegex(this.units);\n this.regex = RegExp(regexString, \"i\");\n this.handlers = handlers;\n }\n }\n\n explainFromTokens(input) {\n if (!this.isValid) {\n return { input, tokens: this.tokens, invalidReason: this.invalidReason };\n } else {\n const [rawMatches, matches] = match(input, this.regex, this.handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return {\n input,\n tokens: this.tokens,\n regex: this.regex,\n rawMatches,\n matches,\n result,\n zone,\n specificOffset,\n };\n }\n }\n\n get isValid() {\n return !this.disqualifyingUnit;\n }\n\n get invalidReason() {\n return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null;\n }\n}\n\nexport function explainFromTokens(locale, input, format) {\n const parser = new TokenParser(locale, format);\n return parser.explainFromTokens(input);\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nexport function formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n","import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS,\n padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport {\n parseFromTokens,\n explainFromTokens,\n formatOptsToTokens,\n expandMacroTokens,\n TokenParser,\n} from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData,\n usesLocalWeekValues,\n isoWeekdayToLocal,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// cache offsets for zones based on the current timestamp when this function is\n// first called. When we are handling a datetime from components like (year,\n// month, day, hour) in a time zone, we need a guess about what the timezone\n// offset is so that we can convert into a UTC timestamp. One way is to find the\n// offset of now in the zone. The actual date may have a different offset (for\n// example, if we handle a date in June while we're in December in a zone that\n// observes DST), but we can check and adjust that.\n//\n// When handling many dates, calculating the offset for now every time is\n// expensive. It's just a guess, so we can cache the offset to use even if we\n// are right on a time change boundary (we'll just correct in the other\n// direction). Using a timestamp from first read is a slight optimization for\n// handling dates close to the current date, since those dates will usually be\n// in the same offset (we could set the timestamp statically, instead). We use a\n// single timestamp for all zones to make things a bit more predictable.\n//\n// This is safe for quickDT (used by local() and utc()) because we don't fill in\n// higher-order units from tsNow (as we do in fromObject, this requires that\n// offset is calculated from tsNow).\nfunction guessOffsetForZone(zone) {\n if (!zoneOffsetGuessCache[zone]) {\n if (zoneOffsetTs === undefined) {\n zoneOffsetTs = Settings.now();\n }\n\n zoneOffsetGuessCache[zone] = zone.offset(zoneOffsetTs);\n }\n return zoneOffsetGuessCache[zone];\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n }\n\n const loc = Locale.fromObject(opts);\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = guessOffsetForZone(zone);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = Settings.now();\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * Timestamp to use for cached zone offset guesses (exposed for test)\n */\nlet zoneOffsetTs;\n/**\n * Cache for zone offset guesses (exposed for test).\n *\n * This optimizes quickDT via guessOffsetForZone to avoid repeated calls of\n * zone.offset().\n */\nlet zoneOffsetGuessCache = {};\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n // If an offset has been passed and we have not been called from\n // clone(), we can trust it and avoid the offset calculation.\n const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n if (!inst.isValid) {\n return DateTime.invalid(inst.invalid);\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n static resetCache() {\n zoneOffsetTs = undefined;\n zoneOffsetGuessCache = {};\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n let c = includePrefix ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 dÃa\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n /**\n * Build a parser for `fmt` using the given locale. This parser can be passed\n * to {@link DateTime.fromFormatParser} to a parse a date in this format. This\n * can be used to optimize cases where many dates need to be parsed in a\n * specific format.\n *\n * @param {String} fmt - the format the string is expected to be in (see\n * description)\n * @param {Object} options - options used to set locale and numberingSystem\n * for parser\n * @returns {TokenParser} - opaque object to be used\n */\n static buildFormatParser(fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return new TokenParser(localeToUse, fmt);\n }\n\n /**\n * Create a DateTime from an input string and format parser.\n *\n * The format parser must have been created with the same locale as this call.\n *\n * @param {String} text - the string to parse\n * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser}\n * @param {Object} opts - options taken by fromFormat()\n * @returns {DateTime}\n */\n static fromFormatParser(text, formatParser, opts = {}) {\n if (isUndefined(text) || isUndefined(formatParser)) {\n throw new InvalidArgumentError(\n \"fromFormatParser requires an input string and a format parser\"\n );\n }\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n\n if (!localeToUse.equals(formatParser.locale)) {\n throw new InvalidArgumentError(\n `fromFormatParser called with a locale of ${localeToUse}, ` +\n `but the format parser was created for ${formatParser.locale}`\n );\n }\n\n const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);\n\n if (invalidReason) {\n return DateTime.invalid(invalidReason);\n } else {\n return parseDataToDateTime(\n result,\n zone,\n opts,\n `format ${formatParser.format}`,\n text,\n specificOffset\n );\n }\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","import React, { useEffect, useState, useRef, useMemo } from \"react\";\nimport Calendar from \"./Calendar\";\nimport Day from \"./Day\";\nimport Facility from \"./Facility\";\nimport EventDate from \"./EventDate\";\nimport Periods from \"../BookingForm/Block/Periods\";\nimport BookingOption from \"./BookingOption\";\nimport VatCheckbox from \"./VatCheckbox\";\nimport Extras from \"./ExtrasDropdown\";\nimport PriceAdjustmentReason from \"./PriceAdjustmentReason\";\nimport PriceAdjustment from \"./PriceAdjustment\";\nimport Error from \"./Error\";\nimport api from \"./api\";\nimport TimeSlots from \"./TimeSlots\";\nimport Modal from \"./Modal\";\n\nimport { reassignStartAndEndTime } from './utils/startAndEndTime';\nimport { processingModal } from \"src/nextgen/helpers/processing_modal\";\n\nimport { DateTime } from \"luxon\";\nimport axios from 'axios';\n\nimport './styles.scss';\n\nexport default ({ url, multiple }) => {\n const ref = useRef();\n const [loading, setLoading] = useState('pending');\n\n const [facilities, setFacilities] = useState([]);\n const [bookingOptions, setBookingOptions] = useState([]);\n const [extras, setExtras] = useState([]);\n const [periods, setPeriods] = useState([]);\n const [minEventDate, setMinEventDate] = useState(null);\n const [maxEventDate, setMaxEventDate] = useState(null);\n\n const [bookingId, setBookingId] = useState('');\n const [userId, setUserId] = useState(null);\n const [eventDate, setEventDate] = useState(new Date);\n const [facilityKey, setFacilityKey] = useState(null);\n const [bookingOptionKey, setBookingOptionKey] = useState(null);\n const [vatEnabled, setVatEnabled] = useState(false);\n const [startTime, setStartTime] = useState(null)\n const [endTime, setEndTime] = useState(null);\n const [day, setDay] = useState(null)\n const [bookingsExtras, setBookingsExtras] = useState([]);\n const [priceAdjustment, setPriceAdjustment] = useState(0);\n const [priceAdjustmentReason, setPriceAdjustmentReason] = useState('');\n const [showPriceAdjustment, setShowPriceAdjustment] = useState(false);\n const [showVatEnabled, setShowVatEnabled] = useState(false);\n const [internalOrderUuid, setInternalOrderUuid] = useState(null);\n const [errors, setErrors] = useState([]);\n const [inProgress, setInProgress] = useState(false);\n\n const continueButtonDisabled = useMemo(() => {\n const values = [facilityKey, eventDate, startTime, endTime, bookingOptionKey];\n const isNull = (element) => element === null;\n return values.some(isNull) || inProgress;\n }, [facilityKey, eventDate, startTime, endTime, bookingOptionKey, inProgress])\n\n useEffect(() => {\n api.bookingPromise(url).then(({ data }) => {\n const newStartTime = data.start_time;\n const newEndTime = data.end_time;\n const newEventDate = data.event_date;\n\n const luxonEventDate = DateTime.fromFormat(newEventDate, 'yyyy-MM-dd');\n const n = luxonEventDate.toJSDate();\n const day = luxonEventDate.weekday;\n\n setBookingId(data.id);\n setUserId(data.user?.id);\n setEventDate(n);\n setDay(day);\n setFacilityKey(data.facility_key);\n setBookingOptionKey(data.booking_option_key);\n setVatEnabled(data.vat_enabled);\n setStartTime(data.start_time);\n setEndTime(data.end_time);\n setBookingsExtras(data.bookings_extras);\n setPriceAdjustment(data.price_adjustment);\n setPriceAdjustmentReason(data.price_adjustment_reason || '');\n setMinEventDate(data.min_event_date);\n setMaxEventDate(data.max_event_date);\n setShowPriceAdjustment(data.show_price_adjustment);\n setShowVatEnabled(data.show_vat_enabled);\n setInternalOrderUuid(data.order.internal_order_uuid);\n\n api.venuePromise(data.venue_id, data.id, data.user?.id).then((response) => {\n setFacilities(response.data.facilities)\n\n api.fetchFacility(data.facility_key, data.user?.id, data.id).then((response2) => {\n setBookingOptions(response2.data.booking_options);\n setExtras(response2.data.extras);\n\n const newBookingOptionKey = data.booking_option_key;\n const newBookingId = data.id;\n const newFacilityKey = data.facility_key;\n const newInternalOrderUuid = data.order.internal_order_uuid;\n\n api\n .fetchPeriods(newBookingOptionKey, newEventDate, newBookingId, newFacilityKey, newInternalOrderUuid)\n .then((response3) => {\n const newPeriod = reassignStartAndEndTime(response3.data, { startTime: newStartTime, endTime: newEndTime })\n setPeriods(response3.data);\n setStartTime(newPeriod.startTime);\n setEndTime(newPeriod.endTime);\n setLoading('succeeded');\n $(ref.current).modal('show');\n }).catch((e) => failedLoading(e));\n }).catch((e) => failedLoading(e));\n }).catch((e) => failedLoading(e));\n }).catch((e) => failedLoading(e));\n }, []);\n\n const failedLoading = (error) => {\n Helper.flash_message('error', 'Something went wrong!')\n setLoading('failed');\n }\n\n const handleChangeFacility = function(e) {\n const newFacilityKey = e.target.value;\n\n setFacilityKey(newFacilityKey);\n\n api.fetchFacility(newFacilityKey, userId, bookingId).then((response2) => {\n const newExtras = response2.data.extras;\n\n let newBookingsExtras = [...bookingsExtras];\n\n newExtras.filter(extra => extra.checked).map(extra => {\n const bookingsExtra = bookingsExtras.find((bookingsExtra) => bookingsExtra.extra_id === extra.id);\n\n if (bookingsExtra === undefined) {\n newBookingsExtras.push({ id: '', extra_id: extra.id, persons: '', checked: true })\n }\n });\n\n const bok = (response2.data.booking_options[0]?.id || null);\n\n setBookingOptions(response2.data.booking_options);\n setExtras(newExtras);\n setBookingsExtras(newBookingsExtras)\n setBookingOptionKey(bok)\n\n if (bok) {\n loadPeriods(eventDate, bok, newFacilityKey);\n } else {\n console.log('The list of booking options is empty for this facility');\n }\n });\n }\n\n const handleChangeBookingOption = function(e) {\n const newBookingOptionKey = e.target.value;\n setBookingOptionKey(newBookingOptionKey);\n loadPeriods(eventDate, newBookingOptionKey, facilityKey);\n }\n\n const handleChangeEventDate = function(newEventDate) {\n setEventDate(newEventDate);\n loadPeriods(newEventDate, bookingOptionKey, facilityKey);\n }\n\n function loadPeriods(eventDate, bookingOptionKey, facilityKey) {\n api.fetchPeriods(bookingOptionKey, eventDate, bookingId, facilityKey, internalOrderUuid).then((response) => {\n const newPeriod = reassignStartAndEndTime(response.data, { startTime: startTime, endTime: endTime })\n setPeriods(response.data);\n setStartTime(newPeriod.startTime);\n setEndTime(newPeriod.endTime);\n }).catch((e) => console.log(e));\n }\n\n const handleChangeVat = (e) => setVatEnabled(e.target.checked);\n const handleChangeStartTime = (time) => setStartTime(time);\n const handleChangeEndTime = (time) => setEndTime(time);\n const handleChangePriceAdjustment = (e) => setPriceAdjustment(e.target.value);\n const handleChangePriceAdjustmentReason = (e) => setPriceAdjustmentReason(e.target.value);\n\n const handleChangeDay = (day) => setDay(day);\n\n const sendForm = (e) => {\n e.preventDefault;\n\n if (continueButtonDisabled) return true;\n\n setInProgress(true);\n processingModal.show();\n\n const extraIds = extras.map(x => x.id);\n const formattedEventDate = DateTime.fromJSDate(eventDate).toFormat(\"yyyy-MM-dd\");\n\n const data = {\n booking: {\n facility_key: facilityKey,\n event_date: formattedEventDate,\n start_datetime: [formattedEventDate, startTime].join(' '),\n end_datetime: [formattedEventDate, endTime].join(' '),\n booking_option_key: bookingOptionKey,\n bookings_extras_attributes: bookingsExtras.map(bookings_extra => {\n let destroy = false;\n\n if (!extraIds.includes(bookings_extra.extra_id)) {\n destroy = true;\n } else if (bookings_extra.checked === undefined) {\n destroy = false;\n } else {\n destroy = !bookings_extra.checked;\n }\n\n return {\n id: bookings_extra.id,\n extra_id: bookings_extra.extra_id,\n persons_number: bookings_extra.persons,\n price_adjustment: bookings_extra.price_adjustment,\n price_adjustment_reason: bookings_extra.price_adjustment_reason,\n _destroy: destroy\n }\n }),\n price_adjustment: priceAdjustment,\n price_adjustment_reason: priceAdjustmentReason\n }\n };\n\n if (multiple) {\n data['booking']['day'] = day;\n data['booking_ids'] = $.map($('.multiple-check:checked'), (row) => row.value);\n data['booking']['admin_vat_enabled'] = vatEnabled;\n }\n\n axios.put(url.replace('/edit', ''), data).then(() => {\n const reloadUrl = $('#bookings-block .table-bookings').data('reload-url');\n\n axios.get(reloadUrl).then((response) => {\n window.bookingTable.update(response.data);\n processingModal.hide();\n $(ref.current).modal('hide');\n setTimeout(() => setInProgress(false), 300);\n }).catch((e) => {\n processingModal.hide();\n setTimeout(() => setInProgress(false), 300);\n });\n }).catch((error) => {\n processingModal.hide();\n setInProgress(false);\n setErrors(error.response.data.errors)\n })\n }\n\n const title = multiple ? 'Edit multiple bookings' : 'Edit booking time';\n\n return (\n <Modal ref={ref} title={title} loading={loading} onSendForm={sendForm}\n continueButtonDisabled={continueButtonDisabled}>\n <div className='booking-form'>\n {!multiple &&\n <div className='row'>\n <div className='col col-xs-12 col-sm-6 col-md-6 col-lg-6'>\n <Calendar\n eventDate={eventDate}\n minEventDate={minEventDate}\n maxEventDate={maxEventDate}\n onChange={handleChangeEventDate}\n />\n </div>\n <div className='col col-xs-12 col-sm-6 col-md-6 col-lg-6'>\n <TimeSlots\n periods={periods}\n startTime={startTime}\n endTime={endTime}\n onChangeStartTime={handleChangeStartTime}\n onChangeEndTime={handleChangeEndTime}\n />\n </div>\n </div>\n }\n\n <div className='row-container new-book'>\n <div className='fields-container'>\n <div className=\"field-box facility-box\">\n <Facility\n value={facilityKey}\n facilities={facilities}\n onChange={handleChangeFacility}\n />\n </div>\n\n {!multiple &&\n <div className=\"field-box event-date-box\">\n <EventDate\n eventDate={eventDate}\n minEventDate={minEventDate}\n maxEventDate={maxEventDate}\n onChange={handleChangeEventDate}\n />\n </div>\n }\n\n <div className=\"field-box period-wrapper\">\n <div className=\"field-box periods-box\">\n <Periods\n periods={periods}\n startTime={startTime}\n endTime={endTime}\n onChangeStartTime={handleChangeStartTime}\n onChangeEndTime={handleChangeEndTime}\n />\n </div>\n\n {multiple &&\n <div className=\"field-box day-box\">\n <Day day={day} onChangeDay={handleChangeDay}/>\n </div>\n }\n </div>\n\n </div>\n </div>\n\n <div className='row-container new-book'>\n <div className='fields-container'>\n <div className='field-box booking-option-box'>\n <BookingOption\n bookingOptions={bookingOptions}\n value={bookingOptionKey}\n onChange={handleChangeBookingOption}\n />\n </div>\n\n {multiple && showVatEnabled &&\n <div className='field-box vat-box'>\n <VatCheckbox checked={vatEnabled} onChange={handleChangeVat}/>\n </div>\n }\n </div>\n </div>\n\n {showPriceAdjustment &&\n <div className='row-container new-book'>\n <div className='fields-container'>\n <div className='field-box price-adjustment-box'>\n <PriceAdjustment\n value={priceAdjustment}\n onChange={handleChangePriceAdjustment}\n />\n </div>\n\n <div className='field-box price-adjustment-reason-box'>\n <PriceAdjustmentReason\n value={priceAdjustmentReason}\n onChange={handleChangePriceAdjustmentReason}\n />\n </div>\n </div>\n </div>\n }\n\n\n <div className='row'>\n <div className='col-lg-12'>\n <div className='new-book edit-booking-form'>\n <div className='form-inline vert-offset-bottom-10'>\n <Extras\n extras={extras}\n bookingsExtras={bookingsExtras}\n setBookingsExtras={setBookingsExtras}\n showPriceAdjustment={showPriceAdjustment}\n />\n </div>\n\n <Error errors={errors}/>\n </div>\n </div>\n </div>\n </div>\n </Modal>\n );\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport ReactDOM from \"react-dom\";\nimport Form from \"../src/components/EditBooking/Form\";\nimport React from \"react\";\n\nexport default class extends Controller {\n static targets = ['description', 'description2', 'pointer'];\n\n static values = {\n expandedClass: 'fa-angle-up',\n collapsedClass: 'fa-angle-down',\n hiddenBlockClass: 'hidden-block'\n }\n\n expanded = false;\n\n connect() {\n }\n\n pointerTargetConnected(element) {\n element.classList.add(this.expanded ? this.expandedClassValue : this.collapsedClassValue);\n }\n\n toggle_expand_row() {\n if (this.expanded) {\n this.collapse()\n this.dispatch('expanded_row');\n } else {\n this.expand()\n this.dispatch('expanded_row');\n }\n }\n\n expand() {\n if (this.descriptionTargets[0]) {\n this.descriptionTarget.classList.remove(this.hiddenBlockClassValue);\n this.description2Target.classList.remove(this.hiddenBlockClassValue);\n this.pointerTarget.classList.replace(this.collapsedClassValue, this.expandedClassValue);\n this.expanded = true;\n }\n }\n\n collapse() {\n if (this.descriptionTargets[0]) {\n this.descriptionTarget.classList.add(this.hiddenBlockClassValue);\n this.description2Target.classList.add(this.hiddenBlockClassValue);\n this.pointerTarget.classList.replace(this.expandedClassValue, this.collapsedClassValue);\n this.expanded = false;\n }\n }\n\n editBooking(event) {\n let modalBox = document.getElementById('booking_edit_modal');\n\n if (!modalBox) {\n const elemDiv = document.createElement('div');\n elemDiv.setAttribute('id', 'booking_edit_modal');\n\n document.body.appendChild(elemDiv);\n\n modalBox = document.getElementById('booking_edit_modal');\n }\n\n ReactDOM.unmountComponentAtNode(modalBox);\n ReactDOM.render(<Form url={event.params.url}/>, modalBox);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass MapBoxController extends Controller {\n static targets = ['pointer', 'description', 'child'];\n\n static values = {\n expandedClass: 'fa-angle-up',\n collapsedClass: 'fa-angle-down',\n hiddenBlockClass: 'hidden-block'\n }\n}\n\nexport default MapBoxController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass RoomController extends Controller {\n static targets = ['distance'];\n\n connect() {\n const gallery = this.element.querySelector(\"ul.smallGallery\");\n\n if (gallery) {\n $(gallery).lightSlider({\n item: 1,\n slideMargin: 0,\n loop: true,\n pager: false\n });\n }\n }\n}\n\nexport default RoomController;","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nexport default class extends Controller {\n connect() {\n this.togglePresence(this.element.classList.contains('presence'));\n }\n\n toggle() {\n const facilityId = this.element.dataset.facilityId;\n\n axios.put(`/favourites/${facilityId}/toggle`).then((response) => {\n const { data } = response;\n const presence = data.status === 'liked';\n\n this.togglePresence(presence);\n });\n }\n\n togglePresence(presence) {\n const { dataset } = this.element;\n this.text = dataset.text;\n this.disabledText = dataset.disabledText;\n\n const hasText = (this.text && this.disabledText);\n\n if (presence) {\n this.element.classList.add('presence');\n if (hasText) this.element.innerHTML = this.disabledText;\n } else {\n this.element.classList.remove('presence');\n if (hasText) this.element.innerHTML = this.text;\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class PopoverController extends Controller {\n\n connect() {\n const self = $(this.element);\n const content = this.element.querySelector('.popover-body').innerHTML;\n const dataset = this.element.dataset;\n const trigger = dataset.trigger || 'hover';\n const placement = dataset.placement || 'right';\n\n self.popover({\n html: true,\n trigger: trigger,\n placement: placement,\n content: content\n });\n }\n}\n","import axios from 'axios';\n\nclass AddVenues {\n constructor(onVenuesAdded) {\n this.onVenuesAdded = onVenuesAdded;\n }\n\n start() {\n $('#venue-users-add-venue').on('click', (e) => {\n const modal = $('#modal_venues');\n modal.modal('show');\n\n const regex = /user\\[venue_users_attributes\\]\\[\\d+\\]\\[venue_id\\]/;\n\n let ids = [];\n $('.access_table_body').find('input').filter((index, el) => {\n if (regex.test($(el).attr('name'))) ids.push($(el).val());\n });\n\n axios\n .get(e.target.dataset.path, { params: { id: ids } })\n .then(({ data }) => modal.find('.modal-body').html(data));\n });\n\n $('#add_venues').on('click', () => {\n const modal = $('#modal_venues');\n const $form = $(modal.find('form'));\n\n axios\n .post($form.attr('action'), new FormData($form[0]))\n .then(response => {\n const regex = /user\\[venue_users_attributes\\]\\[(\\d+)\\]/g;\n const regex2 = /user\\[venue_users_attributes\\]\\[(\\d+)\\]\\[venue_id\\]/;\n const table = $('.access_table_body');\n\n let indexes = [];\n table.find('input').filter((index, el) => {\n const name = $(el).attr('name');\n if (regex2.test(name)) {\n const match = regex2.exec($(el).attr('name'));\n indexes.push(parseInt(match[1]))\n }\n });\n\n let lastIndex = 0;\n if (indexes.length !== 0) lastIndex = Math.max(...indexes) + 1;\n\n const newHtml = response.data.replace(regex, (match, index) => {\n const newIndex = parseInt(index) + lastIndex;\n return `user[venue_users_attributes][${newIndex}]`;\n });\n\n table.append(newHtml);\n modal.modal('hide');\n modal.find('.modal-body').html('')\n\n if (this.onVenuesAdded) this.onVenuesAdded();\n })\n .catch(() => Helper.flash_message('error', 'Something wrong happened'))\n });\n }\n}\n\nexport default AddVenues;","import { Controller } from \"@hotwired/stimulus\"\nimport AddVenues from \"src/nextgen/admin/users/AddVenues\";\n\nclass VenueUsersController extends Controller {\n connect() {\n const form = $(this.element);\n\n function updForm() {\n form.find('.multiselect.venue-btn').click((e) => {\n const checked = $(e.target).data('action') === 'check';\n const checkboxes = form.find(`.type-venue`);\n\n $.each(checkboxes, (index, el) => $(el).prop('checked', checked).trigger('change'));\n });\n\n form.find('.multiselect.notification-btn').click((e) => {\n const checked = $(e.target).data('action') === 'check';\n const checkboxes = form.find(`.type-notification`);\n\n $.each(checkboxes, (index, el) => {\n if ($(el).is(':enabled')) $(el).prop('checked', checked).trigger('change')\n });\n });\n\n form.find('.type-venue').on('change', (e) => {\n const target = $(e.target);\n const notification = target.closest('tr').find('.type-notification');\n const disabled = !target.is(':checked');\n\n notification.prop('disabled', disabled)\n notification.prop('checked', disabled ? false : notification.data('status') === true)\n });\n\n const userAccessType = $('#user_access_type');\n\n userAccessType.on('change', (e) => {\n const accessType = $(e.target).val();\n const notificationColumn = form.find('.notification_column');\n const showNotificationColumn = ['full_access', 'full_access_2'].includes(accessType);\n notificationColumn.toggle(showNotificationColumn)\n });\n\n\n const venueCheckboxes = form.find(`.type-venue`);\n const multiselectRow = form.find('.multiselect-row');\n\n if (venueCheckboxes.length < 2) multiselectRow.hide();\n $.each(venueCheckboxes, (i, el) => $(el).trigger('change'));\n userAccessType.trigger('change');\n }\n\n const addVenues = new AddVenues(() => {\n updForm();\n });\n\n updForm();\n addVenues.start();\n }\n}\n\nexport default VenueUsersController;\n","import React, { useEffect, useRef, useState } from 'react';\n// ------------------ Helpers\nfunction isNumber(n) {\n const number = parseFloat(n);\n return !isNaN(number) && isFinite(number);\n}\nfunction isPercentage(height) {\n // Percentage height\n return (typeof height === 'string' &&\n height[height.length - 1] === '%' &&\n isNumber(height.substring(0, height.length - 1)));\n}\nfunction hideContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = 'none';\n }\n}\nfunction showContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = '';\n }\n}\nconst ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific',\n};\nfunction getStaticStateClasses(animationStateClasses, height) {\n return [\n animationStateClasses.static,\n height === 0 && animationStateClasses.staticHeightZero,\n height > 0 && animationStateClasses.staticHeightSpecific,\n height === 'auto' && animationStateClasses.staticHeightAuto,\n ]\n .filter((v) => v)\n .join(' ');\n}\n// ------------------ Component\nconst propsToOmitFromDiv = [\n 'animateOpacity',\n 'animationStateClasses',\n 'applyInlineTransitions',\n 'children',\n 'className',\n 'contentClassName',\n 'delay',\n 'duration',\n 'easing',\n 'height',\n 'onHeightAnimationEnd',\n 'onHeightAnimationStart',\n 'style',\n];\nconst AnimateHeight = (componentProps) => {\n const { animateOpacity = false, animationStateClasses = {}, applyInlineTransitions = true, children, className = '', contentClassName, delay: userDelay = 0, duration: userDuration = 500, easing = 'ease', height, onHeightAnimationEnd, onHeightAnimationStart, style, } = componentProps;\n const divProps = Object.assign({}, componentProps);\n propsToOmitFromDiv.forEach((propKey) => {\n delete divProps[propKey];\n });\n // ------------------ Initialization\n const prevHeight = useRef(height);\n const contentElement = useRef(null);\n const animationClassesTimeoutID = useRef();\n const timeoutID = useRef();\n const stateClasses = useRef(Object.assign(Object.assign({}, ANIMATION_STATE_CLASSES), animationStateClasses));\n const isBrowser = typeof window !== 'undefined';\n const prefersReducedMotion = useRef(isBrowser && window.matchMedia\n ? window.matchMedia('(prefers-reduced-motion)').matches\n : false);\n const delay = prefersReducedMotion.current ? 0 : userDelay;\n const duration = prefersReducedMotion.current ? 0 : userDuration;\n let initHeight = height;\n let initOverflow = 'visible';\n if (typeof initHeight === 'number') {\n // Reset negative height to 0\n initHeight = height < 0 ? 0 : height;\n initOverflow = 'hidden';\n }\n else if (isPercentage(initHeight)) {\n // If value is string \"0%\" make sure we convert it to number 0\n initHeight = height === '0%' ? 0 : height;\n initOverflow = 'hidden';\n }\n const [currentHeight, setCurrentHeight] = useState(initHeight);\n const [overflow, setOverflow] = useState(initOverflow);\n const [useTransitions, setUseTransitions] = useState(false);\n const [animationStateClassNames, setAnimationStateClassNames] = useState(getStaticStateClasses(stateClasses.current, height));\n // ------------------ Did mount\n useEffect(() => {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, currentHeight);\n // This should be explicitly run only on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n // ------------------ Height update\n useEffect(() => {\n if (height !== prevHeight.current && contentElement.current) {\n showContent(contentElement.current, prevHeight.current);\n // Cache content height\n contentElement.current.style.overflow = 'hidden';\n const contentHeight = contentElement.current.offsetHeight;\n contentElement.current.style.overflow = '';\n // set total animation time\n const totalDuration = duration + delay;\n let newHeight;\n let timeoutHeight;\n let timeoutOverflow = 'hidden';\n let timeoutUseTransitions;\n const isCurrentHeightAuto = prevHeight.current === 'auto';\n if (typeof height === 'number') {\n // Reset negative height to 0\n newHeight = height < 0 ? 0 : height;\n timeoutHeight = newHeight;\n }\n else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutHeight = newHeight;\n }\n else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutHeight = 'auto';\n timeoutOverflow = undefined;\n }\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutHeight = newHeight;\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n // Animation classes\n const newAnimationStateClassNames = [\n stateClasses.current.animating,\n (prevHeight.current === 'auto' || height < prevHeight.current) &&\n stateClasses.current.animatingUp,\n (height === 'auto' || height > prevHeight.current) &&\n stateClasses.current.animatingDown,\n timeoutHeight === 0 && stateClasses.current.animatingToHeightZero,\n timeoutHeight === 'auto' && stateClasses.current.animatingToHeightAuto,\n timeoutHeight > 0 && stateClasses.current.animatingToHeightSpecific,\n ]\n .filter((v) => v)\n .join(' ');\n // Animation classes to be put after animation is complete\n const timeoutAnimationStateClasses = getStaticStateClasses(stateClasses.current, timeoutHeight);\n // Set starting height and animating classes\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n setCurrentHeight(newHeight);\n setOverflow('hidden');\n setUseTransitions(!isCurrentHeightAuto);\n setAnimationStateClassNames(newAnimationStateClassNames);\n // Clear timeouts\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutUseTransitions = true;\n // Short timeout to allow rendering of the initial animation state first\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(timeoutUseTransitions);\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(timeoutHeight);\n }, 50);\n // Set static classes and remove transitions when animation ends\n animationClassesTimeoutID.current = setTimeout(() => {\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, timeoutHeight);\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(timeoutHeight);\n }, totalDuration);\n }\n else {\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(newHeight);\n // Set end height, classes and remove transitions when animation is complete\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, newHeight); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(newHeight);\n }, totalDuration);\n }\n }\n prevHeight.current = height;\n return () => {\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n };\n // This should be explicitly run only on height change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [height]);\n // ------------------ Render\n const componentStyle = Object.assign(Object.assign({}, style), { height: currentHeight, overflow: overflow || (style === null || style === void 0 ? void 0 : style.overflow) });\n if (useTransitions && applyInlineTransitions) {\n componentStyle.transition = `height ${duration}ms ${easing} ${delay}ms`;\n // Include transition passed through styles\n if (style === null || style === void 0 ? void 0 : style.transition) {\n componentStyle.transition = `${style.transition}, ${componentStyle.transition}`;\n }\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n const contentStyle = {};\n if (animateOpacity) {\n contentStyle.transition = `opacity ${duration}ms ${easing} ${delay}ms`;\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n if (currentHeight === 0) {\n contentStyle.opacity = 0;\n }\n }\n // Check if user passed aria-hidden prop\n const hasAriaHiddenProp = typeof divProps['aria-hidden'] !== 'undefined';\n const ariaHidden = hasAriaHiddenProp ? divProps['aria-hidden'] : height === 0;\n return (React.createElement(\"div\", Object.assign({}, divProps, { \"aria-hidden\": ariaHidden, className: `${animationStateClassNames} ${className}`, style: componentStyle }),\n React.createElement(\"div\", { className: contentClassName, style: contentStyle, ref: contentElement }, children)));\n};\nexport default AnimateHeight;\n","import React from \"react\";\nimport { Button, Modal } from \"react-bootstrap\";\n\n\nexport default ({ children, show, onHide, buttons, backdrop, className, title }) => {\n return (\n <Modal show={show} onHide={onHide} backdrop={backdrop ? \"static\" : false} dialogClassName={className}>\n <Modal.Header closeButton>\n <Modal.Title>{title ? title : 'Send message to multiple customers'}</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {children}\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onHide}>Close</Button>\n {buttons}\n </Modal.Footer>\n </Modal>\n )\n}","import React from \"react\";\nimport { components } from \"react-select\";\n\n\nconst Option = (props) => {\n const { selectedAll, selectAllValue } = props.selectProps;\n\n if (props.value === selectAllValue) {\n return (\n <components.Option {...props} isSelected={selectedAll}>\n <input type='checkbox' checked={selectedAll} onChange={() => null}/>\n {\" \"}\n All\n </components.Option>\n )\n }\n\n return (\n <components.Option {...props}>\n <input type='checkbox' checked={props.isSelected} onChange={() => null}/>\n {\" \"}\n {props.label}\n </components.Option>\n );\n};\n\nexport default Option;","import React from \"react\";\nimport { components } from \"react-select\";\n\nconst ValueContainer = ({ children, ...props }) => {\n const [values, input] = children;\n let newValues = '';\n\n if (Array.isArray(values)) {\n if (props.selectProps.selectedAll) {\n newValues = 'All';\n } else if (values.length > 1) {\n newValues = `${values.length} selected`;\n } else {\n newValues = values[0].props.children\n if (values.length > 26) newValues = values.substring(0, 26) + '...'\n }\n }\n\n return (\n <components.ValueContainer {...props}>\n {newValues}\n {input}\n </components.ValueContainer>\n );\n};\n\nexport default ValueContainer;","import React, { useMemo } from \"react\";\nimport ReactSelect from \"react-select\";\nimport './styles.scss';\nimport Option from './Option';\nimport ValueContainer from './ValueContainer';\n\nconst SELECT_ALL_VALUE = '*';\n\nexport default ({ showSelectedNumber, options, onChange, ...props }) => {\n let components = { Option };\n\n if (showSelectedNumber) components['ValueContainer'] = ValueContainer;\n\n const myOptions = useMemo(() => {\n const AllOptions = [{ id: SELECT_ALL_VALUE }]\n return AllOptions.concat(options);\n }, [options]);\n\n const selectedAll = options.length === props.value.length;\n\n const onChangeSorted = (v) => {\n const values = v.map(x => x.id);\n const newV = options.filter(x => values.includes(x.id));\n onChange(newV)\n }\n\n const handleOnChange = (v, actionMete) => {\n const { option, action } = actionMete;\n\n if (['clear', 'remove-value'].includes(action)) {\n return onChangeSorted(v);\n }\n\n if (option === undefined) return;\n\n if (option.id === SELECT_ALL_VALUE) {\n if (selectedAll) {\n onChangeSorted([])\n } else {\n onChangeSorted(options);\n }\n } else {\n onChangeSorted(v)\n }\n }\n\n return (\n <ReactSelect\n {...props}\n options={myOptions}\n isMulti\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n allowSelectAll={true}\n components={components}\n onChange={handleOnChange}\n selectedAll={selectedAll}\n selectAllValue={SELECT_ALL_VALUE}\n />\n )\n}","import React from \"react\";\nimport { OverlayTrigger, Popover } from 'react-bootstrap';\n\nexport default ({ children }) => {\n return (\n <OverlayTrigger\n trigger={['hover', 'focus']}\n placement=\"right\"\n overlay={<Popover id={`extra_#{id}`}>{children}</Popover>}>\n <div className='info-icon'/>\n </OverlayTrigger>\n )\n}","import React, { useState, useEffect, useRef, useMemo } from 'react';\nimport Select from \"react-select\";\nimport AnimateHeight from 'react-animate-height';\nimport { Button } from 'react-bootstrap';\nimport Modal from 'src/components/Modal';\nimport Error from 'src/components/Form/Error';\nimport DatePicker from \"src/components/DateInput\";\nimport MultiSelect from \"src/components/MultiSelect\";\nimport InfoIcon from \"src/components/InfoIcon\";\n\nimport axios from \"axios\";\nimport moment from \"moment\";\n\nimport { processingModal } from \"src/nextgen/helpers/processing_modal\";\n\nimport './styles.scss';\n\nconst HirersOptions = ({ hirers, setHirers, options, disabled }) => (\n <div className=\"form-group hirers\">\n {options.map(({ value, label, info }) => (\n <label key={value} htmlFor={`hirers_${value}`}>\n <input\n type=\"radio\"\n name=\"hirers\"\n checked={hirers === value}\n disabled={disabled}\n onChange={() => setHirers(value)}\n />\n {label}\n {info && <InfoIcon>{info}</InfoIcon>}\n </label>\n ))}\n </div>\n);\n\nexport default ({ show, setShow, venueId, conversationPurpose }) => {\n const onlineMembershipsPurpose = conversationPurpose === 'online_memberships';\n const defaultHirers = onlineMembershipsPurpose ? 'current_members' : 'current';\n\n const [messageHeight, setMessageHeight] = useState(0);\n const [dateOfBooking, setDateOfBooking] = useState(false);\n const [hirers, _setHirers] = useState(defaultHirers);\n const [startDate, setStartDate] = useState(new Date);\n const [endDate, setEndDate] = useState(new Date);\n const [users, setUsers] = useState([]);\n const [facilities, setFacilities] = useState([]);\n const [errors, setErrors] = useState({});\n const [usersReady, setUsersReady] = useState(false);\n const [facilitiesReady, setFacilitiesReady] = useState(false);\n const [showVenuesFilter, setShowVenuesFilter] = useState(false);\n const [selectedVenueId, setSelectedVenueId] = useState(venueId);\n\n const [selectedUsers, setSelectedUsers] = useState([]);\n const [selectedFacilities, setSelectedFacilities] = useState([]);\n const [userSignature, setUserSignature] = useState('');\n const [venues, setVenues] = useState([]);\n const [inProgress, setInProgress] = useState(false);\n\n const messageRef = useRef();\n const fileRef = useRef();\n\n const hirersOptions = useMemo(() => onlineMembershipsPurpose\n ? [\n { value: 'current_members', label: 'Current members' },\n { value: 'expired_members', label: 'Expired members' },\n { value: 'future_members', label: 'Future members' },\n { value: 'all_members', label: 'All members' },\n ]\n : [\n { value: 'current', label: 'Current hirers', info: 'Message to active customers at your venue.' },\n { value: 'all', label: 'All hirers', info: 'Message to all past and current customers.' },\n { value: 'enquiries_only', label: 'Enquiries only', info: 'Message to potential customers.' },\n { value: 'all_threads', label: 'All hirers plus enquiries', info: 'Message everyone including enquirers.' },\n ], [onlineMembershipsPurpose]\n );\n\n const setHirers = (hirer) => {\n _setHirers(hirer)\n\n if (hirer === 'enquiries_only' || hirer === 'all_threads') {\n setDateOfBooking(false);\n setSelectedFacilities(facilities);\n }\n };\n\n useEffect(() => loadData(), [selectedVenueId]);\n useEffect(() => processingModal.toggle(inProgress), [inProgress]);\n\n const ready = useMemo(() => (usersReady && facilitiesReady), [usersReady, facilitiesReady])\n const enabledSendButton = useMemo(() => {\n return selectedUsers.length > 0 && ready && !inProgress\n }, [ready, selectedUsers, inProgress]);\n\n const applyFilter = () => {\n setUsersReady(false);\n\n let params = {}\n\n params.hirers = hirers;\n params.facility_ids = selectedFacilities.map(facility => facility.id);\n params.date_of_booking = dateOfBooking;\n params.venue_id = selectedVenueId;\n params.conversation_purpose = conversationPurpose;\n\n if (dateOfBooking) {\n params.from_date = moment(startDate).format('D.M.YYYY');\n params.to_date = moment(endDate).format('D.M.YYYY');\n }\n\n axios.get(`/admin/conversations/recipients_for_venue.json`, { params: params }).then(response => {\n const userIds = response.data.user_ids;\n const newSelectedUsers = users.filter(user => userIds.includes(user.id));\n\n setSelectedUsers(newSelectedUsers);\n\n if (userIds.length === 0) {\n setMessageHeight('auto')\n setTimeout(() => { setMessageHeight(0) }, 4000);\n }\n\n setUsersReady(true);\n }).catch(e => {\n Helper.flash_message('error', 'Something went wrong');\n setUsersReady(true);\n });\n }\n\n const handleClickDateOfBooking = (e) => {\n const checked = e.target.checked;\n setDateOfBooking(e.target.checked);\n if (checked) setHirers('all');\n }\n\n const loadData = () => {\n setSelectedUsers([]);\n setSelectedFacilities([]);\n setUserSignature('');\n setUsersReady(false);\n setFacilitiesReady(false);\n\n if (selectedVenueId) {\n const customMessageSignature = axios.get(`/admin/custom_message_signature.json?venue_id=${selectedVenueId}&signature_type=${conversationPurpose === 'online_memberships' ? 'online_membership' : 'general'}`);\n const venueAndRecipients = axios.get(`/conversations/venue_and_recipients/${selectedVenueId}.json?conversation_purpose=${conversationPurpose}`);\n const facilities = axios.get(`/admin/messenger/venues/${selectedVenueId}/facilities.json?conversation_purpose=${conversationPurpose}`);\n\n axios\n .all([customMessageSignature, venueAndRecipients, facilities])\n .then(axios.spread(function(res1, res2, res3) {\n if (res1.data.body) setUserSignature('\\n\\n\\n' + res1.data.body);\n setUsers(res2.data.recipients)\n setUsersReady(true);\n setFacilities(res3.data.facilities);\n setSelectedFacilities(res3.data.facilities);\n setFacilitiesReady(true);\n }));\n } else {\n axios\n .get(`/messenger/inboxes.json?conversation_purpose=${conversationPurpose}`)\n .then((response) => {\n const inboxes = response.data.inboxes;\n\n if (inboxes.length === 0) return;\n\n setVenues(inboxes);\n setShowVenuesFilter(inboxes.length > 1);\n setSelectedVenueId(inboxes[0].id);\n });\n }\n }\n\n const sendMessage = () => {\n setErrors({});\n setInProgress(true);\n\n const formData = new FormData();\n\n selectedUsers.forEach(({ id }, index) => {\n formData.append(`multi_message_users_attributes[${index}][user_id]`, id);\n });\n\n formData.append('message', messageRef.current.value);\n formData.append('file', fileRef.current.files[0]);\n formData.append('conversation_purpose', conversationPurpose);\n\n axios.post(`/admin/venues/${selectedVenueId}/multi_message`, formData).then(response => {\n Helper.flash_message('success', response.data.notice);\n setInProgress(false);\n setShow(false);\n }).catch(error => {\n if (error.response.status === 422) {\n setErrors(error.response.data.errors)\n } else {\n Helper.flash_message('error', 'Something went wrong')\n }\n setInProgress(false);\n });\n }\n\n const facilitiesAndBookingDatesDisabled = () => {\n return hirers == 'enquiries_only' || hirers == 'all_threads';\n };\n\n return (\n <Modal\n title={`Send message to multiple ${onlineMembershipsPurpose ? 'members' : 'customers'}`}\n show={show}\n onHide={() => setShow(false)}\n buttons={<Button bsStyle='primary' onClick={sendMessage} disabled={!enabledSendButton}>Send</Button>}\n backdrop={true}\n className=\"modal-width\"\n >\n <form className='multi_message_form'>\n {showVenuesFilter &&\n <div className=\"form-group\">\n <Select\n options={venues}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.id}\n value={venues.find(venue => venue.id === selectedVenueId)}\n onChange={ (e) => setSelectedVenueId(e.id) }\n placeholder='Select venue...'\n />\n </div>\n }\n <div className=\"form-group\">\n <MultiSelect\n options={users}\n getOptionLabel={option => option.deleted ? `${option.name} (deleted)` : option.name}\n getOptionValue={option => option.id}\n showSelectedNumber={false}\n value={selectedUsers}\n onChange={setSelectedUsers}\n isDisabled={!usersReady}\n placeholder='Select recipients...'\n />\n <Error errors={errors} name='multi_message_users'/>\n </div>\n\n <AnimateHeight id=\"example-panel\" duration={500} height={messageHeight}>\n <div className=\"bottom-gap error-filter\">\n <p className=\"show-effect\">\n The options selected do not show any customers. Please check your options and try again\n </p>\n </div>\n </AnimateHeight>\n\n <HirersOptions\n hirers={hirers}\n setHirers={setHirers}\n options={hirersOptions}\n disabled={dateOfBooking}\n />\n\n {!onlineMembershipsPurpose &&\n <>\n <div className=\"form-group facility\">\n <label>Facility</label>\n <div className='dropdown'>\n <div>\n <MultiSelect\n options={facilities}\n getOptionLabel={option => option.internalReference}\n getOptionValue={option => option.id}\n value={selectedFacilities}\n onChange={setSelectedFacilities}\n isDisabled={!facilitiesReady || facilitiesAndBookingDatesDisabled()}\n showSelectedNumber={true}\n placeholder='Select facilities...'\n />\n </div>\n </div>\n </div>\n\n <div className=\"form-group date-of-booking\">\n <label htmlFor=\"date\">\n Date of booking\n {\" \"}\n <input type=\"checkbox\"\n name=\"date_switcher\"\n onChange={(e) => handleClickDateOfBooking(e)}\n disabled={facilitiesAndBookingDatesDisabled()}\n checked={dateOfBooking}/>\n </label>\n\n {dateOfBooking ?\n <div className='daterange-box'>\n <div className=\"input-group input-daterange\">\n <div className='daterange-picker'>\n <DatePicker\n onChange={setStartDate}\n value={startDate}\n />\n </div>\n <span className='to'>to</span>\n <div className='daterange-picker'>\n <DatePicker\n onChange={setEndDate}\n value={endDate}\n />\n </div>\n </div>\n </div>\n : null}\n\n <div className='clearfix'/>\n </div>\n </>\n }\n <div className=\"form-group\">\n <button type=\"button\" className=\"btn btn-primary\" onClick={applyFilter}>Apply</button>\n </div>\n\n <div className='form-group text required conversation_message'>\n <textarea\n name=\"conversation[message]\"\n required=\"required\"\n className=\"form-control\"\n placeholder=\"Enter message\"\n rows={9}\n ref={messageRef}\n defaultValue={userSignature}\n />\n <Error errors={errors} name=\"message\"/>\n </div>\n\n <div className=\"form-group text required conversation_message\">\n <label htmlFor=\"conversation_attachment\">\n Attachment:\n \n <span style={{ fontWeight: 100 }}>\n Please note that the Customer will need to login to view this attachment\n </span>\n </label>\n <input\n type=\"file\"\n ref={fileRef}\n name=\"conversation[attachment]\"\n data-controller=\"file_uploader_validator\"\n />\n <Error errors={errors} name=\"file\"/>\n </div>\n </form>\n </Modal>\n )\n}","import React from \"react\";\nimport { Controller } from \"@hotwired/stimulus\";\nimport ReactDOM from \"react-dom\";\nimport Form from \"src/components/MultiMessages/Form\";\n\nexport default class MultiMessageButtonController extends Controller {\n connect() {\n this.element.addEventListener('click', (e) => {\n const venueId = e.target.dataset.venueId;\n\n const mountPoint = document.createElement('div');\n this.element.insertAdjacentElement('afterend', mountPoint);\n\n ReactDOM.render(<Form venueId={venueId}/>, mountPoint);\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass CognitaVenueFieldsController extends Controller {\n static targets = ['checkbox', 'fieldsBlock'];\n\n connect() {\n this.checkboxTarget.addEventListener('change', (e) => this.toggleFieldsVisibility(e.target.checked));\n this.toggleFieldsVisibility(this.checkboxTarget.checked)\n }\n\n toggleFieldsVisibility(isVisible) {\n const block = this.fieldsBlockTarget;\n\n if (isVisible) {\n block.classList.remove(\"hidden\");\n } else {\n block.classList.add(\"hidden\");\n }\n }\n}\n\nexport default CognitaVenueFieldsController;","import { Controller } from \"@hotwired/stimulus\";\nimport axios from 'axios';\n\nclass CustomMessageSignatureController extends Controller {\n static targets = ['body', 'enabledSignature'];\n\n connect() {\n this.isModalLoading = false;\n }\n\n showModal(e) {\n e.preventDefault();\n\n if (this.isModalLoading) return;\n\n this.isModalLoading = true\n\n const url = e.target.dataset.url;\n const submenuElement = document.querySelector('.maintabs_submenu');\n const modal = document.getElementById('modal_form');\n const content = modal.querySelector('.modal-content');\n const venueId = submenuElement?.dataset?.venue_id;\n\n axios\n .get(url, { params: { venue_id: venueId }})\n .then((response) => {\n content.innerHTML = response.data;\n $(modal).modal('show');\n this.isModalLoading = false;\n });\n }\n\n selectVenue(e) {\n const target = e.target;\n const url = `${target.dataset.url}&venue_id=${target.value}`;\n const body = this.bodyTarget;\n const enabledSignatureCheckbox = this.enabledSignatureTarget;\n\n if (target.value === 'all-venues') {\n body.value = '';\n enabledSignatureCheckbox.checked = false\n\n return null;\n }\n\n axios.get(url).then((response) => {\n body.value = response.data.body;\n enabledSignatureCheckbox.checked = response.data.enabled;\n });\n }\n}\n\nexport default CustomMessageSignatureController;\n","/*\n * bootstrap-tagsinput v0.7.1 by Tim Schlechter\n * \n */\n\n!function(a){\"use strict\";function b(b,c){this.isInit=!0,this.itemsArray=[],this.$element=a(b),this.$element.hide(),this.isSelect=\"SELECT\"===b.tagName,this.multiple=this.isSelect&&b.hasAttribute(\"multiple\"),this.objectItems=c&&c.itemValue,this.placeholderText=b.hasAttribute(\"placeholder\")?this.$element.attr(\"placeholder\"):\"\",this.inputSize=Math.max(1,this.placeholderText.length),this.$container=a('<div class=\"bootstrap-tagsinput\"></div>'),this.$input=a('<input type=\"text\" placeholder=\"'+this.placeholderText+'\"/>').appendTo(this.$container),this.$element.before(this.$container),this.build(c),this.isInit=!1}function c(a,b){if(\"function\"!=typeof a[b]){var c=a[b];a[b]=function(a){return a[c]}}}function d(a,b){if(\"function\"!=typeof a[b]){var c=a[b];a[b]=function(){return c}}}function e(a){return a?i.text(a).html():\"\"}function f(a){var b=0;if(document.selection){a.focus();var c=document.selection.createRange();c.moveStart(\"character\",-a.value.length),b=c.text.length}else(a.selectionStart||\"0\"==a.selectionStart)&&(b=a.selectionStart);return b}function g(b,c){var d=!1;return a.each(c,function(a,c){if(\"number\"==typeof c&&b.which===c)return d=!0,!1;if(b.which===c.which){var e=!c.hasOwnProperty(\"altKey\")||b.altKey===c.altKey,f=!c.hasOwnProperty(\"shiftKey\")||b.shiftKey===c.shiftKey,g=!c.hasOwnProperty(\"ctrlKey\")||b.ctrlKey===c.ctrlKey;if(e&&f&&g)return d=!0,!1}}),d}var h={tagClass:function(a){return\"label label-info\"},itemValue:function(a){return a?a.toString():a},itemText:function(a){return this.itemValue(a)},itemTitle:function(a){return null},freeInput:!0,addOnBlur:!0,maxTags:void 0,maxChars:void 0,confirmKeys:[13,44],delimiter:\",\",delimiterRegex:null,cancelConfirmKeysOnEmpty:!1,onTagExists:function(a,b){b.hide().fadeIn()},trimValue:!1,allowDuplicates:!1};b.prototype={constructor:b,add:function(b,c,d){var f=this;if(!(f.options.maxTags&&f.itemsArray.length>=f.options.maxTags)&&(b===!1||b)){if(\"string\"==typeof b&&f.options.trimValue&&(b=a.trim(b)),\"object\"==typeof b&&!f.objectItems)throw\"Can't add objects when itemValue option is not set\";if(!b.toString().match(/^\\s*$/)){if(f.isSelect&&!f.multiple&&f.itemsArray.length>0&&f.remove(f.itemsArray[0]),\"string\"==typeof b&&\"INPUT\"===this.$element[0].tagName){var g=f.options.delimiterRegex?f.options.delimiterRegex:f.options.delimiter,h=b.split(g);if(h.length>1){for(var i=0;i<h.length;i++)this.add(h[i],!0);return void(c||f.pushVal())}}var j=f.options.itemValue(b),k=f.options.itemText(b),l=f.options.tagClass(b),m=f.options.itemTitle(b),n=a.grep(f.itemsArray,function(a){return f.options.itemValue(a)===j})[0];if(!n||f.options.allowDuplicates){if(!(f.items().toString().length+b.length+1>f.options.maxInputLength)){var o=a.Event(\"beforeItemAdd\",{item:b,cancel:!1,options:d});if(f.$element.trigger(o),!o.cancel){f.itemsArray.push(b);var p=a('<span class=\"tag '+e(l)+(null!==m?'\" title=\"'+m:\"\")+'\">'+e(k)+'<span data-role=\"remove\"></span></span>');p.data(\"item\",b),f.findInputWrapper().before(p),p.after(\" \");var q=a('option[value=\"'+encodeURIComponent(j)+'\"]',f.$element).length||a('option[value=\"'+e(j)+'\"]',f.$element).length;if(f.isSelect&&!q){var r=a(\"<option selected>\"+e(k)+\"</option>\");r.data(\"item\",b),r.attr(\"value\",j),f.$element.append(r)}c||f.pushVal(),(f.options.maxTags===f.itemsArray.length||f.items().toString().length===f.options.maxInputLength)&&f.$container.addClass(\"bootstrap-tagsinput-max\"),a(\".typeahead, .twitter-typeahead\",f.$container).length&&f.$input.typeahead(\"val\",\"\"),this.isInit?f.$element.trigger(a.Event(\"itemAddedOnInit\",{item:b,options:d})):f.$element.trigger(a.Event(\"itemAdded\",{item:b,options:d}))}}}else if(f.options.onTagExists){var s=a(\".tag\",f.$container).filter(function(){return a(this).data(\"item\")===n});f.options.onTagExists(b,s)}}}},remove:function(b,c,d){var e=this;if(e.objectItems&&(b=\"object\"==typeof b?a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==e.options.itemValue(b)}):a.grep(e.itemsArray,function(a){return e.options.itemValue(a)==b}),b=b[b.length-1]),b){var f=a.Event(\"beforeItemRemove\",{item:b,cancel:!1,options:d});if(e.$element.trigger(f),f.cancel)return;a(\".tag\",e.$container).filter(function(){return a(this).data(\"item\")===b}).remove(),a(\"option\",e.$element).filter(function(){return a(this).data(\"item\")===b}).remove(),-1!==a.inArray(b,e.itemsArray)&&e.itemsArray.splice(a.inArray(b,e.itemsArray),1)}c||e.pushVal(),e.options.maxTags>e.itemsArray.length&&e.$container.removeClass(\"bootstrap-tagsinput-max\"),e.$element.trigger(a.Event(\"itemRemoved\",{item:b,options:d}))},removeAll:function(){var b=this;for(a(\".tag\",b.$container).remove(),a(\"option\",b.$element).remove();b.itemsArray.length>0;)b.itemsArray.pop();b.pushVal()},refresh:function(){var b=this;a(\".tag\",b.$container).each(function(){var c=a(this),d=c.data(\"item\"),f=b.options.itemValue(d),g=b.options.itemText(d),h=b.options.tagClass(d);if(c.attr(\"class\",null),c.addClass(\"tag \"+e(h)),c.contents().filter(function(){return 3==this.nodeType})[0].nodeValue=e(g),b.isSelect){var i=a(\"option\",b.$element).filter(function(){return a(this).data(\"item\")===d});i.attr(\"value\",f)}})},items:function(){return this.itemsArray},pushVal:function(){var b=this,c=a.map(b.items(),function(a){return b.options.itemValue(a).toString()});b.$element.val(c,!0).trigger(\"change\")},build:function(b){var e=this;if(e.options=a.extend({},h,b),e.objectItems&&(e.options.freeInput=!1),c(e.options,\"itemValue\"),c(e.options,\"itemText\"),d(e.options,\"tagClass\"),e.options.typeahead){var i=e.options.typeahead||{};d(i,\"source\"),e.$input.typeahead(a.extend({},i,{source:function(b,c){function d(a){for(var b=[],d=0;d<a.length;d++){var g=e.options.itemText(a[d]);f[g]=a[d],b.push(g)}c(b)}this.map={};var f=this.map,g=i.source(b);a.isFunction(g.success)?g.success(d):a.isFunction(g.then)?g.then(d):a.when(g).then(d)},updater:function(a){return e.add(this.map[a]),this.map[a]},matcher:function(a){return-1!==a.toLowerCase().indexOf(this.query.trim().toLowerCase())},sorter:function(a){return a.sort()},highlighter:function(a){var b=new RegExp(\"(\"+this.query+\")\",\"gi\");return a.replace(b,\"<strong>$1</strong>\")}}))}if(e.options.typeaheadjs){var j=null,k={},l=e.options.typeaheadjs;a.isArray(l)?(j=l[0],k=l[1]):k=l,e.$input.typeahead(j,k).on(\"typeahead:selected\",a.proxy(function(a,b){k.valueKey?e.add(b[k.valueKey]):e.add(b),e.$input.typeahead(\"val\",\"\")},e))}e.$container.on(\"click\",a.proxy(function(a){e.$element.attr(\"disabled\")||e.$input.removeAttr(\"disabled\"),e.$input.focus()},e)),e.options.addOnBlur&&e.options.freeInput&&e.$input.on(\"focusout\",a.proxy(function(b){0===a(\".typeahead, .twitter-typeahead\",e.$container).length&&(e.add(e.$input.val()),e.$input.val(\"\"))},e)),e.$container.on(\"keydown\",\"input\",a.proxy(function(b){var c=a(b.target),d=e.findInputWrapper();if(e.$element.attr(\"disabled\"))return void e.$input.attr(\"disabled\",\"disabled\");switch(b.which){case 8:if(0===f(c[0])){var g=d.prev();g.length&&e.remove(g.data(\"item\"))}break;case 46:if(0===f(c[0])){var h=d.next();h.length&&e.remove(h.data(\"item\"))}break;case 37:var i=d.prev();0===c.val().length&&i[0]&&(i.before(d),c.focus());break;case 39:var j=d.next();0===c.val().length&&j[0]&&(j.after(d),c.focus())}var k=c.val().length;Math.ceil(k/5);c.attr(\"size\",Math.max(this.inputSize,c.val().length))},e)),e.$container.on(\"keypress\",\"input\",a.proxy(function(b){var c=a(b.target);if(e.$element.attr(\"disabled\"))return void e.$input.attr(\"disabled\",\"disabled\");var d=c.val(),f=e.options.maxChars&&d.length>=e.options.maxChars;e.options.freeInput&&(g(b,e.options.confirmKeys)||f)&&(0!==d.length&&(e.add(f?d.substr(0,e.options.maxChars):d),c.val(\"\")),e.options.cancelConfirmKeysOnEmpty===!1&&b.preventDefault());var h=c.val().length;Math.ceil(h/5);c.attr(\"size\",Math.max(this.inputSize,c.val().length))},e)),e.$container.on(\"click\",\"[data-role=remove]\",a.proxy(function(b){e.$element.attr(\"disabled\")||e.remove(a(b.target).closest(\".tag\").data(\"item\"))},e)),e.options.itemValue===h.itemValue&&(\"INPUT\"===e.$element[0].tagName?e.add(e.$element.val()):a(\"option\",e.$element).each(function(){e.add(a(this).attr(\"value\"),!0)}))},destroy:function(){var a=this;a.$container.off(\"keypress\",\"input\"),a.$container.off(\"click\",\"[role=remove]\"),a.$container.remove(),a.$element.removeData(\"tagsinput\"),a.$element.show()},focus:function(){this.$input.focus()},input:function(){return this.$input},findInputWrapper:function(){for(var b=this.$input[0],c=this.$container[0];b&&b.parentNode!==c;)b=b.parentNode;return a(b)}},a.fn.tagsinput=function(c,d,e){var f=[];return this.each(function(){var g=a(this).data(\"tagsinput\");if(g)if(c||d){if(void 0!==g[c]){if(3===g[c].length&&void 0!==e)var h=g[c](d,null,e);else var h=g[c](d);void 0!==h&&f.push(h)}}else f.push(g);else g=new b(this,c),a(this).data(\"tagsinput\",g),f.push(g),\"SELECT\"===this.tagName&&a(\"option\",a(this)).attr(\"selected\",\"selected\"),a(this).val(a(this).val())}),\"string\"==typeof c?f.length>1?f:f[0]:f},a.fn.tagsinput.Constructor=b;var i=a(\"<div />\");a(function(){a(\"input[data-role=tagsinput], select[multiple][data-role=tagsinput]\").tagsinput()})}(window.jQuery);\n//# sourceMappingURL=bootstrap-tagsinput.min.js.map","import { Controller } from \"@hotwired/stimulus\"\nimport 'bootstrap-tagsinput/dist/bootstrap-tagsinput.min'\nimport 'bootstrap-tagsinput/dist/bootstrap-tagsinput.css'\n\nclass TagsInputController extends Controller {\n connect() {\n const target = this.element;\n\n $(target).tagsinput();\n $('.bootstrap-tagsinput > input').prop('style', null);\n }\n}\n\nexport default TagsInputController;\n","class SmartyForm {\n constructor() { }\n\n addErrors($form, prefix, errors) {\n _.each(errors, (value, key) => {\n const selector = '#' + [prefix, key].filter((el) => {\n return el\n }).join('_');\n\n const formGroup = $form.find(selector).closest('.form-group');\n formGroup.addClass('has-error');\n formGroup.append(`<span class=\"text-danger\">${ value.join(', ') }</span>`);\n });\n }\n\n removeErrors($form) {\n $form.find('.has-error').removeClass('has-error');\n $form.find('.text-danger').remove();\n }\n\n process(options = {}) {\n const formOptions = options,\n $form = formOptions.form,\n onSuccess = formOptions.onSuccess,\n onError = formOptions.onError,\n method = formOptions.method || 'POST',\n prefix = formOptions.prefix || '';\n\n this.removeErrors($form);\n\n const formId = $form.attr('id');\n\n // console.log(formId); const newString = myString.replace(/^(new|edit)_/, '');\n\n $.ajax({\n type: method,\n url: $form.attr('action'),\n data: $form.serialize(),\n success: (response) => { if (onSuccess) onSuccess(response); },\n error: (response) => {\n if (response.status === 422) {\n $form.find('input[type=submit]').prop('disabled', false);\n this.addErrors($form, prefix, (response.responseJSON || {}).errors)\n } else {\n Helper.flash_message('error', \"Something went wrong\")\n }\n\n if (onError) onError(response);\n }\n });\n }\n}\n\nexport default SmartyForm;","import { Controller } from \"@hotwired/stimulus\";\nimport axios from 'axios';\nimport SmartyForm from '../src/nextgen/helpers/smarty_form';\nimport { processingModal } from \"../src/nextgen/helpers/processing_modal\";\n\nclass EditAccountPasswordController extends Controller {\n showModal(e) {\n e.preventDefault();\n\n const requirementText = \"Password requirements: minimum of 8 characters, \" +\n \"with at least 1 upper case letter, 1 lower case \" +\n \"letter and 1 number\";\n axios\n .get(e.target.href)\n .then(response => {\n const modal = document.querySelector('#edit-form-modal');\n const modalContent = modal.querySelector('.modal-content');\n\n modalContent.innerHTML = response.data;\n\n const passwordBlock = modalContent.querySelector('.user_password');\n const requirementBlock = document.createElement('div');\n requirementBlock.innerHTML = requirementText;\n requirementBlock.classList.add('requirements');\n passwordBlock.appendChild(requirementBlock);\n $(modal).modal('show');\n })\n .catch((error) => {\n Helper.flash_message('error', 'Something went wrong')\n });\n }\n\n submit(e) {\n e.preventDefault();\n\n const form = this.element;\n const modal = form.closest('.modal');\n\n new SmartyForm().process({\n form: $(e.target),\n onSuccess: () => {\n $(modal).modal('hide');\n Helper.flash_message('success', 'Password updated');\n },\n onError: (data) => {\n const errors = data.responseJSON.errors\n const requirementBlock = form.querySelector('.requirements');\n\n if (errors.password) {\n requirementBlock.classList.add('hidden');\n } else {\n requirementBlock.classList.remove('hidden');\n }\n\n processingModal.hide();\n }\n });\n }\n}\n\nexport default EditAccountPasswordController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nclass OrderCancellationRequestController extends Controller {\n static targets = ['refundPercent', 'customRefundPercent', 'reasonBlock'];\n\n connect() {\n const customRefundElement = this.customRefundPercentTargets[0];\n\n if (customRefundElement) {\n const formGroup = customRefundElement.closest('.form-group');\n\n this.refundPercentTarget.addEventListener('change', function(e) {\n if (e.target.value === 'custom') {\n customRefundElement.value = '';\n $(formGroup).show();\n } else {\n $(formGroup).hide();\n customRefundElement.value = e.target.value;\n }\n });\n\n this.onChange();\n };\n }\n\n onChange() {\n const url = this.element.dataset.refundUrl;\n const refundableTextEl = this.element.querySelector('#refundable_text');\n const selectedRefundPercent = this.refundPercentTarget.value;\n const customRefundPercent = (this.customRefundPercentTarget.value || 0);\n const refundPercent = selectedRefundPercent === 'custom' ? customRefundPercent : selectedRefundPercent\n\n if (selectedRefundPercent === '100') {\n this.reasonBlockTarget.classList.add('hidden');\n this.reasonBlockTarget.querySelector('textarea').value = '';\n } else {\n this.reasonBlockTarget.classList.remove('hidden');\n }\n\n axios\n .get(url, { params: { refund_percent: refundPercent }})\n .then((response) => {\n refundableTextEl.innerHTML = response.data;\n });\n }\n}\n\nexport default OrderCancellationRequestController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nclass LinkVenuesFacilitiesController extends Controller {\n connect() {\n this.element.addEventListener('click', (e) => {\n e.preventDefault();\n\n $('.modal').modal('hide');\n\n const url = this.element.dataset.path;\n const modal = document.querySelector('#modal_venues');\n const content = modal.querySelector('.modal-content');\n\n axios\n .get(url)\n .then((response) => {\n content.innerHTML = response.data;\n\n $(modal).modal('show');\n });\n });\n }\n}\n\nexport default LinkVenuesFacilitiesController;\n","import { Controller } from \"@hotwired/stimulus\";\n\nconst RELOAD_TRIGGER = \"reload-neo-table\";\n\nclass NeoTableController extends Controller {\n static targets = [\"filter\", \"sort\", \"table\", \"reload\", \"delete\"];\n static values = { source: String, params: String };\n\n connect() {\n this.reloadData(this.url);\n this.reloadDataDebounced = this.debouncedSearch();\n this.element.addEventListener(\"action\", this.handleChildAction.bind(this));\n this.element.addEventListener(RELOAD_TRIGGER, this.handleCustomEvent.bind(this));\n }\n\n disconnect() {\n this.element.removeEventListener(RELOAD_TRIGGER, this.handleCustomEvent.bind(this));\n }\n\n handleChildAction(event) {\n this.reloadDataDebounced();\n }\n\n handleCustomEvent(event) {\n this.reloadData(this.url);\n }\n\n search() {\n this.reloadDataDebounced();\n }\n\n get url() {\n const formData = this.hasFilterTarget ? new FormData(this.filterTarget) : new FormData();\n const params = new URLSearchParams(formData);\n\n const queryStringIndex = this.sourceValue.indexOf('?');\n return this.sourceValue + (queryStringIndex !== -1 ? '&' : '?') + params.toString() + '&' + this.paramsValue;\n }\n\n reloadData(url) {\n fetch(url, { headers: { Accept: \"text/vnd.turbo-stream.html\" } })\n .then(r => r.text())\n .then(html => Turbo.renderStreamMessage(html))\n .catch(() => Helper.flash_message('error', 'Something went wrong'))\n }\n\n sort(sortBy, sortDir) {\n let url = this.url;\n if (sortBy) url += '&sort[column]=' + sortBy;\n if (sortDir) url += '&sort[dir]=' + sortDir;\n\n this.reloadData(url);\n }\n\n change_page(e) {\n e.preventDefault();\n\n const table = this.tableTarget;\n const href = e.target.getAttribute('href');\n this.reloadData(href);\n\n $('html, body').animate({ scrollTop: $(table).offset().top }, 250)\n }\n\n tableTargetConnected() {\n const table = this.tableTarget;\n const { sortBy, sortDir } = table.dataset;\n\n this.tableTarget.querySelectorAll('th[data-sort-by]').forEach((element) => {\n const content = element.innerHTML;\n element.innerHTML = '';\n\n const div = document.createElement('div');\n div.classList.add('sortable-column')\n\n const span = document.createElement('div');\n const isCurrentSortBy = sortBy === element.dataset.sortBy;\n const spanTitle = document.createElement('div');\n spanTitle.classList.add('neo-table-title')\n spanTitle.innerHTML = content;\n\n element.classList.add('pointer');\n span.classList.add('sorting');\n if (isCurrentSortBy) span.classList.add(sortDir);\n\n div.appendChild(span);\n div.appendChild(spanTitle);\n element.appendChild(div);\n\n element.addEventListener(\"click\", () => {\n let sD = null;\n if (isCurrentSortBy) sD = sortDir === 'desc' ? 'asc' : 'desc'\n this.sort(element.dataset.sortBy, sD);\n });\n\n const self = this;\n });\n\n this.element.querySelectorAll('ul.pagination a').forEach((pageLink) => {\n pageLink.addEventListener('click', (e) => {\n e.preventDefault();\n this.change_page(e);\n })\n })\n }\n\n debouncedSearch() {\n return _.debounce(() => {\n const { sortBy, sortDir } = this.tableTarget.dataset;\n\n let url = this.url;\n if (sortBy) url += '&sort[column]=' + sortBy;\n if (sortDir) url += '&sort[dir]=' + sortDir;\n\n this.reloadData(url);\n }, 250)\n }\n}\n\nexport default NeoTableController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\n\nclass SoftDeletedFacilityController extends Controller {\n toggleVisibility(e) {\n const form = e.target.form;\n const formData = new FormData(form);\n\n axios\n .put(form.action, formData)\n .catch((e) => Helper.flash_message('error', 'Something went wrong'));\n }\n}\n\nexport default SoftDeletedFacilityController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass FlashController extends Controller {\n connect() {\n const { notice, error } = this.element.dataset;\n\n if (notice) Helper.flash_message('success', notice);\n if (error) Helper.flash_message('error', error);\n }\n}\n\nexport default FlashController;","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass OrderMenuButtonController extends Controller {\n click(event) {\n const url = event.target.dataset.url;\n\n const ulDropDown = this.uL();\n\n if (ulDropDown === undefined) {\n this.fetchMenu(url)\n } else {\n ulDropDown.remove();\n }\n }\n\n uL() {\n return this.element.querySelectorAll('ul.dropdown-menu')[0];\n }\n\n fetchMenu(url) {\n fetch(url)\n .then(response => {\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n return response.text(); \n })\n .then((html) => {\n this.element.innerHTML += html;\n this.uL().style.display = 'inherit';\n\n const newUlDropDown = this.uL();\n\n document.addEventListener('click', (event) => {\n if (!this.element.contains(event.target)) newUlDropDown.remove();\n });\n\n const items = newUlDropDown.querySelectorAll('a');\n\n items.forEach(item => {\n item.addEventListener('click', () => setTimeout(() => newUlDropDown.remove(), 100))\n });\n })\n }\n}\n\nexport default OrderMenuButtonController;\n","import { Controller } from '@hotwired/stimulus'\nimport axios from 'axios';\n\nclass CustomerCustomOptionsController extends Controller {\n static targets = ['customOptionForm'];\n\n connect() {\n }\n\n addForm(event) {\n const url = event.target.dataset.url;\n\n axios.get(url).then((response) => {\n this.customOptionFormTarget.innerHTML = response.data;\n });\n }\n\n addExtrasList(event) {\n this.disableSubmitButton(true);\n\n const $parent = this.targets.element;\n const facilityId = event.target.value;\n const existedRecords = $parent.querySelectorAll('.custom_extra');\n const exceptedIds = [...existedRecords].map((row) => {\n return 'excepted_ids[]=' + row.dataset.customExtraId;\n });\n const url = '/admin/facilities/' + facilityId + '/extras/custom_list?' + exceptedIds.join('&');\n\n axios.get(url).then(function(response) {\n const extraList = $parent.querySelectorAll('.extra-list')[0];\n\n if (!extraList) return;\n\n extraList.innerHTML = response.data;\n });\n }\n\n addBookingOptionsList(event) {\n this.disableSubmitButton(true);\n\n const $parent = this.targets.element;\n const facilityId = event.target.value;\n const existedRecords = $parent.querySelectorAll('.custom_booking_option');\n const submitButton = this.customOptionFormTarget.querySelectorAll('input[type=submit]')[0];\n const exceptedIds = [...existedRecords].map((row) => {\n return 'excepted_ids[]=' + row.dataset.bookingOptionId;\n });\n const url = '/admin/facilities/' + facilityId + '/booking_options/custom_list?' + exceptedIds.join('&');\n\n axios.get(url).then(function(response) {\n const bookingOptionList = $parent.querySelectorAll('.booking-option-select-block')[0];\n\n if (!bookingOptionList) return;\n\n bookingOptionList.innerHTML = response.data;\n });\n }\n\n onChangeCustomOption(event) {\n const value = event.target.value;\n\n this.disableSubmitButton(value.length === 0);\n }\n\n disableSubmitButton(disabled) {\n const button = this.customOptionFormTarget.querySelectorAll('input[type=submit]')[0];\n\n if (button) button.disabled = disabled;\n }\n\n submitForm(event) {\n event.preventDefault();\n\n const resultClassName = event.target.dataset.resultClassName;\n const $resultBlock = this.targets.element.querySelectorAll(resultClassName)[0];\n const form = document.createElement('form');\n const fields = this.customOptionFormTarget.children;\n\n [...fields].map((field) => form.appendChild(field));\n\n axios({\n method: 'post',\n url: event.target.dataset.url,\n data: $(form).serializeObject()\n }).then((response) => {\n if ($resultBlock) $($resultBlock).append(response.data);\n });\n }\n}\n\nexport default CustomerCustomOptionsController;\n","import { Controller } from '@hotwired/stimulus'\n\nclass CustomerVenueLinkingsController extends Controller {\n static targets = [ 'venueSelectorHint' ]\n\n submitForm(event) {\n event.preventDefault()\n const checkboxesContainer = this.element.getElementsByClassName('venue-checkbox-container')\n let checkedCheckbox = Array.from(checkboxesContainer).find(element => {\n return element.getElementsByTagName('input')[0].checked\n })\n\n if (checkedCheckbox) {\n document.getElementById('link_venues_to_customer').submit()\n } else {\n this.venueSelectorHintTarget.classList.remove('hidden')\n }\n }\n}\n\nexport default CustomerVenueLinkingsController;\n","class Neo {\n static confirm(message, callback) {\n if (confirm(message) === true) {\n callback();\n } else {\n console.log(\"You did not confirm!\");\n }\n }\n\n static processError(error, callback) {\n if (error.response.status === 422) {\n callback(error)\n } else {\n Helper.flash_message('error', 'Something went wrong')\n }\n }\n\n static reloadTable(tableName) {\n const table = document.querySelector(`[data-controller=\"neo_table\"][data-name=\"${tableName}\"]`);\n\n if (table) {\n table.dispatchEvent(new CustomEvent(\"reload-neo-table\"));\n } else {\n console.error(\"No ancestor with data-controller='neo_table' found\");\n }\n }\n}\n\nwindow.Neo = Neo;\n\nexport default Neo;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport Neo from \"src/Neo\";\n\nclass VenueGroupsController extends Controller {\n static targets = ['modalForm', 'modalContent', 'venuesCheckboxes'];\n\n showFormModal(event) {\n event.preventDefault();\n\n const modal = this.modalFormTarget;\n const modalContent = this.modalContentTarget;\n\n if (!modalContent) return false\n\n axios\n .get(event.target.href)\n .then((response) => {\n modalContent.innerHTML = response.data;\n\n setTimeout(() => {\n $(modal).modal('show');\n }, 200);\n });\n }\n\n submit(event) {\n event.preventDefault();\n\n const modal = this.modalFormTarget;\n const form = event.target;\n const selectedIncomeType = form.querySelector('#venue_group_venue_group_income_option_attributes_income_type');\n\n if (['annual_fee', 'projected_income'].includes(selectedIncomeType?.value)) {\n const checkedVenues = this.venuesListNotAllocatedVenueGroup();\n\n if (checkedVenues.length > 0) {\n const preparedVenuesList = checkedVenues.map((el) => {\n return `${el.parentElement.textContent} - ${el.dataset.incomeType}`\n });\n\n const MESSAGE = \"The following venues below \" +\n \"have not been allocated to venue group: \\n\" +\n preparedVenuesList.join('\\n')\n\n if (!confirm(MESSAGE)) return false;\n }\n }\n\n const formData = new FormData(form);\n\n axios\n .post(form.action, formData, {\n headers: { \"X-Requested-With\": \"XMLHttpRequest\" }\n })\n .then((response) => {\n $(modal).modal('hide');\n if (response.data.venue_group_path) {\n this.updateColumns(response.data.venue_group_path)\n } else {\n Neo.reloadTable('admin_venue_groups_table')\n }\n })\n .catch((error) => {\n console.log(error)\n this.processError(error.response, modal);\n });\n }\n\n updateColumns(path) {\n axios.get(path, { headers: { 'Accept': 'text/vnd.turbo-stream.html' } }).then((r) => {\n Turbo.renderStreamMessage(r.data);\n }).catch((error) => Helper.flash_message('error', 'Something went wrong'));\n }\n\n checkedVenues() {\n return [...this.venuesCheckboxesTargets].filter((el) => el.checked);\n }\n\n venuesListNotAllocatedVenueGroup() {\n return [...this.checkedVenues()].filter((el) => el.dataset.incomeType != 'Venue group');\n }\n\n processError(response, modal) {\n if (response.status === 422) {\n modal.querySelector('.modal-content').innerHTML = response.data;\n }\n }\n\n checkAllVenues() {\n this.assignVenueOptions(true);\n }\n\n uncheckAllVenues() {\n this.assignVenueOptions(false);\n }\n\n assignVenueOptions(boolean) {\n this.venuesCheckboxesTargets.forEach((el) => el.checked = boolean);\n }\n}\n\nexport default VenueGroupsController;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","import { v4 as uuidv4 } from 'uuid';\n\nclass NeoModal {\n static add(data, options = {}) {\n const callback = options.callback;\n const contentDiv = document.getElementById('neo_modals');\n\n const parser = new DOMParser();\n const parsedHTML = parser.parseFromString(data, 'text/html');\n const firstDiv = parsedHTML.querySelector('div');\n\n const randomUUID = uuidv4();\n\n if (firstDiv)\n firstDiv.setAttribute('modal_id', randomUUID);\n\n contentDiv.appendChild(parsedHTML.body);\n\n if (callback) { callback() }\n\n return document.querySelector('div[modal_id=\"' + randomUUID + '\"]');\n }\n}\n\nexport default NeoModal;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\n\nclass AttachmentsController extends Controller {\n static targets = ['action']\n\n toggle_link_to_activity_report(event) {\n event.preventDefault();\n\n const toggleUrl = '/admin/attachments/' + event.params.id + '/toggle_link_to_activity_report';\n\n axios.post(toggleUrl).then((response) => {\n this.actionTarget.innerHTML = response.data.linked ? 'Unlink from activity report' : 'Link to activity report';\n })\n };\n\n remove_attachment(e) {\n e.preventDefault();\n\n const url = this.element.dataset.url;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (data) => {\n const id = data.detail?.response?.data?.id\n const elements = Array.from(document.getElementsByClassName(`attachment_${id}`));\n\n elements.forEach((element) => element.remove());\n\n $(modal).modal('hide');\n\n setTimeout(() => {\n const element = document.querySelector('[data-controller=\"mini_messenger\"]');\n if (element) $('body').addClass('modal-open');\n }, 300);\n });\n });\n }\n}\n\nexport default AttachmentsController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\n\nexport default class extends Controller {\n static targets = ['list', 'loader'];\n\n connect() {\n this.show = false;\n this.billsCache = {};\n this.listCache = null;\n }\n\n toggleList(e) {\n const button = e.target;\n\n button.disabled = true;\n\n this.show = !this.show;\n\n if (this.show) {\n button.innerHTML = 'View current version';\n this.loaderTarget.classList.remove('hidden');\n\n const cacheNumber = e.target.dataset.cacheNumber;\n\n if (!this.billsCache.hasOwnProperty(cacheNumber)) {\n this.billsCache[cacheNumber] = document.getElementById('current_bill').innerHTML;\n }\n\n const setData = () => {\n button.disabled = false;\n this.loaderTarget.classList.add('hidden');\n this.listTarget.innerHTML = this.listCache;\n const buttonsList = this.listTarget.querySelectorAll('button');\n this.upd(buttonsList[buttonsList.length -1]);\n }\n\n if (this.listCache) {\n setData();\n } else {\n axios.get(e.target.dataset.listLink).then(response => {\n this.listCache = response.data;\n setData();\n });\n }\n } else {\n button.innerHTML = 'View previous versions';\n this.listTarget.innerHTML = '';\n this.upd(e.target);\n button.disabled = false;\n }\n }\n\n setBill(e) {\n e.preventDefault();\n this.upd(e.target);\n }\n\n upd(target) {\n const container = document.getElementById('current_bill');\n const cancellationRequestBtnBlock = document.getElementById('cancellation_request_buttons');\n const link = target.dataset.link;\n const cacheNumber = target.dataset.cacheNumber;\n const el = this.element;\n\n target.classList.add('loading_version');\n container.classList.add('loading');\n\n const removeClassFor = (x) => el.querySelectorAll(`button.${x}`).forEach(el => el.classList.remove(x));\n\n const updateBill = (html) => {\n container.classList.remove('loading');\n container.innerHTML = html;\n\n removeClassFor('active_version');\n removeClassFor('loading_version');\n\n target.classList.add('active_version');\n\n const amendButton = document.querySelector('#amend_booking_button');\n const activeAmendmentContainer = document.querySelector('#modification.be_boxed.vert-offset-bottom-20');\n const addSessionsBlock = document.querySelector('#add_sessions_block');\n\n [amendButton, activeAmendmentContainer, addSessionsBlock].forEach((el) => {\n if (el) {\n el.style.display = this.show ? 'none' : 'block';\n }\n })\n }\n\n const hideCancellationRequestButtons = () => {\n if (cacheNumber) {\n cancellationRequestBtnBlock.classList.add('hidden');\n } else {\n cancellationRequestBtnBlock.classList.remove('hidden');\n }\n }\n\n if (this.billsCache.hasOwnProperty(cacheNumber)) {\n updateBill(this.billsCache[cacheNumber]);\n } else {\n axios.get(link).then(response => {\n this.billsCache[cacheNumber] = response.data;\n updateBill(response.data);\n });\n }\n\n if (cancellationRequestBtnBlock) hideCancellationRequestButtons();\n }\n}\n\n","import axios from \"axios\";\n\nclass Tab {\n reload(id, callback) {\n const tab = document.querySelector(\"a[data-target='#order_info']\");\n const href = tab.getAttribute('href');\n const header = document.getElementById('order_header');\n const tabParams = { target: 'order_info' };\n\n Promise.all([\n axios.get(href, { params: tabParams, headers: { 'X-Requested-With': 'XMLHttpRequest' } }),\n axios.get(header.dataset.url, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })\n ]).then(([response, response2]) => {\n document.getElementById('order_info').innerHTML = response.data;\n\n const targetDiv = document.getElementById(id);\n if (targetDiv) targetDiv.scrollIntoView({ behavior: 'smooth' });\n\n header.innerHTML = response2.data;\n\n if (callback) callback();\n })\n .catch(() => {\n const div = document.createElement('div');\n div.className = 'alert alert-danger';\n div.textContent = 'Something went wrong';\n\n const orderInfoElement = document.getElementById('order_info');\n orderInfoElement.innerHTML = ''; // Clear existing content (if any)\n orderInfoElement.appendChild(div);\n\n if (callback) callback();\n })\n }\n}\n\nexport default Tab;","import { Controller } from \"@hotwired/stimulus\"\nimport { processingModal } from \"src/nextgen/helpers/processing_modal\";\nimport axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\nimport OrderTab from \"src/nextgen/orders/Tab\";\nimport React, { lazy, Suspense } from \"react\";\nimport ReactDOM from \"react-dom\";\n\nexport default class extends Controller {\n static targets = ['showAddSessions', 'acceptCancellationRequestButton'];\n\n connect() {\n this.checkAddSessionExist()\n }\n\n checkAddSessionExist() {\n let button = document.getElementsByClassName('add-session-btn')\n let sessionBlock = document.getElementById('add_sessions_block')\n\n if (sessionBlock && button && button.length > 0) {\n if (sessionBlock.innerHTML.length === 0) {\n button[0].style.display = 'block'\n } else {\n button[0].style.display = 'none'\n }\n }\n }\n\n clone(e) {\n e.preventDefault();\n\n const button = e.target;\n const href = button.dataset.url;\n const addSessions = button.dataset.addSessions;\n\n button.disabled = true;\n processingModal.show();\n\n axios\n .post(href, { add_sessions: addSessions })\n .then((response) => {\n if (this.isOrderPage) {\n this.orderTab.reload('next_bill', () => {\n processingModal.hide();\n });\n } else {\n window.location = response.data.redirectTo;\n }\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error);\n processingModal.hide();\n button.disabled = false;\n });\n }\n\n showAddSessionsTargetConnected(target) {\n this.addSessions(target);\n }\n\n add_sessions(e) {\n e.preventDefault();\n this.addSessions(e.target);\n }\n\n send(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url } = e.target.dataset;\n\n if (button.disabled) return true;\n this.disableButton(button)\n\n axios.get(url).then((response) => {\n NeoModal.add(response.data)\n setTimeout(() => this.enableButton(button), 200)\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n this.enableButton(button);\n }\n })\n }\n\n decline_amendment(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then(response => {\n const modal= NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n } });\n\n modal.addEventListener('neo_modal:success', () => {\n this.orderTab.reload('next_bill', () => {\n $(modal).modal('hide');\n processingModal.hide();\n });\n })\n }).catch(() => {\n button.disabled = false;\n })\n }\n\n remove(e) {\n e.preventDefault;\n\n const button = e.target;\n const href = button.dataset.url;\n\n button.disabled = true;\n processingModal.show();\n\n document.body.dataset.paymentProcessing = 'true';\n\n axios\n .delete(href)\n .then((response) => {\n delete document.body.dataset.paymentProcessing;\n this.orderTab.reload('current_bill', () => processingModal.hide());\n })\n .catch((error) => {\n delete document.body.dataset.paymentProcessing;\n processingModal.hide();\n Helper.flash_message('error', error.response.data.error);\n button.disabled = false;\n });\n };\n\n rejectPendingUser(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n } });\n\n modal.addEventListener('neo_modal:success', () => {\n this.orderTab.reload('next_bill', () => {\n $(modal).modal('hide');\n processingModal.hide();\n });\n })\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n })\n }\n\n cancel(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url, orderUrl } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n }});\n\n modal.addEventListener('neo_modal:success', () => {\n $(modal).modal('hide');\n\n if (this.isOrderPage) {\n this.orderTab.reload('', () => {\n processingModal.hide();\n });\n } else {\n this.updateColumns(orderUrl);\n }\n })\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n })\n }\n\n requestCancellation(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url, orderUrl } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n }});\n\n modal.addEventListener('neo_modal:success', () => {\n $(modal).modal('hide');\n\n if (this.isOrderPage) {\n this.orderTab.reload('', () => {\n processingModal.hide();\n });\n } else {\n this.updateColumns(orderUrl);\n }\n })\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n })\n }\n\n rejectCancellationRequest(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n }});\n\n modal.addEventListener('neo_modal:success', () => {\n this.orderTab.reload('', () => {\n $(modal).modal('hide');\n processingModal.hide();\n });\n })\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n })\n }\n\n acceptCancellationRequestButtonTargetConnected(element) {\n if (window.location.hash.substring(1) === 'cancellation_modal') this.acceptCancellationRequest(element);\n }\n\n accept_cancellation_request(e) {\n e.preventDefault();\n this.acceptCancellationRequest(e.target);\n }\n\n acceptCancellationRequest(button) {\n const { url } = button.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n }});\n\n modal.addEventListener('neo_modal:success', () => {\n this.orderTab.reload('', () => {\n $(modal).modal('hide');\n processingModal.hide();\n });\n })\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n })\n }\n\n showCorrectionForm() {\n $('#admin_orders_editing_modal').modal('show')\n }\n\n correction(event) {\n event.preventDefault();\n\n processingModal.show(1)\n const target = event.target\n const form = target.closest('form');\n const url = form.getAttribute('action') + '.json';\n const data = new FormData(form);\n\n target.setAttribute('disabled', 'disabled');\n\n axios\n .patch(url, data)\n .then(() => {\n window.bookingTable.reload(false, { onUpdated: () => processingModal.hide() });\n })\n .catch((error) => {\n processingModal.hide();\n target.removeAttribute('disabled');\n\n if (error.response?.status === 422) {\n Helper.flash_message('error', error.response.data.errors)\n } else {\n Helper.flash_message('error', 'Something went wrong')\n }\n });\n };\n\n continuePendingUser(e) {\n e.preventDefault();\n\n const { url } = e.target.dataset;\n\n fetch(url, { redirect: \"manual\"}).then((response) => {\n if (response.type === 'opaqueredirect') {\n window.location.href = response.url;\n } else {\n return response;\n }\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n });\n }\n\n viewAmendment(e) {\n if (!this.isOrderPage) return false;\n\n e.preventDefault();\n\n this.orderTab.reload('', () => {\n const anchor = 'modification';\n const element = document.getElementById(anchor);\n\n element.scrollIntoView({ behavior: 'smooth' });\n });\n }\n\n get orderTab() {\n return new OrderTab();\n }\n\n get isOrderPage() {\n return document.getElementById('current_bill') !== null;\n }\n\n addSessions(button) {\n const href = button.dataset.url;\n const position = document.getElementById('add_sessions_block');\n\n if (position.innerHTML !== '') {\n position.scrollIntoView({behavior: 'smooth'});\n return;\n }\n\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(href).then((response) => {\n document.getElementById('add_sessions_block').innerHTML = response.data;\n\n const el = document.getElementById('booking_form_component')\n\n const bookingForm = () => import(\"src/components/BookingForm\")\n\n if (el) {\n const position = document.getElementById('add_sessions_block');\n setTimeout(() => position.scrollIntoView({behavior: 'smooth'}), 200);\n button.disabled = false;\n\n const Component = lazy(bookingForm);\n ReactDOM.render(<Suspense fallback={<div/>}><Component/></Suspense>, el);\n }\n }).catch((error) => {\n Helper.flash_message('error', 'Something went wrong');\n button.disabled = false;\n });\n }\n\n disableButton(button) {\n button.disabled = true;\n button.setAttribute('disabled', 'disabled');\n }\n\n enableButton(button) {\n button.disabled = false;\n button.removeAttribute('disabled');\n }\n\n updateColumns(orderUrl) {\n axios.get(orderUrl, { headers: { 'Accept': 'text/vnd.turbo-stream.html' } }).then((r) => {\n Turbo.renderStreamMessage(r.data);\n }).catch(() => Helper.flash_message('error', 'Something went wrong'));\n }\n\n processFailedPayment(e) {\n e.preventDefault();\n\n const button = e.target;\n const href = button.getAttribute('href');\n const tab = document.querySelector('a[data-target=\"#payments_info\"]');\n\n if (tab) {\n tab.click();\n\n setTimeout(() => {\n const position = document.getElementById('process_payment_request');\n\n if (position !== null) position.scrollIntoView({ behavior: 'smooth' });\n }, 250);\n\n return;\n }\n\n window.location.href = href;\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = ['continue', 'answer', 'form'];\n\n connect() {\n this.value = 0;\n\n document.addEventListener('updateUploadStatus', (event) => {\n this.updateValue(event.detail);\n });\n\n function isElementInViewport(el) {\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\n el = el[0];\n }\n\n var rect = el.getBoundingClientRect();\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n rect.right <= (window.innerWidth || document.documentElement\n .clientWidth) /* or $(window).width() */\n );\n }\n\n $(\".required\").on('focus', function() {\n var container\n container =\n !$(this).is('select')\n ? $(this).is('textarea') ? $(this).parent().parent().parent() : $(this).parent().parent().parent().parent()\n : $(this).parent().parent();\n if (!isElementInViewport(container)) {\n container[0].scrollIntoView();\n }\n });\n }\n\n updateValue(delta) {\n this.value += delta;\n this.continueTarget.disabled = (this.value > 0);\n }\n\n onSelectOption(e) {\n const question = e.target.closest('.question');\n const answersTriggerChild = question.dataset.answersTriggerChild;\n\n if (answersTriggerChild === '') return;\n\n const parsedAnswers = answersTriggerChild.split(',');\n\n this.answerTargets\n .filter((el) => el.dataset.parentId == question.dataset.id)\n .map((item) => {\n let disabled = null;\n let childInputs = item.querySelectorAll('input, select, textarea');\n\n if (parsedAnswers.includes(e.target.value)) {\n disabled = false;\n item.classList.remove('hide');\n } else {\n disabled = true;\n item.classList.add('hide');\n }\n\n [...childInputs].map((el) => el.disabled = disabled);\n });\n }\n\n checkValidity(e) {\n if (this.formTarget.checkValidity() == true) return;\n\n e.preventDefault();\n\n const target = $(this.formTarget.querySelectorAll(':invalid'))[0];\n const tabPane = target.closest('.tab-pane');\n\n target.reportValidity();\n\n if (tabPane) {\n const navLink = $(`.nav-tabs li a[href='#${tabPane.id}']`);\n\n if (navLink) navLink.tab('show');\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport { processingModal } from \"src/nextgen/helpers/processing_modal\";\n\nclass NeoModalController extends Controller {\n connect() {\n this.inProgress = false;\n this.prefix = this.element.dataset.prefix;\n this.modal = $(this.element);\n this.form = this.element.querySelector(\"form\");\n this.inProgressElements = this.element.querySelectorAll(\".in_progress_shadow\");\n\n if (this.form) {\n this.form.addEventListener('submit', (e) => {\n e.preventDefault();\n this.sendForm();\n })\n }\n\n this.modal.modal('show');\n this.modal.modal({ backdrop: 'static', keyboard: false });\n\n this.modal.on('hide.bs.modal', (e) => {\n if (this.inProgress) e.preventDefault();\n });\n\n this.modal.on('hidden.bs.modal', (e) => {\n e.preventDefault();\n this.element.remove();\n })\n }\n\n sendForm() {\n const form = this.form;\n const url = form.getAttribute('action');\n\n if (this.inProgress) return true;\n if (url === null) return true;\n\n this.setInProgress(true);\n this.removeErrors();\n\n const options = {\n method: form.getAttribute('method') || 'POST',\n url: form.getAttribute('action'),\n data: new FormData(form)\n }\n\n axios(options)\n .then((response) => this.onSuccess(response))\n .catch((error) => {\n this.setInProgress(false);\n\n const { response } = error;\n\n if (response.status === 422) {\n this.addErrors((response.data || {}).errors)\n } else {\n Helper.flash_message('error', \"Something went wrong\")\n }\n\n this.onFailed(error);\n });\n }\n\n addErrors(errors) {\n const prefix = this.prefix;\n const form = this.form;\n\n Object.keys(errors).forEach((key) => {\n const value = errors[key];\n const messages = value.join(', ');\n\n if (key === 'base') {\n const messageBlock = form.querySelector('.base_error_message');\n\n if (messageBlock) {\n messageBlock.innerHTML = `<span class=\"text-danger\">${messages}</span>`;\n }\n } else {\n const selector = '#' + [prefix, key].filter(el => el).join('_');\n const element = form.querySelector(selector);\n\n if (element === null) return;\n\n const formGroup = form.querySelector(selector).closest('.form-group');\n\n if (formGroup === null) return;\n\n const errorMessage = document.createElement('span');\n errorMessage.className = 'text-danger';\n errorMessage.textContent = messages;\n\n formGroup.classList.add('has-error');\n formGroup.appendChild(errorMessage);\n }\n });\n }\n\n removeErrors() {\n const form = this.form;\n const errorGroups = form.querySelectorAll('.has-error');\n const errorMessages = form.querySelectorAll('.text-danger');\n\n errorGroups.forEach((errorGroup) => errorGroup.classList.remove('has-error'));\n errorMessages.forEach((errorMessage) => errorMessage.parentNode.removeChild(errorMessage));\n }\n\n setInProgress(status) {\n this.inProgress = status;\n\n if (this.inProgress) {\n processingModal.show();\n this.inProgressElements.forEach(element => element.classList.remove('hidden'));\n } else {\n processingModal.hide();\n this.inProgressElements.forEach(element => element.classList.add('hidden'));\n }\n }\n\n onSuccess(response) {\n this.setInProgress(false);\n const successEvent = new CustomEvent('neo_modal:success', { detail: { response: response } });\n this.element.dispatchEvent(successEvent);\n //this.modal.modal('hide');\n }\n\n onFailed(error) {\n const errorEvent = new CustomEvent('neo_modal:error', { detail: { error: error } });\n this.element.dispatchEvent(errorEvent);\n }\n}\n\nexport default NeoModalController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport NeoModal from \"src/NeoModal\";\nimport axios from 'axios';\n\nclass NeoButtonController extends Controller {\n create(e) {\n e.preventDefault();\n\n const button = e.target;\n const url = button.dataset.url;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (event) => {\n Helper.flash_message('success', event.detail.response.data.notice);\n $(modal).modal('hide');\n const e = new CustomEvent(\"reload-neo-table\", { detail: { } });\n document.dispatchEvent(e);\n })\n });\n }\n\n edit(e) {\n e.preventDefault();\n\n const button = e.target;\n const url = button.dataset.url;\n\n axios.get(url).then((response) => {\n const m = NeoModal.add(response.data);\n\n m.addEventListener('neo_modal:success', (event) => {\n Helper.flash_message('success', event.detail.response.data.notice);\n $(m).modal('hide');\n const e = new CustomEvent(\"reload-neo-table\", { detail: { } });\n document.dispatchEvent(e);\n })\n });\n }\n\n toggle_hide(e) {\n e.preventDefault();\n\n const button = e.target;\n const url = button.dataset.url;\n\n axios.post(url).then((response) => {\n Helper.flash_message('success', response.data.notice);\n const e = new CustomEvent(\"reload-neo-table\", { detail: { } });\n document.dispatchEvent(e);\n });\n }\n}\n\nexport default NeoButtonController;","import React from \"react\";\n\nexport const CheckFileSize = (input) => {\n const file = input.files[0];\n const size = file.size / 1024 / 1024;\n let message = null;\n\n if (size > 10) {\n message = 'The file you have uploaded is larger than our limit of 10 MB';\n } else if (size == 0) {\n message = 'The file you have uploaded is corrupted';\n };\n\n if (message) input.value = '';\n\n return message;\n};\n","import { useRef, useState, useMemo, useEffect } from 'react';\nimport axios from \"axios\";\nimport { CheckFileSize } from \"./Validations\";\nimport classnames from 'classnames';\n\nexport default ({ uid,\n index,\n uploadUrl,\n file,\n updateFile,\n removeDocument,\n documentsLength,\n onInProgress,\n mandatory,\n disabled,\n allowDelete = true}) => {\n\n const [askUpload, setAskUpload] = useState(false);\n const [uploadProcess, setUploadProcess] = useState(false);\n const [showError, setShowError] = useState(false);\n const [showErrorMessage, setShowErrorMessage] = useState('');\n const [hiddenDeleteButton, setHiddenDeleteButton] = useState(false);\n const [uploadPercent, setUploadPercent] = useState(0);\n\n const fileRef = useRef();\n\n const required = useMemo(() => index === 0 && mandatory, [index, mandatory])\n\n const upload = () => {\n let errorMessage = CheckFileSize(fileRef.current);\n\n if (errorMessage) {\n setShowError(true);\n setShowErrorMessage(errorMessage)\n return;\n }\n\n setShowError(false);\n\n if (allowDelete) {\n uploadFile();\n } else {\n setAskUpload(true);\n }\n }\n\n const approve = (e) => {\n e.preventDefault();\n setAskUpload(false);\n uploadFile();\n }\n\n const cancelUpload = () => {\n setAskUpload(false);\n updateFile(null);\n fileRef.current.value = '';\n }\n\n const uploadFile = () => {\n const formData = new FormData();\n formData.set('file', fileRef.current.files[0]);\n\n setUploadPercent(0);\n setUploadProcess(true);\n increase();\n\n axios\n .post(uploadUrl, formData, {\n onUploadProgress: progressEvent => {\n const progress = Math.round((progressEvent.loaded / progressEvent.total) * 100);\n setUploadPercent(progress);\n }\n })\n .then(response => {\n const { data } = response;\n setUploadProcess(false);\n updateFile({ name: data.filename, url: data.file_url, deleteUrl: data.delete_url });\n decrease();\n })\n .catch((error) => {\n setUploadProcess(false);\n setUploadPercent(0);\n\n if (error.response.status === 422) {\n fileRef.current.value = '';\n setShowError(true);\n setShowErrorMessage(error.response.data.errors.file)\n }\n\n decrease();\n });\n }\n\n useEffect(() => {\n const input = fileRef.current;\n if (fileRef.current) input.setCustomValidity(required ? 'A document must be uploaded' : '')\n }, [required])\n\n const removeDoc = (e) => {\n e.preventDefault();\n\n if (file === null) {\n removeDocument();\n } else {\n increase();\n setHiddenDeleteButton(true);\n axios.delete(file.deleteUrl).then(response => {\n setHiddenDeleteButton(false);\n decrease();\n removeDocument();\n }).catch(() => {\n setHiddenDeleteButton(false);\n decrease();\n });\n }\n }\n\n const increase = () => { onInProgress(1) }\n const decrease = () => { onInProgress(-1) }\n\n const visibleDelete = useMemo(() => {\n if (hiddenDeleteButton) return false;\n if (file !== null && !allowDelete) return false;\n if (documentsLength === 1 && file === null) return false;\n\n return true;\n }, [documentsLength, file, hiddenDeleteButton])\n\n const fileClassName = classnames(required ? 'required' : '')\n\n return (\n <div data-uid={uid}>\n <div className='question_document form-group'>\n {mandatory && <abbr style={{ position: 'absolute', top: 0, right: -15, textDecoration: \"none\" }} title='required'>*</abbr>}\n\n {uploadProcess &&\n <div className='upload'>\n <div className='upload_progress' style={{ width: `calc(${uploadPercent}% - 4px)` }}></div>\n </div>\n }\n\n <div className='pull-right'>\n {askUpload && <a href=\"#\" style={{ paddingRight: 5 }} onClick={(e) => approve(e)}>Confirm</a>}\n {visibleDelete && <a href=\"#\" onClick={(e) => removeDoc(e)}>Delete</a>}\n </div>\n\n {file ?\n <a href={file.url} target=\"_blank\">{file.name}</a> :\n <input\n type=\"file\"\n className={fileClassName}\n ref={fileRef}\n onChange={upload}\n required={required}\n disabled={disabled}\n onFocus={(e) => {\n // For Iphones and Ipad\n if(required) {\n const input = e.target;\n input.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n }\n }}/>\n }\n </div>\n\n {showError &&\n <div className=\"has-error\">\n <div className='help-block'>\n { showErrorMessage }\n </div>\n </div>\n }\n </div>\n );\n}\n","import React, { useState } from 'react';\nimport Document from \"./Document\";\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default ({ uploadUrl,\n initDocuments,\n mandatory,\n disabled,\n parentElement,\n allowDelete = true,\n documentsLimit = 3 }) => {\n\n const [documents, setDocuments] = useState(initDocuments);\n\n const addDocument = (e) => {\n e.preventDefault();\n setDocuments([...documents, { uid: uuidv4(), file: null }]);\n }\n\n const updateFile = (index, file) => {\n const updatedDocuments = [...documents];\n updatedDocuments[index]['file'] = file;\n setDocuments(updatedDocuments);\n }\n\n const removeDocument = (index) => {\n if (documents.length > 1) {\n const updatedDocuments = documents.filter((_, i) => i !== index);\n setDocuments(updatedDocuments);\n } else {\n const updatedDocuments = [...documents];\n updatedDocuments[index]['file'] = null;\n setDocuments(updatedDocuments);\n }\n }\n\n const sendEvent = (v) => {\n if (!parentElement) return null;\n\n let event = new CustomEvent('updateUploadStatus', {\n bubbles: true,\n cancelable: true,\n detail: v\n });\n\n parentElement.dispatchEvent(event);\n }\n\n const isMandatory = mandatory && documents.every((x) => x.file === null)\n\n return (\n <div>\n <div>\n {documents.map((document, index) => (\n <Document\n index={index}\n documentsLength={documents.length}\n key={document.uid}\n uid={document.uid}\n uploadUrl={uploadUrl}\n file={document.file}\n updateFile={(data) => updateFile(index, data)}\n removeDocument={() => removeDocument(index)}\n onInProgress={sendEvent}\n allowDelete={allowDelete}\n mandatory={isMandatory}\n disabled={disabled}\n />\n ))}\n </div>\n\n {documents.length === documentsLimit &&\n <div>The maximum number of documents has been reached</div>\n }\n\n {documents.length < documentsLimit &&\n <a href=\"#\" onClick={(e) => addDocument(e)}>Add another document</a>\n }\n </div>\n )\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport ReactDOM from \"react-dom\";\nimport Documents from \"src/components/FileUploader/Documents\";\nimport React from \"react\";\nimport { v4 as uuidv4 } from 'uuid';\n\nexport default class extends Controller {\n connect() {\n const el = this.element;\n const children = el.querySelectorAll('div');\n const parentElement = el.closest('[data-controller=\"checkouts--venue_questions\"]');\n\n let documents = [];\n\n children.forEach(x => {\n const info = x.dataset;\n documents.push({\n id: info.id,\n file: { name: info.filename, url: info.fileUrl, deleteUrl: info.deleteUrl },\n uid: uuidv4()\n })\n });\n\n if (documents.length === 0) documents.push({ uid: uuidv4(), file: null });\n\n const documentComponent = <Documents\n parentElement={parentElement}\n initDocuments={documents}\n mandatory={el.dataset.mandatory === 'true'}\n disabled={el.dataset.disabled === 'true'}\n uploadUrl={el.dataset.uploadUrl}\n documentsLimit={parseInt(el.dataset.documentsLimit || 3)}\n allowDelete={el.dataset.allowDelete !== 'false'}\n />;\n\n ReactDOM.render(documentComponent, el);\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport OrderTab from \"src/nextgen/orders/Tab\";\n\nclass PendingModificationController extends Controller {\n connect() {\n const modificationId = this.element.dataset.id;\n\n const subscriptionOptions = {\n channel: 'ModificationChannel',\n id: modificationId\n }\n\n const subscription = App.cable.subscriptions.create(subscriptionOptions, {\n connected: () => { subscription.send({}) },\n received: (data) => {\n if ([\"succeeded\", \"failed\"].includes(data.status)) {\n subscription.unsubscribe();\n\n if (data.status === 'failed') {\n $('#failed-payment-modification').modal('show');\n } else {\n this.orderTab.reload('current_bill');\n }\n }\n }\n });\n }\n\n get orderTab() {\n return new OrderTab();\n }\n}\n\nexport default PendingModificationController;","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\n\nclass IncomeOptionFormController extends Controller {\n static values = { datePickerOptions: { format: 'D, dd M yyyy', autoclose: true }};\n static targets = ['incomeType', 'incomeAmount', 'incomeEndDate', 'incomeStartDate'];\n\n connect() {\n this.toggleType();\n }\n\n toggleType(event) {\n if (!this.incomeTypeTargets[0]) return false;\n\n if (event?.target) {\n this.incomeAmountTarget.value = '';\n this.incomeStartDateTarget.value = '';\n this.incomeEndDateTarget.value = '';\n }\n\n this.setAmount();\n this.setStartDate();\n this.setEndDate();\n this.setFirstVenueCommission();\n }\n\n setAmount() {\n const amountBox = this.incomeAmountTarget.closest('#income-amount-box');\n const incomeTypes = ['annual_fee', 'archived_annual_fee', 'annual_fee_forecast',\n 'projected_income', 'projected_income_forecast',\n 'archived_projected_income'];\n\n if (incomeTypes.includes(this.incomeTypeTarget.value)) {\n amountBox.classList.remove('hidden');\n } else {\n amountBox.classList.add('hidden');\n }\n }\n\n setStartDate() {\n const incomeTypes = { projected_income: 'Projected income date' };\n const incomeOptionStartDateInput = this.incomeStartDateTarget.closest('#income-start-date');\n\n $(this.incomeStartDateTarget).datepicker(this.datePickerOptionsValue);\n\n this.setIncomeDate(incomeTypes, incomeOptionStartDateInput);\n }\n\n setEndDate() {\n const incomeTypes = { archived_annual_fee: 'Annual fee end date' };\n const incomeOptionEndDateInput = this.incomeEndDateTarget.closest('#income-end-date');\n\n $(this.incomeEndDateTarget).datepicker(this.datePickerOptionsValue);\n\n this.setIncomeDate(incomeTypes, incomeOptionEndDateInput);\n }\n\n setIncomeDate(options, target) {\n const label = target.querySelector('label');\n\n if (options[this.incomeTypeTarget.value]) {\n target.classList.remove('hidden');\n if (label) label.innerText = options[this.incomeTypeTarget.value];\n } else {\n target.classList.add('hidden');\n }\n }\n\n setFirstVenueCommission() {\n const firstCheckedVenueCommission = this.filterVenuesWithCommission()[0];\n const incomeTypes = ['projected_income'];\n const amountInput = this.incomeAmountTarget;\n\n if (firstCheckedVenueCommission && incomeTypes.includes(this.incomeTypeTarget.value)) {\n const firstVenueCommission = firstCheckedVenueCommission.dataset.commission;\n\n if (amountInput.value === '') this.incomeAmountTarget.value = firstVenueCommission;\n }\n }\n\n filterVenuesWithCommission(el) {\n return [...this.allCheckedVenues()].filter((el) => el.dataset.commission);\n }\n\n allCheckedVenues() {\n const checkboxes = document.querySelectorAll('#venues-in-venue-groups .check_boxes');\n\n return [...checkboxes].filter((el) => el.checked);\n }\n}\n\nexport default IncomeOptionFormController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport NeoModal from \"src/NeoModal\";\n\nexport default class extends Controller {\n update(e) {\n const id = e.target.dataset.id;\n\n axios.get(`/profile/card_modal?connect_customer_id=${id}`).then(response => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:payment_success', (e) => {\n const { data } = e.detail;\n\n $(modal).modal('hide');\n Helper.flash_message('success', data.message);\n document.getElementById(`card_last4_${data.connect_customer_id}`).innerHTML = data.card_last4;\n })\n })\n }\n}\n"," import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport NeoModal from \"src/NeoModal\";\n\nexport default class extends Controller {\n connect() {\n const { stripeIntentStatus } = this.element.dataset;\n\n if (stripeIntentStatus === 'requires_action') {\n this.showModal();\n }\n }\n\n update(e) {\n const button = e.target;\n if (button.disabled) return true;\n button.disabled = true;\n this.showModal(() => button.disabled = false );\n }\n\n showModal(callback) {\n const url = this.element.dataset.url;\n\n axios.get(url).then(response => {\n const modal = NeoModal.add(response.data);\n\n $(modal).on('hidden.bs.modal', () => {\n if (callback) callback();\n })\n\n modal.addEventListener('neo_modal:payment_success', (e) => {\n const { data } = e.detail;\n if (data.add_show_notification) localStorage.showNotification = 'showNotification';\n Cookies.set('show_new_order_id', data.order_id);\n window.location.replace(data.redirect_link);\n })\n }).catch(() => {\n Helper.flash_message('error', 'Something went wrong');\n if (callback) callback();\n })\n }\n}\n","export default function axn() {\n let subscription = null;\n\n function subscribe(id, onReceived) {\n subscription = App.cable.subscriptions.create(\n { channel: \"ModificationChannel\", id: id },\n {\n connected: () => subscription.send({}),\n received: (data) => {\n switch (data.status) {\n case 'succeeded':\n case 'failed':\n subscription.unsubscribe();\n onReceived(data)\n break;\n case 'request_action':\n onReceived(data)\n break;\n case 'pending':\n console.log(\"Pending.......................\")\n break;\n default:\n console.log(`Unknown status: ${data.status}`)\n break;\n }\n }\n }\n );\n }\n\n return { subscribe: subscribe }\n}","export const elementStyles = {\n base: {\n color: '#32325d',\n fontFamily: '\"Helvetica Neue\", Helvetica, sans-serif',\n fontSmoothing: 'antialiased',\n fontSize: '16px',\n '::placeholder': {\n color: '#aab7c4'\n }\n },\n invalid: {\n color: '#fa755a',\n iconColor: '#fa755a'\n }\n};\n","import { elementStyles } from \"./elementStyles\";\n\nexport default function stripeForm({ stripe, onSubmit, onDisabledInputs, onEnabledInputs }) {\n const stripeElements = stripe.elements({\n fonts: [{ cssSrc: 'https://fonts.googleapis.com/css?family=Quicksand' }],\n locale: 'en',\n });\n\n const elementClasses = { focus: 'focus', empty: 'empty', invalid: 'invalid' };\n const elementOptions = { style: elementStyles, classes: elementClasses };\n const cardNumber = stripeElements.create('cardNumber', elementOptions);\n const cardExpiry = stripeElements.create('cardExpiry', elementOptions);\n const cardCvc = stripeElements.create('cardCvc', elementOptions);\n\n cardNumber.mount(`#stripe-card-number`);\n cardExpiry.mount(`#stripe-card-expiry`);\n cardCvc.mount(`#stripe-card-cvc`);\n \n const elements = [cardNumber, cardExpiry, cardCvc];\n const example = document.querySelector(`#stripe-modal`);\n const form = example.querySelector('form.stripe-box-form');\n const error = form.querySelector('.error');\n const submit = form.querySelector('button[type=\"submit\"]');\n\n const resetForm = () => {\n form.reset();\n elements.forEach(element => element.clear());\n error.classList.remove('visible');\n enableInputs();\n }\n\n const enableInputs = () => {\n form.querySelector(\"button[type='submit']\").removeAttribute('disabled');\n Array.prototype.forEach.call(\n form.querySelectorAll(\"input[type='text'], input[type='email'], input[type='tel']\"),\n (input) => input.removeAttribute('disabled')\n );\n\n if (onEnabledInputs) onEnabledInputs();\n }\n\n const disableInputs = () => {\n form.querySelector(\"button[type='submit']\").setAttribute('disabled', 'disabled');\n Array.prototype.forEach.call(\n form.querySelectorAll(\"input[type='text'], input[type='email'], input[type='tel']\"),\n (input) => input.setAttribute('disabled', 'true')\n );\n\n if (onDisabledInputs) onDisabledInputs();\n }\n\n const triggerBrowserValidation = () => {\n let submit = document.createElement('input');\n submit.type = 'submit';\n submit.style.display = 'none';\n form.appendChild(submit);\n submit.click();\n submit.remove();\n }\n\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n\n if (e.target.disabled) return;\n\n var plainInputsValid = true;\n\n Array.prototype.forEach.call(form.querySelectorAll('input'), (input) => {\n if (input.checkValidity && !input.checkValidity()) {\n plainInputsValid = false;\n return;\n }\n });\n\n if (!plainInputsValid) {\n triggerBrowserValidation();\n return;\n }\n\n disableInputs();\n\n handleSubmit();\n });\n\n const handleSubmit = () => {\n const name = form.querySelector('#stripe-card-name');\n const zip = form.querySelector('#stripe-card-zip');\n\n const additionalData = {\n name: name ? name.value : undefined,\n address_zip: zip ? zip.value : undefined,\n };\n\n onSubmit(cardNumber, additionalData);\n }\n\n addErrorsHandler(form, elements)\n\n return {\n resetForm: resetForm,\n enableInputs: enableInputs,\n disableInputs: disableInputs\n }\n}\n\nfunction addErrorsHandler(form, elements) {\n const savedErrors = [];\n const error = form.querySelector('.error');\n const errorMessage = error.querySelector('.message');\n\n elements.forEach((element, idx) => {\n element.on('change', (event) => {\n if (event.error) {\n error.classList.add('visible');\n savedErrors[idx] = event.error.message;\n errorMessage.innerText = event.error.message;\n } else {\n savedErrors[idx] = null;\n\n let nextError = Object\n .keys(savedErrors)\n .sort()\n .reduce((maybeFoundError, key) => maybeFoundError || savedErrors[key], null);\n\n if (nextError) {\n errorMessage.innerText = nextError;\n } else {\n error.classList.remove('visible');\n }\n }\n });\n });\n}\n\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport anx from \"src/nextgen/Payments/anx\";\nimport stripeForm from \"src/nextgen/Payments/Form/stripeForm\";\n\nexport default class extends Controller {\n static targets = ['spinner']\n\n connect() {\n const dataset = this.element.dataset;\n\n this.stripeAccount = dataset.stripeAccount;\n this.stripe = this.stripeAccount ? Stripe(App.stripe._apiKey, { stripeAccount: this.stripeAccount }) : App.stripe;\n this.sendForm = dataset.sendForm;\n this.offline = dataset.offline === \"true\" || false;\n this.stripeIntentStatus = dataset.stripeIntentStatus;\n this.clientSecretUrl = dataset.clientSecretUrl;\n this.connect = anx();\n\n this.modal = this.element.closest('[data-controller=\"neo_modal\"]');\n\n if (this.offline) {\n this.spinnerTarget.style.display = '';\n document.body.dataset.paymentProcessing = 'true';\n\n setTimeout(() => this.getClientSecret().then(obj => {\n this.subscribe(obj.id)\n this.processOffline(obj);\n }), 200);\n }\n\n // specific actions\n if (this.stripeIntentStatus === 'requires_action') {\n this.showSpinner();\n this.processStripeCard({\n id: dataset.modificationId,\n clientSecret: dataset.clientSecret\n });\n }\n\n const { enableInputs } = stripeForm({\n stripe: this.stripe,\n onSubmit: this.onSubmitForm,\n onEnabledInputs: this.hideSpinner,\n onDisabledInputs: this.showSpinner\n })\n\n this.enableInputs = enableInputs;\n }\n\n onSubmitForm = (cardNumber, additionalData) => {\n const submitEvent = new CustomEvent('neo_modal:submit');\n this.modal.dispatchEvent(submitEvent);\n\n this.showSpinner();\n\n this.getClientSecret().then(obj => {\n this.processCard(obj, cardNumber, additionalData)\n }).catch((e) => {\n this.hideSpinner();\n this.enableInputs();\n\n if (e.response.status === 422) {\n const failedEvent = new CustomEvent('neo_modal:failed', { detail: { data: e.response.data } });\n this.modal.dispatchEvent(failedEvent);\n } else {\n this.handleFailed('Something went wrong')\n }\n })\n }\n\n processOffline(modification) {\n const { id, orderId } = modification;\n axios\n .post(`/orders/${orderId}/checkout/payment/confirm_offline?modification_id=${modification.id}`)\n .then()\n .catch(() => Helper.flash_message('Something went wrong'));\n }\n\n processCard(modification, cardNumber, additionalData) {\n const attrs = {\n payment_method: {\n card: cardNumber,\n billing_details: {\n name: additionalData.name\n }\n }\n }\n\n this.processStripeCard(modification, attrs);\n }\n\n processStripeCard(modification, attrs) {\n const { id, clientSecret } = modification;\n\n const confirmFn = this.confirmMethod(clientSecret);\n\n if (confirmFn === null) {\n this.handleFailed('Unexpected result')\n return;\n }\n\n confirmFn(clientSecret, attrs).then((result) => {\n if (result.error) {\n this.hideSpinner()\n this.handleFailed({ message: result.error.message })\n } else {\n this.subscribe(id)\n }\n });\n }\n\n showSpinner = ()=> {\n document.body.dataset.paymentProcessing = 'true';\n if (this.offline) return;\n this.spinnerTarget.style.display = '';\n }\n\n hideSpinner = () => {\n if (this.offline) return;\n delete document.body.dataset.paymentProcessing;\n this.spinnerTarget.style.display = 'none';\n }\n\n getClientSecret() {\n const formData = this.sendForm ? new FormData($(`#${this.sendForm}`)[0]) : {};\n\n return axios\n .post(this.clientSecretUrl, formData, { headers: { \"X-Requested-With\": \"XMLHttpRequest\" } })\n .then(response => {\n if (response.data.reload) {\n window.location.reload();\n } else {\n return response.data.modification\n }\n })\n }\n\n handleSuccess(data) {\n const successEvent = new CustomEvent('neo_modal:payment_success', { detail: { data: data } });\n this.modal.dispatchEvent(successEvent);\n }\n\n handleFailed(data) {\n const successEvent = new CustomEvent('neo_modal:payment_failed', { detail: { data: data } });\n this.modal.dispatchEvent(successEvent);\n\n if (data.message) Helper.flash_message('error', data.message)\n this.hideSpinner();\n this.enableInputs();\n }\n\n subscribe(modificationId) {\n return this.connect.subscribe(modificationId, (data) => {\n switch (data.status) {\n case 'succeeded':\n this.handleSuccess(data);\n break;\n case 'failed':\n this.handleFailed(data);\n break;\n }\n })\n }\n\n confirmMethod(clientSecret) {\n let confirmFn = null;\n\n if (/^seti_/.test(clientSecret)) confirmFn = this.stripe.confirmCardSetup;\n if (/^pi_/.test(clientSecret)) confirmFn = this.stripe.confirmCardPayment;\n\n if (confirmFn === null || confirmFn === undefined) return null;\n\n return confirmFn;\n }\n}\n\n//\n// if (this.modification.status === 'in_progress') {\n// this.showSpinner();\n// this.subscribe(this.modification.id)\n// }\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport NeoModal from \"src/NeoModal\";\n\nexport default class extends Controller {\n connect() {\n this.navigateToPaymentAction();\n }\n\n update(e) {\n const url = e.target.dataset.url;\n\n axios.get(url).then(response => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:payment_success', (e) => {\n $(modal).modal('hide');\n\n window.loadedTabs = [];\n window.loadOrderTab($(\"a[data-target='#payments_info']\"), true);\n window.reloadOrderHeader();\n })\n\n modal.addEventListener('neo_modal:failed', (e) => {\n const errors = e.detail.data.errors;\n Helper.flash_message('error', errors.base);\n })\n });\n }\n\n navigateToPaymentAction() {\n const isMobile = window.innerWidth <= 800;\n const url = new URL(window.location.href);\n const anchor = url.searchParams.get('navigateTo');\n\n if (anchor === 'process_payment') {\n setTimeout(() => {\n const parentClassName = isMobile ? '.mobile-only' : '.hide-on-mobile ';\n const visibleElement = document.querySelector(`${parentClassName} #process_payment_request`)\n\n if (visibleElement) {\n const offset = visibleElement.getBoundingClientRect().top + window.pageYOffset;\n window.scrollTo({\n top: offset,\n behavior: 'smooth'\n });\n }\n }, 500);\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport NeoModal from \"src/NeoModal\";\n\nexport default class extends Controller {\n new(e) {\n const url = e.target.dataset.url;\n\n const button = e.target;\n if (button.disabled) return true;\n button.disabled = true;\n\n axios.get(url).then(response => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n }});\n\n\n modal.addEventListener('neo_modal:payment_success', (e) => {\n const { data } = e.detail;\n\n $(modal).modal('hide');\n Helper.flash_message('success', data.message)\n })\n\n modal.addEventListener('neo_modal:payment_failed', (e) => {\n const { data } = e.detail;\n })\n\n modal.addEventListener('neo_modal:failed', (e) => {\n const errors = e.detail.data.errors;\n //const baseError = (errors || {}).base;\n this.addErrors(errors);\n })\n\n modal.addEventListener('neo_modal:submit', (e) => {\n this.removeErrors();\n })\n }).catch(() => {\n button.disabled = false;\n Helper.flash_message('error', 'Something went wrong')\n })\n }\n\n removeErrors() {\n $('#new_casual_payment').find('span.text-danger').remove();\n }\n\n addErrors(errors) {\n this.removeErrors();\n\n _.each(errors, (value, key) => {\n const span = `<span class=\"text-danger\">${value.join(', ')}</span>`;\n $('#casual_payment_' + key).closest('.form-group').append(span)\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport moment from \"moment/moment\";\n\nexport default class extends Controller {\n prev_page(e) {\n if (e.target.dataset.disabled === 'true') return;\n this.scrollCalendar('prev')\n }\n next_page(e) {\n if (e.target.dataset.disabled === 'true') return;\n this.scrollCalendar('next')\n }\n\n scrollCalendar(direction) {\n const dateEl = $('#date');\n const currentRenderer = $('.hidden-view').val();\n const pageStep = currentRenderer === 'day' ? 1 : 7;\n const pageDirection = direction === 'next' ? -pageStep : pageStep\n const currentDate = dateEl.datepicker('getDate');\n const newDate = moment(currentDate).subtract(pageDirection, 'days').toDate()\n\n dateEl.datepicker('setDate', newDate);\n }\n}\n\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class DatepickerController extends Controller {\n static values = {\n onChangeDate: String\n };\n\n connect() {\n const self = this.element;\n const format = self.dataset.format || 'D, dd M yyyy'\n const autoclose = self.dataset.autoclose || true\n const container = self.dataset.container;\n const onChangeDateCallback = window[this.onChangeDateValue];\n const startDate = self.dataset.startDate || null;\n const endDate = self.dataset.endDate || null;\n\n const datepicker = $(self).datepicker({\n format: format,\n autoclose: autoclose,\n container: container,\n startDate: startDate,\n endDate: endDate\n });\n\n if (onChangeDateCallback) datepicker.on('changeDate', onChangeDateCallback);\n\n datepicker.on('changeDate', (event) => {\n const e = new CustomEvent('change', {\n detail: { selectedDate: event.date },\n bubbles: true,\n cancelable: true,\n target: this.element\n });\n\n this.element.dispatchEvent(e);\n })\n }\n}\n","import axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\n\nclass FileManager {\n init() {\n const tableRows = Array.from($('#file-manager-table tr[data-filterable=\"true\"]'));\n let selectedVenue = $('select[name=\"venue_select\"] option:selected').val();\n let docType = $('input[name=\"filter_attachments_dates\"]:checked').val();\n const filterDocs = () => {\n tableRows.forEach((row) => {\n let venueName = selectedVenue;\n const venueFromRow = $(row).find('td[data-title=\"Venue\"]')[0];\n\n if (venueFromRow) {\n venueName = venueFromRow.textContent.trim();\n }\n\n if (docType == 'all' && selectedVenue == 'all') {\n $(row).show();\n } else if (docType == 'all' && selectedVenue == venueName) {\n $(row).show();\n } else if (docType == 'all' && selectedVenue != venueName) {\n $(row).hide();\n } else if (docType == 'current' && selectedVenue == 'all') {\n if (!row.classList.contains('expired')) {\n $(row).show();\n } else {\n $(row).hide();\n }\n } else if (docType == 'current' && selectedVenue == venueName) {\n if (!row.classList.contains('expired')) {\n $(row).show();\n } else {\n $(row).hide();\n }\n } else {\n $(row).hide();\n }\n });\n };\n\n if (selectedVenue && docType) {\n filterDocs();\n }\n\n if ($('#filter_attachments_dates_current').is(':checked')) {\n $('.expired').hide();\n }\n\n\n $('select[name=\"venue_select\"]').change((event) => {\n selectedVenue = event.target.selectedOptions[0].value;\n filterDocs();\n })\n\n $('.new-expired-date').datepicker({\n format: 'dd/mm/yyyy',\n autoclose: true,\n clearBtn: true,\n container: '.file-manager-modal-dialog'\n });\n\n $(document).on('click', '.add-file-btn', () => {\n $('#attachment_file').val('');\n $('#attachment_original_filename').val('');\n $('#attachment_expired_at').val('');\n $('#attachment_link_to_activity_report').prop('checked', false);\n $('#new-file-form').show();\n });\n\n $('.cancel-add-file').click(() => {\n $('#new-file-form').hide();\n });\n\n this.onEdit();\n this.onSave();\n this.onDelete();\n this.onCancel();\n }\n\n reload() {\n const documents_tab = $(\"li.active a[data-target='#documents']\");\n const venue_questions_tab = $(\"li.active a[data-target='#venue_questions']\");\n\n if (documents_tab.length > 0) window.loadOrderTab(documents_tab, true, true);\n if (venue_questions_tab.length > 0) window.loadOrderTab(venue_questions_tab, true, true);\n }\n\n onEdit() {\n $('#file-manager-table').on('click', '.edit-file-manager', (event) => {\n const $this = $(event.target);\n\n const row = $this.closest('tr');\n const nameInput = row.find('.editable-name input');\n const expirationInput = row.find('.editable-date input');\n const linkInput = row.find('.editable-link input');\n\n nameInput.prop('disabled', false);\n expirationInput.prop('disabled', false);\n expirationInput.datepicker({\n format: 'dd/mm/yyyy',\n autoclose: true,\n clearBtn: true,\n container: '.file-manager-modal-dialog'\n });\n linkInput.prop('disabled', false);\n\n row.find('.save').show();\n row.find('.edit').hide();\n });\n }\n\n onCancel() {\n $('.cancel-file-manager').click((event) => {\n const $this = $(event.target);\n\n const row = $this.closest('tr');\n const nameInput = row.find('.editable-name input');\n const expirationInput = row.find('.editable-date input');\n const linkInput = row.find('.editable-link input');\n\n nameInput.val(row.data('name'));\n nameInput.prop('disabled', true);\n expirationInput.val(row.data('date'));\n expirationInput.prop('disabled', true);\n linkInput.prop('checked', row.data('link-to-activity-report'));\n linkInput.prop('disabled', true);\n\n row.find('.save').hide();\n row.find('.edit').show();\n });\n }\n\n onSave() {\n $('.save-file-manager').click((event) => {\n const $this = $(event.target);\n\n const row = $this.closest('tr');\n const nameInput = row.find('.editable-name input');\n const expirationInput = row.find('.editable-date input');\n const linkInput = row.find('.editable-link input');\n\n $.ajax({\n url: $this.data('url'),\n method: 'PUT',\n data: {\n file_manager: {\n original_filename: nameInput.val(),\n expired_at: expirationInput.val(),\n link_to_activity_report: linkInput.is(':checked')\n }\n },\n\n success: () => {\n nameInput.prop('disabled', true);\n expirationInput.prop('disabled', true);\n linkInput.prop('disabled', true);\n\n row.data('name', nameInput.val());\n row.data('date', expirationInput.val());\n row.data('link_to_activity_report', linkInput.is(':checked'));\n row.find('.save').hide();\n row.find('.edit').show();\n\n this.reload();\n }\n });\n });\n }\n\n onDelete() {\n $('.delete-file-manager').click((event) => {\n const $this = $(event.target);\n const _self = this;\n\n const row = $this.closest('tr');\n const url = $this.data('url');\n const request_url = $this.data('requestUrl');\n\n axios.get(request_url).then((response) => {\n const modal = NeoModal.add(response.data);\n const saveBtn = modal.getElementsByClassName('btn-approve-delete')[0];\n\n saveBtn.addEventListener('click', () => {\n axios\n .delete(url)\n .then(() => {\n row.remove();\n _self.reload();\n $(modal).modal('hide');\n })\n .catch(() => Helper.flash_message('error', 'Something went wrong'))\n });\n })\n });\n }\n\n scrollIntoFileView() {\n const itemRow = document.getElementsByClassName('selected-document')[0];\n\n if (!itemRow) return\n\n itemRow.style.borderColor = 'transparent';\n itemRow.style.border = '2px solid';\n\n setTimeout(() => {\n itemRow.previousElementSibling.scrollIntoView(true);\n }, 200);\n }\n}\n\nexport default FileManager;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from 'axios';\nimport FileManager from \"src/nextgen/pages/file_manager\";\n\nexport default class extends Controller {\n static targets = ['submit', 'file'];\n\n connect() {\n const fileManager = new FileManager();\n fileManager.init();\n this.submitTarget\n this.submitTarget.disabled = this.fileTarget.files.length == 0;\n\n this.fileTarget.addEventListener('change', (event)=> { \n this.submitTarget.disabled = event.target.files.length == 0;\n });\n\n this.element.addEventListener('submit', (event) => {\n event.preventDefault();\n\n const options = {\n method: this.element.getAttribute('method') || 'POST',\n url: this.element.getAttribute('action'),\n data: new FormData(this.element)\n }\n\n axios(options)\n .then((response) => Turbo.renderStreamMessage(response.data))\n .catch((error) => { Turbo.renderStreamMessage(error.response.data) })\n });\n\n const parentController = document.querySelector('#file_manager_modal');\n\n parentController.addEventListener('neo_modal:success', () => {\n this.submitTarget.disabled = true;\n\n const currentPath = this.element.dataset['currentPath'];\n\n let docType = $('input[name=\"filter_attachments_dates\"]:checked').val();\n let venue = $('select[name=\"venue_select\"] option:selected').val();\n let newPath = currentPath.replace('/file_managers?', '/file_managers/list?');\n newPath += `&doc_type_filter=${docType || ''}&venue_name=${venue}`;\n\n axios.get(newPath).then((content) => {\n $('#file_manager_modal .modal-body').empty().append(content.data);\n const modalElement = document.querySelector('#file_manager_modal');\n const modalController = this.application.getControllerForElementAndIdentifier(modalElement, 'neo_modal');\n // because we manually rewriting content of modal on line 28\n // we need to manually reconnect controller to the modal element\n modalController.connect();\n fileManager.init();\n });\n });\n }\n\n addReview(e) {\n e.preventDefault();\n this.reviewAction(e.target, 'post');\n }\n\n removeReview(e) {\n e.preventDefault();\n this.reviewAction(e.target, 'delete');\n }\n\n reviewAction(button, method) {\n const url = button.dataset.url;\n const cellEl = button.closest('td');\n\n axios({ method: method, url: url }).then((response) => {\n cellEl.innerHTML = response.data.content;\n }).catch(() => Helper.flash_message('error', 'Something went wrong'))\n }\n}\n","export function smartRedirect(redirectTo) {\n if (redirectTo) {\n let redirectURL = new URL(redirectTo, window.location.origin);\n redirectURL.searchParams.set('_t', Date.now());\n window.location = redirectURL.toString()\n }\n}","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport NeoModal from \"src/NeoModal\";\nimport { smartRedirect } from \"src/nextgen/smartRedirect\";\nimport NeoDialog from \"../src/NeoDialog\";\n\nclass ConversationButtonsController extends Controller {\n connect() {\n const hiddenNewMessageInput = document.querySelector('input#is_new_message');\n\n if (hiddenNewMessageInput.value === 'new') {\n this.element.click();\n }\n }\n\n send(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url } = e.target.dataset;\n const { userType, primaryName, primaryEmail } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n if (userType === 'primary') {\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n setTimeout(() => { button.disabled = false }, 200)\n } });\n\n modal.addEventListener('neo_modal:success', () => {\n $(modal).modal('hide');\n });\n }).catch((e) => {\n if (e.response.status === 405) {\n window.location.reload();\n } else {\n button.disabled = false;\n }\n })\n } else {\n const message = \"This account is a secondary account linked to \" + primaryName + \" - \" + primaryEmail + \n \". It is not possible to make bookings or send messages as a secondary account.\";\n NeoDialog.confirm(message, 'Ok', null, false)\n button.disabled = false;\n }\n }\n\n redirectTo(e) {\n const { url } = e.target.dataset;\n\n smartRedirect(url);\n }\n}\n\nexport default ConversationButtonsController;\n","// THIS FILE IS AUTOMATICALLY GENERATED DO NOT EDIT DIRECTLY\n// See update-tlds.js for encoding/decoding format\n// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\nconst encodedTlds = 'aaa1rp3barth4b0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0faromeo7ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4vianca6w0s2x0a2z0ure5ba0by2idu3namex3narepublic11d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2ntley5rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re2s2c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y0eats7k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0cast4mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking0channel11l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dabur3d1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t0isalat7u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0at2delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d0network8tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntdoor4ier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0ardian6cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5gtv3iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0eles2s3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6logistics9properties14fh2g1h1i0a1ds2m1nder2le4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3ncaster5ia3d0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4de2k2psy3ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0cys3drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7serati6ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic3tual5v1w1x1y1z2na0b1goya4me2tura4vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rthwesternmutual14on4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9dnavy5lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3ssagens7y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0america6xi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cher3ks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0a1b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp2w2ell3ia1ksha5oes2p0ping5uji3w0time7i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ffany5ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0channel7ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lkswagen7vo3te1ing3o2yage5u0elos6wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4finity6ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2';\n// Internationalized domain names containing non-ASCII\nconst encodedUtlds = 'ελ1Ï…2бг1ел3дети4ею2католик6ом3мкд2он1Ñква6онлайн5рг3руÑ2Ñ„2Ñайт3рб3укр3қаз3Õ°Õ¡Õµ3ישר×ל5קו×3ابوظبي5تصالات6رامكو5لاردن4بØرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4Ùلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3à¤à¤¾à¤°à¤¤0मà¥3ोत5संगठन5বাংলা5à¦à¦¾à¦°à¦¤2ৰত4à¨à¨¾à¨°à¨¤4àªàª¾àª°àª¤4à¬à¬¾à¬°à¬¤4இநà¯à®¤à®¿à®¯à®¾6லஙà¯à®•à¯ˆ6சிஙà¯à®•à®ªà¯à®ªà¯‚à®°à¯11à°à°¾à°°à°¤à±5à²à²¾à²°à²¤4à´à´¾à´°à´¤à´‚5ලංකà·4คà¸à¸¡3ไทย3ລາວ3გე2ã¿ã‚“ãª3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ãƒã‚¤ãƒ³ãƒˆ4世界2ä¸ä¿¡1国1國1文网3亚马逊3ä¼ä¸š2佛山2ä¿¡æ¯2å¥åº·2å…«å¦2å…¬å¸1益2å°æ¹¾1ç£2商城1店1æ ‡2嘉里0大酒店5在线2大拿2天主教3娱ä¹2家電2广东2å¾®åš2慈善2æˆ‘çˆ±ä½ 3手机2æ‹›è˜2政务1府2æ–°åŠ å¡2é—»2时尚2書ç±2机构2淡马锡3游æˆ2澳門2点看2移动2组织机构4网å€1店1ç«™1络2è”通2è°·æŒ2è´ç‰©2通販2集团2電訊盈科4飞利浦3食å“2é¤åŽ…2é¦™æ ¼é‡Œæ‹‰3港2ë‹·ë„·1ì»´2삼성2í•œêµ2';\n\n/**\n * @template A\n * @template B\n * @param {A} target\n * @param {B} properties\n * @return {A & B}\n */\nconst assign = (target, properties) => {\n for (const key in properties) {\n target[key] = properties[key];\n }\n return target;\n};\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * @template T\n * @typedef {{ [group: string]: T[] }} Collections\n */\n\n/**\n * @typedef {{ [group: string]: true }} Flags\n */\n\n// Keys in scanner Collections instances\nconst numeric = 'numeric';\nconst ascii = 'ascii';\nconst alpha = 'alpha';\nconst asciinumeric = 'asciinumeric';\nconst alphanumeric = 'alphanumeric';\nconst domain = 'domain';\nconst emoji = 'emoji';\nconst scheme = 'scheme';\nconst slashscheme = 'slashscheme';\nconst whitespace = 'whitespace';\n\n/**\n * @template T\n * @param {string} name\n * @param {Collections<T>} groups to register in\n * @returns {T[]} Current list of tokens in the given collection\n */\nfunction registerGroup(name, groups) {\n if (!(name in groups)) {\n groups[name] = [];\n }\n return groups[name];\n}\n\n/**\n * @template T\n * @param {T} t token to add\n * @param {Collections<T>} groups\n * @param {Flags} flags\n */\nfunction addToGroups(t, flags, groups) {\n if (flags[numeric]) {\n flags[asciinumeric] = true;\n flags[alphanumeric] = true;\n }\n if (flags[ascii]) {\n flags[asciinumeric] = true;\n flags[alpha] = true;\n }\n if (flags[asciinumeric]) {\n flags[alphanumeric] = true;\n }\n if (flags[alpha]) {\n flags[alphanumeric] = true;\n }\n if (flags[alphanumeric]) {\n flags[domain] = true;\n }\n if (flags[emoji]) {\n flags[domain] = true;\n }\n for (const k in flags) {\n const group = registerGroup(k, groups);\n if (group.indexOf(t) < 0) {\n group.push(t);\n }\n }\n}\n\n/**\n * @template T\n * @param {T} t token to check\n * @param {Collections<T>} groups\n * @returns {Flags} group flags that contain this token\n */\nfunction flagsForToken(t, groups) {\n const result = {};\n for (const c in groups) {\n if (groups[c].indexOf(t) >= 0) {\n result[c] = true;\n }\n }\n return result;\n}\n\n/**\n * @template T\n * @typedef {null | T } Transition\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n *\n * The template type T represents the type of the token this state accepts. This\n * should be a string (such as of the token exports in `text.js`) or a\n * MultiToken subclass (from `multi.js`)\n *\n * @template T\n * @param {T} [token] Token that this state emits\n */\nfunction State(token) {\n if (token === void 0) {\n token = null;\n }\n // this.n = null; // DEBUG: State name\n /** @type {{ [input: string]: State<T> }} j */\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n /** @type {[RegExp, State<T>][]} jr */\n this.jr = [];\n /** @type {?State<T>} jd */\n this.jd = null;\n /** @type {?T} t */\n this.t = token;\n}\n\n/**\n * Scanner token groups\n * @type Collections<string>\n */\nState.groups = {};\nState.prototype = {\n accepts() {\n return !!this.t;\n },\n /**\n * Follow an existing transition from the given input to the next state.\n * Does not mutate.\n * @param {string} input character or token type to transition on\n * @returns {?State<T>} the next state, if any\n */\n go(input) {\n const state = this;\n const nextState = state.j[input];\n if (nextState) {\n return nextState;\n }\n for (let i = 0; i < state.jr.length; i++) {\n const regex = state.jr[i][0];\n const nextState = state.jr[i][1]; // note: might be empty to prevent default jump\n if (nextState && regex.test(input)) {\n return nextState;\n }\n }\n // Nowhere left to jump! Return default, if any\n return state.jd;\n },\n /**\n * Whether the state has a transition for the given input. Set the second\n * argument to true to only look for an exact match (and not a default or\n * regular-expression-based transition)\n * @param {string} input\n * @param {boolean} exactOnly\n */\n has(input, exactOnly) {\n if (exactOnly === void 0) {\n exactOnly = false;\n }\n return exactOnly ? input in this.j : !!this.go(input);\n },\n /**\n * Short for \"transition all\"; create a transition from the array of items\n * in the given list to the same final resulting state.\n * @param {string | string[]} inputs Group of inputs to transition on\n * @param {Transition<T> | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n */\n ta(inputs, next, flags, groups) {\n for (let i = 0; i < inputs.length; i++) {\n this.tt(inputs[i], next, flags, groups);\n }\n },\n /**\n * Short for \"take regexp transition\"; defines a transition for this state\n * when it encounters a token which matches the given regular expression\n * @param {RegExp} regexp Regular expression transition (populate first)\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n tr(regexp, next, flags, groups) {\n groups = groups || State.groups;\n let nextState;\n if (next && next.j) {\n nextState = next;\n } else {\n // Token with maybe token groups\n nextState = new State(next);\n if (flags && groups) {\n addToGroups(next, flags, groups);\n }\n }\n this.jr.push([regexp, nextState]);\n return nextState;\n },\n /**\n * Short for \"take transitions\", will take as many sequential transitions as\n * the length of the given input and returns the\n * resulting final state.\n * @param {string | string[]} input\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of token groups\n * @returns {State<T>} taken after the given input\n */\n ts(input, next, flags, groups) {\n let state = this;\n const len = input.length;\n if (!len) {\n return state;\n }\n for (let i = 0; i < len - 1; i++) {\n state = state.tt(input[i]);\n }\n return state.tt(input[len - 1], next, flags, groups);\n },\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * Specify a token group flags to define groups that this token belongs to.\n * The token will be added to corresponding entires in the given groups\n * object.\n *\n * @param {string} input character, token type to transition on\n * @param {T | State<T>} [next] Transition options\n * @param {Flags} [flags] Collections flags to add token to\n * @param {Collections<T>} [groups] Master list of groups\n * @returns {State<T>} taken after the given input\n */\n tt(input, next, flags, groups) {\n groups = groups || State.groups;\n const state = this;\n\n // Check if existing state given, just a basic transition\n if (next && next.j) {\n state.j[input] = next;\n return next;\n }\n const t = next;\n\n // Take the transition with the usual default mechanisms and use that as\n // a template for creating the next state\n let nextState,\n templateState = state.go(input);\n if (templateState) {\n nextState = new State();\n assign(nextState.j, templateState.j);\n nextState.jr.push.apply(nextState.jr, templateState.jr);\n nextState.jd = templateState.jd;\n nextState.t = templateState.t;\n } else {\n nextState = new State();\n }\n if (t) {\n // Ensure newly token is in the same groups as the old token\n if (groups) {\n if (nextState.t && typeof nextState.t === 'string') {\n const allFlags = assign(flagsForToken(nextState.t, groups), flags);\n addToGroups(t, allFlags, groups);\n } else if (flags) {\n addToGroups(t, flags, groups);\n }\n }\n nextState.t = t; // overwrite anything that was previously there\n }\n\n state.j[input] = nextState;\n return nextState;\n }\n};\n\n// Helper functions to improve minification (not exported outside linkifyjs module)\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst ta = (state, input, next, flags, groups) => state.ta(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {RegExp} regexp\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst tr = (state, regexp, next, flags, groups) => state.tr(regexp, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string | string[]} input\n * @param {T | State<T>} [next]\n * @param {Flags} [flags]\n * @param {Collections<T>} [groups]\n */\nconst ts = (state, input, next, flags, groups) => state.ts(input, next, flags, groups);\n\n/**\n * @template T\n * @param {State<T>} state\n * @param {string} input\n * @param {T | State<T>} [next]\n * @param {Collections<T>} [groups]\n * @param {Flags} [flags]\n */\nconst tt = (state, input, next, flags, groups) => state.tt(input, next, flags, groups);\n\n/******************************************************************************\nText Tokens\nIdentifiers for token outputs from the regexp scanner\n******************************************************************************/\n\n// A valid web domain token\nconst WORD = 'WORD'; // only contains a-z\nconst UWORD = 'UWORD'; // contains letters other than a-z, used for IDN\n\n// Special case of word\nconst LOCALHOST = 'LOCALHOST';\n\n// Valid top-level domain, special case of WORD (see tlds.js)\nconst TLD = 'TLD';\n\n// Valid IDN TLD, special case of UWORD (see tlds.js)\nconst UTLD = 'UTLD';\n\n// The scheme portion of a web URI protocol. Supported types include: `mailto`,\n// `file`, and user-defined custom protocols. Limited to schemes that contain\n// only letters\nconst SCHEME = 'SCHEME';\n\n// Similar to SCHEME, except makes distinction for schemes that must always be\n// followed by `://`, not just `:`. Supported types include `http`, `https`,\n// `ftp`, `ftps`\nconst SLASH_SCHEME = 'SLASH_SCHEME';\n\n// Any sequence of digits 0-9\nconst NUM = 'NUM';\n\n// Any number of consecutive whitespace characters that are not newline\nconst WS = 'WS';\n\n// New line (unix style)\nconst NL$1 = 'NL'; // \\n\n\n// Opening/closing bracket classes\nconst OPENBRACE = 'OPENBRACE'; // {\nconst OPENBRACKET = 'OPENBRACKET'; // [\nconst OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\nconst OPENPAREN = 'OPENPAREN'; // (\nconst CLOSEBRACE = 'CLOSEBRACE'; // }\nconst CLOSEBRACKET = 'CLOSEBRACKET'; // ]\nconst CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\nconst CLOSEPAREN = 'CLOSEPAREN'; // )\n\n// Various symbols\nconst AMPERSAND = 'AMPERSAND'; // &\nconst APOSTROPHE = 'APOSTROPHE'; // '\nconst ASTERISK = 'ASTERISK'; // *\nconst AT = 'AT'; // @\nconst BACKSLASH = 'BACKSLASH'; // \\\nconst BACKTICK = 'BACKTICK'; // `\nconst CARET = 'CARET'; // ^\nconst COLON = 'COLON'; // :\nconst COMMA = 'COMMA'; // ,\nconst DOLLAR = 'DOLLAR'; // $\nconst DOT = 'DOT'; // .\nconst EQUALS = 'EQUALS'; // =\nconst EXCLAMATION = 'EXCLAMATION'; // !\nconst HYPHEN = 'HYPHEN'; // -\nconst PERCENT = 'PERCENT'; // %\nconst PIPE = 'PIPE'; // |\nconst PLUS = 'PLUS'; // +\nconst POUND = 'POUND'; // #\nconst QUERY = 'QUERY'; // ?\nconst QUOTE = 'QUOTE'; // \"\n\nconst SEMI = 'SEMI'; // ;\nconst SLASH = 'SLASH'; // /\nconst TILDE = 'TILDE'; // ~\nconst UNDERSCORE = 'UNDERSCORE'; // _\n\n// Emoji symbol\nconst EMOJI$1 = 'EMOJI';\n\n// Default token - anything that is not one of the above\nconst SYM = 'SYM';\n\nvar tk = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tWORD: WORD,\n\tUWORD: UWORD,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tUTLD: UTLD,\n\tSCHEME: SCHEME,\n\tSLASH_SCHEME: SLASH_SCHEME,\n\tNUM: NUM,\n\tWS: WS,\n\tNL: NL$1,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tEMOJI: EMOJI$1,\n\tSYM: SYM\n});\n\n// Note that these two Unicode ones expand into a really big one with Babel\nconst ASCII_LETTER = /[a-z]/;\nconst LETTER = /\\p{L}/u; // Any Unicode character with letter data type\nconst EMOJI = /\\p{Emoji}/u; // Any Unicode emoji character\nconst EMOJI_VARIATION$1 = /\\ufe0f/;\nconst DIGIT = /\\d/;\nconst SPACE = /\\s/;\n\nvar regexp = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tASCII_LETTER: ASCII_LETTER,\n\tLETTER: LETTER,\n\tEMOJI: EMOJI,\n\tEMOJI_VARIATION: EMOJI_VARIATION$1,\n\tDIGIT: DIGIT,\n\tSPACE: SPACE\n});\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n*/\nconst NL = '\\n'; // New line character\nconst EMOJI_VARIATION = '\\ufe0f'; // Variation selector, follows heart and others\nconst EMOJI_JOINER = '\\u200d'; // zero-width joiner\n\nlet tlds = null,\n utlds = null; // don't change so only have to be computed once\n\n/**\n * Scanner output token:\n * - `t` is the token name (e.g., 'NUM', 'EMOJI', 'TLD')\n * - `v` is the value of the token (e.g., '123', 'â¤ï¸', 'com')\n * - `s` is the start index of the token in the original string\n * - `e` is the end index of the token in the original string\n * @typedef {{t: string, v: string, s: number, e: number}} Token\n */\n\n/**\n * @template T\n * @typedef {{ [collection: string]: T[] }} Collections\n */\n\n/**\n * Initialize the scanner character-based state machine for the given start\n * state\n * @param {[string, boolean][]} customSchemes List of custom schemes, where each\n * item is a length-2 tuple with the first element set to the string scheme, and\n * the second element set to `true` if the `://` after the scheme is optional\n */\nfunction init$2(customSchemes) {\n if (customSchemes === void 0) {\n customSchemes = [];\n }\n // Frequently used states (name argument removed during minification)\n /** @type Collections<string> */\n const groups = {}; // of tokens\n State.groups = groups;\n /** @type State<string> */\n const Start = new State();\n if (tlds == null) {\n tlds = decodeTlds(encodedTlds);\n }\n if (utlds == null) {\n utlds = decodeTlds(encodedUtlds);\n }\n\n // States for special URL symbols that accept immediately after start\n tt(Start, \"'\", APOSTROPHE);\n tt(Start, '{', OPENBRACE);\n tt(Start, '[', OPENBRACKET);\n tt(Start, '<', OPENANGLEBRACKET);\n tt(Start, '(', OPENPAREN);\n tt(Start, '}', CLOSEBRACE);\n tt(Start, ']', CLOSEBRACKET);\n tt(Start, '>', CLOSEANGLEBRACKET);\n tt(Start, ')', CLOSEPAREN);\n tt(Start, '&', AMPERSAND);\n tt(Start, '*', ASTERISK);\n tt(Start, '@', AT);\n tt(Start, '`', BACKTICK);\n tt(Start, '^', CARET);\n tt(Start, ':', COLON);\n tt(Start, ',', COMMA);\n tt(Start, '$', DOLLAR);\n tt(Start, '.', DOT);\n tt(Start, '=', EQUALS);\n tt(Start, '!', EXCLAMATION);\n tt(Start, '-', HYPHEN);\n tt(Start, '%', PERCENT);\n tt(Start, '|', PIPE);\n tt(Start, '+', PLUS);\n tt(Start, '#', POUND);\n tt(Start, '?', QUERY);\n tt(Start, '\"', QUOTE);\n tt(Start, '/', SLASH);\n tt(Start, ';', SEMI);\n tt(Start, '~', TILDE);\n tt(Start, '_', UNDERSCORE);\n tt(Start, '\\\\', BACKSLASH);\n const Num = tr(Start, DIGIT, NUM, {\n [numeric]: true\n });\n tr(Num, DIGIT, Num);\n\n // State which emits a word token\n const Word = tr(Start, ASCII_LETTER, WORD, {\n [ascii]: true\n });\n tr(Word, ASCII_LETTER, Word);\n\n // Same as previous, but specific to non-fsm.ascii alphabet words\n const UWord = tr(Start, LETTER, UWORD, {\n [alpha]: true\n });\n tr(UWord, ASCII_LETTER); // Non-accepting\n tr(UWord, LETTER, UWord);\n\n // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n // If any whitespace except newline, more whitespace!\n const Ws = tr(Start, SPACE, WS, {\n [whitespace]: true\n });\n tt(Start, NL, NL$1, {\n [whitespace]: true\n });\n tt(Ws, NL); // non-accepting state to avoid mixing whitespaces\n tr(Ws, SPACE, Ws);\n\n // Emoji tokens. They are not grouped by the scanner except in cases where a\n // zero-width joiner is present\n const Emoji = tr(Start, EMOJI, EMOJI$1, {\n [emoji]: true\n });\n tr(Emoji, EMOJI, Emoji);\n tt(Emoji, EMOJI_VARIATION, Emoji);\n // tt(Start, EMOJI_VARIATION, Emoji); // This one is sketchy\n\n const EmojiJoiner = tt(Emoji, EMOJI_JOINER);\n tr(EmojiJoiner, EMOJI, Emoji);\n // tt(EmojiJoiner, EMOJI_VARIATION, Emoji); // also sketchy\n\n // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n const wordjr = [[ASCII_LETTER, Word]];\n const uwordjr = [[ASCII_LETTER, null], [LETTER, UWord]];\n for (let i = 0; i < tlds.length; i++) {\n fastts(Start, tlds[i], TLD, WORD, wordjr);\n }\n for (let i = 0; i < utlds.length; i++) {\n fastts(Start, utlds[i], UTLD, UWORD, uwordjr);\n }\n addToGroups(TLD, {\n tld: true,\n ascii: true\n }, groups);\n addToGroups(UTLD, {\n utld: true,\n alpha: true\n }, groups);\n\n // Collect the states generated by different protocols. NOTE: If any new TLDs\n // get added that are also protocols, set the token to be the same as the\n // protocol to ensure parsing works as expected.\n fastts(Start, 'file', SCHEME, WORD, wordjr);\n fastts(Start, 'mailto', SCHEME, WORD, wordjr);\n fastts(Start, 'http', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'https', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftp', SLASH_SCHEME, WORD, wordjr);\n fastts(Start, 'ftps', SLASH_SCHEME, WORD, wordjr);\n addToGroups(SCHEME, {\n scheme: true,\n ascii: true\n }, groups);\n addToGroups(SLASH_SCHEME, {\n slashscheme: true,\n ascii: true\n }, groups);\n\n // Register custom schemes. Assumes each scheme is asciinumeric with hyphens\n customSchemes = customSchemes.sort((a, b) => a[0] > b[0] ? 1 : -1);\n for (let i = 0; i < customSchemes.length; i++) {\n const sch = customSchemes[i][0];\n const optionalSlashSlash = customSchemes[i][1];\n const flags = optionalSlashSlash ? {\n [scheme]: true\n } : {\n [slashscheme]: true\n };\n if (sch.indexOf('-') >= 0) {\n flags[domain] = true;\n } else if (!ASCII_LETTER.test(sch)) {\n flags[numeric] = true; // numbers only\n } else if (DIGIT.test(sch)) {\n flags[asciinumeric] = true;\n } else {\n flags[ascii] = true;\n }\n ts(Start, sch, sch, flags);\n }\n\n // Localhost token\n ts(Start, 'localhost', LOCALHOST, {\n ascii: true\n });\n\n // Set default transition for start state (some symbol)\n Start.jd = new State(SYM);\n return {\n start: Start,\n tokens: assign({\n groups\n }, tk)\n };\n}\n\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State<string>} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {Token[]} list of tokens, each with a type and value\n*/\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns regular case). Uses selective `toLowerCase` because\n // lowercasing the entire string causes the length and character position to\n // vary in some non-English strings with V8-based runtimes.\n const iterable = stringToArray(str.replace(/[A-Z]/g, c => c.toLowerCase()));\n const charCount = iterable.length; // <= len if there are emojis, etc\n const tokens = []; // return value\n\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n let cursor = 0;\n\n // Cursor through the array-representation of the string\n let charCursor = 0;\n\n // Tokenize the string\n while (charCursor < charCount) {\n let state = start;\n let nextState = null;\n let tokenLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n let charsSinceAccepts = -1;\n while (charCursor < charCount && (nextState = state.go(iterable[charCursor]))) {\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts;\n\n // No more jumps, just make a new token from the last accepting one\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.slice(cursor - tokenLength, cursor),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n });\n }\n\n return tokens;\n}\n\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\nfunction stringToArray(str) {\n const result = [];\n const len = str.length;\n let index = 0;\n while (index < len) {\n let first = str.charCodeAt(index);\n let second;\n let char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n result.push(char);\n index += char.length;\n }\n return result;\n}\n\n/**\n * Fast version of ts function for when transition defaults are well known\n * @param {State<string>} state\n * @param {string} input\n * @param {string} t\n * @param {string} defaultt\n * @param {[RegExp, State<string>][]} jr\n * @returns {State<string>}\n */\nfunction fastts(state, input, t, defaultt, jr) {\n let next;\n const len = input.length;\n for (let i = 0; i < len - 1; i++) {\n const char = input[i];\n if (state.j[char]) {\n next = state.j[char];\n } else {\n next = new State(defaultt);\n next.jr = jr.slice();\n state.j[char] = next;\n }\n state = next;\n }\n next = new State(t);\n next.jr = jr.slice();\n state.j[input[len - 1]] = next;\n return next;\n}\n\n/**\n * Converts a string of Top-Level Domain names encoded in update-tlds.js back\n * into a list of strings.\n * @param {str} encoded encoded TLDs string\n * @returns {str[]} original TLDs list\n */\nfunction decodeTlds(encoded) {\n const words = [];\n const stack = [];\n let i = 0;\n let digits = '0123456789';\n while (i < encoded.length) {\n let popDigitCount = 0;\n while (digits.indexOf(encoded[i + popDigitCount]) >= 0) {\n popDigitCount++; // encountered some digits, have to pop to go one level up trie\n }\n\n if (popDigitCount > 0) {\n words.push(stack.join('')); // whatever preceded the pop digits must be a word\n for (let popCount = parseInt(encoded.substring(i, i + popDigitCount), 10); popCount > 0; popCount--) {\n stack.pop();\n }\n i += popDigitCount;\n } else {\n stack.push(encoded[i]); // drop down a level into the trie\n i++;\n }\n }\n return words;\n}\n\n/**\n * An object where each key is a valid DOM Event Name such as `click` or `focus`\n * and each value is an event handler function.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element#events\n * @typedef {?{ [event: string]: Function }} EventListeners\n */\n\n/**\n * All formatted properties required to render a link, including `tagName`,\n * `attributes`, `content` and `eventListeners`.\n * @typedef {{ tagName: any, attributes: {[attr: string]: any}, content: string,\n * eventListeners: EventListeners }} IntermediateRepresentation\n */\n\n/**\n * Specify either an object described by the template type `O` or a function.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `O`\n * @template O\n * @typedef {O | ((value: string, type: string, token: MultiToken) => O)} OptObj\n */\n\n/**\n * Specify either a function described by template type `F` or an object.\n *\n * Each key in the object should be a link type (`'url'`, `'hashtag`', etc.). Each\n * value should be a function with template type `F` that is called when the\n * corresponding link type is encountered.\n * @template F\n * @typedef {F | { [type: string]: F}} OptFn\n */\n\n/**\n * Specify either a value with template type `V`, a function that returns `V` or\n * an object where each value resolves to `V`.\n *\n * The function takes a string value (usually the link's href attribute), the\n * link type (`'url'`, `'hashtag`', etc.) and an internal token representation\n * of the link. It should return an object of the template type `V`\n *\n * For the object, each key should be a link type (`'url'`, `'hashtag`', etc.).\n * Each value should either have type `V` or a function that returns V. This\n * function similarly takes a string value and a token.\n *\n * Example valid types for `Opt<string>`:\n *\n * ```js\n * 'hello'\n * (value, type, token) => 'world'\n * { url: 'hello', email: (value, token) => 'world'}\n * ```\n * @template V\n * @typedef {V | ((value: string, type: string, token: MultiToken) => V) | { [type: string]: V | ((value: string, token: MultiToken) => V) }} Opt\n */\n\n/**\n * See available options: https://linkify.js.org/docs/options.html\n * @typedef {{\n * \tdefaultProtocol?: string,\n * events?: OptObj<EventListeners>,\n * \tformat?: Opt<string>,\n * \tformatHref?: Opt<string>,\n * \tnl2br?: boolean,\n * \ttagName?: Opt<any>,\n * \ttarget?: Opt<string>,\n * \trel?: Opt<string>,\n * \tvalidate?: Opt<boolean>,\n * \ttruncate?: Opt<number>,\n * \tclassName?: Opt<string>,\n * \tattributes?: OptObj<({ [attr: string]: any })>,\n * ignoreTags?: string[],\n * \trender?: OptFn<((ir: IntermediateRepresentation) => any)>\n * }} Opts\n */\n\n/**\n * @type Required<Opts>\n */\nconst defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: Infinity,\n className: null,\n attributes: null,\n ignoreTags: [],\n render: null\n};\n\n/**\n * Utility class for linkify interfaces to apply specified\n * {@link Opts formatting and rendering options}.\n *\n * @param {Opts | Options} [opts] Option value overrides.\n * @param {(ir: IntermediateRepresentation) => any} [defaultRender] (For\n * internal use) default render function that determines how to generate an\n * HTML element based on a link token's derived tagName, attributes and HTML.\n * Similar to render option\n */\nfunction Options(opts, defaultRender) {\n if (defaultRender === void 0) {\n defaultRender = null;\n }\n let o = assign({}, defaults);\n if (opts) {\n o = assign(o, opts instanceof Options ? opts.o : opts);\n }\n\n // Ensure all ignored tags are uppercase\n const ignoredTags = o.ignoreTags;\n const uppercaseIgnoredTags = [];\n for (let i = 0; i < ignoredTags.length; i++) {\n uppercaseIgnoredTags.push(ignoredTags[i].toUpperCase());\n }\n /** @protected */\n this.o = o;\n if (defaultRender) {\n this.defaultRender = defaultRender;\n }\n this.ignoreTags = uppercaseIgnoredTags;\n}\nOptions.prototype = {\n o: defaults,\n /**\n * @type string[]\n */\n ignoreTags: [],\n /**\n * @param {IntermediateRepresentation} ir\n * @returns {any}\n */\n defaultRender(ir) {\n return ir;\n },\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options.\n * @param {MultiToken} token\n * @returns {boolean}\n */\n check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params. If operator and token are specified and the target option is\n * callable, automatically calls the function with the given argument.\n * @template {keyof Opts} K\n * @param {K} key Name of option to use\n * @param {string} [operator] will be passed to the target option if it's a\n * function. If not specified, RAW function value gets returned\n * @param {MultiToken} [token] The token from linkify.tokenize\n * @returns {Opts[K] | any}\n */\n get(key, operator, token) {\n const isCallable = operator != null;\n let option = this.o[key];\n if (!option) {\n return option;\n }\n if (typeof option === 'object') {\n option = token.t in option ? option[token.t] : defaults[key];\n if (typeof option === 'function' && isCallable) {\n option = option(operator, token);\n }\n } else if (typeof option === 'function' && isCallable) {\n option = option(operator, token.t, token);\n }\n return option;\n },\n /**\n * @template {keyof Opts} L\n * @param {L} key Name of options object to use\n * @param {string} [operator]\n * @param {MultiToken} [token]\n * @returns {Opts[L] | any}\n */\n getObj(key, operator, token) {\n let obj = this.o[key];\n if (typeof obj === 'function' && operator != null) {\n obj = obj(operator, token.t, token);\n }\n return obj;\n },\n /**\n * Convert the given token to a rendered element that may be added to the\n * calling-interface's DOM\n * @param {MultiToken} token Token to render to an HTML element\n * @returns {any} Render result; e.g., HTML string, DOM element, React\n * Component, etc.\n */\n render(token) {\n const ir = token.render(this); // intermediate representation\n const renderFn = this.get('render', null, token) || this.defaultRender;\n return renderFn(ir, token.t, token);\n }\n};\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options,\n\tassign: assign\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\n/**\n * @param {string} value\n * @param {Token[]} tokens\n */\nfunction MultiToken(value, tokens) {\n this.t = 'token';\n this.v = value;\n this.tk = tokens;\n}\n\n/**\n * Abstract class used for manufacturing tokens of text tokens. That is rather\n * than the value for a token being a small string of text, it's value an array\n * of text tokens.\n *\n * Used for grouping together URLs, emails, hashtags, and other potential\n * creations.\n * @class MultiToken\n * @property {string} t\n * @property {string} v\n * @property {Token[]} tk\n * @abstract\n */\nMultiToken.prototype = {\n isLink: false,\n /**\n * Return the string this token represents.\n * @return {string}\n */\n toString() {\n return this.v;\n },\n /**\n * What should the value for this token be in the `href` HTML attribute?\n * Returns the `.toString` value by default.\n * @param {string} [scheme]\n * @return {string}\n */\n toHref(scheme) {\n return this.toString();\n },\n /**\n * @param {Options} options Formatting options\n * @returns {string}\n */\n toFormattedString(options) {\n const val = this.toString();\n const truncate = options.get('truncate', val, this);\n const formatted = options.get('format', val, this);\n return truncate && formatted.length > truncate ? formatted.substring(0, truncate) + '…' : formatted;\n },\n /**\n *\n * @param {Options} options\n * @returns {string}\n */\n toFormattedHref(options) {\n return options.get('formatHref', this.toHref(options.get('defaultProtocol')), this);\n },\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex() {\n return this.tk[0].s;\n },\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n /**\n \tReturns an object of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject(protocol) {\n if (protocol === void 0) {\n protocol = defaults.defaultProtocol;\n }\n return {\n type: this.t,\n value: this.toString(),\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n *\n * @param {Options} options Formatting option\n */\n toFormattedObject(options) {\n return {\n type: this.t,\n value: this.toFormattedString(options),\n isLink: this.isLink,\n href: this.toFormattedHref(options),\n start: this.startIndex(),\n end: this.endIndex()\n };\n },\n /**\n * Whether this token should be rendered as a link according to the given options\n * @param {Options} options\n * @returns {boolean}\n */\n validate(options) {\n return options.get('validate', this.toString(), this);\n },\n /**\n * Return an object that represents how this link should be rendered.\n * @param {Options} options Formattinng options\n */\n render(options) {\n const token = this;\n const href = this.toHref(options.get('defaultProtocol'));\n const formattedHref = options.get('formatHref', href, this);\n const tagName = options.get('tagName', href, token);\n const content = this.toFormattedString(options);\n const attributes = {};\n const className = options.get('className', href, token);\n const target = options.get('target', href, token);\n const rel = options.get('rel', href, token);\n const attrs = options.getObj('attributes', href, token);\n const eventListeners = options.getObj('events', href, token);\n attributes.href = formattedHref;\n if (className) {\n attributes.class = className;\n }\n if (target) {\n attributes.target = target;\n }\n if (rel) {\n attributes.rel = rel;\n }\n if (attrs) {\n assign(attributes, attrs);\n }\n return {\n tagName,\n attributes,\n content,\n eventListeners\n };\n }\n};\n\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {new (value: string, tokens: Token[]) => MultiToken} new token class\n */\nfunction createTokenClass(type, props) {\n class Token extends MultiToken {\n constructor(value, tokens) {\n super(value, tokens);\n this.t = type;\n }\n }\n for (const p in props) {\n Token.prototype[p] = props[p];\n }\n Token.t = type;\n return Token;\n}\n\n/**\n\tRepresents a list of tokens making up a valid email address\n*/\nconst Email = createTokenClass('email', {\n isLink: true,\n toHref() {\n return 'mailto:' + this.toString();\n }\n});\n\n/**\n\tRepresents some plain text\n*/\nconst Text = createTokenClass('text');\n\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n*/\nconst Nl = createTokenClass('nl');\n\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n*/\nconst Url = createTokenClass('url', {\n isLink: true,\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@param {string} [scheme] default scheme (e.g., 'https')\n \t@return {string} the full href\n */\n toHref(scheme) {\n if (scheme === void 0) {\n scheme = defaults.defaultProtocol;\n }\n // Check if already has a prefix scheme\n return this.hasProtocol() ? this.v : `${scheme}://${this.v}`;\n },\n /**\n * Check whether this URL token has a protocol\n * @return {boolean}\n */\n hasProtocol() {\n const tokens = this.tk;\n return tokens.length >= 2 && tokens[0].t !== LOCALHOST && tokens[1].t === COLON;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/EmailAddress (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\nconst makeState = arg => new State(arg);\n\n/**\n * Generate the parser multi token-based state machine\n * @param {{ groups: Collections<string> }} tokens\n */\nfunction init$1(_ref) {\n let {\n groups\n } = _ref;\n // Types of characters the URL can definitely end in\n const qsAccepting = groups.domain.concat([AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, EQUALS, HYPHEN, NUM, PERCENT, PIPE, PLUS, POUND, SLASH, SYM, TILDE, UNDERSCORE]);\n\n // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n const qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI];\n\n // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n const localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, EQUALS, HYPHEN, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, UNDERSCORE];\n\n // The universal starting state.\n /**\n * @type State<Token>\n */\n const Start = makeState();\n const Localpart = tt(Start, TILDE); // Local part of the email address\n ta(Localpart, localpartAccepting, Localpart);\n ta(Localpart, groups.domain, Localpart);\n const Domain = makeState(),\n Scheme = makeState(),\n SlashScheme = makeState();\n ta(Start, groups.domain, Domain); // parsed string ends with a potential domain name (A)\n ta(Start, groups.scheme, Scheme); // e.g., 'mailto'\n ta(Start, groups.slashscheme, SlashScheme); // e.g., 'http'\n\n ta(Domain, localpartAccepting, Localpart);\n ta(Domain, groups.domain, Domain);\n const LocalpartAt = tt(Domain, AT); // Local part of the email address plus @\n\n tt(Localpart, AT, LocalpartAt); // close to an email address now\n\n // Local part of an email address can be e.g. 'http' or 'mailto'\n tt(Scheme, AT, LocalpartAt);\n tt(SlashScheme, AT, LocalpartAt);\n const LocalpartDot = tt(Localpart, DOT); // Local part of the email address plus '.' (localpart cannot end in .)\n ta(LocalpartDot, localpartAccepting, Localpart);\n ta(LocalpartDot, groups.domain, Localpart);\n const EmailDomain = makeState();\n ta(LocalpartAt, groups.domain, EmailDomain); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomain, groups.domain, EmailDomain);\n const EmailDomainDot = tt(EmailDomain, DOT); // domain followed by DOT\n ta(EmailDomainDot, groups.domain, EmailDomain);\n const Email$1 = makeState(Email); // Possible email address (could have more tlds)\n ta(EmailDomainDot, groups.tld, Email$1);\n ta(EmailDomainDot, groups.utld, Email$1);\n tt(LocalpartAt, LOCALHOST, Email$1);\n\n // Hyphen can jump back to a domain name\n const EmailDomainHyphen = tt(EmailDomain, HYPHEN); // parsed string starts with local email info + @ with a potential domain name\n ta(EmailDomainHyphen, groups.domain, EmailDomain);\n ta(Email$1, groups.domain, EmailDomain);\n tt(Email$1, DOT, EmailDomainDot);\n tt(Email$1, HYPHEN, EmailDomainHyphen);\n\n // Final possible email states\n const EmailColon = tt(Email$1, COLON); // URL followed by colon (potential port number here)\n /*const EmailColonPort = */\n ta(EmailColon, groups.numeric, Email); // URL followed by colon and port numner\n\n // Account for dots and hyphens. Hyphens are usually parts of domain names\n // (but not TLDs)\n const DomainHyphen = tt(Domain, HYPHEN); // domain followed by hyphen\n const DomainDot = tt(Domain, DOT); // domain followed by DOT\n ta(DomainHyphen, groups.domain, Domain);\n ta(DomainDot, localpartAccepting, Localpart);\n ta(DomainDot, groups.domain, Domain);\n const DomainDotTld = makeState(Url); // Simplest possible URL with no query string\n ta(DomainDot, groups.tld, DomainDotTld);\n ta(DomainDot, groups.utld, DomainDotTld);\n ta(DomainDotTld, groups.domain, Domain);\n ta(DomainDotTld, localpartAccepting, Localpart);\n tt(DomainDotTld, DOT, DomainDot);\n tt(DomainDotTld, HYPHEN, DomainHyphen);\n tt(DomainDotTld, AT, LocalpartAt);\n const DomainDotTldColon = tt(DomainDotTld, COLON); // URL followed by colon (potential port number here)\n const DomainDotTldColonPort = makeState(Url); // TLD followed by a port number\n ta(DomainDotTldColon, groups.numeric, DomainDotTldColonPort);\n\n // Long URL with optional port and maybe query string\n const Url$1 = makeState(Url);\n\n // URL with extra symbols at the end, followed by an opening bracket\n const UrlNonaccept = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n // Query strings\n ta(Url$1, qsAccepting, Url$1);\n ta(Url$1, qsNonAccepting, UrlNonaccept);\n ta(UrlNonaccept, qsAccepting, Url$1);\n ta(UrlNonaccept, qsNonAccepting, UrlNonaccept);\n\n // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here works with or without scheme:// prefix\n tt(DomainDotTld, SLASH, Url$1);\n tt(DomainDotTldColonPort, SLASH, Url$1);\n\n // Note that domains that begin with schemes are treated slighly differently\n const SchemeColon = tt(Scheme, COLON); // e.g., 'mailto:'\n const SlashSchemeColon = tt(SlashScheme, COLON); // e.g., 'http:'\n const SlashSchemeColonSlash = tt(SlashSchemeColon, SLASH); // e.g., 'http:/'\n\n const UriPrefix = tt(SlashSchemeColonSlash, SLASH); // e.g., 'http://'\n\n // Scheme states can transition to domain states\n ta(Scheme, groups.domain, Domain);\n tt(Scheme, DOT, DomainDot);\n tt(Scheme, HYPHEN, DomainHyphen);\n ta(SlashScheme, groups.domain, Domain);\n tt(SlashScheme, DOT, DomainDot);\n tt(SlashScheme, HYPHEN, DomainHyphen);\n\n // Force URL with scheme prefix followed by anything sane\n ta(SchemeColon, groups.domain, Url$1);\n tt(SchemeColon, SLASH, Url$1);\n ta(UriPrefix, groups.domain, Url$1);\n ta(UriPrefix, qsAccepting, Url$1);\n tt(UriPrefix, SLASH, Url$1);\n\n // URL, followed by an opening bracket\n const UrlOpenbrace = tt(Url$1, OPENBRACE); // URL followed by {\n const UrlOpenbracket = tt(Url$1, OPENBRACKET); // URL followed by [\n const UrlOpenanglebracket = tt(Url$1, OPENANGLEBRACKET); // URL followed by <\n const UrlOpenparen = tt(Url$1, OPENPAREN); // URL followed by (\n\n tt(UrlNonaccept, OPENBRACE, UrlOpenbrace);\n tt(UrlNonaccept, OPENBRACKET, UrlOpenbracket);\n tt(UrlNonaccept, OPENANGLEBRACKET, UrlOpenanglebracket);\n tt(UrlNonaccept, OPENPAREN, UrlOpenparen);\n\n // Closing bracket component. This character WILL be included in the URL\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n tt(UrlOpenbracket, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracket, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparen, CLOSEPAREN, Url$1);\n tt(UrlOpenbrace, CLOSEBRACE, Url$1);\n\n // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `UrlOpenbrace` (if the URL only\n // has a single opening bracket for some reason).\n const UrlOpenbraceQ = makeState(Url); // URL followed by { and some symbols that the URL can end it\n const UrlOpenbracketQ = makeState(Url); // URL followed by [ and some symbols that the URL can end it\n const UrlOpenanglebracketQ = makeState(Url); // URL followed by < and some symbols that the URL can end it\n const UrlOpenparenQ = makeState(Url); // URL followed by ( and some symbols that the URL can end it\n ta(UrlOpenbrace, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracket, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracket, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparen, qsAccepting, UrlOpenparenQ);\n const UrlOpenbraceSyms = makeState(); // UrlOpenbrace followed by some symbols it cannot end it\n const UrlOpenbracketSyms = makeState(); // UrlOpenbracketQ followed by some symbols it cannot end it\n const UrlOpenanglebracketSyms = makeState(); // UrlOpenanglebracketQ followed by some symbols it cannot end it\n const UrlOpenparenSyms = makeState(); // UrlOpenparenQ followed by some symbols it cannot end it\n ta(UrlOpenbrace, qsNonAccepting);\n ta(UrlOpenbracket, qsNonAccepting);\n ta(UrlOpenanglebracket, qsNonAccepting);\n ta(UrlOpenparen, qsNonAccepting);\n\n // URL that begins with an opening bracket, followed by some symbols\n ta(UrlOpenbraceQ, qsAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceQ, qsNonAccepting, UrlOpenbraceQ);\n ta(UrlOpenbracketQ, qsNonAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketQ, qsNonAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenQ, qsNonAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsAccepting, UrlOpenbracketQ);\n ta(UrlOpenanglebracketSyms, qsAccepting, UrlOpenanglebracketQ);\n ta(UrlOpenparenSyms, qsAccepting, UrlOpenparenQ);\n ta(UrlOpenbraceSyms, qsNonAccepting, UrlOpenbraceSyms);\n ta(UrlOpenbracketSyms, qsNonAccepting, UrlOpenbracketSyms);\n ta(UrlOpenanglebracketSyms, qsNonAccepting, UrlOpenanglebracketSyms);\n ta(UrlOpenparenSyms, qsNonAccepting, UrlOpenparenSyms);\n\n // Close brace/bracket to become regular URL\n tt(UrlOpenbracketQ, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketQ, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenQ, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceQ, CLOSEBRACE, Url$1);\n tt(UrlOpenbracketSyms, CLOSEBRACKET, Url$1);\n tt(UrlOpenanglebracketSyms, CLOSEANGLEBRACKET, Url$1);\n tt(UrlOpenparenSyms, CLOSEPAREN, Url$1);\n tt(UrlOpenbraceSyms, CLOSEPAREN, Url$1);\n tt(Start, LOCALHOST, DomainDotTld); // localhost is a valid URL state\n tt(Start, NL$1, Nl); // single new line\n\n return {\n start: Start,\n tokens: tk\n };\n}\n\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State<MultiToken>} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {Token[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\nfunction run(start, input, tokens) {\n let len = tokens.length;\n let cursor = 0;\n let multis = [];\n let textTokens = [];\n while (cursor < len) {\n let state = start;\n let secondState = null;\n let nextState = null;\n let multiLength = 0;\n let latestAccepting = null;\n let sinceAccepts = -1;\n while (cursor < len && !(secondState = state.go(tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n while (cursor < len && (nextState = secondState || state.go(tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState;\n\n // Keep track of the latest accepting state\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n cursor++;\n multiLength++;\n }\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token add\n // the first text token to the text tokens array and try again from\n // the next\n cursor -= multiLength;\n if (cursor < len) {\n textTokens.push(tokens[cursor]);\n cursor++;\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n textTokens = [];\n }\n\n // Roll back to the latest accepting state\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts;\n\n // Create a new multitoken\n const Multi = latestAccepting.t;\n const subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(initMultiToken(Multi, input, subtokens));\n }\n }\n\n // Finally close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(initMultiToken(Text, input, textTokens));\n }\n return multis;\n}\n\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {new (value: string, tokens: Token[]) => MultiToken} Multi class to instantiate\n * @param {string} input original input string\n * @param {Token[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\nfunction initMultiToken(Multi, input, tokens) {\n const startIdx = tokens[0].s;\n const endIdx = tokens[tokens.length - 1].e;\n const value = input.slice(startIdx, endIdx);\n return new Multi(value, tokens);\n}\n\nconst warn = typeof console !== 'undefined' && console && console.warn || (() => {});\nconst warnAdvice = 'until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.';\n\n// Side-effect initialization state\nconst INIT = {\n scanner: null,\n parser: null,\n tokenQueue: [],\n pluginQueue: [],\n customSchemes: [],\n initialized: false\n};\n\n/**\n * @typedef {{\n * \tstart: State<string>,\n * \ttokens: { groups: Collections<string> } & typeof tk\n * }} ScannerInit\n */\n\n/**\n * @typedef {{\n * \tstart: State<MultiToken>,\n * \ttokens: typeof multi\n * }} ParserInit\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit }) => void} TokenPlugin\n */\n\n/**\n * @typedef {(arg: { scanner: ScannerInit, parser: ParserInit }) => void} Plugin\n */\n\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\nfunction reset() {\n State.groups = {};\n INIT.scanner = null;\n INIT.parser = null;\n INIT.tokenQueue = [];\n INIT.pluginQueue = [];\n INIT.customSchemes = [];\n INIT.initialized = false;\n}\n\n/**\n * Register a token plugin to allow the scanner to recognize additional token\n * types before the parser state machine is constructed from the results.\n * @param {string} name of plugin to register\n * @param {TokenPlugin} plugin function that accepts the scanner state machine\n * and available scanner tokens and collections and extends the state machine to\n * recognize additional tokens or groups.\n */\nfunction registerTokenPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid token plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n if (name === INIT.tokenQueue[i][0]) {\n warn(`linkifyjs: token plugin \"${name}\" already registered - will be overwritten`);\n INIT.tokenQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.tokenQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register token plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Register a linkify plugin\n * @param {string} name of plugin to register\n * @param {Plugin} plugin function that accepts the parser state machine and\n * extends the parser to recognize additional link types\n */\nfunction registerPlugin(name, plugin) {\n if (typeof plugin !== 'function') {\n throw new Error(`linkifyjs: Invalid plugin ${plugin} (expects function)`);\n }\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(`linkifyjs: plugin \"${name}\" already registered - will be overwritten`);\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n INIT.pluginQueue.push([name, plugin]);\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register plugin \"${name}\" ${warnAdvice}`);\n }\n}\n\n/**\n * Detect URLs with the following additional protocol. Anything with format\n * \"protocol://...\" will be considered a link. If `optionalSlashSlash` is set to\n * `true`, anything with format \"protocol:...\" will be considered a link.\n * @param {string} protocol\n * @param {boolean} [optionalSlashSlash]\n */\nfunction registerCustomProtocol(scheme, optionalSlashSlash) {\n if (optionalSlashSlash === void 0) {\n optionalSlashSlash = false;\n }\n if (INIT.initialized) {\n warn(`linkifyjs: already initialized - will not register custom scheme \"${scheme}\" ${warnAdvice}`);\n }\n if (!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(scheme)) {\n throw new Error('linkifyjs: incorrect scheme format.\\n 1. Must only contain digits, lowercase ASCII letters or \"-\"\\n 2. Cannot start or end with \"-\"\\n 3. \"-\" cannot repeat');\n }\n INIT.customSchemes.push([scheme, optionalSlashSlash]);\n}\n\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\nfunction init() {\n // Initialize scanner state machine and plugins\n INIT.scanner = init$2(INIT.customSchemes);\n for (let i = 0; i < INIT.tokenQueue.length; i++) {\n INIT.tokenQueue[i][1]({\n scanner: INIT.scanner\n });\n }\n\n // Initialize parser state machine and plugins\n INIT.parser = init$1(INIT.scanner.tokens);\n for (let i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser\n });\n }\n INIT.initialized = true;\n}\n\n/**\n * Parse a string into tokens that represent linkable and non-linkable sub-components\n * @param {string} str\n * @return {MultiToken[]} tokens\n */\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n\n/**\n * Find a list of linkable items in the given string.\n * @param {string} str string to find links in\n * @param {string | Opts} [type] either formatting options or specific type of\n * links to find, e.g., 'url' or 'email'\n * @param {Opts} [opts] formatting options for final output. Cannot be specified\n * if opts already provided in `type` argument\n*/\nfunction find(str, type, opts) {\n if (type === void 0) {\n type = null;\n }\n if (opts === void 0) {\n opts = null;\n }\n if (type && typeof type === 'object') {\n if (opts) {\n throw Error(`linkifyjs: Invalid link type ${type}; must be a string`);\n }\n opts = type;\n type = null;\n }\n const options = new Options(opts);\n const tokens = tokenize(str);\n const filtered = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toFormattedObject(options));\n }\n }\n return filtered;\n}\n\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\nfunction test(str, type) {\n if (type === void 0) {\n type = null;\n }\n const tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexport { MultiToken, Options, State, createTokenClass, find, init, multi, options, regexp, registerCustomProtocol, registerPlugin, registerTokenPlugin, reset, stringToArray, test, tokenize };\n","import { Options, tokenize } from 'linkifyjs';\n\nconst HTML_NODE = 1,\n TXT_NODE = 3;\n\n/**\n * @param {HTMLElement} parent\n * @param {Text | HTMLElement | ChildNode} oldChild\n * @param {Array<Text | HTMLElement>} newChildren\n */\nfunction replaceChildWithChildren(parent, oldChild, newChildren) {\n let lastNewChild = newChildren[newChildren.length - 1];\n parent.replaceChild(lastNewChild, oldChild);\n for (let i = newChildren.length - 2; i >= 0; i--) {\n parent.insertBefore(newChildren[i], lastNewChild);\n lastNewChild = newChildren[i];\n }\n}\n\n/**\n * @param {import('linkifyjs').MultiToken[]} tokens\n * @param {import('linkifyjs').Options} options\n * @param {Document} doc Document implementation\n * @returns {Array<Text | HTMLElement>}\n */\nfunction tokensToNodes(tokens, options, doc) {\n const result = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.t === 'nl' && options.get('nl2br')) {\n result.push(doc.createElement('br'));\n } else if (!token.isLink || !options.check(token)) {\n result.push(doc.createTextNode(token.toString()));\n } else {\n result.push(options.render(token));\n }\n }\n return result;\n}\n\n/**\n * Requires document.createElement\n * @param {HTMLElement | ChildNode} element\n * @param {import('linkifyjs').Options} options\n * @param {Document} doc\n * @returns {HTMLElement}\n */\nfunction linkifyElementHelper(element, options, doc) {\n // Can the element be linkified?\n if (!element || element.nodeType !== HTML_NODE) {\n throw new Error(`Cannot linkify ${element} - Invalid DOM Node type`);\n }\n\n // Is this element already a link?\n if (element.tagName === 'A' || options.ignoreTags.indexOf(element.tagName) >= 0) {\n // No need to linkify\n return element;\n }\n let childElement = element.firstChild;\n while (childElement) {\n let str, tokens, nodes;\n switch (childElement.nodeType) {\n case HTML_NODE:\n linkifyElementHelper(childElement, options, doc);\n break;\n case TXT_NODE:\n {\n str = childElement.nodeValue;\n tokens = tokenize(str);\n if (tokens.length === 0 || tokens.length === 1 && tokens[0].t === 'text') {\n // No node replacement required\n break;\n }\n nodes = tokensToNodes(tokens, options, doc);\n\n // Swap out the current child for the set of nodes\n replaceChildWithChildren(element, childElement, nodes);\n\n // so that the correct sibling is selected next\n childElement = nodes[nodes.length - 1];\n break;\n }\n }\n childElement = childElement.nextSibling;\n }\n return element;\n}\n\n/**\n * @param {Document} doc The document implementaiton\n */\nfunction getDefaultRender(doc) {\n return _ref => {\n let {\n tagName,\n attributes,\n content,\n eventListeners\n } = _ref;\n const link = doc.createElement(tagName);\n for (const attr in attributes) {\n link.setAttribute(attr, attributes[attr]);\n }\n if (eventListeners && link.addEventListener) {\n for (const event in eventListeners) {\n link.addEventListener(event, eventListeners[event]);\n }\n }\n link.appendChild(doc.createTextNode(content));\n return link;\n };\n}\n\n/**\n * Recursively traverse the given DOM node, find all links in the text and\n * convert them to anchor tags.\n *\n * @param {HTMLElement} element A DOM node to linkify\n * @param {import('linkifyjs').Opts} [opts] linkify options\n * @param {Document} [doc] (optional) window.document implementation, if differs from global\n * @returns {HTMLElement}\n */\nfunction linkifyElement(element, opts, doc) {\n if (opts === void 0) {\n opts = null;\n }\n if (doc === void 0) {\n doc = null;\n }\n try {\n doc = doc || document || window && window.document || global && global.document;\n } catch (e) {/* do nothing for now */}\n if (!doc) {\n throw new Error('Cannot find document implementation. ' + 'If you are in a non-browser environment like Node.js, ' + 'pass the document implementation as the third argument to linkifyElement.');\n }\n const options = new Options(opts, getDefaultRender(doc));\n return linkifyElementHelper(element, options, doc);\n}\n\n// Maintain reference to the recursive helper and option-normalization for use\n// in linkify-jquery\nlinkifyElement.helper = linkifyElementHelper;\nlinkifyElement.getDefaultRender = getDefaultRender;\n\n/**\n * @param {import('linkifyjs').Opts | import('linkifyjs').Options} opts\n * @param {Document} doc\n */\nlinkifyElement.normalize = (opts, doc) => new Options(opts, getDefaultRender(doc));\n\nexport { linkifyElement as default };\n","import { Controller } from \"@hotwired/stimulus\"\nimport linkifyElement from \"linkify-element\";\n\nclass LinkifyController extends Controller {\n connect() {\n linkifyElement(this.element);\n }\n}\n\nexport default LinkifyController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass FileUploaderValidatorController extends Controller {\n connect() {\n this.element.addEventListener('change', (e) => {\n const input = e.target;\n const file = input.files[0];\n const fileSize = file.size / 1024 / 1024;\n let errorMessage = null;\n\n if (fileSize > 10) {\n errorMessage = 'The file you have uploaded is larger than our limit of 10 MB'\n } else if (fileSize == 0) {\n errorMessage = 'The file you have uploaded is corrupted'\n }\n\n if (errorMessage) {\n input.value = '';\n Helper.flash_message('error', errorMessage);\n }\n });\n }\n\n\n}\n\nexport default FileUploaderValidatorController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\nimport Neo from \"src/Neo\";\n\nclass FacilityController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n }\n\n publish(e) {\n e.preventDefault();\n const link = e.target;\n const url = link.getAttribute('href');\n\n axios.put(url).then((response) => {\n this.updateColumns();\n }).catch((error) => {\n Neo.processError(error, (e) => Helper.flash_message('error', e.response.data.errors.join(', ')))\n })\n }\n\n deleteAsSystemAdmin(e) {\n e.preventDefault();\n\n const button = e.target;\n const url = button.dataset.url;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (event) => {\n Helper.flash_message('success', event.detail.response.data.notice);\n $(modal).modal('hide');\n Neo.reloadTable('admin_facilities_table');\n })\n });\n }\n\n delete(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.delete(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_facilities_table');\n }).catch((error) => {\n Neo.processError(error, () => Helper.flash_message('error', error.response.data.error))\n })\n })\n }\n\n addDestroyRequest(e) {\n e.preventDefault();\n\n axios.get(e.target.dataset.url).then(response => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (data) => {\n const notice = data.detail?.response?.data?.notice;\n Helper.flash_message('success', notice);\n $(modal).modal('hide');\n this.updateColumns();\n });\n })\n }\n\n removeDestroyRequest(e) {\n e.preventDefault();\n\n Neo.confirm(e.target.dataset.message, () => {\n axios.delete(e.target.dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice);\n this.updateColumns();\n })\n });\n }\n\n updateColumns(facilityId) {\n axios.get(`/admin/facilities/${this.id}`, { headers: { 'Accept': 'text/vnd.turbo-stream.html' } }).then((r) => {\n Turbo.renderStreamMessage(r.data);\n }).catch((error) => Helper.flash_message('error', 'Something went wrong'));\n }\n}\n\nexport default FacilityController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport React, { lazy, Suspense } from 'react';\nimport ReactDOM from \"react-dom\";\n\nconst Components = {\n 'AdminImages': () => import(\"src/components/AdminImages\"),\n 'Messenger': () => import(\"src/components/Messenger/Index\")\n}\n\nexport default class extends Controller {\n static values = {\n name: String\n };\n\n connect() {\n if (!Components[this.nameValue]) {\n throw new Exception(`\"${this.nameValue}\" is not known component.`);\n }\n\n const Component = lazy(Components[this.nameValue]);\n const options = this.element.dataset;\n\n ReactDOM.render(\n <Suspense fallback={<div/>}>\n <Component {...options}/>\n </Suspense>, this.element\n );\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass InfoPageController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n this.partnerProfileId = this.element.dataset.partnerProfileId;\n console.log(this.partnerProfileId);\n }\n\n publish(e) {\n const target = e.target;\n\n const field = target.getAttribute('name');\n const data = { [field]: target.checked };\n\n axios.post(`/admin/settings/info_pages/${this.id}/publish`, data).then((response) => {\n target.checked = response.data[field];\n });\n }\n\n up(e) {\n e.preventDefault();\n\n const [ids, index] = this.currentIds(e);\n\n if (index > 0) {\n const temp = ids[index - 1];\n ids[index - 1] = ids[index];\n ids[index] = temp;\n }\n\n this.pushNewOrder(ids);\n }\n\n down(e) {\n e.preventDefault();\n\n const [ids, index] = this.currentIds(e);\n\n if (index < ids.length - 1 && index !== -1) {\n const temp = ids[index + 1];\n ids[index + 1] = ids[index];\n ids[index] = temp;\n }\n\n this.pushNewOrder(ids);\n }\n\n currentIds(e) {\n const table = e.target.closest('table');\n const rows = table.querySelectorAll('tr[data-controller=\"info_page\"]');\n const ids = Array.from(rows).map(row => parseInt(row.dataset.id));\n const id = this.element.dataset.id;\n const index = ids.indexOf(parseInt(id));\n\n return [ids, index]\n }\n\n pushNewOrder(ids) {\n axios\n .post('/admin/settings/info_pages/reorder', { ids: ids })\n .then((response) => {\n axios\n .get('/admin/settings/info_pages', { params: { table: true, partner_profile_id: this.partnerProfileId } })\n .then(response => Turbo.renderStreamMessage(response.data))\n })\n }\n}\n\nexport default InfoPageController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass OnlineFacilityController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n }\n\n publish(e) {\n e.preventDefault();\n\n const link = e.target;\n const url = link.getAttribute('href');\n\n axios.put(url).then((response) => {\n this.update();\n }).catch((error) => {\n Helper.flash_message('error', e.response.data.errors.join(', '));\n })\n }\n\n update() {\n const url = `/admin/membership_information/${this.id}`;\n\n axios.get(url, { headers: { 'Accept': 'text/vnd.turbo-stream.html' } })\n .then((r) => {\n Turbo.renderStreamMessage(r.data);\n })\n .catch((error) => Helper.flash_message('error', 'Something went wrong'));\n }\n}\n\nexport default OnlineFacilityController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport Neo from \"src/Neo\";\nimport NeoModal from \"src/NeoModal\";\n\nclass OnlineMembershipPlanController extends Controller {\n static targets = ['numberDays', 'numberMonths', 'paymentFrequency']\n\n connect() {\n const data = this.element.dataset;\n this.id = data.id;\n this.facilityId = data.facilityId;\n }\n\n publish(e) {\n e.preventDefault();\n\n const url = e.target.getAttribute('href');\n\n axios.put(url).then((response) => {\n Neo.reloadTable('admin_online_membership_plan_table');\n }).catch((error) => {\n Neo.processError(error, (e) => Helper.flash_message('error', e.response.data.errors.join(', ')))\n })\n }\n\n selectType(e) {\n const targets = {\n less_one_month: this.numberDaysTarget,\n one_month_or_more: this.numberMonthsTarget\n }\n\n Object.keys(targets).map((key) => {\n let target = targets[key];\n let input = target.querySelector('select');\n\n if (key === e.target.value) {\n target.classList.remove('hide');\n input.disabled = false;\n } else {\n target.classList.add('hide'); \n input.disabled = true;\n this.paymentFrequencyTarget.classList.add('hide');\n }\n input.value = '';\n });\n }\n\n selectNumberMonths(e) {\n if (parseInt(e.target.value) < 2) {\n this.paymentFrequencyTarget.classList.add('hide');\n } else {\n this.paymentFrequencyTarget.classList.remove('hide');\n } \n }\n\n send(e) {\n e.preventDefault();\n\n const button = e.target;\n const url = button.dataset.url;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (event) => {\n Helper.flash_message('success', event.detail.response.data.notice);\n $(modal).modal('hide');\n Neo.reloadTable('admin_online_membership_plan_table');\n })\n });\n }\n}\n\nexport default OnlineMembershipPlanController;\n","import { Controller } from \"@hotwired/stimulus\";\n\nclass NewSpecialDateController extends Controller {\n static targets = ['typeInput', 'specialDatesContainer'];\n\n connect() {\n this.setPredefinedSpecialDatesContainerVisibility(this.typeInputTarget);\n this.typeInputTarget.addEventListener('change', this.handleTypeChange.bind(this));\n }\n\n toggleSpecialDatesButtonsContainer(event) {\n const checked = event.target.checked;\n\n this.element.querySelector('.actions-hidden-container').hidden = !checked;\n }\n\n handleTypeChange(event) {\n this.setPredefinedSpecialDatesContainerVisibility(event.target);\n }\n\n setPredefinedSpecialDatesContainerVisibility(typeSelect) {\n const currentAction = this.element.dataset.currentAction;\n const selectedOption = Array.from(typeSelect.selectedOptions)[0].value;\n this.specialDatesContainerTarget.hidden = !(selectedOption == 'closure' && currentAction == 'new');\n }\n}\n\nexport default NewSpecialDateController;\n","import { Controller as n } from \"@hotwired/stimulus\";\nclass r extends n {\n add(t) {\n t.preventDefault();\n const e = this.templateTarget.innerHTML.replace(/NEW_RECORD/g, new Date().getTime().toString());\n this.targetTarget.insertAdjacentHTML(\"beforebegin\", e);\n }\n remove(t) {\n t.preventDefault();\n const e = t.target.closest(this.wrapperSelectorValue);\n if (e.dataset.newRecord === \"true\")\n e.remove();\n else {\n e.style.display = \"none\";\n const a = e.querySelector(\"input[name*='_destroy']\");\n a.value = \"1\";\n }\n }\n}\nr.targets = [\"target\", \"template\"];\nr.values = {\n wrapperSelector: {\n type: String,\n default: \".nested-form-wrapper\"\n }\n};\nexport {\n r as default\n};\n","import { Controller } from \"@hotwired/stimulus\";\n\nclass ToggleInputsController extends Controller {\n static targets = ['toggleButton'];\n\n connect() {\n const currentState = this.toggleButtonTarget.checked;\n\n this.toggleableInputs().forEach((input) => { input.disabled = !currentState });\n }\n\n toggle(event) {\n const toggleInputs = JSON.parse(event.target.checked);\n const inputs = this.toggleableInputs();\n inputs.forEach(input => { input.disabled = !toggleInputs });\n }\n\n toggleableInputs() {\n return this.element.querySelectorAll('input[data-toggleable=\"true\"]');\n }\n}\n\nexport default ToggleInputsController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport NeoDialog from \"../../src/NeoDialog\";\n\nclass FuturePricesModalController extends Controller {\n static values = { \n confirmOpen: Boolean,\n alternativeUrl: String\n }\n\n connect() {\n const queryParams = new URLSearchParams(window.location.search);\n const openModal = queryParams.get('futurePricesModal');\n\n if (openModal == 'true') {\n this.element.click();\n }\n }\n\n openWithConfirm(event) {\n event.preventDefault();\n\n if (this.confirmOpenValue) {\n const dialogText = \"One or more of your facilities already have a future price set. \" +\n \"Any changes you make will override the future prices currently on the system. \" +\n \"The Pricing Report will allow you to review future prices set on the system.\"; \n\n NeoDialog.confirm(dialogText, 'Continue', 'Review Pricing Report')\n .then((result) => {\n if (result.isConfirmed) {\n this.confirmOpenValue = false;\n this.element.classList.add('open_link_in_modal');\n this.element.click();\n this.confirmOpenValue = true;\n this.element.classList.remove('open_link_in_modal');\n } else {\n window.location = this.alternativeUrlValue;\n }\n });\n } else {\n this.element.classList.add('open_link_in_modal');\n this.element.click();\n }\n }\n}\n\nexport default FuturePricesModalController;\n","import { Controller } from \"@hotwired/stimulus\";\n\nclass SessionStorageController extends Controller {\n clear() {\n sessionStorage.clear();\n ['shiftOptions'].forEach((key) => localStorage.removeItem(key));\n }\n}\n\nexport default SessionStorageController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass ExtraFormController extends Controller {\n connect() {\n $('input.datepicker').datepicker({\n format: 'D, dd M yyyy',\n autoclose: true,\n startDate: '+1d',\n weekStart: 1\n })\n\n const toggleFacilities = () => {\n const val = $('input[name=\"extra[all_facilities]\"]:checked').val();\n $('.facilities-for-extras').toggle(val === '0');\n }\n\n const togglePricingCalculationType = () => {\n const val = $('select[name=\"extra[pricing_calculation_type]\"]').val()\n $('.extra_apply_discounts').toggle(val !== 'percent')\n }\n\n const toggleFuturePrice = () => {\n const future_extra_price_block = $('#future_extra_price_block')\n const futureToggle = $('#extra_future_price_toggle')\n const creation_marker = $('#extra_future_extra_price_attributes__destroy')\n\n creation_marker.val(!futureToggle.is(':checked'))\n future_extra_price_block.toggle(futureToggle.is(':checked'))\n }\n\n $('input[name=\"extra[all_facilities]\"]').on('change', toggleFacilities);\n $('select[name=\"extra[pricing_calculation_type]\"]').on('change', togglePricingCalculationType);\n $('input[name=\"extra[add_future_price]\"]').on('change', toggleFuturePrice);\n\n toggleFuturePrice();\n toggleFacilities();\n togglePricingCalculationType();\n }\n}\n\nexport default ExtraFormController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass ExtrasTableController extends Controller {\n static targets = ['button'];\n\n connect() {\n this.expanded = false;\n }\n\n expand_collapse(event) {\n this.expanded = !this.expanded;\n\n const expanded = this.expanded;\n\n this.element.querySelectorAll('tr:nth-child(n+3):not(.extras-expand-btn)').forEach((el) => {\n const classList = el.classList;\n\n if (expanded) {\n classList.remove('hidden');\n } else {\n classList.add('hidden');\n }\n });\n\n const button = this.buttonTarget\n const data = button.dataset\n\n button.innerHTML = expanded ? data.collapseText : data.expandText\n }\n}\n\nexport default ExtrasTableController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass SignOutController extends Controller {\n connect() {\n this.element.addEventListener('click', this.clearLocalStorage)\n }\n\n clearLocalStorage() {\n ['shiftOptions'].forEach((key) => localStorage.removeItem(key));\n }\n}\n\nexport default SignOutController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport anx from \"src/nextgen/Payments/anx\";\nimport stripeForm from \"src/nextgen/Payments/Form/stripeForm\";\n\nexport default class extends Controller {\n static targets = ['checkbox', 'block']\n\n connect() {\n this.toggle(this.checked)\n }\n\n checkboxTargetConnected(el) {\n this.checked = el.checked;\n }\n\n change(e) {\n this.checked = e.target.checked;\n this.toggle(this.checked)\n }\n\n toggle(state) {\n // if (this.hasblockTarget) {\n if (state) {\n this.blockTarget.classList.remove('hidden')\n } else {\n this.blockTarget.classList.add('hidden')\n }\n // }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = ['optionType', 'days'];\n\n connect() {\n super.connect();\n this.optionType = this.optionTypeTarget.value;\n this.toggleDays();\n }\n\n selectOption(e) {\n const radioButton = e.target;\n this.optionTypeTarget.value = radioButton.dataset.optionType;\n this.optionType = radioButton.dataset.optionType;\n this.toggleDays();\n }\n\n toggleDays() {\n if (this.optionType === 'overall_split_by_days') {\n this.daysTarget.classList.add('hidden')\n } else {\n this.daysTarget.classList.remove('hidden')\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport Neo from \"../src/Neo\";\n\nclass VenueController extends Controller {\n delete(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.delete(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_venues_table');\n }).catch((error) => {\n Neo.processError(error, () => {\n Helper.flash_message('error', error.response.data.error)\n })\n })\n })\n }\n\n addInfoToCookie(e) {\n const stripeConnectVenueId = e.target.dataset.stripeConnectVenueId;\n document.cookie = `stripe_connect_venue_id=${stripeConnectVenueId}; path=/`;\n return true;\n }\n}\n\nexport default VenueController;\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class InboxUnreadCountController extends Controller {\n connect() {\n document.addEventListener('messenger:inbox:unread_count', (event) => {\n this.element.style.display = event.detail.unreadCount > 0 ? 'block' : 'none';\n this.element.textContent = event.detail.unreadCount;\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nclass OnlineMembershipCancellationController extends Controller {\n static targets = ['cancellationDate'];\n\n connect() {\n this.cancellationDate = null;\n\n window.onChangeCancellationDate = (val) => {\n this.cancellationDate = moment(val.date).format('YYYY-MM-DD');\n this.updateFormData();\n }\n }\n\n updateFormData() {\n const url = this.element.action;\n\n axios\n .get(url, {\n params: { cancellation_date: this.cancellationDate },\n headers: { 'Accept': 'text/vnd.turbo-stream.html' }\n })\n .then((r) => Turbo.renderStreamMessage(r.data))\n .catch((e) => Helper.flash_message('error', e.response.data.errors));\n }\n}\n\nexport default OnlineMembershipCancellationController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from 'axios';\n\nexport default class extends Controller {\n connect() {\n const searchInput = document.querySelector('#file-search');\n const docTypeInput = document.querySelectorAll('input[name=\"filter_attachments_dates\"]');\n const customerId = searchInput.dataset.customerId;\n const linkToOnlineMembership = searchInput.dataset.linkToOnlineMembership;\n const venueId = searchInput.dataset.venueId;\n\n const searchData = (event) => {\n let doc_type = document.querySelectorAll('input[name=\"filter_attachments_dates\"]:checked')[0];\n let search = searchInput.value;\n\n axios.get(\"/file_managers\", { params: { search: search, customer_id: customerId, venue_id: venueId, doc_type: doc_type, link_to_online_membership: linkToOnlineMembership, format: 'turbo_stream' } })\n .then((response) => { Turbo.renderStreamMessage(response.data) })\n }\n\n const debounce = (callback, waitTime) => {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n callback(...args);\n }, waitTime);\n };\n }\n\n searchInput.addEventListener('input', debounce(searchData, 500));\n Array.from(docTypeInput).forEach((input) => { input.addEventListener('change', debounce(searchData, 0)) });\n }\n}","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\n\nexport default class extends Controller {\n static targets = ['imagePreview'];\n\n addImage(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url } = button.dataset;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data, {});\n\n modal.addEventListener('neo_modal:success', () => {\n $(modal).modal('hide');\n button.innerHTML = 'View image';\n });\n });\n }\n\n removeImage(e) {\n e.preventDefault();\n\n const target = e.target;\n const form = target.closest('form');\n const { url, id } = target.dataset;\n\n axios.delete(url).then((response) => {\n const parser = new DOMParser();\n const parsedHTML = parser.parseFromString(response.data, 'text/html');\n const parsedForm = parsedHTML.querySelector('form');\n const addImageButton = document.querySelector(`#view_image_${id}`);\n\n if (addImageButton) addImageButton.innerHTML = 'Add image';\n\n form.innerHTML = parsedForm.innerHTML;\n });\n }\n\n previewImage(e) {\n const file = e.target.files[0];\n\n if (file) {\n const reader = new FileReader();\n\n reader.onload = (event) => {\n const imagePreview = this.imagePreviewTarget;\n imagePreview.src = event.target.result;\n imagePreview.classList.remove('hide');\n };\n\n reader.readAsDataURL(file);\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass VenueCheckoutController extends Controller {\n static targets = [\"confirm\"];\n\n moveToCheckout(event) {\n event.preventDefault();\n\n const url = event.target.dataset.redirectUrl;\n window.location.replace(url); \n }\n}\n\nexport default VenueCheckoutController;\n","import React, { useState } from 'react';\nimport Form from \"src/components/MultiMessages/Form\";\n\nconst MembersMultiMessageForm = () => {\n const [show, setShow] = useState(true);\n\n return (\n <>\n {show && <Form show={show} setShow={setShow} conversationPurpose={'online_memberships'}/>}\n </>\n )\n}\n\nexport default MembersMultiMessageForm;","import React from \"react\";\nimport { Controller } from \"@hotwired/stimulus\";\nimport ReactDOM from \"react-dom\";\nimport Form from \"src/components/Messenger/MembersMultiMessageForm\";\n\nexport default class MembersMultiMessageButtonController extends Controller {\n connect() {\n this.element.addEventListener('click', (e) => {\n const mountPoint = document.createElement('div');\n\n this.element.parentNode.replaceChild(mountPoint, this.element.nextSibling);\n\n ReactDOM.render(<Form />, mountPoint);\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport Neo from \"src/Neo\";\nimport NeoModal from \"src/NeoModal\";\n\nclass RelatedTeamsController extends Controller {\n send(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url, tableName } = button.dataset;\n\n axios.get(url).then((response) => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (event) => {\n const data = event.detail.response.data;\n\n Helper.flash_message('success', data.notice);\n\n $(modal).modal('hide');\n\n if (this.isOrderPage) {\n window.reloadOrderHeader();\n } else {\n Neo.reloadTable(tableName);\n }\n })\n });\n }\n\n delete(e) {\n e.preventDefault();\n\n const { dataset, attributes } = e.target;\n\n if (attributes.disabled) return;\n\n Neo.confirm(dataset.message, () => {\n axios.delete(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable(dataset.tableName);\n }).catch((error) => {\n Neo.processError(error, () => {\n Helper.flash_message('error', error.response.data.error)\n })\n })\n })\n }\n\n toggleHide(e) {\n e.preventDefault();\n\n const { url, hidden } = e.target.dataset\n\n axios\n .put(url, { related_team: { hidden: hidden }})\n .then((response) => {\n Helper.flash_message('success', response.data.notice);\n Neo.reloadTable('account_related_teams_table');\n });\n }\n\n get isOrderPage() {\n return document.getElementById('order_header') !== null;\n }\n}\n\nexport default RelatedTeamsController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\n\nclass CalendarBookingModalController extends Controller {\n static targets = ['questionsContainer'];\n\n connect() {\n this.isQuestionVisible = false;\n }\n\n toggleQuestionsVisibility(event) {\n event.preventDefault();\n\n if (this.isQuestionVisible) {\n this.hideQuestions(event);\n } else {\n this.loadQuestions(event);\n }\n }\n\n loadQuestions(event) {\n const target = event.target;\n const container = this.questionsContainerTargets[0];\n const orderId = target.dataset.orderId;\n\n if (!container) return null;\n\n axios\n .get(`/admin/calendar/venue_questions`, {\n params: { order_id: orderId },\n headers: {\n Accept: \"text/vnd.turbo-stream.html\",\n },\n })\n .then((response) => {\n container.innerHTML = response.data;\n target.innerHTML = 'Hide answers to Venue Questions';\n this.isQuestionVisible = true;\n })\n .catch((error) => {\n console.error(\"Error loading venue questions:\", error);\n container.innerHTML = \"<p class='text-danger'>Failed to load questions. Please try again.</p>\";\n });\n }\n\n hideQuestions(event) {\n this.questionsContainerTargets.forEach(container => container.innerHTML = '');\n this.isQuestionVisible = false;\n event.target.innerHTML = 'View answers to Venue Questions';\n }\n}\n\nexport default CalendarBookingModalController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nexport default class extends Controller {\n static targets = [\"select\"];\n\n connect() {\n this.selectTarget.addEventListener(\"change\", this.onChange.bind(this));\n }\n\n onChange(event) {\n const target = event.target;\n const form = target.closest(\"form\");\n const url = form.getAttribute(\"action\");\n\n axios\n .put(url, { related_team_id: target.value })\n .catch((error) => {\n Helper.flash_message(\"error\", error.response.data.errors);\n });\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nconst LOCALE = 'en-GB';\nconst LOCALE_OPTIONS = {\n weekday: 'short',\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'Europe/London'\n}\n\nexport default class BookingCustomMessagesController extends Controller {\n static targets = ['startTime', 'endTime', 'showCheckbox', 'timeRangeInputs'];\n\n connect() {\n const messageType = this.element.dataset.messageType;\n\n if (messageType == 'message_auto_response' || messageType == 'online_membership_message_auto_response') {\n this.showCheckboxTarget.addEventListener('click', (event) => {\n if (event.target.checked) {\n const modal = $('#admin_conversations_modal');\n const startDateEl = modal.find('#booking_custom_message_start_date')\n const endDateEl = modal.find('#booking_custom_message_end_date')\n const startHourEl = modal.find('#booking_custom_message_start_hour')\n const endHourEl = modal.find('#booking_custom_message_end_hour')\n const scheduleToggleEl = modal.find('#booking_custom_message_schedule_toggle')\n \n \n const currentStartDate = startDateEl.datepicker('getDate');\n const currentEndDate = endDateEl.datepicker('getDate');\n \n if (!currentStartDate && !currentEndDate) {\n const startDate = new Date().toLocaleDateString(LOCALE, LOCALE_OPTIONS);\n const endDate = new Date().toLocaleDateString(LOCALE, LOCALE_OPTIONS);\n const startHour = '00:00';\n const endHour = '00:00';\n \n startDateEl.datepicker('setDate', startDate)\n endDateEl.datepicker('setDate', endDate)\n startHourEl.val(startHour)\n endHourEl.val(endHour)\n scheduleToggleEl.prop('checked', true)\n }\n \n this.timeRangeInputsTarget.hidden = false;\n } else {\n this.timeRangeInputsTarget.hidden = true;\n }\n })\n } else {\n this.element.style.display = 'none';\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass OnlineMembershipPackageController extends Controller {\n static targets = ['membershipForm', 'membershipPlan', 'startDate',\n 'selfBooking', 'membershipHistoryUrl', 'additionalMembers'];\n\n connect() {\n this.selfBooking = this.selfBookingTargets[0]?.value;\n this.startDate = this.startDateTargets[0]?.value;\n\n window.onChangeStartDate = (val) => {\n this.startDate = moment(val.date).format('YYYY-MM-DD');\n this.update();\n }\n }\n\n selectMembershipType(e) {\n const target = e.target;\n const firstOption = target.options.item(0);\n\n if (firstOption.value === '') firstOption.remove();\n\n this.update();\n }\n\n changeSelfBookingOption(e) {\n this.selfBooking = e.target.value;\n this.update();\n this.show({self_booking: this.selfBooking});\n }\n\n updateSameDetailsAsCustomer(e) {\n const target = e.target;\n const url = target.dataset.url;\n\n axios\n .put(url, { same_details_as_customer: target.checked })\n .then((response) => {\n target.closest('.online_member').innerHTML = response.data;\n })\n .catch((e) => {\n Helper.flash_message('error', e.response.data.errors);\n });\n }\n\n addMember(e) {\n e.preventDefault();\n\n axios\n .post(e.target.href)\n .then((response) => {\n this.additionalMembersTarget.insertAdjacentHTML('beforeend', response.data);\n this.show();\n });\n }\n\n removeMember(e) {\n e.preventDefault();\n\n axios\n .delete(e.target.href)\n .then((response) => {\n e.target.closest('.online_member').innerHTML = '';\n this.show();\n });\n }\n\n update() {\n axios\n .put(\n this.membershipHistoryUrlTarget.dataset.url,\n {\n online_membership_plan_id: this.membershipPlanTarget.value,\n start_date: this.startDate,\n self_booking: this.selfBooking\n },\n {\n headers: {\n 'Accept': 'text/vnd.turbo-stream.html'\n }\n }\n )\n .then((r) => Turbo.renderStreamMessage(r.data))\n .catch((e) => Helper.flash_message('error', e.response.data.errors));\n }\n\n show(params) {\n axios\n .get(this.membershipFormTarget.action, {\n params: params,\n headers: {\n 'Accept': 'text/vnd.turbo-stream.html'\n }\n })\n .then((r) => Turbo.renderStreamMessage(r.data))\n .catch((e) => Helper.flash_message('error', e.response.data.errors));\n }\n}\n\nexport default OnlineMembershipPackageController;\n","import BaseController from \"../neo_modal_controller\";\nimport { processingModal } from \"src/nextgen/helpers/processing_modal\";\nimport OrderTab from \"src/nextgen/orders/Tab\";\n\nexport default class BillSendController extends BaseController {\n connect() {\n super.connect();\n }\n\n onSuccess(response) {\n try {\n this.orderTab.reload('next_bill', () => {\n setInterval(() => { $(this.element).modal('hide') }, 200);\n processingModal.hide();\n this.setInProgress(false);\n });\n } catch (e) {\n console.log(e);\n }\n }\n\n onFailed(error) {\n const data = error.response.data;\n\n if (data.reload_bill) {\n this.orderTab.reload('next_bill', () => {});\n }\n }\n\n get orderTab() {\n return new OrderTab();\n }\n}","function parseMs (ms) {\n if (typeof ms !== 'number') {\n throw new TypeError('Expected a number')\n }\n\n return {\n days: Math.trunc(ms / 86400000),\n hours: Math.trunc(ms / 3600000) % 24,\n minutes: Math.trunc(ms / 60000) % 60,\n seconds: Math.trunc(ms / 1000) % 60,\n ms: Math.trunc(ms) % 1000\n }\n}\n\nfunction addZero (value, digits) {\n digits = digits || 2\n\n let str = value.toString()\n let size = 0\n\n size = digits - str.length + 1\n str = new Array(size).join('0').concat(str)\n\n return str\n}\n\nfunction getSign (duration) {\n return duration <= -1000 ? '-' : ''\n}\n\nexport function formatDuration (ms) {\n const unsignedMs = ms < 0 ? -ms : ms\n const sign = getSign(ms)\n const t = parseMs(unsignedMs)\n const seconds = addZero(t.seconds)\n let output = ''\n\n output = sign + ((t.days * 24) + t.hours) + ':' + addZero(t.minutes) + ':' + seconds\n\n return output\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport { formatDuration } from \"../src/formatDuration\";\n\nexport default class BillCountdownController extends Controller {\n connect() {\n this.timer = null;\n\n const dataset = this.element.dataset;\n this.billId = dataset.billId\n this.duration = undefined;\n this.text = dataset.text;\n this.redirectUrl = dataset.redirectUrl;\n this.disabled = false;\n\n const _self = this;\n\n this.subscription = App.cable.subscriptions.create({ channel: \"BillTimerChannel\", bill_id: this.billId }, {\n connected: () => {\n _self.start();\n document.addEventListener('visibilitychange', this.handleVisibilityChange);\n },\n\n disconnected: () => {\n _self.stop();\n document.removeEventListener('visibilitychange', this.handleVisibilityChange);\n },\n\n received: (cmd) => {\n switch (cmd.command) {\n case 'timer':\n _self.duration = cmd.data?.duration_seconds;\n _self.start();\n break;\n case 'removed':\n _self.duration = 0;\n if (!document.body.dataset.paymentProcessing) window.location.href = this.redirectUrl || '/';\n break;\n case 'redirect':\n window.location.href = this.redirectUrl || '/';\n break;\n default:\n console.log(\"Invalid cmd\");\n }\n }\n });\n }\n\n handleVisibilityChange = () => {\n if (document.visibilityState === 'visible') {\n this.subscription.send({ command: 'get_timer' });\n }\n }\n\n disconnect() {\n this.subscription.unsubscribe();\n }\n\n start() {\n this.stop();\n this.updateText();\n if (this.duration <= 0) this.disableBill();\n\n const onTimerUpdate = () => {\n this.updateText();\n this.disableBill();\n }\n\n this.timer = setInterval(() => {\n this.duration--;\n\n if (this.duration <= 0) {\n onTimerUpdate();\n } else {\n this.updateText();\n }\n }, 1000);\n }\n\n disableBill() {\n if (this.disabled) return;\n\n function createOverlay() {\n const disabledDiv = document.createElement('div');\n disabledDiv.classList.add('disabled_window');\n return disabledDiv;\n }\n\n function addOverlayIfNotExist(targetElement) {\n // Check if an overlay already exists in the target element\n if (targetElement && !targetElement.querySelector('.disabled_window')) {\n targetElement.insertBefore(createOverlay(), targetElement.firstChild);\n }\n }\n\n const amendmentBlock = document.getElementById('bookings-block');\n addOverlayIfNotExist(amendmentBlock);\n\n const addSessionsBlock = document.getElementById('add_sessions_block');\n if (addSessionsBlock && addSessionsBlock.hasChildNodes()) {\n const parent2Block = document.getElementById('add-sessions-block');\n addOverlayIfNotExist(parent2Block);\n }\n\n const checkoutBox = document.getElementById('checkout-box');\n addOverlayIfNotExist(checkoutBox);\n\n this.disabled = true;\n }\n\n\n updateText() {\n this.element.innerHTML = this.prepareText();\n this.element.classList.remove('invisible');\n }\n\n prepareText() {\n let text = this.text;\n if (!text) text = 'You have #time to complete this stage of the booking process'\n\n const intDuration = parseInt(this.duration) || 0;\n const duration = intDuration < 0 ? 0 : intDuration;\n\n return text.replace('#time', formatDuration(duration * 1000));\n }\n\n stop() {\n if (this.timer) clearInterval(this.timer);\n }\n}\n\n","import moment from 'moment';\n\nexport function bookingOptionDayRateEvents() {\n const dayRateIdent = 'booking_option_booking_option_day_rate';\n const dayRateCheckbox = $('#booking_option_add_day_rate');\n\n const settings = {\n weekday: {\n dayRateRow: $('.booking_options_weekday_day_rate'),\n onPeakPrice: $('#booking_option_current_booking_option_price_attributes_on_peak_price'),\n dayRate: $(`#${dayRateIdent}_attributes_weekday_day_rate`),\n dayRateRadioBtnEnabled: $(`#${dayRateIdent}_attributes_weekday_day_rate_enabled_true`)\n },\n weekend: {\n dayRateRow: $('.booking_options_weekend_day_rate'),\n onPeakPrice: $('#booking_option_current_booking_option_price_attributes_on_peak_weekend_price'),\n dayRate: $(`#${dayRateIdent}_attributes_weekend_day_rate`),\n dayRateRadioBtnEnabled: $(`#${dayRateIdent}_attributes_weekend_day_rate_enabled_true`)\n }\n }\n\n const onChangeDayRateTime = (name) => {\n const dayRate = settings[name].dayRate;\n\n let startTimeContainer = $(`.${dayRateIdent}_${name}_start_time`);\n let endTimeContainer = $(`.${dayRateIdent}_${name}_end_time`);\n\n dayRate.on('change', () => setDayRatePrice(name));\n startTimeContainer.each((i, startTimeSelect) => $(startTimeSelect).on('change', () => setDayRatePrice(name)));\n endTimeContainer.each((i, endTimeSelect) => $(endTimeSelect).on('change', () => setDayRatePrice(name)));\n }\n\n const setDayRatePrice = function(name) {\n const dayRateRadioBtnEnabled = settings[name].dayRateRadioBtnEnabled;\n const onPeakPrice = settings[name].onPeakPrice;\n const dayRate = settings[name].dayRate;\n\n let checked = dayRateRadioBtnEnabled.is(':checked');\n\n if (!checked) { return }\n\n onPeakPrice.prop('disabled', checked);\n onPeakPrice.val(getPrice(name));\n }\n\n function getPrice(name) {\n const onPeakPrice = settings[name].onPeakPrice;\n const dayRate = settings[name].dayRate;\n\n let rate = parseFloat(dayRate.val());\n let hours = getHours(name);\n let price = ceilPrice(rate/hours);\n\n return price;\n }\n\n function ceilPrice(number) {\n return (Math.ceil(number * 100.00))/100.0\n }\n\n function getHours(name) {\n let hours = diffDayHours(getTime(name, 'start'), getTime(name, 'end'));\n\n return hours;\n }\n\n function getTime(name, position) {\n const timeHour = $(`#${dayRateIdent}_attributes_${name}_${position}_time_4i`).val();\n const timeMin = $(`#${dayRateIdent}_attributes_${name}_${position}_time_5i `).val();\n\n return moment(`${timeHour}:${timeMin}`, 'HH:mm');\n }\n\n const toggleBookingOptionDayRateRadioBtn = (name) => {\n const onPeakPrice = settings[name].onPeakPrice;\n\n let container = $(`#${name}_day_rate_enabled input[type=\"radio\"]`);\n\n container.on('click', (e) => {\n onPeakPrice.prop('disabled', e.target.value === 'true');\n setDayRatePrice(name);\n toggleDayBookingOptionDayRateRow();\n });\n }\n\n const onSubmitBookingOptionDayRateForm = function() {\n $('#submit_booking_option_form_btn').on('click', () => {\n settings.weekday.onPeakPrice.prop('disabled', false);\n settings.weekend.onPeakPrice.prop('disabled', false);\n });\n }\n\n const diffDayHours = function(startTime, endTime) {\n if (startTime.isSameOrAfter(endTime)) {\n return 1\n } else {\n return (endTime.diff(startTime, 'minutes') / 60);\n }\n }\n\n const toggleBookingOptionDayRateCheckbox = function() {\n dayRateCheckbox.on('change', function() {\n if (dayRateCheckbox.is(':checked')) {\n setDayRatePrice('weekday');\n setDayRatePrice('weekend');\n settings.weekday.dayRateRadioBtnEnabled.prop('checked', true);\n settings.weekend.dayRateRadioBtnEnabled.prop('checked', true);\n toggleDayBookingOptionDayRateRow();\n }\n });\n }\n\n const toggleDayBookingOptionDayRateRow = function() {\n let weekdayChecked = settings.weekday.dayRateRadioBtnEnabled.is(':checked');\n let weekendChecked = settings.weekend.dayRateRadioBtnEnabled.is(':checked');\n\n if (!weekdayChecked && !weekendChecked) dayRateCheckbox.prop('checked', false).change();\n\n settings.weekday.dayRateRow.toggleClass('hidden', !weekdayChecked);\n settings.weekend.dayRateRow.toggleClass('hidden', !weekendChecked);\n }\n\n onChangeDayRateTime('weekday');\n onChangeDayRateTime('weekend');\n toggleBookingOptionDayRateRadioBtn('weekday');\n toggleBookingOptionDayRateRadioBtn('weekend');\n onSubmitBookingOptionDayRateForm();\n toggleBookingOptionDayRateCheckbox();\n toggleDayBookingOptionDayRateRow();\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport NeoDialog from \"../src/NeoDialog\";\nimport {bookingOptionDayRateEvents} from \"src/nextgen/admin/booking_options/day_rate\";\n\nclass BookingOptionController extends Controller {\n connect() {\n this.init()\n }\n\n init() {\n this.venueId = this.element.dataset.venueId;\n\n $('input.datepicker').datepicker({\n format: 'D, dd M yyyy',\n autoclose: true,\n startDate: '+1d',\n weekStart: 1\n })\n\n const months = [\"jan\", \"feb\", \"mar\", \"apr\", \"may\", \"jun\", \"jul\",\"aug\", \"sep\", \"oct\", \"nov\", \"dec\"];\n const types = ['', 'ext_']\n\n const virtualSpace = $('#booking_option_virtual_space');\n const currentOffPeakEnabled = $('#booking_option_current_booking_option_price_attributes_off_peak_enabled');\n const futureOffPeakEnabled = $('#booking_option_future_booking_option_price_attributes_off_peak_enabled');\n const addFuturePrice = $('#booking_option_add_future_price');\n const current_off_peak_price = $('.booking_option_current_booking_option_price_off_peak_price');\n const current_off_peak_weekend_price = $('.booking_option_current_booking_option_price_off_peak_weekend_price');\n const future_off_peak_price = $('.booking_option_future_booking_option_price_off_peak_price');\n const future_off_peak_weekend_price = $('.booking_option_future_booking_option_price_off_peak_weekend_price');\n\n const ext_current_off_peak_price = $('.booking_option_current_booking_option_price_ext_off_peak_price');\n const ext_current_off_peak_weekend_price = $('.booking_option_current_booking_option_price_ext_off_peak_weekend_price');\n const ext_future_off_peak_price = $('.booking_option_future_booking_option_price_ext_off_peak_price');\n const ext_future_off_peak_weekend_price = $('.booking_option_future_booking_option_price_ext_off_peak_weekend_price');\n\n const currentOffPeakPrice = $('#booking_option_current_booking_option_price_attributes_off_peak_price');\n const currentOffPeakWeekendPrice = $('#booking_option_current_booking_option_price_attributes_off_peak_weekend_price')\n const futureOffPeakPrice = $('#booking_option_future_booking_option_price_attributes_off_peak_price');\n const futureOffPeakWeekendPrice = $('#booking_option_future_booking_option_price_attributes_off_peak_weekend_price');\n\n const extCurrentOffPeakPrice = $('#booking_option_current_booking_option_price_attributes_ext_off_peak_price');\n const extCurrentOffPeakWeekendPrice = $('#booking_option_current_booking_option_price_attributes_ext_off_peak_weekend_price')\n const extFutureOffPeakPrice = $('#booking_option_future_booking_option_price_attributes_ext_off_peak_price');\n const extFutureOffPeakWeekendPrice = $('#booking_option_future_booking_option_price_attributes_ext_off_peak_weekend_price');\n\n const currentSeasonsEnabled = $('#booking_option_current_booking_option_price_attributes_seasons_enabled');\n const futureSeasonsEnabled = $('#booking_option_future_booking_option_price_attributes_seasons_enabled');\n\n const onPeakWeekdayPrice = $('#booking_option_current_booking_option_price_attributes_on_peak_price');\n const onPeakWeekendPrice = $('#booking_option_current_booking_option_price_attributes_on_peak_weekend_price');\n\n const addDayRate = $('#booking_option_add_day_rate');\n\n const checkCustomSpace = (preassign) => {\n $('#custom_space').toggle(virtualSpace.val() === 'Custom');\n toggleParentBookingOption(preassign);\n }\n\n const toggleCurrentOffPeakEnabled = () => {\n let checked = currentOffPeakEnabled.is(':checked')\n current_off_peak_price.toggle(checked);\n current_off_peak_weekend_price.toggle(checked);\n ext_current_off_peak_price.toggle(checked);\n ext_current_off_peak_weekend_price.toggle(checked);\n if(checked) { addDayRate.prop('checked', !checked).change() }\n toggleBookingOptionDayRateOnCheckedPricing();\n }\n\n const toggleFutureOffPeakEnabled = () => {\n let checked = futureOffPeakEnabled.is(':checked')\n future_off_peak_price.toggle(checked);\n future_off_peak_weekend_price.toggle(checked);\n ext_future_off_peak_price.toggle(checked);\n ext_future_off_peak_weekend_price.toggle(checked);\n }\n\n const toggleFuturePrice = () => {\n let checked = addFuturePrice.is(':checked');\n let marker = $('.future_booking_option_price input[name=\"booking_option[future_booking_option_price_attributes][_destroy]\"]')\n $('.future_booking_option_price').toggle(checked)\n marker.val(!checked);\n\n if ($('#add-future-price-block').data('persisted') === false) {\n futureOffPeakEnabled.prop('checked', currentOffPeakEnabled.is(':checked'))\n toggleFutureOffPeakEnabled()\n\n futureSeasonsEnabled.prop('checked', currentSeasonsEnabled.is(':checked'))\n toggleFutureSeasonPrice();\n\n months.forEach(month => {\n types.forEach(priceType => {\n const currentMonth = $(`#booking_option_current_booking_option_price_attributes_${priceType}months_${month}`)\n const futureMonth = $(`#booking_option_future_booking_option_price_attributes_${priceType}months_${month}`)\n\n futureMonth.prop('checked', currentMonth.is(':checked'))\n })\n })\n }\n toggleBookingOptionDayRateOnCheckedPricing();\n }\n\n const toggleDayRateCheckbox = () => {\n let checked = addDayRate.is(':checked');\n let marker = $('.booking_option_day_rate input[name=\"booking_option[booking_option_day_rate_attributes][_destroy]\"]')\n $('.booking_option_day_rate').toggle(checked)\n marker.val(!checked);\n if (!checked) {\n onPeakWeekdayPrice.attr('disabled', checked);\n onPeakWeekendPrice.attr('disabled', checked);\n checkCurrent();\n } else {\n addFuturePrice.prop('checked', !checked).change();\n currentSeasonsEnabled.prop('checked', !checked).change();\n currentOffPeakEnabled.prop('checked', !checked).change();\n currentOffPeakEnabled.attr('disabled', checked);\n }\n addFuturePrice.attr('disabled', checked);\n currentSeasonsEnabled.attr('disabled', checked);\n }\n\n const toggleCurrentSeasonPrice = () => {\n let checked = currentSeasonsEnabled.is(':checked')\n $('.current_booking_option_price_days').toggle(checked)\n $('.ext_block_current_booking_option_price').toggle(checked)\n toggleBookingOptionDayRateOnCheckedPricing();\n }\n\n const toggleFutureSeasonPrice = () => {\n let checked = futureSeasonsEnabled.is(':checked')\n $('.future_booking_option_price_days').toggle(checked)\n $('.ext_block_future_booking_option_price').toggle(checked)\n }\n\n const checkCurrent = () => {\n const seasonsEnabled = !currentSeasonsEnabled.is(':checked') ||\n (currentSeasonsEnabled.is(':checked') &&\n extCurrentOffPeakPrice.val() === '' &&\n extCurrentOffPeakWeekendPrice.val() === '');\n\n const disabled = !(currentOffPeakPrice.val() === '' &&\n currentOffPeakWeekendPrice.val() === '' &&\n seasonsEnabled);\n\n $('input[name=\"booking_option[current_booking_option_price_attributes][off_peak_enabled]\"][type=hidden]').val(disabled ? '1' : 0)\n currentOffPeakEnabled.prop('disabled', disabled);\n }\n\n const checkFuture = () => {\n const seasonsEnabled = !futureSeasonsEnabled.is(':checked') ||\n (futureSeasonsEnabled.is(':checked') &&\n extFutureOffPeakPrice.val() === '' &&\n extFutureOffPeakWeekendPrice.val() === '');\n\n const disabled = !(futureOffPeakPrice.val() === '' &&\n futureOffPeakWeekendPrice.val() === '' &&\n seasonsEnabled);\n\n $('input[name=\"booking_option[future_booking_option_price_attributes][off_peak_enabled]\"][type=hidden]').val(disabled ? '1' : 0)\n futureOffPeakEnabled.prop('disabled', disabled);\n }\n\n virtualSpace.on('change', () => checkCustomSpace(true));\n currentOffPeakEnabled.on('change', toggleCurrentOffPeakEnabled);\n futureOffPeakEnabled.on('change', toggleFutureOffPeakEnabled);\n addFuturePrice.on('change', toggleFuturePrice);\n\n currentOffPeakPrice.on('keyup', checkCurrent);\n currentOffPeakWeekendPrice.on('keyup', checkCurrent);\n futureOffPeakPrice.on('keyup', checkFuture);\n futureOffPeakWeekendPrice.on('keyup', checkFuture);\n\n currentSeasonsEnabled.on('change', toggleCurrentSeasonPrice);\n futureSeasonsEnabled.on('change', toggleFutureSeasonPrice);\n\n addDayRate.on('change', toggleDayRateCheckbox);\n\n\n $('.booking-option-price-month').on('change', function(el) {\n const regex=/booking_option_(current_booking_option_price|future_booking_option_price)_attributes_(ext_|)months_([a-z]{3})/\n const id = $(this).attr('id');\n const match = regex.exec(id);\n const wsInverse = match[2] === 'ext_' ? '' : 'ext_'\n const newId = `#booking_option_${match[1]}_attributes_${wsInverse}months_${match[3]}`;\n\n $(newId).prop('checked', !$(this).prop('checked'));\n });\n\n const toggleParentBookingOption = (preassign) => {\n $('#booking_option_parent_booking_option_id option').each(function(i, el) {\n const percent = $(el).data('percent');\n if (percent === undefined) return;\n const space = $('#booking_option_virtual_space').val();\n $(el).toggle(parseFloat(percent) === parseFloat(space));\n })\n\n const visibleElements = $('#booking_option_parent_booking_option_id option:not([style*=\"display: none\"])');\n const visible = visibleElements.length > 1;\n $('div.booking_option_parent_booking_option_id').toggle(visible);\n\n if (visible && preassign) {\n const bookingOptionGroups = visibleElements.filter('*[data-group=\\\"true\\\"]');\n\n if (bookingOptionGroups.length > 0) {\n const value = $(bookingOptionGroups[0]).val()\n $('#booking_option_parent_booking_option_id').val(value).change()\n }\n }\n\n const bookingOptionSelect = $('#booking_option_parent_booking_option_id');\n\n if (visible && bookingOptionSelect.val() === null) {\n const firstVisibleOptionVal = visibleElements[0].value;\n\n bookingOptionSelect.val(firstVisibleOptionVal).change();\n }\n\n if (visible && bookingOptionSelect.val() !== '') {\n const hiddenBookingOptions = visibleElements.filter('*[data-hidden-empty-option=\\\"true\\\"]');\n\n hiddenBookingOptions.each((i, el) => el.remove());\n }\n }\n\n const toggleBookingOptionDayRateOnCheckedPricing = () => {\n let checked = currentOffPeakEnabled.is(':checked') ||\n currentSeasonsEnabled.is(':checked') ||\n addFuturePrice.is(':checked')\n\n addDayRate.attr('disabled', checked);\n if (checked) {\n addDayRate.attr('checked', !checked);\n toggleDayRateCheckbox();\n }\n }\n\n const parentBookingOption = $('#booking_option_parent_booking_option_id');\n const parentBookingOptionValue = parentBookingOption.data('value') || ''\n parentBookingOption.val(parentBookingOptionValue).change()\n\n $('#booking_option_add_future_price').on('click', (event) => {\n const showPopup = sessionStorage.getItem('showFuturePriceRedirectConfirmation');\n const popupText = \"If you are updating future prices for multiple booking options/facilities, \" +\n \"this can be done all in one go via the Pricing tab in the Venue section. \" +\n \"Would you like to be redirected there?\"\n const checked = event.target.checked;\n\n if (checked && showPopup == null || showPopup === 'true') {\n NeoDialog.confirm(popupText, 'Yes', 'No')\n .then((result) => {\n if (result.isConfirmed) {\n sessionStorage.setItem('showFuturePriceRedirectConfirmation', true);\n window.location = `/admin/venues/${this.venueId}?tab=pricing&futurePricesModal=true`;\n } else {\n sessionStorage.setItem('showFuturePriceRedirectConfirmation', false);\n }\n });\n }\n })\n\n checkCustomSpace();\n toggleCurrentOffPeakEnabled();\n toggleFutureOffPeakEnabled();\n toggleFuturePrice();\n toggleCurrentSeasonPrice();\n toggleFutureSeasonPrice();\n checkCurrent();\n checkFuture();\n toggleDayRateCheckbox();\n toggleParentBookingOption();\n bookingOptionDayRateEvents();\n toggleBookingOptionDayRateOnCheckedPricing();\n }\n}\n\nexport default BookingOptionController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nexport default class extends Controller {\n static targets = ['messagesLink'];\n\n connect() {\n const el = this.element;\n const conversationPurpose = el.dataset.conversationPurpose;\n\n axios\n .get('/messenger/unread', { params: { conversation_purpose: conversationPurpose } })\n .then((rensponse) => {\n this.messagesLinkTargets.map(el => {\n el.insertAdjacentHTML('beforeend', rensponse.data);\n })\n }).catch(() => {});\n }\n}\n\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\"\n\nexport default class extends Controller {\n connect() {\n super.connect();\n this.url = this.element.getAttribute('href')\n }\n\n urlAction(e) {\n e.preventDefault();\n\n axios\n .post(this.url)\n .then(() => {\n window.loadOrderTab($(\"a[data-target='#payment_targets']\"), true);\n })\n .catch((e) => {\n Helper.flash_message('error', `Something went wrong: ${e}`)\n })\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nexport default class extends Controller {\n connect() {\n this.$adminOrdersModal = $('#admin_orders_modal');\n }\n\n show(event) {\n event.preventDefault();\n\n const $target = $(event.target);\n if ($target.parent('li').hasClass('disabled')) return;\n\n this.showModal($target.attr('href'));\n }\n\n showFromBtn(event) {\n event.preventDefault();\n\n this.showModal($(event.target).attr('href'));\n }\n\n onModalSubmit(form) {\n form.find('[type=\"submit\"]').on('click', (event) => {\n event.preventDefault();\n\n const $target = $(event.currentTarget);\n\n $target.prop('disabled', true);\n\n const $form = $target.closest('form');\n\n $.ajax({\n type: 'POST',\n url: $form.attr('action'),\n data: $form.serialize(),\n\n success: () => {\n const reload = this.$adminOrdersModal.find('form').data('reload');\n const reloadPath = this.$adminOrdersModal.find('form').data('reload-path');\n\n this.$adminOrdersModal.modal('hide');\n\n if (reload) {\n if ($('#orders-table').length > 0) {\n this.reloadData(false);\n } else {\n if (reloadPath) {\n window.localStorage.showNotification = 'showNotification';\n }\n\n location.replace(reloadPath || location.href) || location.reload();\n }\n }\n },\n\n error: (data) => {\n this.updateContent(data.responseText)\n }\n });\n })\n }\n\n showModal(url) {\n axios\n .get(url, { headers: { 'X-Requested-With': 'XMLHttpRequest' }})\n .then((response)=> {\n const { data } = response;\n this.$adminOrdersModal.find('.modal-dialog').css('width', '');\n this.updateContent(data);\n this.$adminOrdersModal.modal('show');\n }).catch(() => {\n Helper.flash_message('error', 'Something went wrong')\n })\n }\n\n updateContent(content) {\n this.$adminOrdersModal.find('.modal-content').empty().append(content);\n\n const form = this.$adminOrdersModal.find('form');\n if (form) {\n if (form.data('modal-width') !== void 0) {\n this.$adminOrdersModal.find('.modal-dialog').css('width', form.data('modal-width'));\n }\n\n this.onModalSubmit(form);\n }\n }\n\n // it's not correct because we should reload data not here\n reloadData(changePage) {\n $('#orders-table').trigger('reloadData');\n };\n}","import { Controller } from \"@hotwired/stimulus\"\n\nimport axios from \"axios\";\n\nexport default class extends Controller {\n connect() {\n this.statusCheckboxes = this.element.querySelectorAll('.all_none_filter input[type=checkbox]');\n }\n\n search() {\n this.reloadData();\n }\n\n allStatuses(event) {\n event.preventDefault();\n this.changeAllFilterStatuses(true);\n }\n\n noneStatuses(event) {\n event.preventDefault();\n this.changeAllFilterStatuses(false);\n }\n\n changeAllFilterStatuses(status) {\n this.statusCheckboxes.forEach(element => element.checked = status);\n this.reloadData();\n };\n\n changedFilter() {\n this.reloadData();\n }\n\n changedVenue(event) {\n const customerSelectExists = this.element.querySelector('.filter_customer_id select') !== null;\n\n if (!customerSelectExists) {\n this.reloadData();\n return;\n }\n\n const venueId = event.target.value;\n\n axios\n .get(`/admin/bookings/${venueId}/customers`)\n .then(response => {\n const { data } = response;\n\n const items = $.map(data, (v) => {\n return '<option value=' + v[0] + '>' + v[1] + '</option>';\n });\n\n const el = $('#new_filter .filter_customer_id select');\n\n el.children().remove();\n el.append(items);\n\n this.reloadData();\n })\n .catch(() => this.reloadData());\n }\n\n changedTimePeriod(event) {\n this.reloadData();\n const checkedValue = this.element.querySelector('.filter_time_period input[type=radio]:checked').value;\n const customDates = this.element.querySelector('.custom_dates');\n customDates.classList.toggle('hidden', checkedValue !== 'custom');\n }\n\n reloadData() {\n const neoTableElement = this.element.closest('[data-controller=\"neo_table\"]');\n\n if (neoTableElement) {\n neoTableElement.dispatchEvent(new CustomEvent(\"action\", { detail: { info: \"Hello from Child\" }}));\n } else {\n console.error(\"No ancestor with data-controller='neo_table' found\");\n }\n }\n}","import { Controller } from \"@hotwired/stimulus\"\n\nclass OrderApprovalController extends Controller {\n static targets = ['submit', 'checkbox']\n\n connect() {\n this.checkboxTarget.addEventListener('change', () => {\n this.submitTarget.disabled = !this.checkboxTarget.checked;\n })\n }\n}\n\nexport default OrderApprovalController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\nimport Neo from \"src/Neo\";\n\nclass PostgresQueryController extends Controller {\n terminate(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.delete(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_settings_postgres_queries_table');\n }).catch((error) => {\n Neo.processError(error, () => Helper.flash_message('error', error.response.data.error))\n })\n })\n }\n}\n\nexport default PostgresQueryController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from 'axios';\nimport Neo from '../src/Neo';\n\n\nclass ConversationRemoveThreadController extends Controller {\n remove(e) {\n e.preventDefault();\n\n const button = e.target;\n const { url, message } = e.target.dataset;\n\n if (button.disabled) return true;\n button.disabled = true;\n\n if (confirm(message) === true) {\n axios.delete(url).then((response) => {\n const parentElement = e.target.parentElement;\n const selectedInbox = document.querySelector('.venues-list li.selected a');\n if (parentElement) parentElement.remove();\n if (selectedInbox) selectedInbox.click();\n }).catch((error) => {\n console.log(error);\n button.disabled = false;\n Neo.processError(error, () => {\n Helper.flash_message('error', e.response.message)\n })\n });\n } else {\n button.disabled = false;\n }\n }\n}\n\nexport default ConversationRemoveThreadController;\n","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class DynamicPopoverController extends Controller {\n\n connect() {\n const self = $(this.element);\n const dataset = this.element.dataset;\n const trigger = dataset.trigger || 'hover';\n const placement = dataset.placement || 'right';\n const url = dataset.url;\n const turboFrameId = dataset.turboFrameId;\n\n\n self.popover({\n html: true,\n trigger: trigger,\n placement: placement,\n sanitize: false,\n content: `<div class=\"dynamic-popover-content\"><turbo-frame id=\"${turboFrameId}\" src=\"${url}\" loading=\"lazy\">Loading...</turbo-frame></div>`\n });\n }\n}\n","import axios from \"axios\";\nimport { Controller } from \"@hotwired/stimulus\";\nimport { processingModal } from \"src/nextgen/helpers/processing_modal\";\nimport OrderTab from \"src/nextgen/orders/Tab\";\nimport NeoModal from \"src/NeoModal\";\n\nexport default class extends Controller {\n connect() {\n this.disabled = false;\n this.url = this.element.dataset.url;\n }\n\n async perform(e) {\n e.preventDefault();\n this.disableButton();\n\n try {\n const lockResponse = await this.getLock();\n\n if (lockResponse.status === 204) {\n try {\n await axios.post(this.url);\n\n this.orderTab.reload('current_bill', () => {\n processingModal.hide();\n });\n } catch (error) {\n this.enableButton();\n\n if (error.response?.status === 422) {\n this.orderTab.reload('next_bill', () => {});\n\n Helper.flash_message('error', error.response.data.errors)\n } else {\n Helper.flash_message('error', 'Something went wrong')\n }\n }\n } else {\n NeoModal.add(lockResponse.data, { callback: this.enableButton });\n }\n } catch (error) {\n this.enableButton();\n }\n }\n\n getLock() {\n return axios.get(this.url);\n }\n\n disableButton() {\n this.disabled = true;\n this.element.disabled = true;\n this.element.setAttribute('disabled', 'disabled');\n processingModal.show();\n }\n\n enableButton() {\n setTimeout(() => {\n this.disabled = false;\n this.element.disabled = false;\n this.element.removeAttribute('disabled');\n processingModal.hide();\n }, 200);\n }\n\n get orderTab() {\n return new OrderTab();\n }\n}\n","import SmartyForm from \"../src/nextgen/helpers/smarty_form\";\nimport axios from \"axios\";\nimport {Controller} from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n connect() {\n this.modal = $('#admin_orders_modal');\n }\n\n show_modal(e) {\n e.preventDefault();\n this.showVenueNoteModal(e.target.getAttribute('href'));\n }\n\n showVenueNoteModal(link) {\n axios.get(link).then((response) => {\n this.modal.find('.modal-content').empty().append(response.data);\n this.modal.modal('show');\n }).catch(() => {\n Helper.flash_message('error', 'Something went wrong');\n })\n };\n\n saveVenueNote(e) {\n e.preventDefault();\n\n const { rowClass } = e.target.dataset;\n const form = e.target.closest('form');\n const formData = new FormData(form);\n const action = form.getAttribute('action');\n const infoPath = form.dataset.infoPath || (action + '/info');\n\n axios.post(action, formData).then(() => {\n this.modal.find('.modal-content').empty();\n this.modal.modal('hide');\n\n axios.get(infoPath).then((response) => {\n console.log(rowClass)\n const row = document.getElementsByClassName(rowClass)[0];\n if (!row) return;\n\n if (row.dataset.skipInfoRow) {\n const tempContainer = document.createElement('table');\n tempContainer.innerHTML = response.data;\n const newText = tempContainer.querySelector('td.note-text').innerHTML;\n row.querySelector('.notes').innerHTML = newText;\n } else {\n const infoRow = document.getElementsByClassName(rowClass + '-note')[0];\n if (infoRow) infoRow.remove();\n\n if (response.status !== 204) {\n if (row) {\n const container = row.parentElement;\n const notesCellMobile = row.querySelector('td.notes.mobile_only');\n const tempContainer = document.createElement('table');\n tempContainer.innerHTML = response.data;\n\n const newElement = tempContainer.querySelector('tr');\n const newText = tempContainer.querySelector('td.note-text').innerHTML;\n const rowElement = row.classList.contains('with_related_team') ? row.nextElementSibling : row;\n\n row.parentElement.insertBefore(tempContainer.querySelector('tr'), rowElement.nextSibling);\n if (newText) {\n notesCellMobile.style.display = '';\n row.querySelector('td.notes').innerHTML = newText;\n }\n row.classList.add('with_note');\n }\n } else {\n if (row) {\n const notesCellMobile = row.querySelector('td.notes.mobile_only');\n\n notesCellMobile.style.display = 'none';\n row.classList.remove('with_note');\n }\n }\n }\n }).catch((e) => {\n console.error(e);\n Helper.flash_message('error', 'Something went wrong')\n });\n }).catch((e) => {\n console.error(e);\n Helper.flash_message('error', 'Something went wrong');\n });\n };\n\n}\n","/*!\n * PhotoSwipe Lightbox 5.4.4 - https://photoswipe.com\n * (c) 2024 Dmytro Semenov\n */\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/**\r\n * @template {keyof HTMLElementTagNameMap} T\r\n * @param {string} className\r\n * @param {T} tagName\r\n * @param {Node} [appendToEl]\r\n * @returns {HTMLElementTagNameMap[T]}\r\n */\nfunction createElement(className, tagName, appendToEl) {\n const el = document.createElement(tagName);\n\n if (className) {\n el.className = className;\n }\n\n if (appendToEl) {\n appendToEl.appendChild(el);\n }\n\n return el;\n}\n/**\r\n * Get transform string\r\n *\r\n * @param {number} x\r\n * @param {number} [y]\r\n * @param {number} [scale]\r\n * @returns {string}\r\n */\n\nfunction toTransformString(x, y, scale) {\n let propValue = `translate3d(${x}px,${y || 0}px,0)`;\n\n if (scale !== undefined) {\n propValue += ` scale3d(${scale},${scale},1)`;\n }\n\n return propValue;\n}\n/**\r\n * Apply width and height CSS properties to element\r\n *\r\n * @param {HTMLElement} el\r\n * @param {string | number} w\r\n * @param {string | number} h\r\n */\n\nfunction setWidthHeight(el, w, h) {\n el.style.width = typeof w === 'number' ? `${w}px` : w;\n el.style.height = typeof h === 'number' ? `${h}px` : h;\n}\n/** @typedef {LOAD_STATE[keyof LOAD_STATE]} LoadState */\n\n/** @type {{ IDLE: 'idle'; LOADING: 'loading'; LOADED: 'loaded'; ERROR: 'error' }} */\n\nconst LOAD_STATE = {\n IDLE: 'idle',\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error'\n};\n/**\r\n * Check if click or keydown event was dispatched\r\n * with a special key or via mouse wheel.\r\n *\r\n * @param {MouseEvent | KeyboardEvent} e\r\n * @returns {boolean}\r\n */\n\nfunction specialKeyUsed(e) {\n return 'button' in e && e.button === 1 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey;\n}\n/**\r\n * Parse `gallery` or `children` options.\r\n *\r\n * @param {import('../photoswipe.js').ElementProvider} [option]\r\n * @param {string} [legacySelector]\r\n * @param {HTMLElement | Document} [parent]\r\n * @returns HTMLElement[]\r\n */\n\nfunction getElementsFromOption(option, legacySelector, parent = document) {\n /** @type {HTMLElement[]} */\n let elements = [];\n\n if (option instanceof Element) {\n elements = [option];\n } else if (option instanceof NodeList || Array.isArray(option)) {\n elements = Array.from(option);\n } else {\n const selector = typeof option === 'string' ? option : legacySelector;\n\n if (selector) {\n elements = Array.from(parent.querySelectorAll(selector));\n }\n }\n\n return elements;\n}\n/**\r\n * Check if variable is PhotoSwipe class\r\n *\r\n * @param {any} fn\r\n * @returns {boolean}\r\n */\n\nfunction isPswpClass(fn) {\n return typeof fn === 'function' && fn.prototype && fn.prototype.goTo;\n}\n/**\r\n * Check if browser is Safari\r\n *\r\n * @returns {boolean}\r\n */\n\nfunction isSafari() {\n return !!(navigator.vendor && navigator.vendor.match(/apple/i));\n}\n\n/** @typedef {import('../lightbox/lightbox.js').default} PhotoSwipeLightbox */\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../photoswipe.js').DataSource} DataSource */\n\n/** @typedef {import('../ui/ui-element.js').UIElementData} UIElementData */\n\n/** @typedef {import('../slide/content.js').default} ContentDefault */\n\n/** @typedef {import('../slide/slide.js').default} Slide */\n\n/** @typedef {import('../slide/slide.js').SlideData} SlideData */\n\n/** @typedef {import('../slide/zoom-level.js').default} ZoomLevel */\n\n/** @typedef {import('../slide/get-thumb-bounds.js').Bounds} Bounds */\n\n/**\r\n * Allow adding an arbitrary props to the Content\r\n * https://photoswipe.com/custom-content/#using-webp-image-format\r\n * @typedef {ContentDefault & Record<string, any>} Content\r\n */\n\n/** @typedef {{ x?: number; y?: number }} Point */\n\n/**\r\n * @typedef {Object} PhotoSwipeEventsMap https://photoswipe.com/events/\r\n *\r\n *\r\n * https://photoswipe.com/adding-ui-elements/\r\n *\r\n * @prop {undefined} uiRegister\r\n * @prop {{ data: UIElementData }} uiElementCreate\r\n *\r\n *\r\n * https://photoswipe.com/events/#initialization-events\r\n *\r\n * @prop {undefined} beforeOpen\r\n * @prop {undefined} firstUpdate\r\n * @prop {undefined} initialLayout\r\n * @prop {undefined} change\r\n * @prop {undefined} afterInit\r\n * @prop {undefined} bindEvents\r\n *\r\n *\r\n * https://photoswipe.com/events/#opening-or-closing-transition-events\r\n *\r\n * @prop {undefined} openingAnimationStart\r\n * @prop {undefined} openingAnimationEnd\r\n * @prop {undefined} closingAnimationStart\r\n * @prop {undefined} closingAnimationEnd\r\n *\r\n *\r\n * https://photoswipe.com/events/#closing-events\r\n *\r\n * @prop {undefined} close\r\n * @prop {undefined} destroy\r\n *\r\n *\r\n * https://photoswipe.com/events/#pointer-and-gesture-events\r\n *\r\n * @prop {{ originalEvent: PointerEvent }} pointerDown\r\n * @prop {{ originalEvent: PointerEvent }} pointerMove\r\n * @prop {{ originalEvent: PointerEvent }} pointerUp\r\n * @prop {{ bgOpacity: number }} pinchClose can be default prevented\r\n * @prop {{ panY: number }} verticalDrag can be default prevented\r\n *\r\n *\r\n * https://photoswipe.com/events/#slide-content-events\r\n *\r\n * @prop {{ content: Content }} contentInit\r\n * @prop {{ content: Content; isLazy: boolean }} contentLoad can be default prevented\r\n * @prop {{ content: Content; isLazy: boolean }} contentLoadImage can be default prevented\r\n * @prop {{ content: Content; slide: Slide; isError?: boolean }} loadComplete\r\n * @prop {{ content: Content; slide: Slide }} loadError\r\n * @prop {{ content: Content; width: number; height: number }} contentResize can be default prevented\r\n * @prop {{ content: Content; width: number; height: number; slide: Slide }} imageSizeChange\r\n * @prop {{ content: Content }} contentLazyLoad can be default prevented\r\n * @prop {{ content: Content }} contentAppend can be default prevented\r\n * @prop {{ content: Content }} contentActivate can be default prevented\r\n * @prop {{ content: Content }} contentDeactivate can be default prevented\r\n * @prop {{ content: Content }} contentRemove can be default prevented\r\n * @prop {{ content: Content }} contentDestroy can be default prevented\r\n *\r\n *\r\n * undocumented\r\n *\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} imageClickAction can be default prevented\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} bgClickAction can be default prevented\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} tapAction can be default prevented\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} doubleTapAction can be default prevented\r\n *\r\n * @prop {{ originalEvent: KeyboardEvent }} keydown can be default prevented\r\n * @prop {{ x: number; dragging: boolean }} moveMainScroll\r\n * @prop {{ slide: Slide }} firstZoomPan\r\n * @prop {{ slide: Slide | undefined, data: SlideData, index: number }} gettingData\r\n * @prop {undefined} beforeResize\r\n * @prop {undefined} resize\r\n * @prop {undefined} viewportSize\r\n * @prop {undefined} updateScrollOffset\r\n * @prop {{ slide: Slide }} slideInit\r\n * @prop {{ slide: Slide }} afterSetContent\r\n * @prop {{ slide: Slide }} slideLoad\r\n * @prop {{ slide: Slide }} appendHeavy can be default prevented\r\n * @prop {{ slide: Slide }} appendHeavyContent\r\n * @prop {{ slide: Slide }} slideActivate\r\n * @prop {{ slide: Slide }} slideDeactivate\r\n * @prop {{ slide: Slide }} slideDestroy\r\n * @prop {{ destZoomLevel: number, centerPoint: Point | undefined, transitionDuration: number | false | undefined }} beforeZoomTo\r\n * @prop {{ slide: Slide }} zoomPanUpdate\r\n * @prop {{ slide: Slide }} initialZoomPan\r\n * @prop {{ slide: Slide }} calcSlideSize\r\n * @prop {undefined} resolutionChanged\r\n * @prop {{ originalEvent: WheelEvent }} wheel can be default prevented\r\n * @prop {{ content: Content }} contentAppendImage can be default prevented\r\n * @prop {{ index: number; itemData: SlideData }} lazyLoadSlide can be default prevented\r\n * @prop {undefined} lazyLoad\r\n * @prop {{ slide: Slide }} calcBounds\r\n * @prop {{ zoomLevels: ZoomLevel, slideData: SlideData }} zoomLevelsUpdate\r\n *\r\n *\r\n * legacy\r\n *\r\n * @prop {undefined} init\r\n * @prop {undefined} initialZoomIn\r\n * @prop {undefined} initialZoomOut\r\n * @prop {undefined} initialZoomInEnd\r\n * @prop {undefined} initialZoomOutEnd\r\n * @prop {{ dataSource: DataSource | undefined, numItems: number }} numItems\r\n * @prop {{ itemData: SlideData; index: number }} itemData\r\n * @prop {{ index: number, itemData: SlideData, instance: PhotoSwipe }} thumbBounds\r\n */\n\n/**\r\n * @typedef {Object} PhotoSwipeFiltersMap https://photoswipe.com/filters/\r\n *\r\n * @prop {(numItems: number, dataSource: DataSource | undefined) => number} numItems\r\n * Modify the total amount of slides. Example on Data sources page.\r\n * https://photoswipe.com/filters/#numitems\r\n *\r\n * @prop {(itemData: SlideData, index: number) => SlideData} itemData\r\n * Modify slide item data. Example on Data sources page.\r\n * https://photoswipe.com/filters/#itemdata\r\n *\r\n * @prop {(itemData: SlideData, element: HTMLElement, linkEl: HTMLAnchorElement) => SlideData} domItemData\r\n * Modify item data when it's parsed from DOM element. Example on Data sources page.\r\n * https://photoswipe.com/filters/#domitemdata\r\n *\r\n * @prop {(clickedIndex: number, e: MouseEvent, instance: PhotoSwipeLightbox) => number} clickedIndex\r\n * Modify clicked gallery item index.\r\n * https://photoswipe.com/filters/#clickedindex\r\n *\r\n * @prop {(placeholderSrc: string | false, content: Content) => string | false} placeholderSrc\r\n * Modify placeholder image source.\r\n * https://photoswipe.com/filters/#placeholdersrc\r\n *\r\n * @prop {(isContentLoading: boolean, content: Content) => boolean} isContentLoading\r\n * Modify if the content is currently loading.\r\n * https://photoswipe.com/filters/#iscontentloading\r\n *\r\n * @prop {(isContentZoomable: boolean, content: Content) => boolean} isContentZoomable\r\n * Modify if the content can be zoomed.\r\n * https://photoswipe.com/filters/#iscontentzoomable\r\n *\r\n * @prop {(useContentPlaceholder: boolean, content: Content) => boolean} useContentPlaceholder\r\n * Modify if the placeholder should be used for the content.\r\n * https://photoswipe.com/filters/#usecontentplaceholder\r\n *\r\n * @prop {(isKeepingPlaceholder: boolean, content: Content) => boolean} isKeepingPlaceholder\r\n * Modify if the placeholder should be kept after the content is loaded.\r\n * https://photoswipe.com/filters/#iskeepingplaceholder\r\n *\r\n *\r\n * @prop {(contentErrorElement: HTMLElement, content: Content) => HTMLElement} contentErrorElement\r\n * Modify an element when the content has error state (for example, if image cannot be loaded).\r\n * https://photoswipe.com/filters/#contenterrorelement\r\n *\r\n * @prop {(element: HTMLElement, data: UIElementData) => HTMLElement} uiElement\r\n * Modify a UI element that's being created.\r\n * https://photoswipe.com/filters/#uielement\r\n *\r\n * @prop {(thumbnail: HTMLElement | null | undefined, itemData: SlideData, index: number) => HTMLElement} thumbEl\r\n * Modify the thumbnail element from which opening zoom animation starts or ends.\r\n * https://photoswipe.com/filters/#thumbel\r\n *\r\n * @prop {(thumbBounds: Bounds | undefined, itemData: SlideData, index: number) => Bounds} thumbBounds\r\n * Modify the thumbnail bounds from which opening zoom animation starts or ends.\r\n * https://photoswipe.com/filters/#thumbbounds\r\n *\r\n * @prop {(srcsetSizesWidth: number, content: Content) => number} srcsetSizesWidth\r\n *\r\n * @prop {(preventPointerEvent: boolean, event: PointerEvent, pointerType: string) => boolean} preventPointerEvent\r\n *\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @typedef {{ fn: PhotoSwipeFiltersMap[T], priority: number }} Filter\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {PhotoSwipeEventsMap[T] extends undefined ? PhotoSwipeEvent<T> : PhotoSwipeEvent<T> & PhotoSwipeEventsMap[T]} AugmentedEvent\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {(event: AugmentedEvent<T>) => void} EventCallback\r\n */\n\n/**\r\n * Base PhotoSwipe event object\r\n *\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n */\nclass PhotoSwipeEvent {\n /**\r\n * @param {T} type\r\n * @param {PhotoSwipeEventsMap[T]} [details]\r\n */\n constructor(type, details) {\n this.type = type;\n this.defaultPrevented = false;\n\n if (details) {\n Object.assign(this, details);\n }\n }\n\n preventDefault() {\n this.defaultPrevented = true;\n }\n\n}\n/**\r\n * PhotoSwipe base class that can listen and dispatch for events.\r\n * Shared by PhotoSwipe Core and PhotoSwipe Lightbox, extended by base.js\r\n */\n\n\nclass Eventable {\n constructor() {\n /**\r\n * @type {{ [T in keyof PhotoSwipeEventsMap]?: ((event: AugmentedEvent<T>) => void)[] }}\r\n */\n this._listeners = {};\n /**\r\n * @type {{ [T in keyof PhotoSwipeFiltersMap]?: Filter<T>[] }}\r\n */\n\n this._filters = {};\n /** @type {PhotoSwipe | undefined} */\n\n this.pswp = undefined;\n /** @type {PhotoSwipeOptions | undefined} */\n\n this.options = undefined;\n }\n /**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @param {T} name\r\n * @param {PhotoSwipeFiltersMap[T]} fn\r\n * @param {number} priority\r\n */\n\n\n addFilter(name, fn, priority = 100) {\n var _this$_filters$name, _this$_filters$name2, _this$pswp;\n\n if (!this._filters[name]) {\n this._filters[name] = [];\n }\n\n (_this$_filters$name = this._filters[name]) === null || _this$_filters$name === void 0 || _this$_filters$name.push({\n fn,\n priority\n });\n (_this$_filters$name2 = this._filters[name]) === null || _this$_filters$name2 === void 0 || _this$_filters$name2.sort((f1, f2) => f1.priority - f2.priority);\n (_this$pswp = this.pswp) === null || _this$pswp === void 0 || _this$pswp.addFilter(name, fn, priority);\n }\n /**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @param {T} name\r\n * @param {PhotoSwipeFiltersMap[T]} fn\r\n */\n\n\n removeFilter(name, fn) {\n if (this._filters[name]) {\n // @ts-expect-error\n this._filters[name] = this._filters[name].filter(filter => filter.fn !== fn);\n }\n\n if (this.pswp) {\n this.pswp.removeFilter(name, fn);\n }\n }\n /**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @param {T} name\r\n * @param {Parameters<PhotoSwipeFiltersMap[T]>} args\r\n * @returns {Parameters<PhotoSwipeFiltersMap[T]>[0]}\r\n */\n\n\n applyFilters(name, ...args) {\n var _this$_filters$name3;\n\n (_this$_filters$name3 = this._filters[name]) === null || _this$_filters$name3 === void 0 || _this$_filters$name3.forEach(filter => {\n // @ts-expect-error\n args[0] = filter.fn.apply(this, args);\n });\n return args[0];\n }\n /**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @param {T} name\r\n * @param {EventCallback<T>} fn\r\n */\n\n\n on(name, fn) {\n var _this$_listeners$name, _this$pswp2;\n\n if (!this._listeners[name]) {\n this._listeners[name] = [];\n }\n\n (_this$_listeners$name = this._listeners[name]) === null || _this$_listeners$name === void 0 || _this$_listeners$name.push(fn); // When binding events to lightbox,\n // also bind events to PhotoSwipe Core,\n // if it's open.\n\n (_this$pswp2 = this.pswp) === null || _this$pswp2 === void 0 || _this$pswp2.on(name, fn);\n }\n /**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @param {T} name\r\n * @param {EventCallback<T>} fn\r\n */\n\n\n off(name, fn) {\n var _this$pswp3;\n\n if (this._listeners[name]) {\n // @ts-expect-error\n this._listeners[name] = this._listeners[name].filter(listener => fn !== listener);\n }\n\n (_this$pswp3 = this.pswp) === null || _this$pswp3 === void 0 || _this$pswp3.off(name, fn);\n }\n /**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @param {T} name\r\n * @param {PhotoSwipeEventsMap[T]} [details]\r\n * @returns {AugmentedEvent<T>}\r\n */\n\n\n dispatch(name, details) {\n var _this$_listeners$name2;\n\n if (this.pswp) {\n return this.pswp.dispatch(name, details);\n }\n\n const event =\n /** @type {AugmentedEvent<T>} */\n new PhotoSwipeEvent(name, details);\n (_this$_listeners$name2 = this._listeners[name]) === null || _this$_listeners$name2 === void 0 || _this$_listeners$name2.forEach(listener => {\n listener.call(this, event);\n });\n return event;\n }\n\n}\n\nclass Placeholder {\n /**\r\n * @param {string | false} imageSrc\r\n * @param {HTMLElement} container\r\n */\n constructor(imageSrc, container) {\n // Create placeholder\n // (stretched thumbnail or simple div behind the main image)\n\n /** @type {HTMLImageElement | HTMLDivElement | null} */\n this.element = createElement('pswp__img pswp__img--placeholder', imageSrc ? 'img' : 'div', container);\n\n if (imageSrc) {\n const imgEl =\n /** @type {HTMLImageElement} */\n this.element;\n imgEl.decoding = 'async';\n imgEl.alt = '';\n imgEl.src = imageSrc;\n imgEl.setAttribute('role', 'presentation');\n }\n\n this.element.setAttribute('aria-hidden', 'true');\n }\n /**\r\n * @param {number} width\r\n * @param {number} height\r\n */\n\n\n setDisplayedSize(width, height) {\n if (!this.element) {\n return;\n }\n\n if (this.element.tagName === 'IMG') {\n // Use transform scale() to modify img placeholder size\n // (instead of changing width/height directly).\n // This helps with performance, specifically in iOS15 Safari.\n setWidthHeight(this.element, 250, 'auto');\n this.element.style.transformOrigin = '0 0';\n this.element.style.transform = toTransformString(0, 0, width / 250);\n } else {\n setWidthHeight(this.element, width, height);\n }\n }\n\n destroy() {\n var _this$element;\n\n if ((_this$element = this.element) !== null && _this$element !== void 0 && _this$element.parentNode) {\n this.element.remove();\n }\n\n this.element = null;\n }\n\n}\n\n/** @typedef {import('./slide.js').default} Slide */\n\n/** @typedef {import('./slide.js').SlideData} SlideData */\n\n/** @typedef {import('../core/base.js').default} PhotoSwipeBase */\n\n/** @typedef {import('../util/util.js').LoadState} LoadState */\n\nclass Content {\n /**\r\n * @param {SlideData} itemData Slide data\r\n * @param {PhotoSwipeBase} instance PhotoSwipe or PhotoSwipeLightbox instance\r\n * @param {number} index\r\n */\n constructor(itemData, instance, index) {\n this.instance = instance;\n this.data = itemData;\n this.index = index;\n /** @type {HTMLImageElement | HTMLDivElement | undefined} */\n\n this.element = undefined;\n /** @type {Placeholder | undefined} */\n\n this.placeholder = undefined;\n /** @type {Slide | undefined} */\n\n this.slide = undefined;\n this.displayedImageWidth = 0;\n this.displayedImageHeight = 0;\n this.width = Number(this.data.w) || Number(this.data.width) || 0;\n this.height = Number(this.data.h) || Number(this.data.height) || 0;\n this.isAttached = false;\n this.hasSlide = false;\n this.isDecoding = false;\n /** @type {LoadState} */\n\n this.state = LOAD_STATE.IDLE;\n\n if (this.data.type) {\n this.type = this.data.type;\n } else if (this.data.src) {\n this.type = 'image';\n } else {\n this.type = 'html';\n }\n\n this.instance.dispatch('contentInit', {\n content: this\n });\n }\n\n removePlaceholder() {\n if (this.placeholder && !this.keepPlaceholder()) {\n // With delay, as image might be loaded, but not rendered\n setTimeout(() => {\n if (this.placeholder) {\n this.placeholder.destroy();\n this.placeholder = undefined;\n }\n }, 1000);\n }\n }\n /**\r\n * Preload content\r\n *\r\n * @param {boolean} isLazy\r\n * @param {boolean} [reload]\r\n */\n\n\n load(isLazy, reload) {\n if (this.slide && this.usePlaceholder()) {\n if (!this.placeholder) {\n const placeholderSrc = this.instance.applyFilters('placeholderSrc', // use image-based placeholder only for the first slide,\n // as rendering (even small stretched thumbnail) is an expensive operation\n this.data.msrc && this.slide.isFirstSlide ? this.data.msrc : false, this);\n this.placeholder = new Placeholder(placeholderSrc, this.slide.container);\n } else {\n const placeholderEl = this.placeholder.element; // Add placeholder to DOM if it was already created\n\n if (placeholderEl && !placeholderEl.parentElement) {\n this.slide.container.prepend(placeholderEl);\n }\n }\n }\n\n if (this.element && !reload) {\n return;\n }\n\n if (this.instance.dispatch('contentLoad', {\n content: this,\n isLazy\n }).defaultPrevented) {\n return;\n }\n\n if (this.isImageContent()) {\n this.element = createElement('pswp__img', 'img'); // Start loading only after width is defined, as sizes might depend on it.\n // Due to Safari feature, we must define sizes before srcset.\n\n if (this.displayedImageWidth) {\n this.loadImage(isLazy);\n }\n } else {\n this.element = createElement('pswp__content', 'div');\n this.element.innerHTML = this.data.html || '';\n }\n\n if (reload && this.slide) {\n this.slide.updateContentSize(true);\n }\n }\n /**\r\n * Preload image\r\n *\r\n * @param {boolean} isLazy\r\n */\n\n\n loadImage(isLazy) {\n var _this$data$src, _this$data$alt;\n\n if (!this.isImageContent() || !this.element || this.instance.dispatch('contentLoadImage', {\n content: this,\n isLazy\n }).defaultPrevented) {\n return;\n }\n\n const imageElement =\n /** @type HTMLImageElement */\n this.element;\n this.updateSrcsetSizes();\n\n if (this.data.srcset) {\n imageElement.srcset = this.data.srcset;\n }\n\n imageElement.src = (_this$data$src = this.data.src) !== null && _this$data$src !== void 0 ? _this$data$src : '';\n imageElement.alt = (_this$data$alt = this.data.alt) !== null && _this$data$alt !== void 0 ? _this$data$alt : '';\n this.state = LOAD_STATE.LOADING;\n\n if (imageElement.complete) {\n this.onLoaded();\n } else {\n imageElement.onload = () => {\n this.onLoaded();\n };\n\n imageElement.onerror = () => {\n this.onError();\n };\n }\n }\n /**\r\n * Assign slide to content\r\n *\r\n * @param {Slide} slide\r\n */\n\n\n setSlide(slide) {\n this.slide = slide;\n this.hasSlide = true;\n this.instance = slide.pswp; // todo: do we need to unset slide?\n }\n /**\r\n * Content load success handler\r\n */\n\n\n onLoaded() {\n this.state = LOAD_STATE.LOADED;\n\n if (this.slide && this.element) {\n this.instance.dispatch('loadComplete', {\n slide: this.slide,\n content: this\n }); // if content is reloaded\n\n if (this.slide.isActive && this.slide.heavyAppended && !this.element.parentNode) {\n this.append();\n this.slide.updateContentSize(true);\n }\n\n if (this.state === LOAD_STATE.LOADED || this.state === LOAD_STATE.ERROR) {\n this.removePlaceholder();\n }\n }\n }\n /**\r\n * Content load error handler\r\n */\n\n\n onError() {\n this.state = LOAD_STATE.ERROR;\n\n if (this.slide) {\n this.displayError();\n this.instance.dispatch('loadComplete', {\n slide: this.slide,\n isError: true,\n content: this\n });\n this.instance.dispatch('loadError', {\n slide: this.slide,\n content: this\n });\n }\n }\n /**\r\n * @returns {Boolean} If the content is currently loading\r\n */\n\n\n isLoading() {\n return this.instance.applyFilters('isContentLoading', this.state === LOAD_STATE.LOADING, this);\n }\n /**\r\n * @returns {Boolean} If the content is in error state\r\n */\n\n\n isError() {\n return this.state === LOAD_STATE.ERROR;\n }\n /**\r\n * @returns {boolean} If the content is image\r\n */\n\n\n isImageContent() {\n return this.type === 'image';\n }\n /**\r\n * Update content size\r\n *\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\n\n\n setDisplayedSize(width, height) {\n if (!this.element) {\n return;\n }\n\n if (this.placeholder) {\n this.placeholder.setDisplayedSize(width, height);\n }\n\n if (this.instance.dispatch('contentResize', {\n content: this,\n width,\n height\n }).defaultPrevented) {\n return;\n }\n\n setWidthHeight(this.element, width, height);\n\n if (this.isImageContent() && !this.isError()) {\n const isInitialSizeUpdate = !this.displayedImageWidth && width;\n this.displayedImageWidth = width;\n this.displayedImageHeight = height;\n\n if (isInitialSizeUpdate) {\n this.loadImage(false);\n } else {\n this.updateSrcsetSizes();\n }\n\n if (this.slide) {\n this.instance.dispatch('imageSizeChange', {\n slide: this.slide,\n width,\n height,\n content: this\n });\n }\n }\n }\n /**\r\n * @returns {boolean} If the content can be zoomed\r\n */\n\n\n isZoomable() {\n return this.instance.applyFilters('isContentZoomable', this.isImageContent() && this.state !== LOAD_STATE.ERROR, this);\n }\n /**\r\n * Update image srcset sizes attribute based on width and height\r\n */\n\n\n updateSrcsetSizes() {\n // Handle srcset sizes attribute.\n //\n // Never lower quality, if it was increased previously.\n // Chrome does this automatically, Firefox and Safari do not,\n // so we store largest used size in dataset.\n if (!this.isImageContent() || !this.element || !this.data.srcset) {\n return;\n }\n\n const image =\n /** @type HTMLImageElement */\n this.element;\n const sizesWidth = this.instance.applyFilters('srcsetSizesWidth', this.displayedImageWidth, this);\n\n if (!image.dataset.largestUsedSize || sizesWidth > parseInt(image.dataset.largestUsedSize, 10)) {\n image.sizes = sizesWidth + 'px';\n image.dataset.largestUsedSize = String(sizesWidth);\n }\n }\n /**\r\n * @returns {boolean} If content should use a placeholder (from msrc by default)\r\n */\n\n\n usePlaceholder() {\n return this.instance.applyFilters('useContentPlaceholder', this.isImageContent(), this);\n }\n /**\r\n * Preload content with lazy-loading param\r\n */\n\n\n lazyLoad() {\n if (this.instance.dispatch('contentLazyLoad', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n this.load(true);\n }\n /**\r\n * @returns {boolean} If placeholder should be kept after content is loaded\r\n */\n\n\n keepPlaceholder() {\n return this.instance.applyFilters('isKeepingPlaceholder', this.isLoading(), this);\n }\n /**\r\n * Destroy the content\r\n */\n\n\n destroy() {\n this.hasSlide = false;\n this.slide = undefined;\n\n if (this.instance.dispatch('contentDestroy', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n this.remove();\n\n if (this.placeholder) {\n this.placeholder.destroy();\n this.placeholder = undefined;\n }\n\n if (this.isImageContent() && this.element) {\n this.element.onload = null;\n this.element.onerror = null;\n this.element = undefined;\n }\n }\n /**\r\n * Display error message\r\n */\n\n\n displayError() {\n if (this.slide) {\n var _this$instance$option, _this$instance$option2;\n\n let errorMsgEl = createElement('pswp__error-msg', 'div');\n errorMsgEl.innerText = (_this$instance$option = (_this$instance$option2 = this.instance.options) === null || _this$instance$option2 === void 0 ? void 0 : _this$instance$option2.errorMsg) !== null && _this$instance$option !== void 0 ? _this$instance$option : '';\n errorMsgEl =\n /** @type {HTMLDivElement} */\n this.instance.applyFilters('contentErrorElement', errorMsgEl, this);\n this.element = createElement('pswp__content pswp__error-msg-container', 'div');\n this.element.appendChild(errorMsgEl);\n this.slide.container.innerText = '';\n this.slide.container.appendChild(this.element);\n this.slide.updateContentSize(true);\n this.removePlaceholder();\n }\n }\n /**\r\n * Append the content\r\n */\n\n\n append() {\n if (this.isAttached || !this.element) {\n return;\n }\n\n this.isAttached = true;\n\n if (this.state === LOAD_STATE.ERROR) {\n this.displayError();\n return;\n }\n\n if (this.instance.dispatch('contentAppend', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n const supportsDecode = ('decode' in this.element);\n\n if (this.isImageContent()) {\n // Use decode() on nearby slides\n //\n // Nearby slide images are in DOM and not hidden via display:none.\n // However, they are placed offscreen (to the left and right side).\n //\n // Some browsers do not composite the image until it's actually visible,\n // using decode() helps.\n //\n // You might ask \"why dont you just decode() and then append all images\",\n // that's because I want to show image before it's fully loaded,\n // as browser can render parts of image while it is loading.\n // We do not do this in Safari due to partial loading bug.\n if (supportsDecode && this.slide && (!this.slide.isActive || isSafari())) {\n this.isDecoding = true; // purposefully using finally instead of then,\n // as if srcset sizes changes dynamically - it may cause decode error\n\n /** @type {HTMLImageElement} */\n\n this.element.decode().catch(() => {}).finally(() => {\n this.isDecoding = false;\n this.appendImage();\n });\n } else {\n this.appendImage();\n }\n } else if (this.slide && !this.element.parentNode) {\n this.slide.container.appendChild(this.element);\n }\n }\n /**\r\n * Activate the slide,\r\n * active slide is generally the current one,\r\n * meaning the user can see it.\r\n */\n\n\n activate() {\n if (this.instance.dispatch('contentActivate', {\n content: this\n }).defaultPrevented || !this.slide) {\n return;\n }\n\n if (this.isImageContent() && this.isDecoding && !isSafari()) {\n // add image to slide when it becomes active,\n // even if it's not finished decoding\n this.appendImage();\n } else if (this.isError()) {\n this.load(false, true); // try to reload\n }\n\n if (this.slide.holderElement) {\n this.slide.holderElement.setAttribute('aria-hidden', 'false');\n }\n }\n /**\r\n * Deactivate the content\r\n */\n\n\n deactivate() {\n this.instance.dispatch('contentDeactivate', {\n content: this\n });\n\n if (this.slide && this.slide.holderElement) {\n this.slide.holderElement.setAttribute('aria-hidden', 'true');\n }\n }\n /**\r\n * Remove the content from DOM\r\n */\n\n\n remove() {\n this.isAttached = false;\n\n if (this.instance.dispatch('contentRemove', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n if (this.element && this.element.parentNode) {\n this.element.remove();\n }\n\n if (this.placeholder && this.placeholder.element) {\n this.placeholder.element.remove();\n }\n }\n /**\r\n * Append the image content to slide container\r\n */\n\n\n appendImage() {\n if (!this.isAttached) {\n return;\n }\n\n if (this.instance.dispatch('contentAppendImage', {\n content: this\n }).defaultPrevented) {\n return;\n } // ensure that element exists and is not already appended\n\n\n if (this.slide && this.element && !this.element.parentNode) {\n this.slide.container.appendChild(this.element);\n }\n\n if (this.state === LOAD_STATE.LOADED || this.state === LOAD_STATE.ERROR) {\n this.removePlaceholder();\n }\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../core/base.js').default} PhotoSwipeBase */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('../slide/slide.js').SlideData} SlideData */\n\n/**\r\n * @param {PhotoSwipeOptions} options\r\n * @param {PhotoSwipeBase} pswp\r\n * @returns {Point}\r\n */\nfunction getViewportSize(options, pswp) {\n if (options.getViewportSizeFn) {\n const newViewportSize = options.getViewportSizeFn(options, pswp);\n\n if (newViewportSize) {\n return newViewportSize;\n }\n }\n\n return {\n x: document.documentElement.clientWidth,\n // TODO: height on mobile is very incosistent due to toolbar\n // find a way to improve this\n //\n // document.documentElement.clientHeight - doesn't seem to work well\n y: window.innerHeight\n };\n}\n/**\r\n * Parses padding option.\r\n * Supported formats:\r\n *\r\n * // Object\r\n * padding: {\r\n * top: 0,\r\n * bottom: 0,\r\n * left: 0,\r\n * right: 0\r\n * }\r\n *\r\n * // A function that returns the object\r\n * paddingFn: (viewportSize, itemData, index) => {\r\n * return {\r\n * top: 0,\r\n * bottom: 0,\r\n * left: 0,\r\n * right: 0\r\n * };\r\n * }\r\n *\r\n * // Legacy variant\r\n * paddingLeft: 0,\r\n * paddingRight: 0,\r\n * paddingTop: 0,\r\n * paddingBottom: 0,\r\n *\r\n * @param {'left' | 'top' | 'bottom' | 'right'} prop\r\n * @param {PhotoSwipeOptions} options PhotoSwipe options\r\n * @param {Point} viewportSize PhotoSwipe viewport size, for example: { x:800, y:600 }\r\n * @param {SlideData} itemData Data about the slide\r\n * @param {number} index Slide index\r\n * @returns {number}\r\n */\n\nfunction parsePaddingOption(prop, options, viewportSize, itemData, index) {\n let paddingValue = 0;\n\n if (options.paddingFn) {\n paddingValue = options.paddingFn(viewportSize, itemData, index)[prop];\n } else if (options.padding) {\n paddingValue = options.padding[prop];\n } else {\n const legacyPropName = 'padding' + prop[0].toUpperCase() + prop.slice(1); // @ts-expect-error\n\n if (options[legacyPropName]) {\n // @ts-expect-error\n paddingValue = options[legacyPropName];\n }\n }\n\n return Number(paddingValue) || 0;\n}\n/**\r\n * @param {PhotoSwipeOptions} options\r\n * @param {Point} viewportSize\r\n * @param {SlideData} itemData\r\n * @param {number} index\r\n * @returns {Point}\r\n */\n\nfunction getPanAreaSize(options, viewportSize, itemData, index) {\n return {\n x: viewportSize.x - parsePaddingOption('left', options, viewportSize, itemData, index) - parsePaddingOption('right', options, viewportSize, itemData, index),\n y: viewportSize.y - parsePaddingOption('top', options, viewportSize, itemData, index) - parsePaddingOption('bottom', options, viewportSize, itemData, index)\n };\n}\n\nconst MAX_IMAGE_WIDTH = 4000;\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('../slide/slide.js').SlideData} SlideData */\n\n/** @typedef {'fit' | 'fill' | number | ((zoomLevelObject: ZoomLevel) => number)} ZoomLevelOption */\n\n/**\r\n * Calculates zoom levels for specific slide.\r\n * Depends on viewport size and image size.\r\n */\n\nclass ZoomLevel {\n /**\r\n * @param {PhotoSwipeOptions} options PhotoSwipe options\r\n * @param {SlideData} itemData Slide data\r\n * @param {number} index Slide index\r\n * @param {PhotoSwipe} [pswp] PhotoSwipe instance, can be undefined if not initialized yet\r\n */\n constructor(options, itemData, index, pswp) {\n this.pswp = pswp;\n this.options = options;\n this.itemData = itemData;\n this.index = index;\n /** @type { Point | null } */\n\n this.panAreaSize = null;\n /** @type { Point | null } */\n\n this.elementSize = null;\n this.fit = 1;\n this.fill = 1;\n this.vFill = 1;\n this.initial = 1;\n this.secondary = 1;\n this.max = 1;\n this.min = 1;\n }\n /**\r\n * Calculate initial, secondary and maximum zoom level for the specified slide.\r\n *\r\n * It should be called when either image or viewport size changes.\r\n *\r\n * @param {number} maxWidth\r\n * @param {number} maxHeight\r\n * @param {Point} panAreaSize\r\n */\n\n\n update(maxWidth, maxHeight, panAreaSize) {\n /** @type {Point} */\n const elementSize = {\n x: maxWidth,\n y: maxHeight\n };\n this.elementSize = elementSize;\n this.panAreaSize = panAreaSize;\n const hRatio = panAreaSize.x / elementSize.x;\n const vRatio = panAreaSize.y / elementSize.y;\n this.fit = Math.min(1, hRatio < vRatio ? hRatio : vRatio);\n this.fill = Math.min(1, hRatio > vRatio ? hRatio : vRatio); // zoom.vFill defines zoom level of the image\n // when it has 100% of viewport vertical space (height)\n\n this.vFill = Math.min(1, vRatio);\n this.initial = this._getInitial();\n this.secondary = this._getSecondary();\n this.max = Math.max(this.initial, this.secondary, this._getMax());\n this.min = Math.min(this.fit, this.initial, this.secondary);\n\n if (this.pswp) {\n this.pswp.dispatch('zoomLevelsUpdate', {\n zoomLevels: this,\n slideData: this.itemData\n });\n }\n }\n /**\r\n * Parses user-defined zoom option.\r\n *\r\n * @private\r\n * @param {'initial' | 'secondary' | 'max'} optionPrefix Zoom level option prefix (initial, secondary, max)\r\n * @returns { number | undefined }\r\n */\n\n\n _parseZoomLevelOption(optionPrefix) {\n const optionName =\n /** @type {'initialZoomLevel' | 'secondaryZoomLevel' | 'maxZoomLevel'} */\n optionPrefix + 'ZoomLevel';\n const optionValue = this.options[optionName];\n\n if (!optionValue) {\n return;\n }\n\n if (typeof optionValue === 'function') {\n return optionValue(this);\n }\n\n if (optionValue === 'fill') {\n return this.fill;\n }\n\n if (optionValue === 'fit') {\n return this.fit;\n }\n\n return Number(optionValue);\n }\n /**\r\n * Get zoom level to which image will be zoomed after double-tap gesture,\r\n * or when user clicks on zoom icon,\r\n * or mouse-click on image itself.\r\n * If you return 1 image will be zoomed to its original size.\r\n *\r\n * @private\r\n * @return {number}\r\n */\n\n\n _getSecondary() {\n let currZoomLevel = this._parseZoomLevelOption('secondary');\n\n if (currZoomLevel) {\n return currZoomLevel;\n } // 3x of \"fit\" state, but not larger than original\n\n\n currZoomLevel = Math.min(1, this.fit * 3);\n\n if (this.elementSize && currZoomLevel * this.elementSize.x > MAX_IMAGE_WIDTH) {\n currZoomLevel = MAX_IMAGE_WIDTH / this.elementSize.x;\n }\n\n return currZoomLevel;\n }\n /**\r\n * Get initial image zoom level.\r\n *\r\n * @private\r\n * @return {number}\r\n */\n\n\n _getInitial() {\n return this._parseZoomLevelOption('initial') || this.fit;\n }\n /**\r\n * Maximum zoom level when user zooms\r\n * via zoom/pinch gesture,\r\n * via cmd/ctrl-wheel or via trackpad.\r\n *\r\n * @private\r\n * @return {number}\r\n */\n\n\n _getMax() {\n // max zoom level is x4 from \"fit state\",\n // used for zoom gesture and ctrl/trackpad zoom\n return this._parseZoomLevelOption('max') || Math.max(1, this.fit * 4);\n }\n\n}\n\n/**\r\n * Lazy-load an image\r\n * This function is used both by Lightbox and PhotoSwipe core,\r\n * thus it can be called before dialog is opened.\r\n *\r\n * @param {SlideData} itemData Data about the slide\r\n * @param {PhotoSwipeBase} instance PhotoSwipe or PhotoSwipeLightbox instance\r\n * @param {number} index\r\n * @returns {Content} Image that is being decoded or false.\r\n */\n\nfunction lazyLoadData(itemData, instance, index) {\n const content = instance.createContentFromData(itemData, index);\n /** @type {ZoomLevel | undefined} */\n\n let zoomLevel;\n const {\n options\n } = instance; // We need to know dimensions of the image to preload it,\n // as it might use srcset, and we need to define sizes\n\n if (options) {\n zoomLevel = new ZoomLevel(options, itemData, -1);\n let viewportSize;\n\n if (instance.pswp) {\n viewportSize = instance.pswp.viewportSize;\n } else {\n viewportSize = getViewportSize(options, instance);\n }\n\n const panAreaSize = getPanAreaSize(options, viewportSize, itemData, index);\n zoomLevel.update(content.width, content.height, panAreaSize);\n }\n\n content.lazyLoad();\n\n if (zoomLevel) {\n content.setDisplayedSize(Math.ceil(content.width * zoomLevel.initial), Math.ceil(content.height * zoomLevel.initial));\n }\n\n return content;\n}\n/**\r\n * Lazy-loads specific slide.\r\n * This function is used both by Lightbox and PhotoSwipe core,\r\n * thus it can be called before dialog is opened.\r\n *\r\n * By default, it loads image based on viewport size and initial zoom level.\r\n *\r\n * @param {number} index Slide index\r\n * @param {PhotoSwipeBase} instance PhotoSwipe or PhotoSwipeLightbox eventable instance\r\n * @returns {Content | undefined}\r\n */\n\nfunction lazyLoadSlide(index, instance) {\n const itemData = instance.getItemData(index);\n\n if (instance.dispatch('lazyLoadSlide', {\n index,\n itemData\n }).defaultPrevented) {\n return;\n }\n\n return lazyLoadData(itemData, instance, index);\n}\n\n/** @typedef {import(\"../photoswipe.js\").default} PhotoSwipe */\n\n/** @typedef {import(\"../slide/slide.js\").SlideData} SlideData */\n\n/**\r\n * PhotoSwipe base class that can retrieve data about every slide.\r\n * Shared by PhotoSwipe Core and PhotoSwipe Lightbox\r\n */\n\nclass PhotoSwipeBase extends Eventable {\n /**\r\n * Get total number of slides\r\n *\r\n * @returns {number}\r\n */\n getNumItems() {\n var _this$options;\n\n let numItems = 0;\n const dataSource = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.dataSource;\n\n if (dataSource && 'length' in dataSource) {\n // may be an array or just object with length property\n numItems = dataSource.length;\n } else if (dataSource && 'gallery' in dataSource) {\n // query DOM elements\n if (!dataSource.items) {\n dataSource.items = this._getGalleryDOMElements(dataSource.gallery);\n }\n\n if (dataSource.items) {\n numItems = dataSource.items.length;\n }\n } // legacy event, before filters were introduced\n\n\n const event = this.dispatch('numItems', {\n dataSource,\n numItems\n });\n return this.applyFilters('numItems', event.numItems, dataSource);\n }\n /**\r\n * @param {SlideData} slideData\r\n * @param {number} index\r\n * @returns {Content}\r\n */\n\n\n createContentFromData(slideData, index) {\n return new Content(slideData, this, index);\n }\n /**\r\n * Get item data by index.\r\n *\r\n * \"item data\" should contain normalized information that PhotoSwipe needs to generate a slide.\r\n * For example, it may contain properties like\r\n * `src`, `srcset`, `w`, `h`, which will be used to generate a slide with image.\r\n *\r\n * @param {number} index\r\n * @returns {SlideData}\r\n */\n\n\n getItemData(index) {\n var _this$options2;\n\n const dataSource = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.dataSource;\n /** @type {SlideData | HTMLElement} */\n\n let dataSourceItem = {};\n\n if (Array.isArray(dataSource)) {\n // Datasource is an array of elements\n dataSourceItem = dataSource[index];\n } else if (dataSource && 'gallery' in dataSource) {\n // dataSource has gallery property,\n // thus it was created by Lightbox, based on\n // gallery and children options\n // query DOM elements\n if (!dataSource.items) {\n dataSource.items = this._getGalleryDOMElements(dataSource.gallery);\n }\n\n dataSourceItem = dataSource.items[index];\n }\n\n let itemData = dataSourceItem;\n\n if (itemData instanceof Element) {\n itemData = this._domElementToItemData(itemData);\n } // Dispatching the itemData event,\n // it's a legacy verion before filters were introduced\n\n\n const event = this.dispatch('itemData', {\n itemData: itemData || {},\n index\n });\n return this.applyFilters('itemData', event.itemData, index);\n }\n /**\r\n * Get array of gallery DOM elements,\r\n * based on childSelector and gallery element.\r\n *\r\n * @param {HTMLElement} galleryElement\r\n * @returns {HTMLElement[]}\r\n */\n\n\n _getGalleryDOMElements(galleryElement) {\n var _this$options3, _this$options4;\n\n if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.children || (_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.childSelector) {\n return getElementsFromOption(this.options.children, this.options.childSelector, galleryElement) || [];\n }\n\n return [galleryElement];\n }\n /**\r\n * Converts DOM element to item data object.\r\n *\r\n * @param {HTMLElement} element DOM element\r\n * @returns {SlideData}\r\n */\n\n\n _domElementToItemData(element) {\n /** @type {SlideData} */\n const itemData = {\n element\n };\n const linkEl =\n /** @type {HTMLAnchorElement} */\n element.tagName === 'A' ? element : element.querySelector('a');\n\n if (linkEl) {\n // src comes from data-pswp-src attribute,\n // if it's empty link href is used\n itemData.src = linkEl.dataset.pswpSrc || linkEl.href;\n\n if (linkEl.dataset.pswpSrcset) {\n itemData.srcset = linkEl.dataset.pswpSrcset;\n }\n\n itemData.width = linkEl.dataset.pswpWidth ? parseInt(linkEl.dataset.pswpWidth, 10) : 0;\n itemData.height = linkEl.dataset.pswpHeight ? parseInt(linkEl.dataset.pswpHeight, 10) : 0; // support legacy w & h properties\n\n itemData.w = itemData.width;\n itemData.h = itemData.height;\n\n if (linkEl.dataset.pswpType) {\n itemData.type = linkEl.dataset.pswpType;\n }\n\n const thumbnailEl = element.querySelector('img');\n\n if (thumbnailEl) {\n var _thumbnailEl$getAttri;\n\n // msrc is URL to placeholder image that's displayed before large image is loaded\n // by default it's displayed only for the first slide\n itemData.msrc = thumbnailEl.currentSrc || thumbnailEl.src;\n itemData.alt = (_thumbnailEl$getAttri = thumbnailEl.getAttribute('alt')) !== null && _thumbnailEl$getAttri !== void 0 ? _thumbnailEl$getAttri : '';\n }\n\n if (linkEl.dataset.pswpCropped || linkEl.dataset.cropped) {\n itemData.thumbCropped = true;\n }\n }\n\n return this.applyFilters('domItemData', itemData, element, linkEl);\n }\n /**\r\n * Lazy-load by slide data\r\n *\r\n * @param {SlideData} itemData Data about the slide\r\n * @param {number} index\r\n * @returns {Content} Image that is being decoded or false.\r\n */\n\n\n lazyLoadData(itemData, index) {\n return lazyLoadData(itemData, this, index);\n }\n\n}\n\n/**\r\n * @template T\r\n * @typedef {import('../types.js').Type<T>} Type<T>\r\n */\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../photoswipe.js').DataSource} DataSource */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('../slide/content.js').default} Content */\n\n/** @typedef {import('../core/eventable.js').PhotoSwipeEventsMap} PhotoSwipeEventsMap */\n\n/** @typedef {import('../core/eventable.js').PhotoSwipeFiltersMap} PhotoSwipeFiltersMap */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {import('../core/eventable.js').EventCallback<T>} EventCallback<T>\r\n */\n\n/**\r\n * PhotoSwipe Lightbox\r\n *\r\n * - If user has unsupported browser it falls back to default browser action (just opens URL)\r\n * - Binds click event to links that should open PhotoSwipe\r\n * - parses DOM strcture for PhotoSwipe (retrieves large image URLs and sizes)\r\n * - Initializes PhotoSwipe\r\n *\r\n *\r\n * Loader options use the same object as PhotoSwipe, and supports such options:\r\n *\r\n * gallery - Element | Element[] | NodeList | string selector for the gallery element\r\n * children - Element | Element[] | NodeList | string selector for the gallery children\r\n *\r\n */\n\nclass PhotoSwipeLightbox extends PhotoSwipeBase {\n /**\r\n * @param {PhotoSwipeOptions} [options]\r\n */\n constructor(options) {\n super();\n /** @type {PhotoSwipeOptions} */\n\n this.options = options || {};\n this._uid = 0;\n this.shouldOpen = false;\n /**\r\n * @private\r\n * @type {Content | undefined}\r\n */\n\n this._preloadedContent = undefined;\n this.onThumbnailsClick = this.onThumbnailsClick.bind(this);\n }\n /**\r\n * Initialize lightbox, should be called only once.\r\n * It's not included in the main constructor, so you may bind events before it.\r\n */\n\n\n init() {\n // Bind click events to each gallery\n getElementsFromOption(this.options.gallery, this.options.gallerySelector).forEach(galleryElement => {\n galleryElement.addEventListener('click', this.onThumbnailsClick, false);\n });\n }\n /**\r\n * @param {MouseEvent} e\r\n */\n\n\n onThumbnailsClick(e) {\n // Exit and allow default browser action if:\n if (specialKeyUsed(e) // ... if clicked with a special key (ctrl/cmd...)\n || window.pswp) {\n // ... if PhotoSwipe is already open\n return;\n } // If both clientX and clientY are 0 or not defined,\n // the event is likely triggered by keyboard,\n // so we do not pass the initialPoint\n //\n // Note that some screen readers emulate the mouse position,\n // so it's not the ideal way to detect them.\n //\n\n /** @type {Point | null} */\n\n\n let initialPoint = {\n x: e.clientX,\n y: e.clientY\n };\n\n if (!initialPoint.x && !initialPoint.y) {\n initialPoint = null;\n }\n\n let clickedIndex = this.getClickedIndex(e);\n clickedIndex = this.applyFilters('clickedIndex', clickedIndex, e, this);\n /** @type {DataSource} */\n\n const dataSource = {\n gallery:\n /** @type {HTMLElement} */\n e.currentTarget\n };\n\n if (clickedIndex >= 0) {\n e.preventDefault();\n this.loadAndOpen(clickedIndex, dataSource, initialPoint);\n }\n }\n /**\r\n * Get index of gallery item that was clicked.\r\n *\r\n * @param {MouseEvent} e click event\r\n * @returns {number}\r\n */\n\n\n getClickedIndex(e) {\n // legacy option\n if (this.options.getClickedIndexFn) {\n return this.options.getClickedIndexFn.call(this, e);\n }\n\n const clickedTarget =\n /** @type {HTMLElement} */\n e.target;\n const childElements = getElementsFromOption(this.options.children, this.options.childSelector,\n /** @type {HTMLElement} */\n e.currentTarget);\n const clickedChildIndex = childElements.findIndex(child => child === clickedTarget || child.contains(clickedTarget));\n\n if (clickedChildIndex !== -1) {\n return clickedChildIndex;\n } else if (this.options.children || this.options.childSelector) {\n // click wasn't on a child element\n return -1;\n } // There is only one item (which is the gallery)\n\n\n return 0;\n }\n /**\r\n * Load and open PhotoSwipe\r\n *\r\n * @param {number} index\r\n * @param {DataSource} [dataSource]\r\n * @param {Point | null} [initialPoint]\r\n * @returns {boolean}\r\n */\n\n\n loadAndOpen(index, dataSource, initialPoint) {\n // Check if the gallery is already open\n if (window.pswp || !this.options) {\n return false;\n } // Use the first gallery element if dataSource is not provided\n\n\n if (!dataSource && this.options.gallery && this.options.children) {\n const galleryElements = getElementsFromOption(this.options.gallery);\n\n if (galleryElements[0]) {\n dataSource = {\n gallery: galleryElements[0]\n };\n }\n } // set initial index\n\n\n this.options.index = index; // define options for PhotoSwipe constructor\n\n this.options.initialPointerPos = initialPoint;\n this.shouldOpen = true;\n this.preload(index, dataSource);\n return true;\n }\n /**\r\n * Load the main module and the slide content by index\r\n *\r\n * @param {number} index\r\n * @param {DataSource} [dataSource]\r\n */\n\n\n preload(index, dataSource) {\n const {\n options\n } = this;\n\n if (dataSource) {\n options.dataSource = dataSource;\n } // Add the main module\n\n /** @type {Promise<Type<PhotoSwipe>>[]} */\n\n\n const promiseArray = [];\n const pswpModuleType = typeof options.pswpModule;\n\n if (isPswpClass(options.pswpModule)) {\n promiseArray.push(Promise.resolve(\n /** @type {Type<PhotoSwipe>} */\n options.pswpModule));\n } else if (pswpModuleType === 'string') {\n throw new Error('pswpModule as string is no longer supported');\n } else if (pswpModuleType === 'function') {\n promiseArray.push(\n /** @type {() => Promise<Type<PhotoSwipe>>} */\n options.pswpModule());\n } else {\n throw new Error('pswpModule is not valid');\n } // Add custom-defined promise, if any\n\n\n if (typeof options.openPromise === 'function') {\n // allow developers to perform some task before opening\n promiseArray.push(options.openPromise());\n }\n\n if (options.preloadFirstSlide !== false && index >= 0) {\n this._preloadedContent = lazyLoadSlide(index, this);\n } // Wait till all promises resolve and open PhotoSwipe\n\n\n const uid = ++this._uid;\n Promise.all(promiseArray).then(iterableModules => {\n if (this.shouldOpen) {\n const mainModule = iterableModules[0];\n\n this._openPhotoswipe(mainModule, uid);\n }\n });\n }\n /**\r\n * @private\r\n * @param {Type<PhotoSwipe> | { default: Type<PhotoSwipe> }} module\r\n * @param {number} uid\r\n */\n\n\n _openPhotoswipe(module, uid) {\n // Cancel opening if UID doesn't match the current one\n // (if user clicked on another gallery item before current was loaded).\n //\n // Or if shouldOpen flag is set to false\n // (developer may modify it via public API)\n if (uid !== this._uid && this.shouldOpen) {\n return;\n }\n\n this.shouldOpen = false; // PhotoSwipe is already open\n\n if (window.pswp) {\n return;\n }\n /**\r\n * Pass data to PhotoSwipe and open init\r\n *\r\n * @type {PhotoSwipe}\r\n */\n\n\n const pswp = typeof module === 'object' ? new module.default(this.options) // eslint-disable-line\n : new module(this.options); // eslint-disable-line\n\n this.pswp = pswp;\n window.pswp = pswp; // map listeners from Lightbox to PhotoSwipe Core\n\n /** @type {(keyof PhotoSwipeEventsMap)[]} */\n\n Object.keys(this._listeners).forEach(name => {\n var _this$_listeners$name;\n\n (_this$_listeners$name = this._listeners[name]) === null || _this$_listeners$name === void 0 || _this$_listeners$name.forEach(fn => {\n pswp.on(name,\n /** @type {EventCallback<typeof name>} */\n fn);\n });\n }); // same with filters\n\n /** @type {(keyof PhotoSwipeFiltersMap)[]} */\n\n Object.keys(this._filters).forEach(name => {\n var _this$_filters$name;\n\n (_this$_filters$name = this._filters[name]) === null || _this$_filters$name === void 0 || _this$_filters$name.forEach(filter => {\n pswp.addFilter(name, filter.fn, filter.priority);\n });\n });\n\n if (this._preloadedContent) {\n pswp.contentLoader.addToCache(this._preloadedContent);\n this._preloadedContent = undefined;\n }\n\n pswp.on('destroy', () => {\n // clean up public variables\n this.pswp = undefined;\n delete window.pswp;\n });\n pswp.init();\n }\n /**\r\n * Unbinds all events, closes PhotoSwipe if it's open.\r\n */\n\n\n destroy() {\n var _this$pswp;\n\n (_this$pswp = this.pswp) === null || _this$pswp === void 0 || _this$pswp.destroy();\n this.shouldOpen = false;\n this._listeners = {};\n getElementsFromOption(this.options.gallery, this.options.gallerySelector).forEach(galleryElement => {\n galleryElement.removeEventListener('click', this.onThumbnailsClick, false);\n });\n }\n\n}\n\nexport { PhotoSwipeLightbox as default };\n//# sourceMappingURL=photoswipe-lightbox.esm.js.map\n","/*!\n * PhotoSwipe 5.4.4 - https://photoswipe.com\n * (c) 2024 Dmytro Semenov\n */\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/**\r\n * @template {keyof HTMLElementTagNameMap} T\r\n * @param {string} className\r\n * @param {T} tagName\r\n * @param {Node} [appendToEl]\r\n * @returns {HTMLElementTagNameMap[T]}\r\n */\nfunction createElement(className, tagName, appendToEl) {\n const el = document.createElement(tagName);\n\n if (className) {\n el.className = className;\n }\n\n if (appendToEl) {\n appendToEl.appendChild(el);\n }\n\n return el;\n}\n/**\r\n * @param {Point} p1\r\n * @param {Point} p2\r\n * @returns {Point}\r\n */\n\nfunction equalizePoints(p1, p2) {\n p1.x = p2.x;\n p1.y = p2.y;\n\n if (p2.id !== undefined) {\n p1.id = p2.id;\n }\n\n return p1;\n}\n/**\r\n * @param {Point} p\r\n */\n\nfunction roundPoint(p) {\n p.x = Math.round(p.x);\n p.y = Math.round(p.y);\n}\n/**\r\n * Returns distance between two points.\r\n *\r\n * @param {Point} p1\r\n * @param {Point} p2\r\n * @returns {number}\r\n */\n\nfunction getDistanceBetween(p1, p2) {\n const x = Math.abs(p1.x - p2.x);\n const y = Math.abs(p1.y - p2.y);\n return Math.sqrt(x * x + y * y);\n}\n/**\r\n * Whether X and Y positions of points are equal\r\n *\r\n * @param {Point} p1\r\n * @param {Point} p2\r\n * @returns {boolean}\r\n */\n\nfunction pointsEqual(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n/**\r\n * The float result between the min and max values.\r\n *\r\n * @param {number} val\r\n * @param {number} min\r\n * @param {number} max\r\n * @returns {number}\r\n */\n\nfunction clamp(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n/**\r\n * Get transform string\r\n *\r\n * @param {number} x\r\n * @param {number} [y]\r\n * @param {number} [scale]\r\n * @returns {string}\r\n */\n\nfunction toTransformString(x, y, scale) {\n let propValue = `translate3d(${x}px,${y || 0}px,0)`;\n\n if (scale !== undefined) {\n propValue += ` scale3d(${scale},${scale},1)`;\n }\n\n return propValue;\n}\n/**\r\n * Apply transform:translate(x, y) scale(scale) to element\r\n *\r\n * @param {HTMLElement} el\r\n * @param {number} x\r\n * @param {number} [y]\r\n * @param {number} [scale]\r\n */\n\nfunction setTransform(el, x, y, scale) {\n el.style.transform = toTransformString(x, y, scale);\n}\nconst defaultCSSEasing = 'cubic-bezier(.4,0,.22,1)';\n/**\r\n * Apply CSS transition to element\r\n *\r\n * @param {HTMLElement} el\r\n * @param {string} [prop] CSS property to animate\r\n * @param {number} [duration] in ms\r\n * @param {string} [ease] CSS easing function\r\n */\n\nfunction setTransitionStyle(el, prop, duration, ease) {\n // inOut: 'cubic-bezier(.4, 0, .22, 1)', // for \"toggle state\" transitions\n // out: 'cubic-bezier(0, 0, .22, 1)', // for \"show\" transitions\n // in: 'cubic-bezier(.4, 0, 1, 1)'// for \"hide\" transitions\n el.style.transition = prop ? `${prop} ${duration}ms ${ease || defaultCSSEasing}` : 'none';\n}\n/**\r\n * Apply width and height CSS properties to element\r\n *\r\n * @param {HTMLElement} el\r\n * @param {string | number} w\r\n * @param {string | number} h\r\n */\n\nfunction setWidthHeight(el, w, h) {\n el.style.width = typeof w === 'number' ? `${w}px` : w;\n el.style.height = typeof h === 'number' ? `${h}px` : h;\n}\n/**\r\n * @param {HTMLElement} el\r\n */\n\nfunction removeTransitionStyle(el) {\n setTransitionStyle(el);\n}\n/**\r\n * @param {HTMLImageElement} img\r\n * @returns {Promise<HTMLImageElement | void>}\r\n */\n\nfunction decodeImage(img) {\n if ('decode' in img) {\n return img.decode().catch(() => {});\n }\n\n if (img.complete) {\n return Promise.resolve(img);\n }\n\n return new Promise((resolve, reject) => {\n img.onload = () => resolve(img);\n\n img.onerror = reject;\n });\n}\n/** @typedef {LOAD_STATE[keyof LOAD_STATE]} LoadState */\n\n/** @type {{ IDLE: 'idle'; LOADING: 'loading'; LOADED: 'loaded'; ERROR: 'error' }} */\n\nconst LOAD_STATE = {\n IDLE: 'idle',\n LOADING: 'loading',\n LOADED: 'loaded',\n ERROR: 'error'\n};\n/**\r\n * Check if click or keydown event was dispatched\r\n * with a special key or via mouse wheel.\r\n *\r\n * @param {MouseEvent | KeyboardEvent} e\r\n * @returns {boolean}\r\n */\n\nfunction specialKeyUsed(e) {\n return 'button' in e && e.button === 1 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey;\n}\n/**\r\n * Parse `gallery` or `children` options.\r\n *\r\n * @param {import('../photoswipe.js').ElementProvider} [option]\r\n * @param {string} [legacySelector]\r\n * @param {HTMLElement | Document} [parent]\r\n * @returns HTMLElement[]\r\n */\n\nfunction getElementsFromOption(option, legacySelector, parent = document) {\n /** @type {HTMLElement[]} */\n let elements = [];\n\n if (option instanceof Element) {\n elements = [option];\n } else if (option instanceof NodeList || Array.isArray(option)) {\n elements = Array.from(option);\n } else {\n const selector = typeof option === 'string' ? option : legacySelector;\n\n if (selector) {\n elements = Array.from(parent.querySelectorAll(selector));\n }\n }\n\n return elements;\n}\n/**\r\n * Check if browser is Safari\r\n *\r\n * @returns {boolean}\r\n */\n\nfunction isSafari() {\n return !!(navigator.vendor && navigator.vendor.match(/apple/i));\n}\n\n// Detect passive event listener support\nlet supportsPassive = false;\n/* eslint-disable */\n\ntry {\n /* @ts-ignore */\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: () => {\n supportsPassive = true;\n }\n }));\n} catch (e) {}\n/* eslint-enable */\n\n/**\r\n * @typedef {Object} PoolItem\r\n * @prop {HTMLElement | Window | Document | undefined | null} target\r\n * @prop {string} type\r\n * @prop {EventListenerOrEventListenerObject} listener\r\n * @prop {boolean} [passive]\r\n */\n\n\nclass DOMEvents {\n constructor() {\n /**\r\n * @type {PoolItem[]}\r\n * @private\r\n */\n this._pool = [];\n }\n /**\r\n * Adds event listeners\r\n *\r\n * @param {PoolItem['target']} target\r\n * @param {PoolItem['type']} type Can be multiple, separated by space.\r\n * @param {PoolItem['listener']} listener\r\n * @param {PoolItem['passive']} [passive]\r\n */\n\n\n add(target, type, listener, passive) {\n this._toggleListener(target, type, listener, passive);\n }\n /**\r\n * Removes event listeners\r\n *\r\n * @param {PoolItem['target']} target\r\n * @param {PoolItem['type']} type\r\n * @param {PoolItem['listener']} listener\r\n * @param {PoolItem['passive']} [passive]\r\n */\n\n\n remove(target, type, listener, passive) {\n this._toggleListener(target, type, listener, passive, true);\n }\n /**\r\n * Removes all bound events\r\n */\n\n\n removeAll() {\n this._pool.forEach(poolItem => {\n this._toggleListener(poolItem.target, poolItem.type, poolItem.listener, poolItem.passive, true, true);\n });\n\n this._pool = [];\n }\n /**\r\n * Adds or removes event\r\n *\r\n * @private\r\n * @param {PoolItem['target']} target\r\n * @param {PoolItem['type']} type\r\n * @param {PoolItem['listener']} listener\r\n * @param {PoolItem['passive']} [passive]\r\n * @param {boolean} [unbind] Whether the event should be added or removed\r\n * @param {boolean} [skipPool] Whether events pool should be skipped\r\n */\n\n\n _toggleListener(target, type, listener, passive, unbind, skipPool) {\n if (!target) {\n return;\n }\n\n const methodName = unbind ? 'removeEventListener' : 'addEventListener';\n const types = type.split(' ');\n types.forEach(eType => {\n if (eType) {\n // Events pool is used to easily unbind all events when PhotoSwipe is closed,\n // so developer doesn't need to do this manually\n if (!skipPool) {\n if (unbind) {\n // Remove from the events pool\n this._pool = this._pool.filter(poolItem => {\n return poolItem.type !== eType || poolItem.listener !== listener || poolItem.target !== target;\n });\n } else {\n // Add to the events pool\n this._pool.push({\n target,\n type: eType,\n listener,\n passive\n });\n }\n } // most PhotoSwipe events call preventDefault,\n // and we do not need browser to scroll the page\n\n\n const eventOptions = supportsPassive ? {\n passive: passive || false\n } : false;\n target[methodName](eType, listener, eventOptions);\n }\n });\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../core/base.js').default} PhotoSwipeBase */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('../slide/slide.js').SlideData} SlideData */\n\n/**\r\n * @param {PhotoSwipeOptions} options\r\n * @param {PhotoSwipeBase} pswp\r\n * @returns {Point}\r\n */\nfunction getViewportSize(options, pswp) {\n if (options.getViewportSizeFn) {\n const newViewportSize = options.getViewportSizeFn(options, pswp);\n\n if (newViewportSize) {\n return newViewportSize;\n }\n }\n\n return {\n x: document.documentElement.clientWidth,\n // TODO: height on mobile is very incosistent due to toolbar\n // find a way to improve this\n //\n // document.documentElement.clientHeight - doesn't seem to work well\n y: window.innerHeight\n };\n}\n/**\r\n * Parses padding option.\r\n * Supported formats:\r\n *\r\n * // Object\r\n * padding: {\r\n * top: 0,\r\n * bottom: 0,\r\n * left: 0,\r\n * right: 0\r\n * }\r\n *\r\n * // A function that returns the object\r\n * paddingFn: (viewportSize, itemData, index) => {\r\n * return {\r\n * top: 0,\r\n * bottom: 0,\r\n * left: 0,\r\n * right: 0\r\n * };\r\n * }\r\n *\r\n * // Legacy variant\r\n * paddingLeft: 0,\r\n * paddingRight: 0,\r\n * paddingTop: 0,\r\n * paddingBottom: 0,\r\n *\r\n * @param {'left' | 'top' | 'bottom' | 'right'} prop\r\n * @param {PhotoSwipeOptions} options PhotoSwipe options\r\n * @param {Point} viewportSize PhotoSwipe viewport size, for example: { x:800, y:600 }\r\n * @param {SlideData} itemData Data about the slide\r\n * @param {number} index Slide index\r\n * @returns {number}\r\n */\n\nfunction parsePaddingOption(prop, options, viewportSize, itemData, index) {\n let paddingValue = 0;\n\n if (options.paddingFn) {\n paddingValue = options.paddingFn(viewportSize, itemData, index)[prop];\n } else if (options.padding) {\n paddingValue = options.padding[prop];\n } else {\n const legacyPropName = 'padding' + prop[0].toUpperCase() + prop.slice(1); // @ts-expect-error\n\n if (options[legacyPropName]) {\n // @ts-expect-error\n paddingValue = options[legacyPropName];\n }\n }\n\n return Number(paddingValue) || 0;\n}\n/**\r\n * @param {PhotoSwipeOptions} options\r\n * @param {Point} viewportSize\r\n * @param {SlideData} itemData\r\n * @param {number} index\r\n * @returns {Point}\r\n */\n\nfunction getPanAreaSize(options, viewportSize, itemData, index) {\n return {\n x: viewportSize.x - parsePaddingOption('left', options, viewportSize, itemData, index) - parsePaddingOption('right', options, viewportSize, itemData, index),\n y: viewportSize.y - parsePaddingOption('top', options, viewportSize, itemData, index) - parsePaddingOption('bottom', options, viewportSize, itemData, index)\n };\n}\n\n/** @typedef {import('./slide.js').default} Slide */\n\n/** @typedef {Record<Axis, number>} Point */\n\n/** @typedef {'x' | 'y'} Axis */\n\n/**\r\n * Calculates minimum, maximum and initial (center) bounds of a slide\r\n */\n\nclass PanBounds {\n /**\r\n * @param {Slide} slide\r\n */\n constructor(slide) {\n this.slide = slide;\n this.currZoomLevel = 1;\n this.center =\n /** @type {Point} */\n {\n x: 0,\n y: 0\n };\n this.max =\n /** @type {Point} */\n {\n x: 0,\n y: 0\n };\n this.min =\n /** @type {Point} */\n {\n x: 0,\n y: 0\n };\n }\n /**\r\n * _getItemBounds\r\n *\r\n * @param {number} currZoomLevel\r\n */\n\n\n update(currZoomLevel) {\n this.currZoomLevel = currZoomLevel;\n\n if (!this.slide.width) {\n this.reset();\n } else {\n this._updateAxis('x');\n\n this._updateAxis('y');\n\n this.slide.pswp.dispatch('calcBounds', {\n slide: this.slide\n });\n }\n }\n /**\r\n * _calculateItemBoundsForAxis\r\n *\r\n * @param {Axis} axis\r\n */\n\n\n _updateAxis(axis) {\n const {\n pswp\n } = this.slide;\n const elSize = this.slide[axis === 'x' ? 'width' : 'height'] * this.currZoomLevel;\n const paddingProp = axis === 'x' ? 'left' : 'top';\n const padding = parsePaddingOption(paddingProp, pswp.options, pswp.viewportSize, this.slide.data, this.slide.index);\n const panAreaSize = this.slide.panAreaSize[axis]; // Default position of element.\n // By default, it is center of viewport:\n\n this.center[axis] = Math.round((panAreaSize - elSize) / 2) + padding; // maximum pan position\n\n this.max[axis] = elSize > panAreaSize ? Math.round(panAreaSize - elSize) + padding : this.center[axis]; // minimum pan position\n\n this.min[axis] = elSize > panAreaSize ? padding : this.center[axis];\n } // _getZeroBounds\n\n\n reset() {\n this.center.x = 0;\n this.center.y = 0;\n this.max.x = 0;\n this.max.y = 0;\n this.min.x = 0;\n this.min.y = 0;\n }\n /**\r\n * Correct pan position if it's beyond the bounds\r\n *\r\n * @param {Axis} axis x or y\r\n * @param {number} panOffset\r\n * @returns {number}\r\n */\n\n\n correctPan(axis, panOffset) {\n // checkPanBounds\n return clamp(panOffset, this.max[axis], this.min[axis]);\n }\n\n}\n\nconst MAX_IMAGE_WIDTH = 4000;\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('../slide/slide.js').SlideData} SlideData */\n\n/** @typedef {'fit' | 'fill' | number | ((zoomLevelObject: ZoomLevel) => number)} ZoomLevelOption */\n\n/**\r\n * Calculates zoom levels for specific slide.\r\n * Depends on viewport size and image size.\r\n */\n\nclass ZoomLevel {\n /**\r\n * @param {PhotoSwipeOptions} options PhotoSwipe options\r\n * @param {SlideData} itemData Slide data\r\n * @param {number} index Slide index\r\n * @param {PhotoSwipe} [pswp] PhotoSwipe instance, can be undefined if not initialized yet\r\n */\n constructor(options, itemData, index, pswp) {\n this.pswp = pswp;\n this.options = options;\n this.itemData = itemData;\n this.index = index;\n /** @type { Point | null } */\n\n this.panAreaSize = null;\n /** @type { Point | null } */\n\n this.elementSize = null;\n this.fit = 1;\n this.fill = 1;\n this.vFill = 1;\n this.initial = 1;\n this.secondary = 1;\n this.max = 1;\n this.min = 1;\n }\n /**\r\n * Calculate initial, secondary and maximum zoom level for the specified slide.\r\n *\r\n * It should be called when either image or viewport size changes.\r\n *\r\n * @param {number} maxWidth\r\n * @param {number} maxHeight\r\n * @param {Point} panAreaSize\r\n */\n\n\n update(maxWidth, maxHeight, panAreaSize) {\n /** @type {Point} */\n const elementSize = {\n x: maxWidth,\n y: maxHeight\n };\n this.elementSize = elementSize;\n this.panAreaSize = panAreaSize;\n const hRatio = panAreaSize.x / elementSize.x;\n const vRatio = panAreaSize.y / elementSize.y;\n this.fit = Math.min(1, hRatio < vRatio ? hRatio : vRatio);\n this.fill = Math.min(1, hRatio > vRatio ? hRatio : vRatio); // zoom.vFill defines zoom level of the image\n // when it has 100% of viewport vertical space (height)\n\n this.vFill = Math.min(1, vRatio);\n this.initial = this._getInitial();\n this.secondary = this._getSecondary();\n this.max = Math.max(this.initial, this.secondary, this._getMax());\n this.min = Math.min(this.fit, this.initial, this.secondary);\n\n if (this.pswp) {\n this.pswp.dispatch('zoomLevelsUpdate', {\n zoomLevels: this,\n slideData: this.itemData\n });\n }\n }\n /**\r\n * Parses user-defined zoom option.\r\n *\r\n * @private\r\n * @param {'initial' | 'secondary' | 'max'} optionPrefix Zoom level option prefix (initial, secondary, max)\r\n * @returns { number | undefined }\r\n */\n\n\n _parseZoomLevelOption(optionPrefix) {\n const optionName =\n /** @type {'initialZoomLevel' | 'secondaryZoomLevel' | 'maxZoomLevel'} */\n optionPrefix + 'ZoomLevel';\n const optionValue = this.options[optionName];\n\n if (!optionValue) {\n return;\n }\n\n if (typeof optionValue === 'function') {\n return optionValue(this);\n }\n\n if (optionValue === 'fill') {\n return this.fill;\n }\n\n if (optionValue === 'fit') {\n return this.fit;\n }\n\n return Number(optionValue);\n }\n /**\r\n * Get zoom level to which image will be zoomed after double-tap gesture,\r\n * or when user clicks on zoom icon,\r\n * or mouse-click on image itself.\r\n * If you return 1 image will be zoomed to its original size.\r\n *\r\n * @private\r\n * @return {number}\r\n */\n\n\n _getSecondary() {\n let currZoomLevel = this._parseZoomLevelOption('secondary');\n\n if (currZoomLevel) {\n return currZoomLevel;\n } // 3x of \"fit\" state, but not larger than original\n\n\n currZoomLevel = Math.min(1, this.fit * 3);\n\n if (this.elementSize && currZoomLevel * this.elementSize.x > MAX_IMAGE_WIDTH) {\n currZoomLevel = MAX_IMAGE_WIDTH / this.elementSize.x;\n }\n\n return currZoomLevel;\n }\n /**\r\n * Get initial image zoom level.\r\n *\r\n * @private\r\n * @return {number}\r\n */\n\n\n _getInitial() {\n return this._parseZoomLevelOption('initial') || this.fit;\n }\n /**\r\n * Maximum zoom level when user zooms\r\n * via zoom/pinch gesture,\r\n * via cmd/ctrl-wheel or via trackpad.\r\n *\r\n * @private\r\n * @return {number}\r\n */\n\n\n _getMax() {\n // max zoom level is x4 from \"fit state\",\n // used for zoom gesture and ctrl/trackpad zoom\n return this._parseZoomLevelOption('max') || Math.max(1, this.fit * 4);\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n/**\r\n * Renders and allows to control a single slide\r\n */\n\nclass Slide {\n /**\r\n * @param {SlideData} data\r\n * @param {number} index\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(data, index, pswp) {\n this.data = data;\n this.index = index;\n this.pswp = pswp;\n this.isActive = index === pswp.currIndex;\n this.currentResolution = 0;\n /** @type {Point} */\n\n this.panAreaSize = {\n x: 0,\n y: 0\n };\n /** @type {Point} */\n\n this.pan = {\n x: 0,\n y: 0\n };\n this.isFirstSlide = this.isActive && !pswp.opener.isOpen;\n this.zoomLevels = new ZoomLevel(pswp.options, data, index, pswp);\n this.pswp.dispatch('gettingData', {\n slide: this,\n data: this.data,\n index\n });\n this.content = this.pswp.contentLoader.getContentBySlide(this);\n this.container = createElement('pswp__zoom-wrap', 'div');\n /** @type {HTMLElement | null} */\n\n this.holderElement = null;\n this.currZoomLevel = 1;\n /** @type {number} */\n\n this.width = this.content.width;\n /** @type {number} */\n\n this.height = this.content.height;\n this.heavyAppended = false;\n this.bounds = new PanBounds(this);\n this.prevDisplayedWidth = -1;\n this.prevDisplayedHeight = -1;\n this.pswp.dispatch('slideInit', {\n slide: this\n });\n }\n /**\r\n * If this slide is active/current/visible\r\n *\r\n * @param {boolean} isActive\r\n */\n\n\n setIsActive(isActive) {\n if (isActive && !this.isActive) {\n // slide just became active\n this.activate();\n } else if (!isActive && this.isActive) {\n // slide just became non-active\n this.deactivate();\n }\n }\n /**\r\n * Appends slide content to DOM\r\n *\r\n * @param {HTMLElement} holderElement\r\n */\n\n\n append(holderElement) {\n this.holderElement = holderElement;\n this.container.style.transformOrigin = '0 0'; // Slide appended to DOM\n\n if (!this.data) {\n return;\n }\n\n this.calculateSize();\n this.load();\n this.updateContentSize();\n this.appendHeavy();\n this.holderElement.appendChild(this.container);\n this.zoomAndPanToInitial();\n this.pswp.dispatch('firstZoomPan', {\n slide: this\n });\n this.applyCurrentZoomPan();\n this.pswp.dispatch('afterSetContent', {\n slide: this\n });\n\n if (this.isActive) {\n this.activate();\n }\n }\n\n load() {\n this.content.load(false);\n this.pswp.dispatch('slideLoad', {\n slide: this\n });\n }\n /**\r\n * Append \"heavy\" DOM elements\r\n *\r\n * This may depend on a type of slide,\r\n * but generally these are large images.\r\n */\n\n\n appendHeavy() {\n const {\n pswp\n } = this;\n const appendHeavyNearby = true; // todo\n // Avoid appending heavy elements during animations\n\n if (this.heavyAppended || !pswp.opener.isOpen || pswp.mainScroll.isShifted() || !this.isActive && !appendHeavyNearby) {\n return;\n }\n\n if (this.pswp.dispatch('appendHeavy', {\n slide: this\n }).defaultPrevented) {\n return;\n }\n\n this.heavyAppended = true;\n this.content.append();\n this.pswp.dispatch('appendHeavyContent', {\n slide: this\n });\n }\n /**\r\n * Triggered when this slide is active (selected).\r\n *\r\n * If it's part of opening/closing transition -\r\n * activate() will trigger after the transition is ended.\r\n */\n\n\n activate() {\n this.isActive = true;\n this.appendHeavy();\n this.content.activate();\n this.pswp.dispatch('slideActivate', {\n slide: this\n });\n }\n /**\r\n * Triggered when this slide becomes inactive.\r\n *\r\n * Slide can become inactive only after it was active.\r\n */\n\n\n deactivate() {\n this.isActive = false;\n this.content.deactivate();\n\n if (this.currZoomLevel !== this.zoomLevels.initial) {\n // allow filtering\n this.calculateSize();\n } // reset zoom level\n\n\n this.currentResolution = 0;\n this.zoomAndPanToInitial();\n this.applyCurrentZoomPan();\n this.updateContentSize();\n this.pswp.dispatch('slideDeactivate', {\n slide: this\n });\n }\n /**\r\n * The slide should destroy itself, it will never be used again.\r\n * (unbind all events and destroy internal components)\r\n */\n\n\n destroy() {\n this.content.hasSlide = false;\n this.content.remove();\n this.container.remove();\n this.pswp.dispatch('slideDestroy', {\n slide: this\n });\n }\n\n resize() {\n if (this.currZoomLevel === this.zoomLevels.initial || !this.isActive) {\n // Keep initial zoom level if it was before the resize,\n // as well as when this slide is not active\n // Reset position and scale to original state\n this.calculateSize();\n this.currentResolution = 0;\n this.zoomAndPanToInitial();\n this.applyCurrentZoomPan();\n this.updateContentSize();\n } else {\n // readjust pan position if it's beyond the bounds\n this.calculateSize();\n this.bounds.update(this.currZoomLevel);\n this.panTo(this.pan.x, this.pan.y);\n }\n }\n /**\r\n * Apply size to current slide content,\r\n * based on the current resolution and scale.\r\n *\r\n * @param {boolean} [force] if size should be updated even if dimensions weren't changed\r\n */\n\n\n updateContentSize(force) {\n // Use initial zoom level\n // if resolution is not defined (user didn't zoom yet)\n const scaleMultiplier = this.currentResolution || this.zoomLevels.initial;\n\n if (!scaleMultiplier) {\n return;\n }\n\n const width = Math.round(this.width * scaleMultiplier) || this.pswp.viewportSize.x;\n const height = Math.round(this.height * scaleMultiplier) || this.pswp.viewportSize.y;\n\n if (!this.sizeChanged(width, height) && !force) {\n return;\n }\n\n this.content.setDisplayedSize(width, height);\n }\n /**\r\n * @param {number} width\r\n * @param {number} height\r\n */\n\n\n sizeChanged(width, height) {\n if (width !== this.prevDisplayedWidth || height !== this.prevDisplayedHeight) {\n this.prevDisplayedWidth = width;\n this.prevDisplayedHeight = height;\n return true;\n }\n\n return false;\n }\n /** @returns {HTMLImageElement | HTMLDivElement | null | undefined} */\n\n\n getPlaceholderElement() {\n var _this$content$placeho;\n\n return (_this$content$placeho = this.content.placeholder) === null || _this$content$placeho === void 0 ? void 0 : _this$content$placeho.element;\n }\n /**\r\n * Zoom current slide image to...\r\n *\r\n * @param {number} destZoomLevel Destination zoom level.\r\n * @param {Point} [centerPoint]\r\n * Transform origin center point, or false if viewport center should be used.\r\n * @param {number | false} [transitionDuration] Transition duration, may be set to 0.\r\n * @param {boolean} [ignoreBounds] Minimum and maximum zoom levels will be ignored.\r\n */\n\n\n zoomTo(destZoomLevel, centerPoint, transitionDuration, ignoreBounds) {\n const {\n pswp\n } = this;\n\n if (!this.isZoomable() || pswp.mainScroll.isShifted()) {\n return;\n }\n\n pswp.dispatch('beforeZoomTo', {\n destZoomLevel,\n centerPoint,\n transitionDuration\n }); // stop all pan and zoom transitions\n\n pswp.animations.stopAllPan(); // if (!centerPoint) {\n // centerPoint = pswp.getViewportCenterPoint();\n // }\n\n const prevZoomLevel = this.currZoomLevel;\n\n if (!ignoreBounds) {\n destZoomLevel = clamp(destZoomLevel, this.zoomLevels.min, this.zoomLevels.max);\n } // if (transitionDuration === undefined) {\n // transitionDuration = this.pswp.options.zoomAnimationDuration;\n // }\n\n\n this.setZoomLevel(destZoomLevel);\n this.pan.x = this.calculateZoomToPanOffset('x', centerPoint, prevZoomLevel);\n this.pan.y = this.calculateZoomToPanOffset('y', centerPoint, prevZoomLevel);\n roundPoint(this.pan);\n\n const finishTransition = () => {\n this._setResolution(destZoomLevel);\n\n this.applyCurrentZoomPan();\n };\n\n if (!transitionDuration) {\n finishTransition();\n } else {\n pswp.animations.startTransition({\n isPan: true,\n name: 'zoomTo',\n target: this.container,\n transform: this.getCurrentTransform(),\n onComplete: finishTransition,\n duration: transitionDuration,\n easing: pswp.options.easing\n });\n }\n }\n /**\r\n * @param {Point} [centerPoint]\r\n */\n\n\n toggleZoom(centerPoint) {\n this.zoomTo(this.currZoomLevel === this.zoomLevels.initial ? this.zoomLevels.secondary : this.zoomLevels.initial, centerPoint, this.pswp.options.zoomAnimationDuration);\n }\n /**\r\n * Updates zoom level property and recalculates new pan bounds,\r\n * unlike zoomTo it does not apply transform (use applyCurrentZoomPan)\r\n *\r\n * @param {number} currZoomLevel\r\n */\n\n\n setZoomLevel(currZoomLevel) {\n this.currZoomLevel = currZoomLevel;\n this.bounds.update(this.currZoomLevel);\n }\n /**\r\n * Get pan position after zoom at a given `point`.\r\n *\r\n * Always call setZoomLevel(newZoomLevel) beforehand to recalculate\r\n * pan bounds according to the new zoom level.\r\n *\r\n * @param {'x' | 'y'} axis\r\n * @param {Point} [point]\r\n * point based on which zoom is performed, usually refers to the current mouse position,\r\n * if false - viewport center will be used.\r\n * @param {number} [prevZoomLevel] Zoom level before new zoom was applied.\r\n * @returns {number}\r\n */\n\n\n calculateZoomToPanOffset(axis, point, prevZoomLevel) {\n const totalPanDistance = this.bounds.max[axis] - this.bounds.min[axis];\n\n if (totalPanDistance === 0) {\n return this.bounds.center[axis];\n }\n\n if (!point) {\n point = this.pswp.getViewportCenterPoint();\n }\n\n if (!prevZoomLevel) {\n prevZoomLevel = this.zoomLevels.initial;\n }\n\n const zoomFactor = this.currZoomLevel / prevZoomLevel;\n return this.bounds.correctPan(axis, (this.pan[axis] - point[axis]) * zoomFactor + point[axis]);\n }\n /**\r\n * Apply pan and keep it within bounds.\r\n *\r\n * @param {number} panX\r\n * @param {number} panY\r\n */\n\n\n panTo(panX, panY) {\n this.pan.x = this.bounds.correctPan('x', panX);\n this.pan.y = this.bounds.correctPan('y', panY);\n this.applyCurrentZoomPan();\n }\n /**\r\n * If the slide in the current state can be panned by the user\r\n * @returns {boolean}\r\n */\n\n\n isPannable() {\n return Boolean(this.width) && this.currZoomLevel > this.zoomLevels.fit;\n }\n /**\r\n * If the slide can be zoomed\r\n * @returns {boolean}\r\n */\n\n\n isZoomable() {\n return Boolean(this.width) && this.content.isZoomable();\n }\n /**\r\n * Apply transform and scale based on\r\n * the current pan position (this.pan) and zoom level (this.currZoomLevel)\r\n */\n\n\n applyCurrentZoomPan() {\n this._applyZoomTransform(this.pan.x, this.pan.y, this.currZoomLevel);\n\n if (this === this.pswp.currSlide) {\n this.pswp.dispatch('zoomPanUpdate', {\n slide: this\n });\n }\n }\n\n zoomAndPanToInitial() {\n this.currZoomLevel = this.zoomLevels.initial; // pan according to the zoom level\n\n this.bounds.update(this.currZoomLevel);\n equalizePoints(this.pan, this.bounds.center);\n this.pswp.dispatch('initialZoomPan', {\n slide: this\n });\n }\n /**\r\n * Set translate and scale based on current resolution\r\n *\r\n * @param {number} x\r\n * @param {number} y\r\n * @param {number} zoom\r\n * @private\r\n */\n\n\n _applyZoomTransform(x, y, zoom) {\n zoom /= this.currentResolution || this.zoomLevels.initial;\n setTransform(this.container, x, y, zoom);\n }\n\n calculateSize() {\n const {\n pswp\n } = this;\n equalizePoints(this.panAreaSize, getPanAreaSize(pswp.options, pswp.viewportSize, this.data, this.index));\n this.zoomLevels.update(this.width, this.height, this.panAreaSize);\n pswp.dispatch('calcSlideSize', {\n slide: this\n });\n }\n /** @returns {string} */\n\n\n getCurrentTransform() {\n const scale = this.currZoomLevel / (this.currentResolution || this.zoomLevels.initial);\n return toTransformString(this.pan.x, this.pan.y, scale);\n }\n /**\r\n * Set resolution and re-render the image.\r\n *\r\n * For example, if the real image size is 2000x1500,\r\n * and resolution is 0.5 - it will be rendered as 1000x750.\r\n *\r\n * Image with zoom level 2 and resolution 0.5 is\r\n * the same as image with zoom level 1 and resolution 1.\r\n *\r\n * Used to optimize animations and make\r\n * sure that browser renders image in the highest quality.\r\n * Also used by responsive images to load the correct one.\r\n *\r\n * @param {number} newResolution\r\n */\n\n\n _setResolution(newResolution) {\n if (newResolution === this.currentResolution) {\n return;\n }\n\n this.currentResolution = newResolution;\n this.updateContentSize();\n this.pswp.dispatch('resolutionChanged');\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('./gestures.js').default} Gestures */\n\nconst PAN_END_FRICTION = 0.35;\nconst VERTICAL_DRAG_FRICTION = 0.6; // 1 corresponds to the third of viewport height\n\nconst MIN_RATIO_TO_CLOSE = 0.4; // Minimum speed required to navigate\n// to next or previous slide\n\nconst MIN_NEXT_SLIDE_SPEED = 0.5;\n/**\r\n * @param {number} initialVelocity\r\n * @param {number} decelerationRate\r\n * @returns {number}\r\n */\n\nfunction project(initialVelocity, decelerationRate) {\n return initialVelocity * decelerationRate / (1 - decelerationRate);\n}\n/**\r\n * Handles single pointer dragging\r\n */\n\n\nclass DragHandler {\n /**\r\n * @param {Gestures} gestures\r\n */\n constructor(gestures) {\n this.gestures = gestures;\n this.pswp = gestures.pswp;\n /** @type {Point} */\n\n this.startPan = {\n x: 0,\n y: 0\n };\n }\n\n start() {\n if (this.pswp.currSlide) {\n equalizePoints(this.startPan, this.pswp.currSlide.pan);\n }\n\n this.pswp.animations.stopAll();\n }\n\n change() {\n const {\n p1,\n prevP1,\n dragAxis\n } = this.gestures;\n const {\n currSlide\n } = this.pswp;\n\n if (dragAxis === 'y' && this.pswp.options.closeOnVerticalDrag && currSlide && currSlide.currZoomLevel <= currSlide.zoomLevels.fit && !this.gestures.isMultitouch) {\n // Handle vertical drag to close\n const panY = currSlide.pan.y + (p1.y - prevP1.y);\n\n if (!this.pswp.dispatch('verticalDrag', {\n panY\n }).defaultPrevented) {\n this._setPanWithFriction('y', panY, VERTICAL_DRAG_FRICTION);\n\n const bgOpacity = 1 - Math.abs(this._getVerticalDragRatio(currSlide.pan.y));\n this.pswp.applyBgOpacity(bgOpacity);\n currSlide.applyCurrentZoomPan();\n }\n } else {\n const mainScrollChanged = this._panOrMoveMainScroll('x');\n\n if (!mainScrollChanged) {\n this._panOrMoveMainScroll('y');\n\n if (currSlide) {\n roundPoint(currSlide.pan);\n currSlide.applyCurrentZoomPan();\n }\n }\n }\n }\n\n end() {\n const {\n velocity\n } = this.gestures;\n const {\n mainScroll,\n currSlide\n } = this.pswp;\n let indexDiff = 0;\n this.pswp.animations.stopAll(); // Handle main scroll if it's shifted\n\n if (mainScroll.isShifted()) {\n // Position of the main scroll relative to the viewport\n const mainScrollShiftDiff = mainScroll.x - mainScroll.getCurrSlideX(); // Ratio between 0 and 1:\n // 0 - slide is not visible at all,\n // 0.5 - half of the slide is visible\n // 1 - slide is fully visible\n\n const currentSlideVisibilityRatio = mainScrollShiftDiff / this.pswp.viewportSize.x; // Go next slide.\n //\n // - if velocity and its direction is matched,\n // and we see at least tiny part of the next slide\n //\n // - or if we see less than 50% of the current slide\n // and velocity is close to 0\n //\n\n if (velocity.x < -MIN_NEXT_SLIDE_SPEED && currentSlideVisibilityRatio < 0 || velocity.x < 0.1 && currentSlideVisibilityRatio < -0.5) {\n // Go to next slide\n indexDiff = 1;\n velocity.x = Math.min(velocity.x, 0);\n } else if (velocity.x > MIN_NEXT_SLIDE_SPEED && currentSlideVisibilityRatio > 0 || velocity.x > -0.1 && currentSlideVisibilityRatio > 0.5) {\n // Go to prev slide\n indexDiff = -1;\n velocity.x = Math.max(velocity.x, 0);\n }\n\n mainScroll.moveIndexBy(indexDiff, true, velocity.x);\n } // Restore zoom level\n\n\n if (currSlide && currSlide.currZoomLevel > currSlide.zoomLevels.max || this.gestures.isMultitouch) {\n this.gestures.zoomLevels.correctZoomPan(true);\n } else {\n // we run two animations instead of one,\n // as each axis has own pan boundaries and thus different spring function\n // (correctZoomPan does not have this functionality,\n // it animates all properties with single timing function)\n this._finishPanGestureForAxis('x');\n\n this._finishPanGestureForAxis('y');\n }\n }\n /**\r\n * @private\r\n * @param {'x' | 'y'} axis\r\n */\n\n\n _finishPanGestureForAxis(axis) {\n const {\n velocity\n } = this.gestures;\n const {\n currSlide\n } = this.pswp;\n\n if (!currSlide) {\n return;\n }\n\n const {\n pan,\n bounds\n } = currSlide;\n const panPos = pan[axis];\n const restoreBgOpacity = this.pswp.bgOpacity < 1 && axis === 'y'; // 0.995 means - scroll view loses 0.5% of its velocity per millisecond\n // Increasing this number will reduce travel distance\n\n const decelerationRate = 0.995; // 0.99\n // Pan position if there is no bounds\n\n const projectedPosition = panPos + project(velocity[axis], decelerationRate);\n\n if (restoreBgOpacity) {\n const vDragRatio = this._getVerticalDragRatio(panPos);\n\n const projectedVDragRatio = this._getVerticalDragRatio(projectedPosition); // If we are above and moving upwards,\n // or if we are below and moving downwards\n\n\n if (vDragRatio < 0 && projectedVDragRatio < -MIN_RATIO_TO_CLOSE || vDragRatio > 0 && projectedVDragRatio > MIN_RATIO_TO_CLOSE) {\n this.pswp.close();\n return;\n }\n } // Pan position with corrected bounds\n\n\n const correctedPanPosition = bounds.correctPan(axis, projectedPosition); // Exit if pan position should not be changed\n // or if speed it too low\n\n if (panPos === correctedPanPosition) {\n return;\n } // Overshoot if the final position is out of pan bounds\n\n\n const dampingRatio = correctedPanPosition === projectedPosition ? 1 : 0.82;\n const initialBgOpacity = this.pswp.bgOpacity;\n const totalPanDist = correctedPanPosition - panPos;\n this.pswp.animations.startSpring({\n name: 'panGesture' + axis,\n isPan: true,\n start: panPos,\n end: correctedPanPosition,\n velocity: velocity[axis],\n dampingRatio,\n onUpdate: pos => {\n // Animate opacity of background relative to Y pan position of an image\n if (restoreBgOpacity && this.pswp.bgOpacity < 1) {\n // 0 - start of animation, 1 - end of animation\n const animationProgressRatio = 1 - (correctedPanPosition - pos) / totalPanDist; // We clamp opacity to keep it between 0 and 1.\n // As progress ratio can be larger than 1 due to overshoot,\n // and we do not want to bounce opacity.\n\n this.pswp.applyBgOpacity(clamp(initialBgOpacity + (1 - initialBgOpacity) * animationProgressRatio, 0, 1));\n }\n\n pan[axis] = Math.floor(pos);\n currSlide.applyCurrentZoomPan();\n }\n });\n }\n /**\r\n * Update position of the main scroll,\r\n * or/and update pan position of the current slide.\r\n *\r\n * Should return true if it changes (or can change) main scroll.\r\n *\r\n * @private\r\n * @param {'x' | 'y'} axis\r\n * @returns {boolean}\r\n */\n\n\n _panOrMoveMainScroll(axis) {\n const {\n p1,\n dragAxis,\n prevP1,\n isMultitouch\n } = this.gestures;\n const {\n currSlide,\n mainScroll\n } = this.pswp;\n const delta = p1[axis] - prevP1[axis];\n const newMainScrollX = mainScroll.x + delta;\n\n if (!delta || !currSlide) {\n return false;\n } // Always move main scroll if image can not be panned\n\n\n if (axis === 'x' && !currSlide.isPannable() && !isMultitouch) {\n mainScroll.moveTo(newMainScrollX, true);\n return true; // changed main scroll\n }\n\n const {\n bounds\n } = currSlide;\n const newPan = currSlide.pan[axis] + delta;\n\n if (this.pswp.options.allowPanToNext && dragAxis === 'x' && axis === 'x' && !isMultitouch) {\n const currSlideMainScrollX = mainScroll.getCurrSlideX(); // Position of the main scroll relative to the viewport\n\n const mainScrollShiftDiff = mainScroll.x - currSlideMainScrollX;\n const isLeftToRight = delta > 0;\n const isRightToLeft = !isLeftToRight;\n\n if (newPan > bounds.min[axis] && isLeftToRight) {\n // Panning from left to right, beyond the left edge\n // Wether the image was at minimum pan position (or less)\n // when this drag gesture started.\n // Minimum pan position refers to the left edge of the image.\n const wasAtMinPanPosition = bounds.min[axis] <= this.startPan[axis];\n\n if (wasAtMinPanPosition) {\n mainScroll.moveTo(newMainScrollX, true);\n return true;\n } else {\n this._setPanWithFriction(axis, newPan); //currSlide.pan[axis] = newPan;\n\n }\n } else if (newPan < bounds.max[axis] && isRightToLeft) {\n // Paning from right to left, beyond the right edge\n // Maximum pan position refers to the right edge of the image.\n const wasAtMaxPanPosition = this.startPan[axis] <= bounds.max[axis];\n\n if (wasAtMaxPanPosition) {\n mainScroll.moveTo(newMainScrollX, true);\n return true;\n } else {\n this._setPanWithFriction(axis, newPan); //currSlide.pan[axis] = newPan;\n\n }\n } else {\n // If main scroll is shifted\n if (mainScrollShiftDiff !== 0) {\n // If main scroll is shifted right\n if (mainScrollShiftDiff > 0\n /*&& isRightToLeft*/\n ) {\n mainScroll.moveTo(Math.max(newMainScrollX, currSlideMainScrollX), true);\n return true;\n } else if (mainScrollShiftDiff < 0\n /*&& isLeftToRight*/\n ) {\n // Main scroll is shifted left (Position is less than 0 comparing to the viewport 0)\n mainScroll.moveTo(Math.min(newMainScrollX, currSlideMainScrollX), true);\n return true;\n }\n } else {\n // We are within pan bounds, so just pan\n this._setPanWithFriction(axis, newPan);\n }\n }\n } else {\n if (axis === 'y') {\n // Do not pan vertically if main scroll is shifted o\n if (!mainScroll.isShifted() && bounds.min.y !== bounds.max.y) {\n this._setPanWithFriction(axis, newPan);\n }\n } else {\n this._setPanWithFriction(axis, newPan);\n }\n }\n\n return false;\n } // If we move above - the ratio is negative\n // If we move below the ratio is positive\n\n /**\r\n * Relation between pan Y position and third of viewport height.\r\n *\r\n * When we are at initial position (center bounds) - the ratio is 0,\r\n * if position is shifted upwards - the ratio is negative,\r\n * if position is shifted downwards - the ratio is positive.\r\n *\r\n * @private\r\n * @param {number} panY The current pan Y position.\r\n * @returns {number}\r\n */\n\n\n _getVerticalDragRatio(panY) {\n var _this$pswp$currSlide$, _this$pswp$currSlide;\n\n return (panY - ((_this$pswp$currSlide$ = (_this$pswp$currSlide = this.pswp.currSlide) === null || _this$pswp$currSlide === void 0 ? void 0 : _this$pswp$currSlide.bounds.center.y) !== null && _this$pswp$currSlide$ !== void 0 ? _this$pswp$currSlide$ : 0)) / (this.pswp.viewportSize.y / 3);\n }\n /**\r\n * Set pan position of the current slide.\r\n * Apply friction if the position is beyond the pan bounds,\r\n * or if custom friction is defined.\r\n *\r\n * @private\r\n * @param {'x' | 'y'} axis\r\n * @param {number} potentialPan\r\n * @param {number} [customFriction] (0.1 - 1)\r\n */\n\n\n _setPanWithFriction(axis, potentialPan, customFriction) {\n const {\n currSlide\n } = this.pswp;\n\n if (!currSlide) {\n return;\n }\n\n const {\n pan,\n bounds\n } = currSlide;\n const correctedPan = bounds.correctPan(axis, potentialPan); // If we are out of pan bounds\n\n if (correctedPan !== potentialPan || customFriction) {\n const delta = Math.round(potentialPan - pan[axis]);\n pan[axis] += delta * (customFriction || PAN_END_FRICTION);\n } else {\n pan[axis] = potentialPan;\n }\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {import('./gestures.js').default} Gestures */\n\nconst UPPER_ZOOM_FRICTION = 0.05;\nconst LOWER_ZOOM_FRICTION = 0.15;\n/**\r\n * Get center point between two points\r\n *\r\n * @param {Point} p\r\n * @param {Point} p1\r\n * @param {Point} p2\r\n * @returns {Point}\r\n */\n\nfunction getZoomPointsCenter(p, p1, p2) {\n p.x = (p1.x + p2.x) / 2;\n p.y = (p1.y + p2.y) / 2;\n return p;\n}\n\nclass ZoomHandler {\n /**\r\n * @param {Gestures} gestures\r\n */\n constructor(gestures) {\n this.gestures = gestures;\n /**\r\n * @private\r\n * @type {Point}\r\n */\n\n this._startPan = {\n x: 0,\n y: 0\n };\n /**\r\n * @private\r\n * @type {Point}\r\n */\n\n this._startZoomPoint = {\n x: 0,\n y: 0\n };\n /**\r\n * @private\r\n * @type {Point}\r\n */\n\n this._zoomPoint = {\n x: 0,\n y: 0\n };\n /** @private */\n\n this._wasOverFitZoomLevel = false;\n /** @private */\n\n this._startZoomLevel = 1;\n }\n\n start() {\n const {\n currSlide\n } = this.gestures.pswp;\n\n if (currSlide) {\n this._startZoomLevel = currSlide.currZoomLevel;\n equalizePoints(this._startPan, currSlide.pan);\n }\n\n this.gestures.pswp.animations.stopAllPan();\n this._wasOverFitZoomLevel = false;\n }\n\n change() {\n const {\n p1,\n startP1,\n p2,\n startP2,\n pswp\n } = this.gestures;\n const {\n currSlide\n } = pswp;\n\n if (!currSlide) {\n return;\n }\n\n const minZoomLevel = currSlide.zoomLevels.min;\n const maxZoomLevel = currSlide.zoomLevels.max;\n\n if (!currSlide.isZoomable() || pswp.mainScroll.isShifted()) {\n return;\n }\n\n getZoomPointsCenter(this._startZoomPoint, startP1, startP2);\n getZoomPointsCenter(this._zoomPoint, p1, p2);\n\n let currZoomLevel = 1 / getDistanceBetween(startP1, startP2) * getDistanceBetween(p1, p2) * this._startZoomLevel; // slightly over the zoom.fit\n\n\n if (currZoomLevel > currSlide.zoomLevels.initial + currSlide.zoomLevels.initial / 15) {\n this._wasOverFitZoomLevel = true;\n }\n\n if (currZoomLevel < minZoomLevel) {\n if (pswp.options.pinchToClose && !this._wasOverFitZoomLevel && this._startZoomLevel <= currSlide.zoomLevels.initial) {\n // fade out background if zooming out\n const bgOpacity = 1 - (minZoomLevel - currZoomLevel) / (minZoomLevel / 1.2);\n\n if (!pswp.dispatch('pinchClose', {\n bgOpacity\n }).defaultPrevented) {\n pswp.applyBgOpacity(bgOpacity);\n }\n } else {\n // Apply the friction if zoom level is below the min\n currZoomLevel = minZoomLevel - (minZoomLevel - currZoomLevel) * LOWER_ZOOM_FRICTION;\n }\n } else if (currZoomLevel > maxZoomLevel) {\n // Apply the friction if zoom level is above the max\n currZoomLevel = maxZoomLevel + (currZoomLevel - maxZoomLevel) * UPPER_ZOOM_FRICTION;\n }\n\n currSlide.pan.x = this._calculatePanForZoomLevel('x', currZoomLevel);\n currSlide.pan.y = this._calculatePanForZoomLevel('y', currZoomLevel);\n currSlide.setZoomLevel(currZoomLevel);\n currSlide.applyCurrentZoomPan();\n }\n\n end() {\n const {\n pswp\n } = this.gestures;\n const {\n currSlide\n } = pswp;\n\n if ((!currSlide || currSlide.currZoomLevel < currSlide.zoomLevels.initial) && !this._wasOverFitZoomLevel && pswp.options.pinchToClose) {\n pswp.close();\n } else {\n this.correctZoomPan();\n }\n }\n /**\r\n * @private\r\n * @param {'x' | 'y'} axis\r\n * @param {number} currZoomLevel\r\n * @returns {number}\r\n */\n\n\n _calculatePanForZoomLevel(axis, currZoomLevel) {\n const zoomFactor = currZoomLevel / this._startZoomLevel;\n return this._zoomPoint[axis] - (this._startZoomPoint[axis] - this._startPan[axis]) * zoomFactor;\n }\n /**\r\n * Correct currZoomLevel and pan if they are\r\n * beyond minimum or maximum values.\r\n * With animation.\r\n *\r\n * @param {boolean} [ignoreGesture]\r\n * Wether gesture coordinates should be ignored when calculating destination pan position.\r\n */\n\n\n correctZoomPan(ignoreGesture) {\n const {\n pswp\n } = this.gestures;\n const {\n currSlide\n } = pswp;\n\n if (!(currSlide !== null && currSlide !== void 0 && currSlide.isZoomable())) {\n return;\n }\n\n if (this._zoomPoint.x === 0) {\n ignoreGesture = true;\n }\n\n const prevZoomLevel = currSlide.currZoomLevel;\n /** @type {number} */\n\n let destinationZoomLevel;\n let currZoomLevelNeedsChange = true;\n\n if (prevZoomLevel < currSlide.zoomLevels.initial) {\n destinationZoomLevel = currSlide.zoomLevels.initial; // zoom to min\n } else if (prevZoomLevel > currSlide.zoomLevels.max) {\n destinationZoomLevel = currSlide.zoomLevels.max; // zoom to max\n } else {\n currZoomLevelNeedsChange = false;\n destinationZoomLevel = prevZoomLevel;\n }\n\n const initialBgOpacity = pswp.bgOpacity;\n const restoreBgOpacity = pswp.bgOpacity < 1;\n const initialPan = equalizePoints({\n x: 0,\n y: 0\n }, currSlide.pan);\n let destinationPan = equalizePoints({\n x: 0,\n y: 0\n }, initialPan);\n\n if (ignoreGesture) {\n this._zoomPoint.x = 0;\n this._zoomPoint.y = 0;\n this._startZoomPoint.x = 0;\n this._startZoomPoint.y = 0;\n this._startZoomLevel = prevZoomLevel;\n equalizePoints(this._startPan, initialPan);\n }\n\n if (currZoomLevelNeedsChange) {\n destinationPan = {\n x: this._calculatePanForZoomLevel('x', destinationZoomLevel),\n y: this._calculatePanForZoomLevel('y', destinationZoomLevel)\n };\n } // set zoom level, so pan bounds are updated according to it\n\n\n currSlide.setZoomLevel(destinationZoomLevel);\n destinationPan = {\n x: currSlide.bounds.correctPan('x', destinationPan.x),\n y: currSlide.bounds.correctPan('y', destinationPan.y)\n }; // return zoom level and its bounds to initial\n\n currSlide.setZoomLevel(prevZoomLevel);\n const panNeedsChange = !pointsEqual(destinationPan, initialPan);\n\n if (!panNeedsChange && !currZoomLevelNeedsChange && !restoreBgOpacity) {\n // update resolution after gesture\n currSlide._setResolution(destinationZoomLevel);\n\n currSlide.applyCurrentZoomPan(); // nothing to animate\n\n return;\n }\n\n pswp.animations.stopAllPan();\n pswp.animations.startSpring({\n isPan: true,\n start: 0,\n end: 1000,\n velocity: 0,\n dampingRatio: 1,\n naturalFrequency: 40,\n onUpdate: now => {\n now /= 1000; // 0 - start, 1 - end\n\n if (panNeedsChange || currZoomLevelNeedsChange) {\n if (panNeedsChange) {\n currSlide.pan.x = initialPan.x + (destinationPan.x - initialPan.x) * now;\n currSlide.pan.y = initialPan.y + (destinationPan.y - initialPan.y) * now;\n }\n\n if (currZoomLevelNeedsChange) {\n const newZoomLevel = prevZoomLevel + (destinationZoomLevel - prevZoomLevel) * now;\n currSlide.setZoomLevel(newZoomLevel);\n }\n\n currSlide.applyCurrentZoomPan();\n } // Restore background opacity\n\n\n if (restoreBgOpacity && pswp.bgOpacity < 1) {\n // We clamp opacity to keep it between 0 and 1.\n // As progress ratio can be larger than 1 due to overshoot,\n // and we do not want to bounce opacity.\n pswp.applyBgOpacity(clamp(initialBgOpacity + (1 - initialBgOpacity) * now, 0, 1));\n }\n },\n onComplete: () => {\n // update resolution after transition ends\n currSlide._setResolution(destinationZoomLevel);\n\n currSlide.applyCurrentZoomPan();\n }\n });\n }\n\n}\n\n/**\r\n * @template {string} T\r\n * @template {string} P\r\n * @typedef {import('../types.js').AddPostfix<T, P>} AddPostfix<T, P>\r\n */\n\n/** @typedef {import('./gestures.js').default} Gestures */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n\n/** @typedef {'imageClick' | 'bgClick' | 'tap' | 'doubleTap'} Actions */\n\n/**\r\n * Whether the tap was performed on the main slide\r\n * (rather than controls or caption).\r\n *\r\n * @param {PointerEvent} event\r\n * @returns {boolean}\r\n */\nfunction didTapOnMainContent(event) {\n return !!\n /** @type {HTMLElement} */\n event.target.closest('.pswp__container');\n}\n/**\r\n * Tap, double-tap handler.\r\n */\n\n\nclass TapHandler {\n /**\r\n * @param {Gestures} gestures\r\n */\n constructor(gestures) {\n this.gestures = gestures;\n }\n /**\r\n * @param {Point} point\r\n * @param {PointerEvent} originalEvent\r\n */\n\n\n click(point, originalEvent) {\n const targetClassList =\n /** @type {HTMLElement} */\n originalEvent.target.classList;\n const isImageClick = targetClassList.contains('pswp__img');\n const isBackgroundClick = targetClassList.contains('pswp__item') || targetClassList.contains('pswp__zoom-wrap');\n\n if (isImageClick) {\n this._doClickOrTapAction('imageClick', point, originalEvent);\n } else if (isBackgroundClick) {\n this._doClickOrTapAction('bgClick', point, originalEvent);\n }\n }\n /**\r\n * @param {Point} point\r\n * @param {PointerEvent} originalEvent\r\n */\n\n\n tap(point, originalEvent) {\n if (didTapOnMainContent(originalEvent)) {\n this._doClickOrTapAction('tap', point, originalEvent);\n }\n }\n /**\r\n * @param {Point} point\r\n * @param {PointerEvent} originalEvent\r\n */\n\n\n doubleTap(point, originalEvent) {\n if (didTapOnMainContent(originalEvent)) {\n this._doClickOrTapAction('doubleTap', point, originalEvent);\n }\n }\n /**\r\n * @private\r\n * @param {Actions} actionName\r\n * @param {Point} point\r\n * @param {PointerEvent} originalEvent\r\n */\n\n\n _doClickOrTapAction(actionName, point, originalEvent) {\n var _this$gestures$pswp$e;\n\n const {\n pswp\n } = this.gestures;\n const {\n currSlide\n } = pswp;\n const actionFullName =\n /** @type {AddPostfix<Actions, 'Action'>} */\n actionName + 'Action';\n const optionValue = pswp.options[actionFullName];\n\n if (pswp.dispatch(actionFullName, {\n point,\n originalEvent\n }).defaultPrevented) {\n return;\n }\n\n if (typeof optionValue === 'function') {\n optionValue.call(pswp, point, originalEvent);\n return;\n }\n\n switch (optionValue) {\n case 'close':\n case 'next':\n pswp[optionValue]();\n break;\n\n case 'zoom':\n currSlide === null || currSlide === void 0 || currSlide.toggleZoom(point);\n break;\n\n case 'zoom-or-close':\n // by default click zooms current image,\n // if it can not be zoomed - gallery will be closed\n if (currSlide !== null && currSlide !== void 0 && currSlide.isZoomable() && currSlide.zoomLevels.secondary !== currSlide.zoomLevels.initial) {\n currSlide.toggleZoom(point);\n } else if (pswp.options.clickToCloseNonZoomable) {\n pswp.close();\n }\n\n break;\n\n case 'toggle-controls':\n (_this$gestures$pswp$e = this.gestures.pswp.element) === null || _this$gestures$pswp$e === void 0 || _this$gestures$pswp$e.classList.toggle('pswp--ui-visible'); // if (_controlsVisible) {\n // _ui.hideControls();\n // } else {\n // _ui.showControls();\n // }\n\n break;\n }\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('../photoswipe.js').Point} Point */\n// How far should user should drag\n// until we can determine that the gesture is swipe and its direction\n\nconst AXIS_SWIPE_HYSTERISIS = 10; //const PAN_END_FRICTION = 0.35;\n\nconst DOUBLE_TAP_DELAY = 300; // ms\n\nconst MIN_TAP_DISTANCE = 25; // px\n\n/**\r\n * Gestures class bind touch, pointer or mouse events\r\n * and emits drag to drag-handler and zoom events zoom-handler.\r\n *\r\n * Drag and zoom events are emited in requestAnimationFrame,\r\n * and only when one of pointers was actually changed.\r\n */\n\nclass Gestures {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp;\n /** @type {'x' | 'y' | null} */\n\n this.dragAxis = null; // point objects are defined once and reused\n // PhotoSwipe keeps track only of two pointers, others are ignored\n\n /** @type {Point} */\n\n this.p1 = {\n x: 0,\n y: 0\n }; // the first pressed pointer\n\n /** @type {Point} */\n\n this.p2 = {\n x: 0,\n y: 0\n }; // the second pressed pointer\n\n /** @type {Point} */\n\n this.prevP1 = {\n x: 0,\n y: 0\n };\n /** @type {Point} */\n\n this.prevP2 = {\n x: 0,\n y: 0\n };\n /** @type {Point} */\n\n this.startP1 = {\n x: 0,\n y: 0\n };\n /** @type {Point} */\n\n this.startP2 = {\n x: 0,\n y: 0\n };\n /** @type {Point} */\n\n this.velocity = {\n x: 0,\n y: 0\n };\n /** @type {Point}\r\n * @private\r\n */\n\n this._lastStartP1 = {\n x: 0,\n y: 0\n };\n /** @type {Point}\r\n * @private\r\n */\n\n this._intervalP1 = {\n x: 0,\n y: 0\n };\n /** @private */\n\n this._numActivePoints = 0;\n /** @type {Point[]}\r\n * @private\r\n */\n\n this._ongoingPointers = [];\n /** @private */\n\n this._touchEventEnabled = 'ontouchstart' in window;\n /** @private */\n\n this._pointerEventEnabled = !!window.PointerEvent;\n this.supportsTouch = this._touchEventEnabled || this._pointerEventEnabled && navigator.maxTouchPoints > 1;\n /** @private */\n\n this._numActivePoints = 0;\n /** @private */\n\n this._intervalTime = 0;\n /** @private */\n\n this._velocityCalculated = false;\n this.isMultitouch = false;\n this.isDragging = false;\n this.isZooming = false;\n /** @type {number | null} */\n\n this.raf = null;\n /** @type {NodeJS.Timeout | null}\r\n * @private\r\n */\n\n this._tapTimer = null;\n\n if (!this.supportsTouch) {\n // disable pan to next slide for non-touch devices\n pswp.options.allowPanToNext = false;\n }\n\n this.drag = new DragHandler(this);\n this.zoomLevels = new ZoomHandler(this);\n this.tapHandler = new TapHandler(this);\n pswp.on('bindEvents', () => {\n pswp.events.add(pswp.scrollWrap, 'click',\n /** @type EventListener */\n this._onClick.bind(this));\n\n if (this._pointerEventEnabled) {\n this._bindEvents('pointer', 'down', 'up', 'cancel');\n } else if (this._touchEventEnabled) {\n this._bindEvents('touch', 'start', 'end', 'cancel'); // In previous versions we also bound mouse event here,\n // in case device supports both touch and mouse events,\n // but newer versions of browsers now support PointerEvent.\n // on iOS10 if you bind touchmove/end after touchstart,\n // and you don't preventDefault touchstart (which PhotoSwipe does),\n // preventDefault will have no effect on touchmove and touchend.\n // Unless you bind it previously.\n\n\n if (pswp.scrollWrap) {\n pswp.scrollWrap.ontouchmove = () => {};\n\n pswp.scrollWrap.ontouchend = () => {};\n }\n } else {\n this._bindEvents('mouse', 'down', 'up');\n }\n });\n }\n /**\r\n * @private\r\n * @param {'mouse' | 'touch' | 'pointer'} pref\r\n * @param {'down' | 'start'} down\r\n * @param {'up' | 'end'} up\r\n * @param {'cancel'} [cancel]\r\n */\n\n\n _bindEvents(pref, down, up, cancel) {\n const {\n pswp\n } = this;\n const {\n events\n } = pswp;\n const cancelEvent = cancel ? pref + cancel : '';\n events.add(pswp.scrollWrap, pref + down,\n /** @type EventListener */\n this.onPointerDown.bind(this));\n events.add(window, pref + 'move',\n /** @type EventListener */\n this.onPointerMove.bind(this));\n events.add(window, pref + up,\n /** @type EventListener */\n this.onPointerUp.bind(this));\n\n if (cancelEvent) {\n events.add(pswp.scrollWrap, cancelEvent,\n /** @type EventListener */\n this.onPointerUp.bind(this));\n }\n }\n /**\r\n * @param {PointerEvent} e\r\n */\n\n\n onPointerDown(e) {\n // We do not call preventDefault for touch events\n // to allow browser to show native dialog on longpress\n // (the one that allows to save image or open it in new tab).\n //\n // Desktop Safari allows to drag images when preventDefault isn't called on mousedown,\n // even though preventDefault IS called on mousemove. That's why we preventDefault mousedown.\n const isMousePointer = e.type === 'mousedown' || e.pointerType === 'mouse'; // Allow dragging only via left mouse button.\n // http://www.quirksmode.org/js/events_properties.html\n // https://developer.mozilla.org/en-US/docs/Web/API/event.button\n\n if (isMousePointer && e.button > 0) {\n return;\n }\n\n const {\n pswp\n } = this; // if PhotoSwipe is opening or closing\n\n if (!pswp.opener.isOpen) {\n e.preventDefault();\n return;\n }\n\n if (pswp.dispatch('pointerDown', {\n originalEvent: e\n }).defaultPrevented) {\n return;\n }\n\n if (isMousePointer) {\n pswp.mouseDetected(); // preventDefault mouse event to prevent\n // browser image drag feature\n\n this._preventPointerEventBehaviour(e, 'down');\n }\n\n pswp.animations.stopAll();\n\n this._updatePoints(e, 'down');\n\n if (this._numActivePoints === 1) {\n this.dragAxis = null; // we need to store initial point to determine the main axis,\n // drag is activated only after the axis is determined\n\n equalizePoints(this.startP1, this.p1);\n }\n\n if (this._numActivePoints > 1) {\n // Tap or double tap should not trigger if more than one pointer\n this._clearTapTimer();\n\n this.isMultitouch = true;\n } else {\n this.isMultitouch = false;\n }\n }\n /**\r\n * @param {PointerEvent} e\r\n */\n\n\n onPointerMove(e) {\n this._preventPointerEventBehaviour(e, 'move');\n\n if (!this._numActivePoints) {\n return;\n }\n\n this._updatePoints(e, 'move');\n\n if (this.pswp.dispatch('pointerMove', {\n originalEvent: e\n }).defaultPrevented) {\n return;\n }\n\n if (this._numActivePoints === 1 && !this.isDragging) {\n if (!this.dragAxis) {\n this._calculateDragDirection();\n } // Drag axis was detected, emit drag.start\n\n\n if (this.dragAxis && !this.isDragging) {\n if (this.isZooming) {\n this.isZooming = false;\n this.zoomLevels.end();\n }\n\n this.isDragging = true;\n\n this._clearTapTimer(); // Tap can not trigger after drag\n // Adjust starting point\n\n\n this._updateStartPoints();\n\n this._intervalTime = Date.now(); //this._startTime = this._intervalTime;\n\n this._velocityCalculated = false;\n equalizePoints(this._intervalP1, this.p1);\n this.velocity.x = 0;\n this.velocity.y = 0;\n this.drag.start();\n\n this._rafStopLoop();\n\n this._rafRenderLoop();\n }\n } else if (this._numActivePoints > 1 && !this.isZooming) {\n this._finishDrag();\n\n this.isZooming = true; // Adjust starting points\n\n this._updateStartPoints();\n\n this.zoomLevels.start();\n\n this._rafStopLoop();\n\n this._rafRenderLoop();\n }\n }\n /**\r\n * @private\r\n */\n\n\n _finishDrag() {\n if (this.isDragging) {\n this.isDragging = false; // Try to calculate velocity,\n // if it wasn't calculated yet in drag.change\n\n if (!this._velocityCalculated) {\n this._updateVelocity(true);\n }\n\n this.drag.end();\n this.dragAxis = null;\n }\n }\n /**\r\n * @param {PointerEvent} e\r\n */\n\n\n onPointerUp(e) {\n if (!this._numActivePoints) {\n return;\n }\n\n this._updatePoints(e, 'up');\n\n if (this.pswp.dispatch('pointerUp', {\n originalEvent: e\n }).defaultPrevented) {\n return;\n }\n\n if (this._numActivePoints === 0) {\n this._rafStopLoop();\n\n if (this.isDragging) {\n this._finishDrag();\n } else if (!this.isZooming && !this.isMultitouch) {\n //this.zoomLevels.correctZoomPan();\n this._finishTap(e);\n }\n }\n\n if (this._numActivePoints < 2 && this.isZooming) {\n this.isZooming = false;\n this.zoomLevels.end();\n\n if (this._numActivePoints === 1) {\n // Since we have 1 point left, we need to reinitiate drag\n this.dragAxis = null;\n\n this._updateStartPoints();\n }\n }\n }\n /**\r\n * @private\r\n */\n\n\n _rafRenderLoop() {\n if (this.isDragging || this.isZooming) {\n this._updateVelocity();\n\n if (this.isDragging) {\n // make sure that pointer moved since the last update\n if (!pointsEqual(this.p1, this.prevP1)) {\n this.drag.change();\n }\n } else\n /* if (this.isZooming) */\n {\n if (!pointsEqual(this.p1, this.prevP1) || !pointsEqual(this.p2, this.prevP2)) {\n this.zoomLevels.change();\n }\n }\n\n this._updatePrevPoints();\n\n this.raf = requestAnimationFrame(this._rafRenderLoop.bind(this));\n }\n }\n /**\r\n * Update velocity at 50ms interval\r\n *\r\n * @private\r\n * @param {boolean} [force]\r\n */\n\n\n _updateVelocity(force) {\n const time = Date.now();\n const duration = time - this._intervalTime;\n\n if (duration < 50 && !force) {\n return;\n }\n\n this.velocity.x = this._getVelocity('x', duration);\n this.velocity.y = this._getVelocity('y', duration);\n this._intervalTime = time;\n equalizePoints(this._intervalP1, this.p1);\n this._velocityCalculated = true;\n }\n /**\r\n * @private\r\n * @param {PointerEvent} e\r\n */\n\n\n _finishTap(e) {\n const {\n mainScroll\n } = this.pswp; // Do not trigger tap events if main scroll is shifted\n\n if (mainScroll.isShifted()) {\n // restore main scroll position\n // (usually happens if stopped in the middle of animation)\n mainScroll.moveIndexBy(0, true);\n return;\n } // Do not trigger tap for touchcancel or pointercancel\n\n\n if (e.type.indexOf('cancel') > 0) {\n return;\n } // Trigger click instead of tap for mouse events\n\n\n if (e.type === 'mouseup' || e.pointerType === 'mouse') {\n this.tapHandler.click(this.startP1, e);\n return;\n } // Disable delay if there is no doubleTapAction\n\n\n const tapDelay = this.pswp.options.doubleTapAction ? DOUBLE_TAP_DELAY : 0; // If tapTimer is defined - we tapped recently,\n // check if the current tap is close to the previous one,\n // if yes - trigger double tap\n\n if (this._tapTimer) {\n this._clearTapTimer(); // Check if two taps were more or less on the same place\n\n\n if (getDistanceBetween(this._lastStartP1, this.startP1) < MIN_TAP_DISTANCE) {\n this.tapHandler.doubleTap(this.startP1, e);\n }\n } else {\n equalizePoints(this._lastStartP1, this.startP1);\n this._tapTimer = setTimeout(() => {\n this.tapHandler.tap(this.startP1, e);\n\n this._clearTapTimer();\n }, tapDelay);\n }\n }\n /**\r\n * @private\r\n */\n\n\n _clearTapTimer() {\n if (this._tapTimer) {\n clearTimeout(this._tapTimer);\n this._tapTimer = null;\n }\n }\n /**\r\n * Get velocity for axis\r\n *\r\n * @private\r\n * @param {'x' | 'y'} axis\r\n * @param {number} duration\r\n * @returns {number}\r\n */\n\n\n _getVelocity(axis, duration) {\n // displacement is like distance, but can be negative.\n const displacement = this.p1[axis] - this._intervalP1[axis];\n\n if (Math.abs(displacement) > 1 && duration > 5) {\n return displacement / duration;\n }\n\n return 0;\n }\n /**\r\n * @private\r\n */\n\n\n _rafStopLoop() {\n if (this.raf) {\n cancelAnimationFrame(this.raf);\n this.raf = null;\n }\n }\n /**\r\n * @private\r\n * @param {PointerEvent} e\r\n * @param {'up' | 'down' | 'move'} pointerType Normalized pointer type\r\n */\n\n\n _preventPointerEventBehaviour(e, pointerType) {\n const preventPointerEvent = this.pswp.applyFilters('preventPointerEvent', true, e, pointerType);\n\n if (preventPointerEvent) {\n e.preventDefault();\n }\n }\n /**\r\n * Parses and normalizes points from the touch, mouse or pointer event.\r\n * Updates p1 and p2.\r\n *\r\n * @private\r\n * @param {PointerEvent | TouchEvent} e\r\n * @param {'up' | 'down' | 'move'} pointerType Normalized pointer type\r\n */\n\n\n _updatePoints(e, pointerType) {\n if (this._pointerEventEnabled) {\n const pointerEvent =\n /** @type {PointerEvent} */\n e; // Try to find the current pointer in ongoing pointers by its ID\n\n const pointerIndex = this._ongoingPointers.findIndex(ongoingPointer => {\n return ongoingPointer.id === pointerEvent.pointerId;\n });\n\n if (pointerType === 'up' && pointerIndex > -1) {\n // release the pointer - remove it from ongoing\n this._ongoingPointers.splice(pointerIndex, 1);\n } else if (pointerType === 'down' && pointerIndex === -1) {\n // add new pointer\n this._ongoingPointers.push(this._convertEventPosToPoint(pointerEvent, {\n x: 0,\n y: 0\n }));\n } else if (pointerIndex > -1) {\n // update existing pointer\n this._convertEventPosToPoint(pointerEvent, this._ongoingPointers[pointerIndex]);\n }\n\n this._numActivePoints = this._ongoingPointers.length; // update points that PhotoSwipe uses\n // to calculate position and scale\n\n if (this._numActivePoints > 0) {\n equalizePoints(this.p1, this._ongoingPointers[0]);\n }\n\n if (this._numActivePoints > 1) {\n equalizePoints(this.p2, this._ongoingPointers[1]);\n }\n } else {\n const touchEvent =\n /** @type {TouchEvent} */\n e;\n this._numActivePoints = 0;\n\n if (touchEvent.type.indexOf('touch') > -1) {\n // Touch Event\n // https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent\n if (touchEvent.touches && touchEvent.touches.length > 0) {\n this._convertEventPosToPoint(touchEvent.touches[0], this.p1);\n\n this._numActivePoints++;\n\n if (touchEvent.touches.length > 1) {\n this._convertEventPosToPoint(touchEvent.touches[1], this.p2);\n\n this._numActivePoints++;\n }\n }\n } else {\n // Mouse Event\n this._convertEventPosToPoint(\n /** @type {PointerEvent} */\n e, this.p1);\n\n if (pointerType === 'up') {\n // clear all points on mouseup\n this._numActivePoints = 0;\n } else {\n this._numActivePoints++;\n }\n }\n }\n }\n /** update points that were used during previous rAF tick\r\n * @private\r\n */\n\n\n _updatePrevPoints() {\n equalizePoints(this.prevP1, this.p1);\n equalizePoints(this.prevP2, this.p2);\n }\n /** update points at the start of gesture\r\n * @private\r\n */\n\n\n _updateStartPoints() {\n equalizePoints(this.startP1, this.p1);\n equalizePoints(this.startP2, this.p2);\n\n this._updatePrevPoints();\n }\n /** @private */\n\n\n _calculateDragDirection() {\n if (this.pswp.mainScroll.isShifted()) {\n // if main scroll position is shifted – direction is always horizontal\n this.dragAxis = 'x';\n } else {\n // calculate delta of the last touchmove tick\n const diff = Math.abs(this.p1.x - this.startP1.x) - Math.abs(this.p1.y - this.startP1.y);\n\n if (diff !== 0) {\n // check if pointer was shifted horizontally or vertically\n const axisToCheck = diff > 0 ? 'x' : 'y';\n\n if (Math.abs(this.p1[axisToCheck] - this.startP1[axisToCheck]) >= AXIS_SWIPE_HYSTERISIS) {\n this.dragAxis = axisToCheck;\n }\n }\n }\n }\n /**\r\n * Converts touch, pointer or mouse event\r\n * to PhotoSwipe point.\r\n *\r\n * @private\r\n * @param {Touch | PointerEvent} e\r\n * @param {Point} p\r\n * @returns {Point}\r\n */\n\n\n _convertEventPosToPoint(e, p) {\n p.x = e.pageX - this.pswp.offset.x;\n p.y = e.pageY - this.pswp.offset.y;\n\n if ('pointerId' in e) {\n p.id = e.pointerId;\n } else if (e.identifier !== undefined) {\n p.id = e.identifier;\n }\n\n return p;\n }\n /**\r\n * @private\r\n * @param {PointerEvent} e\r\n */\n\n\n _onClick(e) {\n // Do not allow click event to pass through after drag\n if (this.pswp.mainScroll.isShifted()) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n}\n\n/** @typedef {import('./photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('./slide/slide.js').default} Slide */\n\n/** @typedef {{ el: HTMLDivElement; slide?: Slide }} ItemHolder */\n\nconst MAIN_SCROLL_END_FRICTION = 0.35; // const MIN_SWIPE_TRANSITION_DURATION = 250;\n// const MAX_SWIPE_TRABSITION_DURATION = 500;\n// const DEFAULT_SWIPE_TRANSITION_DURATION = 333;\n\n/**\r\n * Handles movement of the main scrolling container\r\n * (for example, it repositions when user swipes left or right).\r\n *\r\n * Also stores its state.\r\n */\n\nclass MainScroll {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp;\n this.x = 0;\n this.slideWidth = 0;\n /** @private */\n\n this._currPositionIndex = 0;\n /** @private */\n\n this._prevPositionIndex = 0;\n /** @private */\n\n this._containerShiftIndex = -1;\n /** @type {ItemHolder[]} */\n\n this.itemHolders = [];\n }\n /**\r\n * Position the scroller and slide containers\r\n * according to viewport size.\r\n *\r\n * @param {boolean} [resizeSlides] Whether slides content should resized\r\n */\n\n\n resize(resizeSlides) {\n const {\n pswp\n } = this;\n const newSlideWidth = Math.round(pswp.viewportSize.x + pswp.viewportSize.x * pswp.options.spacing); // Mobile browsers might trigger a resize event during a gesture.\n // (due to toolbar appearing or hiding).\n // Avoid re-adjusting main scroll position if width wasn't changed\n\n const slideWidthChanged = newSlideWidth !== this.slideWidth;\n\n if (slideWidthChanged) {\n this.slideWidth = newSlideWidth;\n this.moveTo(this.getCurrSlideX());\n }\n\n this.itemHolders.forEach((itemHolder, index) => {\n if (slideWidthChanged) {\n setTransform(itemHolder.el, (index + this._containerShiftIndex) * this.slideWidth);\n }\n\n if (resizeSlides && itemHolder.slide) {\n itemHolder.slide.resize();\n }\n });\n }\n /**\r\n * Reset X position of the main scroller to zero\r\n */\n\n\n resetPosition() {\n // Position on the main scroller (offset)\n // it is independent from slide index\n this._currPositionIndex = 0;\n this._prevPositionIndex = 0; // This will force recalculation of size on next resize()\n\n this.slideWidth = 0; // _containerShiftIndex*viewportSize will give you amount of transform of the current slide\n\n this._containerShiftIndex = -1;\n }\n /**\r\n * Create and append array of three items\r\n * that hold data about slides in DOM\r\n */\n\n\n appendHolders() {\n this.itemHolders = []; // append our three slide holders -\n // previous, current, and next\n\n for (let i = 0; i < 3; i++) {\n const el = createElement('pswp__item', 'div', this.pswp.container);\n el.setAttribute('role', 'group');\n el.setAttribute('aria-roledescription', 'slide');\n el.setAttribute('aria-hidden', 'true'); // hide nearby item holders until initial zoom animation finishes (to avoid extra Paints)\n\n el.style.display = i === 1 ? 'block' : 'none';\n this.itemHolders.push({\n el //index: -1\n\n });\n }\n }\n /**\r\n * Whether the main scroll can be horizontally swiped to the next or previous slide.\r\n * @returns {boolean}\r\n */\n\n\n canBeSwiped() {\n return this.pswp.getNumItems() > 1;\n }\n /**\r\n * Move main scroll by X amount of slides.\r\n * For example:\r\n * `-1` will move to the previous slide,\r\n * `0` will reset the scroll position of the current slide,\r\n * `3` will move three slides forward\r\n *\r\n * If loop option is enabled - index will be automatically looped too,\r\n * (for example `-1` will move to the last slide of the gallery).\r\n *\r\n * @param {number} diff\r\n * @param {boolean} [animate]\r\n * @param {number} [velocityX]\r\n * @returns {boolean} whether index was changed or not\r\n */\n\n\n moveIndexBy(diff, animate, velocityX) {\n const {\n pswp\n } = this;\n let newIndex = pswp.potentialIndex + diff;\n const numSlides = pswp.getNumItems();\n\n if (pswp.canLoop()) {\n newIndex = pswp.getLoopedIndex(newIndex);\n const distance = (diff + numSlides) % numSlides;\n\n if (distance <= numSlides / 2) {\n // go forward\n diff = distance;\n } else {\n // go backwards\n diff = distance - numSlides;\n }\n } else {\n if (newIndex < 0) {\n newIndex = 0;\n } else if (newIndex >= numSlides) {\n newIndex = numSlides - 1;\n }\n\n diff = newIndex - pswp.potentialIndex;\n }\n\n pswp.potentialIndex = newIndex;\n this._currPositionIndex -= diff;\n pswp.animations.stopMainScroll();\n const destinationX = this.getCurrSlideX();\n\n if (!animate) {\n this.moveTo(destinationX);\n this.updateCurrItem();\n } else {\n pswp.animations.startSpring({\n isMainScroll: true,\n start: this.x,\n end: destinationX,\n velocity: velocityX || 0,\n naturalFrequency: 30,\n dampingRatio: 1,\n //0.7,\n onUpdate: x => {\n this.moveTo(x);\n },\n onComplete: () => {\n this.updateCurrItem();\n pswp.appendHeavy();\n }\n });\n let currDiff = pswp.potentialIndex - pswp.currIndex;\n\n if (pswp.canLoop()) {\n const currDistance = (currDiff + numSlides) % numSlides;\n\n if (currDistance <= numSlides / 2) {\n // go forward\n currDiff = currDistance;\n } else {\n // go backwards\n currDiff = currDistance - numSlides;\n }\n } // Force-append new slides during transition\n // if difference between slides is more than 1\n\n\n if (Math.abs(currDiff) > 1) {\n this.updateCurrItem();\n }\n }\n\n return Boolean(diff);\n }\n /**\r\n * X position of the main scroll for the current slide\r\n * (ignores position during dragging)\r\n * @returns {number}\r\n */\n\n\n getCurrSlideX() {\n return this.slideWidth * this._currPositionIndex;\n }\n /**\r\n * Whether scroll position is shifted.\r\n * For example, it will return true if the scroll is being dragged or animated.\r\n * @returns {boolean}\r\n */\n\n\n isShifted() {\n return this.x !== this.getCurrSlideX();\n }\n /**\r\n * Update slides X positions and set their content\r\n */\n\n\n updateCurrItem() {\n var _this$itemHolders$;\n\n const {\n pswp\n } = this;\n const positionDifference = this._prevPositionIndex - this._currPositionIndex;\n\n if (!positionDifference) {\n return;\n }\n\n this._prevPositionIndex = this._currPositionIndex;\n pswp.currIndex = pswp.potentialIndex;\n let diffAbs = Math.abs(positionDifference);\n /** @type {ItemHolder | undefined} */\n\n let tempHolder;\n\n if (diffAbs >= 3) {\n this._containerShiftIndex += positionDifference + (positionDifference > 0 ? -3 : 3);\n diffAbs = 3; // If slides are changed by 3 screens or more - clean up previous slides\n\n this.itemHolders.forEach(itemHolder => {\n var _itemHolder$slide;\n\n (_itemHolder$slide = itemHolder.slide) === null || _itemHolder$slide === void 0 || _itemHolder$slide.destroy();\n itemHolder.slide = undefined;\n });\n }\n\n for (let i = 0; i < diffAbs; i++) {\n if (positionDifference > 0) {\n tempHolder = this.itemHolders.shift();\n\n if (tempHolder) {\n this.itemHolders[2] = tempHolder; // move first to last\n\n this._containerShiftIndex++;\n setTransform(tempHolder.el, (this._containerShiftIndex + 2) * this.slideWidth);\n pswp.setContent(tempHolder, pswp.currIndex - diffAbs + i + 2);\n }\n } else {\n tempHolder = this.itemHolders.pop();\n\n if (tempHolder) {\n this.itemHolders.unshift(tempHolder); // move last to first\n\n this._containerShiftIndex--;\n setTransform(tempHolder.el, this._containerShiftIndex * this.slideWidth);\n pswp.setContent(tempHolder, pswp.currIndex + diffAbs - i - 2);\n }\n }\n } // Reset transfrom every 50ish navigations in one direction.\n //\n // Otherwise transform will keep growing indefinitely,\n // which might cause issues as browsers have a maximum transform limit.\n // I wasn't able to reach it, but just to be safe.\n // This should not cause noticable lag.\n\n\n if (Math.abs(this._containerShiftIndex) > 50 && !this.isShifted()) {\n this.resetPosition();\n this.resize();\n } // Pan transition might be running (and consntantly updating pan position)\n\n\n pswp.animations.stopAllPan();\n this.itemHolders.forEach((itemHolder, i) => {\n if (itemHolder.slide) {\n // Slide in the 2nd holder is always active\n itemHolder.slide.setIsActive(i === 1);\n }\n });\n pswp.currSlide = (_this$itemHolders$ = this.itemHolders[1]) === null || _this$itemHolders$ === void 0 ? void 0 : _this$itemHolders$.slide;\n pswp.contentLoader.updateLazy(positionDifference);\n\n if (pswp.currSlide) {\n pswp.currSlide.applyCurrentZoomPan();\n }\n\n pswp.dispatch('change');\n }\n /**\r\n * Move the X position of the main scroll container\r\n *\r\n * @param {number} x\r\n * @param {boolean} [dragging]\r\n */\n\n\n moveTo(x, dragging) {\n if (!this.pswp.canLoop() && dragging) {\n // Apply friction\n let newSlideIndexOffset = (this.slideWidth * this._currPositionIndex - x) / this.slideWidth;\n newSlideIndexOffset += this.pswp.currIndex;\n const delta = Math.round(x - this.x);\n\n if (newSlideIndexOffset < 0 && delta > 0 || newSlideIndexOffset >= this.pswp.getNumItems() - 1 && delta < 0) {\n x = this.x + delta * MAIN_SCROLL_END_FRICTION;\n }\n }\n\n this.x = x;\n\n if (this.pswp.container) {\n setTransform(this.pswp.container, x);\n }\n\n this.pswp.dispatch('moveMainScroll', {\n x,\n dragging: dragging !== null && dragging !== void 0 ? dragging : false\n });\n }\n\n}\n\n/** @typedef {import('./photoswipe.js').default} PhotoSwipe */\n\n/**\r\n * @template T\r\n * @typedef {import('./types.js').Methods<T>} Methods<T>\r\n */\n\nconst KeyboardKeyCodesMap = {\n Escape: 27,\n z: 90,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n Tab: 9\n};\n/**\r\n * @template {keyof KeyboardKeyCodesMap} T\r\n * @param {T} key\r\n * @param {boolean} isKeySupported\r\n * @returns {T | number | undefined}\r\n */\n\nconst getKeyboardEventKey = (key, isKeySupported) => {\n return isKeySupported ? key : KeyboardKeyCodesMap[key];\n};\n/**\r\n * - Manages keyboard shortcuts.\r\n * - Helps trap focus within photoswipe.\r\n */\n\n\nclass Keyboard {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp;\n /** @private */\n\n this._wasFocused = false;\n pswp.on('bindEvents', () => {\n if (pswp.options.trapFocus) {\n // Dialog was likely opened by keyboard if initial point is not defined\n if (!pswp.options.initialPointerPos) {\n // focus causes layout,\n // which causes lag during the animation,\n // that's why we delay it until the opener transition ends\n this._focusRoot();\n }\n\n pswp.events.add(document, 'focusin',\n /** @type EventListener */\n this._onFocusIn.bind(this));\n }\n\n pswp.events.add(document, 'keydown',\n /** @type EventListener */\n this._onKeyDown.bind(this));\n });\n const lastActiveElement =\n /** @type {HTMLElement} */\n document.activeElement;\n pswp.on('destroy', () => {\n if (pswp.options.returnFocus && lastActiveElement && this._wasFocused) {\n lastActiveElement.focus();\n }\n });\n }\n /** @private */\n\n\n _focusRoot() {\n if (!this._wasFocused && this.pswp.element) {\n this.pswp.element.focus();\n this._wasFocused = true;\n }\n }\n /**\r\n * @private\r\n * @param {KeyboardEvent} e\r\n */\n\n\n _onKeyDown(e) {\n const {\n pswp\n } = this;\n\n if (pswp.dispatch('keydown', {\n originalEvent: e\n }).defaultPrevented) {\n return;\n }\n\n if (specialKeyUsed(e)) {\n // don't do anything if special key pressed\n // to prevent from overriding default browser actions\n // for example, in Chrome on Mac cmd+arrow-left returns to previous page\n return;\n }\n /** @type {Methods<PhotoSwipe> | undefined} */\n\n\n let keydownAction;\n /** @type {'x' | 'y' | undefined} */\n\n let axis;\n let isForward = false;\n const isKeySupported = ('key' in e);\n\n switch (isKeySupported ? e.key : e.keyCode) {\n case getKeyboardEventKey('Escape', isKeySupported):\n if (pswp.options.escKey) {\n keydownAction = 'close';\n }\n\n break;\n\n case getKeyboardEventKey('z', isKeySupported):\n keydownAction = 'toggleZoom';\n break;\n\n case getKeyboardEventKey('ArrowLeft', isKeySupported):\n axis = 'x';\n break;\n\n case getKeyboardEventKey('ArrowUp', isKeySupported):\n axis = 'y';\n break;\n\n case getKeyboardEventKey('ArrowRight', isKeySupported):\n axis = 'x';\n isForward = true;\n break;\n\n case getKeyboardEventKey('ArrowDown', isKeySupported):\n isForward = true;\n axis = 'y';\n break;\n\n case getKeyboardEventKey('Tab', isKeySupported):\n this._focusRoot();\n\n break;\n } // if left/right/top/bottom key\n\n\n if (axis) {\n // prevent page scroll\n e.preventDefault();\n const {\n currSlide\n } = pswp;\n\n if (pswp.options.arrowKeys && axis === 'x' && pswp.getNumItems() > 1) {\n keydownAction = isForward ? 'next' : 'prev';\n } else if (currSlide && currSlide.currZoomLevel > currSlide.zoomLevels.fit) {\n // up/down arrow keys pan the image vertically\n // left/right arrow keys pan horizontally.\n // Unless there is only one image,\n // or arrowKeys option is disabled\n currSlide.pan[axis] += isForward ? -80 : 80;\n currSlide.panTo(currSlide.pan.x, currSlide.pan.y);\n }\n }\n\n if (keydownAction) {\n e.preventDefault(); // @ts-ignore\n\n pswp[keydownAction]();\n }\n }\n /**\r\n * Trap focus inside photoswipe\r\n *\r\n * @private\r\n * @param {FocusEvent} e\r\n */\n\n\n _onFocusIn(e) {\n const {\n template\n } = this.pswp;\n\n if (template && document !== e.target && template !== e.target && !template.contains(\n /** @type {Node} */\n e.target)) {\n // focus root element\n template.focus();\n }\n }\n\n}\n\nconst DEFAULT_EASING = 'cubic-bezier(.4,0,.22,1)';\n/** @typedef {import('./animations.js').SharedAnimationProps} SharedAnimationProps */\n\n/** @typedef {Object} DefaultCssAnimationProps\r\n *\r\n * @prop {HTMLElement} target\r\n * @prop {number} [duration]\r\n * @prop {string} [easing]\r\n * @prop {string} [transform]\r\n * @prop {string} [opacity]\r\n * */\n\n/** @typedef {SharedAnimationProps & DefaultCssAnimationProps} CssAnimationProps */\n\n/**\r\n * Runs CSS transition.\r\n */\n\nclass CSSAnimation {\n /**\r\n * onComplete can be unpredictable, be careful about current state\r\n *\r\n * @param {CssAnimationProps} props\r\n */\n constructor(props) {\n var _props$prop;\n\n this.props = props;\n const {\n target,\n onComplete,\n transform,\n onFinish = () => {},\n duration = 333,\n easing = DEFAULT_EASING\n } = props;\n this.onFinish = onFinish; // support only transform and opacity\n\n const prop = transform ? 'transform' : 'opacity';\n const propValue = (_props$prop = props[prop]) !== null && _props$prop !== void 0 ? _props$prop : '';\n /** @private */\n\n this._target = target;\n /** @private */\n\n this._onComplete = onComplete;\n /** @private */\n\n this._finished = false;\n /** @private */\n\n this._onTransitionEnd = this._onTransitionEnd.bind(this); // Using timeout hack to make sure that animation\n // starts even if the animated property was changed recently,\n // otherwise transitionend might not fire or transition won't start.\n // https://drafts.csswg.org/css-transitions/#starting\n //\n // ¯\\_(ツ)_/¯\n\n /** @private */\n\n this._helperTimeout = setTimeout(() => {\n setTransitionStyle(target, prop, duration, easing);\n this._helperTimeout = setTimeout(() => {\n target.addEventListener('transitionend', this._onTransitionEnd, false);\n target.addEventListener('transitioncancel', this._onTransitionEnd, false); // Safari occasionally does not emit transitionend event\n // if element property was modified during the transition,\n // which may be caused by resize or third party component,\n // using timeout as a safety fallback\n\n this._helperTimeout = setTimeout(() => {\n this._finalizeAnimation();\n }, duration + 500);\n target.style[prop] = propValue;\n }, 30); // Do not reduce this number\n }, 0);\n }\n /**\r\n * @private\r\n * @param {TransitionEvent} e\r\n */\n\n\n _onTransitionEnd(e) {\n if (e.target === this._target) {\n this._finalizeAnimation();\n }\n }\n /**\r\n * @private\r\n */\n\n\n _finalizeAnimation() {\n if (!this._finished) {\n this._finished = true;\n this.onFinish();\n\n if (this._onComplete) {\n this._onComplete();\n }\n }\n } // Destroy is called automatically onFinish\n\n\n destroy() {\n if (this._helperTimeout) {\n clearTimeout(this._helperTimeout);\n }\n\n removeTransitionStyle(this._target);\n\n this._target.removeEventListener('transitionend', this._onTransitionEnd, false);\n\n this._target.removeEventListener('transitioncancel', this._onTransitionEnd, false);\n\n if (!this._finished) {\n this._finalizeAnimation();\n }\n }\n\n}\n\nconst DEFAULT_NATURAL_FREQUENCY = 12;\nconst DEFAULT_DAMPING_RATIO = 0.75;\n/**\r\n * Spring easing helper\r\n */\n\nclass SpringEaser {\n /**\r\n * @param {number} initialVelocity Initial velocity, px per ms.\r\n *\r\n * @param {number} [dampingRatio]\r\n * Determines how bouncy animation will be.\r\n * From 0 to 1, 0 - always overshoot, 1 - do not overshoot.\r\n * \"overshoot\" refers to part of animation that\r\n * goes beyond the final value.\r\n *\r\n * @param {number} [naturalFrequency]\r\n * Determines how fast animation will slow down.\r\n * The higher value - the stiffer the transition will be,\r\n * and the faster it will slow down.\r\n * Recommended value from 10 to 50\r\n */\n constructor(initialVelocity, dampingRatio, naturalFrequency) {\n this.velocity = initialVelocity * 1000; // convert to \"pixels per second\"\n // https://en.wikipedia.org/wiki/Damping_ratio\n\n this._dampingRatio = dampingRatio || DEFAULT_DAMPING_RATIO; // https://en.wikipedia.org/wiki/Natural_frequency\n\n this._naturalFrequency = naturalFrequency || DEFAULT_NATURAL_FREQUENCY;\n this._dampedFrequency = this._naturalFrequency;\n\n if (this._dampingRatio < 1) {\n this._dampedFrequency *= Math.sqrt(1 - this._dampingRatio * this._dampingRatio);\n }\n }\n /**\r\n * @param {number} deltaPosition Difference between current and end position of the animation\r\n * @param {number} deltaTime Frame duration in milliseconds\r\n *\r\n * @returns {number} Displacement, relative to the end position.\r\n */\n\n\n easeFrame(deltaPosition, deltaTime) {\n // Inspired by Apple Webkit and Android spring function implementation\n // https://en.wikipedia.org/wiki/Oscillation\n // https://en.wikipedia.org/wiki/Damping_ratio\n // we ignore mass (assume that it's 1kg)\n let displacement = 0;\n let coeff;\n deltaTime /= 1000;\n const naturalDumpingPow = Math.E ** (-this._dampingRatio * this._naturalFrequency * deltaTime);\n\n if (this._dampingRatio === 1) {\n coeff = this.velocity + this._naturalFrequency * deltaPosition;\n displacement = (deltaPosition + coeff * deltaTime) * naturalDumpingPow;\n this.velocity = displacement * -this._naturalFrequency + coeff * naturalDumpingPow;\n } else if (this._dampingRatio < 1) {\n coeff = 1 / this._dampedFrequency * (this._dampingRatio * this._naturalFrequency * deltaPosition + this.velocity);\n const dumpedFCos = Math.cos(this._dampedFrequency * deltaTime);\n const dumpedFSin = Math.sin(this._dampedFrequency * deltaTime);\n displacement = naturalDumpingPow * (deltaPosition * dumpedFCos + coeff * dumpedFSin);\n this.velocity = displacement * -this._naturalFrequency * this._dampingRatio + naturalDumpingPow * (-this._dampedFrequency * deltaPosition * dumpedFSin + this._dampedFrequency * coeff * dumpedFCos);\n } // Overdamped (>1) damping ratio is not supported\n\n\n return displacement;\n }\n\n}\n\n/** @typedef {import('./animations.js').SharedAnimationProps} SharedAnimationProps */\n\n/**\r\n * @typedef {Object} DefaultSpringAnimationProps\r\n *\r\n * @prop {number} start\r\n * @prop {number} end\r\n * @prop {number} velocity\r\n * @prop {number} [dampingRatio]\r\n * @prop {number} [naturalFrequency]\r\n * @prop {(end: number) => void} onUpdate\r\n */\n\n/** @typedef {SharedAnimationProps & DefaultSpringAnimationProps} SpringAnimationProps */\n\nclass SpringAnimation {\n /**\r\n * @param {SpringAnimationProps} props\r\n */\n constructor(props) {\n this.props = props;\n this._raf = 0;\n const {\n start,\n end,\n velocity,\n onUpdate,\n onComplete,\n onFinish = () => {},\n dampingRatio,\n naturalFrequency\n } = props;\n this.onFinish = onFinish;\n const easer = new SpringEaser(velocity, dampingRatio, naturalFrequency);\n let prevTime = Date.now();\n let deltaPosition = start - end;\n\n const animationLoop = () => {\n if (this._raf) {\n deltaPosition = easer.easeFrame(deltaPosition, Date.now() - prevTime); // Stop the animation if velocity is low and position is close to end\n\n if (Math.abs(deltaPosition) < 1 && Math.abs(easer.velocity) < 50) {\n // Finalize the animation\n onUpdate(end);\n\n if (onComplete) {\n onComplete();\n }\n\n this.onFinish();\n } else {\n prevTime = Date.now();\n onUpdate(deltaPosition + end);\n this._raf = requestAnimationFrame(animationLoop);\n }\n }\n };\n\n this._raf = requestAnimationFrame(animationLoop);\n } // Destroy is called automatically onFinish\n\n\n destroy() {\n if (this._raf >= 0) {\n cancelAnimationFrame(this._raf);\n }\n\n this._raf = 0;\n }\n\n}\n\n/** @typedef {import('./css-animation.js').CssAnimationProps} CssAnimationProps */\n\n/** @typedef {import('./spring-animation.js').SpringAnimationProps} SpringAnimationProps */\n\n/** @typedef {Object} SharedAnimationProps\r\n * @prop {string} [name]\r\n * @prop {boolean} [isPan]\r\n * @prop {boolean} [isMainScroll]\r\n * @prop {VoidFunction} [onComplete]\r\n * @prop {VoidFunction} [onFinish]\r\n */\n\n/** @typedef {SpringAnimation | CSSAnimation} Animation */\n\n/** @typedef {SpringAnimationProps | CssAnimationProps} AnimationProps */\n\n/**\r\n * Manages animations\r\n */\n\nclass Animations {\n constructor() {\n /** @type {Animation[]} */\n this.activeAnimations = [];\n }\n /**\r\n * @param {SpringAnimationProps} props\r\n */\n\n\n startSpring(props) {\n this._start(props, true);\n }\n /**\r\n * @param {CssAnimationProps} props\r\n */\n\n\n startTransition(props) {\n this._start(props);\n }\n /**\r\n * @private\r\n * @param {AnimationProps} props\r\n * @param {boolean} [isSpring]\r\n * @returns {Animation}\r\n */\n\n\n _start(props, isSpring) {\n const animation = isSpring ? new SpringAnimation(\n /** @type SpringAnimationProps */\n props) : new CSSAnimation(\n /** @type CssAnimationProps */\n props);\n this.activeAnimations.push(animation);\n\n animation.onFinish = () => this.stop(animation);\n\n return animation;\n }\n /**\r\n * @param {Animation} animation\r\n */\n\n\n stop(animation) {\n animation.destroy();\n const index = this.activeAnimations.indexOf(animation);\n\n if (index > -1) {\n this.activeAnimations.splice(index, 1);\n }\n }\n\n stopAll() {\n // _stopAllAnimations\n this.activeAnimations.forEach(animation => {\n animation.destroy();\n });\n this.activeAnimations = [];\n }\n /**\r\n * Stop all pan or zoom transitions\r\n */\n\n\n stopAllPan() {\n this.activeAnimations = this.activeAnimations.filter(animation => {\n if (animation.props.isPan) {\n animation.destroy();\n return false;\n }\n\n return true;\n });\n }\n\n stopMainScroll() {\n this.activeAnimations = this.activeAnimations.filter(animation => {\n if (animation.props.isMainScroll) {\n animation.destroy();\n return false;\n }\n\n return true;\n });\n }\n /**\r\n * Returns true if main scroll transition is running\r\n */\n // isMainScrollRunning() {\n // return this.activeAnimations.some((animation) => {\n // return animation.props.isMainScroll;\n // });\n // }\n\n /**\r\n * Returns true if any pan or zoom transition is running\r\n */\n\n\n isPanRunning() {\n return this.activeAnimations.some(animation => {\n return animation.props.isPan;\n });\n }\n\n}\n\n/** @typedef {import('./photoswipe.js').default} PhotoSwipe */\n\n/**\r\n * Handles scroll wheel.\r\n * Can pan and zoom current slide image.\r\n */\nclass ScrollWheel {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp;\n pswp.events.add(pswp.element, 'wheel',\n /** @type EventListener */\n this._onWheel.bind(this));\n }\n /**\r\n * @private\r\n * @param {WheelEvent} e\r\n */\n\n\n _onWheel(e) {\n e.preventDefault();\n const {\n currSlide\n } = this.pswp;\n let {\n deltaX,\n deltaY\n } = e;\n\n if (!currSlide) {\n return;\n }\n\n if (this.pswp.dispatch('wheel', {\n originalEvent: e\n }).defaultPrevented) {\n return;\n }\n\n if (e.ctrlKey || this.pswp.options.wheelToZoom) {\n // zoom\n if (currSlide.isZoomable()) {\n let zoomFactor = -deltaY;\n\n if (e.deltaMode === 1\n /* DOM_DELTA_LINE */\n ) {\n zoomFactor *= 0.05;\n } else {\n zoomFactor *= e.deltaMode ? 1 : 0.002;\n }\n\n zoomFactor = 2 ** zoomFactor;\n const destZoomLevel = currSlide.currZoomLevel * zoomFactor;\n currSlide.zoomTo(destZoomLevel, {\n x: e.clientX,\n y: e.clientY\n });\n }\n } else {\n // pan\n if (currSlide.isPannable()) {\n if (e.deltaMode === 1\n /* DOM_DELTA_LINE */\n ) {\n // 18 - average line height\n deltaX *= 18;\n deltaY *= 18;\n }\n\n currSlide.panTo(currSlide.pan.x - deltaX, currSlide.pan.y - deltaY);\n }\n }\n }\n\n}\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/**\r\n * @template T\r\n * @typedef {import('../types.js').Methods<T>} Methods<T>\r\n */\n\n/**\r\n * @typedef {Object} UIElementMarkupProps\r\n * @prop {boolean} [isCustomSVG]\r\n * @prop {string} inner\r\n * @prop {string} [outlineID]\r\n * @prop {number | string} [size]\r\n */\n\n/**\r\n * @typedef {Object} UIElementData\r\n * @prop {DefaultUIElements | string} [name]\r\n * @prop {string} [className]\r\n * @prop {UIElementMarkup} [html]\r\n * @prop {boolean} [isButton]\r\n * @prop {keyof HTMLElementTagNameMap} [tagName]\r\n * @prop {string} [title]\r\n * @prop {string} [ariaLabel]\r\n * @prop {(element: HTMLElement, pswp: PhotoSwipe) => void} [onInit]\r\n * @prop {Methods<PhotoSwipe> | ((e: MouseEvent, element: HTMLElement, pswp: PhotoSwipe) => void)} [onClick]\r\n * @prop {'bar' | 'wrapper' | 'root'} [appendTo]\r\n * @prop {number} [order]\r\n */\n\n/** @typedef {'arrowPrev' | 'arrowNext' | 'close' | 'zoom' | 'counter'} DefaultUIElements */\n\n/** @typedef {string | UIElementMarkupProps} UIElementMarkup */\n\n/**\r\n * @param {UIElementMarkup} [htmlData]\r\n * @returns {string}\r\n */\n\nfunction addElementHTML(htmlData) {\n if (typeof htmlData === 'string') {\n // Allow developers to provide full svg,\n // For example:\n // <svg viewBox=\"0 0 32 32\" width=\"32\" height=\"32\" aria-hidden=\"true\" class=\"pswp__icn\">\n // <path d=\"...\" />\n // <circle ... />\n // </svg>\n // Can also be any HTML string.\n return htmlData;\n }\n\n if (!htmlData || !htmlData.isCustomSVG) {\n return '';\n }\n\n const svgData = htmlData;\n let out = '<svg aria-hidden=\"true\" class=\"pswp__icn\" viewBox=\"0 0 %d %d\" width=\"%d\" height=\"%d\">'; // replace all %d with size\n\n out = out.split('%d').join(\n /** @type {string} */\n svgData.size || 32); // Icons may contain outline/shadow,\n // to make it we \"clone\" base icon shape and add border to it.\n // Icon itself and border are styled via CSS.\n //\n // Property shadowID defines ID of element that should be cloned.\n\n if (svgData.outlineID) {\n out += '<use class=\"pswp__icn-shadow\" xlink:href=\"#' + svgData.outlineID + '\"/>';\n }\n\n out += svgData.inner;\n out += '</svg>';\n return out;\n}\n\nclass UIElement {\n /**\r\n * @param {PhotoSwipe} pswp\r\n * @param {UIElementData} data\r\n */\n constructor(pswp, data) {\n var _container;\n\n const name = data.name || data.className;\n let elementHTML = data.html; // @ts-expect-error lookup only by `data.name` maybe?\n\n if (pswp.options[name] === false) {\n // exit if element is disabled from options\n return;\n } // Allow to override SVG icons from options\n // @ts-expect-error lookup only by `data.name` maybe?\n\n\n if (typeof pswp.options[name + 'SVG'] === 'string') {\n // arrowPrevSVG\n // arrowNextSVG\n // closeSVG\n // zoomSVG\n // @ts-expect-error lookup only by `data.name` maybe?\n elementHTML = pswp.options[name + 'SVG'];\n }\n\n pswp.dispatch('uiElementCreate', {\n data\n });\n let className = '';\n\n if (data.isButton) {\n className += 'pswp__button ';\n className += data.className || `pswp__button--${data.name}`;\n } else {\n className += data.className || `pswp__${data.name}`;\n }\n\n let tagName = data.isButton ? data.tagName || 'button' : data.tagName || 'div';\n tagName =\n /** @type {keyof HTMLElementTagNameMap} */\n tagName.toLowerCase();\n /** @type {HTMLElement} */\n\n const element = createElement(className, tagName);\n\n if (data.isButton) {\n if (tagName === 'button') {\n /** @type {HTMLButtonElement} */\n element.type = 'button';\n }\n\n let {\n title\n } = data;\n const {\n ariaLabel\n } = data; // @ts-expect-error lookup only by `data.name` maybe?\n\n if (typeof pswp.options[name + 'Title'] === 'string') {\n // @ts-expect-error lookup only by `data.name` maybe?\n title = pswp.options[name + 'Title'];\n }\n\n if (title) {\n element.title = title;\n }\n\n const ariaText = ariaLabel || title;\n\n if (ariaText) {\n element.setAttribute('aria-label', ariaText);\n }\n }\n\n element.innerHTML = addElementHTML(elementHTML);\n\n if (data.onInit) {\n data.onInit(element, pswp);\n }\n\n if (data.onClick) {\n element.onclick = e => {\n if (typeof data.onClick === 'string') {\n // @ts-ignore\n pswp[data.onClick]();\n } else if (typeof data.onClick === 'function') {\n data.onClick(e, element, pswp);\n }\n };\n } // Top bar is default position\n\n\n const appendTo = data.appendTo || 'bar';\n /** @type {HTMLElement | undefined} root element by default */\n\n let container = pswp.element;\n\n if (appendTo === 'bar') {\n if (!pswp.topBar) {\n pswp.topBar = createElement('pswp__top-bar pswp__hide-on-close', 'div', pswp.scrollWrap);\n }\n\n container = pswp.topBar;\n } else {\n // element outside of top bar gets a secondary class\n // that makes element fade out on close\n element.classList.add('pswp__hide-on-close');\n\n if (appendTo === 'wrapper') {\n container = pswp.scrollWrap;\n }\n }\n\n (_container = container) === null || _container === void 0 || _container.appendChild(pswp.applyFilters('uiElement', element, data));\n }\n\n}\n\n/*\r\n Backward and forward arrow buttons\r\n */\n\n/** @typedef {import('./ui-element.js').UIElementData} UIElementData */\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/**\r\n *\r\n * @param {HTMLElement} element\r\n * @param {PhotoSwipe} pswp\r\n * @param {boolean} [isNextButton]\r\n */\nfunction initArrowButton(element, pswp, isNextButton) {\n element.classList.add('pswp__button--arrow'); // TODO: this should point to a unique id for this instance\n\n element.setAttribute('aria-controls', 'pswp__items');\n pswp.on('change', () => {\n if (!pswp.options.loop) {\n if (isNextButton) {\n /** @type {HTMLButtonElement} */\n element.disabled = !(pswp.currIndex < pswp.getNumItems() - 1);\n } else {\n /** @type {HTMLButtonElement} */\n element.disabled = !(pswp.currIndex > 0);\n }\n }\n });\n}\n/** @type {UIElementData} */\n\n\nconst arrowPrev = {\n name: 'arrowPrev',\n className: 'pswp__button--arrow--prev',\n title: 'Previous',\n order: 10,\n isButton: true,\n appendTo: 'wrapper',\n html: {\n isCustomSVG: true,\n size: 60,\n inner: '<path d=\"M29 43l-3 3-16-16 16-16 3 3-13 13 13 13z\" id=\"pswp__icn-arrow\"/>',\n outlineID: 'pswp__icn-arrow'\n },\n onClick: 'prev',\n onInit: initArrowButton\n};\n/** @type {UIElementData} */\n\nconst arrowNext = {\n name: 'arrowNext',\n className: 'pswp__button--arrow--next',\n title: 'Next',\n order: 11,\n isButton: true,\n appendTo: 'wrapper',\n html: {\n isCustomSVG: true,\n size: 60,\n inner: '<use xlink:href=\"#pswp__icn-arrow\"/>',\n outlineID: 'pswp__icn-arrow'\n },\n onClick: 'next',\n onInit: (el, pswp) => {\n initArrowButton(el, pswp, true);\n }\n};\n\n/** @type {import('./ui-element.js').UIElementData} UIElementData */\nconst closeButton = {\n name: 'close',\n title: 'Close',\n order: 20,\n isButton: true,\n html: {\n isCustomSVG: true,\n inner: '<path d=\"M24 10l-2-2-6 6-6-6-2 2 6 6-6 6 2 2 6-6 6 6 2-2-6-6z\" id=\"pswp__icn-close\"/>',\n outlineID: 'pswp__icn-close'\n },\n onClick: 'close'\n};\n\n/** @type {import('./ui-element.js').UIElementData} UIElementData */\nconst zoomButton = {\n name: 'zoom',\n title: 'Zoom',\n order: 10,\n isButton: true,\n html: {\n isCustomSVG: true,\n // eslint-disable-next-line max-len\n inner: '<path d=\"M17.426 19.926a6 6 0 1 1 1.5-1.5L23 22.5 21.5 24l-4.074-4.074z\" id=\"pswp__icn-zoom\"/>' + '<path fill=\"currentColor\" class=\"pswp__zoom-icn-bar-h\" d=\"M11 16v-2h6v2z\"/>' + '<path fill=\"currentColor\" class=\"pswp__zoom-icn-bar-v\" d=\"M13 12h2v6h-2z\"/>',\n outlineID: 'pswp__icn-zoom'\n },\n onClick: 'toggleZoom'\n};\n\n/** @type {import('./ui-element.js').UIElementData} UIElementData */\nconst loadingIndicator = {\n name: 'preloader',\n appendTo: 'bar',\n order: 7,\n html: {\n isCustomSVG: true,\n // eslint-disable-next-line max-len\n inner: '<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21.2 16a5.2 5.2 0 1 1-5.2-5.2V8a8 8 0 1 0 8 8h-2.8Z\" id=\"pswp__icn-loading\"/>',\n outlineID: 'pswp__icn-loading'\n },\n onInit: (indicatorElement, pswp) => {\n /** @type {boolean | undefined} */\n let isVisible;\n /** @type {NodeJS.Timeout | null} */\n\n let delayTimeout = null;\n /**\r\n * @param {string} className\r\n * @param {boolean} add\r\n */\n\n const toggleIndicatorClass = (className, add) => {\n indicatorElement.classList.toggle('pswp__preloader--' + className, add);\n };\n /**\r\n * @param {boolean} visible\r\n */\n\n\n const setIndicatorVisibility = visible => {\n if (isVisible !== visible) {\n isVisible = visible;\n toggleIndicatorClass('active', visible);\n }\n };\n\n const updatePreloaderVisibility = () => {\n var _pswp$currSlide;\n\n if (!((_pswp$currSlide = pswp.currSlide) !== null && _pswp$currSlide !== void 0 && _pswp$currSlide.content.isLoading())) {\n setIndicatorVisibility(false);\n\n if (delayTimeout) {\n clearTimeout(delayTimeout);\n delayTimeout = null;\n }\n\n return;\n }\n\n if (!delayTimeout) {\n // display loading indicator with delay\n delayTimeout = setTimeout(() => {\n var _pswp$currSlide2;\n\n setIndicatorVisibility(Boolean((_pswp$currSlide2 = pswp.currSlide) === null || _pswp$currSlide2 === void 0 ? void 0 : _pswp$currSlide2.content.isLoading()));\n delayTimeout = null;\n }, pswp.options.preloaderDelay);\n }\n };\n\n pswp.on('change', updatePreloaderVisibility);\n pswp.on('loadComplete', e => {\n if (pswp.currSlide === e.slide) {\n updatePreloaderVisibility();\n }\n }); // expose the method\n\n if (pswp.ui) {\n pswp.ui.updatePreloaderVisibility = updatePreloaderVisibility;\n }\n }\n};\n\n/** @type {import('./ui-element.js').UIElementData} UIElementData */\nconst counterIndicator = {\n name: 'counter',\n order: 5,\n onInit: (counterElement, pswp) => {\n pswp.on('change', () => {\n counterElement.innerText = pswp.currIndex + 1 + pswp.options.indexIndicatorSep + pswp.getNumItems();\n });\n }\n};\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('./ui-element.js').UIElementData} UIElementData */\n\n/**\r\n * Set special class on element when image is zoomed.\r\n *\r\n * By default, it is used to adjust\r\n * zoom icon and zoom cursor via CSS.\r\n *\r\n * @param {HTMLElement} el\r\n * @param {boolean} isZoomedIn\r\n */\n\nfunction setZoomedIn(el, isZoomedIn) {\n el.classList.toggle('pswp--zoomed-in', isZoomedIn);\n}\n\nclass UI {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp;\n this.isRegistered = false;\n /** @type {UIElementData[]} */\n\n this.uiElementsData = [];\n /** @type {(UIElement | UIElementData)[]} */\n\n this.items = [];\n /** @type {() => void} */\n\n this.updatePreloaderVisibility = () => {};\n /**\r\n * @private\r\n * @type {number | undefined}\r\n */\n\n\n this._lastUpdatedZoomLevel = undefined;\n }\n\n init() {\n const {\n pswp\n } = this;\n this.isRegistered = false;\n this.uiElementsData = [closeButton, arrowPrev, arrowNext, zoomButton, loadingIndicator, counterIndicator];\n pswp.dispatch('uiRegister'); // sort by order\n\n this.uiElementsData.sort((a, b) => {\n // default order is 0\n return (a.order || 0) - (b.order || 0);\n });\n this.items = [];\n this.isRegistered = true;\n this.uiElementsData.forEach(uiElementData => {\n this.registerElement(uiElementData);\n });\n pswp.on('change', () => {\n var _pswp$element;\n\n (_pswp$element = pswp.element) === null || _pswp$element === void 0 || _pswp$element.classList.toggle('pswp--one-slide', pswp.getNumItems() === 1);\n });\n pswp.on('zoomPanUpdate', () => this._onZoomPanUpdate());\n }\n /**\r\n * @param {UIElementData} elementData\r\n */\n\n\n registerElement(elementData) {\n if (this.isRegistered) {\n this.items.push(new UIElement(this.pswp, elementData));\n } else {\n this.uiElementsData.push(elementData);\n }\n }\n /**\r\n * Fired each time zoom or pan position is changed.\r\n * Update classes that control visibility of zoom button and cursor icon.\r\n *\r\n * @private\r\n */\n\n\n _onZoomPanUpdate() {\n const {\n template,\n currSlide,\n options\n } = this.pswp;\n\n if (this.pswp.opener.isClosing || !template || !currSlide) {\n return;\n }\n\n let {\n currZoomLevel\n } = currSlide; // if not open yet - check against initial zoom level\n\n if (!this.pswp.opener.isOpen) {\n currZoomLevel = currSlide.zoomLevels.initial;\n }\n\n if (currZoomLevel === this._lastUpdatedZoomLevel) {\n return;\n }\n\n this._lastUpdatedZoomLevel = currZoomLevel;\n const currZoomLevelDiff = currSlide.zoomLevels.initial - currSlide.zoomLevels.secondary; // Initial and secondary zoom levels are almost equal\n\n if (Math.abs(currZoomLevelDiff) < 0.01 || !currSlide.isZoomable()) {\n // disable zoom\n setZoomedIn(template, false);\n template.classList.remove('pswp--zoom-allowed');\n return;\n }\n\n template.classList.add('pswp--zoom-allowed');\n const potentialZoomLevel = currZoomLevel === currSlide.zoomLevels.initial ? currSlide.zoomLevels.secondary : currSlide.zoomLevels.initial;\n setZoomedIn(template, potentialZoomLevel <= currZoomLevel);\n\n if (options.imageClickAction === 'zoom' || options.imageClickAction === 'zoom-or-close') {\n template.classList.add('pswp--click-to-zoom');\n }\n }\n\n}\n\n/** @typedef {import('./slide.js').SlideData} SlideData */\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {{ x: number; y: number; w: number; innerRect?: { w: number; h: number; x: number; y: number } }} Bounds */\n\n/**\r\n * @param {HTMLElement} el\r\n * @returns Bounds\r\n */\nfunction getBoundsByElement(el) {\n const thumbAreaRect = el.getBoundingClientRect();\n return {\n x: thumbAreaRect.left,\n y: thumbAreaRect.top,\n w: thumbAreaRect.width\n };\n}\n/**\r\n * @param {HTMLElement} el\r\n * @param {number} imageWidth\r\n * @param {number} imageHeight\r\n * @returns Bounds\r\n */\n\n\nfunction getCroppedBoundsByElement(el, imageWidth, imageHeight) {\n const thumbAreaRect = el.getBoundingClientRect(); // fill image into the area\n // (do they same as object-fit:cover does to retrieve coordinates)\n\n const hRatio = thumbAreaRect.width / imageWidth;\n const vRatio = thumbAreaRect.height / imageHeight;\n const fillZoomLevel = hRatio > vRatio ? hRatio : vRatio;\n const offsetX = (thumbAreaRect.width - imageWidth * fillZoomLevel) / 2;\n const offsetY = (thumbAreaRect.height - imageHeight * fillZoomLevel) / 2;\n /**\r\n * Coordinates of the image,\r\n * as if it was not cropped,\r\n * height is calculated automatically\r\n *\r\n * @type {Bounds}\r\n */\n\n const bounds = {\n x: thumbAreaRect.left + offsetX,\n y: thumbAreaRect.top + offsetY,\n w: imageWidth * fillZoomLevel\n }; // Coordinates of inner crop area\n // relative to the image\n\n bounds.innerRect = {\n w: thumbAreaRect.width,\n h: thumbAreaRect.height,\n x: offsetX,\n y: offsetY\n };\n return bounds;\n}\n/**\r\n * Get dimensions of thumbnail image\r\n * (click on which opens photoswipe or closes photoswipe to)\r\n *\r\n * @param {number} index\r\n * @param {SlideData} itemData\r\n * @param {PhotoSwipe} instance PhotoSwipe instance\r\n * @returns {Bounds | undefined}\r\n */\n\n\nfunction getThumbBounds(index, itemData, instance) {\n // legacy event, before filters were introduced\n const event = instance.dispatch('thumbBounds', {\n index,\n itemData,\n instance\n }); // @ts-expect-error\n\n if (event.thumbBounds) {\n // @ts-expect-error\n return event.thumbBounds;\n }\n\n const {\n element\n } = itemData;\n /** @type {Bounds | undefined} */\n\n let thumbBounds;\n /** @type {HTMLElement | null | undefined} */\n\n let thumbnail;\n\n if (element && instance.options.thumbSelector !== false) {\n const thumbSelector = instance.options.thumbSelector || 'img';\n thumbnail = element.matches(thumbSelector) ? element :\n /** @type {HTMLElement | null} */\n element.querySelector(thumbSelector);\n }\n\n thumbnail = instance.applyFilters('thumbEl', thumbnail, itemData, index);\n\n if (thumbnail) {\n if (!itemData.thumbCropped) {\n thumbBounds = getBoundsByElement(thumbnail);\n } else {\n thumbBounds = getCroppedBoundsByElement(thumbnail, itemData.width || itemData.w || 0, itemData.height || itemData.h || 0);\n }\n }\n\n return instance.applyFilters('thumbBounds', thumbBounds, itemData, index);\n}\n\n/** @typedef {import('../lightbox/lightbox.js').default} PhotoSwipeLightbox */\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('../photoswipe.js').PhotoSwipeOptions} PhotoSwipeOptions */\n\n/** @typedef {import('../photoswipe.js').DataSource} DataSource */\n\n/** @typedef {import('../ui/ui-element.js').UIElementData} UIElementData */\n\n/** @typedef {import('../slide/content.js').default} ContentDefault */\n\n/** @typedef {import('../slide/slide.js').default} Slide */\n\n/** @typedef {import('../slide/slide.js').SlideData} SlideData */\n\n/** @typedef {import('../slide/zoom-level.js').default} ZoomLevel */\n\n/** @typedef {import('../slide/get-thumb-bounds.js').Bounds} Bounds */\n\n/**\r\n * Allow adding an arbitrary props to the Content\r\n * https://photoswipe.com/custom-content/#using-webp-image-format\r\n * @typedef {ContentDefault & Record<string, any>} Content\r\n */\n\n/** @typedef {{ x?: number; y?: number }} Point */\n\n/**\r\n * @typedef {Object} PhotoSwipeEventsMap https://photoswipe.com/events/\r\n *\r\n *\r\n * https://photoswipe.com/adding-ui-elements/\r\n *\r\n * @prop {undefined} uiRegister\r\n * @prop {{ data: UIElementData }} uiElementCreate\r\n *\r\n *\r\n * https://photoswipe.com/events/#initialization-events\r\n *\r\n * @prop {undefined} beforeOpen\r\n * @prop {undefined} firstUpdate\r\n * @prop {undefined} initialLayout\r\n * @prop {undefined} change\r\n * @prop {undefined} afterInit\r\n * @prop {undefined} bindEvents\r\n *\r\n *\r\n * https://photoswipe.com/events/#opening-or-closing-transition-events\r\n *\r\n * @prop {undefined} openingAnimationStart\r\n * @prop {undefined} openingAnimationEnd\r\n * @prop {undefined} closingAnimationStart\r\n * @prop {undefined} closingAnimationEnd\r\n *\r\n *\r\n * https://photoswipe.com/events/#closing-events\r\n *\r\n * @prop {undefined} close\r\n * @prop {undefined} destroy\r\n *\r\n *\r\n * https://photoswipe.com/events/#pointer-and-gesture-events\r\n *\r\n * @prop {{ originalEvent: PointerEvent }} pointerDown\r\n * @prop {{ originalEvent: PointerEvent }} pointerMove\r\n * @prop {{ originalEvent: PointerEvent }} pointerUp\r\n * @prop {{ bgOpacity: number }} pinchClose can be default prevented\r\n * @prop {{ panY: number }} verticalDrag can be default prevented\r\n *\r\n *\r\n * https://photoswipe.com/events/#slide-content-events\r\n *\r\n * @prop {{ content: Content }} contentInit\r\n * @prop {{ content: Content; isLazy: boolean }} contentLoad can be default prevented\r\n * @prop {{ content: Content; isLazy: boolean }} contentLoadImage can be default prevented\r\n * @prop {{ content: Content; slide: Slide; isError?: boolean }} loadComplete\r\n * @prop {{ content: Content; slide: Slide }} loadError\r\n * @prop {{ content: Content; width: number; height: number }} contentResize can be default prevented\r\n * @prop {{ content: Content; width: number; height: number; slide: Slide }} imageSizeChange\r\n * @prop {{ content: Content }} contentLazyLoad can be default prevented\r\n * @prop {{ content: Content }} contentAppend can be default prevented\r\n * @prop {{ content: Content }} contentActivate can be default prevented\r\n * @prop {{ content: Content }} contentDeactivate can be default prevented\r\n * @prop {{ content: Content }} contentRemove can be default prevented\r\n * @prop {{ content: Content }} contentDestroy can be default prevented\r\n *\r\n *\r\n * undocumented\r\n *\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} imageClickAction can be default prevented\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} bgClickAction can be default prevented\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} tapAction can be default prevented\r\n * @prop {{ point: Point; originalEvent: PointerEvent }} doubleTapAction can be default prevented\r\n *\r\n * @prop {{ originalEvent: KeyboardEvent }} keydown can be default prevented\r\n * @prop {{ x: number; dragging: boolean }} moveMainScroll\r\n * @prop {{ slide: Slide }} firstZoomPan\r\n * @prop {{ slide: Slide | undefined, data: SlideData, index: number }} gettingData\r\n * @prop {undefined} beforeResize\r\n * @prop {undefined} resize\r\n * @prop {undefined} viewportSize\r\n * @prop {undefined} updateScrollOffset\r\n * @prop {{ slide: Slide }} slideInit\r\n * @prop {{ slide: Slide }} afterSetContent\r\n * @prop {{ slide: Slide }} slideLoad\r\n * @prop {{ slide: Slide }} appendHeavy can be default prevented\r\n * @prop {{ slide: Slide }} appendHeavyContent\r\n * @prop {{ slide: Slide }} slideActivate\r\n * @prop {{ slide: Slide }} slideDeactivate\r\n * @prop {{ slide: Slide }} slideDestroy\r\n * @prop {{ destZoomLevel: number, centerPoint: Point | undefined, transitionDuration: number | false | undefined }} beforeZoomTo\r\n * @prop {{ slide: Slide }} zoomPanUpdate\r\n * @prop {{ slide: Slide }} initialZoomPan\r\n * @prop {{ slide: Slide }} calcSlideSize\r\n * @prop {undefined} resolutionChanged\r\n * @prop {{ originalEvent: WheelEvent }} wheel can be default prevented\r\n * @prop {{ content: Content }} contentAppendImage can be default prevented\r\n * @prop {{ index: number; itemData: SlideData }} lazyLoadSlide can be default prevented\r\n * @prop {undefined} lazyLoad\r\n * @prop {{ slide: Slide }} calcBounds\r\n * @prop {{ zoomLevels: ZoomLevel, slideData: SlideData }} zoomLevelsUpdate\r\n *\r\n *\r\n * legacy\r\n *\r\n * @prop {undefined} init\r\n * @prop {undefined} initialZoomIn\r\n * @prop {undefined} initialZoomOut\r\n * @prop {undefined} initialZoomInEnd\r\n * @prop {undefined} initialZoomOutEnd\r\n * @prop {{ dataSource: DataSource | undefined, numItems: number }} numItems\r\n * @prop {{ itemData: SlideData; index: number }} itemData\r\n * @prop {{ index: number, itemData: SlideData, instance: PhotoSwipe }} thumbBounds\r\n */\n\n/**\r\n * @typedef {Object} PhotoSwipeFiltersMap https://photoswipe.com/filters/\r\n *\r\n * @prop {(numItems: number, dataSource: DataSource | undefined) => number} numItems\r\n * Modify the total amount of slides. Example on Data sources page.\r\n * https://photoswipe.com/filters/#numitems\r\n *\r\n * @prop {(itemData: SlideData, index: number) => SlideData} itemData\r\n * Modify slide item data. Example on Data sources page.\r\n * https://photoswipe.com/filters/#itemdata\r\n *\r\n * @prop {(itemData: SlideData, element: HTMLElement, linkEl: HTMLAnchorElement) => SlideData} domItemData\r\n * Modify item data when it's parsed from DOM element. Example on Data sources page.\r\n * https://photoswipe.com/filters/#domitemdata\r\n *\r\n * @prop {(clickedIndex: number, e: MouseEvent, instance: PhotoSwipeLightbox) => number} clickedIndex\r\n * Modify clicked gallery item index.\r\n * https://photoswipe.com/filters/#clickedindex\r\n *\r\n * @prop {(placeholderSrc: string | false, content: Content) => string | false} placeholderSrc\r\n * Modify placeholder image source.\r\n * https://photoswipe.com/filters/#placeholdersrc\r\n *\r\n * @prop {(isContentLoading: boolean, content: Content) => boolean} isContentLoading\r\n * Modify if the content is currently loading.\r\n * https://photoswipe.com/filters/#iscontentloading\r\n *\r\n * @prop {(isContentZoomable: boolean, content: Content) => boolean} isContentZoomable\r\n * Modify if the content can be zoomed.\r\n * https://photoswipe.com/filters/#iscontentzoomable\r\n *\r\n * @prop {(useContentPlaceholder: boolean, content: Content) => boolean} useContentPlaceholder\r\n * Modify if the placeholder should be used for the content.\r\n * https://photoswipe.com/filters/#usecontentplaceholder\r\n *\r\n * @prop {(isKeepingPlaceholder: boolean, content: Content) => boolean} isKeepingPlaceholder\r\n * Modify if the placeholder should be kept after the content is loaded.\r\n * https://photoswipe.com/filters/#iskeepingplaceholder\r\n *\r\n *\r\n * @prop {(contentErrorElement: HTMLElement, content: Content) => HTMLElement} contentErrorElement\r\n * Modify an element when the content has error state (for example, if image cannot be loaded).\r\n * https://photoswipe.com/filters/#contenterrorelement\r\n *\r\n * @prop {(element: HTMLElement, data: UIElementData) => HTMLElement} uiElement\r\n * Modify a UI element that's being created.\r\n * https://photoswipe.com/filters/#uielement\r\n *\r\n * @prop {(thumbnail: HTMLElement | null | undefined, itemData: SlideData, index: number) => HTMLElement} thumbEl\r\n * Modify the thumbnail element from which opening zoom animation starts or ends.\r\n * https://photoswipe.com/filters/#thumbel\r\n *\r\n * @prop {(thumbBounds: Bounds | undefined, itemData: SlideData, index: number) => Bounds} thumbBounds\r\n * Modify the thumbnail bounds from which opening zoom animation starts or ends.\r\n * https://photoswipe.com/filters/#thumbbounds\r\n *\r\n * @prop {(srcsetSizesWidth: number, content: Content) => number} srcsetSizesWidth\r\n *\r\n * @prop {(preventPointerEvent: boolean, event: PointerEvent, pointerType: string) => boolean} preventPointerEvent\r\n *\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @typedef {{ fn: PhotoSwipeFiltersMap[T], priority: number }} Filter\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {PhotoSwipeEventsMap[T] extends undefined ? PhotoSwipeEvent<T> : PhotoSwipeEvent<T> & PhotoSwipeEventsMap[T]} AugmentedEvent\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {(event: AugmentedEvent<T>) => void} EventCallback\r\n */\n\n/**\r\n * Base PhotoSwipe event object\r\n *\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n */\nclass PhotoSwipeEvent {\n /**\r\n * @param {T} type\r\n * @param {PhotoSwipeEventsMap[T]} [details]\r\n */\n constructor(type, details) {\n this.type = type;\n this.defaultPrevented = false;\n\n if (details) {\n Object.assign(this, details);\n }\n }\n\n preventDefault() {\n this.defaultPrevented = true;\n }\n\n}\n/**\r\n * PhotoSwipe base class that can listen and dispatch for events.\r\n * Shared by PhotoSwipe Core and PhotoSwipe Lightbox, extended by base.js\r\n */\n\n\nclass Eventable {\n constructor() {\n /**\r\n * @type {{ [T in keyof PhotoSwipeEventsMap]?: ((event: AugmentedEvent<T>) => void)[] }}\r\n */\n this._listeners = {};\n /**\r\n * @type {{ [T in keyof PhotoSwipeFiltersMap]?: Filter<T>[] }}\r\n */\n\n this._filters = {};\n /** @type {PhotoSwipe | undefined} */\n\n this.pswp = undefined;\n /** @type {PhotoSwipeOptions | undefined} */\n\n this.options = undefined;\n }\n /**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @param {T} name\r\n * @param {PhotoSwipeFiltersMap[T]} fn\r\n * @param {number} priority\r\n */\n\n\n addFilter(name, fn, priority = 100) {\n var _this$_filters$name, _this$_filters$name2, _this$pswp;\n\n if (!this._filters[name]) {\n this._filters[name] = [];\n }\n\n (_this$_filters$name = this._filters[name]) === null || _this$_filters$name === void 0 || _this$_filters$name.push({\n fn,\n priority\n });\n (_this$_filters$name2 = this._filters[name]) === null || _this$_filters$name2 === void 0 || _this$_filters$name2.sort((f1, f2) => f1.priority - f2.priority);\n (_this$pswp = this.pswp) === null || _this$pswp === void 0 || _this$pswp.addFilter(name, fn, priority);\n }\n /**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @param {T} name\r\n * @param {PhotoSwipeFiltersMap[T]} fn\r\n */\n\n\n removeFilter(name, fn) {\n if (this._filters[name]) {\n // @ts-expect-error\n this._filters[name] = this._filters[name].filter(filter => filter.fn !== fn);\n }\n\n if (this.pswp) {\n this.pswp.removeFilter(name, fn);\n }\n }\n /**\r\n * @template {keyof PhotoSwipeFiltersMap} T\r\n * @param {T} name\r\n * @param {Parameters<PhotoSwipeFiltersMap[T]>} args\r\n * @returns {Parameters<PhotoSwipeFiltersMap[T]>[0]}\r\n */\n\n\n applyFilters(name, ...args) {\n var _this$_filters$name3;\n\n (_this$_filters$name3 = this._filters[name]) === null || _this$_filters$name3 === void 0 || _this$_filters$name3.forEach(filter => {\n // @ts-expect-error\n args[0] = filter.fn.apply(this, args);\n });\n return args[0];\n }\n /**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @param {T} name\r\n * @param {EventCallback<T>} fn\r\n */\n\n\n on(name, fn) {\n var _this$_listeners$name, _this$pswp2;\n\n if (!this._listeners[name]) {\n this._listeners[name] = [];\n }\n\n (_this$_listeners$name = this._listeners[name]) === null || _this$_listeners$name === void 0 || _this$_listeners$name.push(fn); // When binding events to lightbox,\n // also bind events to PhotoSwipe Core,\n // if it's open.\n\n (_this$pswp2 = this.pswp) === null || _this$pswp2 === void 0 || _this$pswp2.on(name, fn);\n }\n /**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @param {T} name\r\n * @param {EventCallback<T>} fn\r\n */\n\n\n off(name, fn) {\n var _this$pswp3;\n\n if (this._listeners[name]) {\n // @ts-expect-error\n this._listeners[name] = this._listeners[name].filter(listener => fn !== listener);\n }\n\n (_this$pswp3 = this.pswp) === null || _this$pswp3 === void 0 || _this$pswp3.off(name, fn);\n }\n /**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @param {T} name\r\n * @param {PhotoSwipeEventsMap[T]} [details]\r\n * @returns {AugmentedEvent<T>}\r\n */\n\n\n dispatch(name, details) {\n var _this$_listeners$name2;\n\n if (this.pswp) {\n return this.pswp.dispatch(name, details);\n }\n\n const event =\n /** @type {AugmentedEvent<T>} */\n new PhotoSwipeEvent(name, details);\n (_this$_listeners$name2 = this._listeners[name]) === null || _this$_listeners$name2 === void 0 || _this$_listeners$name2.forEach(listener => {\n listener.call(this, event);\n });\n return event;\n }\n\n}\n\nclass Placeholder {\n /**\r\n * @param {string | false} imageSrc\r\n * @param {HTMLElement} container\r\n */\n constructor(imageSrc, container) {\n // Create placeholder\n // (stretched thumbnail or simple div behind the main image)\n\n /** @type {HTMLImageElement | HTMLDivElement | null} */\n this.element = createElement('pswp__img pswp__img--placeholder', imageSrc ? 'img' : 'div', container);\n\n if (imageSrc) {\n const imgEl =\n /** @type {HTMLImageElement} */\n this.element;\n imgEl.decoding = 'async';\n imgEl.alt = '';\n imgEl.src = imageSrc;\n imgEl.setAttribute('role', 'presentation');\n }\n\n this.element.setAttribute('aria-hidden', 'true');\n }\n /**\r\n * @param {number} width\r\n * @param {number} height\r\n */\n\n\n setDisplayedSize(width, height) {\n if (!this.element) {\n return;\n }\n\n if (this.element.tagName === 'IMG') {\n // Use transform scale() to modify img placeholder size\n // (instead of changing width/height directly).\n // This helps with performance, specifically in iOS15 Safari.\n setWidthHeight(this.element, 250, 'auto');\n this.element.style.transformOrigin = '0 0';\n this.element.style.transform = toTransformString(0, 0, width / 250);\n } else {\n setWidthHeight(this.element, width, height);\n }\n }\n\n destroy() {\n var _this$element;\n\n if ((_this$element = this.element) !== null && _this$element !== void 0 && _this$element.parentNode) {\n this.element.remove();\n }\n\n this.element = null;\n }\n\n}\n\n/** @typedef {import('./slide.js').default} Slide */\n\n/** @typedef {import('./slide.js').SlideData} SlideData */\n\n/** @typedef {import('../core/base.js').default} PhotoSwipeBase */\n\n/** @typedef {import('../util/util.js').LoadState} LoadState */\n\nclass Content {\n /**\r\n * @param {SlideData} itemData Slide data\r\n * @param {PhotoSwipeBase} instance PhotoSwipe or PhotoSwipeLightbox instance\r\n * @param {number} index\r\n */\n constructor(itemData, instance, index) {\n this.instance = instance;\n this.data = itemData;\n this.index = index;\n /** @type {HTMLImageElement | HTMLDivElement | undefined} */\n\n this.element = undefined;\n /** @type {Placeholder | undefined} */\n\n this.placeholder = undefined;\n /** @type {Slide | undefined} */\n\n this.slide = undefined;\n this.displayedImageWidth = 0;\n this.displayedImageHeight = 0;\n this.width = Number(this.data.w) || Number(this.data.width) || 0;\n this.height = Number(this.data.h) || Number(this.data.height) || 0;\n this.isAttached = false;\n this.hasSlide = false;\n this.isDecoding = false;\n /** @type {LoadState} */\n\n this.state = LOAD_STATE.IDLE;\n\n if (this.data.type) {\n this.type = this.data.type;\n } else if (this.data.src) {\n this.type = 'image';\n } else {\n this.type = 'html';\n }\n\n this.instance.dispatch('contentInit', {\n content: this\n });\n }\n\n removePlaceholder() {\n if (this.placeholder && !this.keepPlaceholder()) {\n // With delay, as image might be loaded, but not rendered\n setTimeout(() => {\n if (this.placeholder) {\n this.placeholder.destroy();\n this.placeholder = undefined;\n }\n }, 1000);\n }\n }\n /**\r\n * Preload content\r\n *\r\n * @param {boolean} isLazy\r\n * @param {boolean} [reload]\r\n */\n\n\n load(isLazy, reload) {\n if (this.slide && this.usePlaceholder()) {\n if (!this.placeholder) {\n const placeholderSrc = this.instance.applyFilters('placeholderSrc', // use image-based placeholder only for the first slide,\n // as rendering (even small stretched thumbnail) is an expensive operation\n this.data.msrc && this.slide.isFirstSlide ? this.data.msrc : false, this);\n this.placeholder = new Placeholder(placeholderSrc, this.slide.container);\n } else {\n const placeholderEl = this.placeholder.element; // Add placeholder to DOM if it was already created\n\n if (placeholderEl && !placeholderEl.parentElement) {\n this.slide.container.prepend(placeholderEl);\n }\n }\n }\n\n if (this.element && !reload) {\n return;\n }\n\n if (this.instance.dispatch('contentLoad', {\n content: this,\n isLazy\n }).defaultPrevented) {\n return;\n }\n\n if (this.isImageContent()) {\n this.element = createElement('pswp__img', 'img'); // Start loading only after width is defined, as sizes might depend on it.\n // Due to Safari feature, we must define sizes before srcset.\n\n if (this.displayedImageWidth) {\n this.loadImage(isLazy);\n }\n } else {\n this.element = createElement('pswp__content', 'div');\n this.element.innerHTML = this.data.html || '';\n }\n\n if (reload && this.slide) {\n this.slide.updateContentSize(true);\n }\n }\n /**\r\n * Preload image\r\n *\r\n * @param {boolean} isLazy\r\n */\n\n\n loadImage(isLazy) {\n var _this$data$src, _this$data$alt;\n\n if (!this.isImageContent() || !this.element || this.instance.dispatch('contentLoadImage', {\n content: this,\n isLazy\n }).defaultPrevented) {\n return;\n }\n\n const imageElement =\n /** @type HTMLImageElement */\n this.element;\n this.updateSrcsetSizes();\n\n if (this.data.srcset) {\n imageElement.srcset = this.data.srcset;\n }\n\n imageElement.src = (_this$data$src = this.data.src) !== null && _this$data$src !== void 0 ? _this$data$src : '';\n imageElement.alt = (_this$data$alt = this.data.alt) !== null && _this$data$alt !== void 0 ? _this$data$alt : '';\n this.state = LOAD_STATE.LOADING;\n\n if (imageElement.complete) {\n this.onLoaded();\n } else {\n imageElement.onload = () => {\n this.onLoaded();\n };\n\n imageElement.onerror = () => {\n this.onError();\n };\n }\n }\n /**\r\n * Assign slide to content\r\n *\r\n * @param {Slide} slide\r\n */\n\n\n setSlide(slide) {\n this.slide = slide;\n this.hasSlide = true;\n this.instance = slide.pswp; // todo: do we need to unset slide?\n }\n /**\r\n * Content load success handler\r\n */\n\n\n onLoaded() {\n this.state = LOAD_STATE.LOADED;\n\n if (this.slide && this.element) {\n this.instance.dispatch('loadComplete', {\n slide: this.slide,\n content: this\n }); // if content is reloaded\n\n if (this.slide.isActive && this.slide.heavyAppended && !this.element.parentNode) {\n this.append();\n this.slide.updateContentSize(true);\n }\n\n if (this.state === LOAD_STATE.LOADED || this.state === LOAD_STATE.ERROR) {\n this.removePlaceholder();\n }\n }\n }\n /**\r\n * Content load error handler\r\n */\n\n\n onError() {\n this.state = LOAD_STATE.ERROR;\n\n if (this.slide) {\n this.displayError();\n this.instance.dispatch('loadComplete', {\n slide: this.slide,\n isError: true,\n content: this\n });\n this.instance.dispatch('loadError', {\n slide: this.slide,\n content: this\n });\n }\n }\n /**\r\n * @returns {Boolean} If the content is currently loading\r\n */\n\n\n isLoading() {\n return this.instance.applyFilters('isContentLoading', this.state === LOAD_STATE.LOADING, this);\n }\n /**\r\n * @returns {Boolean} If the content is in error state\r\n */\n\n\n isError() {\n return this.state === LOAD_STATE.ERROR;\n }\n /**\r\n * @returns {boolean} If the content is image\r\n */\n\n\n isImageContent() {\n return this.type === 'image';\n }\n /**\r\n * Update content size\r\n *\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\n\n\n setDisplayedSize(width, height) {\n if (!this.element) {\n return;\n }\n\n if (this.placeholder) {\n this.placeholder.setDisplayedSize(width, height);\n }\n\n if (this.instance.dispatch('contentResize', {\n content: this,\n width,\n height\n }).defaultPrevented) {\n return;\n }\n\n setWidthHeight(this.element, width, height);\n\n if (this.isImageContent() && !this.isError()) {\n const isInitialSizeUpdate = !this.displayedImageWidth && width;\n this.displayedImageWidth = width;\n this.displayedImageHeight = height;\n\n if (isInitialSizeUpdate) {\n this.loadImage(false);\n } else {\n this.updateSrcsetSizes();\n }\n\n if (this.slide) {\n this.instance.dispatch('imageSizeChange', {\n slide: this.slide,\n width,\n height,\n content: this\n });\n }\n }\n }\n /**\r\n * @returns {boolean} If the content can be zoomed\r\n */\n\n\n isZoomable() {\n return this.instance.applyFilters('isContentZoomable', this.isImageContent() && this.state !== LOAD_STATE.ERROR, this);\n }\n /**\r\n * Update image srcset sizes attribute based on width and height\r\n */\n\n\n updateSrcsetSizes() {\n // Handle srcset sizes attribute.\n //\n // Never lower quality, if it was increased previously.\n // Chrome does this automatically, Firefox and Safari do not,\n // so we store largest used size in dataset.\n if (!this.isImageContent() || !this.element || !this.data.srcset) {\n return;\n }\n\n const image =\n /** @type HTMLImageElement */\n this.element;\n const sizesWidth = this.instance.applyFilters('srcsetSizesWidth', this.displayedImageWidth, this);\n\n if (!image.dataset.largestUsedSize || sizesWidth > parseInt(image.dataset.largestUsedSize, 10)) {\n image.sizes = sizesWidth + 'px';\n image.dataset.largestUsedSize = String(sizesWidth);\n }\n }\n /**\r\n * @returns {boolean} If content should use a placeholder (from msrc by default)\r\n */\n\n\n usePlaceholder() {\n return this.instance.applyFilters('useContentPlaceholder', this.isImageContent(), this);\n }\n /**\r\n * Preload content with lazy-loading param\r\n */\n\n\n lazyLoad() {\n if (this.instance.dispatch('contentLazyLoad', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n this.load(true);\n }\n /**\r\n * @returns {boolean} If placeholder should be kept after content is loaded\r\n */\n\n\n keepPlaceholder() {\n return this.instance.applyFilters('isKeepingPlaceholder', this.isLoading(), this);\n }\n /**\r\n * Destroy the content\r\n */\n\n\n destroy() {\n this.hasSlide = false;\n this.slide = undefined;\n\n if (this.instance.dispatch('contentDestroy', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n this.remove();\n\n if (this.placeholder) {\n this.placeholder.destroy();\n this.placeholder = undefined;\n }\n\n if (this.isImageContent() && this.element) {\n this.element.onload = null;\n this.element.onerror = null;\n this.element = undefined;\n }\n }\n /**\r\n * Display error message\r\n */\n\n\n displayError() {\n if (this.slide) {\n var _this$instance$option, _this$instance$option2;\n\n let errorMsgEl = createElement('pswp__error-msg', 'div');\n errorMsgEl.innerText = (_this$instance$option = (_this$instance$option2 = this.instance.options) === null || _this$instance$option2 === void 0 ? void 0 : _this$instance$option2.errorMsg) !== null && _this$instance$option !== void 0 ? _this$instance$option : '';\n errorMsgEl =\n /** @type {HTMLDivElement} */\n this.instance.applyFilters('contentErrorElement', errorMsgEl, this);\n this.element = createElement('pswp__content pswp__error-msg-container', 'div');\n this.element.appendChild(errorMsgEl);\n this.slide.container.innerText = '';\n this.slide.container.appendChild(this.element);\n this.slide.updateContentSize(true);\n this.removePlaceholder();\n }\n }\n /**\r\n * Append the content\r\n */\n\n\n append() {\n if (this.isAttached || !this.element) {\n return;\n }\n\n this.isAttached = true;\n\n if (this.state === LOAD_STATE.ERROR) {\n this.displayError();\n return;\n }\n\n if (this.instance.dispatch('contentAppend', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n const supportsDecode = ('decode' in this.element);\n\n if (this.isImageContent()) {\n // Use decode() on nearby slides\n //\n // Nearby slide images are in DOM and not hidden via display:none.\n // However, they are placed offscreen (to the left and right side).\n //\n // Some browsers do not composite the image until it's actually visible,\n // using decode() helps.\n //\n // You might ask \"why dont you just decode() and then append all images\",\n // that's because I want to show image before it's fully loaded,\n // as browser can render parts of image while it is loading.\n // We do not do this in Safari due to partial loading bug.\n if (supportsDecode && this.slide && (!this.slide.isActive || isSafari())) {\n this.isDecoding = true; // purposefully using finally instead of then,\n // as if srcset sizes changes dynamically - it may cause decode error\n\n /** @type {HTMLImageElement} */\n\n this.element.decode().catch(() => {}).finally(() => {\n this.isDecoding = false;\n this.appendImage();\n });\n } else {\n this.appendImage();\n }\n } else if (this.slide && !this.element.parentNode) {\n this.slide.container.appendChild(this.element);\n }\n }\n /**\r\n * Activate the slide,\r\n * active slide is generally the current one,\r\n * meaning the user can see it.\r\n */\n\n\n activate() {\n if (this.instance.dispatch('contentActivate', {\n content: this\n }).defaultPrevented || !this.slide) {\n return;\n }\n\n if (this.isImageContent() && this.isDecoding && !isSafari()) {\n // add image to slide when it becomes active,\n // even if it's not finished decoding\n this.appendImage();\n } else if (this.isError()) {\n this.load(false, true); // try to reload\n }\n\n if (this.slide.holderElement) {\n this.slide.holderElement.setAttribute('aria-hidden', 'false');\n }\n }\n /**\r\n * Deactivate the content\r\n */\n\n\n deactivate() {\n this.instance.dispatch('contentDeactivate', {\n content: this\n });\n\n if (this.slide && this.slide.holderElement) {\n this.slide.holderElement.setAttribute('aria-hidden', 'true');\n }\n }\n /**\r\n * Remove the content from DOM\r\n */\n\n\n remove() {\n this.isAttached = false;\n\n if (this.instance.dispatch('contentRemove', {\n content: this\n }).defaultPrevented) {\n return;\n }\n\n if (this.element && this.element.parentNode) {\n this.element.remove();\n }\n\n if (this.placeholder && this.placeholder.element) {\n this.placeholder.element.remove();\n }\n }\n /**\r\n * Append the image content to slide container\r\n */\n\n\n appendImage() {\n if (!this.isAttached) {\n return;\n }\n\n if (this.instance.dispatch('contentAppendImage', {\n content: this\n }).defaultPrevented) {\n return;\n } // ensure that element exists and is not already appended\n\n\n if (this.slide && this.element && !this.element.parentNode) {\n this.slide.container.appendChild(this.element);\n }\n\n if (this.state === LOAD_STATE.LOADED || this.state === LOAD_STATE.ERROR) {\n this.removePlaceholder();\n }\n }\n\n}\n\n/** @typedef {import('./content.js').default} Content */\n\n/** @typedef {import('./slide.js').default} Slide */\n\n/** @typedef {import('./slide.js').SlideData} SlideData */\n\n/** @typedef {import('../core/base.js').default} PhotoSwipeBase */\n\n/** @typedef {import('../photoswipe.js').default} PhotoSwipe */\n\nconst MIN_SLIDES_TO_CACHE = 5;\n/**\r\n * Lazy-load an image\r\n * This function is used both by Lightbox and PhotoSwipe core,\r\n * thus it can be called before dialog is opened.\r\n *\r\n * @param {SlideData} itemData Data about the slide\r\n * @param {PhotoSwipeBase} instance PhotoSwipe or PhotoSwipeLightbox instance\r\n * @param {number} index\r\n * @returns {Content} Image that is being decoded or false.\r\n */\n\nfunction lazyLoadData(itemData, instance, index) {\n const content = instance.createContentFromData(itemData, index);\n /** @type {ZoomLevel | undefined} */\n\n let zoomLevel;\n const {\n options\n } = instance; // We need to know dimensions of the image to preload it,\n // as it might use srcset, and we need to define sizes\n\n if (options) {\n zoomLevel = new ZoomLevel(options, itemData, -1);\n let viewportSize;\n\n if (instance.pswp) {\n viewportSize = instance.pswp.viewportSize;\n } else {\n viewportSize = getViewportSize(options, instance);\n }\n\n const panAreaSize = getPanAreaSize(options, viewportSize, itemData, index);\n zoomLevel.update(content.width, content.height, panAreaSize);\n }\n\n content.lazyLoad();\n\n if (zoomLevel) {\n content.setDisplayedSize(Math.ceil(content.width * zoomLevel.initial), Math.ceil(content.height * zoomLevel.initial));\n }\n\n return content;\n}\n/**\r\n * Lazy-loads specific slide.\r\n * This function is used both by Lightbox and PhotoSwipe core,\r\n * thus it can be called before dialog is opened.\r\n *\r\n * By default, it loads image based on viewport size and initial zoom level.\r\n *\r\n * @param {number} index Slide index\r\n * @param {PhotoSwipeBase} instance PhotoSwipe or PhotoSwipeLightbox eventable instance\r\n * @returns {Content | undefined}\r\n */\n\nfunction lazyLoadSlide(index, instance) {\n const itemData = instance.getItemData(index);\n\n if (instance.dispatch('lazyLoadSlide', {\n index,\n itemData\n }).defaultPrevented) {\n return;\n }\n\n return lazyLoadData(itemData, instance, index);\n}\n\nclass ContentLoader {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp; // Total amount of cached images\n\n this.limit = Math.max(pswp.options.preload[0] + pswp.options.preload[1] + 1, MIN_SLIDES_TO_CACHE);\n /** @type {Content[]} */\n\n this._cachedItems = [];\n }\n /**\r\n * Lazy load nearby slides based on `preload` option.\r\n *\r\n * @param {number} [diff] Difference between slide indexes that was changed recently, or 0.\r\n */\n\n\n updateLazy(diff) {\n const {\n pswp\n } = this;\n\n if (pswp.dispatch('lazyLoad').defaultPrevented) {\n return;\n }\n\n const {\n preload\n } = pswp.options;\n const isForward = diff === undefined ? true : diff >= 0;\n let i; // preload[1] - num items to preload in forward direction\n\n for (i = 0; i <= preload[1]; i++) {\n this.loadSlideByIndex(pswp.currIndex + (isForward ? i : -i));\n } // preload[0] - num items to preload in backward direction\n\n\n for (i = 1; i <= preload[0]; i++) {\n this.loadSlideByIndex(pswp.currIndex + (isForward ? -i : i));\n }\n }\n /**\r\n * @param {number} initialIndex\r\n */\n\n\n loadSlideByIndex(initialIndex) {\n const index = this.pswp.getLoopedIndex(initialIndex); // try to get cached content\n\n let content = this.getContentByIndex(index);\n\n if (!content) {\n // no cached content, so try to load from scratch:\n content = lazyLoadSlide(index, this.pswp); // if content can be loaded, add it to cache:\n\n if (content) {\n this.addToCache(content);\n }\n }\n }\n /**\r\n * @param {Slide} slide\r\n * @returns {Content}\r\n */\n\n\n getContentBySlide(slide) {\n let content = this.getContentByIndex(slide.index);\n\n if (!content) {\n // create content if not found in cache\n content = this.pswp.createContentFromData(slide.data, slide.index);\n this.addToCache(content);\n } // assign slide to content\n\n\n content.setSlide(slide);\n return content;\n }\n /**\r\n * @param {Content} content\r\n */\n\n\n addToCache(content) {\n // move to the end of array\n this.removeByIndex(content.index);\n\n this._cachedItems.push(content);\n\n if (this._cachedItems.length > this.limit) {\n // Destroy the first content that's not attached\n const indexToRemove = this._cachedItems.findIndex(item => {\n return !item.isAttached && !item.hasSlide;\n });\n\n if (indexToRemove !== -1) {\n const removedItem = this._cachedItems.splice(indexToRemove, 1)[0];\n\n removedItem.destroy();\n }\n }\n }\n /**\r\n * Removes an image from cache, does not destroy() it, just removes.\r\n *\r\n * @param {number} index\r\n */\n\n\n removeByIndex(index) {\n const indexToRemove = this._cachedItems.findIndex(item => item.index === index);\n\n if (indexToRemove !== -1) {\n this._cachedItems.splice(indexToRemove, 1);\n }\n }\n /**\r\n * @param {number} index\r\n * @returns {Content | undefined}\r\n */\n\n\n getContentByIndex(index) {\n return this._cachedItems.find(content => content.index === index);\n }\n\n destroy() {\n this._cachedItems.forEach(content => content.destroy());\n\n this._cachedItems = [];\n }\n\n}\n\n/** @typedef {import(\"../photoswipe.js\").default} PhotoSwipe */\n\n/** @typedef {import(\"../slide/slide.js\").SlideData} SlideData */\n\n/**\r\n * PhotoSwipe base class that can retrieve data about every slide.\r\n * Shared by PhotoSwipe Core and PhotoSwipe Lightbox\r\n */\n\nclass PhotoSwipeBase extends Eventable {\n /**\r\n * Get total number of slides\r\n *\r\n * @returns {number}\r\n */\n getNumItems() {\n var _this$options;\n\n let numItems = 0;\n const dataSource = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.dataSource;\n\n if (dataSource && 'length' in dataSource) {\n // may be an array or just object with length property\n numItems = dataSource.length;\n } else if (dataSource && 'gallery' in dataSource) {\n // query DOM elements\n if (!dataSource.items) {\n dataSource.items = this._getGalleryDOMElements(dataSource.gallery);\n }\n\n if (dataSource.items) {\n numItems = dataSource.items.length;\n }\n } // legacy event, before filters were introduced\n\n\n const event = this.dispatch('numItems', {\n dataSource,\n numItems\n });\n return this.applyFilters('numItems', event.numItems, dataSource);\n }\n /**\r\n * @param {SlideData} slideData\r\n * @param {number} index\r\n * @returns {Content}\r\n */\n\n\n createContentFromData(slideData, index) {\n return new Content(slideData, this, index);\n }\n /**\r\n * Get item data by index.\r\n *\r\n * \"item data\" should contain normalized information that PhotoSwipe needs to generate a slide.\r\n * For example, it may contain properties like\r\n * `src`, `srcset`, `w`, `h`, which will be used to generate a slide with image.\r\n *\r\n * @param {number} index\r\n * @returns {SlideData}\r\n */\n\n\n getItemData(index) {\n var _this$options2;\n\n const dataSource = (_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2.dataSource;\n /** @type {SlideData | HTMLElement} */\n\n let dataSourceItem = {};\n\n if (Array.isArray(dataSource)) {\n // Datasource is an array of elements\n dataSourceItem = dataSource[index];\n } else if (dataSource && 'gallery' in dataSource) {\n // dataSource has gallery property,\n // thus it was created by Lightbox, based on\n // gallery and children options\n // query DOM elements\n if (!dataSource.items) {\n dataSource.items = this._getGalleryDOMElements(dataSource.gallery);\n }\n\n dataSourceItem = dataSource.items[index];\n }\n\n let itemData = dataSourceItem;\n\n if (itemData instanceof Element) {\n itemData = this._domElementToItemData(itemData);\n } // Dispatching the itemData event,\n // it's a legacy verion before filters were introduced\n\n\n const event = this.dispatch('itemData', {\n itemData: itemData || {},\n index\n });\n return this.applyFilters('itemData', event.itemData, index);\n }\n /**\r\n * Get array of gallery DOM elements,\r\n * based on childSelector and gallery element.\r\n *\r\n * @param {HTMLElement} galleryElement\r\n * @returns {HTMLElement[]}\r\n */\n\n\n _getGalleryDOMElements(galleryElement) {\n var _this$options3, _this$options4;\n\n if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.children || (_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.childSelector) {\n return getElementsFromOption(this.options.children, this.options.childSelector, galleryElement) || [];\n }\n\n return [galleryElement];\n }\n /**\r\n * Converts DOM element to item data object.\r\n *\r\n * @param {HTMLElement} element DOM element\r\n * @returns {SlideData}\r\n */\n\n\n _domElementToItemData(element) {\n /** @type {SlideData} */\n const itemData = {\n element\n };\n const linkEl =\n /** @type {HTMLAnchorElement} */\n element.tagName === 'A' ? element : element.querySelector('a');\n\n if (linkEl) {\n // src comes from data-pswp-src attribute,\n // if it's empty link href is used\n itemData.src = linkEl.dataset.pswpSrc || linkEl.href;\n\n if (linkEl.dataset.pswpSrcset) {\n itemData.srcset = linkEl.dataset.pswpSrcset;\n }\n\n itemData.width = linkEl.dataset.pswpWidth ? parseInt(linkEl.dataset.pswpWidth, 10) : 0;\n itemData.height = linkEl.dataset.pswpHeight ? parseInt(linkEl.dataset.pswpHeight, 10) : 0; // support legacy w & h properties\n\n itemData.w = itemData.width;\n itemData.h = itemData.height;\n\n if (linkEl.dataset.pswpType) {\n itemData.type = linkEl.dataset.pswpType;\n }\n\n const thumbnailEl = element.querySelector('img');\n\n if (thumbnailEl) {\n var _thumbnailEl$getAttri;\n\n // msrc is URL to placeholder image that's displayed before large image is loaded\n // by default it's displayed only for the first slide\n itemData.msrc = thumbnailEl.currentSrc || thumbnailEl.src;\n itemData.alt = (_thumbnailEl$getAttri = thumbnailEl.getAttribute('alt')) !== null && _thumbnailEl$getAttri !== void 0 ? _thumbnailEl$getAttri : '';\n }\n\n if (linkEl.dataset.pswpCropped || linkEl.dataset.cropped) {\n itemData.thumbCropped = true;\n }\n }\n\n return this.applyFilters('domItemData', itemData, element, linkEl);\n }\n /**\r\n * Lazy-load by slide data\r\n *\r\n * @param {SlideData} itemData Data about the slide\r\n * @param {number} index\r\n * @returns {Content} Image that is being decoded or false.\r\n */\n\n\n lazyLoadData(itemData, index) {\n return lazyLoadData(itemData, this, index);\n }\n\n}\n\n/** @typedef {import('./photoswipe.js').default} PhotoSwipe */\n\n/** @typedef {import('./slide/get-thumb-bounds.js').Bounds} Bounds */\n\n/** @typedef {import('./util/animations.js').AnimationProps} AnimationProps */\n// some browsers do not paint\n// elements which opacity is set to 0,\n// since we need to pre-render elements for the animation -\n// we set it to the minimum amount\n\nconst MIN_OPACITY = 0.003;\n/**\r\n * Manages opening and closing transitions of the PhotoSwipe.\r\n *\r\n * It can perform zoom, fade or no transition.\r\n */\n\nclass Opener {\n /**\r\n * @param {PhotoSwipe} pswp\r\n */\n constructor(pswp) {\n this.pswp = pswp;\n this.isClosed = true;\n this.isOpen = false;\n this.isClosing = false;\n this.isOpening = false;\n /**\r\n * @private\r\n * @type {number | false | undefined}\r\n */\n\n this._duration = undefined;\n /** @private */\n\n this._useAnimation = false;\n /** @private */\n\n this._croppedZoom = false;\n /** @private */\n\n this._animateRootOpacity = false;\n /** @private */\n\n this._animateBgOpacity = false;\n /**\r\n * @private\r\n * @type { HTMLDivElement | HTMLImageElement | null | undefined }\r\n */\n\n this._placeholder = undefined;\n /**\r\n * @private\r\n * @type { HTMLDivElement | undefined }\r\n */\n\n this._opacityElement = undefined;\n /**\r\n * @private\r\n * @type { HTMLDivElement | undefined }\r\n */\n\n this._cropContainer1 = undefined;\n /**\r\n * @private\r\n * @type { HTMLElement | null | undefined }\r\n */\n\n this._cropContainer2 = undefined;\n /**\r\n * @private\r\n * @type {Bounds | undefined}\r\n */\n\n this._thumbBounds = undefined;\n this._prepareOpen = this._prepareOpen.bind(this); // Override initial zoom and pan position\n\n pswp.on('firstZoomPan', this._prepareOpen);\n }\n\n open() {\n this._prepareOpen();\n\n this._start();\n }\n\n close() {\n if (this.isClosed || this.isClosing || this.isOpening) {\n // if we close during opening animation\n // for now do nothing,\n // browsers aren't good at changing the direction of the CSS transition\n return;\n }\n\n const slide = this.pswp.currSlide;\n this.isOpen = false;\n this.isOpening = false;\n this.isClosing = true;\n this._duration = this.pswp.options.hideAnimationDuration;\n\n if (slide && slide.currZoomLevel * slide.width >= this.pswp.options.maxWidthToAnimate) {\n this._duration = 0;\n }\n\n this._applyStartProps();\n\n setTimeout(() => {\n this._start();\n }, this._croppedZoom ? 30 : 0);\n }\n /** @private */\n\n\n _prepareOpen() {\n this.pswp.off('firstZoomPan', this._prepareOpen);\n\n if (!this.isOpening) {\n const slide = this.pswp.currSlide;\n this.isOpening = true;\n this.isClosing = false;\n this._duration = this.pswp.options.showAnimationDuration;\n\n if (slide && slide.zoomLevels.initial * slide.width >= this.pswp.options.maxWidthToAnimate) {\n this._duration = 0;\n }\n\n this._applyStartProps();\n }\n }\n /** @private */\n\n\n _applyStartProps() {\n const {\n pswp\n } = this;\n const slide = this.pswp.currSlide;\n const {\n options\n } = pswp;\n\n if (options.showHideAnimationType === 'fade') {\n options.showHideOpacity = true;\n this._thumbBounds = undefined;\n } else if (options.showHideAnimationType === 'none') {\n options.showHideOpacity = false;\n this._duration = 0;\n this._thumbBounds = undefined;\n } else if (this.isOpening && pswp._initialThumbBounds) {\n // Use initial bounds if defined\n this._thumbBounds = pswp._initialThumbBounds;\n } else {\n this._thumbBounds = this.pswp.getThumbBounds();\n }\n\n this._placeholder = slide === null || slide === void 0 ? void 0 : slide.getPlaceholderElement();\n pswp.animations.stopAll(); // Discard animations when duration is less than 50ms\n\n this._useAnimation = Boolean(this._duration && this._duration > 50);\n this._animateZoom = Boolean(this._thumbBounds) && (slide === null || slide === void 0 ? void 0 : slide.content.usePlaceholder()) && (!this.isClosing || !pswp.mainScroll.isShifted());\n\n if (!this._animateZoom) {\n this._animateRootOpacity = true;\n\n if (this.isOpening && slide) {\n slide.zoomAndPanToInitial();\n slide.applyCurrentZoomPan();\n }\n } else {\n var _options$showHideOpac;\n\n this._animateRootOpacity = (_options$showHideOpac = options.showHideOpacity) !== null && _options$showHideOpac !== void 0 ? _options$showHideOpac : false;\n }\n\n this._animateBgOpacity = !this._animateRootOpacity && this.pswp.options.bgOpacity > MIN_OPACITY;\n this._opacityElement = this._animateRootOpacity ? pswp.element : pswp.bg;\n\n if (!this._useAnimation) {\n this._duration = 0;\n this._animateZoom = false;\n this._animateBgOpacity = false;\n this._animateRootOpacity = true;\n\n if (this.isOpening) {\n if (pswp.element) {\n pswp.element.style.opacity = String(MIN_OPACITY);\n }\n\n pswp.applyBgOpacity(1);\n }\n\n return;\n }\n\n if (this._animateZoom && this._thumbBounds && this._thumbBounds.innerRect) {\n var _this$pswp$currSlide;\n\n // Properties are used when animation from cropped thumbnail\n this._croppedZoom = true;\n this._cropContainer1 = this.pswp.container;\n this._cropContainer2 = (_this$pswp$currSlide = this.pswp.currSlide) === null || _this$pswp$currSlide === void 0 ? void 0 : _this$pswp$currSlide.holderElement;\n\n if (pswp.container) {\n pswp.container.style.overflow = 'hidden';\n pswp.container.style.width = pswp.viewportSize.x + 'px';\n }\n } else {\n this._croppedZoom = false;\n }\n\n if (this.isOpening) {\n // Apply styles before opening transition\n if (this._animateRootOpacity) {\n if (pswp.element) {\n pswp.element.style.opacity = String(MIN_OPACITY);\n }\n\n pswp.applyBgOpacity(1);\n } else {\n if (this._animateBgOpacity && pswp.bg) {\n pswp.bg.style.opacity = String(MIN_OPACITY);\n }\n\n if (pswp.element) {\n pswp.element.style.opacity = '1';\n }\n }\n\n if (this._animateZoom) {\n this._setClosedStateZoomPan();\n\n if (this._placeholder) {\n // tell browser that we plan to animate the placeholder\n this._placeholder.style.willChange = 'transform'; // hide placeholder to allow hiding of\n // elements that overlap it (such as icons over the thumbnail)\n\n this._placeholder.style.opacity = String(MIN_OPACITY);\n }\n }\n } else if (this.isClosing) {\n // hide nearby slides to make sure that\n // they are not painted during the transition\n if (pswp.mainScroll.itemHolders[0]) {\n pswp.mainScroll.itemHolders[0].el.style.display = 'none';\n }\n\n if (pswp.mainScroll.itemHolders[2]) {\n pswp.mainScroll.itemHolders[2].el.style.display = 'none';\n }\n\n if (this._croppedZoom) {\n if (pswp.mainScroll.x !== 0) {\n // shift the main scroller to zero position\n pswp.mainScroll.resetPosition();\n pswp.mainScroll.resize();\n }\n }\n }\n }\n /** @private */\n\n\n _start() {\n if (this.isOpening && this._useAnimation && this._placeholder && this._placeholder.tagName === 'IMG') {\n // To ensure smooth animation\n // we wait till the current slide image placeholder is decoded,\n // but no longer than 250ms,\n // and no shorter than 50ms\n // (just using requestanimationframe is not enough in Firefox,\n // for some reason)\n new Promise(resolve => {\n let decoded = false;\n let isDelaying = true;\n decodeImage(\n /** @type {HTMLImageElement} */\n this._placeholder).finally(() => {\n decoded = true;\n\n if (!isDelaying) {\n resolve(true);\n }\n });\n setTimeout(() => {\n isDelaying = false;\n\n if (decoded) {\n resolve(true);\n }\n }, 50);\n setTimeout(resolve, 250);\n }).finally(() => this._initiate());\n } else {\n this._initiate();\n }\n }\n /** @private */\n\n\n _initiate() {\n var _this$pswp$element, _this$pswp$element2;\n\n (_this$pswp$element = this.pswp.element) === null || _this$pswp$element === void 0 || _this$pswp$element.style.setProperty('--pswp-transition-duration', this._duration + 'ms');\n this.pswp.dispatch(this.isOpening ? 'openingAnimationStart' : 'closingAnimationStart'); // legacy event\n\n this.pswp.dispatch(\n /** @type {'initialZoomIn' | 'initialZoomOut'} */\n 'initialZoom' + (this.isOpening ? 'In' : 'Out'));\n (_this$pswp$element2 = this.pswp.element) === null || _this$pswp$element2 === void 0 || _this$pswp$element2.classList.toggle('pswp--ui-visible', this.isOpening);\n\n if (this.isOpening) {\n if (this._placeholder) {\n // unhide the placeholder\n this._placeholder.style.opacity = '1';\n }\n\n this._animateToOpenState();\n } else if (this.isClosing) {\n this._animateToClosedState();\n }\n\n if (!this._useAnimation) {\n this._onAnimationComplete();\n }\n }\n /** @private */\n\n\n _onAnimationComplete() {\n const {\n pswp\n } = this;\n this.isOpen = this.isOpening;\n this.isClosed = this.isClosing;\n this.isOpening = false;\n this.isClosing = false;\n pswp.dispatch(this.isOpen ? 'openingAnimationEnd' : 'closingAnimationEnd'); // legacy event\n\n pswp.dispatch(\n /** @type {'initialZoomInEnd' | 'initialZoomOutEnd'} */\n 'initialZoom' + (this.isOpen ? 'InEnd' : 'OutEnd'));\n\n if (this.isClosed) {\n pswp.destroy();\n } else if (this.isOpen) {\n var _pswp$currSlide;\n\n if (this._animateZoom && pswp.container) {\n pswp.container.style.overflow = 'visible';\n pswp.container.style.width = '100%';\n }\n\n (_pswp$currSlide = pswp.currSlide) === null || _pswp$currSlide === void 0 || _pswp$currSlide.applyCurrentZoomPan();\n }\n }\n /** @private */\n\n\n _animateToOpenState() {\n const {\n pswp\n } = this;\n\n if (this._animateZoom) {\n if (this._croppedZoom && this._cropContainer1 && this._cropContainer2) {\n this._animateTo(this._cropContainer1, 'transform', 'translate3d(0,0,0)');\n\n this._animateTo(this._cropContainer2, 'transform', 'none');\n }\n\n if (pswp.currSlide) {\n pswp.currSlide.zoomAndPanToInitial();\n\n this._animateTo(pswp.currSlide.container, 'transform', pswp.currSlide.getCurrentTransform());\n }\n }\n\n if (this._animateBgOpacity && pswp.bg) {\n this._animateTo(pswp.bg, 'opacity', String(pswp.options.bgOpacity));\n }\n\n if (this._animateRootOpacity && pswp.element) {\n this._animateTo(pswp.element, 'opacity', '1');\n }\n }\n /** @private */\n\n\n _animateToClosedState() {\n const {\n pswp\n } = this;\n\n if (this._animateZoom) {\n this._setClosedStateZoomPan(true);\n } // do not animate opacity if it's already at 0\n\n\n if (this._animateBgOpacity && pswp.bgOpacity > 0.01 && pswp.bg) {\n this._animateTo(pswp.bg, 'opacity', '0');\n }\n\n if (this._animateRootOpacity && pswp.element) {\n this._animateTo(pswp.element, 'opacity', '0');\n }\n }\n /**\r\n * @private\r\n * @param {boolean} [animate]\r\n */\n\n\n _setClosedStateZoomPan(animate) {\n if (!this._thumbBounds) return;\n const {\n pswp\n } = this;\n const {\n innerRect\n } = this._thumbBounds;\n const {\n currSlide,\n viewportSize\n } = pswp;\n\n if (this._croppedZoom && innerRect && this._cropContainer1 && this._cropContainer2) {\n const containerOnePanX = -viewportSize.x + (this._thumbBounds.x - innerRect.x) + innerRect.w;\n const containerOnePanY = -viewportSize.y + (this._thumbBounds.y - innerRect.y) + innerRect.h;\n const containerTwoPanX = viewportSize.x - innerRect.w;\n const containerTwoPanY = viewportSize.y - innerRect.h;\n\n if (animate) {\n this._animateTo(this._cropContainer1, 'transform', toTransformString(containerOnePanX, containerOnePanY));\n\n this._animateTo(this._cropContainer2, 'transform', toTransformString(containerTwoPanX, containerTwoPanY));\n } else {\n setTransform(this._cropContainer1, containerOnePanX, containerOnePanY);\n setTransform(this._cropContainer2, containerTwoPanX, containerTwoPanY);\n }\n }\n\n if (currSlide) {\n equalizePoints(currSlide.pan, innerRect || this._thumbBounds);\n currSlide.currZoomLevel = this._thumbBounds.w / currSlide.width;\n\n if (animate) {\n this._animateTo(currSlide.container, 'transform', currSlide.getCurrentTransform());\n } else {\n currSlide.applyCurrentZoomPan();\n }\n }\n }\n /**\r\n * @private\r\n * @param {HTMLElement} target\r\n * @param {'transform' | 'opacity'} prop\r\n * @param {string} propValue\r\n */\n\n\n _animateTo(target, prop, propValue) {\n if (!this._duration) {\n target.style[prop] = propValue;\n return;\n }\n\n const {\n animations\n } = this.pswp;\n /** @type {AnimationProps} */\n\n const animProps = {\n duration: this._duration,\n easing: this.pswp.options.easing,\n onComplete: () => {\n if (!animations.activeAnimations.length) {\n this._onAnimationComplete();\n }\n },\n target\n };\n animProps[prop] = propValue;\n animations.startTransition(animProps);\n }\n\n}\n\n/**\r\n * @template T\r\n * @typedef {import('./types.js').Type<T>} Type<T>\r\n */\n\n/** @typedef {import('./slide/slide.js').SlideData} SlideData */\n\n/** @typedef {import('./slide/zoom-level.js').ZoomLevelOption} ZoomLevelOption */\n\n/** @typedef {import('./ui/ui-element.js').UIElementData} UIElementData */\n\n/** @typedef {import('./main-scroll.js').ItemHolder} ItemHolder */\n\n/** @typedef {import('./core/eventable.js').PhotoSwipeEventsMap} PhotoSwipeEventsMap */\n\n/** @typedef {import('./core/eventable.js').PhotoSwipeFiltersMap} PhotoSwipeFiltersMap */\n\n/** @typedef {import('./slide/get-thumb-bounds').Bounds} Bounds */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {import('./core/eventable.js').EventCallback<T>} EventCallback<T>\r\n */\n\n/**\r\n * @template {keyof PhotoSwipeEventsMap} T\r\n * @typedef {import('./core/eventable.js').AugmentedEvent<T>} AugmentedEvent<T>\r\n */\n\n/** @typedef {{ x: number; y: number; id?: string | number }} Point */\n\n/** @typedef {{ top: number; bottom: number; left: number; right: number }} Padding */\n\n/** @typedef {SlideData[]} DataSourceArray */\n\n/** @typedef {{ gallery: HTMLElement; items?: HTMLElement[] }} DataSourceObject */\n\n/** @typedef {DataSourceArray | DataSourceObject} DataSource */\n\n/** @typedef {(point: Point, originalEvent: PointerEvent) => void} ActionFn */\n\n/** @typedef {'close' | 'next' | 'zoom' | 'zoom-or-close' | 'toggle-controls'} ActionType */\n\n/** @typedef {Type<PhotoSwipe> | { default: Type<PhotoSwipe> }} PhotoSwipeModule */\n\n/** @typedef {PhotoSwipeModule | Promise<PhotoSwipeModule> | (() => Promise<PhotoSwipeModule>)} PhotoSwipeModuleOption */\n\n/**\r\n * @typedef {string | NodeListOf<HTMLElement> | HTMLElement[] | HTMLElement} ElementProvider\r\n */\n\n/** @typedef {Partial<PreparedPhotoSwipeOptions>} PhotoSwipeOptions https://photoswipe.com/options/ */\n\n/**\r\n * @typedef {Object} PreparedPhotoSwipeOptions\r\n *\r\n * @prop {DataSource} [dataSource]\r\n * Pass an array of any items via dataSource option. Its length will determine amount of slides\r\n * (which may be modified further from numItems event).\r\n *\r\n * Each item should contain data that you need to generate slide\r\n * (for image slide it would be src (image URL), width (image width), height, srcset, alt).\r\n *\r\n * If these properties are not present in your initial array, you may \"pre-parse\" each item from itemData filter.\r\n *\r\n * @prop {number} bgOpacity\r\n * Background backdrop opacity, always define it via this option and not via CSS rgba color.\r\n *\r\n * @prop {number} spacing\r\n * Spacing between slides. Defined as ratio relative to the viewport width (0.1 = 10% of viewport).\r\n *\r\n * @prop {boolean} allowPanToNext\r\n * Allow swipe navigation to the next slide when the current slide is zoomed. Does not apply to mouse events.\r\n *\r\n * @prop {boolean} loop\r\n * If set to true you'll be able to swipe from the last to the first image.\r\n * Option is always false when there are less than 3 slides.\r\n *\r\n * @prop {boolean} [wheelToZoom]\r\n * By default PhotoSwipe zooms image with ctrl-wheel, if you enable this option - image will zoom just via wheel.\r\n *\r\n * @prop {boolean} pinchToClose\r\n * Pinch touch gesture to close the gallery.\r\n *\r\n * @prop {boolean} closeOnVerticalDrag\r\n * Vertical drag gesture to close the PhotoSwipe.\r\n *\r\n * @prop {Padding} [padding]\r\n * Slide area padding (in pixels).\r\n *\r\n * @prop {(viewportSize: Point, itemData: SlideData, index: number) => Padding} [paddingFn]\r\n * The option is checked frequently, so make sure it's performant. Overrides padding option if defined. For example:\r\n *\r\n * @prop {number | false} hideAnimationDuration\r\n * Transition duration in milliseconds, can be 0.\r\n *\r\n * @prop {number | false} showAnimationDuration\r\n * Transition duration in milliseconds, can be 0.\r\n *\r\n * @prop {number | false} zoomAnimationDuration\r\n * Transition duration in milliseconds, can be 0.\r\n *\r\n * @prop {string} easing\r\n * String, 'cubic-bezier(.4,0,.22,1)'. CSS easing function for open/close/zoom transitions.\r\n *\r\n * @prop {boolean} escKey\r\n * Esc key to close.\r\n *\r\n * @prop {boolean} arrowKeys\r\n * Left/right arrow keys for navigation.\r\n *\r\n * @prop {boolean} trapFocus\r\n * Trap focus within PhotoSwipe element while it's open.\r\n *\r\n * @prop {boolean} returnFocus\r\n * Restore focus the last active element after PhotoSwipe is closed.\r\n *\r\n * @prop {boolean} clickToCloseNonZoomable\r\n * If image is not zoomable (for example, smaller than viewport) it can be closed by clicking on it.\r\n *\r\n * @prop {ActionType | ActionFn | false} imageClickAction\r\n * Refer to click and tap actions page.\r\n *\r\n * @prop {ActionType | ActionFn | false} bgClickAction\r\n * Refer to click and tap actions page.\r\n *\r\n * @prop {ActionType | ActionFn | false} tapAction\r\n * Refer to click and tap actions page.\r\n *\r\n * @prop {ActionType | ActionFn | false} doubleTapAction\r\n * Refer to click and tap actions page.\r\n *\r\n * @prop {number} preloaderDelay\r\n * Delay before the loading indicator will be displayed,\r\n * if image is loaded during it - the indicator will not be displayed at all. Can be zero.\r\n *\r\n * @prop {string} indexIndicatorSep\r\n * Used for slide count indicator (\"1 of 10 \").\r\n *\r\n * @prop {(options: PhotoSwipeOptions, pswp: PhotoSwipeBase) => Point} [getViewportSizeFn]\r\n * A function that should return slide viewport width and height, in format {x: 100, y: 100}.\r\n *\r\n * @prop {string} errorMsg\r\n * Message to display when the image wasn't able to load. If you need to display HTML - use contentErrorElement filter.\r\n *\r\n * @prop {[number, number]} preload\r\n * Lazy loading of nearby slides based on direction of movement. Should be an array with two integers,\r\n * first one - number of items to preload before the current image, second one - after the current image.\r\n * Two nearby images are always loaded.\r\n *\r\n * @prop {string} [mainClass]\r\n * Class that will be added to the root element of PhotoSwipe, may contain multiple separated by space.\r\n * Example on Styling page.\r\n *\r\n * @prop {HTMLElement} [appendToEl]\r\n * Element to which PhotoSwipe dialog will be appended when it opens.\r\n *\r\n * @prop {number} maxWidthToAnimate\r\n * Maximum width of image to animate, if initial rendered image width\r\n * is larger than this value - the opening/closing transition will be automatically disabled.\r\n *\r\n * @prop {string} [closeTitle]\r\n * Translating\r\n *\r\n * @prop {string} [zoomTitle]\r\n * Translating\r\n *\r\n * @prop {string} [arrowPrevTitle]\r\n * Translating\r\n *\r\n * @prop {string} [arrowNextTitle]\r\n * Translating\r\n *\r\n * @prop {'zoom' | 'fade' | 'none'} [showHideAnimationType]\r\n * To adjust opening or closing transition type use lightbox option `showHideAnimationType` (`String`).\r\n * It supports three values - `zoom` (default), `fade` (default if there is no thumbnail) and `none`.\r\n *\r\n * Animations are automatically disabled if user `(prefers-reduced-motion: reduce)`.\r\n *\r\n * @prop {number} index\r\n * Defines start slide index.\r\n *\r\n * @prop {(e: MouseEvent) => number} [getClickedIndexFn]\r\n *\r\n * @prop {boolean} [arrowPrev]\r\n * @prop {boolean} [arrowNext]\r\n * @prop {boolean} [zoom]\r\n * @prop {boolean} [close]\r\n * @prop {boolean} [counter]\r\n *\r\n * @prop {string} [arrowPrevSVG]\r\n * @prop {string} [arrowNextSVG]\r\n * @prop {string} [zoomSVG]\r\n * @prop {string} [closeSVG]\r\n * @prop {string} [counterSVG]\r\n *\r\n * @prop {string} [arrowPrevTitle]\r\n * @prop {string} [arrowNextTitle]\r\n * @prop {string} [zoomTitle]\r\n * @prop {string} [closeTitle]\r\n * @prop {string} [counterTitle]\r\n *\r\n * @prop {ZoomLevelOption} [initialZoomLevel]\r\n * @prop {ZoomLevelOption} [secondaryZoomLevel]\r\n * @prop {ZoomLevelOption} [maxZoomLevel]\r\n *\r\n * @prop {boolean} [mouseMovePan]\r\n * @prop {Point | null} [initialPointerPos]\r\n * @prop {boolean} [showHideOpacity]\r\n *\r\n * @prop {PhotoSwipeModuleOption} [pswpModule]\r\n * @prop {() => Promise<any>} [openPromise]\r\n * @prop {boolean} [preloadFirstSlide]\r\n * @prop {ElementProvider} [gallery]\r\n * @prop {string} [gallerySelector]\r\n * @prop {ElementProvider} [children]\r\n * @prop {string} [childSelector]\r\n * @prop {string | false} [thumbSelector]\r\n */\n\n/** @type {PreparedPhotoSwipeOptions} */\n\nconst defaultOptions = {\n allowPanToNext: true,\n spacing: 0.1,\n loop: true,\n pinchToClose: true,\n closeOnVerticalDrag: true,\n hideAnimationDuration: 333,\n showAnimationDuration: 333,\n zoomAnimationDuration: 333,\n escKey: true,\n arrowKeys: true,\n trapFocus: true,\n returnFocus: true,\n maxWidthToAnimate: 4000,\n clickToCloseNonZoomable: true,\n imageClickAction: 'zoom-or-close',\n bgClickAction: 'close',\n tapAction: 'toggle-controls',\n doubleTapAction: 'zoom',\n indexIndicatorSep: ' / ',\n preloaderDelay: 2000,\n bgOpacity: 0.8,\n index: 0,\n errorMsg: 'The image cannot be loaded',\n preload: [1, 2],\n easing: 'cubic-bezier(.4,0,.22,1)'\n};\n/**\r\n * PhotoSwipe Core\r\n */\n\nclass PhotoSwipe extends PhotoSwipeBase {\n /**\r\n * @param {PhotoSwipeOptions} [options]\r\n */\n constructor(options) {\n super();\n this.options = this._prepareOptions(options || {});\n /**\r\n * offset of viewport relative to document\r\n *\r\n * @type {Point}\r\n */\n\n this.offset = {\n x: 0,\n y: 0\n };\n /**\r\n * @type {Point}\r\n * @private\r\n */\n\n this._prevViewportSize = {\n x: 0,\n y: 0\n };\n /**\r\n * Size of scrollable PhotoSwipe viewport\r\n *\r\n * @type {Point}\r\n */\n\n this.viewportSize = {\n x: 0,\n y: 0\n };\n /**\r\n * background (backdrop) opacity\r\n */\n\n this.bgOpacity = 1;\n this.currIndex = 0;\n this.potentialIndex = 0;\n this.isOpen = false;\n this.isDestroying = false;\n this.hasMouse = false;\n /**\r\n * @private\r\n * @type {SlideData}\r\n */\n\n this._initialItemData = {};\n /** @type {Bounds | undefined} */\n\n this._initialThumbBounds = undefined;\n /** @type {HTMLDivElement | undefined} */\n\n this.topBar = undefined;\n /** @type {HTMLDivElement | undefined} */\n\n this.element = undefined;\n /** @type {HTMLDivElement | undefined} */\n\n this.template = undefined;\n /** @type {HTMLDivElement | undefined} */\n\n this.container = undefined;\n /** @type {HTMLElement | undefined} */\n\n this.scrollWrap = undefined;\n /** @type {Slide | undefined} */\n\n this.currSlide = undefined;\n this.events = new DOMEvents();\n this.animations = new Animations();\n this.mainScroll = new MainScroll(this);\n this.gestures = new Gestures(this);\n this.opener = new Opener(this);\n this.keyboard = new Keyboard(this);\n this.contentLoader = new ContentLoader(this);\n }\n /** @returns {boolean} */\n\n\n init() {\n if (this.isOpen || this.isDestroying) {\n return false;\n }\n\n this.isOpen = true;\n this.dispatch('init'); // legacy\n\n this.dispatch('beforeOpen');\n\n this._createMainStructure(); // add classes to the root element of PhotoSwipe\n\n\n let rootClasses = 'pswp--open';\n\n if (this.gestures.supportsTouch) {\n rootClasses += ' pswp--touch';\n }\n\n if (this.options.mainClass) {\n rootClasses += ' ' + this.options.mainClass;\n }\n\n if (this.element) {\n this.element.className += ' ' + rootClasses;\n }\n\n this.currIndex = this.options.index || 0;\n this.potentialIndex = this.currIndex;\n this.dispatch('firstUpdate'); // starting index can be modified here\n // initialize scroll wheel handler to block the scroll\n\n this.scrollWheel = new ScrollWheel(this); // sanitize index\n\n if (Number.isNaN(this.currIndex) || this.currIndex < 0 || this.currIndex >= this.getNumItems()) {\n this.currIndex = 0;\n }\n\n if (!this.gestures.supportsTouch) {\n // enable mouse features if no touch support detected\n this.mouseDetected();\n } // causes forced synchronous layout\n\n\n this.updateSize();\n this.offset.y = window.pageYOffset;\n this._initialItemData = this.getItemData(this.currIndex);\n this.dispatch('gettingData', {\n index: this.currIndex,\n data: this._initialItemData,\n slide: undefined\n }); // *Layout* - calculate size and position of elements here\n\n this._initialThumbBounds = this.getThumbBounds();\n this.dispatch('initialLayout');\n this.on('openingAnimationEnd', () => {\n const {\n itemHolders\n } = this.mainScroll; // Add content to the previous and next slide\n\n if (itemHolders[0]) {\n itemHolders[0].el.style.display = 'block';\n this.setContent(itemHolders[0], this.currIndex - 1);\n }\n\n if (itemHolders[2]) {\n itemHolders[2].el.style.display = 'block';\n this.setContent(itemHolders[2], this.currIndex + 1);\n }\n\n this.appendHeavy();\n this.contentLoader.updateLazy();\n this.events.add(window, 'resize', this._handlePageResize.bind(this));\n this.events.add(window, 'scroll', this._updatePageScrollOffset.bind(this));\n this.dispatch('bindEvents');\n }); // set content for center slide (first time)\n\n if (this.mainScroll.itemHolders[1]) {\n this.setContent(this.mainScroll.itemHolders[1], this.currIndex);\n }\n\n this.dispatch('change');\n this.opener.open();\n this.dispatch('afterInit');\n return true;\n }\n /**\r\n * Get looped slide index\r\n * (for example, -1 will return the last slide)\r\n *\r\n * @param {number} index\r\n * @returns {number}\r\n */\n\n\n getLoopedIndex(index) {\n const numSlides = this.getNumItems();\n\n if (this.options.loop) {\n if (index > numSlides - 1) {\n index -= numSlides;\n }\n\n if (index < 0) {\n index += numSlides;\n }\n }\n\n return clamp(index, 0, numSlides - 1);\n }\n\n appendHeavy() {\n this.mainScroll.itemHolders.forEach(itemHolder => {\n var _itemHolder$slide;\n\n (_itemHolder$slide = itemHolder.slide) === null || _itemHolder$slide === void 0 || _itemHolder$slide.appendHeavy();\n });\n }\n /**\r\n * Change the slide\r\n * @param {number} index New index\r\n */\n\n\n goTo(index) {\n this.mainScroll.moveIndexBy(this.getLoopedIndex(index) - this.potentialIndex);\n }\n /**\r\n * Go to the next slide.\r\n */\n\n\n next() {\n this.goTo(this.potentialIndex + 1);\n }\n /**\r\n * Go to the previous slide.\r\n */\n\n\n prev() {\n this.goTo(this.potentialIndex - 1);\n }\n /**\r\n * @see slide/slide.js zoomTo\r\n *\r\n * @param {Parameters<Slide['zoomTo']>} args\r\n */\n\n\n zoomTo(...args) {\n var _this$currSlide;\n\n (_this$currSlide = this.currSlide) === null || _this$currSlide === void 0 || _this$currSlide.zoomTo(...args);\n }\n /**\r\n * @see slide/slide.js toggleZoom\r\n */\n\n\n toggleZoom() {\n var _this$currSlide2;\n\n (_this$currSlide2 = this.currSlide) === null || _this$currSlide2 === void 0 || _this$currSlide2.toggleZoom();\n }\n /**\r\n * Close the gallery.\r\n * After closing transition ends - destroy it\r\n */\n\n\n close() {\n if (!this.opener.isOpen || this.isDestroying) {\n return;\n }\n\n this.isDestroying = true;\n this.dispatch('close');\n this.events.removeAll();\n this.opener.close();\n }\n /**\r\n * Destroys the gallery:\r\n * - instantly closes the gallery\r\n * - unbinds events,\r\n * - cleans intervals and timeouts\r\n * - removes elements from DOM\r\n */\n\n\n destroy() {\n var _this$element;\n\n if (!this.isDestroying) {\n this.options.showHideAnimationType = 'none';\n this.close();\n return;\n }\n\n this.dispatch('destroy');\n this._listeners = {};\n\n if (this.scrollWrap) {\n this.scrollWrap.ontouchmove = null;\n this.scrollWrap.ontouchend = null;\n }\n\n (_this$element = this.element) === null || _this$element === void 0 || _this$element.remove();\n this.mainScroll.itemHolders.forEach(itemHolder => {\n var _itemHolder$slide2;\n\n (_itemHolder$slide2 = itemHolder.slide) === null || _itemHolder$slide2 === void 0 || _itemHolder$slide2.destroy();\n });\n this.contentLoader.destroy();\n this.events.removeAll();\n }\n /**\r\n * Refresh/reload content of a slide by its index\r\n *\r\n * @param {number} slideIndex\r\n */\n\n\n refreshSlideContent(slideIndex) {\n this.contentLoader.removeByIndex(slideIndex);\n this.mainScroll.itemHolders.forEach((itemHolder, i) => {\n var _this$currSlide$index, _this$currSlide3;\n\n let potentialHolderIndex = ((_this$currSlide$index = (_this$currSlide3 = this.currSlide) === null || _this$currSlide3 === void 0 ? void 0 : _this$currSlide3.index) !== null && _this$currSlide$index !== void 0 ? _this$currSlide$index : 0) - 1 + i;\n\n if (this.canLoop()) {\n potentialHolderIndex = this.getLoopedIndex(potentialHolderIndex);\n }\n\n if (potentialHolderIndex === slideIndex) {\n // set the new slide content\n this.setContent(itemHolder, slideIndex, true); // activate the new slide if it's current\n\n if (i === 1) {\n var _itemHolder$slide3;\n\n this.currSlide = itemHolder.slide;\n (_itemHolder$slide3 = itemHolder.slide) === null || _itemHolder$slide3 === void 0 || _itemHolder$slide3.setIsActive(true);\n }\n }\n });\n this.dispatch('change');\n }\n /**\r\n * Set slide content\r\n *\r\n * @param {ItemHolder} holder mainScroll.itemHolders array item\r\n * @param {number} index Slide index\r\n * @param {boolean} [force] If content should be set even if index wasn't changed\r\n */\n\n\n setContent(holder, index, force) {\n if (this.canLoop()) {\n index = this.getLoopedIndex(index);\n }\n\n if (holder.slide) {\n if (holder.slide.index === index && !force) {\n // exit if holder already contains this slide\n // this could be common when just three slides are used\n return;\n } // destroy previous slide\n\n\n holder.slide.destroy();\n holder.slide = undefined;\n } // exit if no loop and index is out of bounds\n\n\n if (!this.canLoop() && (index < 0 || index >= this.getNumItems())) {\n return;\n }\n\n const itemData = this.getItemData(index);\n holder.slide = new Slide(itemData, index, this); // set current slide\n\n if (index === this.currIndex) {\n this.currSlide = holder.slide;\n }\n\n holder.slide.append(holder.el);\n }\n /** @returns {Point} */\n\n\n getViewportCenterPoint() {\n return {\n x: this.viewportSize.x / 2,\n y: this.viewportSize.y / 2\n };\n }\n /**\r\n * Update size of all elements.\r\n * Executed on init and on page resize.\r\n *\r\n * @param {boolean} [force] Update size even if size of viewport was not changed.\r\n */\n\n\n updateSize(force) {\n // let item;\n // let itemIndex;\n if (this.isDestroying) {\n // exit if PhotoSwipe is closed or closing\n // (to avoid errors, as resize event might be delayed)\n return;\n } //const newWidth = this.scrollWrap.clientWidth;\n //const newHeight = this.scrollWrap.clientHeight;\n\n\n const newViewportSize = getViewportSize(this.options, this);\n\n if (!force && pointsEqual(newViewportSize, this._prevViewportSize)) {\n // Exit if dimensions were not changed\n return;\n } //this._prevViewportSize.x = newWidth;\n //this._prevViewportSize.y = newHeight;\n\n\n equalizePoints(this._prevViewportSize, newViewportSize);\n this.dispatch('beforeResize');\n equalizePoints(this.viewportSize, this._prevViewportSize);\n\n this._updatePageScrollOffset();\n\n this.dispatch('viewportSize'); // Resize slides only after opener animation is finished\n // and don't re-calculate size on inital size update\n\n this.mainScroll.resize(this.opener.isOpen);\n\n if (!this.hasMouse && window.matchMedia('(any-hover: hover)').matches) {\n this.mouseDetected();\n }\n\n this.dispatch('resize');\n }\n /**\r\n * @param {number} opacity\r\n */\n\n\n applyBgOpacity(opacity) {\n this.bgOpacity = Math.max(opacity, 0);\n\n if (this.bg) {\n this.bg.style.opacity = String(this.bgOpacity * this.options.bgOpacity);\n }\n }\n /**\r\n * Whether mouse is detected\r\n */\n\n\n mouseDetected() {\n if (!this.hasMouse) {\n var _this$element2;\n\n this.hasMouse = true;\n (_this$element2 = this.element) === null || _this$element2 === void 0 || _this$element2.classList.add('pswp--has_mouse');\n }\n }\n /**\r\n * Page resize event handler\r\n *\r\n * @private\r\n */\n\n\n _handlePageResize() {\n this.updateSize(); // In iOS webview, if element size depends on document size,\n // it'll be measured incorrectly in resize event\n //\n // https://bugs.webkit.org/show_bug.cgi?id=170595\n // https://hackernoon.com/onresize-event-broken-in-mobile-safari-d8469027bf4d\n\n if (/iPhone|iPad|iPod/i.test(window.navigator.userAgent)) {\n setTimeout(() => {\n this.updateSize();\n }, 500);\n }\n }\n /**\r\n * Page scroll offset is used\r\n * to get correct coordinates\r\n * relative to PhotoSwipe viewport.\r\n *\r\n * @private\r\n */\n\n\n _updatePageScrollOffset() {\n this.setScrollOffset(0, window.pageYOffset);\n }\n /**\r\n * @param {number} x\r\n * @param {number} y\r\n */\n\n\n setScrollOffset(x, y) {\n this.offset.x = x;\n this.offset.y = y;\n this.dispatch('updateScrollOffset');\n }\n /**\r\n * Create main HTML structure of PhotoSwipe,\r\n * and add it to DOM\r\n *\r\n * @private\r\n */\n\n\n _createMainStructure() {\n // root DOM element of PhotoSwipe (.pswp)\n this.element = createElement('pswp', 'div');\n this.element.setAttribute('tabindex', '-1');\n this.element.setAttribute('role', 'dialog'); // template is legacy prop\n\n this.template = this.element; // Background is added as a separate element,\n // as animating opacity is faster than animating rgba()\n\n this.bg = createElement('pswp__bg', 'div', this.element);\n this.scrollWrap = createElement('pswp__scroll-wrap', 'section', this.element);\n this.container = createElement('pswp__container', 'div', this.scrollWrap); // aria pattern: carousel\n\n this.scrollWrap.setAttribute('aria-roledescription', 'carousel');\n this.container.setAttribute('aria-live', 'off');\n this.container.setAttribute('id', 'pswp__items');\n this.mainScroll.appendHolders();\n this.ui = new UI(this);\n this.ui.init(); // append to DOM\n\n (this.options.appendToEl || document.body).appendChild(this.element);\n }\n /**\r\n * Get position and dimensions of small thumbnail\r\n * {x:,y:,w:}\r\n *\r\n * Height is optional (calculated based on the large image)\r\n *\r\n * @returns {Bounds | undefined}\r\n */\n\n\n getThumbBounds() {\n return getThumbBounds(this.currIndex, this.currSlide ? this.currSlide.data : this._initialItemData, this);\n }\n /**\r\n * If the PhotoSwipe can have continuous loop\r\n * @returns Boolean\r\n */\n\n\n canLoop() {\n return this.options.loop && this.getNumItems() > 2;\n }\n /**\r\n * @private\r\n * @param {PhotoSwipeOptions} options\r\n * @returns {PreparedPhotoSwipeOptions}\r\n */\n\n\n _prepareOptions(options) {\n if (window.matchMedia('(prefers-reduced-motion), (update: slow)').matches) {\n options.showHideAnimationType = 'none';\n options.zoomAnimationDuration = 0;\n }\n /** @type {PreparedPhotoSwipeOptions} */\n\n\n return { ...defaultOptions,\n ...options\n };\n }\n\n}\n\nexport { PhotoSwipe as default };\n//# sourceMappingURL=photoswipe.esm.js.map\n","import { Controller } from \"@hotwired/stimulus\"\nimport PhotoSwipeLightbox from 'photoswipe/lightbox';\nimport PhotoSwipe from 'photoswipe';\nimport 'photoswipe/style.css';\n\n\nclass GalleryController extends Controller {\n connect() {\n this.addLightGallery();\n this.preloadImages();\n this.lightbox = this.initInvisibleGallery();\n }\n\n addLightGallery() {\n const self = this;\n\n $('#imageGallery').lightSlider({\n item: 1,\n loop: true,\n slideMargin: 0,\n pager: false,\n onSliderLoad(el) {\n el.find('li').on('click', function () {\n const index = $(this).data('index');\n self.lightbox.loadAndOpen(index);\n });\n }\n });\n\n this.element.querySelectorAll('.lightGallery li').forEach((item) => {\n item.addEventListener('click', function () {\n const index = this.dataset.index;\n self.lightbox.loadAndOpen(index);\n });\n });\n }\n\n\n initInvisibleGallery(el) {\n const lightbox = new PhotoSwipeLightbox({\n gallery: '#invisible-gallery',\n children: 'a',\n pswpModule: () => PhotoSwipe\n });\n\n lightbox.init();\n\n return lightbox;\n }\n\n preloadImages() {\n document.querySelectorAll('.main-photo li.index-0').forEach((el) => {\n this.preloadImage(el, el.dataset.src, () => {\n document.querySelectorAll('.main-photo li:not(.index-0)').forEach((el2) => {\n this.preloadImage(el2, el2.dataset.src);\n });\n });\n });\n\n document.querySelectorAll('.thumb-photo li:not(.hide)').forEach((el) => {\n this.preloadImage(el, el.dataset.thumb);\n });\n }\n\n preloadImage(el, src, callback) {\n const imageBox = el.querySelector('.image-box');\n const img = new Image();\n img.src = src;\n\n const assignBackground = () => {\n imageBox.style.backgroundImage = `url('${src}')`;\n if (callback) callback();\n };\n\n img.addEventListener('load', assignBackground, false);\n window.addEventListener(\"resize\", assignBackground);\n }\n}\n\nexport default GalleryController;","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\nimport Neo from \"src/Neo\";\n\nclass VenueCustomerController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n }\n\n hide(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.put(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_venue_customers_table');\n }).catch((error) => {\n Neo.processError(error, () => Helper.flash_message('error', error.response.data.error))\n })\n })\n }\n}\n\nexport default VenueCustomerController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport Neo from \"src/Neo\";\n\nclass UserController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n }\n\n hide(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.put(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_users_table');\n }).catch((error) => {\n Neo.processError(error, () => Helper.flash_message('error', error.response.data.error))\n })\n })\n }\n}\n\nexport default UserController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport Neo from \"src/Neo\";\n\nclass MemberController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n }\n\n delete(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.delete(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_members_table');\n }).catch((error) => {\n Neo.processError(error, () => Helper.flash_message('error', error.response.data.error))\n })\n })\n }\n}\n\nexport default MemberController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass MembersDownloadController extends Controller {\n connect() {\n this.subscription = null;\n }\n\n setDisabled(disabled) {\n if (disabled) {\n $('.export-btn').attr('disabled', 'disabled');\n } else {\n $('.generation').removeClass('generation');\n $('.export-btn').attr('disabled', null);\n }\n }\n\n download(e) {\n e.preventDefault();\n\n const name = e.target.dataset.name;\n\n const availableList = ['member_details', 'member_visits', 'membership_histories'];\n if (availableList.indexOf(name) === -1) return;\n\n const filter = $(\"form#new_filter\").serialize();\n\n if ($(e.target).prop('disabled')) return;\n\n const btn = $(e.target);\n btn.addClass('generation');\n this.setDisabled(true);\n\n axios\n .post(`/admin/members/csv.json?report_type=${name}&` + filter)\n .then(response => this.startWait(response.data.id))\n .catch(() => this.setDisabled(false));\n }\n\n handleReceived(message) {\n switch (message.status) {\n case 'succeeded':\n this.setDisabled(false);\n window.location.href = `/admin/reports/downloads/${message.id}`;\n break;\n case 'failed':\n this.setDisabled(false);\n Helper.flash_message('error', \"Something went wrong!\");\n break;\n case 'pending':\n console.log('The task added to queue. [status: pending]');\n break;\n case 'in_progress':\n console.log('The task added to queue. [status: in_progress]');\n break;\n default:\n console.log(`Unknown status: ${message.status}`);\n break;\n }\n };\n\n startWait(id) {\n this.subscription = App.cable.subscriptions.create(\n { channel: \"ReportFileGeneratorChannel\", id: id },\n { received: (message) => this.handleReceived(message) }\n );\n }\n}\n\nexport default MembersDownloadController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport Neo from \"src/Neo\";\n\nclass VenueGroupController extends Controller {\n connect() {\n this.id = this.element.dataset.id;\n }\n\n delete(e) {\n e.preventDefault();\n\n const { dataset } = e.target;\n\n Neo.confirm(dataset.message, () => {\n axios.delete(dataset.url).then((response) => {\n Helper.flash_message('success', response.data.notice)\n Neo.reloadTable('admin_venue_groups_table');\n }).catch((error) => {\n Neo.processError(error, () => Helper.flash_message('error', error.response.data.error))\n })\n })\n }\n}\n\nexport default VenueGroupController;\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\n\nclass MiniMessengerController extends Controller {\n static targets = ['form'];\n\n connect() {\n this.findOrCreateModal();\n this.modal = document.getElementById('messenger_modal');\n }\n\n open_modal(e) {\n e.preventDefault();\n\n const target = e.target;\n\n if (target.closest('li').classList.contains('disabled')) return;\n const link = e.target.getAttribute('href')\n\n axios.get(link).then((response) => {\n const data = response.data;\n\n const modalContent = this.modal.querySelector('.modal-content');\n if (modalContent) {\n modalContent.innerHTML = ''; // Clear the content\n modalContent.insertAdjacentHTML('beforeend', data); // Append new data\n }\n\n const modalDialog = this.modal.querySelector('.modal-dialog');\n if (modalDialog) {\n modalDialog.style.width = '';\n }\n\n const form = this.modal.querySelector('form');\n\n if (form) {\n const modalWidth = form.dataset.modalWidth;\n if (modalWidth !== undefined) {\n const modalDialog = this.modal.querySelector('.modal-dialog');\n if (modalDialog) {\n modalDialog.style.width = modalWidth;\n }\n }\n }\n\n $(this.modal).modal('show');\n });\n };\n\n findOrCreateModal() {\n const modalHTML = `\n <div id=\"messenger_modal\" class=\"modal inmodal fade\" aria-hidden=\"true\" role=\"dialog\" tabindex=\"-1\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n </div>\n </div>\n </div>\n `;\n\n if (!document.getElementById(\"messenger_modal\")) {\n document.getElementById('neo_modals').insertAdjacentHTML(\"beforeend\", modalHTML);\n }\n }\n\n removeErrors() {\n this.formTarget.querySelectorAll('span.text-danger').forEach((element) => element.remove());\n }\n\n addErrors(errors) {\n this.removeErrors();\n\n Object.entries(errors).forEach(([key, value]) => {\n const span = document.createElement('span');\n span.className = 'text-danger';\n span.textContent = value.join(', ');\n\n const element = this.formTarget.querySelector('#conversation_' + key);\n if (element) {\n const formGroup = element.closest('.form-group');\n if (formGroup) formGroup.appendChild(span);\n }\n });\n }\n\n loadMessages(url, callback = null) {\n axios.get(url).then((response) => {\n\n const messengerMessages = this.element.querySelector('.messenger-messages');\n if (messengerMessages) {\n messengerMessages.outerHTML = response.data;\n }\n\n if (typeof callback === 'function') {\n callback();\n }\n\n document.querySelectorAll('img[alt=\"ViewBooking\"]').forEach(img => {\n img.style.display = 'none';\n });\n });\n }\n\n send_message(e) {\n e.preventDefault();\n this.removeErrors();\n\n const btn = e.target;\n const form = this.formTarget;\n\n if (!btn.hasAttribute('disabled')) {\n btn.setAttribute('disabled', 'true');\n\n this.formTarget.querySelectorAll(\"input[type=text], input[type=file], textarea\").forEach((element) => {\n element.readOnly = true;\n });\n\n const formData = new FormData(this.formTarget);\n\n axios\n .post(form.getAttribute('action'), formData)\n .then(response => {\n this.formTarget.querySelectorAll(\"input[type=text], input[type=file], textarea\").forEach((element) => {\n element.value = \"\";\n });\n\n const signature = this.formTarget.dataset.signature || '';\n const url = this.formTarget.dataset.messagesUrl;\n const conversationMessage = this.formTarget.querySelector('#conversation_message');\n\n if (conversationMessage) conversationMessage.value = signature;\n\n this.loadMessages(url, () => btn.removeAttribute('disabled'))\n })\n .catch((error) => {\n console.log(error);\n this.addErrors(error.response.data.errors);\n btn.removeAttribute('disabled');\n })\n .finally(() => {\n this.formTarget.querySelectorAll(\"input[type=text], input[type=file], textarea\").forEach((element) => {\n element.readOnly = false;\n });\n })\n }\n }\n\n change_page(e) {\n e.preventDefault();\n this.loadMessages(e.target.getAttribute('href') + '&body=true')\n }\n}\n\nexport default MiniMessengerController;\n\n","import BaseController from \"../neo_modal_controller\";\n\nexport default class BillApproveController extends BaseController {\n connect() {\n super.connect();\n }\n\n sendForm() {\n $(this.element).modal('hide');\n }\n}","import { Controller } from \"@hotwired/stimulus\";\n\nexport default class extends Controller {\n static targets = [\"partnerCheckbox\", \"editPartnerBlock\"];\n\n connect() {\n this.togglePartnerBlock();\n }\n\n update_is_partner() {\n this.togglePartnerBlock();\n }\n\n togglePartnerBlock() {\n const checkbox = this.partnerCheckboxTarget;\n const block = this.editPartnerBlockTarget;\n const classList = block.classList;\n\n if (checkbox.checked) {\n classList.remove('soft-hide');\n } else {\n classList.add('soft-hide');\n }\n }\n}","/**\n * SSR Window 5.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 12, 2025\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const window = getWindow();\n const children = [...element.children];\n if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n // Breadth-first search through all parent's children and assigned elements\n const elementsQueue = [slot];\n while (elementsQueue.length > 0) {\n const elementToCheck = elementsQueue.shift();\n if (el === elementToCheck) {\n return true;\n }\n elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n }\n}\nfunction elementIsChildOf(el, parent) {\n const window = getWindow();\n let isChild = parent.contains(el);\n if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n isChild = children.includes(el);\n if (!isChild) {\n isChild = elementIsChildOfSlot(el, parent);\n }\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\n\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n const browser = getBrowser();\n const isSafari = browser.isSafari;\n if (isVirtual && !initial && isSafari && swiper.isElement) {\n swiper.virtual.update(false, false, slideIndex);\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n const isFreeMode = params.freeMode && params.freeMode.enabled;\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n const document = getDocument();\n\n // Get breakpoint for window/container width and update parameters\n const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit, forceActiveIndex) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n update(false, true);\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.find(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, j as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n panOnMouseMove: false,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let isPanningWithMouse = false;\n let mousePanStart = {\n x: 0,\n y: 0\n };\n const mousePanSensitivity = -3; // Negative to invert pan direction\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = getMaxRatio();\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(() => {\n if (swiper.destroyed) return;\n allowTouchMove();\n });\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n const isMouseEvent = e.pointerType === 'mouse';\n const isMousePan = isMouseEvent && swiper.params.zoom.panOnMouseMove;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {\n return;\n }\n const zoom = swiper.zoom;\n if (!gesture.imageEl) {\n return;\n }\n if (!image.isTouched || !gesture.slideEl) {\n if (isMousePan) onMouseMove(e);\n return;\n }\n if (isMousePan) {\n onMouseMove(e);\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n preventTouchMove();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n evCache.length = 0;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function onMouseMove(e) {\n // Only pan if zoomed in and mouse panning is enabled\n if (currentScale <= 1 || !gesture.imageWrapEl) return;\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const currentTransform = window.getComputedStyle(gesture.imageWrapEl).transform;\n const matrix = new window.DOMMatrix(currentTransform);\n if (!isPanningWithMouse) {\n isPanningWithMouse = true;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = matrix.e;\n image.startY = matrix.f;\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n return;\n }\n const deltaX = (e.clientX - mousePanStart.x) * mousePanSensitivity;\n const deltaY = (e.clientY - mousePanStart.y) * mousePanSensitivity;\n const scaledWidth = image.width * currentScale;\n const scaledHeight = image.height * currentScale;\n const slideWidth = gesture.slideWidth;\n const slideHeight = gesture.slideHeight;\n const minX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n const maxX = -minX;\n const minY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n const maxY = -minY;\n const newX = Math.max(Math.min(image.startX + deltaX, maxX), minX);\n const newY = Math.max(Math.min(image.startY + deltaY, maxY), minY);\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n gesture.imageWrapEl.style.transform = `translate3d(${newX}px, ${newY}px, 0)`;\n mousePanStart.x = e.clientX;\n mousePanStart.y = e.clientY;\n image.startX = newX;\n image.startY = newY;\n image.currentX = newX;\n image.currentY = newY;\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const prevScale = currentScale;\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n if (prevScale > 0 && forceZoomRatio && typeof image.currentX === 'number' && typeof image.currentY === 'number') {\n translateX = image.currentX * zoom.scale / prevScale;\n translateY = image.currentY * zoom.scale / prevScale;\n } else {\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n }\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n image.currentX = translateX;\n image.currentY = translateY;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n image.currentX = undefined;\n image.currentY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n if (swiper.params.zoom.panOnMouseMove) {\n mousePanStart = {\n x: 0,\n y: 0\n };\n if (isPanningWithMouse) {\n isPanningWithMouse = false;\n image.startX = 0;\n image.startY = 0;\n }\n }\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, k as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];\n controlElements.forEach(controlElement => {\n if (!swiper.controller.control) swiper.controller.control = [];\n if (controlElement && controlElement.swiper) {\n swiper.controller.control.push(controlElement.swiper);\n } else if (controlElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onControllerSwiper = e => {\n swiper.controller.control.push(e.detail[0]);\n swiper.update();\n controlElement.removeEventListener(eventName, onControllerSwiper);\n };\n controlElement.addEventListener(eventName, onControllerSwiper);\n }\n });\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, h as elementIndex, m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n containerRole: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n } else {\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n }\n preventFocusHandler = false;\n });\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n if (params.containerRole) {\n addElRole(containerEl, params.containerRole);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.find(slideEl => slideEl.getAttribute('data-hash') === hash);\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n if (thumbsParams.swiper.destroyed) {\n initialized = false;\n return false;\n }\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`);\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, k as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","function appendSlide(slides) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n const appendElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = slideEl => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n const swiper = this;\n const {\n params,\n activeIndex,\n slidesEl\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer || swiper.isElement) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}\n\nexport { Manipulation as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { k as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.find(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode);\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const r = getRotateFix(swiper);\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { g as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n const rotateFix = getRotateFix(swiper);\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n const r = getRotateFix(swiper);\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n const rotateFix = getRotateFix(swiper);\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n _loopSwapReset: false,\n watchSlidesProgress: true,\n loopAdditionalSlides: 3,\n centeredSlides: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","/**\n * Swiper 11.2.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2025 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: March 3, 2025\n */\n\nimport { S as Swiper } from './shared/swiper-core.mjs';\nimport Virtual from './modules/virtual.mjs';\nimport Keyboard from './modules/keyboard.mjs';\nimport Mousewheel from './modules/mousewheel.mjs';\nimport Navigation from './modules/navigation.mjs';\nimport Pagination from './modules/pagination.mjs';\nimport Scrollbar from './modules/scrollbar.mjs';\nimport Parallax from './modules/parallax.mjs';\nimport Zoom from './modules/zoom.mjs';\nimport Controller from './modules/controller.mjs';\nimport A11y from './modules/a11y.mjs';\nimport History from './modules/history.mjs';\nimport HashNavigation from './modules/hash-navigation.mjs';\nimport Autoplay from './modules/autoplay.mjs';\nimport Thumb from './modules/thumbs.mjs';\nimport freeMode from './modules/free-mode.mjs';\nimport Grid from './modules/grid.mjs';\nimport Manipulation from './modules/manipulation.mjs';\nimport EffectFade from './modules/effect-fade.mjs';\nimport EffectCube from './modules/effect-cube.mjs';\nimport EffectFlip from './modules/effect-flip.mjs';\nimport EffectCoverflow from './modules/effect-coverflow.mjs';\nimport EffectCreative from './modules/effect-creative.mjs';\nimport EffectCards from './modules/effect-cards.mjs';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n\nexport { Swiper, Swiper as default };\n","import { Controller } from \"@hotwired/stimulus\"\nimport Swiper from 'swiper/bundle';\nimport 'swiper/css/bundle';\n\nexport default class extends Controller {\n connect() {\n this.swiper = new Swiper('.logo-slider', {\n slidesPerView: 1,\n slidesPerGroup: 1,\n grid: {\n rows: 4,\n fill: 'column', // This replaces slidesPerColumnFill\n },\n autoplay: {\n delay: 5000,\n },\n breakpoints: {\n 470: {\n slidesPerView: 2,\n slidesPerGroup: 2,\n grid: {\n rows: 4,\n },\n },\n 580: {\n slidesPerView: 3,\n slidesPerGroup: 3,\n grid: {\n rows: 4,\n },\n },\n 980: {\n slidesPerView: 4,\n slidesPerGroup: 4,\n grid: {\n rows: 4,\n },\n },\n 1320: {\n slidesPerView: 5,\n slidesPerGroup: 5,\n grid: {\n rows: 4,\n },\n },\n },\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\"\n\nexport default class extends Controller {\n static targets = ['category', 'area'];\n\n connect() {\n $('#search-datepicker').datepicker({\n orientation: \"bottom auto\",\n maxViewMode: \"days\",\n format: 'dd/mm/yyyy',\n weekStart: 1,\n autoclose: true\n })\n }\n\n submit(event) {\n event.preventDefault();\n\n const category = this.categoryTarget.value;\n const area = this.areaTarget.value;\n\n try {\n if (category === '') return Helper.flash_message('error', \"Please select a facility\");\n if (area.trim() === '') return Helper.flash_message('error', \"Please enter a location\");\n\n const date = $('#search-datepicker').val();\n const multiVenueId = $('#multi_venue_id').val();\n const multiVenueIdOption = multiVenueId ? `&multi_venue_id=${multiVenueId}` : ''\n\n window.location = `all-facilities?categories=${category}&area=${area}&date=${date || ''}${multiVenueIdOption}`;\n } catch (error) {\n Helper.flash_message('error', \"The browser you are using is not showing any results. Please try again on a different browser or with another device.\");\n }\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nclass PlaceAutocompleteController extends Controller {\n connect() {\n this.autocomplete = new google.maps.places.Autocomplete(this.element, {\n language: 'en-GB',\n componentRestrictions: {\n country: \"uk\"\n },\n fields: ['name'],\n });\n }\n}\n\nexport default PlaceAutocompleteController;","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n const el = $('#inline-datepicker');\n\n el.datepicker({\n orientation: \"bottom auto\",\n maxViewMode: \"days\",\n format: 'dd/mm/yyyy',\n weekStart: 1\n });\n\n el.on('changeDate', () => {\n $('#booking_date').val(el.datepicker('getFormattedDate'))\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n const el = this.element;\n const images = JSON.parse(el.dataset.images);\n $(el).backstretch(images, { duration: 3000, fade: 750 });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n $(this.element).on('change', (event) => {\n $(event.currentTarget).closest('form').submit();\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n $(this.element).on('click', (event) => {\n $(event.currentTarget).closest('form').submit();\n });\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n connect() {\n $(this.element).selectize();\n }\n}\n","import { Controller } from \"@hotwired/stimulus\";\nimport axios from \"axios\";\nimport NeoModal from \"../src/NeoModal\";\n\nclass ManageSecondaryUserController extends Controller {\n performAction(event) {\n event.preventDefault();\n\n axios.get(this.element.href).then((response) => {\n const modal = NeoModal.add(response.data);\n\n modal.addEventListener('neo_modal:success', (event) => {\n $(event.target).modal('hide');\n location.reload();\n })\n })\n }\n}\n\nexport default ManageSecondaryUserController;\n","import { Controller } from \"@hotwired/stimulus\"\nimport axios from \"axios\";\n\nexport default class SelectPrimaryUserController extends Controller {\n performAction(event) {\n const dropdown = event.target;\n\n const selectedIndex = dropdown.selectedIndex;\n const selectedOption = dropdown.options[selectedIndex];\n\n axios\n .post(`/secondary_users/set_current_primary?primary_id=${selectedOption.value}`)\n .then(() => window.location.reload());\n }\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport NeoDialog from \"../src/NeoDialog.js\";\n\nexport default class CheckoutButtonDisablerController extends Controller {\n static targets = ['button'];\n\n connect() {\n const self = this;\n const billId = this.element.dataset.billId;\n this.initiator_name = \"\";\n this.initiator_email = \"\";\n\n this.subscription = App.cable.subscriptions.create(\n { channel: \"BillStatusChannel\", bill_id: billId }, \n { received: (cmd) => {\n const initiator = cmd.data.initiator;\n\n this.buttonTargets.forEach((button) => {\n const billTimerInProgress = cmd.data && cmd.data.status === 'in_progress';\n\n this.initiator_name = initiator?.initiator_name || \"\";\n this.initiator_email = initiator?.initiator_email || \"\";\n \n if (cmd.command === 'status' && billTimerInProgress) {\n button.dataset.disabled = true;\n button.classList.add('disabled');\n } else {\n delete button.dataset.disabled;\n button.classList.remove('disabled');\n }\n });\n }\n });\n }\n\n click(event) {\n if (event.target.dataset.disabled === 'true') {\n event.stopImmediatePropagation();\n\n const message = `The checkout process is currently being completed by ${this.initiator_name} - ${this.initiator_email}. \\\n Please try again later or contact them directly.`;\n NeoDialog.confirm(message, 'Ok', 'No', false);\n }\n };\n}\n","import { Controller } from \"@hotwired/stimulus\"\nimport NeoDialog from \"src/NeoDialog\";\n\nexport default class BookButtonController extends Controller {\n connect() {\n const dataset = this.element.dataset;\n\n this.userType = dataset.userType;\n this.primaryName = dataset.primaryName;\n this.primaryEmail = dataset.primaryEmail;\n this.facilityId = dataset.facilityId;\n this.facilityCategoryId = dataset.facilityCategoryId;\n this.url = dataset.url;\n\n if (dataset.autoClick === 'true') this.action();\n }\n\n click(event) {\n event.preventDefault();\n this.action();\n }\n\n action() {\n if (this.userType === 'secondary') {\n const message = \"This account is a secondary account linked to \" + this.primaryName + \" - \" + this.primaryEmail +\n \". It is not possible to make bookings or send messages as a secondary account.\";\n\n NeoDialog.confirm(message, 'Ok', null, false)\n } else {\n const eventDate = document.getElementById('booking_date').value;\n\n const { location } = window;\n const { host, protocol } = location;\n\n const params = new URLSearchParams({\n event_date: eventDate,\n facility_category_id: this.facilityCategoryId,\n facility_id: this.facilityId\n });\n\n window.location = `${protocol}//${host}${this.url}?${params.toString()}`;\n }\n }\n}\n","// Run that command whenever you add a new controller or create them with\n// ./bin/rails generate stimulus controllerName\n\nimport { application } from \"./application\"\n\nimport ApiTokensController from \"./api_tokens_controller\";\nimport BillController from \"./bill_controller\";\nimport BillRowController from \"./bill_row_controller\";\nimport MapBoxController from \"./map_box_controller\";\nimport RoomController from \"./room_controller\";\nimport FavouriteFacilityController from \"./favourite_facility_controller\";\nimport PopoverController from \"./popover_controller\";\nimport VenueUsersController from \"./venue_users_controller\";\nimport MultiMessagesButtonController from \"controllers/multi_message_button_controller\";\nimport CognitaVenueFieldsController from \"controllers/cognita_venue_fields_controller\";\nimport CustomMessageSignatureController from \"controllers/custom_message_signature_controller\";\nimport TagsInputController from \"controllers/tags_input_controller\";\nimport EditAccountPasswordController from \"controllers/edit_account_password_controller\";\nimport OrderCancellationRequestController from \"controllers/order_cancellation_request_controller\";\nimport LinkVenuesFacilitiesController from \"controllers/link_venues_facilities_controller\";\nimport NeoTableController from \"controllers/neo_table_controller\";\nimport SoftDeletedFacilityController from \"controllers/admin/soft_deleted_facility\";\nimport FlashController from \"controllers/flash_controller\";\nimport OrderMenuButtonController from \"controllers/order_menu_button_controller\";\nimport CustomerCustomOptionsController from \"controllers/admin/customer_custom_options_controller\";\nimport CustomerVenueLinkingsController from \"controllers/admin/customer_venue_linkings_controller\";\nimport VenueGroupsController from \"controllers/admin/venue_groups_controller\";\nimport AttachmentsController from \"controllers/admin/attachments_controller\";\nimport BillVersionsController from \"controllers/bill_versions_controller\";\nimport BillButtonsController from \"controllers/bill_buttons_controller\";\nimport Checkouts__VenueQuestionsController from \"./checkouts/venue_questions_controller\";\nimport NeoModalController from \"./neo_modal_controller\";\nimport NeoButtonController from \"./neo_button_controller\";\nimport FileUploaderController from \"./file_uploader_controller\";\nimport PendingModificationController from \"controllers/pending_modification_controller\";\nimport IncomeOptionFormController from \"controllers/admin/income_option_form_controller\";\nimport PaymentCardController from \"controllers/payment_card_controller\";\nimport CheckoutPaymentController from \"controllers/checkout_payment_controller\";\nimport PaymentFormController from \"controllers/payment_form_controller\";\nimport RetryFailedPaymentController from \"controllers/retry_failed_payment_controller\";\nimport CasualPaymentController from \"controllers/casual_payment_controller\";\nimport CalendarScrollerController from \"controllers/calendar_scroller_controller\";\nimport DatepickerController from \"./datepicker_controller\";\nimport FileManagerController from \"./file_manager_controller\";\nimport ConversationButtons from \"controllers/conversation_buttons_controller\";\nimport LinkifyController from \"controllers/linkify_controller\";\nimport FileUploaderValidator from \"controllers/file_uploader_validator_controller\";\nimport FacilityController from \"controllers/facility_controller\";\nimport ReactComponentController from \"controllers/react_component_controller\";\nimport InfoPageController from \"controllers/info_page_controller\";\nimport OnlineFacilityController from \"controllers/online_facility_controller\";\nimport OnlineMembershipPlanController from \"controllers/online_membership_plan_controller\";\nimport NewSpecialDateController from \"./admin/new_special_date_controller\";\nimport NestedForm from 'stimulus-rails-nested-form';\nimport ToggleInputsController from \"./toggle_inputs_controller\";\nimport FuturePricesModalController from \"./admin/future_prices_modal_controller\";\nimport SessionStorageController from \"./session_storage_controller\";\nimport ExtraFormController from \"./admin/extra_form_controller\";\nimport ExtrasTableController from \"controllers/extras_table_controller\";\nimport SignOutController from \"./sign_out_controller\";\nimport CheckboxBlockController from \"./checkbox_block_controller\";\nimport PaymentScheduleOverrideController from \"./payment_schedule_override_controller\";\nimport VenueController from \"./venue_controller\";\nimport InboxUnreadCountController from \"./inbox_unread_count_controller\";\nimport OnlineMembershipCancellation from \"controllers/online_membership_cancellation\";\nimport FileManagerFiltersController from \"./file_manager_filters_controller\";\nimport OnlineMembersButtonsController from \"controllers/online_members_buttons_controller\";\nimport VenueCheckoutController from \"./admin/venue_checkout_controller\";\nimport MembersMultiMessageButtonController from \"./members_multi_message_button_controller\";\nimport RelatedTeamsController from \"./related_teams_controller\";\nimport CalendarBookingModal from \"controllers/calendar_booking_modal_controller\";\nimport Checkouts__RelatedTeamsController from \"./checkouts/related_teams_controller\";\n\napplication.register(\"api_tokens\", ApiTokensController)\napplication.register(\"bill\", BillController)\napplication.register(\"bill_row\", BillRowController)\napplication.register(\"map_box\", MapBoxController)\napplication.register(\"room\", RoomController)\napplication.register(\"fovourite_facility\", FavouriteFacilityController)\napplication.register(\"popover\", PopoverController)\napplication.register(\"venue_users\", VenueUsersController)\napplication.register(\"multi_message_button\", MultiMessagesButtonController)\napplication.register(\"cognita_venue_fields\", CognitaVenueFieldsController)\napplication.register(\"auto_message_signature\", CustomMessageSignatureController)\napplication.register(\"tags_input\", TagsInputController)\napplication.register(\"edit_account_password\", EditAccountPasswordController)\napplication.register(\"order_cancellation_request\", OrderCancellationRequestController)\napplication.register(\"link_venues_facilities\", LinkVenuesFacilitiesController)\napplication.register(\"neo_table\", NeoTableController)\napplication.register(\"soft_deleted_facility\", SoftDeletedFacilityController)\napplication.register(\"order_menu_button\", OrderMenuButtonController)\napplication.register(\"customer_custom_options\", CustomerCustomOptionsController)\napplication.register(\"customer_venue_linkings\", CustomerVenueLinkingsController)\napplication.register(\"flash\", FlashController)\napplication.register(\"venue_groups\", VenueGroupsController)\napplication.register(\"attachments\", AttachmentsController)\napplication.register(\"bill_versions\", BillVersionsController)\napplication.register(\"bill_buttons\", BillButtonsController)\napplication.register(\"checkouts--venue_questions\", Checkouts__VenueQuestionsController)\napplication.register(\"neo_button\", NeoButtonController)\napplication.register(\"neo_modal\", NeoModalController)\napplication.register(\"file_uploader\", FileUploaderController)\napplication.register(\"pending_modification\", PendingModificationController)\napplication.register(\"income_option_form\", IncomeOptionFormController)\napplication.register(\"payment_card\", PaymentCardController)\napplication.register(\"checkout_payment\", CheckoutPaymentController)\napplication.register(\"payment_form\", PaymentFormController)\napplication.register(\"retry_failed_payment\", RetryFailedPaymentController)\napplication.register(\"casual_payment\", CasualPaymentController)\napplication.register(\"calendar_scroller\", CalendarScrollerController)\napplication.register(\"datepicker\", DatepickerController)\napplication.register(\"file_manager\", FileManagerController)\napplication.register(\"conversation_buttons\", ConversationButtons)\napplication.register(\"linkify\", LinkifyController)\napplication.register(\"file_uploader_validator\", FileUploaderValidator)\napplication.register(\"facility\", FacilityController)\napplication.register(\"react_component\", ReactComponentController)\napplication.register(\"info_page\", InfoPageController)\napplication.register(\"online_facility\", OnlineFacilityController)\napplication.register(\"online_membership_plan\", OnlineMembershipPlanController)\napplication.register(\"sign_out\", SignOutController);\napplication.register(\"checkbox_block\", CheckboxBlockController);\napplication.register(\"payment_schedule_override\", PaymentScheduleOverrideController);\napplication.register(\"new_special_date\", NewSpecialDateController)\napplication.register('nested-form', NestedForm)\napplication.register(\"sign_out\", SignOutController)\napplication.register(\"toggle_inputs\", ToggleInputsController)\napplication.register(\"future_prices_modal\", FuturePricesModalController)\napplication.register(\"session_storage\", SessionStorageController)\napplication.register(\"extra_form\", ExtraFormController)\napplication.register(\"extras_table\", ExtrasTableController)\napplication.register(\"venue\", VenueController)\napplication.register(\"online_membership_cancellation\", OnlineMembershipCancellation)\napplication.register(\"inbox_unread_count\", InboxUnreadCountController)\napplication.register(\"file_manager_filters\", FileManagerFiltersController)\napplication.register(\"members_buttons\", OnlineMembersButtonsController)\napplication.register(\"venue_checkout\", VenueCheckoutController)\napplication.register(\"members_multi_message_button\", MembersMultiMessageButtonController)\napplication.register(\"related_teams\", RelatedTeamsController)\napplication.register(\"calendar_booking_modal\", CalendarBookingModal)\napplication.register(\"checkouts--related_teams\", Checkouts__RelatedTeamsController)\n\n\nimport BookingCustomMessagesController from \"./admin/booking_custom_messages_controller\";\napplication.register(\"booking_custom_messages\", BookingCustomMessagesController)\n\nimport OnlineMembershipPackageController from \"controllers/online_membership_package_controller\";\napplication.register(\"online_membership_package\", OnlineMembershipPackageController);\n\nimport ModalBillSendController from \"./modals/bill_send_controller\";\napplication.register('modal--bill_send', ModalBillSendController);\n\nimport BillCountdownController from \"./bill_countdown_controller\";\napplication.register('bill_countdown', BillCountdownController);\n\nimport BookingOptionController from \"./booking_option_controller\";\napplication.register('booking_option', BookingOptionController);\n\nimport MessagesCounterController from \"./messages_counter_controller\";\napplication.register(\"messages_counter\", MessagesCounterController)\n\nimport ModificationController from \"./modification_controller\";\napplication.register(\"modification\", ModificationController)\n\nimport OrderModalController from \"./order_modal_controller\";\napplication.register(\"order_modal\", OrderModalController)\n\nimport OrdersTableController from \"./orders_table\";\napplication.register(\"orders_table\", OrdersTableController)\n\nimport OrderApprovalController from \"./order_approval_controller\";\napplication.register(\"order_approval\", OrderApprovalController)\n\nimport PostgresQueryController from \"./postgres_query_controller\";\napplication.register(\"postgres-query\", PostgresQueryController)\n\nimport ConversationRemoveThread from \"./conversation_remove_thread_controller\";\napplication.register(\"conversation_remove_thread\", ConversationRemoveThread)\n\nimport DynamicPopoverThread from \"./dynamic_popover_controller\";\napplication.register(\"dynamic_popover\", DynamicPopoverThread)\n\n\n// BILLS\nimport BillApproval from \"./bill/approval\";\napplication.register(\"bill--approval\", BillApproval)\n\nimport OrderVenueNoteController from \"./order_venue_note_controller\";\napplication.register(\"order_venue_note\", OrderVenueNoteController)\n\nimport GalleryController from \"./gallery_controller\";\napplication.register(\"gallery\", GalleryController)\n\nimport VenueCustomerController from \"controllers/venue_customer_controller\";\napplication.register(\"venue_customer\", VenueCustomerController)\n\nimport UserController from \"controllers/user_controller\";\napplication.register(\"user\", UserController)\n\nimport MemberController from \"controllers/member_controller\";\napplication.register(\"member\", MemberController)\n\nimport MembersDownloadController from \"controllers/members_download_controller\";\napplication.register(\"members_download\", MembersDownloadController)\n\nimport VenueGroupController from \"controllers/venue_group_controller\";\napplication.register(\"venue_group\", VenueGroupController)\n\nimport MiniMessengerController from \"./mini_messenger_controller\";\napplication.register(\"mini_messenger\", MiniMessengerController)\n\nimport ModalBillApproveController from \"./modals/bill_approve_controller\";\napplication.register('modal--bill_approve', ModalBillApproveController);\n\nimport UserFormController from \"./user_form_controller\";\napplication.register(\"user_form\", UserFormController)\n\nimport SwiperController from \"./swiper_controller\";\napplication.register(\"swiper\", SwiperController)\n\nimport MainSearchController from \"./main_search_controller\";\napplication.register(\"main-search\", MainSearchController)\n\nimport PlaceAutocompleteController from \"./place_autocomplete_controller\";\napplication.register(\"place-autocomplete\", PlaceAutocompleteController)\n\nimport InlineDatepickerController from \"./inline_datepicker_controller\";\napplication.register(\"inline_datepicker\", InlineDatepickerController)\n\nimport BackstretchController from \"./backstretch_controller\";\napplication.register(\"backstretch\", BackstretchController)\n\nimport AutosubmitDropdownController from \"./autosubmit_dropdown_controller\";\napplication.register(\"autosubmit-dropdown\", AutosubmitDropdownController)\n\nimport AutosubmitCheckboxController from \"./autosubmit_checkbox_controller\";\napplication.register(\"autosubmit-checkbox\", AutosubmitCheckboxController)\n\nimport SelectizeController from \"./selectize_controller\";\napplication.register(\"selectize\", SelectizeController)\n\nimport ManageSecondaryUserController from \"./manage_secondary_user_controller\";\napplication.register(\"manage_secondary_user\", ManageSecondaryUserController)\n\nimport SelectPrimaryUserController from \"./select_primary_user_controller\";\napplication.register(\"select_primary_user\", SelectPrimaryUserController)\n\nimport CheckoutButtonDisablerController from \"./checkout_button_disabler_controller\";\napplication.register('checkout_button_disabler', CheckoutButtonDisablerController)\n\nimport BookButtonController from \"controllers/book_button_controller\";\napplication.register('book_button', BookButtonController)\n","(function( $ ) {\n $.fn.expandableTable = function() {\n var self = $(this);\n var globalExpand = jQuery('<i/>', { class: 'exp fa fa-angle-down pointer' });\n var singleExpand = jQuery('<i/>', { class: 'single-exp fa fa-angle-down pointer' });\n\n function replaceClass($el, aClass, bClass) {\n if ($el.hasClass(aClass)) {\n $el.removeClass(aClass).addClass(bClass);\n } else {\n $el.removeClass(bClass).addClass(aClass);\n }\n }\n\n function checkAllRows() {\n var allUp = _.every(self.find('.single-exp'), function(x) { return $(x).hasClass('fa-angle-up') });\n\n if (allUp) {\n globalExpand.removeClass('fa-angle-down').addClass('fa-angle-up')\n } else {\n globalExpand.removeClass('fa-angle-up').addClass('fa-angle-down')\n }\n }\n\n globalExpand.on('click', function(event) {\n var $el = $(event.target)\n\n if ($el.hasClass('fa-angle-up')) {\n var elements = self.find('.single-exp.fa-angle-up')\n } else {\n var elements = self.find('.single-exp.fa-angle-down')\n }\n\n $.each(elements, function(key, el) { el.click() });\n })\n\n singleExpand.on('click', function(event) {\n var $el = $(event.target)\n replaceClass($el, 'fa-angle-down', 'fa-angle-up')\n var $nextRow = $el.closest('tr').next();\n\n if ($nextRow.hasClass('expanded-row')) {\n $nextRow.toggle($el.hasClass('fa-angle-up'));\n }\n\n checkAllRows();\n })\n\n this.filter(\"table\").each(function(x) {\n $(this).find('.global-expand').replaceWith(globalExpand);\n $(this).find('.single-expand').replaceWith(singleExpand);\n $(this).find('.expanded-row').hide();\n });\n\n return this;\n };\n}( jQuery ));","jQuery.propHooks.disabled = {\n set: function (el, value) {\n if (el.disabled !== value) {\n el.disabled = value;\n value && $(el).trigger('disabledSet');\n !value && $(el).trigger('enabledSet');\n }\n }\n};\n\n$.fn.serializeObject = function()\n{\n var o = {};\n var a = this.serializeArray();\n $.each(a, function() {\n if (o[this.name] !== undefined) {\n if (!o[this.name].push) {\n o[this.name] = [o[this.name]];\n }\n o[this.name].push(this.value || '');\n } else {\n o[this.name] = this.value || '';\n }\n });\n return o;\n};\n","// Custom fix for double scrollbar (top and bottom) for week view of calendar page\n(function ($) {\n\n $.fn.tableHeadFixer = function (param) {\n\n return this.each(function () {\n table.call(this);\n });\n\n function table() {\n\n {\n var defaults = {\n head: true,\n foot: false,\n left: 0,\n right: 0,\n 'z-index': 0,\n parent: null\n };\n\n\n var settings = $.extend({}, defaults, param);\n var ownParent = settings.parent != null;\n\n settings.table = this;\n settings.parent = (ownParent ? settings.parent : $(settings.table).parent());\n setParent();\n\n if (settings.head == true)\n fixHead();\n\n if (settings.foot == true)\n fixFoot();\n\n if (settings.left > 0)\n fixLeft();\n\n if (settings.right > 0)\n fixRight();\n\n setCorner();\n\n $(settings.parent).trigger(\"scroll\");\n\n $(window).resize(function () {\n $(settings.parent).trigger(\"scroll\");\n });\n\n /*\n This function solver z-index problem in corner cell where fix row and column at the same time,\n set corner cells z-index 1 more then other fixed cells\n */\n function setCorner() {\n var table = $(settings.table);\n\n if (settings.head) {\n if (settings.left > 0) {\n var tr = table.find(\"thead tr\");\n\n tr.each(function (k, row) {\n solverLeftColspan(row, function (cell) {\n $(cell).css(\"z-index\", settings['z-index'] + 1);\n });\n });\n }\n\n if (settings.right > 0) {\n var tr = table.find(\"thead tr\");\n\n tr.each(function (k, row) {\n solveRightColspan(row, function (cell) {\n $(cell).css(\"z-index\", settings['z-index'] + 1);\n });\n });\n }\n }\n\n if (settings.foot) {\n if (settings.left > 0) {\n var tr = table.find(\"tfoot tr\");\n\n tr.each(function (k, row) {\n solverLeftColspan(row, function (cell) {\n $(cell).css(\"z-index\", settings['z-index']);\n });\n });\n }\n\n if (settings.right > 0) {\n var tr = table.find(\"tfoot tr\");\n\n tr.each(function (k, row) {\n solveRightColspan(row, function (cell) {\n $(cell).css(\"z-index\", settings['z-index']);\n });\n });\n }\n }\n }\n\n // Set style of table parent\n function setParent() {\n var parent = $(settings.parent);\n var table = $(settings.table);\n\n if(!ownParent){\n parent.append(table);\n parent\n .css({\n 'overflow-x': 'auto',\n 'overflow-y': 'auto'\n });\n }\n\n table.on('table_head_fixed_parent_scroll', function(){\n // var scrollWidth = parent[0].scrollWidth;\n // var clientWidth = parent[0].clientWidth;\n // var scrollHeight = parent[0].scrollHeight;\n // var clientHeight = parent[0].clientHeight;\n // var top = parent.scrollTop();\n var left = parent.scrollLeft();\n\n // if (settings.head)\n // this.find(\"thead tr > *\").css(\"top\", top);\n //\n // if (settings.foot)\n // this.find(\"tfoot tr > *\").css(\"bottom\", scrollHeight - clientHeight - top);\n\n if (settings.left > 0)\n settings.leftColumns.css(\"left\", left - 1);\n\n // if (settings.right > 0)\n // settings.rightColumns.css(\"right\", scrollWidth - clientWidth - left);\n }.bind(table));\n }\n\n // Set table head fixed\n function fixHead() {\n var thead = $(settings.table).find(\"thead\");\n var tr = thead.find(\"tr\");\n var cells = thead.find(\"tr > *\");\n\n setBackground(cells);\n cells.css({\n 'position': 'relative'\n });\n }\n\n // Set table foot fixed\n function fixFoot() {\n var tfoot = $(settings.table).find(\"tfoot\");\n var tr = tfoot.find(\"tr\");\n var cells = tfoot.find(\"tr > *\");\n\n setBackground(cells);\n cells.css({\n 'position': 'relative'\n });\n }\n\n // Set table left column fixed\n function fixLeft() {\n var table = $(settings.table);\n\n // var fixColumn = settings.left;\n\n settings.leftColumns = $();\n\n var tr = table.find(\"tr\");\n tr.each(function (k, row) {\n\n solverLeftColspan(row, function (cell) {\n settings.leftColumns = settings.leftColumns.add(cell);\n });\n // var inc = 1;\n\n // for(var i = 1; i <= fixColumn; i = i + inc) {\n // \tvar nth = inc > 1 ? i - 1 : i;\n\n // \tvar cell = $(row).find(\"*:nth-child(\" + nth + \")\");\n // \tvar colspan = cell.prop(\"colspan\");\n\n // \tsettings.leftColumns = settings.leftColumns.add(cell);\n\n // \tinc = colspan;\n // }\n });\n\n var column = settings.leftColumns;\n\n column.each(function (k, cell) {\n var cell = $(cell);\n\n setBackground(cell);\n cell.css({\n 'position': 'relative'\n });\n });\n }\n\n // Set table right column fixed\n function fixRight() {\n var table = $(settings.table);\n\n var fixColumn = settings.right;\n\n settings.rightColumns = $();\n\n var tr = table.find(\"tr\");\n tr.each(function (k, row) {\n solveRightColspan(row, function (cell) {\n settings.rightColumns = settings.rightColumns.add(cell);\n });\n });\n\n var column = settings.rightColumns;\n\n column.each(function (k, cell) {\n var cell = $(cell);\n\n setBackground(cell);\n cell.css({\n 'position': 'relative'\n });\n });\n\n }\n\n // Set fixed cells backgrounds\n function setBackground(elements) {\n elements.each(function (k, element) {\n var element = $(element);\n var parent = $(element).parent();\n\n var elementBackground = element.css(\"background-color\");\n elementBackground = (elementBackground == \"transparent\" || elementBackground == \"rgba(0, 0, 0, 0)\") ? null : elementBackground;\n\n var parentBackground = parent.css(\"background-color\");\n parentBackground = (parentBackground == \"transparent\" || parentBackground == \"rgba(0, 0, 0, 0)\") ? null : parentBackground;\n\n var background = parentBackground ? parentBackground : \"white\";\n background = elementBackground ? elementBackground : background;\n\n element.css(\"background-color\", background);\n });\n }\n\n function solverLeftColspan(row, action) {\n var fixColumn = settings.left;\n var inc = 1;\n\n for (var i = 1; i <= fixColumn; i = i + inc) {\n var nth = inc > 1 ? i - 1 : i;\n\n var cell = $(row).find(\"> *:nth-child(\" + nth + \")\");\n var colspan = cell.prop(\"colspan\");\n\n if (cell.cellPos().left < fixColumn) {\n action(cell);\n }\n\n inc = colspan;\n }\n }\n\n function solveRightColspan(row, action) {\n var fixColumn = settings.right;\n var inc = 1;\n\n for (var i = 1; i <= fixColumn; i = i + inc) {\n var nth = inc > 1 ? i - 1 : i;\n\n var cell = $(row).find(\"> *:nth-last-child(\" + nth + \")\");\n var colspan = cell.prop(\"colspan\");\n\n action(cell);\n\n inc = colspan;\n }\n }\n }\n\n }\n\n\n\n\n };\n\n})(jQuery);\n\n/* cellPos jQuery plugin\n ---------------------\n Get visual position of cell in HTML table (or its block like thead).\n Return value is object with \"top\" and \"left\" properties set to row and column index of top-left cell corner.\n Example of use:\n $(\"#myTable tbody td\").each(function(){\n $(this).text( $(this).cellPos().top +\", \"+ $(this).cellPos().left );\n });\n */\n(function ($) {\n /* scan individual table and set \"cellPos\" data in the form { left: x-coord, top: y-coord } */\n function scanTable($table) {\n var m = [];\n $table.children(\"tr\").each(function (y, row) {\n $(row).children(\"td, th\").each(function (x, cell) {\n var $cell = $(cell),\n cspan = $cell.attr(\"colspan\") | 0,\n rspan = $cell.attr(\"rowspan\") | 0,\n tx, ty;\n cspan = cspan ? cspan : 1;\n rspan = rspan ? rspan : 1;\n for (; m[y] && m[y][x]; ++x); //skip already occupied cells in current row\n for (tx = x; tx < x + cspan; ++tx) { //mark matrix elements occupied by current cell with true\n for (ty = y; ty < y + rspan; ++ty) {\n if (!m[ty]) { //fill missing rows\n m[ty] = [];\n }\n m[ty][tx] = true;\n }\n }\n var pos = {top: y, left: x};\n $cell.data(\"cellPos\", pos);\n });\n });\n };\n\n /* plugin */\n $.fn.cellPos = function (rescan) {\n var $cell = this.first(),\n pos = $cell.data(\"cellPos\");\n if (!pos || rescan) {\n var $table = $cell.closest(\"table, thead, tbody, tfoot\");\n scanTable($table);\n }\n pos = $cell.data(\"cellPos\");\n return pos;\n }\n})(jQuery);","(() => {\n window.FormUtils = class FormUtils {\n saveToLocalStorage(form) {\n const formData = new FormData(form);\n let iterator = formData.entries();\n let entry = iterator.next();\n let result = [];\n\n while(!entry.done) {\n let value = entry.value;\n\n if (!['utf8', 'authenticity_token'].includes(value[0])) {\n result.push(value[0] + \"=\" + value[1]);\n }\n\n entry = iterator.next();\n }\n\n localStorage.setItem(form.id, JSON.stringify(result));\n }\n\n clearLocalStorage(formId) {\n localStorage.removeItem(formId);\n }\n\n getFromLocalStorage(formId) {\n const formData = localStorage.getItem(formId);\n \n return JSON.parse(formData);\n }\n }\n})()\n","(function() {\n $(function() {\n const header = $('header');\n const footer = $('footer');\n const pageWrapper = $('#page-wrapper');\n const headerHeight = header.height();\n const footerHeight = footer.height() + 10;\n\n header.css('marginTop', (0 - headerHeight) + \"px\");\n footer.css('marginBottom', (0 - footerHeight) + \"px\");\n\n pageWrapper.css('padding', headerHeight + \"px 0 \" + footerHeight + \"px 0\");\n });\n\n}).call(this);","export function showBootstrapAlert(title, text) {\n const alertModal = $('#bootstrap-alert');\n const titleElement = alertModal.find('.modal-header .modal-title');\n const bodyElement = alertModal.find('.modal-body .alert-context');\n\n titleElement.html(title);\n bodyElement.html(text);\n\n alertModal.modal('show');\n}\n\n","import { showBootstrapAlert } from \"./BootstrapAlert\";\n\n$(document).on('click', '#send-order-to-customer', function(e) {\n e.preventDefault();\n $('#send-to-user-modal').modal('show');\n});\n\n\n\n\n\n","import { processingModal } from \"../helpers/processing_modal\";\n\nfunction Vat() {\n const showVatConfirmationModal = function (event) {\n const target = event.target;\n target.checked = !target.checked;\n\n const confirmationModal = $('.pending_table #bookings').data('vat-confirmation-modal');\n\n if (confirmationModal) {\n const modal = $('#admin_orders_single_vat_confirmation_modal');\n modal.modal('show');\n modal.data('target', target);\n } else {\n sendVat(switchVatCheckboxElement(target));\n }\n };\n\n const switchVatCheckboxElement = function (target) {\n $(target).prop('checked', !$(target).is(':checked'));\n return target;\n };\n\n const sendVat = function (target) {\n processingModal.show(1)\n const $el = $(target);\n const data = {};\n\n data[$el.attr('name')] = target.checked;\n\n $.ajax({\n url: $el.data('url'),\n dataType: 'json',\n data: data,\n type: 'PATCH',\n beforeSend: function () {\n $el.prop('disabled', true)\n },\n success: function () {\n window.bookingTable.reload(false);\n },\n error: function (error) {\n processingModal.hide();\n $el.prop('disabled', false)\n switchVatCheckboxElement(target);\n Helper.flash_message('error', error.responseJSON);\n }\n })\n };\n\n const changeBookingsExtraVat = function (event) {\n sendVat(event.target);\n };\n\n const submitVatModal = function () {\n const modal = $('#admin_orders_single_vat_confirmation_modal');\n modal.modal('hide');\n const target = modal.data('target');\n sendVat(switchVatCheckboxElement(target));\n };\n\n return {\n showVatConfirmationModal: showVatConfirmationModal,\n changeBookingsExtraVat: changeBookingsExtraVat,\n submitVatModal: submitVatModal\n }\n}\n\nwindow.vat = Vat();","import { processingModal } from \"../helpers/processing_modal\";\n\nfunction MultiVat() {\n function sendVat(checkbox) {\n processingModal.show(1)\n const url = checkbox.data('url');\n\n $.ajax({\n url: url,\n dataType: 'json',\n data: { booking: { admin_vat_enabled: checkbox.prop('checked') } },\n type: 'POST',\n beforeSend: function() {\n checkbox.prop('disabled', true)\n },\n success: function() {\n window.bookingTable.reload(false);\n },\n error: function(error) {\n processingModal.hide();\n checkbox.prop('disabled', false);\n switchMultiVatCheckbox();\n Helper.flash_message('error', error.responseJSON);\n }\n });\n }\n\n const submitMultiVatModal = function() {\n $('#admin_orders_multi_vat_confirmation_modal').modal('hide');\n sendVat(switchMultiVatCheckbox());\n };\n\n const showVatConfirmationModal = function(event) {\n const target = event.target;\n target.checked = !target.checked;\n\n const confirmationModal = $('.pending_table #bookings').data('vat-confirmation-modal');\n\n if (confirmationModal) {\n $('#admin_orders_multi_vat_confirmation_modal').modal('show');\n } else {\n sendVat(switchMultiVatCheckbox());\n }\n };\n\n const switchMultiVatCheckbox = function() {\n const checkbox = $('#all-bookings-vat-checkbox');\n checkbox.prop('checked', !checkbox.prop('checked'));\n\n return checkbox;\n };\n\n return {\n showVatConfirmationModal: showVatConfirmationModal,\n submitMultiVatModal: submitMultiVatModal\n }\n}\n\n\nwindow.multiVat = MultiVat();","function Multiple() {\n const show = function(event) {\n const $target = $(event.target);\n const $bookingsBlock = $target.closest('#bookings-block');\n\n $bookingsBlock.find('.edit-remove-multiple').hide();\n $bookingsBlock.find('.action_block').hide();\n $bookingsBlock.find('.multiple-modification').show();\n\n if ($(window).width() < 800) {\n $bookingsBlock.find('.add-session-btn-wrapper').hide()\n }\n }\n\n const hide = function(event) {\n const $target = $(event.target);\n const $bookingsBlock = $target.closest('#bookings-block');\n\n $bookingsBlock.find('.edit-remove-multiple').show();\n $bookingsBlock.find('.action_block').show();\n $bookingsBlock.find('.multiple-modification').hide();\n $bookingsBlock.find('.multiple-modification input[type=checkbox]').prop('checked', 0);\n clicked = false\n $bookingsBlock.find('.check-uncheck-btn').text('Select all')\n\n if ($(window).width() < 800) {\n $bookingsBlock.find('.add-session-btn-wrapper').show()\n }\n }\n\n const selectAll = function(event) {\n const checked = $(event.target).is(':checked')\n $('.multiple-check').prop('checked', checked);\n }\n\n var clicked = false;\n\n const selectAllMobile = function(event) {\n clicked = $('.multiple-check:checked').length === $('.multiple-check').length\n $(\".multiple-check\").prop(\"checked\", !clicked);\n clicked = !clicked;\n $(\".check-uncheck-btn\").text(clicked ? 'Unselect all' : 'Select all');\n }\n\n $(document).on('change', function(event) {\n if($('.multiple-check:checked').length === $('.multiple-check').length) {\n $(\".check-uncheck-btn\").text('Unselect all');\n clicked = true\n } else {\n $(\".check-uncheck-btn\").text('Select all');\n clicked = false\n }\n })\n\n return {\n show: show,\n hide: hide,\n selectAll: selectAll,\n selectAllMobile: selectAllMobile,\n }\n\n}\n\n\nwindow.multiple = Multiple();","import axios from 'axios';\nimport { processingModal } from \"../helpers/processing_modal\";\n\nfunction CheckoutOptions() {\n const onChange = function(event) {\n processingModal.show(500)\n\n const target = event.target;\n const url = target.closest('form').getAttribute('action');\n const submitLink = document.getElementById('continue-order');\n const table = $('#bookings-block .table-bookings');\n const checkoutOptionKey = target.value;\n const reloadPaymentsUrl = table.data('reload-payments-url');\n const reloadPaymentOptionsUrl = table.data('reload-payment-options-url');\n const reloadBillIssueUrl = table.data('reload-issue-url');\n\n submitLink.classList.add('disabled_link_continue');\n\n axios\n .put(url, { order: { checkout_option_key: checkoutOptionKey } })\n .then(() => {\n const endpoints = [reloadPaymentsUrl, reloadPaymentOptionsUrl, reloadBillIssueUrl]\n\n axios\n .all(endpoints.map((endpoint) => axios.get(endpoint)))\n .then(axios.spread(({ data: paymentsTable }, { data: paymentsOptions }, { data: billIssue }) => {\n submitLink.classList.remove('disabled_link_continue');\n document.getElementById('payments_list').innerHTML = paymentsTable;\n document.getElementById('payment_options').innerHTML = paymentsOptions;\n if (_.isEmpty(billIssue.issue)) {\n submitLink.classList.remove('disabled_link_continue');\n submitLink.disabled = false;\n }\n $(submitLink).data('issue', billIssue.issue);\n processingModal.hide();\n }))\n .catch((error) => {\n processingModal.hide()\n submitLink.classList.remove('disabled_link_continue');\n }\n )\n })\n .catch((error) => {\n submitLink.classList.remove('disabled_link_continue');\n Helper.flash_message('error', error.response.data.errors);\n processingModal.hide()\n });\n };\n\n return {\n onChange: onChange\n }\n}\n\nwindow.checkoutOptions = CheckoutOptions();\n","import axios from 'axios';\nimport { processingModal } from \"../helpers/processing_modal\";\n\nfunction PaymentOptions() {\n const onChange = function(event) {\n processingModal.show(500)\n\n const target = event.target;\n const url = target.closest('form').getAttribute('action');\n const submitLink = document.getElementById('continue-order');\n const table = $('#bookings-block .table-bookings');\n const reloadPaymentsUrl = table.data('reload-payments-url');\n const paymentOption = target.value;\n const reloadBillIssueUrl = table.data('reload-issue-url');\n const endpoints = [reloadPaymentsUrl, reloadBillIssueUrl];\n\n submitLink.classList.add('disabled_link_continue');\n\n axios\n .put(url, { order: { payment_option: paymentOption } })\n .then(() => {\n axios\n .all(endpoints.map((endpoint) => axios.get(endpoint)))\n .then(axios.spread(({ data: paymentsTable }, { data: billIssue }) => {\n submitLink.classList.remove('disabled_link_continue');\n document.getElementById('payments_list').innerHTML = paymentsTable;\n\n if (_.isEmpty(billIssue.issue)) {\n submitLink.classList.remove('disabled_link_continue');\n submitLink.disabled = false;\n }\n\n $(submitLink).data('issue', billIssue.issue);\n processingModal.hide();\n }))\n .catch(() => {\n Helper.flash_message('error', 'Something went wrong!');\n submitLink.classList.remove('disabled_link_continue');\n processingModal.hide()\n });\n })\n .catch(error => {\n Helper.flash_message('error', error.response.data.errors);\n submitLink.classList.remove('disabled_link_continue');\n processingModal.hide();\n });\n };\n\n return {\n onChange: onChange\n }\n}\n\nwindow.paymentOptions = PaymentOptions();\n","import axios from \"axios\";\nimport { processingModal } from \"../helpers/processing_modal\";\n\nfunction DeleteBookingItem() {\n let disabledSingleEdit = false;\n const single = function(event) {\n event.preventDefault();\n if (disabledSingleEdit) return;\n\n disabledSingleEdit = true;\n processingModal.show();\n const url = event.target.dataset.url;\n\n axios.delete(url).then(() => {\n window.bookingTable.reload(false);\n disabledSingleEdit = false;\n }).catch(() => {\n processingModal.hide();\n disabledSingleEdit = false;\n });\n }\n\n function multiple() {\n const bookingIds = $.map($('.multiple-check:checked'), (row) => row.value)\n\n if (bookingIds.length < 1) {\n Helper.flash_message('warning', 'Please select the lines you wish to delete')\n return;\n }\n\n processingModal.show();\n\n const orderId = $('#bookings-block .table-bookings').data('order-id');\n const url = `/orders/${orderId}/multiple_bookings/delete_multiple`;\n\n axios\n .delete(url, { headers: { 'Content-type': 'application/json;charset=utf-8' }, data: { booking_ids: bookingIds } })\n .then(() => window.bookingTable.reload(false))\n .catch(() => processingModal.hide());\n }\n\n return {\n single: single,\n multiple: multiple\n }\n}\n\nwindow.deleteBookingItem = DeleteBookingItem();","import { processingModal } from \"../helpers/processing_modal\";\n\nfunction ContinueButton () {\n const handleOrderContinue = function(e) {\n e.preventDefault();\n\n const button = $('#continue-order');\n\n if (!button.prop('disabled')) {\n button.prop('disabled', true)\n\n const data = $(e.target).data();\n const { issue, orderId } = data;\n\n if (issue) {\n showBootstrapAlert('', issue)\n return true;\n }\n\n const checkoutOptionKey = $('input[name=\"checkout_option_changing[checkout_option_key]\"]:checked').val();\n\n if (checkoutOptionKey === 'customer_to_checkout') {\n $('#send-to-user-modal').modal('show')\n button.prop('disabled', false)\n } else {\n processingModal.show();\n\n goToCheckout(\n orderId,\n function(data) { window.location = data.url },\n function(data) {\n processingModal.hide();\n showBootstrapAlert('', data.responseJSON.error);\n window.bookingTable.reload(false);\n button.prop('disabled', false)\n }\n );\n }\n }\n }\n\n const handleOrderCastling = function(e) {\n e.preventDefault();\n\n const data = $(e.target).data();\n const { owner, orderCalculationId } = data;\n\n if (owner) {\n if (owner === 'venue') {\n window.location.href = `/bills/${orderCalculationId}/castling`;\n } else {\n $('#confirm-modification').modal('show');\n button.prop('disabled', false)\n }\n }\n }\n\n function goToCheckout(orderId, onSuccess, onFailed) {\n $.ajax({\n type: \"GET\",\n url: `/orders/${orderId}/prepare`,\n success: onSuccess,\n error: onFailed\n })\n }\n\n function showBootstrapAlert(title, text) {\n const alertModal = $('#bootstrap-alert');\n const titleElement = alertModal.find('.modal-header .modal-title');\n const bodyElement = alertModal.find('.modal-body .alert-context');\n\n titleElement.html(title);\n bodyElement.html(text);\n\n alertModal.modal('show');\n }\n\n const submitSendToUserForm = function(e) {\n e.preventDefault();\n\n const form = $('#send-to-user-modal form');\n const submitBtn = form.find('input[type=submit]')\n form.find('.text-danger').remove();\n\n $.ajax({\n type : 'POST',\n url: form.attr('action'),\n dataType: 'json',\n data: form.serialize(),\n success: (data) => {\n if (data.add_show_notification) localStorage.showNotification = 'showNotification';\n setTimeout(() => window.location.replace(data.redirect_link), 100);\n },\n error: (error) => {\n const { errors } = error.responseJSON;\n\n if (errors.base) {\n $('#send-to-user-modal').modal('hide');\n showBootstrapAlert('', errors.base.join(', '));\n window.bookingTable.reload();\n submitBtn.prop('disabled', false)\n } else {\n submitBtn.prop('disabled', false)\n addErrors(errors);\n }\n }\n });\n }\n\n function addErrors(errors) {\n removeErrors();\n\n _.each(errors, function (value, key) {\n $('#send_to_user_' + key)\n .closest('.form-group')\n .append('<span class=\"text-danger\">' + value.join(', ') + '</span>')\n });\n }\n\n function removeErrors() {\n }\n\n return {\n handleOrderContinue: handleOrderContinue,\n handleOrderCastling: handleOrderCastling,\n submitSendToUserForm: submitSendToUserForm\n }\n}\n\nwindow.continueButton = new ContinueButton();","import { processingModal } from \"../helpers/processing_modal\";\nimport axios from 'axios';\n\nfunction BookingTable() {\n const fixWidth = function() {\n const tables = $('.table-bookings');\n\n tables.each(function() {\n const table = $(this);\n const pricePosition = table.find('.price_position');\n const nextElements = pricePosition.nextAll();\n\n let totalWidth = 0;\n\n nextElements.each(function(index) {\n totalWidth += parseInt($(this).outerWidth(), 0);\n });\n\n table.find('.price-reader').css('width', pricePosition.outerWidth());\n table.find('.price-corrector').css('min-width', totalWidth)\n });\n }\n\n const updateBookingsTable = (data, options = {}) => {\n $('#bookings-block').empty().append(data);\n start();\n\n if (options?.scroll) $('html, body').animate({ scrollTop: $(\"#bookings-block\").offset().top });\n\n if (options?.onUpdated) {\n if (typeof options.onUpdated === 'function') options.onUpdated();\n }\n }\n\n const cleanBookingsTable = () => {\n $('#bookings-block').empty();\n }\n\n const start = function() {\n fixWidth();\n }\n\n const reloadTable = function(withScroll, options = {}) {\n const reload_url = $('#bookings-block .table-bookings').data('reload-url');\n\n axios.get(reload_url).then((response) => {\n updateBookingsTable(response.data, options);\n processingModal.hide();\n }).catch(() => console.error('Something went wrong'));\n };\n\n const getOrderId = () => {\n return $('#bookings-block .table-bookings').data('orderId');\n }\n\n return {\n start: start,\n update: updateBookingsTable,\n clean: cleanBookingsTable,\n reload: reloadTable,\n getOrderId: getOrderId\n }\n}\n\nwindow.bookingTable = BookingTable();\n","window.usersNotifications = () => {\n $('#notifications-tooltip-icon').tooltip({ placement: 'right', html: true});\n\n $('.info-icon').each(function() {\n $(this).popover({\n html: true,\n trigger: \"hover\",\n placement: 'bottom',\n content: function() {\n return $(this).find('.popover-body').html();\n }\n });\n });\n}","// axios\n\nwindow.ProfileClass = function() {\n function changeNotificationState(event) {\n event.preventDefault();\n\n const el = $(event.target);\n const form = el.closest('form');\n\n $.ajax({\n type: 'PUT',\n url: form.attr('action'),\n dataType: 'html',\n data: form.serializeArray(),\n success: () => Helper.flash_message('success', 'Successfully updated'),\n error: () => Helper.flash_message('error', \"Couldn't update\")\n });\n }\n\n function changeAllNotificationStates(enabled) {\n $('.venue_user_notify_by_email input[type=checkbox]').prop('checked', enabled);\n\n $.ajax({\n method: 'PUT',\n url: '/admin/users/notification_availability',\n data: { enabled: enabled },\n success: () => Helper.flash_message('success', 'Successfully updated'),\n error: () => Helper.flash_message('error', \"Couldn't update\")\n });\n }\n\n return {\n changeAllNotificationStates: changeAllNotificationStates,\n changeNotificationState: changeNotificationState\n }\n}\n\nwindow.Profile = new ProfileClass();\n\n\n\n\n","import axios from 'axios';\nimport { smartRedirect } from '../smartRedirect';\nimport { processingModal } from \"../helpers/processing_modal\";\nimport SmartyForm from \"src/nextgen/helpers/smarty_form\";\n\n\n$(document).on('submit', '#new_bills_payment_option_changing', (e) => {\n e.preventDefault();\n processingModal.show();\n\n new SmartyForm().process({\n form: $(e.target).closest('form'),\n onSuccess: () => {\n processingModal.hide();\n smartRedirect(window.location.origin + window.location.pathname)\n },\n onError: () => Helper.flash_message('Something went wrong')\n });\n});\n","import axios from 'axios';\n\n(function() {\n $(function() {\n var $new_message_conversation_modal, anchor, hash, showActionModal, showMessageModal;\n\n if ($('.admin_orders_show, .account_orders_show, .admin_online_memberships_member_orders_show, .account_online_memberships_member_orders_show').length > 0) {\n window.loadedOrderTabs = ['#order_info'];\n\n window.loadOrderTab = function(el, reload, disableScroll) {\n el.tab('show');\n let url = el.attr('href');\n const target = el.attr('data-target');\n\n function ajaxLoad() {\n url = url + '?target=' + target.substring(1)\n if (disableScroll) { url = url + '&do_not_scroll=true' }\n\n $.ajax({\n url: url,\n beforeSend: () => $(target).empty()\n }).done((response) => {\n $(target).html(response);\n }).fail(() => {\n $(target).html($(\"<div/>\", { class: 'alert alert-danger' }).text(\"Something went wrong\"))\n });\n }\n\n ajaxLoad();\n };\n\n window.reloadOrderHeader = function() {\n const header = $('#order_header');\n\n axios\n .get(header.data('url'))\n .then(response => header.replaceWith(response.data))\n .catch((e) => console.log(e))\n };\n\n $('.nav-tab-ajax a[data-toggle=\"tabajax\"]').on('click', function(e) {\n e.preventDefault();\n return window.loadOrderTab($(this));\n });\n\n anchor = window.location.hash;\n const urlParams = new URLSearchParams(window.location.search);\n const navigateTo = urlParams.get('navigateTo');\n\n if (anchor) {\n $(\"[data-target='\" + anchor + \"']\").triggerHandler('click');\n } else if (navigateTo) {\n const tabMapping = {\n \"process_payment\": \"payments_info\"\n };\n\n const tabTarget = tabMapping[navigateTo] || navigateTo;\n\n $(\"[data-target='#\" + tabTarget + \"']\").triggerHandler('click');\n }\n }\n\n $(document).on('click', '.disabled_continue', function(e) {\n e.preventDefault();\n return alert(\"You have chosen slots that are unavailable. Please amend before continuing.\");\n });\n\n $(document).on('click', '.disabled_link_continue', function(e) {\n e.preventDefault();\n return false;\n });\n\n $('.booking-import-file').on('change', function() {\n return $('.submit-booking-import').attr('disabled', false);\n });\n\n showActionModal = function(link) {\n $.get(link, function(data) {\n $('#admin_orders_modal').find('.modal-content').empty().append(data);\n return $('#admin_orders_modal').modal('show');\n });\n };\n\n $new_message_conversation_modal = $('#new_message_conversation_modal');\n\n showMessageModal = function(link) {\n $.ajax({\n type: \"GET\",\n url: link,\n async: true,\n success: function(data) {\n $new_message_conversation_modal.find('.modal-content').empty().append(data);\n return $new_message_conversation_modal.modal('show');\n },\n error: function(data) {\n if (data.status === 422) {\n $new_message_conversation_modal.find('.modal-content').empty().append(data.responseText);\n return $new_message_conversation_modal.modal('show');\n } else {\n\n }\n }\n });\n };\n\n $(document).on('click', 'a#new_message', function(e) {\n e.preventDefault();\n return showMessageModal($(this).attr('href'));\n });\n\n $('.payment-failed-notified').click(function() {\n window.location.reload();\n });\n });\n\n window.submitFormCloseModalRefreshPage = function(button) {\n var $admin_modal_info_modal, form;\n form = $(button).closest('form');\n form.submit();\n $admin_modal_info_modal = $('#modal_info');\n $admin_modal_info_modal.find('.modal-content').empty();\n $admin_modal_info_modal.modal('close');\n $('#admin_orders_modal').modal('close');\n };\n\n window.reloadPageOnBackOnMobile = function() {\n if (/iphone|ipod|ipad.*os 5/gi.test(navigator.appVersion)) {\n return window.onpageshow = function(evt) {\n if (evt.persisted) {\n location.reload();\n }\n };\n }\n };\n}).call(this);","import SmartyForm from \"../helpers/smarty_form\";\n\n(function() {\n $(function() {\n let $new_note_modal, showNoteModal, reloadData;\n\n $new_note_modal = $('#admin_orders_modal');\n\n showNoteModal = function (link) {\n $.ajax({\n type: \"GET\",\n url: link,\n async: true,\n success: function (data) {\n $new_note_modal.find('.modal-content').empty().append(data);\n $new_note_modal.modal('show');\n },\n error: function (data) {\n $new_note_modal.find('.modal-content').empty();\n $new_note_modal.modal('show');\n }\n });\n };\n\n $(document).on('click', '.dropdown-menu li a.open_note_modal', function (e) {\n e.preventDefault();\n showNoteModal($(this).attr('href'));\n });\n\n $(document).on('click', '#send_note', function (e) {\n e.preventDefault();\n $(this).attr('disabled', true);\n $(this).find(\"input[type=text], textarea\").prop('readonly', true);\n let $form = $(this).closest('form');\n let note = $form.find('#order_note_note').val()\n let send_note_url = $(this).attr('href') + '?' + 'note=' + note\n $.ajax({\n type: \"POST\",\n url: send_note_url,\n async: false,\n success: function () {\n $new_note_modal.find('.modal-content').empty();\n reloadData(false);\n $new_note_modal.modal('hide');\n },\n error: function (response) {\n new SmartyForm().addErrors($form, 'order_note', (response.responseJSON || {}).errors)\n }\n });\n });\n\n reloadData = function(change_page) {\n let orders_url = $('#orders-table').data('source') + '?' + $(\"form#new_filter\").serialize()\n let ajax = $('#orders-table').DataTable().ajax\n ajax.url(orders_url)\n ajax.reload(null, change_page)\n }\n });\n}).call(this);","import axios from \"axios\";\n\nwindow.updateActionMessage = function(target) {\n const resolvedBy = target.data('resolvedBy')\n\n if (resolvedBy) {\n target.addClass('resolved').html(`Actioned by: ${resolvedBy}`)\n } else {\n target.removeClass('resolved').html('Click to confirm this has been actioned')\n }\n}\n\n$(document).on('click', '.action-message a', (e) => {\n e.preventDefault();\n const target = $(e.target);\n\n axios\n .patch(target.attr('href'))\n .then((res) => {\n target.data('resolvedBy', res.data.message.resolvedBy)\n updateActionMessage(target)\n })\n .catch((e) => {\n Helper.flash_message('error', 'Something went wrong')\n })\n})\n","import { smartRedirect } from './smartRedirect';\nimport { processingModal } from './helpers/processing_modal';\nimport SmartyForm from './helpers/smarty_form';\nimport OrderTab from \"src/nextgen/orders/Tab\";\n\nconst smartyForm = new SmartyForm();\n\n$(document).on('click', '.retract-amendment-btn', function(e) {\n e.preventDefault();\n if ($('#retract-amendment-modal').length < 1) {\n $('body').prepend('<div id=\"retract-amendment-modal\"/>')\n }\n\n const url = $(this).attr('href');\n\n $.ajax({\n url: url,\n method: 'GET',\n success: function(response) {\n $('#retract-amendment-modal').replaceWith(response);\n const modal = $('#retract-amendment-modal');\n\n if (document.getElementById('current_bill') !== null) {\n const orderTab = new OrderTab();\n orderTab.reload();\n }\n modal.modal('show');\n }\n })\n});\n\n$(document).on('submit', '#account-retract-amendment', function(e) {\n e.preventDefault();\n\n processingModal.show();\n\n smartyForm.process({\n form: $(e.target),\n onSuccess: () => smartRedirect(window.location.origin + window.location.pathname),\n onError: () => { processingModal.hide() }\n });\n});\n\n","import { showBootstrapAlert } from './BootstrapAlert';\n\n$(document).on('click', '.send_modification_request', function(e) {\n e.preventDefault();\n\n const { issue, internal } = $(this).data()\n\n if (issue) {\n showBootstrapAlert('', issue)\n } else {\n $('#confirm-modification').modal('show');\n }\n});\n","let openLinkModal = false;\nlet renderAfterFormSubmit = false;\nlet saveFormData = false;\n\n$(document).on('click', 'a.open_link_in_modal', (e) => {\n e.preventDefault();\n \n if (openLinkModal) return;\n\n openLinkModal = true\n\n if (e.target.dataset.saveFormData == 'true') {\n saveFormData = true\n }\n\n \n if (e.target.dataset.renderAfterFormSubmit !== undefined) {\n renderAfterFormSubmit = JSON.parse(e.target.dataset.renderAfterFormSubmit);\n }\n \n const target = $(e.currentTarget);\n const link = target.attr('href');\n const modal = $('#modal_form');\n const dataAttrs = ['data-keyboard', 'data-backdrop'];\n const content = modal.find('.modal-content');\n\n dataAttrs.map((attr) => modal.attr(attr, target.attr(attr)));\n target.addClass('in-progress');\n content.empty();\n\n function enableButton() {\n setTimeout(() => {\n target.removeClass('in-progress');\n openLinkModal = false\n }, 200);\n }\n\n $.get(link)\n .done((data) => {\n content.empty().append(data)\n modal.modal('show');\n enableButton();\n })\n .fail(() => {\n Helper.flash_message('error', 'Something went wrong')\n enableButton();\n });\n});\n\n$(document).on('click', '#modal_form form [type=submit]', (e) => {\n const target = $(e.currentTarget);\n\n if (target.closest('form').data('skip-modal')) return;\n\n const $form = target.closest('form');\n if (!$form.attr('novalidate') && $form.find('input[required][type=\"text\"]').filter(() => !target.val()).length > 0) return;\n\n e.preventDefault();\n\n if (target.prop('disabled')) return;\n\n target.prop('disabled', true)\n\n const $modal = $('#modal_form')\n\n function processError(data) {\n target.prop('disabled', false)\n\n if (data.status === 422) {\n $modal.find('.modal-content').empty().append(data.responseText);\n }\n }\n\n function processSuccess(data) {\n new FormUtils($form).clearLocalStorage($($form)[0].id);\n\n if ((data || {}).message) { Helper.flash_message('success', data.message) }\n setTimeout(() => target.prop('disabled', false), 200);\n\n if ($modal.find('form [type=submit]').data('reload') === 'facilities') {\n //new Facilities().reloadData(false);\n }\n\n if ($modal.find('form [type=submit]').data('reload') === 'modal_confirmation') {\n $modal.find('.modal-content').empty().append(data);\n } else {\n $modal.modal('hide');\n\n if (renderAfterFormSubmit === true) {\n $form.submit();\n }\n }\n }\n\n const url = $form.attr('action');\n const enctype = $form.attr('enctype');\n if (enctype === 'multipart/form-data') {\n $.ajax({\n type: \"POST\",\n url: url,\n async: false,\n cache: false,\n contentType: false,\n processData: false,\n data: new FormData($($form)[0]),\n success: processSuccess,\n error: processError\n });\n } else {\n if (saveFormData) {\n new FormUtils().saveToLocalStorage($($form)[0]);\n }\n\n $.ajax({\n type: \"POST\",\n url: url,\n data: $form.serialize(),\n success: processSuccess,\n error: processError\n });\n }\n});\n","import axios from 'axios';\n\n$(document).on('click', '.resend-invitation', function(e) {\n e.preventDefault();\n\n const message = \"Are you sure to want to resend the invitation?\";\n\n if (confirm(message)) {\n axios\n .put($(this).attr('href'))\n .then(response => Helper.flash_message('success', response.data.notice))\n .catch(() => Helper.flash_message('error', 'Something went wrong'));\n }\n})\n","import ReactDOM from \"react-dom\";\nimport Form from \"../components/EditBooking/Form\";\nimport React from \"react\";\n\nwindow.clickMultipleEditButton = function(e) {\n e.preventDefault();\n\n const wrapper = $(e.target).closest('.booking-wrapper');\n\n if (wrapper.find('.multiple-check:checked').length > 1) {\n const id = wrapper.find('.multiple-check:checked:first').closest('td').find('input[name=\"multiple-check\"]:first').val();\n const orderId = $('#bookings-block .table-bookings').data('order-id');\n const url = `/orders/${orderId}/multiple_bookings/${id}/edit`;\n\n let modalBox = document.getElementById('booking_edit_modal');\n\n if (!modalBox) {\n const elemDiv = document.createElement('div');\n elemDiv.setAttribute('id', 'booking_edit_modal');\n\n document.body.appendChild(elemDiv);\n\n modalBox = document.getElementById('booking_edit_modal');\n }\n\n ReactDOM.unmountComponentAtNode(modalBox);\n ReactDOM.render(<Form url={url} multiple={true}/>, modalBox);\n } else {\n Helper.flash_message('warning', 'Please select the lines you wish to edit')\n }\n};","export function haversineDistance(mk1, mk2) {\n const R = 3958.8; // Radius of the Earth in miles\n const rlat1 = mk1.lat * (Math.PI/180); // Convert degrees to radians\n const rlat2 = mk2.lat * (Math.PI/180); // Convert degrees to radians\n const difflat = rlat2-rlat1; // Radian difference (latitudes)\n const difflon = (mk2.lng-mk1.lng) * (Math.PI/180); // Radian difference (longitudes)\n\n const d = 2 * R * Math.asin(Math.sqrt(Math.sin(difflat/2)*Math.sin(difflat/2)+Math.cos(rlat1)*Math.cos(rlat2)*Math.sin(difflon/2)*Math.sin(difflon/2)));\n return (d).toFixed(1);\n}\n","export function searchAddressAutocomplete(input, onPlaceChanged) {\n const optionsForAutocomplete = {\n language: 'en-GB',\n componentRestrictions: {\n country: \"uk\"\n },\n fields: [\"geometry\", 'name'],\n };\n\n const autocomplete = new google.maps.places.Autocomplete(input, optionsForAutocomplete);\n autocomplete.addListener(\"place_changed\", () => {\n const place = autocomplete.getPlace();\n\n if (!place.geometry || !place.geometry.location) {\n onPlaceChanged(null)\n console.log(\"No details available for input: '\" + place.name + \"'\");\n return;\n }\n\n onPlaceChanged(place)\n });\n\n autocomplete.addListener(\"focus\", () => { console.log('focus') })\n autocomplete.addListener(\"blur\", () => { console.log('blur') })\n autocomplete.addListener(\"changed\", () => { console.log('blur') })\n\n return autocomplete;\n}","import axios from 'axios';\nimport { haversineDistance } from \"../Map/distance\";\nimport { searchAddressAutocomplete } from '../Map/searchAddressAutocomplete';\n\nclass Search {\n start() {\n if ($('.search-wrapper').length === 0) return;\n\n this.onHideLinkToggle()\n this.applyFiltersOn('.autosubmit-checkbox-filter');\n this.applyFiltersOn('.autosubmit-dropdown-filter');\n\n $('#submit-search').click((event) => {\n event.preventDefault();\n $('#lat').val('');\n $('#lng').val('');\n this.applyFilters('submit');\n });\n\n this.initFeatures();\n this.initDistanceSlider();\n this.initPricesSlider();\n this.updateShowFeatures();\n\n $('.facility-category-dropdown-filter').on('change', (event) => {\n const val = event.target.value;\n const list = $('ul.facility_features');\n list.empty();\n this.applyFilters();\n axios.get(`/facility_categories/${val}`).then(response => {\n list.html(response.data)\n this.updateShowFeatures();\n this.updateFeaturesTitle();\n });\n })\n\n $('#search-datepicker-2').datepicker({\n orientation: \"bottom auto\",\n maxViewMode: \"days\",\n format: 'dd/mm/yyyy',\n weekStart: 1,\n autoclose: true\n }).on('changeDate', () => this.applyFilters());\n\n this.autocomplete = searchAddressAutocomplete($('.search-address-autocomplete')[0], (place) => {\n if (place) {\n const { location } = place.geometry;\n $('#lat').val(location.lat());\n $('#lng').val(location.lng());\n window.map.map().setCenter(place.geometry.location);\n this.applyFilters();\n } else {\n this.applyFilters();\n }\n });\n }\n\n applyFilters(typeRequest) {\n const $form = $(\"form[name='search-form']\");\n const url = $form.attr('action');\n\n let data = $form.serialize();\n if (typeRequest === 'submit') data = data + '&update_center=true'\n\n $.get({ url: url, data: data, success: (content) => {\n this.updateList(content);\n if(typeRequest !== 'map') this.updatePath();\n } });\n }\n\n updateList(content, scrollToTop = false) {\n $('#facilities-list').html(content);\n $('.facilities-block .facility-icon-item a[data-toggle=\"tooltip\"]').tooltip({\n animated: 'fade',\n placement: 'bottom',\n trigger: 'hover'\n });\n this.updateDistance();\n if (scrollToTop) $('.search-list').animate({ scrollTop: 0 });\n\n $('#facilities-list ul.pagination a').on('click', (event) => {\n event.preventDefault();\n\n $.ajax({\n url: $(event.target).attr('href'),\n method: 'GET',\n dataType: 'script',\n async: true,\n complete: (response) => { this.updateList(response.responseText, true) }\n });\n });\n }\n\n updateDistance() {\n const center = window.map.map().getCenter();\n const globalLng = center.lng();\n const globalLat = center.lat();\n\n $.each($('#facilities-list .room'), (index, room) => {\n const distance = $(room).find('.distance');\n const longitude = parseFloat(distance.data('longitude'));\n const latitude = parseFloat(distance.data('latitude'));\n const d = haversineDistance({ lng: longitude, lat: latitude}, { lng: globalLng, lat: globalLat });\n $(distance).html(`${d} m`);\n })\n }\n\n applyFiltersOn($element) {\n $(document).on('change', $element, (event) => {\n this.applyFilters($(event.currentTarget));\n });\n }\n\n updatePath(unknownArea) {\n if (!unknownArea) {\n if ($('#categories').val() === '') return Helper.flash_message('error', \"Please select a facility\");\n if ($.trim($('#area').val()) === '') return Helper.flash_message('error', \"Please enter a location\");\n }\n\n const searchParams = new URLSearchParams();\n searchParams.set(\"categories\", $('#categories').val());\n searchParams.set(\"area\", $('#area').val());\n searchParams.set(\"date\", $('#search-datepicker-2').val() || '');\n\n window.history.replaceState('', '', window.location.pathname + '?' + searchParams.toString());\n }\n\n onHideLinkToggle() {\n $('.hide-link').click((event) => {\n const $this = $(event.currentTarget);\n const text = ($this.text() === '+ Maximize the filter') ? '- Hide the filter' : '+ Maximize the filter';\n\n $('.hide-filter-block').toggle();\n $this.text(text);\n });\n }\n\n initFeatures() {\n $('.features-toggle').on('click', () => {\n const featuresGroup = $('.features-group');\n const isOpen = featuresGroup.hasClass('open');\n featuresGroup.toggleClass('open', !isOpen);\n });\n\n $(document).on('click', '.feature-checkbox', this.updateFeaturesTitle);\n\n $(document).on('click', (event) => {\n if (!$(event.target).closest('.features-group').length) {\n $('.features-group').removeClass('open');\n }\n });\n }\n\n updateFeaturesTitle() {\n const checkedCount = $('.features-group').find(\"input[type='checkbox']:checked\").length;\n const text = (checkedCount !== 0) ? `${ checkedCount } selected` : 'Facilities Features';\n\n $('.features-dropdown-title').text(text);\n }\n\n initDistanceSlider() {\n $('#sl2').slider({ tooltip: 'hide' });\n\n $('#sl2').on('slide', (slideEvent) => $('#sl2-minVal').text(slideEvent.value));\n $('#sl2').on('slideStop', (slideEvent) => {\n $('#distance').val(slideEvent.value);\n this.applyFilters();\n });\n\n // for mobile\n $('.distance-control').on('change', (e) => {\n if(e.target.value <= 50) {\n $('#distance').val(e.target.value)\n this.applyFilters();\n } else {\n $('.distance-control').focus()\n Helper.flash_message('error', 'Distance required between 5-50 miles')\n }\n })\n }\n\n initPricesSlider() {\n $('#sl3').slider({ tooltip: 'hide' });\n $('#sl3').on('slide', (slideEvent) => {\n $('#sl3-minVal').text(slideEvent.value[0]);\n $('#sl3-maxVal').text(slideEvent.value[1]);\n });\n\n $('#sl3').on('slideStop', (slideEvent) => {\n $('#min_price').val(slideEvent.value[0]);\n $('#max_price').val(slideEvent.value[1]);\n\n this.applyFilters();\n });\n\n // for mobile\n $('.price-control-min').on('change', (e) => {\n if (e.target.value <= $('.price-control-max').val()) {\n $('#min_price').val(e.target.value);\n this.applyFilters();\n } else {\n $('.price-control-min').focus()\n Helper.flash_message('error', 'Please provide correct value')\n }\n })\n\n $('.price-control-max').on('change', (e) => {\n if ($('.price-control-min').val() <= e.target.value) {\n $('#max_price').val(e.target.value);\n this.applyFilters();\n } else {\n $('.price-control-max').focus()\n Helper.flash_message('error', 'Please provide correct value')\n }\n })\n }\n\n updateShowFeatures() {\n $('.features-group').toggle($('ul.facility_features li').length > 0);\n }\n\n initMap() {\n\n }\n\n updateMap() {\n\n }\n}\n\nexport default Search;\n\n\n\n","import Search from '../pages/search';\n\n// MarkerClusterer\n\nconst NULL_ISLAND_COORDINATES = { lat: 0.0, lng: 0.0 };\n\nfunction Map() {\n let map = null;\n let markers = [];\n\n function initMap(params, mapStyles) {\n const unknownArea = (params.lat === null || params.lng === null || params.lat === '' || params.lng === '')\n const center = unknownArea ? NULL_ISLAND_COORDINATES : params;\n\n map = new google.maps.Map(document.getElementById(\"map\"), {\n maxZoom: 15,\n minZoom: 8,\n streetViewControl: false,\n scrollwheel: false,\n zoomControlOptions: { position: google.maps.ControlPosition.LEFT_TOP },\n styles: mapStyles || [],\n zoom: 14,\n center: center\n });\n\n const controlDiv = document.getElementById('control-div');\n controlDiv.index = 1;\n map.controls[google.maps.ControlPosition.TOP_CENTER].push(controlDiv);\n\n $('#lng').val(params.lng);\n $('#lat').val(params.lat);\n\n map.addListener('dragend', onDragend);\n\n if (unknownArea) {\n showFlashMessage();\n map.setCenter(NULL_ISLAND_COORDINATES);\n }\n\n applyFilters();\n }\n\n function init(params, mapStylesURL) {\n\n if (mapStylesURL) {\n $.ajax({\n url: mapStylesURL,\n dataType: 'json',\n success: (mapStyles) => initMap(params, mapStyles),\n error: () => initMap(params)\n });\n } else {\n initMap(params);\n }\n }\n\n function onDragend() {\n const mapSearchOnDrag = $('#map_search_on_drag');\n const checked = mapSearchOnDrag.is(':checked');\n\n $('#dragend').val(checked);\n\n const { lat, lng } = map.getCenter();\n $('#lng').val(lng());\n $('#lat').val(lat());\n\n if (checked) { applyFilters() } else { calculateDistance() }\n }\n\n function update(items, params) {\n const unknownArea = (params.lat === null || params.lng === null || params.lat === '' || params.lng === '');\n\n if (unknownArea) {\n showFlashMessage();\n map.setCenter(NULL_ISLAND_COORDINATES);\n return;\n }\n\n if (params.update_center) map.setCenter({ lat: params.lat, lng: params.lng });\n\n markers.forEach(marker => marker.setMap(null));\n\n // add markers\n items.forEach((item) => {\n const marker = new google.maps.Marker({\n position: { lat: item.lat, lng: item.lng },\n icon: item.picture.url,\n map\n });\n\n const infowindow = new google.maps.InfoWindow({ content: item.infowindow });\n marker.addListener(\"click\", () => { infowindow.open({ anchor: marker, map });});\n\n markers.push(marker)\n });\n \n new Search().updateDistance();\n }\n\n function applyFilters(unknownArea) {\n new Search().applyFilters('map');\n }\n\n function calculateDistance() {\n new Search().updateDistance();\n }\n\n function showFlashMessage() {\n Helper.flash_message('error',\n `The location entered has not returned any results. \\\n Please update the location field with another location, e.g. \\ \n a street name or postcode and search again.`\n );\n }\n\n return {\n map: () => { return map },\n init: init,\n update: update\n }\n}\n\nwindow.map = new Map();\n\n","(function() {\n $(function() {\n if ($('body.admin_venue_customers_index').length < 1) {\n return;\n }\n\n const $admin_customers_modal = $('#admin_customers_modal');\n\n const showModal = function(link) {\n $.get(link, function(data) {\n $admin_customers_modal.find('.modal-content').empty().append(data);\n $admin_customers_modal.modal('show');\n });\n };\n\n $(document).on('click', '.dropdown-menu li a.open_customer_modal', function(e) {\n e.preventDefault();\n if ($(this).parent('li').hasClass('disabled')) {\n return;\n }\n return showModal($(this).attr('href'));\n });\n\n $(document).on('click', '.dropdown-menu li a.open_customer_venue_linkings_modal', function(e) {\n e.preventDefault();\n return showModal($(this).attr('href'));\n });\n\n $(document).on('click', '#admin_customers_modal form [type=submit]', function(e) {\n var $form, url;\n e.preventDefault();\n $form = $(this).closest('form');\n url = $form.attr('action');\n return $.ajax({\n type: \"POST\",\n url: url,\n data: $form.serialize(),\n success: function(data) {\n const reload = $admin_customers_modal.find('form').data('reload');\n $admin_customers_modal.modal('hide');\n if (reload) {\n if ($('#customers-table').length > 0) {\n // reloadData(false); ???\n } else {\n location.reload();\n }\n }\n },\n error: function(data) {\n $admin_customers_modal.find('.modal-content').empty().append(data.responseText);\n }\n });\n });\n });\n\n}).call(this);\n","const updateEndDate = (startDateTarget, endDateTarget) => {\n const parsedStartDate = Date.parse(startDateTarget.val());\n const parsedEndDate = Date.parse(endDateTarget.val());\n const formatedStartDate = moment(parsedStartDate).format('ddd, DD MMM YYYY');\n\n if (parsedEndDate < parsedStartDate) endDateTarget.datepicker('update', formatedStartDate);\n\n const startDateNumber = new Date(parsedStartDate);\n const endDateNumber = new Date(parsedEndDate);\n const daysRange = moment(endDateNumber).diff(startDateNumber, 'days') + 1;\n const weekDaysContainer = document.querySelector(\"#weekdays-container\");\n \n if (weekDaysContainer) {\n weekDaysContainer.style = `display: ${daysRange < 7 ? 'none' : 'flex'};`;\n }\n}\n\nwindow.onChangeSpecialDate = () => {\n const startDateTarget = $('#special_hour_start_date');\n const endDateTarget = $('#special_hour_end_date');\n updateEndDate(startDateTarget, endDateTarget);\n}\n\nwindow.onChangeSpecialDateList = (event) => {\n const index = event.target.id.split('_').pop();\n const startDateTarget = $(`#special_hour_start_date_${index}`);\n const endDateTarget = $(`#special_hour_end_date_${index}`);\n updateEndDate(startDateTarget, endDateTarget);\n}\n\nwindow.adminSpecialDatesForm = ({ error }) => {\n $('.special_hour_allow_booking').hide();\n\n const weekDaysSelect = $('select[name=\"special_hour[week_days][]');\n\n if (weekDaysSelect) {\n $(weekDaysSelect).multiselect({\n allSelectedText: 'All',\n selectAllNumber: false,\n inheritClass: true,\n buttonClass: 'input-sm text-left'\n });\n }\n\n if (error) alert(error);\n\n const toggleFacilities = (event) => {\n let condition = null;\n\n if (event.target) {\n if (event.target.selectedOptions) {\n condition = event.target.selectedOptions.length !== 7;\n } else {\n condition = event.target.value === '0';\n }\n }\n\n if (condition) {\n $('#special_hour_allow_booking').val('true')\n $('#special_hour_allow_booking').prop( \"disabled\", true );\n $('<input>').attr({type: 'hidden', id: 'hidden_allow_booking', name: 'special_hour[allow_booking]',\n value: 'true'}).appendTo('.special_hour_allow_booking');\n } else {\n $('#special_hour_allow_booking').prop( \"disabled\", false );\n $('#hidden_allow_booking').remove()\n }\n\n if (event.target.selectedOptions == undefined) {\n $('.facilities-for-special-hours').toggle(condition);\n }\n\n const startDateTarget = $('#special_hour_start_date');\n const endDateTarget = $('#special_hour_end_date');\n updateEndDate(startDateTarget, endDateTarget);\n }\n\n $('input[name=\"special_hour[all_facilities]\"]').on('change', toggleFacilities);\n $('select[name=\"special_hour[week_days][]').on('change', toggleFacilities);\n\n const facilitiesEl = $('input[name=\"special_hour[all_facilities]\"]:checked')[0];\n\n if (facilitiesEl) { \n toggleFacilities({target: facilitiesEl});\n }\n\n $.each($('ul.special_hour_facilities .parent-checkbox'), function() {\n const checked = $(this).is(':checked');\n const ul = $(this).siblings('ul');\n\n ul.toggle(checked);\n })\n\n $('ul.special_hour_facilities .parent-checkbox').on('click', function() {\n const checked = $(this).is(':checked');\n const ul = $(this).siblings('ul');\n\n if (ul) {\n ul.toggle(checked);\n ul.find('.child-checkbox').prop('checked', checked)\n }\n })\n\n $('#special_hour_opened').prop('checked', true).on('click', (e) => e.preventDefault());\n\n const toggleOffPeak = () => {\n const disabled = !$('#special_hour_off_peak_enabled').is(':checked')\n $('#off_peek_inputs select, #off_peek_inputs input').prop(\"disabled\", disabled);\n };\n\n $('#special_hour_off_peak_enabled').on('change', toggleOffPeak);\n\n toggleOffPeak();\n\n const select = $('#special_hour_day_type');\n\n function toggleDayType() {\n const openingHoursContainer = select.parents('form').find('.opening_hours_container');\n const allowBookingContainer = select.parents('form').find('.special_hour_allow_booking');\n\n openingHoursContainer.toggle(select.val() === 'alternative');\n allowBookingContainer.toggle(select.val() !== 'alternative');\n\n $('.info-icon-allow-booking-holiday').toggle(select.val() === 'holidays');\n $('.info-icon-allow-booking-closure').toggle(select.val() === 'closure');\n }\n\n select.on('change', toggleDayType);\n toggleDayType();\n\n function specialHourRequestFormValidation() {\n var submitBtn = $('#submit_special_date');\n var modalWindow = $('.special_hour_form').closest('#modal_form');\n\n $('#special_date_form_btn').on('click', function(e) {\n e.preventDefault();\n\n if ($('.type-venue', modalWindow).length > 0) {\n if ($('.type-venue:checked', modalWindow).length == 0) {\n alert(\"At least 1 venue must be selected.\");\n return false;\n }\n }\n\n if ($('#special_hour_allow_booking').val() == 'false') {\n const MESSAGE = \"Are you sure?\\n\\nBy setting this to 'No', you are stopping bookings for ALL \" +\n \"dates being made during this period. This option should only \" +\n \"be used if you/your colleagues are not working during an extended \" +\n \"period e.g. summer holidays and don't want customers to make bookings \" +\n \"which will then auto-reject as they aren't approved in time.\"\n\n if (!confirm(MESSAGE)) {\n return false;\n } else {\n submitBtn.click();\n }\n }\n submitBtn.click();\n });\n }\n\n specialHourRequestFormValidation();\n\n $('#week_days').multiselect({\n nonSelectedText: 'None',\n buttonClass: 'input-sm form-control'\n })\n\n const startDateTarget = $('#special_hour_start_date');\n const endDateTarget = $('#special_hour_end_date');\n\n updateEndDate(startDateTarget, endDateTarget);\n}","window.adminSchedulesForm = function(scheduleType, area, disabledCheckboxes = false) {\n (function (scheduleType, area, disabledCheckboxes = false) {\n const checkbox = $(`#show_off_peak_${scheduleType}_prices`);\n const anyOffPeak = $(`div.area_${scheduleType}_off_peak_enabled input[type=checkbox]:checked`).length > 0;\n const wrapper = $(`#${scheduleType}_table_wrapper`);\n const toggleArea = () => $(`.area_${scheduleType}_off_peak_enabled`).toggle(checkbox.is(':checked'));\n const wrapperStatus = wrapper.data(`prev${area}Status`);\n\n checkbox.on('change', () => {\n wrapper.data(`prev${area}Status`, checkbox.is(':checked'));\n toggleArea();\n });\n\n if (disabledCheckboxes) {\n checkbox.prop('checked', anyOffPeak).prop('disabled', true);\n } else if (anyOffPeak) {\n checkbox.prop('checked', true).prop('disabled', true);\n wrapper.data(`prev${area}Status`, checkbox.is(':checked'));\n }\n\n if (wrapperStatus === true) checkbox.prop('checked', true);\n\n toggleArea();\n })(scheduleType, area, disabledCheckboxes);\n\n (function (scheduleType, area, disabledCheckboxes = false) {\n const checkbox = $(`#show_${scheduleType}_closed_hours`);\n const anyClosedHour = $(`tr.closed-${scheduleType}-hours-field`).length > 0;\n const wrapper = $(`#${scheduleType}_table_wrapper`);\n const statusName = `prevClosedHour${area}Status`;\n const toggleClosedArea = () => $(`.${scheduleType}-btn-add-close-hour-wrapper`).toggle(checkbox.is(':checked'));\n const wrapperStatus = wrapper.data(statusName);\n\n checkbox.on('change', () => {\n wrapper.data(statusName, checkbox.is(':checked'));\n toggleClosedArea();\n });\n\n if (disabledCheckboxes) {\n checkbox.prop('disabled', true).prop('checked', anyClosedHour);\n } else if (anyClosedHour) {\n checkbox.prop('checked', true).prop('disabled', true);\n wrapper.data(statusName, checkbox.is(':checked'));\n }\n\n if (wrapperStatus === true) checkbox.prop('checked', true);\n\n toggleClosedArea();\n })(scheduleType, area, disabledCheckboxes);\n\n $('.info-icon').each(function() {\n $(this).popover({\n html: true,\n trigger: \"hover\",\n placement: 'right',\n content: () => $(this).find('.popover-body').html()\n });\n });\n}\n\n","(function() {\n var collectBookingOptions, fixWidthHelper;\n\n $.initSortableBookingOptions = function() {\n $('#sorable-booking-options-custom').sortable({\n helper: fixWidthHelper,\n start: function(e, ui) {\n return ui.placeholder.height(ui.item.height());\n },\n stop: function(e, ui) {\n return collectBookingOptions();\n }\n });\n\n $('#sorable-booking-options-all').sortable({\n helper: fixWidthHelper,\n start: function(e, ui) {\n return ui.placeholder.height(ui.item.height());\n },\n stop: function(e, ui) {\n return collectBookingOptions();\n }\n });\n };\n\n $.initSortableBookingOptions();\n\n fixWidthHelper = function(e, ui) {\n ui.children().each(function() {\n return $(this).width($(this).width());\n });\n return ui;\n };\n\n collectBookingOptions = function() {\n var bookingOptions, ids, path;\n bookingOptions = $('#sorable-booking-options .sorable-booking-order-wrapper');\n\n ids = $.map(bookingOptions, function(el, _) {\n return $(el).data('id');\n });\n\n path = $('#sorable-booking-options').data('path');\n\n $.ajax({\n method: 'PUT',\n url: path,\n data: {\n ids: ids\n },\n success: function(result) {\n $('.success').fadeIn('slow');\n $('.success').fadeOut('slow');\n },\n fail: function(result) {\n $('.error').fadeIn('slow');\n $('.error').fadeOut('slow');\n }\n });\n };\n\n}).call(this);","(function() {\n var collectExtraOrders;\n\n window.initSortableExtras = function() {\n $('.sortable-extras').sortable({\n stop: function(e, u) {\n return collectExtraOrders();\n }\n });\n };\n\n initSortableExtras();\n\n collectExtraOrders = function() {\n var extra_records, ids;\n extra_records = $('.sortable-extras .ui-sortable-handle');\n\n ids = $.map(extra_records, function(record, _) {\n return $(record).data('id');\n });\n\n $.ajax({\n method: 'PUT',\n url: '/admin/extras/reorder',\n data: { ids: ids },\n success: function(result) {\n $('.success').fadeIn('slow');\n $('.success').fadeOut('slow');\n },\n fail: function(result) {\n $('.error').fadeIn('slow');\n $('.error').fadeOut('slow');\n }\n });\n };\n}).call(this);","window.adminVenuesMaxBookingDatesFields = () => {\n const defaultOptions = {\n format: 'D, dd M yyyy',\n autoclose: true,\n startDate: '+0d',\n weekStart: 1,\n container: '#modal_form'\n };\n\n function setAtDateFromToDate(field, selectedDate) {\n if (field.datepicker('getDate') > selectedDate) {\n field.datepicker('setDate', selectedDate);\n }\n field.datepicker('setEndDate', selectedDate);\n }\n\n $('#venue_max_booking_date, #venue_max_booking_date_existing_customers').datepicker(defaultOptions);\n\n $('#venue_max_booking_date_update_to').datepicker({\n ...defaultOptions, startDate: '+1d' \n }).on('changeDate', function (selected) {\n setAtDateFromToDate($('#venue_max_booking_date_update_at'), selected.date);\n });\n\n $('#venue_max_booking_date_existing_customers_update_to').datepicker({\n ...defaultOptions, startDate: '+1d' \n }).on('changeDate', function (selected) {\n setAtDateFromToDate($('#venue_max_booking_date_existing_customers_update_at'), selected.date);\n });\n\n $('#venue_max_booking_date_update_at, #venue_max_booking_date_existing_customers_update_at').datepicker({ ...defaultOptions, startDate: '+1d' });\n\n $('#max_booking_date_update, #max_booking_date_existing_customers_update').on('click', function(e) {\n if ($('.max_booking_date_update_fields', $(this).parent()).hasClass('hide')) {\n $('.max_booking_date_update_fields', $(this).parent()).removeClass('hide');\n } else {\n $('.max_booking_date_update_fields', $(this).parent()).addClass('hide');\n }\n e.preventDefault();\n })\n\n $('.max_booking_date_update_fields select').on('change', function() {\n const wrapper = $(this).parents('.max_booking_date_update_fields');\n\n if ($(this).val() == 'Immediately') {\n $('.max_booking_date_update_at input', wrapper).val('');\n $('.max_booking_date_update_at', wrapper).addClass('hide');\n $('.max_booking_date_update_to input', wrapper).val('');\n $('.max_booking_date_update_to', wrapper).addClass('hide');\n $('.max_booking_date_input', wrapper).removeClass('hide');\n } else {\n $('.max_booking_date_update_at', wrapper).removeClass('hide');\n $('.max_booking_date_update_to', wrapper).removeClass('hide');\n $('.max_booking_date_input', wrapper).addClass('hide');\n }\n })\n\n const disabledBookingTimeSelect = $('#venue_disabled_booking_time_attributes_disabled');\n\n function toggleDisabledBookingTime() {\n const disabledBookingTime = disabledBookingTimeSelect.val();\n $('.enabled_booking_time').toggle(disabledBookingTime === 'false');\n }\n\n disabledBookingTimeSelect.on('change', toggleDisabledBookingTime)\n toggleDisabledBookingTime();\n\n $('.info-icon').each(function() {\n $(this).popover({\n html: true,\n trigger: \"hover\",\n placement: 'top',\n content: function() {\n return $(this).find('.popover-body').html();\n }\n });\n });\n}\n","(function() {\n $.initVenueListOrder = function() {\n $('#sortable-venues').sortable();\n $('.venue-order-wrapper').on('click', (e) => {\n const target = $(e.target)\n const group = $(e.target).closest('.group')\n group.find('.children-group').slideToggle(500);\n target.find('.fa-angle-down').slideToggle(0);\n target.find('.fa-angle-up').slideToggle(0);\n });\n };\n}).call(this);\n","import React from 'react';\n\nconst ApiContext = React.createContext(null);\nexport default ApiContext;","import axios from \"axios\";\n\nclass Api {\n constructor(path) {\n this.path = path;\n }\n\n getQuestions = () => {\n return axios.get(`${this.path}.json`);\n }\n\n getNewQuestion = () => {\n return axios.get(`${this.path}/new.json`)\n }\n\n createQuestion = (formData) => {\n return axios.post(`${this.path}.json`, formData)\n }\n\n getQuestion = (id) => {\n return axios.get(`${this.path}/${id}.json`)\n }\n\n updateQuestion = (id, formData) => {\n return axios.put(`${this.path}/${id}.json`, formData)\n }\n\n deleteQuestion = (id) => {\n return axios.delete(`${this.path}/${id}.json`)\n }\n\n reorderQuestions = (ids) => {\n return axios.put(`/admin/questions/reorder.json`, { ids: ids })\n }\n}\n\nexport default Api;","import * as React from 'react';\nimport { Options, options, tokenize } from 'linkifyjs';\n\n/**\n * Given a string, converts to an array of valid React components\n * (which may include strings)\n * @param {string} str\n * @param {Options} opts\n * @param {{ [elementId: string]: number }} meta\n * @returns {React.ReactNodeArray}\n */\nfunction stringToElements(str, opts, meta) {\n const tokens = tokenize(str);\n const elements = [];\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.t === 'nl' && opts.get('nl2br')) {\n const key = `__linkify-el-${meta.elementId++}`;\n elements.push(React.createElement('br', {\n key\n }));\n } else if (!token.isLink || !opts.check(token)) {\n // Regular text\n elements.push(token.toString());\n } else {\n let rendered = opts.render(token);\n if (!('key' in rendered.props)) {\n // Ensure generated element has unique key\n const key = `__linkify-el-${meta.elementId++}`;\n const props = options.assign({\n key\n }, rendered.props);\n rendered = React.cloneElement(rendered, props);\n }\n elements.push(rendered);\n }\n }\n return elements;\n}\n\n// Recursively linkify the contents of the given React Element instance\n/**\n * @template P\n * @template {string | React.JSXElementConstructor<P>} T\n * @param {React.ReactElement<P, T>} element\n * @param {Options} opts\n * @param {{ [elementId: string]: number }} meta\n * @returns {React.ReactElement<P, T>}\n */\nfunction linkifyReactElement(element, opts, meta) {\n if (React.Children.count(element.props.children) === 0) {\n // No need to clone if the element had no children\n return element;\n }\n const children = [];\n React.Children.forEach(element.props.children, child => {\n if (typeof child === 'string') {\n // ensure that we always generate unique element IDs for keys\n children.push.apply(children, stringToElements(child, opts, meta));\n } else if (React.isValidElement(child)) {\n if (typeof child.type === 'string' && opts.ignoreTags.indexOf(child.type.toUpperCase()) >= 0) {\n // Don't linkify this element\n children.push(child);\n } else {\n children.push(linkifyReactElement(child, opts, meta));\n }\n } else {\n // Unknown element type, just push\n children.push(child);\n }\n });\n\n // Set a default unique key, copy over remaining props\n const key = `__linkify-el-${meta.elementId++}`;\n const newProps = options.assign({\n key\n }, element.props);\n return React.cloneElement(element, newProps, children);\n}\n\n/**\n * @template P\n * @template {string | React.JSXElementConstructor<P>} T\n * @param {P & { as?: T, tagName?: T, options?: import('linkifyjs').Opts, children?: React.ReactNode}} props\n * @returns {React.ReactElement<P, T>}\n */\nconst Linkify = props => {\n // Copy over all non-linkify-specific props\n let linkId = 0;\n const defaultLinkRender = _ref => {\n let {\n tagName,\n attributes,\n content\n } = _ref;\n attributes.key = `__linkify-lnk-${linkId++}`;\n if (attributes.class) {\n attributes.className = attributes.class;\n delete attributes.class;\n }\n return React.createElement(tagName, attributes, content);\n };\n const newProps = {\n key: '__linkify-wrapper'\n };\n for (const prop in props) {\n if (prop !== 'options' && prop !== 'as' && prop !== 'tagName' && prop !== 'children') {\n newProps[prop] = props[prop];\n }\n }\n const opts = new Options(props.options, defaultLinkRender);\n const as = props.as || props.tagName || React.Fragment || 'span';\n const children = props.children;\n const element = React.createElement(as, newProps, children);\n return linkifyReactElement(element, opts, {\n elementId: 0\n });\n};\n\nexport { Linkify as default };\n","import React from \"react\";\nimport classnames from 'classnames';\nimport Linkify from 'linkify-react';\n\nexport default ({ id, text,\n allowComment,\n allFacilities,\n isVenue,\n isUser,\n multipleVenues,\n canManage,\n venuesCount,\n facilitiesCount,\n allowDocuments,\n mandatoryDocuments,\n allowOptions,\n allowQuestionItems,\n allowYesNoOptions,\n questionItems,\n questionDocument,\n onUp, onDown,\n allowReorder,\n marker,\n onRemove,\n onEdit,\n isChild }) => {\n\n let moveUpBtn = null;\n let moveDownBtn = null;\n\n if (onUp) {\n moveUpBtn = (\n <a className={classnames(['move-up', !onUp && 'disabled'])} onClick={() => onUp && onUp()}>\n <i className=\"fa fa-arrow-up\"/>\n </a>\n )\n }\n\n if (onDown) {\n moveDownBtn = (\n <a className={classnames(['move-down', !onDown && 'disabled'])} onClick={() => onDown && onDown()}>\n <i className=\"fa fa-arrow-down\"/>\n </a>\n )\n }\n\n return (\n <div data-id={id} style={{ paddingBottom: 15 }} className={isChild ? 'sub-question-item' : 'question'}>\n <div className='pull-right' style={{ width: 380 }}>\n {!isChild &&\n <>\n {isVenue && !multipleVenues &&\n <div style={{ whiteSpace: 'nowrap', width: 190, display: 'inline-block' }}>\n {allFacilities ? 'All facilities' : facilitiesCount + (facilitiesCount > 1 ? ' facilities' : ' facility') }\n </div>\n }\n {multipleVenues && isUser &&\n <div style={{ whiteSpace: 'nowrap', width: 190, display: 'inline-block' }}>\n {venuesCount + (venuesCount > 1 ? ' venues' : ' venue') }\n </div>\n }\n </>\n }\n\n {!isChild && marker && <div style={{ whiteSpace: 'nowrap', width: 190, display: 'inline-block' }}>{marker}</div>}\n\n {(allowReorder || canManage) &&\n <div className=\"action_block\">\n {!isChild &&\n <div>\n {allowReorder && moveUpBtn}\n {allowReorder && moveDownBtn}\n\n {canManage && <a onClick={onRemove}>Delete</a>}\n {canManage && <a onClick={onEdit}>Edit</a>}\n </div>\n }\n </div>\n }\n </div>\n\n <div className='question-text'>\n <h4>\n <Linkify options={{ target: '_blank' }}>{text}</Linkify>\n </h4>\n </div>\n <div className='form-group checkbox'>\n <label>\n <input type=\"checkbox\" disabled=\"disabled\" checked={allowOptions}/>\n Allow users to select answer from Yes/No/Not applicable options\n </label>\n </div>\n <div className='form-group checkbox'>\n <label>\n <input type=\"checkbox\" disabled=\"disabled\" checked={allowYesNoOptions}/>\n Allow users to select answer from Yes/No options\n </label>\n </div>\n <div className='form-group checkbox'>\n <label>\n <input type=\"checkbox\" disabled=\"disabled\" checked={allowDocuments}/>\n Allow users to upload documents\n {mandatoryDocuments &&\n <abbr style={{ paddingLeft: 5 }} title=\"required\">*</abbr>\n }\n </label>\n </div>\n <div className='form-group checkbox'>\n <label>\n <input type=\"checkbox\" disabled=\"disabled\" checked={allowComment}/>\n Allow users to leave additional comments\n </label>\n </div>\n <div className='form-group checkbox'>\n <label>\n <input type=\"checkbox\" disabled=\"disabled\" checked={allowQuestionItems}/>\n Allow users to select from dropdown list\n {allowQuestionItems &&\n <ul>{(questionItems || []).map(questionItem => <li key={questionItem.id}>{questionItem.title}</li>)}</ul>\n }\n </label>\n </div>\n\n {questionDocument &&\n <div>\n <a href={questionDocument.downloadFileLink} target='_blank'>{questionDocument.title}</a>\n </div>\n }\n </div>\n )\n}\n","import React, { useState } from \"react\";\n\nexport function useModal(Component, onCompleted) {\n const [show, setShow] = useState(false);\n const [options, setOptions] = useState({});\n\n const modal = <Component id={options.id} show={show} setShow={setShow} onCompleted={onCompleted}/>;\n\n const showModal = (options) => {\n setShow(true)\n setOptions(options)\n }\n\n const hideModal = () => {\n setShow(false)\n setOptions({})\n }\n\n return [modal, showModal, hideModal];\n}","import React from 'react';\nimport classnames from 'classnames';\n\nexport default ({ prefix, errors, className }) => {\n if (!Array.isArray(errors)) return null;\n if (errors.length === 0) return null;\n\n return (\n <div className={classnames([\"error-message text-danger\", className])}>\n {errors.map(error => prefix ? `${prefix} ${error}` : error).join(', ')}\n </div>\n )\n}","import React from 'react';\nimport ErrorMessage from \"./ErrorMessage\";\n\nexport default ({ defaultValue, name, label, errors }) => (\n <div className=\"form-group text required question_text\">\n <label className=\"control-label text required\">\n {label} <abbr title=\"required\">*</abbr>\n </label>\n\n <textarea\n className=\"form-control text required\"\n required=\"required\"\n aria-required=\"true\"\n name={name}\n defaultValue={defaultValue}\n rows=\"8\"\n />\n\n <ErrorMessage errors={errors}/>\n </div>\n)\n","import React from 'react'\n\nexport default ({ label, name, defaultChecked, checked, onChange, isDisabled }) => (\n <div className=\"form-group checkbox\">\n <label>\n <input\n type=\"hidden\"\n defaultValue={0}\n name={name}\n />\n <input\n className=\"boolean optional\"\n type=\"checkbox\"\n defaultValue={1}\n defaultChecked={defaultChecked}\n checked={checked}\n onChange={onChange}\n name={name}\n disabled={isDisabled}\n />\n\n {isDisabled && <input name={name} type=\"hidden\" value={checked}/>}\n {label}\n </label>\n </div>\n);","import React from \"react\";\nimport classnames from \"classnames\";\n\nexport default ({ name, id, isNew, title, deleted, index, onDelete,\n onUp, onDown, onChangeTitle, triggerQuestion }) => {\n const hiddenFields = (\n <>\n <input name={`${name}[id]`} value={isNew ? '' : id } type='hidden'/>\n <input name={`${name}[list_order]`} value={index} type='hidden'/>\n <input name={`${name}[_destroy]`} value={deleted} type='hidden'/>\n <input name={`${name}[trigger_sub_question]`} value={triggerQuestion || ''} type='hidden'/>\n </>\n );\n\n if (deleted) return hiddenFields;\n\n let moveUpBtn = null;\n let moveDownBtn = null;\n\n if (onUp) {\n moveUpBtn = (\n <a className={classnames(['move-up', !onUp && 'disabled'])} onClick={() => onUp && onUp()}>\n <i className=\"fa fa-arrow-up\"/>\n </a>\n )\n }\n\n if (onDown) {\n moveDownBtn = (\n <a className={classnames(['move-down', !onDown && 'disabled'])} onClick={() => onDown && onDown()}>\n <i className=\"fa fa-arrow-down\"/>\n </a>\n )\n }\n\n return (\n <div className='question-item'>\n {hiddenFields}\n\n <div className='row'>\n <div className='col-lg-9 col-md-12'>\n <input\n className='title-input'\n name={`${name}[title]`}\n defaultValue={title}\n onChange={(e) => {onChangeTitle(index, e.target.value)}}\n disabled={deleted}\n />\n </div>\n\n <div className='col-lg-3 col-md-12'>\n <div className='action_block pull-right'>\n {moveUpBtn}\n {moveDownBtn}\n <a onClick={onDelete}>Delete</a>\n </div>\n </div>\n </div>\n </div>\n );\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction stringifiable(obj) {\n // Safely stringify Object.create(null)\n /* istanbul ignore next */\n return typeof obj === 'object' && !('toString' in obj) ?\n Object.prototype.toString.call(obj).slice(8, -1) :\n obj;\n}\nvar isProduction = typeof process === 'object' && process.env.NODE_ENV === 'production';\nfunction invariant(condition, message) {\n if (!condition) {\n /* istanbul ignore next */\n if (isProduction) {\n throw new Error('Invariant failed');\n }\n throw new Error(message());\n }\n}\nexports.invariant = invariant;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar splice = Array.prototype.splice;\nvar toString = Object.prototype.toString;\nfunction type(obj) {\n return toString.call(obj).slice(8, -1);\n}\nvar assign = Object.assign || /* istanbul ignore next */ (function (target, source) {\n getAllKeys(source).forEach(function (key) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n });\n return target;\n});\nvar getAllKeys = typeof Object.getOwnPropertySymbols === 'function'\n ? function (obj) { return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)); }\n /* istanbul ignore next */\n : function (obj) { return Object.keys(obj); };\nfunction copy(object) {\n return Array.isArray(object)\n ? assign(object.constructor(object.length), object)\n : (type(object) === 'Map')\n ? new Map(object)\n : (type(object) === 'Set')\n ? new Set(object)\n : (object && typeof object === 'object')\n ? assign(Object.create(Object.getPrototypeOf(object)), object)\n /* istanbul ignore next */\n : object;\n}\nvar Context = /** @class */ (function () {\n function Context() {\n this.commands = assign({}, defaultCommands);\n this.update = this.update.bind(this);\n // Deprecated: update.extend, update.isEquals and update.newContext\n this.update.extend = this.extend = this.extend.bind(this);\n this.update.isEquals = function (x, y) { return x === y; };\n this.update.newContext = function () { return new Context().update; };\n }\n Object.defineProperty(Context.prototype, \"isEquals\", {\n get: function () {\n return this.update.isEquals;\n },\n set: function (value) {\n this.update.isEquals = value;\n },\n enumerable: true,\n configurable: true\n });\n Context.prototype.extend = function (directive, fn) {\n this.commands[directive] = fn;\n };\n Context.prototype.update = function (object, $spec) {\n var _this = this;\n var spec = (typeof $spec === 'function') ? { $apply: $spec } : $spec;\n if (!(Array.isArray(object) && Array.isArray(spec))) {\n invariant(!Array.isArray(spec), function () { return \"update(): You provided an invalid spec to update(). The spec may \" +\n \"not contain an array except as the value of $set, $push, $unshift, \" +\n \"$splice or any custom command allowing an array value.\"; });\n }\n invariant(typeof spec === 'object' && spec !== null, function () { return \"update(): You provided an invalid spec to update(). The spec and \" +\n \"every included key path must be plain objects containing one of the \" +\n (\"following commands: \" + Object.keys(_this.commands).join(', ') + \".\"); });\n var nextObject = object;\n getAllKeys(spec).forEach(function (key) {\n if (hasOwnProperty.call(_this.commands, key)) {\n var objectWasNextObject = object === nextObject;\n nextObject = _this.commands[key](spec[key], nextObject, spec, object);\n if (objectWasNextObject && _this.isEquals(nextObject, object)) {\n nextObject = object;\n }\n }\n else {\n var nextValueForKey = type(object) === 'Map'\n ? _this.update(object.get(key), spec[key])\n : _this.update(object[key], spec[key]);\n var nextObjectValue = type(nextObject) === 'Map'\n ? nextObject.get(key)\n : nextObject[key];\n if (!_this.isEquals(nextValueForKey, nextObjectValue)\n || typeof nextValueForKey === 'undefined'\n && !hasOwnProperty.call(object, key)) {\n if (nextObject === object) {\n nextObject = copy(object);\n }\n if (type(nextObject) === 'Map') {\n nextObject.set(key, nextValueForKey);\n }\n else {\n nextObject[key] = nextValueForKey;\n }\n }\n }\n });\n return nextObject;\n };\n return Context;\n}());\nexports.Context = Context;\nvar defaultCommands = {\n $push: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$push');\n return value.length ? nextObject.concat(value) : nextObject;\n },\n $unshift: function (value, nextObject, spec) {\n invariantPushAndUnshift(nextObject, spec, '$unshift');\n return value.length ? value.concat(nextObject) : nextObject;\n },\n $splice: function (value, nextObject, spec, originalObject) {\n invariantSplices(nextObject, spec);\n value.forEach(function (args) {\n invariantSplice(args);\n if (nextObject === originalObject && args.length) {\n nextObject = copy(originalObject);\n }\n splice.apply(nextObject, args);\n });\n return nextObject;\n },\n $set: function (value, _nextObject, spec) {\n invariantSet(spec);\n return value;\n },\n $toggle: function (targets, nextObject) {\n invariantSpecArray(targets, '$toggle');\n var nextObjectCopy = targets.length ? copy(nextObject) : nextObject;\n targets.forEach(function (target) {\n nextObjectCopy[target] = !nextObject[target];\n });\n return nextObjectCopy;\n },\n $unset: function (value, nextObject, _spec, originalObject) {\n invariantSpecArray(value, '$unset');\n value.forEach(function (key) {\n if (Object.hasOwnProperty.call(nextObject, key)) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n delete nextObject[key];\n }\n });\n return nextObject;\n },\n $add: function (values, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$add');\n invariantSpecArray(values, '$add');\n if (type(nextObject) === 'Map') {\n values.forEach(function (_a) {\n var key = _a[0], value = _a[1];\n if (nextObject === originalObject && nextObject.get(key) !== value) {\n nextObject = copy(originalObject);\n }\n nextObject.set(key, value);\n });\n }\n else {\n values.forEach(function (value) {\n if (nextObject === originalObject && !nextObject.has(value)) {\n nextObject = copy(originalObject);\n }\n nextObject.add(value);\n });\n }\n return nextObject;\n },\n $remove: function (value, nextObject, _spec, originalObject) {\n invariantMapOrSet(nextObject, '$remove');\n invariantSpecArray(value, '$remove');\n value.forEach(function (key) {\n if (nextObject === originalObject && nextObject.has(key)) {\n nextObject = copy(originalObject);\n }\n nextObject.delete(key);\n });\n return nextObject;\n },\n $merge: function (value, nextObject, _spec, originalObject) {\n invariantMerge(nextObject, value);\n getAllKeys(value).forEach(function (key) {\n if (value[key] !== nextObject[key]) {\n if (nextObject === originalObject) {\n nextObject = copy(originalObject);\n }\n nextObject[key] = value[key];\n }\n });\n return nextObject;\n },\n $apply: function (value, original) {\n invariantApply(value);\n return value(original);\n },\n};\nvar defaultContext = new Context();\nexports.isEquals = defaultContext.update.isEquals;\nexports.extend = defaultContext.extend;\nexports.default = defaultContext.update;\n// @ts-ignore\nexports.default.default = module.exports = assign(exports.default, exports);\n// invariants\nfunction invariantPushAndUnshift(value, spec, command) {\n invariant(Array.isArray(value), function () { return \"update(): expected target of \" + stringifiable(command) + \" to be an array; got \" + stringifiable(value) + \".\"; });\n invariantSpecArray(spec[command], command);\n}\nfunction invariantSpecArray(spec, command) {\n invariant(Array.isArray(spec), function () { return \"update(): expected spec of \" + stringifiable(command) + \" to be an array; got \" + stringifiable(spec) + \". \" +\n \"Did you forget to wrap your parameter in an array?\"; });\n}\nfunction invariantSplices(value, spec) {\n invariant(Array.isArray(value), function () { return \"Expected $splice target to be an array; got \" + stringifiable(value); });\n invariantSplice(spec.$splice);\n}\nfunction invariantSplice(value) {\n invariant(Array.isArray(value), function () { return \"update(): expected spec of $splice to be an array of arrays; got \" + stringifiable(value) + \". \" +\n \"Did you forget to wrap your parameters in an array?\"; });\n}\nfunction invariantApply(fn) {\n invariant(typeof fn === 'function', function () { return \"update(): expected spec of $apply to be a function; got \" + stringifiable(fn) + \".\"; });\n}\nfunction invariantSet(spec) {\n invariant(Object.keys(spec).length === 1, function () { return \"Cannot have more than one key in an object with $set\"; });\n}\nfunction invariantMerge(target, specValue) {\n invariant(specValue && typeof specValue === 'object', function () { return \"update(): $merge expects a spec of type 'object'; got \" + stringifiable(specValue); });\n invariant(target && typeof target === 'object', function () { return \"update(): $merge expects a target of type 'object'; got \" + stringifiable(target); });\n}\nfunction invariantMapOrSet(target, command) {\n var typeOfTarget = type(target);\n invariant(typeOfTarget === 'Map' || typeOfTarget === 'Set', function () { return \"update(): \" + stringifiable(command) + \" expects a target of type Set or Map; got \" + stringifiable(typeOfTarget); });\n}\n","export const uuid = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n let r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}","import React, { useRef } from 'react';\nimport Select, { components } from \"react-select\";\n\nconst Option = (props) => {\n return (\n <components.Option {...props}>\n <input\n type='checkbox'\n checked={props.isSelected}\n onChange={() => null}\n />{\" \"}\n {props.label}\n </components.Option>\n );\n};\n\nexport default (props) => (\n <Select\n {...props}\n closeMenuOnSelect={false}\n isMulti\n components={{ Option }}\n required\n />\n);\n","import React, { useState } from 'react'\nimport CheckboxOption from \"./CheckboxOption\";\nimport QuestionItem from \"./QuestionItem\";\nimport update from 'immutability-helper';\nimport { uuid } from '../uuid';\nimport ErrorMessage from \"./ErrorMessage\";\nimport MultiSelect from \"./MultiSelectOptions\";\n\nexport default ({ label,\n data,\n name,\n enabled,\n setEnabled,\n hasChild,\n isDisabled,\n onChange,\n errors }) => {\n const [questionItems, setQuestionItems] = useState(data);\n\n const handleNewQuestionItems = (items) => {\n setQuestionItems(items);\n onChange(items);\n }\n\n const addItem = () => {\n let newQuestionItems = questionItems.slice();\n\n newQuestionItems.push({ id: uuid(), title: '', type: 'card', isNew: true });\n\n handleNewQuestionItems(newQuestionItems);\n }\n\n const deleteItem = (index) => {\n let newQuestionItems = questionItems.slice();\n const questionItem = questionItems[index];\n\n if (questionItem.new) {\n newQuestionItems.splice(index, 1);\n } else {\n questionItem.deleted = '1';\n newQuestionItems[index] = questionItem;\n }\n\n handleNewQuestionItems(newQuestionItems);\n }\n\n const moveQuestionItem = (dragIndex, hoverIndex) => {\n const newQuestions = update(questionItems, { $splice: [[dragIndex, 1], [hoverIndex, 0, questionItems[dragIndex]]] })\n\n handleNewQuestionItems(newQuestions);\n };\n\n const moveUp = (index) => moveQuestionItem(index, index - 1);\n const moveDown = (index) => moveQuestionItem(index, index + 1);\n\n const updateTitle = (index, title) => {\n let newQuestionItems = questionItems.slice();\n\n newQuestionItems[index].title = title;\n\n if (title.replaceAll(/\\s/g,'') === '') newQuestionItems[index].triggerSubQuestion = false;\n\n handleNewQuestionItems(newQuestionItems);\n }\n\n return (\n <>\n <div className='form-group checkbox'>\n <CheckboxOption\n label={label}\n name={`${name}[allow_question_items]`}\n onChange={(e) => setEnabled(e.target.checked)}\n checked={enabled}\n isDisabled={isDisabled || hasChild}\n />\n\n <ErrorMessage errors={((errors || {})['allow_question_items'] || [])}/>\n\n {enabled &&\n <div className='question-items'>\n {questionItems.map((questionItem, index) =>\n <QuestionItem\n name={`${name}[question_items_attributes][]`}\n key={questionItem.id}\n index={index}\n id={questionItem.id}\n title={questionItem.title}\n deleted={questionItem.deleted}\n isNew={questionItem.isNew}\n onDelete={() => deleteItem(index)}\n onUp={questionItems[index-1] ? () => moveUp(index) : null }\n onDown={questionItems[index+1] ? () => moveDown(index) : null }\n onChangeTitle={updateTitle}\n triggerQuestion={questionItem.triggerSubQuestion}\n />\n )}\n <div>\n <ErrorMessage className='question-items-error' errors={((errors || {})['question_items'] || [])}/>\n <ErrorMessage className='question-items-error' prefix=\"Item title\" errors={((errors || {})['question_items.title'] || [])}/>\n <a className=\"btn btn-primary btn-xs\" onClick={addItem}>Add option</a>\n </div>\n </div>\n }\n </div>\n </>\n )\n}\n","import React, { useState } from 'react';\nimport CheckboxOption from \"./CheckboxOption\";\nimport ErrorMessage from \"./ErrorMessage\";\n\nexport default ({ defaultChecked, label, questionDocument, errors, name }) => {\n const [enabled, setEnabled] = useState(!!defaultChecked);\n\n return (\n <>\n <div className='form-group checkbox'>\n <CheckboxOption\n label={label}\n defaultChecked={defaultChecked}\n onChange={(e) => setEnabled(e.target.checked)}\n />\n </div>\n {enabled &&\n <>\n <div style={{ marginLeft: 20 }}>\n <>\n {questionDocument &&\n <p>\n {questionDocument.title}\n <br/>\n <a href={questionDocument.downloadFileLink}>Download File</a>\n </p>\n }\n <div className=\"form-group text\">\n <label className=\"control-label text required\">Title</label>\n\n <input\n className=\"form-control text required\"\n name={`${name}[question_document_attributes][title]`}\n defaultValue={(questionDocument || {}).title}\n />\n <ErrorMessage errors={(errors || {})['question_document.title']}/>\n </div>\n\n <div className=\"form-group file optional\">\n <label className=\"control-label file optional\">File</label>\n <input className=\"file optional\" type=\"file\" name={`${name}[question_document_attributes][file]`}/>\n <ErrorMessage errors={(errors || {})['question_document.file']}/>\n </div>\n </>\n </div>\n </>\n }\n\n <input type=\"hidden\" name={`${name}[question_document_attributes][id]`} defaultValue={(questionDocument || {}).id}/>\n <input type=\"hidden\" value={!enabled ? '1' : '0'} name={`${name}[question_document_attributes][_destroy]`}/>\n </>\n )\n};","import React, {useState} from 'react'\n\nexport default ({question, suffix}) => {\n const [enabled, setEnabled] = useState(question.allFacilities);\n\n const toggleFacilities = (e, type) => {\n e.preventDefault();\n\n const checked = type === 'all';\n const checkboxes = $('.modal-body').find(`.type-facility`);\n\n $.each(checkboxes, (index, el) => $(el).prop('checked', checked).trigger('change'));\n }\n\n return (\n <div className=\"form-group\">\n <label className=\"m-t\">Applicable Facilities</label>\n <div className=\"row\">\n <div className=\"col-md-12 no-space-form-group space-radio-buttons\">\n <div className=\"form-group radio_buttons optional question_all_facilities\">\n <input type=\"hidden\" name={`${suffix}[all_facilities]`} value={question.allFacilities}/>\n <span className=\"radio inline\">\n <label htmlFor={`${suffix}_all_facilities_1`}>\n <input className=\"radio_buttons optional\" type=\"radio\" value=\"1\"\n defaultChecked={question.allFacilities}\n onChange={(e) => setEnabled(e.target.checked)}\n name={`${suffix}[all_facilities]`} id={`${suffix}_all_facilities_1`}/>\n All facilities\n </label>\n </span>\n <span className=\"radio inline\">\n <label htmlFor={`${suffix}_all_facilities_0`}>\n <input className=\"radio_buttons optional\" type=\"radio\" value=\"0\"\n defaultChecked={!question.allFacilities}\n onChange={(e) => setEnabled(!e.target.checked)}\n name={`${suffix}[all_facilities]`} id={`${suffix}_all_facilities_0`}/>\n Select facilities\n </label>\n </span>\n </div>\n </div>\n\n {!enabled &&\n <div>\n <div className=\"col-md-12\" style={{paddingTop: \"10px\"}}>\n <a className=\"multiselect facility-btn\" href=\"#\" onClick={(e) => toggleFacilities(e, 'all')}>All</a>\n \n <a className=\"multiselect facility-btn\" href=\"#\" onClick={(e) => toggleFacilities(e, 'none')}>None</a>\n </div>\n <div id=\"question_facilities\" className=\"col-md-12 \" style={{columns: \"2\"}}>\n <input name={`${suffix}[facility_ids][]`} type=\"hidden\"/>\n\n {question.questionFacilities.map(facility =>\n <div className=\"form-group checkbox\" key={`${suffix}_facility_ids_`+facility.id}>\n <label htmlFor={`${suffix}_facility_ids_`+facility.id}>\n <input\n className=\"boolean optional type-facility\"\n type=\"checkbox\"\n value={facility.id}\n defaultChecked={question.questionFacilityIds.includes(facility.id)}\n name={`${suffix}[facility_ids][]`}\n id={`${suffix}_facility_ids_`+facility.id}\n />\n {facility.internalReference}\n </label>\n </div>\n )\n }\n </div>\n </div>\n }\n\n </div>\n </div>\n )\n};\n","import React, {useState} from 'react'\n\nexport default ({question, suffix}) => {\n const [enabled, setEnabled] = useState(question.allFacilities);\n\n const toggleVenues = (e, type) => {\n e.preventDefault();\n\n const checked = type === 'all';\n const checkboxes = $('.modal-body').find(`.type-venue`);\n\n $.each(checkboxes, (index, el) => $(el).prop('checked', checked).trigger('change'));\n }\n\n return (\n <div className=\"form-group\">\n <label className=\"m-t\">Applicable Venues</label>\n <div className=\"row\" style={{paddingBottom: \"10px\"}}>\n <div className=\"col-md-12 \">\n <a className=\"multiselect venue-btn\" href=\"#\" onClick={(e) => toggleVenues(e, 'all')}>All</a>\n \n <a className=\"multiselect venue-btn\" href=\"#\" onClick={(e) => toggleVenues(e, 'none')}>None</a>\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-md-12 \" style={{columns: 2}}>\n <input name={`${suffix}[venue_ids][]`} type=\"hidden\"/>\n\n {question.userVenues.map(venue =>\n <div className=\"form-group checkbox\" style={{marginTop: 0}} key={`${suffix}_venue_ids_`+venue.id}>\n <label htmlFor={`${suffix}_venue_ids_`+venue.id}>\n <input\n className=\"boolean optional type-venue\"\n type=\"checkbox\"\n value={venue.id}\n defaultChecked={question.questionVenueIds.includes(venue.id)}\n name={`${suffix}[venue_ids][]`}\n id={`${suffix}_venue_ids_`+venue.id}\n />\n {venue.title}\n </label>\n </div>\n )\n }\n </div>\n </div>\n </div>\n )\n};\n","import React, {useState} from 'react'\nimport ErrorMessage from \"./ErrorMessage\";\nimport MultiSelect from \"./MultiSelectOptions\";\n\nexport default ({ options, selectedOptions, onChange }) => {\n return (\n <>\n <MultiSelect\n value={selectedOptions}\n options={options}\n onChange={onChange}\n getOptionLabel={opt => opt.label}\n getOptionValue={opt => opt.value}\n isOptionDisabled={() => selectedOptions.length >= (options.length - 1)}\n />\n\n {selectedOptions.map((option, index) => {\n return (\n <input\n key={index}\n name=\"question[option_trigger_sub_questions][]\"\n value={option.value}\n type=\"hidden\"\n />\n )\n })}\n\n {selectedOptions.length === 0 &&\n <input name=\"question[option_trigger_sub_questions]\" type=\"hidden\"/>\n }\n </>\n )\n};\n","import React, {useState} from 'react'\nimport ErrorMessage from \"./ErrorMessage\";\nimport MultiSelect from \"./MultiSelectOptions\";\n\nexport default ({ questionItems, onChange }) => {\n const isEmptyTitle = (title) => (title.replaceAll(/\\s/g,'') === '');\n\n let options = questionItems.filter((q) => !isEmptyTitle(q.title) && !q.deleted);\n let selectedOptions = options.filter((option) => option.triggerSubQuestion);\n\n const handleSelectOptions = (items) => {\n let newQuestionItems = questionItems.slice();\n\n newQuestionItems.map((item) => item.triggerSubQuestion = items.indexOf(item) !== -1);\n\n onChange(newQuestionItems);\n };\n\n return (\n <MultiSelect\n value={selectedOptions}\n options={options}\n onChange={handleSelectOptions}\n getOptionLabel={opt => opt.title}\n getOptionValue={opt => opt.id}\n isOptionDisabled={() => selectedOptions.length >= (options.length - 1)}\n />\n )\n};\n","import React from 'react'\nimport ErrorMessage from \"./fields/ErrorMessage\";\nimport AllowOptionsTrigger from \"./fields/AllowOptionsTrigger\";\nimport QuestionItemTrigger from \"./fields/QuestionItemTrigger\";\n\nexport default ({ question,\n questionItems,\n onChangeQuestionItemTrigger,\n allowOptionTriggerList,\n onChangeAllowOptionTrigger,\n enabledAllowOptions,\n enabledAllowQuestionItems,\n errors }) => (\n <div className='mb-4'>\n <label>Please select the answer(s) that will trigger the sub-question:</label>\n\n {enabledAllowQuestionItems &&\n <QuestionItemTrigger questionItems={questionItems} onChange={onChangeQuestionItemTrigger}/>\n }\n\n {!enabledAllowQuestionItems &&\n <AllowOptionsTrigger\n onChange={onChangeAllowOptionTrigger}\n selectedOptions={allowOptionTriggerList}\n options={question[enabledAllowOptions ? 'allowOptionsTriggerQuestions' : 'allowYesNoOptionsTriggerQuestions']}\n />\n }\n\n <ErrorMessage errors={((errors || {})['option_trigger_sub_questions'] || [])}/>\n </div>\n)\n","import React, {useState} from 'react'\nimport QuestionTitle from \"./fields/QuestionTitle\";\nimport CheckboxOption from \"./fields/CheckboxOption\";\nimport QuestionItems from \"./fields/QuestionItems\";\nimport QuestionDocument from \"./fields/QuestionDocument\";\nimport ErrorMessage from \"./fields/ErrorMessage\";\nimport Facilities from \"./Facilities\";\nimport Venues from \"./Venues\";\nimport OptionsTriggerQuestion from \"./OptionsTriggerQuestion\";\nimport { OverlayTrigger, Popover, Button } from 'react-bootstrap';\n\nexport default (({ question,\n errors,\n hasChild,\n suffix,\n deleted,\n enabledRemoveChildButton,\n onEnableCreateChildButton,\n onDeleteSubQuestion }) => {\n const [displayMandatoryDocumentCheckbox, setEnabled] = useState(question.allowDocuments);\n const [enabledAllowOptions, setEnabledAllowOptions] = useState(question.allowOptions);\n const [enabledAllowYesNoOptions, setEnabledAllowYesNoOptions] = useState(question.allowYesNoOptions);\n const [enabledAllowQuestionItems, setEnabledAllowQuestionItems] = useState(question.allowQuestionItems);\n const [questionItems, setQuestionItems] = useState(question.questionItems);\n const [allowOptionTriggerList, setAllowOptionTriggerList] = useState(question.selectedOptionsTriggerQuestions);\n\n const enabledAllowCheckboxes = (enabledAllowOptions || enabledAllowYesNoOptions) && enabledAllowQuestionItems;\n const disabledAllowYesNoNAOptions = enabledAllowQuestionItems && !enabledAllowCheckboxes\n const enabledAllowYesNoNaOptions = enabledAllowOptions || enabledAllowYesNoOptions\n\n const popoverLeft = (\n <Popover id=\"popover-positioned-scrolling-left\" title=\"\">\n <p>\n When selected, a document will need to be provided in\n response to this question to allow checkout to be completed.\n </p>\n </Popover>\n );\n\n const hiddenFields = (\n <>\n <input name={`${suffix}[id]`} value={(question.id || '')} type='hidden'/>\n <input name={`${suffix}[venue_id]`} value={(question.venueId || '')} type='hidden'/>\n <input name={`${suffix}[node_id]`} value={(question.nodeId || '')} type='hidden'/>\n <input name={`${suffix}[new_sub_question_has_parent]`} value={question.isChild} type='hidden'/>\n <input type='hidden' name={`${suffix}[facility_id]`} value={(question.facilityId || '')}/>\n\n {deleted && <input name={`${suffix}[_destroy]`} value={deleted} type='hidden'/>}\n\n {!question.isChild && !hasChild &&\n <input name='question[option_trigger_sub_questions]' type='hidden'\n />\n }\n </>\n );\n\n if (deleted) return hiddenFields;\n\n const handleEnableAllowOptions = (enabled) => {\n setEnabledAllowOptions(enabled);\n setAllowOptionTriggerList([]);\n onEnableCreateChildButton(enabled || enabledAllowYesNoOptions || enabledAllowQuestionItems);\n };\n\n const handleEnableAllowYesNoOptions = (enabled) => {\n setEnabledAllowYesNoOptions(enabled);\n setAllowOptionTriggerList([]);\n onEnableCreateChildButton(enabled || enabledAllowOptions || enabledAllowQuestionItems);\n };\n\n const handleEnableAllowQuestionItems = (enabled) => {\n setEnabledAllowQuestionItems(enabled);\n onEnableCreateChildButton(enabled);\n };\n\n return (\n <>\n {enabledRemoveChildButton &&\n <div className='question-delete-child-button pull-right'>\n <Button className='btn-primary' onClick={() => onDeleteSubQuestion()}>\n Remove sub-question\n </Button>\n </div>\n }\n\n <QuestionTitle\n label=\"Text\"\n defaultValue={question.text}\n name={`${suffix}[text]`}\n errors={((errors || {})['text'] || [])}\n />\n\n {!question.isChild && question.multipleVenues &&\n <Venues question={question} suffix={suffix} />\n }\n\n {!question.isChild && question.isVenue && !question.multipleVenues &&\n <Facilities question={question} suffix={suffix} />\n }\n\n <CheckboxOption\n label=\"Allow users to select answer from Yes/No/Not applicable options\"\n name={`${suffix}[allow_options]`}\n checked={enabledAllowOptions}\n isDisabled={disabledAllowYesNoNAOptions || (hasChild && enabledAllowOptions && !enabledAllowYesNoOptions)}\n onChange={(e) => handleEnableAllowOptions(e.target.checked)}\n />\n\n <ErrorMessage className='items-errors' errors={((errors || {})['allow_options'] || [])}/>\n\n <CheckboxOption\n label=\"Allow users to select answer from Yes/No options\"\n name={`${suffix}[allow_yes_no_options]`}\n checked={enabledAllowYesNoOptions}\n isDisabled={disabledAllowYesNoNAOptions || (hasChild && enabledAllowYesNoOptions && !enabledAllowOptions)}\n onChange={(e) => handleEnableAllowYesNoOptions(e.target.checked)}\n />\n\n <ErrorMessage className='items-errors' errors={((errors || {})['allow_yes_no_options'] || [])}/>\n\n <CheckboxOption\n label=\"Allow users to upload documents\"\n defaultChecked={question.allowDocuments}\n name={`${suffix}[allow_documents]`}\n onChange={(e) => setEnabled(e.target.checked)}\n />\n\n {displayMandatoryDocumentCheckbox &&\n <div>\n <div style={{ paddingLeft: 15, display: 'inline-block', paddingRight: 5 }}>\n <CheckboxOption\n label=\"Mandatory\"\n defaultChecked={question.mandatoryDocuments}\n name={`${suffix}[mandatory_documents]`}\n />\n </div>\n <OverlayTrigger\n container={this}\n placement=\"right\"\n overlay={popoverLeft}\n >\n <div className='info-icon' data-original-title='' title=''/>\n </OverlayTrigger>\n </div>\n }\n\n <CheckboxOption\n label=\"Allow users to leave additional comments\"\n defaultChecked={question.allowComment}\n name={`${suffix}[allow_comment]`}\n />\n\n <QuestionItems\n label={\"Allow users to select from dropdown list\"}\n data={questionItems}\n name={suffix}\n errors={errors}\n setEnabled={handleEnableAllowQuestionItems}\n enabled={enabledAllowQuestionItems}\n hasChild={hasChild}\n isDisabled={!enabledAllowCheckboxes && enabledAllowYesNoNaOptions}\n onChange={setQuestionItems}\n />\n\n <ErrorMessage className='items-errors' errors={((errors || {})['items'] || [])}/>\n\n <QuestionDocument\n label=\"Attach document to the question\"\n id={question.questionDocumentId}\n defaultChecked={question.questionDocument}\n questionDocument={question.questionDocument}\n errors={errors}\n name={suffix}\n />\n\n {hasChild &&\n <OptionsTriggerQuestion\n question={question}\n allowOptionTriggerList={allowOptionTriggerList}\n onChangeAllowOptionTrigger={setAllowOptionTriggerList}\n questionItems={questionItems}\n onChangeQuestionItemTrigger={setQuestionItems}\n enabledAllowOptions={enabledAllowOptions}\n enabledAllowQuestionItems={enabledAllowQuestionItems}\n errors={errors}\n />\n }\n\n {hiddenFields}\n </>\n )\n});\n\n\n","import React, {useState} from 'react'\nimport MultipleFields from \"./MultipleFields\";\nimport { Button } from 'react-bootstrap';\n\nexport default React.forwardRef(({ question, errors }, ref ) => {\n const [subQuestions, setSubQuestions] = useState(question.subQuestions);\n const [subQuestionsCount, setSubQuestionsCount] = useState(question.subQuestions.length);\n const [enabledCreateChildButton, setEnabledCreateChildButton] = useState(question.enabledChildCreateButton);\n const childErrors = ((errors || {})['sub_questions'] || {});\n\n let subQuestionErrorIndex = 0;\n\n const addSubQuestion = () => {\n let newSubQuestions = [...subQuestions];\n let newSubQuestion = Object.assign({}, question.newSubQuestion);\n\n newSubQuestions = newSubQuestions.concat(newSubQuestion);\n\n setSubQuestions(newSubQuestions);\n setSubQuestionsCount(subQuestionsCount + 1);\n }\n\n const handleRemoveSubQuestion = (index) => {\n let newSubQuestions = subQuestions.slice();\n\n newSubQuestions[index].deleted = 'true';\n\n if (!newSubQuestions[index]['id']) {\n newSubQuestions[index].hidden = 'true';\n }\n\n setSubQuestions(newSubQuestions);\n setSubQuestionsCount(subQuestionsCount - 1);\n }\n\n return (\n <form ref={ref}>\n <MultipleFields\n question={question}\n suffix={'question'}\n errors={errors}\n key={question.id}\n hasChild={subQuestionsCount > 0}\n deleted={false}\n enabledRemoveChildButton={false}\n onEnableCreateChildButton={setEnabledCreateChildButton}\n onDeleteSubQuestion={() => {}}\n />\n\n {subQuestions.map((item, index) => {\n return (\n <MultipleFields\n question={item}\n suffix={`question[sub_questions_attributes][${index}]`}\n errors={childErrors[item.hidden ? subQuestionErrorIndex : subQuestionErrorIndex++]}\n key={index}\n deleted={item.deleted}\n enabledRemoveChildButton={subQuestionsCount > 0}\n onEnableCreateChildButton={() => {}}\n onDeleteSubQuestion={() => handleRemoveSubQuestion(index)}\n />\n )\n })}\n\n {!question.isChild && enabledCreateChildButton &&\n <Button className='btn-primary' onClick={(e) => addSubQuestion()}>\n {subQuestionsCount > 0 ? 'Create another sub-question' : 'Create sub-question'}\n </Button>\n }\n </form>\n )\n});\n","import React from 'react';\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n // You can also log the error to an error reporting service\n console.log(error, errorInfo);\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <div className=\"alert alert-danger fade in alert-dismissible text-center\">\n Something went wrong.\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n","import React, { useEffect, useState, useRef, useContext } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport Form from \"./Form\";\nimport ApiContext from './ApiContext';\nimport ErrorBoundary from \"../../../components/Reports/ErrorBoundary\";\n\nexport default ({ show, setShow, onCompleted }) => {\n const api = useContext(ApiContext);\n const formRef = useRef();\n const [question, setQuestion] = useState(null);\n const [disabledConfirm, setDisabledConfirm] = useState(false);\n const [errors, setErrors] = useState(null);\n\n useEffect(() => {\n if (show === true) {\n api.getNewQuestion().then(response => { setQuestion(response.data); setErrors({}) })\n } else {\n setQuestion(null)\n }\n }, [show])\n\n const handleCreate = () => {\n let formData = new FormData(formRef.current);\n\n if (question.multipleVenues) {\n if ($('.modal-body .type-venue:checked').length === 0) {\n alert(\"At least 1 venue must be selected.\");\n return false;\n }\n } else {\n if ($('.modal-body #question_all_facilities_0:checked').length > 0) {\n if ($('.modal-body .type-facility:checked').length === 0) {\n alert(\"At least 1 facility must be selected.\");\n return false;\n }\n }\n }\n\n if (disabledConfirm) return true;\n setDisabledConfirm(true)\n\n api\n .createQuestion(formData)\n .then(response => {\n setShow(false)\n onCompleted()\n setDisabledConfirm(false)\n })\n .catch((error)=> {\n setDisabledConfirm(false)\n setErrors(error.response.data.errors)\n })\n }\n\n\n return (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>New Question</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <ErrorBoundary>\n {question && <Form ref={formRef} question={question} errors={errors}/>}\n </ErrorBoundary>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Cancel</Button>\n <Button className='btn-primary' disabled={disabledConfirm} onClick={handleCreate}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n )\n};","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport Form from \"./Form\";\nimport ErrorBoundary from \"../../../components/Reports/ErrorBoundary\";\nimport ApiContext from './ApiContext';\n\nexport default ({ show, setShow, id, onCompleted }) => {\n const api = useContext(ApiContext);\n const formRef = useRef();\n const [question, setQuestion] = useState(null);\n const [disabledConfirm, setDisabledConfirm] = useState(false);\n const [errors, setErrors] = useState(null);\n\n useEffect(() => {\n if (show === true) {\n api.getQuestion(id).then(response => { setQuestion(response.data); setErrors({}) })\n } else {\n setQuestion(null)\n }\n }, [show])\n\n const handleUpdate = () => {\n let formData = new FormData(formRef.current);\n\n if (!question.isChild && question.multipleVenues) {\n if ($('.modal-body .type-venue:checked').length === 0) {\n alert(\"At least 1 venue must be selected.\");\n return false;\n }\n } else {\n if ($('.modal-body #question_all_facilities_0:checked').length > 0) {\n if ($('.modal-body .type-facility:checked').length === 0) {\n alert(\"At least 1 facility must be selected.\");\n return false;\n }\n }\n }\n\n if (disabledConfirm) return true;\n setDisabledConfirm(true)\n\n api\n .updateQuestion(id, formData)\n .then(response => {\n setShow(false)\n onCompleted()\n setDisabledConfirm(false)\n })\n .catch((error) => {\n setDisabledConfirm(false)\n setErrors(error.response.data.errors)\n })\n }\n\n return (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>Edit Question</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <ErrorBoundary>\n {question && <Form ref={formRef} question={question} errors={errors}/>}\n </ErrorBoundary>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Cancel</Button>\n <Button className='btn-primary' disabled={disabledConfirm} onClick={handleUpdate}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n )\n};","import React, { useContext, useState } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport ApiContext from \"./ApiContext\";\n\nexport default ({ show, setShow, id, onCompleted }) => {\n const api = useContext(ApiContext);\n\n const [disabledConfirm, setDisabledConfirm] = useState(false);\n\n const handleRemove = () => {\n if (disabledConfirm) return true;\n setDisabledConfirm(true);\n\n api.deleteQuestion(id)\n .then(response => {\n setShow(false);\n onCompleted();\n setDisabledConfirm(false);\n })\n .catch(() => {\n setDisabledConfirm(false);\n })\n }\n\n return (\n <Modal show={show} onHide={() => setShow(false)}>\n <Modal.Header closeButton>\n <Modal.Title>Remove question</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n Are you sure?\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Cancel</Button>\n <Button className='btn-primary' disabled={disabledConfirm} onClick={handleRemove}>Confirm</Button>\n </Modal.Footer>\n </Modal>\n )\n}\n","import React, { useState, useEffect, useCallback, Fragment } from 'react';\nimport ApiContext from './ApiContext';\nimport Api from './api';\nimport Item from \"./Item\";\nimport { useModal } from './useModal';\nimport ModalCreate from \"./ModalCreate\";\nimport ModalEdit from \"./ModalEdit\";\nimport ModalRemove from \"./ModalRemove\";\nimport update from \"immutability-helper\";\nimport classNames from 'classnames';\n\nexport default ({ url }) => {\n const api = new Api(url);\n const [questions, setQuestions] = useState(null);\n const [isVenue, setIsVenue] = useState(null);\n const [isUser, setIsUser] = useState(null);\n\n const fetchData = useCallback(()=> {\n api.getQuestions().then(response => {\n setQuestions(response.data.questions);\n setIsVenue(response.data.isVenue);\n setIsUser(response.data.isUser);\n\n $(\"a[href='#tab-questions']\").toggleClass('exclamation-warn-icon', parseInt(response.data.questionsCount) === 0);\n });\n }, []);\n\n const [modalCreate, showModalCreate] = useModal(ModalCreate, fetchData);\n const [modalEdit, showModalEdit] = useModal(ModalEdit, fetchData);\n const [modalRemove, showModalRemove] = useModal(ModalRemove, fetchData);\n\n useEffect(() => {\n fetchData()\n }, []);\n\n if (!questions) return null\n\n const moveQuestion = (dragIndex, hoverIndex) => {\n const tmpQuestions = questions.slice();\n const newQuestions = update(questions, { $splice: [[dragIndex, 1], [hoverIndex, 0, questions[dragIndex]]] })\n setQuestions(newQuestions);\n\n const ids = newQuestions.filter(x => x.allowReorder).map(x => x.id)\n\n api.reorderQuestions(ids).then((response) => {\n if (response.status !== 200) setQuestions(tmpQuestions);\n }).catch(() => setQuestions(tmpQuestions));\n };\n\n const moveUp = (index) => moveQuestion(index, index - 1);\n const moveDown = (index) => moveQuestion(index, index + 1);\n\n const renderQuestionRow = (item, index) => (\n <Item\n key={item.id}\n index={index}\n text={item.text}\n allFacilities={item.allFacilities}\n isVenue={isVenue}\n isUser={isUser}\n multipleVenues={item.multipleVenues}\n canManage={item.canManage}\n venuesCount={item.venuesCount}\n facilitiesCount={item.facilitiesCount}\n onUp={((questions[index-1] || {}).allowReorder) ? () => moveUp(index) : null }\n onDown={((questions[index+1] || {}).allowReorder) ? () => moveDown(index) : null }\n allowComment={item.allowComment}\n allowDocuments={item.allowDocuments}\n mandatoryDocuments={item.mandatoryDocuments}\n allowOptions={item.allowOptions}\n allowQuestionItems={item.allowQuestionItems}\n allowYesNoOptions={item.allowYesNoOptions}\n questionItems={item.questionItems}\n questionDocument={item.questionDocument}\n onRemove={() => showModalRemove({ id: item.id })}\n onEdit={() => showModalEdit({ id: item.id })}\n allowReorder={item.allowReorder}\n marker={item.marker}\n isChild={item.parentQuestionId}\n />\n );\n\n const renderAddQuestionButton = (\n <a className={classNames([\"btn btn-primary\"])} style={{ marginTop: 5 }} onClick={showModalCreate}>\n Add question\n </a>\n );\n\n return (\n <ApiContext.Provider value={api}>\n {modalCreate}\n {modalEdit}\n {modalRemove}\n\n <div className='panel panel-default'>\n <div className=\"panel-heading\">\n <h3 className=\"pull-left\">Questions</h3>\n <div className=\"pull-right\">{renderAddQuestionButton}</div>\n {isVenue && <h3 className=\"pull-right question-facility-venue\">Facilities</h3>}\n {isUser && <h3 className=\"pull-right question-facility-venue\">Venues</h3>}\n <div className=\"clearfix\"/>\n </div>\n\n <div className='panel-body'>\n <div className='questions-list'>\n {questions.map((item, index) => {\n return (\n <Fragment key={index}>\n {renderQuestionRow(item, index)}\n {item.subQuestions && item.subQuestions.map((child) => renderQuestionRow(child, index))}\n </Fragment>\n )\n })}\n </div>\n </div>\n </div>\n </ApiContext.Provider>\n )\n}","import React from 'react'\nimport ReactDOM from 'react-dom';\nimport List from \"./List\";\nimport './styles.scss';\n\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\n $('.area_nav').on('selected_tab_questions', function () {\n let el = document.getElementById('admin-venue-question')\n ReactDOM.render(<List url={el.dataset.url}/>, el);\n })\n});","import axios from \"axios\";\n\nclass Api {\n getNew = () => {\n return axios.get('/admin/settings/notice_messages/new.json')\n }\n\n getLast = () => {\n return axios.get('/admin/settings/notice_messages/last.json')\n }\n\n updateLast = (data) => {\n return axios.put('/admin/settings/notice_messages/update_last.json', data)\n }\n}\n\nconst api = new Api();\nexport default api;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n return _react2.default.createElement(\n 'svg',\n { width: '14', height: '11', viewBox: '0 0 14 11' },\n _react2.default.createElement('path', { d: 'M11.264 0L5.26 6.004 2.103 2.847 0 4.95l5.26 5.26 8.108-8.107L11.264 0', fill: '#fff', fillRule: 'evenodd' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n return _react2.default.createElement(\n 'svg',\n { width: '10', height: '10', viewBox: '0 0 10 10' },\n _react2.default.createElement('path', { d: 'M9.9 2.12L7.78 0 4.95 2.828 2.12 0 0 2.12l2.83 2.83L0 7.776 2.123 9.9 4.95 7.07 7.78 9.9 9.9 7.776 7.072 4.95 9.9 2.12', fill: '#fff', fillRule: 'evenodd' })\n );\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.pointerCoord = pointerCoord;\n// Copyright 2015-present Drifty Co.\n// http://drifty.com/\n// from: https://github.com/driftyco/ionic/blob/master/src/util/dom.ts\n\nfunction pointerCoord(event) {\n // get coordinates for either a mouse click\n // or a touch depending on the given event\n if (event) {\n var changedTouches = event.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n var touch = changedTouches[0];\n return { x: touch.clientX, y: touch.clientY };\n }\n var pageX = event.pageX;\n if (pageX !== undefined) {\n return { x: pageX, y: event.pageY };\n }\n }\n return { x: 0, y: 0 };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _check = require('./check');\n\nvar _check2 = _interopRequireDefault(_check);\n\nvar _x = require('./x');\n\nvar _x2 = _interopRequireDefault(_x);\n\nvar _util = require('./util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Toggle = function (_PureComponent) {\n _inherits(Toggle, _PureComponent);\n\n function Toggle(props) {\n _classCallCheck(this, Toggle);\n\n var _this = _possibleConstructorReturn(this, (Toggle.__proto__ || Object.getPrototypeOf(Toggle)).call(this, props));\n\n _this.handleClick = _this.handleClick.bind(_this);\n _this.handleTouchStart = _this.handleTouchStart.bind(_this);\n _this.handleTouchMove = _this.handleTouchMove.bind(_this);\n _this.handleTouchEnd = _this.handleTouchEnd.bind(_this);\n _this.handleFocus = _this.handleFocus.bind(_this);\n _this.handleBlur = _this.handleBlur.bind(_this);\n _this.previouslyChecked = !!(props.checked || props.defaultChecked);\n _this.state = {\n checked: !!(props.checked || props.defaultChecked),\n hasFocus: false\n };\n return _this;\n }\n\n _createClass(Toggle, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps.checked !== this.props.checked) {\n // Disable linting rule here since this usage of setState inside\n // componentDidUpdate is OK; see\n // https://reactjs.org/docs/react-component.html#componentdidupdate\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ checked: !!this.props.checked });\n }\n }\n }, {\n key: 'handleClick',\n value: function handleClick(event) {\n if (this.props.disabled) {\n return;\n }\n var checkbox = this.input;\n if (event.target !== checkbox && !this.moved) {\n this.previouslyChecked = checkbox.checked;\n event.preventDefault();\n checkbox.focus();\n checkbox.click();\n return;\n }\n\n var checked = this.props.hasOwnProperty('checked') ? this.props.checked : checkbox.checked;\n\n this.setState({ checked: checked });\n }\n }, {\n key: 'handleTouchStart',\n value: function handleTouchStart(event) {\n if (this.props.disabled) {\n return;\n }\n this.startX = (0, _util.pointerCoord)(event).x;\n this.activated = true;\n }\n }, {\n key: 'handleTouchMove',\n value: function handleTouchMove(event) {\n if (!this.activated) return;\n this.moved = true;\n\n if (this.startX) {\n var currentX = (0, _util.pointerCoord)(event).x;\n if (this.state.checked && currentX + 15 < this.startX) {\n this.setState({ checked: false });\n this.startX = currentX;\n this.activated = true;\n } else if (currentX - 15 > this.startX) {\n this.setState({ checked: true });\n this.startX = currentX;\n this.activated = currentX < this.startX + 5;\n }\n }\n }\n }, {\n key: 'handleTouchEnd',\n value: function handleTouchEnd(event) {\n if (!this.moved) return;\n var checkbox = this.input;\n event.preventDefault();\n\n if (this.startX) {\n var endX = (0, _util.pointerCoord)(event).x;\n if (this.previouslyChecked === true && this.startX + 4 > endX) {\n if (this.previouslyChecked !== this.state.checked) {\n this.setState({ checked: false });\n this.previouslyChecked = this.state.checked;\n checkbox.click();\n }\n } else if (this.startX - 4 < endX) {\n if (this.previouslyChecked !== this.state.checked) {\n this.setState({ checked: true });\n this.previouslyChecked = this.state.checked;\n checkbox.click();\n }\n }\n\n this.activated = false;\n this.startX = null;\n this.moved = false;\n }\n }\n }, {\n key: 'handleFocus',\n value: function handleFocus(event) {\n var onFocus = this.props.onFocus;\n\n\n if (onFocus) {\n onFocus(event);\n }\n\n this.setState({ hasFocus: true });\n }\n }, {\n key: 'handleBlur',\n value: function handleBlur(event) {\n var onBlur = this.props.onBlur;\n\n\n if (onBlur) {\n onBlur(event);\n }\n\n this.setState({ hasFocus: false });\n }\n }, {\n key: 'getIcon',\n value: function getIcon(type) {\n var icons = this.props.icons;\n\n if (!icons) {\n return null;\n }\n return icons[type] === undefined ? Toggle.defaultProps.icons[type] : icons[type];\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n className = _props.className,\n _icons = _props.icons,\n inputProps = _objectWithoutProperties(_props, ['className', 'icons']);\n\n var classes = (0, _classnames2.default)('react-toggle', {\n 'react-toggle--checked': this.state.checked,\n 'react-toggle--focus': this.state.hasFocus,\n 'react-toggle--disabled': this.props.disabled\n }, className);\n\n return _react2.default.createElement(\n 'div',\n { className: classes,\n onClick: this.handleClick,\n onTouchStart: this.handleTouchStart,\n onTouchMove: this.handleTouchMove,\n onTouchEnd: this.handleTouchEnd },\n _react2.default.createElement(\n 'div',\n { className: 'react-toggle-track' },\n _react2.default.createElement(\n 'div',\n { className: 'react-toggle-track-check' },\n this.getIcon('checked')\n ),\n _react2.default.createElement(\n 'div',\n { className: 'react-toggle-track-x' },\n this.getIcon('unchecked')\n )\n ),\n _react2.default.createElement('div', { className: 'react-toggle-thumb' }),\n _react2.default.createElement('input', _extends({}, inputProps, {\n ref: function ref(_ref) {\n _this2.input = _ref;\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n className: 'react-toggle-screenreader-only',\n type: 'checkbox' }))\n );\n }\n }]);\n\n return Toggle;\n}(_react.PureComponent);\n\nexports.default = Toggle;\n\n\nToggle.displayName = 'Toggle';\n\nToggle.defaultProps = {\n icons: {\n checked: _react2.default.createElement(_check2.default, null),\n unchecked: _react2.default.createElement(_x2.default, null)\n }\n};\n\nToggle.propTypes = {\n checked: _propTypes2.default.bool,\n disabled: _propTypes2.default.bool,\n defaultChecked: _propTypes2.default.bool,\n onChange: _propTypes2.default.func,\n onFocus: _propTypes2.default.func,\n onBlur: _propTypes2.default.func,\n className: _propTypes2.default.string,\n name: _propTypes2.default.string,\n value: _propTypes2.default.string,\n id: _propTypes2.default.string,\n 'aria-labelledby': _propTypes2.default.string,\n 'aria-label': _propTypes2.default.string,\n icons: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.shape({\n checked: _propTypes2.default.node,\n unchecked: _propTypes2.default.node\n })])\n};","import React from \"react\";\nimport Toggle from 'react-toggle';\nimport \"react-toggle/style.css\"\n\nexport default ({ noticeMessage }) => {\n let enabled = noticeMessage.enabled;\n\n return (\n <>\n <input name=\"id\" defaultValue={noticeMessage.id} type='hidden'/>\n <label>\n <Toggle\n defaultChecked={enabled}\n icons={false}\n name='enabled'\n />\n </label>\n\n <div className=\"form-group\">\n <label className=\"control-label\">\n Title\n </label>\n\n <input\n className=\"form-control\"\n name=\"title\"\n defaultValue={noticeMessage.title}\n />\n </div>\n\n <div className=\"form-group text\">\n <label className=\"control-label text\">\n Notice message shown to venues\n </label>\n\n <textarea\n className=\"form-control text\"\n name=\"message\"\n rows={6}\n defaultValue={noticeMessage.message}\n />\n </div>\n </>\n )\n}","import React, { useState, useEffect } from \"react\";\nimport api from \"./api\";\nimport Fields from \"./Fields\";\n\nexport default () => {\n const [noticeMessage, setNoticeMessage] = useState(null);\n\n useEffect(() => {\n api.getLast().then((response) => setNoticeMessage(response.data))\n }, [])\n\n const updateNoticeMessage = (event) => {\n event.preventDefault();\n //disable button\n\n let elements = event.target.elements;\n\n setNoticeMessage(null);\n\n api\n .updateLast({\n notice_message: {\n id: elements.id.value,\n enabled: elements.enabled.checked,\n title: elements.title.value,\n message: elements.message.value\n }\n })\n .then((response) => {\n setNoticeMessage(response.data)\n Helper.flash_message('success', 'Successfully updated')\n })\n .catch(() => {\n Helper.flash_message('error', 'Something went wrong')\n })\n }\n\n const newNoticeMessage = () => {\n event.preventDefault();\n setNoticeMessage(null);\n api.getNew().then((response) => setNoticeMessage(response.data))\n }\n\n return(\n <>\n <h1>Notice message on venue page</h1>\n\n <form onSubmit={updateNoticeMessage}>\n {noticeMessage && <Fields noticeMessage={noticeMessage}/>}\n\n <div>\n <div className='pull-left'>\n {noticeMessage &&\n <>\n <input\n type=\"submit\"\n className=\"btn btn-primary\"\n value={noticeMessage.id ? \"Update\" : \"Create\"}\n />\n <i className=\"fa fa-eye\" aria-hidden=\"true\" style={{ marginLeft: 5, marginRight: 5 }}/>\n {noticeMessage.viewedCount}\n </>\n }\n </div>\n\n <div className='pull-right'>\n {noticeMessage &&\n <input type=\"button\" className=\"btn btn-primary\" value=\"New message\" onClick={newNoticeMessage}/>\n }\n </div>\n </div>\n </form>\n </>\n )\n};","import React from \"react\";\nimport ReactDOM from \"react-dom\";\n\nimport NoticeMessages from './NoticeMessages/Index'\n\nconst components = [\n { id: 'admin-settings-notice-messages', Component: NoticeMessages }\n]\n\ndocument.addEventListener('DOMContentLoaded', () => {\n components.forEach(({ id, Component }) => {\n let element = document.getElementById(id);\n if (element) ReactDOM.render(<Component {...element.dataset}/>, element);\n });\n});\n\n","(function() {\n window.initSortableLogoSection = function() {\n $('.sortable-logo-section').sortable({\n items: \"> tr.allow-sort\",\n stop: function(e, u) {\n collectLogoSection();\n }\n });\n }\n\n initSortableLogoSection();\n\n function collectLogoSection() {\n var document_records, ids;\n document_records = $('.sortable-logo-section .ui-sortable-handle');\n\n ids = $.map(document_records, function(record, _) {\n var id;\n return id = $(record).data('id');\n });\n\n $.ajax({\n method: 'PUT',\n url: '/admin/settings/logo_sections/reorder',\n data: {\n ids: ids\n },\n success: function(result) {\n $('.success').fadeIn('slow');\n $('.success').fadeOut('slow');\n },\n fail: function(result) {\n $('.error').fadeIn('slow');\n $('.error').fadeOut('slow');\n }\n });\n }\n}).call(this);","$(document).on('click', '.app_feature_switch', (e) => {\n const form = $(e.target).closest('form');\n form.submit();\n})","(function() {\n $(document).on('click', '#create_closed_hours', function() {\n $.ajax({\n url: '/admin/booking_closed_hours',\n dataType: 'json',\n data: { booking_hour_id: $(this).data('booking-hour-id') },\n type: 'POST',\n success: function() {\n 'ok'\n }\n });\n });\n\n $(document).on('click', '.btn-delete-close-hour', function() {\n $(this).parent().parent().find('#destroy_closed_hour').val('1')\n });\n}).call(this);\n","import axios from 'axios';\n\n$(document).on('click', '#open_resend_message_modal', function(e) {\n e.preventDefault()\n axios\n .get($(e.target).data('url'))\n .then(response => {\n $('#admin_orders_modal').find('.modal-content').empty().append(response.data)\n $('#admin_orders_modal').modal('show')\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error)\n });\n});\n\n$(document).on('click', '#resend_message_to_user', (e) => {\n e.preventDefault()\n\n const button = $(e.target);\n button.prop('disabled', true);\n $('.resend_message_message').removeClass('has-error');\n $('.resend_message_message').find('.text-danger').remove();\n\n axios\n .patch(button.data('url'), { message: $('#resend_message_message').val() } )\n .then(response => {\n button.prop('disabled', false)\n $('#admin_orders_modal').modal('hide')\n Helper.flash_message('success', 'Message sent')\n })\n .catch((error) => {\n button.prop('disabled', false)\n if (error.response.data.blank_message) {\n const html = '<span class=\"text-danger\">' + error.response.data.blank_message + '</span>';\n $('.resend_message_message').addClass('has-error');\n $('.resend_message_message').append(html)\n } else {\n $('#admin_orders_modal').modal('hide')\n Helper.flash_message('error', error.response.data.error )\n }\n });\n});\n\n\n","import axios from 'axios';\nimport SmartyForm from '../../helpers/smarty_form';\n\n$(document).on('click', '#open_user_to_action_reminder_modal', (e) => {\n e.preventDefault();\n\n axios\n .get($(e.target).data('url'))\n .then(response => {\n var modal = $('#user_to_action_reminder_modal');\n modal.find('.modal-content').empty().append(response.data);\n modal.modal('show');\n })\n});\n\n$(document).on('submit', '#edit_user_to_action_reminder', (e) => {\n e.preventDefault();\n\n new SmartyForm().process({\n form: $(e.target),\n onSuccess: () => {\n $('#user_to_action_reminder_modal').modal('hide');\n Helper.flash_message('success', 'Message sent');\n },\n onError: () => { processingModal.hide() }\n });\n});\n","import axios from 'axios';\n\nconst updateOrderMessageRule = (e) => {\n axios\n .patch($(e.target).data('url'),null, { params: {\n send_user_order_completed: $('input[name=\"order_message_rule[send_user_order_completed]\"]').is(':checked'),\n send_venue_order_completed: $('input[name=\"order_message_rule[send_venue_order_completed]\"]').is(':checked')\n }})\n .then(response => {})\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error)\n });\n}\n\n$(document).on('change', '#order_message_rule_send_user_order_completed', function(e) {\n e.preventDefault()\n updateOrderMessageRule(e)\n});\n\n$(document).on('change', '#order_message_rule_send_venue_order_completed', function(e) {\n e.preventDefault()\n updateOrderMessageRule(e)\n});\n\n\n\n\n","(function() {\n $(function() {\n\n const newVenueNoteModal = $('#admin_orders_modal');\n\n const showVenueNoteModal = function (link) {\n $.ajax({\n type: \"GET\",\n url: link,\n async: true,\n success: function (data) {\n newVenueNoteModal.find('.modal-content').empty().append(data);\n newVenueNoteModal.modal('show');\n },\n error: function (data) {\n newVenueNoteModal.find('.modal-content').empty();\n newVenueNoteModal.modal('close');\n Helper.flash_message('error', \"Something went wrong!\");\n }\n });\n };\n\n $(document).on('click', 'a.open_show_initiated_message_modal', function (e) {\n e.preventDefault();\n showVenueNoteModal($(this).attr('href'));\n });\n\n });\n}).call(this);\n","import axios from \"axios\";\n\nexport function getBookingInfo(id, refreshCalendar) {\n axios\n .get('/admin/calendar/bookings/' + id)\n .then((resp) => {\n const modal = $('#modal_info');\n modal.find('.modal-content').empty().append(resp.data);\n modal.modal('show');\n })\n .catch((error) => {\n if ((error.response.status !== 404)) Helper.flash_message('error', 'Something went wrong')\n refreshCalendar()\n });\n}\n\n","import { getBookingInfo } from \"../Modal\";\n\nconst DayCalendar = (function() {\n function show(options, refreshCalendar) {\n const { viewDate, minTime, maxTime, facilityData, bookingData } = options;\n\n var $table = $('.fc-view table');\n var $calendar = $('#calendar');\n\n $table.floatThead('destroy');\n $calendar.fullCalendar('destroy');\n\n $calendar.html('');\n\n $calendar.fullCalendar({\n defaultView: 'agendaDay',\n defaultDate: viewDate,\n editable: false,\n allDaySlot: false,\n selectable: false,\n firstDay: 1,\n minTime: minTime,\n maxTime: maxTime,\n slotLabelFormat: 'HH:mm',\n defaultTimedEventDuration: '00:30:00',\n schedulerLicenseKey: 'CC-Attribution-NonCommercial-NoDerivatives',\n allDay: false,\n resourceGroupField: 'title',\n eventLimit: true,\n views: {\n week: {\n titleFormat: 'dddd, DD/MM',\n columnFormat: 'dddd, DD/MM'\n }\n },\n timeFormat: 'H:mm',\n header: {\n left: null,\n center: null,\n right: null\n },\n eventClick: (calEvent) => getBookingInfo(calEvent.id, refreshCalendar),\n resources: facilityData,\n events: bookingData\n });\n\n rebuildCalendar();\n }\n\n function rebuildCalendar() {\n $('th.fc-axis').html('Time slot');\n $('#calendar').fullCalendar('option', 'height', 'auto');\n $('.block-booked').prepend('<div class=\"legend-block legend-no-margins legend-triangle\"></div>');\n AlignText();\n MakeLinks();\n prettifyAxis();\n $('.fc-view colgroup').remove();\n $($('.fc-agenda-view table')[0]).floatThead({ position: 'absolute', autoReflow: true });\n }\n\n function MakeLinks() {\n $.each($('.fc-resource-cell'), function(ind, label) {\n $(label).html($(label).text());\n });\n }\n\n function AlignText() {\n $.each($('.booking-item'), function(ind, item) {\n let height = $(item).height();\n return $(item).find('.fc-content').css('padding-top', height / 2 - 10);\n });\n }\n\n function prettifyAxis() {\n var collection = $('.fc-slats tr');\n\n $.each(collection, function(index, item) {\n var displaytime, parsed_time, time;\n time = $(item).data('time');\n displaytime = new moment(time, 'HH:mm');\n parsed_time = new moment(time, 'HH:mm').add(30, 'minutes');\n parsed_time.format('HH:mm');\n\n $(item).find('.fc-time').html('<span class=\"axis-time-range\">' +\n displaytime.format('HH:mm') +\n ' - ' +\n parsed_time.format('HH:mm') +\n '</span>');\n });\n }\n\n return {\n show: show\n };\n})();\n\nconst AgendaDay = (function() {\n function show(options, refreshCalendar) {\n let { headerWidth, facilityData} = options;\n const calendarNoteHTML = atob(options.base64CalendarNoteHTML);\n if (calendarNoteHTML.length > 0) $('#dayCalendarNote').html(calendarNoteHTML);\n $('#calendar').show()\n DayCalendar.show(options, refreshCalendar);\n\n const amount = facilityData.length;\n const tableWidth = valueToPx(amount * 280 > 1300 ? amount * 280 : 1300);\n\n var table = $('#calendar .fc-view > table');\n\n table.css('width', valueToPx(amount * 280));\n $('th.fc-axis').attr('style', \"width: \" + valueToPx(headerWidth) + \"!important\");\n $('.floatThead-container').css('width', valueToPx(headerWidth * 280) + \"px\");\n\n table.on(\"floatThead\", function(e, isFloated) {\n if(isFloated){\n $('#calendar .fc-view > table').css('width', tableWidth)\n $('.floatThead-container').css('width', tableWidth)\n $('.floatThead-table').css('width', tableWidth)\n } else {\n $('#calendar .fc-view > table').css('width', tableWidth)\n $('.floatThead-container').css('width', tableWidth)\n $('.floatThead-table').css('width', tableWidth)\n }\n });\n\n $('.fc-axis.fc-time.fc-widget-content').css('background-color', '#FFFFFF')\n $('.fc-time-grid-container').height(valueToPx($('.fc-time-grid-container').height() + 2))\n $('#calendar_top_scroll_content').attr('style', 'width: ' + valueToPx(table.width()));\n }\n\n function valueToPx(value) {\n return value.toString() + \"px\";\n }\n\n return {\n show: show\n };\n})();\n\nexport default AgendaDay;","const AgendaWeek = (function() {\n function show(options) {\n const filter_amount = options.amount;\n const weekViewHTML = atob(options.base64WeekViewHTML);\n const staff_rota_toggle = options.staff_rota_toggle;\n const $table = $('.fc-view table');\n $table.floatThead('destroy');\n $('#calendar').fullCalendar('destroy')\n $('#calendar').html('No data to show')\n $('#calendar').html(weekViewHTML)\n $('#week_view_table').css('width', valueToPx((filter_amount + 1) * 262));\n $('#week_view_table').floatThead({ position: 'absolute', autoReflow: true });\n $(\"#week_view_table\").tableHeadFixer({'left': 1, 'head': false, parent: '#calendar'});\n $('#staff-rota-selector').toggle(staff_rota_toggle)\n $('#calendar').show();\n $('#calendar_top_scroll_content').attr('style', 'width: ' + valueToPx($('.floatThead-container > table').width()));\n\n if($('.floatThead-container > table').width() > 0 && window.innerWidth > 1300) {\n $('#calendar_top_scroll_wrapper').css('overflow-x', 'hidden')\n }\n }\n\n function valueToPx(value) {\n return value.toString() + \"px\";\n }\n\n return {\n show: function(options) { return show(options) }\n };\n})();\n\nexport default AgendaWeek;","import axios from \"axios\";\n\nconst Venues = (function() {\n function init(refreshCalendar) {\n const formJson = localStorage.getItem('calendar_filter_json');\n let formAttributes = {};\n\n try {\n formAttributes = JSON.parse(formJson) || {};\n } catch (e) {\n console.log('no attributes')\n }\n\n const venue_id = formAttributes.venue_id;\n const venueOptions = $('#venue_id option');\n const venueValues = $.map(venueOptions, function (option) {\n return option.value\n });\n if (venue_id && _.contains(venueValues, venue_id)) $(\"#venue_id\").val(venue_id);\n\n $('#venue_id').on('change', function() {\n const sel = $('<select/>', {\n id: \"facility_id_\",\n multiple: \"multiple\",\n class: \"facility_id_filter form-control input-sm\",\n name: 'facility_id[]'\n });\n\n $('#facility_id_').multiselect('destroy');\n $('#facility_id_').parent().replaceWith(sel);\n $('#facility_id_').multiselect({ nonSelectedText: 'All' });\n\n setTimeout(refreshCalendar, 200);\n });\n }\n\n return {\n init: init,\n };\n})();\n\nexport default Venues;","import axios from \"axios\";\n\nconst Facilities = (function() {\n let refreshCalendarFn = null;\n\n function init(refreshCalendar) {\n refreshCalendarFn = refreshCalendar;\n\n $('#facility_id_').multiselect({\n enableClickableOptGroups: true,\n enableCollapsibleOptGroups: true,\n onChange: () => refreshCalendar(),\n buttonText: (options) => (options.length === 0 || options.val() === '') ? 'All' : options.length + ' selected'\n });\n\n $('#facility_id_').on('change', function() {\n refreshCalendar()\n });\n\n $('#venue_id').on('change', function (e) {\n const venueId = e.target.value;\n onVenueIdUpdate(venueId);\n })\n\n onVenueIdUpdate($('#venue_id').val())\n };\n\n function onVenueIdUpdate(venueId) {\n axios.get(`/admin/calendar/facilities.json?venue_id=${venueId}`).then((resp) => {\n calendarFilterReplaceFacilities(resp.data)\n })\n }\n\n function calendarFilterReplaceFacilities(facilities) {\n const sel = $('<select/>', {\n id: \"facility_id_\",\n multiple: \"multiple\",\n class: \"facility_id_filter form-control input-sm\",\n name: 'facility_id[]'\n });\n\n (facilities || []).forEach(item => {\n if (item.childFacilities.length === 0) {\n let normalOption = $('<option/>', {\n class: \"normal-facility-option\",\n value: item.id,\n text: item.internalReference\n });\n\n sel.append(normalOption);\n } else {\n let optGroup = $('<optgroup/>', { label: item.internalReference });\n\n item.childFacilities.forEach(childFacility => {\n let normalOption = $('<option/>', {\n value: `${item.id}:${childFacility.id}`,\n text: childFacility.internalReference\n });\n\n optGroup.append(normalOption);\n })\n\n sel.append(optGroup);\n\n let fakeOptGroup = $('<optgroup/>', { label: '', class: 'hidden' });\n sel.append(fakeOptGroup);\n }\n });\n\n $('#facility_id_').multiselect('destroy');\n $('#facility_id_').parent().replaceWith(sel);\n initFacilityMultiselect()\n }\n\n function initFacilityMultiselect() {\n $('#facility_id_').multiselect({\n enableClickableOptGroups: true,\n includeSelectAllOption: true,\n selectAllText: 'All',\n onChange: () => {\n $('#facility_id_').next().removeClass('open');\n refreshCalendarFn()\n },\n buttonText: (options) => (options.length === 0 || options.val() === '') ? 'All' : options.length + ' selected',\n onInitialized: (select, container) => {\n const el = $(select).next();\n $(el).on('change', 'a.multiselect-all input[type=checkbox]', function() {\n $(el).find('a.multiselect-all input[type=checkbox]').click();\n $(el).removeClass('open');\n setTimeout(refreshCalendarFn, 200);\n })\n }\n });\n }\n\n return {\n init: init,\n };\n})();\n\nexport default Facilities;","const EventDate = (function() {\n function init(refreshCalendar) {\n $('#date').datepicker({\n format: 'D, dd M yyyy',\n weekStart: 1,\n autoclose: true\n });\n\n const momentDate = moment(null, \"ddd, DD MMM YYYY\");\n if (momentDate.isValid()) $('#date').datepicker(\"setDate\", momentDate.toDate());\n\n $('#date').on('change', function() {\n refreshCalendar()\n });\n }\n\n return {\n init: init,\n };\n})();\n\nexport default EventDate;","const PeriodView = (function() {\n function init(refreshCalendar) {\n $('.period-view').on('change', function(e) {\n $('.hidden-period').val($(this).val());\n refreshCalendar();\n });\n\n $('.day-switcher').on('click', function(e) {\n var val;\n e.preventDefault();\n val = $('.hidden-view').val();\n\n if (val === 'day') {\n\n } else {\n $('#calendar').hide();\n $('#staff-rota-selector').hide();\n $('#view-day-selector').show();\n $('#view-week-selector').hide();\n $('.hidden-view').val('day');\n $('.col-legend .legend-item').toggle(true);\n $('.col-internal-booking .btn').toggle(true);\n refreshCalendar();\n $('.week-switcher').removeClass('selected-day');\n $('.day-switcher').addClass('selected-day');\n $('#days_of_week').multiselect('disable');\n $('#days_of_week').removeAttr('disabled');\n $('#calendar_top_scroll_wrapper').css('overflow-x', 'scroll')\n }\n\n togglePrevNextButtonsText();\n });\n\n $('.week-switcher').on('click', function(e) {\n e.preventDefault();\n var val = $('.hidden-view').val();\n $('#dayCalendarNote').html('');\n\n if (val === 'week') {\n } else {\n $('#calendar').hide();\n $('#staff-rota-selector').show();\n $('#view-day-selector').hide();\n $('#view-week-selector').show();\n $('.col-legend .legend-item').toggle($('.hidden-week-view-type').val() !== 'availability');\n $('.col-internal-booking .btn').toggle($('.hidden-week-view-type').val() !== 'availability');\n $('.hidden-view').val('week');\n refreshCalendar();\n $('.day-switcher').removeClass('selected-day');\n $('.week-switcher').addClass('selected-day');\n $('#days_of_week').multiselect('enable');\n\n if(window.innerWidth > 1250) {\n $('#calendar_top_scroll_wrapper').css('overflow-x', 'hidden')\n }\n }\n\n togglePrevNextButtonsText();\n });\n\n togglePrevNextButtonsText();\n }\n\n function togglePrevNextButtonsText() {\n const prevWeekCaption = '<< Previous week';\n const nextWeekCaption = 'Next week >>';\n const prevDayCaption = '<< Previous day';\n const nextDayCaption = 'Next day >>';\n const targetPrevButton = $('.calendar-scroll-prev');\n const targetNextButton = $('.calendar-scroll-next');\n\n const currentCalendarView = $('.hidden-view').val();\n\n if (currentCalendarView === 'day') {\n targetPrevButton.text(prevDayCaption);\n targetNextButton.text(nextDayCaption);\n } else {\n targetPrevButton.text(prevWeekCaption);\n targetNextButton.text(nextWeekCaption);\n }\n }\n\n return {\n init: init,\n };\n})();\n\nexport default PeriodView;","const Days = (function() {\n function init(refreshCalendar) {\n $('#days_of_week').multiselect({\n includeSelectAllOption: false,\n selectAllNumber: false,\n nonSelectedText: 'None',\n numberDisplayed: 0,\n onChange: () => {\n refreshCalendar();\n disableLastCheckedDay()\n },\n buttonText: (options) => (options.length === 7 || options.val() === '') ? 'All' : options.length + ' selected'\n });\n }\n\n function disableLastCheckedDay() {\n const activeElements = $('#days_of_week').parent().find('.multiselect-container').find('li.active');\n\n if (activeElements.length === 1) {\n $(activeElements[0]).addClass('disabled');\n $(activeElements[0]).find('input').prop('disabled', true);\n } else {\n const disabledElements = $('#days_of_week').parent().find('.multiselect-container').find('li.disabled');\n\n $.each(disabledElements, function(index, el) {\n $(el).removeClass('disabled');\n $(el).find('input').prop('disabled', false);\n })\n }\n }\n\n return {\n init: init,\n };\n})();\n\nexport default Days;","const StaffRotaView = (function() {\n function init(refreshCalendar) {\n $('.staff-rota-view').on('change', function(e) {\n $('.hidden-staff-rota').val($(this).val());\n refreshCalendar();\n });\n }\n\n return {\n init: init,\n };\n})();\n\nexport default StaffRotaView;\n","const WeekViewType = (function() {\n function init(refreshCalendar) {\n $('.week-view-type').on('change', function(e) {\n $('.hidden-week-view-type').val($(this).val());\n\n const weekViewTypeEl = $('.hidden-week-view-type');\n const weekViewType = weekViewTypeEl.val();\n const isAvailability = weekViewType !== 'availability';\n\n $('.col-legend .legend-item').toggle(isAvailability);\n $('.col-internal-booking .btn').toggle(isAvailability);\n $('.users-field').toggle(isAvailability);\n $('select#user_id').attr('disabled', !isAvailability);\n\n refreshCalendar();\n });\n }\n\n return {\n init: init,\n };\n})();\n\nexport default WeekViewType;","const Customers = (function() {\n function init(refreshCalendar) {\n $('#user_id').on('change', () => refreshCalendar());\n }\n\n function calendarFilterReplaceUsers(options) {\n $('select#user_id option').remove();\n\n const option = $('<option/>', { text: 'All customers' } );\n $('select#user_id').append(option);\n\n $.each(options, function(index, user) {\n let option = $('<option/>', { value: user.id, text: user.name, selected: user.selected } );\n $('select#user_id').append(option);\n });\n }\n\n return {\n init: init,\n calendarFilterReplaceUsers: calendarFilterReplaceUsers\n };\n})();\n\nexport default Customers;","import AgendaDay from \"../Views/AgendaDay\";\nimport AgendaWeek from \"../Views/AgendaWeek\";\nimport Venues from './Venues';\nimport Facilities from './Facilities';\nimport EventDate from './EventDate';\nimport PeriodView from \"./PeriodView\";\nimport Days from \"./Days\";\nimport StaffRotaView from \"./StaffRotaView\";\nimport WeekViewType from \"./WeekViewType\";\nimport Customers from \"./Customers\";\nimport { getBookingInfo } from \"../Modal\";\nimport axios from 'axios';\n\nconst Filter = (function() {\n let inProgress = false;\n\n function init() {\n if ($('.calendar-filter').length > 0) {\n Venues.init(refreshCalendar);\n Facilities.init(refreshCalendar);\n EventDate.init(refreshCalendar);\n Customers.init(refreshCalendar);\n Days.init(refreshCalendar);\n PeriodView.init(refreshCalendar);\n StaffRotaView.init(refreshCalendar);\n WeekViewType.init(refreshCalendar);\n }\n\n $('.calendar-form').on('submit', function(e) {\n e.preventDefault();\n formSubmit();\n });\n\n $(document).on('click', '.week-view-link', function(e) {\n e.preventDefault();\n getBookingInfo($(this).data('id'), refreshCalendar);\n });\n\n $('.fc-agendaWeek-button').on('click', function(e) {\n e.preventDefault();\n });\n\n const calendar = $('#calendar');\n const calendarOnTop = $('#calendar_top_scroll_wrapper');\n\n calendarOnTop.on('scroll', () => { calendar.scrollLeft(calendarOnTop.scrollLeft()) });\n calendar.on('scroll', () => { calendarOnTop.scrollLeft(calendar.scrollLeft()) });\n\n formSubmit();\n }\n\n function formSubmit() {\n const form = $('.calendar-form');\n const url = form.attr('action') + '.json?' + form.serialize();\n\n toggleScroll(true);\n\n axios.get(url).then((response) => {\n const options = response.data;\n\n if (options.renderer === 'day') {\n Customers.calendarFilterReplaceUsers(options.users);\n AgendaDay.show(options, refreshCalendar);\n } else if (options.renderer === 'facility') {\n $('#calendar').html(atob(options.base64WeekViewHTML))\n } else {\n Customers.calendarFilterReplaceUsers(options.users);\n AgendaWeek.show(options)\n }\n\n toggleScroll(false);\n }).catch((e) => {\n toggleScroll(false);\n if (e.code === 'ERR_CANCELED') {\n } else {\n Helper.flash_message('error', 'Something went wrong')\n }\n })\n }\n\n function refreshCalendar() {\n const form = $('form.calendar-form');\n const formJson = form.serializeJSON();\n\n if ($('.admin_calendars_show').length > 0) {\n localStorage.setItem('calendar_filter_json', formJson);\n }\n\n formSubmit();\n }\n\n function toggleScroll(disabled) {\n [...document.getElementsByClassName('calendar-scroll-prev')].map(el => el.dataset.disabled = disabled);\n [...document.getElementsByClassName('calendar-scroll-next')].map(el => el.dataset.disabled = disabled);\n }\n\n return { init: init };\n})();\n\nexport default Filter;","import Filter from \"./Filter/index\";\n\n$(function() {\n if ($('#component_calendar').length === 0) return true;\n Filter.init();\n});\n","window.createInternalOrderModal = function(facility_code, date) {\n const link = '/admin/internal_order';\n const form = $('form.calendar-form');\n const params = form.serialize();\n\n const $admin_internal_order_modal = $('#admin_internal_order_modal');\n\n $.get(link, params, function(data) {\n $admin_internal_order_modal.find('.modal-content').empty().append(data);\n $('#internal_order_venue_id').val($('.calendar-form select#venue_id').val());\n $admin_internal_order_modal.modal('show');\n });\n};\n\n$(document).on('click', '#admin_internal_order_modal form [type=submit]', function(e) {\n e.preventDefault();\n var $form = $(this).closest('form');\n var url = $form.attr('action');\n\n $.ajax({\n type: 'POST',\n url: url,\n data: $form.serialize(),\n success: function(data) {\n window.location = data.redirect_to;\n },\n error: function(data) {\n $('#admin_internal_order_modal').find('.modal-content').empty().append(data.responseText);\n }\n });\n});\n","import { processingModal } from \"src/nextgen/helpers/processing_modal\";\nimport axios from 'axios';\n\n$(document).on('click', '#calendar-send-message', function(e) {\n e.preventDefault();\n const $btn = $(this);\n const $form = $btn.closest('form');\n\n if ($btn.attr('disabled') !== 'disabled') {\n $btn.attr('disabled', true);\n\n processingModal.show(1000);\n\n axios.post($form.attr('action'), new FormData($($form)[0])).then(() => {\n $btn.attr('disabled', false);\n processingModal.hide();\n Helper.flash_message('success', 'Your message has been sent');\n $btn.closest('form').find(\"input[type=text], textarea\").val(\"\");\n }).catch(() => {\n $btn.attr('disabled', false);\n processingModal.hide();\n Helper.flash_message('error', 'Your message was not sent');\n })\n }\n});","import axios from 'axios';\nimport SmartyForm from '../../../../src/nextgen/helpers/smarty_form';\n\n$(document).on('click', '.calendar-note a', function(e) {\n e.preventDefault()\n\n axios\n .get($(this).data('url'))\n .then(response => {\n var modal = $('#calendar-note-modal');\n modal.find('.modal-content').empty().append(response.data);\n modal.modal('show');\n })\n});\n\n$(document).on('submit', '.send_calendar_note_request_form', function(e) {\n e.preventDefault()\n\n new SmartyForm().process({\n form: $(e.target),\n onSuccess: (response) => {\n var form = $('.send_calendar_note_request_form');\n var modal = $('#calendar-note-modal');\n $('#note-' + form.data('eventdate')).empty().append(response);\n modal.modal('hide');\n Helper.flash_message('success', 'Note updated');\n },\n onError: (response) => { processingModal.hide() }\n });\n});\n","import axios from 'axios';\n\n$(document).ready(function() {\n $('.area_nav').on('selected_tab_facilities-order', function () {\n $('#sortable-facility, #sortable-facility .children-group').sortable({ stop: (e) => collectOrders(e) });\n\n $('.facility-order-wrapper.parent-facility').on('click', (e) => {\n const target = $(e.target)\n const group = $(e.target).closest('.group')\n group.find('.children-group').slideToggle(500);\n target.find('.fa-angle-down').slideToggle(0);\n target.find('.fa-angle-up').slideToggle(0);\n });\n\n function collectOrders(e) {\n const self = $(e.target);\n const facilities = self.find('> .ui-sortable-handle > .facility-order-wrapper');\n const ids = $.map(facilities, (el) => $(el).data('id'));\n\n axios\n .put('/admin/facilities/reorder', { ids: ids })\n .then(() => {\n $.each(facilities, (index, el) => $(el).find('span.list-order').html(index + 1));\n Helper.flash_message('success', 'Successfully updated')\n })\n .catch((e) => {\n console.log(e)\n Helper.flash_message('error', 'Something went wrong')\n })\n }\n });\n});\n","window.adminFacilitiesForm = function() {\n function checkVenueTimePeriod() {\n const venueTimePeriod = $(\"input[name='facility[venue_time_period]']:checked\").val();\n\n $('.facility_period_minutes').toggle(venueTimePeriod !== 'true');\n }\n\n function checkMinimumBookingRule() {\n const minimumTimeRuleEnabled = $(\"input[name='facility[minimum_booking_period_rule]']:checked\").val();\n\n $('.minimum_booking_period_rule_radio').toggle(minimumTimeRuleEnabled !== 'false');\n }\n\n $(\"input[name='facility[venue_time_period]']\").on('change', function() {\n checkVenueTimePeriod();\n });\n\n $(\"input[name='facility[minimum_booking_period_rule]']\").on('change', function() {\n checkMinimumBookingRule();\n })\n\n checkVenueTimePeriod();\n checkMinimumBookingRule();\n}\n","import React from \"react\";\n\nexport default ({ index, deleteChildFacility, revertChildFacility, data }) => {\n const { deleteRequest, deleteRequestDisabled } = data ;\n const disabled = deleteRequestDisabled || false;\n\n if (deleteRequest) {\n return (\n <button type='button'\n disabled={disabled}\n style={{ width: '165px' }}\n className=\"btn btn-warning\"\n onClick={() => revertChildFacility(index)}>\n Undo delete request\n </button>\n )\n } else {\n return (\n <button type='button'\n disabled={disabled}\n style={{ width: '165px' }}\n className=\"btn btn-danger\"\n onClick={() => deleteChildFacility(index)}>\n {data.id === '' ? 'Delete' : 'Send delete request'}\n </button>\n )\n }\n}","import React from \"react\";\n\nexport default ({ index, len2, deleteChildFacility, revertChildFacility, data }) => {\n const { _destroy } = data ;\n\n if (_destroy) {\n return (\n <button type='button'\n style={{ width: '165px' }}\n className=\"btn btn-warning\"\n onClick={() => revertChildFacility(index)}>\n Revert\n </button>\n )\n } else {\n if (len2 <= 2) return null;\n\n const btnTitle = data.id === '' ? 'Delete' : (data.ordersCount > 0 ? 'Soft delete' : 'Hard delete');\n\n return (\n <button type='button'\n data-orders-count={data.ordersCount}\n style={{ width: '165px' }}\n className=\"btn btn-danger\"\n onClick={() => deleteChildFacility(index)}>\n {btnTitle}\n </button>\n )\n }\n}","import React from \"react\";\nimport VenueAdminControlButton from \"./VenueAdminControlButton\";\nimport SystemAdminControlButton from \"./SystemAdminControlButton\";\n\nexport default (params) => {\n if (params.deleteRequestEnabled) {\n return <VenueAdminControlButton {...params}/>\n } else {\n return <SystemAdminControlButton {...params}/>\n }\n}","import React from \"react\";\nimport classNames from \"classnames\";\nimport ControlButton from \"./ControlButton\";\n\nexport default ({\n index,\n data,\n deleteChildFacility,\n revertChildFacility,\n len,\n len2,\n errors,\n deleteRequestEnabled\n}) => {\n const suffix = `facility[group_facilities_attributes][${index}]`;\n const internalReferenceErrors = errors[`group_facilities[${index}].internal_reference`];\n\n return (\n <div className=\"form-group citext required facility_group_facilities_internal_reference\">\n <input type=\"hidden\" name={`${suffix}[list_order]`} value={index}/>\n <input type=\"hidden\" name={`${suffix}[deleted_at]`}/>\n <input type=\"hidden\" name={`${suffix}[id]`} value={data.id}/>\n <input type=\"hidden\" name={`${suffix}[_destroy]`} value={data._destroy || false}/>\n <input type=\"hidden\" name={`${suffix}[delete_request]`} value={data.deleteRequest}/>\n\n <label className=\"control-label select optional\" htmlFor=\"facility_facility_category_id\">\n Name {index + 1}\n \n {!deleteRequestEnabled && data.deleteRequest && <span className=\"label label-warning\">Delete request</span>}\n </label>\n\n <div className='form-inline'>\n <input\n className={classNames('form-control', 'required', { '' : data.id === '' })}\n style={{ width: '200px' }}\n required=\"required\"\n aria-required=\"true\"\n type=\"text\"\n disabled={data._destroy}\n defaultValue={data.internalReference}\n name={`${suffix}[internal_reference]`}\n />\n\n <div style={{ width: '10px', display: 'inline-block' }}/>\n\n <ControlButton\n index={index}\n len={len}\n len2={len2}\n data={data}\n deleteChildFacility={deleteChildFacility}\n revertChildFacility={revertChildFacility}\n deleteRequestEnabled={deleteRequestEnabled}\n />\n </div>\n\n {internalReferenceErrors &&\n <div className='has-error'>\n <span className=\"help-block\">\n {internalReferenceErrors.join(', ')}\n </span>\n </div>\n }\n </div>\n )\n}","import React, { useState, useEffect } from \"react\";\nimport ChildFacility from \"./ChildFacility\";\n\nconst MAX_NUMBER = 32;\n\nexport default ({ childFacilities, addChildFacility,\n deleteChildFacility,\n revertChildFacility,\n errors }) => {\n const [selectedNum, setSelectedNum] = useState(1);\n\n const nonDeletedChildFacilities = (childFacilities || []).filter((childFacility) => {\n return !(childFacility['_destroy'])\n });\n\n const nonDeleteRequestedChildFacilities = (childFacilities || []).filter((childFacility) => {\n return !(childFacility['deleteRequest'])\n });\n\n const len2 = nonDeletedChildFacilities.length;\n const len = nonDeleteRequestedChildFacilities.length;\n const sumDeletedFacilities = len + len2\n const n = MAX_NUMBER - sumDeletedFacilities;\n\n useEffect(() => { if (selectedNum > n) setSelectedNum(1) }, [n]);\n\n return (\n <>\n <div className=\"row\">\n <div className=\"col-md-12\">\n <label>Related names:</label>\n {(childFacilities || []).map((childFacility, index) =>\n <ChildFacility\n key={index}\n index={index}\n data={childFacility}\n deleteChildFacility={deleteChildFacility}\n revertChildFacility={revertChildFacility}\n len={len}\n len2={len2}\n errors={errors}\n deleteRequestEnabled={childFacility.deleteRequestEnabled}\n />\n )}\n </div>\n </div>\n\n <div className='row'>\n <div className='col-lg-12 col-md-12'>\n <div className=\"form-group\">\n <label className=\"control-label select optional\" htmlFor=\"facility_facility_category_id\">\n Add new facilities:\n </label>\n\n <div className='form-inline'>\n <select className='form-control select optional'\n value={selectedNum}\n style={{ width: '200px' }}\n onChange={(e) => setSelectedNum(parseInt(e.target.value))}>\n {[...Array(MAX_NUMBER).keys()].map((i) => <option key={i} value={i+1}>{i+1}</option>)}\n </select>\n\n <div style={{ width: '10px', display: 'inline-block' }}/>\n\n <button type=\"button\"\n className=\"btn btn-primary\"\n style={{ width: '165px' }}\n onClick={() => addChildFacility(selectedNum)}>\n Add\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"clearfix\"></div>\n </>\n )\n}\n","import React from \"react\";\n\nexport default ({ errors }) => {\n return (\n <div id=\"group_facilities_fields\">\n <div className=\"clearfix\"></div>\n </div>\n )\n}\n","import React from \"react\";\nimport { OverlayTrigger, Popover } from 'react-bootstrap';\n\nconst popoverLeft = (\n <Popover id=\"popover-positioned-scrolling-left\" title=\"\">\n <p>\n Tick this box if there is more than one facility\n that falls within this category and you do not wish\n to list them separately e.g. classrooms. If in doubt,\n please contact us for assistance.\n </p>\n </Popover>\n);\n\nexport default ({ groupMainFacility, setGroupMainFacility, errors }) => {\n const groupMainFacilityErrors = errors['group_main_facility'];\n\n return (\n <div className=\"form-group boolean optional facility_group_main_facility\">\n <div className=\"checkbox\">\n <input value=\"0\"\n autoComplete=\"off\"\n type=\"hidden\"\n name=\"facility[group_main_facility]\"/>\n <label className=\"boolean optional\" htmlFor=\"facility_group_main_facility\">\n <input className=\"boolean optional\"\n type=\"checkbox\"\n value=\"1\"\n onChange={(e) => setGroupMainFacility(e.target.checked)}\n checked={groupMainFacility}\n name=\"facility[group_main_facility]\"/>\n Multiple facilities\n \n <OverlayTrigger\n container={this}\n placement=\"right\"\n overlay={popoverLeft}\n >\n <div className=\"info-icon\" data-original-title=\"\" title=\"\"/>\n </OverlayTrigger>\n </label>\n\n {groupMainFacilityErrors &&\n <div className='has-error'>\n <span className=\"help-block\">\n {groupMainFacilityErrors.join(', ')}\n </span>\n </div>\n }\n </div>\n </div>\n )\n}\n","import React, { useEffect, useState, useRef } from 'react';\nimport { Button, Modal } from 'react-bootstrap';\nimport MultipleFields from './MultipleFields';\nimport SingleFields from './SingleFields';\nimport axios from \"axios\";\nimport Switcher from \"./Switcher\";\n\nexport default ({ facilityId, show, setShow, fetchMultiSwitcher }) => {\n const [groupMainFacility, setGroupMainFacility] = useState(null);\n const [childFacilities, setChildFacilities] = useState(null);\n const [deleteRequestEnabled, setDeleteRequestEnabled] = useState(null);\n const [loading, setLoading] = useState(true);\n const [errors, setErrors] = useState({});\n const formEl = useRef();\n\n useEffect(() => {\n if (show) {\n axios\n .get(`/admin/facilities/${facilityId}/multi_switcher.json`)\n .then(resp => {\n let childFacilities = resp.data.childFacilities;\n\n setGroupMainFacility(resp.data.groupMainFacility)\n setDeleteRequestEnabled(resp.data.deleteRequestEnabled)\n setLoading(false);\n\n if (childFacilities.length === 0) {\n childFacilities = childFacilities.concat({ id: '', internalReference: \"\" });\n childFacilities = childFacilities.concat({ id: '', internalReference: \"\" });\n }\n\n setChildFacilities(childFacilities);\n });\n } else {\n setLoading(true);\n setErrors({});\n setChildFacilities([]);\n setGroupMainFacility(null)\n }\n }, [show])\n\n useEffect(() => {\n setErrors({})\n }, [groupMainFacility])\n\n const handleAdd = (n) => {\n let newChildFacilities = [...childFacilities];\n\n for (let i = 0; i < n; i++) {\n newChildFacilities = newChildFacilities.concat({ id: '', internalReference: \"\" });\n }\n\n setChildFacilities(newChildFacilities);\n }\n\n const sendDeleteRequest = (index) => {\n const newChildFacilities = [...childFacilities];\n const id = newChildFacilities[index].id;\n newChildFacilities[index]['deleteRequestDisabled'] = true;\n setChildFacilities(newChildFacilities);\n\n axios.post(`/admin/facilities/${facilityId}/sub_facilities/${id}/delete_request`).then(() => {\n newChildFacilities[index]['deleteRequestDisabled'] = false;\n newChildFacilities[index][childFacilities[index].deleteRequestEnabled ? 'deleteRequest' : '_destroy'] = true;\n setChildFacilities([...newChildFacilities]);\n })\n }\n\n const undoDeleteRequest = (index) => {\n const newChildFacilities = [...childFacilities];\n\n newChildFacilities[index]['deleteRequestDisabled'] = true;\n setChildFacilities(newChildFacilities);\n\n const id = newChildFacilities[index].id;\n\n axios.delete(`/admin/facilities/${facilityId}/sub_facilities/${id}/delete_request`).then(() => {\n newChildFacilities[index]['deleteRequestDisabled'] = false;\n newChildFacilities[index][childFacilities[index].deleteRequestEnabled ? 'deleteRequest' : '_destroy'] = false;\n setChildFacilities([...newChildFacilities]);\n })\n }\n\n const handleDelete = (index) => {\n let newChildFacilities = [...childFacilities];\n\n if (childFacilities[index].id === '') {\n newChildFacilities = newChildFacilities.filter((_, i) => i !== index);\n setChildFacilities(newChildFacilities);\n } else {\n if (childFacilities[index].deleteRequestEnabled) {\n sendDeleteRequest(index);\n } else {\n newChildFacilities[index][childFacilities[index].deleteRequestEnabled ? 'deleteRequest' : '_destroy'] = true;\n setChildFacilities(newChildFacilities);\n }\n }\n }\n\n const handleRevert = (index) => {\n const newChildFacilities = [...childFacilities];\n\n if (childFacilities[index].deleteRequestEnabled) {\n undoDeleteRequest(index);\n } else {\n newChildFacilities[index][childFacilities[index].deleteRequestEnabled ? 'deleteRequest' : '_destroy'] = false;\n setChildFacilities(newChildFacilities);\n }\n }\n\n const handleSubmit = (e) => {\n e.preventDefault()\n\n const button = e.currentTarget;\n button.disabled = true;\n\n const data = new FormData(formEl.current);\n\n axios\n .post(`/admin/facilities/${facilityId}/multi_switcher`, data)\n .then(() => {\n setShow(false)\n setChildFacilities(null);\n fetchMultiSwitcher();\n })\n .catch((error) => {\n button.disabled = false;\n if (error.response.status === 422) setErrors(error.response.data.errors);\n });\n }\n\n return (\n <Modal show={show} onHide={() => setShow(false)} className='child-facilities-modal'>\n <form onSubmit={handleSubmit} ref={formEl}>\n <Modal.Header closeButton>\n <Modal.Title>Manage</Modal.Title>\n </Modal.Header>\n <Modal.Body>\n {!loading &&\n <>\n {!deleteRequestEnabled &&\n <Switcher\n groupMainFacility={groupMainFacility}\n setGroupMainFacility={setGroupMainFacility}\n errors={errors}\n />\n }\n\n {groupMainFacility &&\n <MultipleFields\n childFacilities={childFacilities}\n addChildFacility={handleAdd}\n deleteChildFacility={handleDelete}\n revertChildFacility={handleRevert}\n errors={errors}\n />\n }\n\n {!groupMainFacility && <SingleFields errors={errors}/>}\n </>\n }\n </Modal.Body>\n {!loading &&\n <Modal.Footer>\n <Button onClick={() => setShow(false)}>Cancel</Button>\n <Button className='btn btn-primary' onClick={handleSubmit}>Confirm</Button>\n </Modal.Footer>\n }\n </form>\n </Modal>\n )\n}","import React, { useState, useEffect, useCallback } from \"react\";\nimport Modal from './Modal';\nimport axios from \"axios\";\n\nimport './styles.scss';\n\nexport default ({ facilityId }) => {\n const [loading, setLoading] = useState(true);\n const [showModal, setShowModal] = useState(false);\n const [childFacilities, setChildFacilities] = useState([]);\n const [deleteRequestEnabled, setDeleteRequestEnabled] = useState(false);\n\n const handleClick = (e) => {\n e.preventDefault();\n setShowModal(true)\n }\n\n useEffect(() => {\n if (showModal === false) fetchMultiSwitcher();\n }, [showModal])\n\n const fetchMultiSwitcher = useCallback(() => {\n axios\n .get(`/admin/facilities/${facilityId}/multi_switcher.json`)\n .then(resp => {\n let { childFacilities, deleteRequestEnabled } = resp.data;\n setChildFacilities(childFacilities);\n setDeleteRequestEnabled(deleteRequestEnabled);\n setLoading(false);\n });\n }, [])\n\n useEffect(() => { fetchMultiSwitcher() }, []);\n\n const systemAdmin = !deleteRequestEnabled;\n const hasChildFacilities = childFacilities.length > 0;\n\n return (\n <>\n <Modal\n facilityId={facilityId}\n show={showModal}\n setShow={setShowModal}\n fetchMultiSwitcher={fetchMultiSwitcher}\n />\n\n {!loading &&\n <div>\n {(systemAdmin || (!systemAdmin && hasChildFacilities)) &&\n <>\n <dt>Related names</dt>\n\n <dd>\n <button className='btn btn-xs btn-default' onClick={handleClick}>Manage multiple facilities</button>\n </dd>\n </>\n }\n\n {childFacilities.map((childFacility, index) => <>\n <dt>Name {index + 1}:</dt>\n <dd>\n {childFacility.internalReference} (ID: #{childFacility.id})\n \n {childFacility.deleteRequest && <span className=\"label label-warning\">Delete request</span>}\n </dd>\n </>)}\n </div>\n }\n </>\n )\n}","import ReactDOM from \"react-dom\";\nimport React from \"react\";\nimport PanelButton from './MultiConverter/PanelButton';\n\nwindow.adminFacilityConverter = function() {\n const el = document.getElementById('facility_converter_component');\n if (el) {\n ReactDOM.render(<PanelButton facilityId={el.dataset.facilityId}/>, el);\n } else {\n console.error('I do not see a #facility_converter_component')\n }\n}\n","import SmartyForm from \"../../helpers/smarty_form\";\nimport { processingModal } from \"../../helpers/processing_modal\";\n\n(function() {\n $(document).on('click', 'form#new_document [type=submit]', function(e) {\n e.preventDefault();\n if (missingFacilities()) return false;\n if (missingVenues()) return false;\n\n sendForm($(this), 'POST');\n });\n\n $(document).on('click', '.edit_document [type=submit]', function(e) {\n e.preventDefault();\n if (missingFacilities()) return false;\n if (missingVenues()) return false;\n\n sendForm($(this), 'PUT');\n });\n\n function missingFacilities() {\n if ($(\"#document_all_facilities_0:checked\").length > 0) {\n if ($(\"#document_facilities input\").length > 0) {\n if ($(\"#document_facilities input:checked\").length == 0) {\n alert(\"At least 1 facility must be selected\");\n return true;\n }\n }\n }\n\n return false\n }\n\n function missingVenues() {\n if ($(\"#document_venues input\").length > 0) {\n if ($(\"#document_venues input:checked\").length == 0) {\n alert(\"At least 1 venue must be selected\");\n return true;\n }\n }\n\n return false\n }\n\n function sendForm(element, method) {\n const $form = element.closest('form');\n const url = $form.attr('action');\n const formData = new FormData($($form)[0]);\n const confirm_button = $(\".btn-primary\", $form);\n\n confirm_button.prop('disabled', true);\n processingModal.show();\n\n const smartyForm = new SmartyForm();\n\n $.ajax({\n type: method,\n url: url,\n data: formData,\n dataType: 'json',\n cache : false,\n processData: false,\n contentType: false,\n success: () => {\n processingModal.hide();\n confirm_button.prop('disabled', false);\n $('#modal_form').modal('hide');\n reloadDocuments();\n },\n error: (response) => {\n processingModal.hide();\n confirm_button.prop('disabled', false);\n smartyForm.removeErrors($form);\n smartyForm.addErrors($form, 'document', (response.responseJSON || {}).errors);\n }\n });\n }\n\n window.initSortableDocuments = function() {\n $('.sortable-documents').sortable({\n items: \"> tr.allow-sort\",\n stop: function(e, u) {\n collectDocumentOrders();\n }\n });\n }\n\n initSortableDocuments();\n\n function collectDocumentOrders() {\n const document_records = $('.sortable-documents .ui-sortable-handle');\n const ids = $.map(document_records, (record, _) => $(record).data('id'));\n\n $.ajax({\n method: 'PUT',\n url: '/admin/documents/reorder',\n data: { ids: ids },\n success: function(result) {\n $('.success').fadeIn('slow');\n $('.success').fadeOut('slow');\n },\n fail: function(result) {\n $('.error').fadeIn('slow');\n $('.error').fadeOut('slow');\n }\n });\n }\n\n function reloadDocuments() {\n const a = $('.area_nav li.active a');\n const areaNav = a.closest('.area_nav');\n const href = a.attr('href');\n const name = href.replace('#tab-','');\n const tabUrl = `${areaNav.data('url')}/tabs/${name}`;\n\n $.get(tabUrl, function(data) {\n $(`#tab-${name}`).html(data);\n initSortableDocuments();\n });\n }\n\n $(document).ready(function() {\n $('.area_nav').on('selected_tab_documents', function() {\n initSortableDocuments();\n });\n })\n}).call(this);","window.adminDocumentsForm = () => {\n const toggleFacilities = () => {\n const val = $('input[name=\"document[all_facilities]\"]:checked').val();\n $('.facilities-for-documents').toggle(val === '0');\n }\n\n $('input[name=\"document[all_facilities]\"]').on('change', toggleFacilities);\n\n toggleFacilities();\n}\n","import './style.scss';\n\nconst FacilityActivities = (function () {\n function bindElements(autoSubmit) {\n const autoSend = autoSubmit || false\n\n $.each($('input[class=related_category]'), function () {\n $(this).siblings('.related_category_block').toggle($(this).prop('checked'))\n });\n\n $('input[class=related_category]').on('click', function () {\n $(this).siblings('.related_category_block').toggle($(this).prop('checked'))\n if (autoSend) sendData();\n });\n\n $('.facility-feature input[type=checkbox]').on('click', function () {\n var checkboxValue = $(this).val();\n var checked = $(this).prop('checked');\n\n $.each($('.facility-feature input[type=checkbox]'), function () {\n if ($(this).val() === checkboxValue) $(this).prop('checked', checked);\n });\n\n if (autoSend) sendData();\n });\n }\n\n function sendData() {\n $.ajax({\n type: 'PUT',\n url: $('#edit_features').attr('action'),\n data: $('#edit_features').serialize()\n }).done(function(data) {\n $(\"a[href='#tab-activities']\").toggleClass('exclamation-warn-icon', !data.hasFeature)\n }).fail(function() {\n reloadTab();\n Helper.flash_message('error', 'Something went wrong')\n });\n }\n\n function reloadTab() {\n $(\"#tab-activities\").html('');\n\n $.get(window.location.href + '/tabs/activities', function( data ) {\n $(\"#tab-activities\").html(data);\n FacilityActivities.bindElements(true)\n });\n }\n\n return {\n bindElements: function (autoSubmit) {\n return bindElements(autoSubmit)\n },\n reloadTab: function () {\n return reloadTab()\n },\n };\n})();\n\n$(document).ready(function() {\n const items = $('.area_nav li');\n items.on('shown.bs.tab', function(e) { loadTab(e, { showSpinner: true })});\n items.on('shown.bs.tab-reload', function(e) { loadTab(e, { showSpinner: false })});\n\n function loadTab(e, options = { showSpinner: true }) {\n const a = $(e.target);\n const areaNav = a.closest('.area_nav');\n const href = a.attr('href');\n const name = href.replace('#tab-','');\n const tabUrl = `${areaNav.data('url')}/tabs/${name}`;\n\n if (options.showSpinner) {\n $('.area-tab-content .tab-pane').empty();\n $(`#tab-${name}`).append('');\n }\n\n $.get(tabUrl, function(data) {\n $(`#tab-${name}`).html(data);\n areaNav.trigger(`selected_tab_${name}`)\n });\n }\n\n $('.area_nav li.active a').trigger('shown.bs.tab');\n\n $('.area_nav').on('selected_tab_activities', function() {\n FacilityActivities.reloadTab();\n });\n});\n\n","import axios from 'axios';\n\n$(document).on('click', '#resend_payment_failed_email', (e) => {\n e.preventDefault()\n\n const button = $(e.target);\n button.prop('disabled', true);\n\n axios\n .patch(button.data('url'))\n .then(response => {\n Helper.flash_message('success', response.data.message)\n button.prop('disabled', false)\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error);\n button.prop('disabled', false)\n });\n});\n\n\n","import axios from 'axios';\n\n$(document).on('click', '#overdue_payment_reminder_email', (e) => {\n e.preventDefault();\n\n const button = $(e.target);\n button.prop('disabled', true);\n\n axios\n .patch(button.data('url'))\n .then(response => {\n Helper.flash_message('success', response.data.message);\n button.prop('disabled', false);\n })\n .catch((error) => {\n Helper.flash_message('error', 'Something went wrong');\n button.prop('disabled', false);\n });\n});\n","import axios from 'axios';\n\nconst openCustomMessagesPreviewModal = (target) => {\n const template = target.data('template');\n const form = $('#new_booking_custom_message');\n const params = form.serializeObject();\n\n axios\n .get(`/admin/booking_custom_message/${template}/preview`, { params: params })\n .then(response => {\n const modal = $('#admin_conversations_preview');\n modal.find('.modal-content').empty().append(response.data)\n modal.modal('show')\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error)\n });\n}\n\n$(document).on('click', '#preview-modal-close', function(e) {\n $('#admin_conversations_preview').modal('hide');\n});\n\nconst openCustomMessagesModal = (e) => {\n const submenuElement = document.querySelector('.maintabs_submenu');\n const venueId = submenuElement.dataset.venue_id;\n const conversationPurpose = $('header[data-controller=\"messages_counter\"]').attr('data-conversation-purpose');\n\n axios\n .get('/admin/booking_custom_message', { params: {\n venue_id: venueId,\n custom_message_type: e.find('#custom_message_type').val(),\n conversation_purpose: conversationPurpose\n }})\n .then(response => {\n sessionStorage.removeItem('custom_messages_data')\n\n const modal = $('#admin_conversations_modal');\n modal.find('.modal-content').empty().append(response.data)\n\n modal.find(\"label[for='booking_custom_message_body']\").text(e.find('#custom_message_label').val())\n modal.find('#custom_message_title').text(e.find('#custom_message_title').val())\n modal.find('#booking_custom_message_custom_message_type').val(e.find('#custom_message_type').val())\n modal.modal('show')\n\n const venueEl = $('#booking_custom_message_venue_id')\n venueEl.val(venueId)\n venueEl.trigger('change')\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error)\n });\n}\n\nconst checkEnabledAll = () => {\n const storage = (JSON.parse(sessionStorage.getItem('custom_messages_data')) || {})\n const keys = Object.keys(storage)\n const values = Object.values(storage)\n const option_length = $('#booking_custom_message_venue_id option').length - 1\n const index = keys.indexOf('all-venues');\n if (index > -1) {\n values.splice(index, 1);\n }\n const enabled_values = values.map((o) => o.enabled)\n return (enabled_values.length == option_length && enabled_values.indexOf(false) == -1)\n}\n\nconst getCustomMessagesDataJson = () => {\n axios\n .get('/admin/booking_custom_message/edit.json', { params: {\n venue_id: $('#booking_custom_message_venue_id').val(),\n custom_message_type: $('#booking_custom_message_custom_message_type').val()\n }})\n .then(response => {\n const storage_data = (JSON.parse(sessionStorage.getItem('custom_messages_data')) || {})[$('#booking_custom_message_venue_id').val()]\n const body = storage_data ? storage_data['body'] : response.data.body || ''\n const enabled = storage_data ? storage_data['enabled'] : response.data.enabled\n \n $('#admin_conversations_modal').find('#booking_custom_message_body').val(body)\n $('#admin_conversations_modal').find('#booking_custom_message_enabled').prop('checked', enabled)\n document.querySelector(\".custom-message-time-range-container\").hidden = !enabled;\n\n const startTime = storage_data ? storage_data['start_time'] : response.data.start_time;\n const endTime = storage_data ? storage_data['end_time'] : response.data.end_time;\n\n if (startTime && endTime) {\n const locale = 'en-GB'\n const localeOptions = {\n weekday: 'short',\n day: 'numeric',\n month: 'short',\n year: 'numeric',\n timeZone: 'Europe/London'\n }\n\n const startDate = new Date(startTime).toLocaleDateString(locale, localeOptions);\n const endDate = new Date(endTime).toLocaleDateString(locale, localeOptions);\n const startHour = new Date(startTime).toLocaleTimeString(locale, { timeZone: 'Europe/London' }).slice(0, 5)\n const endHour = new Date(endTime).toLocaleTimeString(locale, { timeZone: 'Europe/London' }).slice(0, 5)\n\n const modal = $('#admin_conversations_modal');\n modal.find('#booking_custom_message_start_date').datepicker('setDate', startDate)\n modal.find('#booking_custom_message_end_date').datepicker('setDate', endDate)\n modal.find('#booking_custom_message_start_hour').val(startHour)\n modal.find('#booking_custom_message_end_hour').val(endHour)\n modal.find('#booking_custom_message_schedule_toggle').prop('checked', enabled)\n\n const inputsContainer = document.querySelector(\".time-range-inputs\");\n const timeRangeCheckBox = document.querySelector(\"#booking_custom_message_schedule_toggle\");\n inputsContainer.hidden = false;\n timeRangeCheckBox.checked = true;\n }\n\n if ($('#booking_custom_message_venue_id').val() == ('all-venues') && enabled == false) {\n $('#admin_conversations_modal').find('#booking_custom_message_enabled').prop('checked', checkEnabledAll())\n }\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error)\n });\n}\n\nconst changeCustomMessagesData = () => {\n const value = JSON.parse(sessionStorage.getItem('custom_messages_data') || '{}')\n value[$('#booking_custom_message_venue_id').val()] = {\n custom_message_type: $('#booking_custom_message_custom_message_type').val(),\n enabled: $('#booking_custom_message_enabled').is(\":checked\"),\n body: $('#booking_custom_message_body').val(),\n start_date: $('#booking_custom_message_start_date').val(),\n end_date: $('#booking_custom_message_end_date').val(),\n start_hour: $('#booking_custom_message_start_hour').val(),\n end_hour: $('#booking_custom_message_end_hour').val(),\n schedule_enabled: $('#booking_custom_message_schedule_toggle').prop(\"checked\")\n }\n\n sessionStorage.setItem('custom_messages_data', JSON.stringify(value));\n}\n\nconst updateSubmenu = () => {\n const submenuElement = document.querySelector('.maintabs_submenu');\n\n if (submenuElement) {\n const venueId = submenuElement.dataset.venue_id;\n const conversationPurpose = $('header[data-controller=\"messages_counter\"]').attr('data-conversation-purpose');\n\n axios\n .get('/admin/booking_custom_message/submenu.json', {params: {venue_id: venueId, conversation_purpose: conversationPurpose}})\n .then(response => {\n $('.custom-message-user_order_request_created .toggle-btn input').prop('checked', response.data.user_order_request_created || false)\n $('.custom-message-user_order_accepted .toggle-btn input').prop('checked', response.data.user_order_accepted || false)\n $('.custom-message-user_order_completed .toggle-btn input').prop('checked', response.data.user_order_completed || false)\n $('.custom-message-message_auto_response .toggle-btn input').prop('checked', response.data.message_auto_response || false)\n $('.custom-message-user_online_membership_request_created .toggle-btn input').prop('checked', response.data.user_online_membership_request_created || false)\n $('.custom-message-user_online_membership_accepted .toggle-btn input').prop('checked', response.data.user_online_membership_accepted || false)\n $('.custom-message-user_online_membership_expires .toggle-btn input').prop('checked', response.data.user_online_membership_expires || false)\n $('.custom-message-online_membership_message_auto_response .toggle-btn input').prop('checked', response.data.online_membership_message_auto_response || false)\n\n $('#auto-signature .toggle-btn input').prop('checked', response.data.enabled_signature || false)\n })\n .catch((error) => {\n Helper.flash_message('error', error.response.data.error)\n });\n }\n}\n\nconst saveCustomMessagesData = () => {\n changeCustomMessagesData()\n\n const bookingCustomMessages = JSON.parse(sessionStorage.getItem('custom_messages_data') || {});\n\n Object.keys(bookingCustomMessages).forEach(key => {\n if (bookingCustomMessages[key].body) {\n bookingCustomMessages[key].body = bookingCustomMessages[key].body.replace(/\\n/g, '\\r\\n');\n }\n });\n\n axios\n .patch('/admin/booking_custom_message', { booking_custom_messages: bookingCustomMessages })\n .then(response => {\n sessionStorage.removeItem('custom_messages_data')\n $('#admin_conversations_modal').modal('hide')\n updateSubmenu()\n })\n .catch((error) => {\n if (error.response.data.error.body) {\n const errEl = document.querySelector(\"#body-error\");\n const bodyEl = document.querySelector(\"#booking_custom_message_body\");\n errEl.innerHTML = error.response.data.error.body.join(\"\\r\\n\");\n bodyEl.classList.add(\"input-error\");\n } else {\n Helper.flash_message('error', Object.values(error.response.data.error).flat().join(\"\\r\\n\"));\n }\n });\n}\n\n$(document).on('click', '.custom-message-user_order_request_created, ' +\n '.custom-message-user_order_accepted, ' +\n '.custom-message-user_order_completed, ' +\n '.custom-message-message_auto_response, ' +\n '.custom-message-message_auto_response, ' +\n '.custom-message-user_online_membership_request_created, ' +\n '.custom-message-user_online_membership_accepted, ' +\n '.custom-message-user_online_membership_expires, ' +\n '.custom-message-online_membership_message_auto_response ', function(e) {\n e.preventDefault()\n openCustomMessagesModal($(this))\n});\n\n$(document).on('click', '#preview_custom_message', function(e) {\n e.preventDefault();\n openCustomMessagesPreviewModal($(e.target));\n});\n\n\n$(document).on('change', '#booking_custom_message_venue_id', function(e) {\n e.preventDefault()\n getCustomMessagesDataJson()\n});\n\n$(document).on('change', '#booking_custom_message_enabled, #booking_custom_message_body, #booking_custom_message_start_date, #booking_custom_message_end_date, #booking_custom_message_start_hour, #booking_custom_message_end_hour, #booking_custom_message_schedule_toggle', function(e) {\n e.preventDefault()\n changeCustomMessagesData()\n});\n\n$(document).on('click', '#save_custom_message', function(e) {\n e.preventDefault()\n saveCustomMessagesData()\n});\n\n$(document).on('click', 'li.inbox_conversation_item', function(e) {\n e.preventDefault()\n const venueId = $(this).find('a').attr('data-venue');\n window.setVenueId(venueId);\n});\n\nconst venueId = $('li.inbox_conversation_item.selected').find('a').attr('data-venue')\n\n$(document).on('change', '#booking_custom_message_enabled', (event) => {\n document.querySelector(\".custom-message-time-range-container\").hidden = !event.target.checked;\n});\n\n\ndocument.querySelector('.maintabs_submenu')\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const submenuElement = document.querySelector('.maintabs_submenu');\n submenuElement.addEventListener('venue_id_changed', (data) => {\n submenuElement.dataset.venue_id = data.detail.venueId;\n updateSubmenu();\n })\n});\n\nwindow.setVenueId = (venueId) => {\n const submenuElement = document.querySelector('.maintabs_submenu');\n\n if (submenuElement) {\n const dataChangeEvent = new CustomEvent('venue_id_changed', {\n detail: { venueId: venueId }\n });\n\n submenuElement.dispatchEvent(dataChangeEvent);\n }\n}","import axios from 'axios';\n\nwindow.OfflineSchedulesClass = function() {\n function show(url) {\n const modal = $('#modal_offline_payment')\n\n axios.get(url).then((response) => {\n modal.find('.modal-content').html(response.data);\n modal.modal('show');\n\n $('#inline-datepicker').datepicker({ weekStart: 1, format: 'dd/mm/yyyy' });\n\n modal.find('input[type=\"submit\"]').on('click', (e) => {\n e.preventDefault()\n\n const form = modal.find('form');\n const date = $('#inline-datepicker').datepicker('getFormattedDate');\n const value = $('#no_due_date_checkbox').is(':checked') ? null : date;\n\n $('#offline_schedule_due_date').val(value);\n\n $.ajax({\n type: \"PUT\",\n url: form.attr('action'),\n async: false,\n data: form.serialize(),\n success: () => {\n $('body').removeClass('modal-open')\n $('#modal_offline_payment').modal('hide')\n window.loadOrderTab($(\"a[data-target='#payments_info']\"), true, true)\n window.reloadOrderHeader();\n },\n error: () => Helper.flash_message('error', 'Something went wrong')\n });\n });\n })\n }\n\n return { show: show }\n}\n\nwindow.OfflineSchedules = OfflineSchedulesClass();\n","window.adminInternalNotes = function() {\n $('.create_notes_action').on('click', function(e) {\n e.preventDefault();\n make('create_notes');\n });\n\n $('.append_notes_action').on('click', function(e) {\n e.preventDefault();\n make('append_notes');\n });\n\n $('.delete_notes_action').on('click', function(e) {\n e.preventDefault();\n make('delete_notes');\n });\n\n $('.bookings-checkboxes').on('change', function(e) {\n e.preventDefault();\n toggleNotesButtons();\n });\n\n function toggleNotesButtons() {\n const disabled = $(\"#internal_notes input:checkbox:checked\").length === 0;\n $('.notes-buttons').prop('disabled', disabled)\n }\n\n function make(actionType) {\n $('#action_type').val(actionType);\n $('#action_type').closest('form').submit();\n }\n\n $('.internal-note-form').on('ajax:success', function(_, data) {\n $('#internal_notes').html(data);\n });\n\n $('.select-all-bookings').on('click', function() {\n $('.bookings-checkboxes').prop('checked', $('.select-all-bookings')[0].checked);\n toggleNotesButtons();\n });\n}\n\n","window.adminOfflinePaymentsForm = () => {\n $('.datepicker').datepicker({ format: 'D, dd M yyyy', autoclose: true })\n}\n","window.adminVenuesFuturePrices = () => {\n const datepickerElement = $('input.datepicker');\n\n const valueBookingOptionsMap = {\n '0': $('input[data-custom-booking-option=\"true\"]').toArray(),\n '1': $('input[data-custom-booking-option=\"false\"]').toArray()\n };\n const allBookingOptions = valueBookingOptionsMap['0'].concat(valueBookingOptionsMap['1']);\n \n const initForm = () => {\n const formUtils = new FormUtils();\n const formData = formUtils.getFromLocalStorage('new_venues_future_prices_form');\n\n if (formData != undefined && formData != null){\n\n allBookingOptions.forEach((input) => {\n const nameValue = `${input.name}=${input.value}`;\n if (formData.includes(nameValue)) {\n checkCheckBoxes([input], true); \n } else {\n checkCheckBoxes([input], false);\n }\n });\n } else {\n const allFacilities = $('input[name=\"venues_future_prices_form[all_facilities]\"]:checked').val();\n\n if (allFacilities == '1') {\n checkCheckBoxes(allBookingOptions, true);\n } else {\n checkCheckBoxes(allBookingOptions, false);\n }\n };\n\n formUtils.clearLocalStorage('new_venues_future_prices_form');\n };\n\n const toggleSpecificFacilitiesSelector = () => {\n const val = $('input[name=\"venues_future_prices_form[all_facilities]\"]:checked').val();\n $('.custom_facilities_container').toggle(val == '0');\n\n return val;\n };\n\n const allOrCustomBookingOptions = () => {\n const val = toggleSpecificFacilitiesSelector();\n uncheckSpecificBookingOptions();\n\n if (val == '1') {\n checkCheckBoxes(allBookingOptions, true);\n } else {\n checkCheckBoxes(allBookingOptions, false);\n }\n };\n\n const checkSpecificFacilitiesBookingOptions = () => {\n const checkboxes = $('input[name=\"venues_future_prices_form[custom_facilities][]\"]:checked');\n const checkboxesValues = checkboxes.toArray().map((checkbox) => checkbox.value);\n\n if (checkboxesValues.length == 2) {\n checkCheckBoxes(allBookingOptions, true)\n } else if (checkboxesValues.length == 1) {\n const selectedBookingOptions = valueBookingOptionsMap[checkboxesValues[0]];\n checkCheckBoxes(allBookingOptions, false)\n checkCheckBoxes(selectedBookingOptions, true)\n } else {\n checkCheckBoxes(allBookingOptions, false)\n }\n }\n\n const checkCheckBoxes = (bookingOptions, value) => {\n bookingOptions.forEach((input) => {\n const facilityId = input.dataset.bookingOptionFacilityId\n const bookingOptionList = $(\"#facility_booking_options_list_\" + facilityId);\n const facilityInput = document.querySelector(`input[data-facility-id=\"${facilityId}\"]`)\n input.checked = value;\n const checkedInputsCount = bookingOptionList[0].querySelectorAll('input:checked').length;\n\n bookingOptionList[0].hidden = checkedInputsCount == 0;\n facilityInput.checked = checkedInputsCount > 0;\n })\n }\n\n const setupDatepicker = () => {\n datepickerElement.datepicker({\n format: 'D, dd M yyyy',\n autoclose: true,\n startDate: '+1d',\n weekStart: 1\n });\n }\n\n const toggleFacilityBookingOptions = (event) => {\n const checkValue = JSON.parse(event.target.checked);\n const facilityId = event.target.dataset['facilityId'];\n const bookingOptionListSelector = \"#facility_booking_options_list_\" + facilityId;\n const bookingOptionList = $(bookingOptionListSelector);\n const bookingOptions = $(bookingOptionListSelector + \" \" + 'input');\n bookingOptions.each((_, v) => { v.checked = checkValue })\n bookingOptionList.toggle(checkValue);\n\n const facilitiesUnselected = Array.from($('input[name=\"venues_future_prices_form[all_facilities]\"]:checked')).length == 0;\n\n if (facilitiesUnselected) {\n const facilitiesInput = $('#venues_future_prices_form_all_facilities_0');\n facilitiesInput[0].checked = true;\n $('.custom_facilities_container').toggle(true);\n }\n }\n\n const uncheckSpecificBookingOptions = () => {\n const checkBoxes = Array.from($('input[name=\"venues_future_prices_form[custom_facilities][]\"]:checked'));\n checkBoxes.forEach((checkbox) => checkbox.checked = false);\n };\n\n const bookingOptionHandler = (event) => {\n const facilityId = event.target.dataset.bookingOptionFacilityId;\n const parentFacilityCheckbox = document.querySelector(`#venues_future_prices_form_facility_ids_${facilityId}`);\n const childBookingOptions = document.querySelectorAll(`input[data-booking-option-facility-id=\"${facilityId}\"]`);\n const checkedChildBookingOptionsCount = Array.from(childBookingOptions).filter((bo) => bo.checked);\n parentFacilityCheckbox.checked = checkedChildBookingOptionsCount != 0\n };\n\n $('input[name=\"venues_future_prices_form[all_facilities]\"]').on('click', allOrCustomBookingOptions);\n $('input[name=\"venues_future_prices_form[custom_facilities][]\"]').on('click', checkSpecificFacilitiesBookingOptions);\n $('.facilities-for-venue input[name=\"venues_future_prices_form[facility_ids][]\"]').on('click', toggleFacilityBookingOptions)\n $('input[name=\"venues_future_prices_form[booking_option_ids][]\"]').on('click', bookingOptionHandler);\n\n initForm();\n toggleSpecificFacilitiesSelector();\n setupDatepicker();\n}\n","class Facility {\n constructor() { }\n\n start() {\n if ($('.admin_facilities_show').length > 0) {\n $('.facility_venue_vat input').change(() => {\n $('#vat_form').slideToggle(500);\n });\n }\n\n this.onFacilityCategoryChange();\n this.onClassRoomsCountChange();\n this.onGroupMainFacilityChange();\n\n if ($('.admin_facilities_show').length > 0) {\n $('input.datepicker').datepicker('setDate', new Date());\n }\n }\n\n onFacilityCategoryChange() {\n $(document).on('change', '#facility_facility_category_id', (event) => {\n const $target = $(event.currentTarget);\n\n $.ajax({\n url: $target.data('url'),\n data: {\n facility_category_id: $target.val(),\n facility_id: $target.data('facility-id')\n }\n });\n });\n }\n\n onClassRoomsCountChange() {\n $(document).on('change', '#facility_group_main_facility', (event) => {\n const $target = $(event.currentTarget);\n\n // NOTE: We can probably simplify this with:\n //\n // $('#facility_group_main_facility').val(~~$target.is(':checked'));\n // return loadItems();\n //\n $('#facility_group_main_facility').val($target.is(':checked'));\n\n if ($('#facility_bulk_replace').val() !== '1') {\n $('#facility_bulk_replace').val(1);\n } else {\n $('#facility_bulk_replace').val('');\n }\n\n this.loadItems();\n });\n }\n\n onGroupMainFacilityChange() {\n $(document).on('change', '#facility_classrooms_count', () => {\n this.loadItems();\n });\n }\n\n loadItems() {\n const groupMainFacility = $('#facility_group_main_facility').val();\n let classRoomsCount = $('#facility_classrooms_count').val();\n\n if (groupMainFacility && classRoomsCount === void 0) {\n classRoomsCount = 2;\n }\n\n $.ajax({\n url: $('#facility_group_main_facility').data('url'),\n data: {\n group_main_facilities: groupMainFacility,\n classrooms_count: classRoomsCount,\n bulk_replase: $('#facility_bulk_replace').val()\n }\n });\n }\n}\n\nexport default Facility;\n","class HelpCentreDocument {\n constructor() { }\n\n start() {\n this.onChange();\n }\n\n onChange() {\n $('.helpcenter-document-partner-selector').on('change', (event) => {\n const $target = $(event.currentTarget);\n\n // TODO: Ensure @reloadUrl is a valid relative path so we can use the URL() API instead.\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/URL\n //\n const partner_id = $target.val();\n const url = $target.data('reloadUrl');\n\n window.location = `${ url }?partner_profile_id=${ partner_id }`;\n });\n }\n}\n\nexport default HelpCentreDocument;\n","class InfoPage {\n constructor() { }\n\n start() {\n if ($('body.admin.admin_settings_info_pages_index').length < 1) {\n return;\n }\n\n $('.action_block .publish').click((event) => this.publishClick(event));\n }\n\n publishClick(event) {\n const $publishForm = $('#publish_info_page_form');\n const $target = $(event.currentTarget);\n\n if ($publishForm.length < 1) {\n return;\n }\n\n const data = {};\n data.publish_type = $target.attr('id');\n data.id = $target.val();\n data.checked = $target.prop('checked');\n\n $.ajax({\n type: 'POST',\n url: $publishForm.attr('action'),\n data: data,\n dataType: 'json',\n\n success: (data) => {\n $target.attr('checked', data.checked);\n },\n\n error: () => { }\n });\n }\n}\n\nexport default InfoPage;\n","class Schedule {\n constructor() { }\n\n start() {\n const selectedClass = 'selected';\n const [onPeakEnabled, offPeakEnabled] = ['.on_peak_enabled', '.off_peak_enabled'];\n const [onPeakSelect, offPeakSelect] = ['.on_peak_select', '.off_peak_select'];\n\n $(document).on('click', offPeakEnabled, (event) => {\n const target = $(event.target);\n $(event.target).closest('form').submit();\n target.parents('tr').find(offPeakSelect).prop('disabled', !target.is(':checked'));\n });\n\n $(document).on('click', onPeakEnabled, (event) => {\n const $target = $(event.target);\n const enabled = $target.is(':checked');\n const $row = $target.parents('tr');\n\n $(event.target).closest('form').submit();\n\n $row.find(offPeakEnabled).prop('disabled', !enabled);\n\n if (enabled) {\n $row.addClass(selectedClass);\n $row.find(onPeakSelect).prop('disabled', false);\n\n if ($row.find(onPeakEnabled).first().prop('checked')) {\n $row.find(offPeakSelect).prop('disabled', !enabled);\n }\n } else {\n $row.removeClass('selected');\n $row.find(offPeakSelect).prop('disabled', true);\n $row.find(onPeakSelect).prop('disabled', true);\n }\n });\n }\n}\n\nexport default Schedule;\n","class Vats {\n constructor() {\n this.hideClass = 'hide';\n }\n\n start() {\n this.onClick();\n this.onChange();\n this.onFocusOut();\n }\n\n onClick() {\n $(document).on('click', '.vat_checkbox', () => {\n $('.vat-field').toggleClass(this.hideClass);\n $('.vat_registered').attr('required', $('.vat-field').hasClass(this.hideClass));\n });\n }\n\n onChange() {\n $(document).on('change', '.facility_venue_vat input[type=radio]', () => {\n const venueVatRegistration = $('input[name=\"facility[venue_vat]\"]:checked').val();\n const isVenueVatRegistered = (venueVatRegistration === 'true');\n\n $('#facility_vat_registered').prop('disabled', isVenueVatRegistered);\n $('#facility_vat').prop('disabled', isVenueVatRegistered);\n });\n }\n\n onFocusOut() {\n $(document).on('focusout', '#area_vat', (event) => {\n const $target = $(event.currentTarget);\n const $form = $target.closest('form');\n\n $.ajax({\n url: $form.attr('action'),\n data: $form.serialize(),\n type: 'POST',\n\n success: () => {\n Helper.flash_message('success', 'Successfully updated');\n }\n });\n });\n }\n}\n\nexport default Vats;\n","class Venue {\n constructor() {\n this.$modalElement = $('#standalone-message-modal');\n }\n\n start() {\n $(document).on('click', '#standalone-message-btn, #standalone-message-button', (event) => {\n this.$modalElement.modal('show');\n $('form', this.$modalElement).data('serialized', $('form', this.$modalElement).serialize());\n event.preventDefault();\n event.stopPropagation();\n });\n\n if (this.$modalElement.length > 0) {\n this.$modalElement.on('show.bs.modal', () => {\n this.$modalElement.find('form')[0].reset();\n this.$modalElement.find('.settings-confirmation').remove();\n this.$modalElement.find('.modal-header, .modal-body, .modal-footer').show();\n\n $.ajax({\n method: 'GET',\n url: this.$modalElement.data('url'),\n dataType: 'json',\n\n success: (data) => {\n $('#standalone_message_enabled').prop('checked', ~~data.standalone_message_enabled);\n $('#venue_standalone_message').val(data.standalone_message);\n }\n });\n });\n\n this.$modalElement.find('form')\n .on('ajax:success', (event, data) => {\n if (data.unchanged) {\n this.$modalElement.modal('hide');\n return;\n }\n\n $('#standalone-message-button input').prop('checked', data.status);\n\n if ($('#btn-save').data('reload') !== 'modal_confirmation') {\n this.$modalElement.modal('hide');\n\n Helper.flash_message('success', 'Successfully updated!');\n }\n })\n .on('ajax:error', () => {\n this.$modalElement.modal('hide');\n\n Helper.flash_message('error', 'Something went wrong!');\n });\n\n this.$modalElement.find('.btn-primary')\n .on('confirm', (event, data) => {\n let changed = $('form', this.$modalElement).serialize() != $('form', this.$modalElement).data('serialized')\n\n if (!changed) {\n this.$modalElement.modal('hide');\n }\n\n return changed;\n });\n }\n\n if ($('.admin_venues_show, .admin_facilities_show').length > 0) {\n $(document).on('click', '.disable-on-click', (event) => {\n $(event.currentTarget).prop('disabled', true);\n });\n }\n }\n}\n\nexport default Venue;\n","class ApplicationSettings {\n start() {\n if ($('.edit_application_setting').length > 0) {\n $('.datepicker').datepicker({ format: 'D, dd M yyyy', autoclose: true })\n }\n }\n}\n\nexport default ApplicationSettings;\n","class OfflinePayments {\n start() {\n if ($('.admin_offline_payments_edit, .admin_offline_payments_new, .admin_offline_payments_create').length > 0) {\n $('.datepicker').datepicker({\n format: 'D, dd M yyyy',\n autoclose: true\n })\n }\n }\n}\n\nexport default OfflinePayments;","import SmartyForm from '../../helpers/smarty_form';\nimport axios from \"axios\";\n\nclass Invitation {\n constructor() { }\n\n start() {\n $('#invite_user').on('click', (e) => {\n e.preventDefault();\n const modal = $('#invite_employee_modal');\n modal.modal('show');\n axios.get(e.target.getAttribute('href')).then(({ data }) => {\n modal.find('.modal-body').html(data);\n });\n });\n\n $(document).on('click', '#invite-subadmin-submit', (event) => {\n event.preventDefault();\n\n const button = event.target;\n const $this = $(event.currentTarget);\n const $form = $this.closest('form');\n const smartyForm = new SmartyForm();\n\n button.disabled = true;\n\n smartyForm.removeErrors($form);\n\n $.ajax({\n type: 'POST',\n url: $form.attr('action'),\n data: new FormData($form[0]),\n processData: false,\n contentType: false,\n\n success: () => {\n $('#invite_employee_modal').modal('hide');\n Neo.reloadTable('admin_users_table');\n button.disabled = false;\n },\n\n error: (response) => {\n button.disabled = false;\n smartyForm.addErrors($form, 'user', (response.responseJSON || {}).errors)\n }\n });\n });\n }\n}\n\nexport default Invitation;","import SmartyForm from '../../helpers/smarty_form';\nimport axios from 'axios';\n\nclass VenueAdminInvitation {\n constructor() { }\n\n start() {\n $(document).on('click', '#create-venue-admin', (e) => {\n e.preventDefault();\n\n const target = e.target;\n const url = target.getAttribute('href')\n\n axios.get(url, { headers: { \"Accept\": \"application/vnd.schoolhire.modal\"} } ).then(response => {\n const responseDiv = document.createElement('div');\n responseDiv.innerHTML = response.data;\n document.body.appendChild(responseDiv);\n\n const modal = responseDiv.querySelector('div.modal');\n const form = modal.querySelector('div.modal-body form');\n\n form.addEventListener('submit', (e) => {\n e.preventDefault();\n\n new SmartyForm().process({\n form: $(form),\n prefix: 'venue_admin',\n onSuccess: () => {\n $(modal).modal('hide');\n Neo.reloadTable('admin_users_table');\n },\n onError: () => {\n }\n });\n })\n\n $(modal).on('hidden.bs.modal', () => { document.body.removeChild(responseDiv) });\n $(modal).modal('show');\n })\n })\n }\n}\n\nexport default VenueAdminInvitation;","import './Customers/index';\nimport './special_dates/index';\nimport './schedules/form';\nimport './booking_options/sort';\nimport './extras/sort';\nimport './venues/settings';\nimport './venues/sort';\nimport './questions/Index';\nimport './settings/Index';\nimport './settings/logo_section/index';\nimport './app_features/form';\nimport './booking_closed_hours/booking_closed_hours';\nimport './orders/resend_message';\nimport './orders/user_to_action_reminder';\nimport './orders/order_message_rules';\nimport './orders/show_initiated_message_modal';\nimport './calendars/index';\nimport './Facilities/index';\nimport './documents/index';\nimport './documents/form';\nimport './areas/index';\nimport './orders/resend_failed_payment_email';\nimport './orders/overdue_payment_reminder_email';\nimport './conversations/custom_message';\nimport './OfflineSchedules/index';\nimport './InternalNotes/index';\nimport './OfflinePayments/form';\nimport './special_dates/form';\nimport './venues/future_prices_form';\n\nimport Facility from './migrated/facility';\nimport HelpCentreDocument from './migrated/help_centre_document';\nimport InfoPage from './migrated/info_page';\nimport Schedule from './migrated/schedule';\nimport Vats from './migrated/vats';\nimport Venue from './migrated/venue';\nimport ApplicationSettings from './ApplicationSettings/index';\nimport OfflinePayments from \"./OfflinePayments\";\nimport Invitation from './users/Invitation';\nimport VenueAdminInvitation from './VenueAdmins/Invitation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Facility().start();\n new HelpCentreDocument().start();\n new InfoPage().start();\n new Schedule().start();\n new Vats().start();\n new Venue().start();\n new ApplicationSettings().start();\n new OfflinePayments().start();\n new VenueAdminInvitation().start();\n new Invitation().start();\n});\n\n","import axios from \"axios\";\nimport NeoModal from \"src/NeoModal\";\nimport FileManager from './file_manager';\n\n$(document).on('click', 'a.open_file_manager_modal', (event) => {\n event.preventDefault();\n\n const button = $(event.target);\n const link = button.attr('href');\n\n if (button.parent('li').hasClass('disabled')) return;\n\n axios.get(link).then((response) => {\n const modal = NeoModal.add(response.data, { callback: () => {\n const fileManager = new FileManager();\n fileManager.init();\n }});\n })\n});\n","class Home {\n constructor() { }\n\n start() {\n $('#user_modal')\n .on('show.bs.modal', () => $('body').css('overflow', 'hidden'))\n .on('hidden.bs.modal', () => $('body').css('overflow', 'auto'));\n\n if ($(window).width() <= 800) {\n $('.footer-block').click((event) => {\n const $this = $(event.currentTarget);\n const element = $this.next('dd').children();\n\n element.toggle('slow');\n });\n }\n }\n}\n\nexport default Home;\n\nwindow.Helper = {\n flash_message(type, messages, title, duration) {\n if (title == null) { title = \"\" }\n if (!duration) { duration = 5000 }\n\n toastr.options = {\n \"closeButton\": false,\n \"debug\": false,\n \"progressBar\": false,\n \"positionClass\": \"toast-top-center\",\n \"onclick\": null,\n \"showDuration\": \"300\",\n \"hideDuration\": \"500\",\n \"timeOut\": duration,\n \"preventDuplicates\": true,\n \"showEasing\": \"swing\",\n \"hideEasing\": \"linear\",\n \"showMethod\": \"fadeIn\",\n \"hideMethod\": \"fadeOut\",\n 'body-output-type': 'trustedHtml'\n }\n\n const message = (Array.isArray(messages) ? messages.join(\"<br/>\") : messages);\n toastr[type](`<span>${ message }</span>`, title);\n\n message.replace(\"<br/>\", \"\\n\");\n }\n}\n","class Checkout {\n constructor() { }\n\n start() {\n $(\"input[name='business_information[different_invoice_details]']\").on('change', (event) => {\n const $this = $(event.currentTarget);\n\n if ($this.prop('checked')) {\n $this.attr('checked', 'checked');\n $(\"input[name='business_information[different_invoice_details]']:not(:checked)\").attr('checked', false);\n }\n\n return this.disableFormFields();\n });\n\n this.disableFormFields();\n }\n\n init() {\n if ($('.checkouts_terms_and_conditions_show').length > 0) {\n const checkbox = $('#terms_and_conditions_confirmed');\n const error = 'Please tick to confirm that you agree to the Terms and Conditions';\n\n this.showError(checkbox, error);\n\n checkbox.change(() => {\n this.showError(checkbox, error);\n });\n }\n }\n\n showError(input, error) {\n let message = '';\n\n if (!input.prop('checked')) {\n message = error;\n }\n\n return input[0].setCustomValidity(message);\n }\n\n disableFormFields() {\n const isRadioButtonOff = ($(\"input[name='business_information[different_invoice_details]']:checked\").val() === '0')\n\n $('.different_business_information').find('input, select').prop('disabled', isRadioButtonOff);\n $('.user_business_information').find('input, select').toggleClass('highlight', isRadioButtonOff);\n }\n}\n\nexport default Checkout;","class Facility {\n constructor() { }\n\n start() {\n if ($('body.facilities_show, body.facilities_standalone').length < 1) {\n return\n }\n\n if ($('input#is_new_message').val() === 'new') {\n $('a#new_message').click();\n }\n }\n}\n\nexport default Facility;","class Notice {\n constructor() { }\n\n start() {\n if ($('body.venues_show, body.venues_standalone, body.facilities_show, body.facilities_standalone').length < 1) {\n return\n }\n\n if ($('input#is_new_message').val() === 'new') {\n $('a#new_message').click();\n }\n\n if ($('#standalone-message-show-modal').length > 0) {\n this.showModal();\n }\n }\n\n showModal() {\n const $box = $('#standalone-message-show-modal');\n const venueID = $box.data('venue');\n const cookie = Cookies.get('standaloneMessage');\n\n if (cookie === void 0) {\n $box.modal('show');\n\n Cookies.set('standaloneMessage', [venueID]);\n } else {\n const venues = JSON.parse(cookie);\n\n if (venues.indexOf(venueID) === -1) {\n $box.modal('show');\n venues.push(venueID);\n\n Cookies.set('standaloneMessage', venues);\n }\n }\n }\n}\n\nexport default Notice;","class PaymentRequestCounters {\n constructor() { }\n\n start() {\n this.onUpdatePaymentRequest();\n }\n\n onUpdatePaymentRequest() {\n $(document).on('click', '#update_payment_request_counters', (event) => {\n event.preventDefault();\n\n const orderID = $(event.currentTarget).data('orderId');\n\n $.ajax({\n url: '/admin/orders/' + orderID + '/update_payment_request_counters',\n method: 'PUT',\n\n success: (data) => {\n Helper.flash_message('success', 'Updated');\n\n $('#pending_payment_requests_count').html(data.pending_payment_requests_count);\n $('#in_progress_payment_requests_count').html(data.in_progress_payment_requests_count);\n $('#successful_payment_requests_count').html(data.successful_payment_requests_count);\n $('#failed_payment_requests_count').html(data.failed_payment_requests_count);\n },\n\n error: () => {\n Helper.flash_message('error', \"The system can't recalculate\")\n }\n });\n });\n }\n}\n\nexport default PaymentRequestCounters;","import SmartyForm from '../helpers/smarty_form';\n\nclass Themes {\n constructor() {\n this.modalElement = $('#modal_theme');\n }\n\n start() {\n this.onNew();\n this.onUpload();\n }\n\n onNew() {\n $('#new_theme_button').on('click', () => this.modalElement.modal('show'));\n }\n\n onUpload() {\n $('#upload_theme').on('click', (event) => {\n const $this = $(event.currentTarget);\n const $form = $this.closest('.modal-content').find('form#new_theme');\n\n $.ajax({\n type: 'POST',\n url: $form.attr('action'),\n data: new FormData($form[0]),\n processData: false,\n contentType: false,\n\n success: () => { this.modalElement.modal('hide') },\n\n error: (response) => {\n new SmartyForm().addErrors($form, 'theme', (response.responseJSON || {}).errors);\n }\n });\n });\n }\n}\n\nexport default Themes;","class VenueAdminCastling {\n constructor() { }\n\n start() {\n $('#venue-admin-castling-button').on('click', () => {\n $('#venue-admin-castling-modal').modal('show');\n });\n\n $('#venue-admin-castling-submit').on('click', () => {\n const $form = $('#new_venue_admin_castling');\n\n $.ajax({\n type: 'POST',\n url: $form.attr('action'),\n data: new FormData($form[0]),\n processData: false,\n contentType: false,\n\n success: (response) => {\n window.location.href = response.redirect_to;\n },\n\n error: (error) => {\n const { errors } = error.responseJSON;\n\n if (errors.base) {\n Helper.flash_message('error', errors.base.join(', '));\n } else {\n Helper.flash_message('error', 'Something wrong happened');\n }\n }\n });\n });\n }\n}\n\nexport default VenueAdminCastling;","$(document).ready(function(){\n function checkWidth() {\n const windowsize = $(window).width();\n const namesize = $(\"#dLabel\").width()\n\n if (windowsize <= 1180 && windowsize >= 900 && namesize > 200) {\n $(\".user_avatar\").css(\"display\", \"none\");\n $(\".topmenu .user_name\").css(\"max-width\", \"180px\")\n }\n }\n checkWidth();\n\n $(window).resize(checkWidth);\n})","import '@fortawesome/fontawesome-free/scss/fontawesome.scss';\nimport '@fortawesome/fontawesome-free/scss/brands.scss';\nimport '@fortawesome/fontawesome-free/scss/regular.scss';\nimport '@fortawesome/fontawesome-free/scss/solid.scss';\nimport '@fortawesome/fontawesome-free/scss/v4-shims.scss';\n\nimport './utils/index';\nimport './main_section_height';\n\nimport './SendOrderToCustomer';\nimport './BookingItems/index';\nimport './users/index';\nimport './orders/bills';\nimport './BootstrapAlert';\nimport './orders/index';\nimport './order_notes/index';\nimport './actionMessage';\nimport './modifications';\nimport './send_modification_request_modal';\nimport './ExportButtons/styles.scss';\nimport './modals/index';\nimport './ResendInvitation';\nimport './MultiEditBookings';\nimport './Map/index';\nimport './admin/index';\nimport './pages/file_manager_button';\n\nimport './styles/notifications_table.scss';\nimport './styles/modal_venues.scss';\n\n\nimport Home from './pages/home';\nimport Checkout from './pages/checkout';\nimport Facility from './pages/facility';\nimport Notice from './pages/notice';\nimport PaymentRequestCounters from './pages/payment_request_counters';\nimport Search from './pages/search';\nimport Themes from './pages/themes';\nimport VenueAdminCastling from './admin/users/VenueAdminCastling';\n\n\nimport './pages/navbar';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Checkout().start();\n new Facility().start();\n new Home().start();\n new Notice().start();\n new PaymentRequestCounters().start();\n new Search().start();\n new Themes().start();\n new VenueAdminCastling().start();\n});\n","import * as Turbo from \"@hotwired/turbo\";\n\nimport \"lightslider/dist/js/lightslider.js\";\nimport \"lightslider/dist/css/lightslider.css\";\n\nimport toastr from 'toastr';\nimport \"toastr/build/toastr.css\"\n\nwindow.toastr = toastr;\n\nimport \"jquery-backstretch/jquery.backstretch.min.js\"\n\nTurbo.start();\nTurbo.navigator.delegate.stop()\n\nwindow.Turbo = Turbo;\n\nimport '../src/pages/index'\nimport \"../controllers\"\nimport '../src/nextgen/Index'\n\nimport 'src/styles/react_day_picker.scss'\n\n"],"file":"assets/application-yVZ5WvEo.js"}